trtc-sdk-v5 5.9.2-beta.5 → 5.9.2-beta.7
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/package.json +1 -1
- package/plugins/ai-denoiser/denoiser-wasm.js +17 -0
- 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/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/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 +26 -26
- package/trtc.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).VirtualBackground=t()}(this,(function(){"use strict";function e(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function t(e,t,r,n,o,i,a){try{var s=e[i](a),A=s.value}catch(e){return void r(e)}s.done?t(A):Promise.resolve(A).then(n,o)}function r(e){return function(){var r=this,n=arguments;return new Promise((function(o,i){var a=e.apply(r,n);function s(e){t(a,o,i,s,A,"next",e)}function A(e){t(a,o,i,s,A,"throw",e)}s(void 0)}))}}function n(e,t,r){return t=s(t),function(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,c()?Reflect.construct(t,r||[],s(e).constructor):t.apply(e,r))}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,f(n.key),n)}}function a(e,t,r){return t&&i(e.prototype,t),r&&i(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function s(e){return s=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},s(e)}function A(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&g(e,t)}function c(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(c=function(){return!!e})()}function u(){u=function(){return t};var e,t={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",A=i.toStringTag||"@@toStringTag";function c(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,r){return e[t]=r}}function g(e,t,r,n){var i=t&&t.prototype instanceof I?t:I,a=Object.create(i.prototype),s=new P(n||[]);return o(a,"_invoke",{value:b(e,r,s)}),a}function d(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=g;var l="suspendedStart",f="suspendedYield",E="executing",p="completed",h={};function I(){}function m(){}function y(){}var C={};c(C,a,(function(){return this}));var w=Object.getPrototypeOf,_=w&&w(w(M([])));_&&_!==r&&n.call(_,a)&&(C=_);var B=y.prototype=I.prototype=Object.create(C);function v(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function D(e,t){function r(o,i,a,s){var A=d(e[o],e,i);if("throw"!==A.type){var c=A.arg,u=c.value;return u&&"object"==typeof u&&n.call(u,"__await")?t.resolve(u.__await).then((function(e){r("next",e,a,s)}),(function(e){r("throw",e,a,s)})):t.resolve(u).then((function(e){c.value=e,a(c)}),(function(e){return r("throw",e,a,s)}))}s(A.arg)}var i;o(this,"_invoke",{value:function(e,n){function o(){return new t((function(t,o){r(e,n,t,o)}))}return i=i?i.then(o,o):o()}})}function b(t,r,n){var o=l;return function(i,a){if(o===E)throw Error("Generator is already running");if(o===p){if("throw"===i)throw a;return{value:e,done:!0}}for(n.method=i,n.arg=a;;){var s=n.delegate;if(s){var A=O(s,n);if(A){if(A===h)continue;return A}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===l)throw o=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=E;var c=d(t,r,n);if("normal"===c.type){if(o=n.done?p:f,c.arg===h)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(o=p,n.method="throw",n.arg=c.arg)}}}function O(t,r){var n=r.method,o=t.iterator[n];if(o===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,O(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),h;var i=d(o,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,h;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,h):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,h)}function Q(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function T(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function P(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(Q,this),this.reset(!0)}function M(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function r(){for(;++o<t.length;)if(n.call(t,o))return r.value=t[o],r.done=!1,r;return r.value=e,r.done=!0,r};return i.next=i}}throw new TypeError(typeof t+" is not iterable")}return m.prototype=y,o(B,"constructor",{value:y,configurable:!0}),o(y,"constructor",{value:m,configurable:!0}),m.displayName=c(y,A,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===m||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,y):(e.__proto__=y,c(e,A,"GeneratorFunction")),e.prototype=Object.create(B),e},t.awrap=function(e){return{__await:e}},v(D.prototype),c(D.prototype,s,(function(){return this})),t.AsyncIterator=D,t.async=function(e,r,n,o,i){void 0===i&&(i=Promise);var a=new D(g(e,r,n,o),i);return t.isGeneratorFunction(r)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},v(B),c(B,A,"Generator"),c(B,a,(function(){return this})),c(B,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},t.values=M,P.prototype={constructor:P,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(T),!t)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var r=this;function o(n,o){return s.type="throw",s.arg=t,r.next=n,o&&(r.method="next",r.arg=e),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var A=n.call(a,"catchLoc"),c=n.call(a,"finallyLoc");if(A&&c){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(A){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!c)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,h):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),h},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),T(r),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;T(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:M(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),h}},t}function g(e,t){return g=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},g(e,t)}function d(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,s=[],A=!0,c=!1;try{if(i=(r=r.call(e)).next,0===t);else for(;!(A=(n=i.call(r)).done)&&(s.push(n.value),s.length!==t);A=!0);}catch(e){c=!0,o=e}finally{try{if(!A&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return s}}(e,t)||p(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(t){return function(t){if(Array.isArray(t))return e(t)}(t)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(t)||p(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t);if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e,"string");return"symbol"==typeof t?t:t+""}function E(e){return E="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},E(e)}function p(t,r){if(t){if("string"==typeof t)return e(t,r);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?e(t,r):void 0}}function h(e){var t="function"==typeof Map?new Map:void 0;return h=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return function(e,t,r){if(c())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,t);var o=new(e.bind.apply(e,n));return r&&g(o,r.prototype),o}(e,arguments,s(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),g(r,e)},h(e)}var I=Object.defineProperty,m=Object.defineProperties,y=Object.getOwnPropertyDescriptors,C=Object.getOwnPropertySymbols,w=Object.prototype.hasOwnProperty,_=Object.prototype.propertyIsEnumerable,B=function(e,t,r){return t in e?I(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r},v=function(e,t){for(var r in t||(t={}))w.call(t,r)&&B(e,r,t[r]);if(C){var n,o=function(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=p(e))||t){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}(C(t));try{for(o.s();!(n=o.n()).done;){r=n.value;_.call(t,r)&&B(e,r,t[r])}}catch(e){o.e(e)}finally{o.f()}}return e},D=function(e){return"undefined"!=typeof require?require:"undefined"!=typeof Proxy?new Proxy(e,{get:function(e,t){return("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')})),b=function(e,t,r){return B(e,"symbol"!==E(t)?t+"":t,r)};function O(e){return Q.apply(this,arguments)}function Q(){return(Q=r(u().mark((function e(t){var r,n,o,i,a,s,A,c,g,d,l;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.sdkAppId,n=t.userId,o=t.userSig,i=t.core,s=i.schedule.getAbilityConfigUrl(r),A=Math.round((new Date).getTime()/1e3),c="".concat(s,"?sdkAppId=").concat(r,"&userId=").concat(n,"&userSig=").concat(o,"×tamp=").concat(A),e.prev=4,e.next=7,fetch(c);case 7:return g=e.sent,e.next=10,g.json();case 10:if(d=e.sent,i.log.info("virtual background send ".concat(c,", response: ").concat(JSON.stringify(d))),l=d.data,!(null==(a=null==l?void 0:l.trtcAutoConf)?void 0:a.web_ar)){e.next=15;break}return e.abrupt("return",{auth:!0,timestamp:A});case 15:return e.abrupt("return",{auth:!1});case 18:return e.prev=18,e.t0=e.catch(4),i.log.error("virtual background fetch error",e.t0),e.abrupt("return",{auth:!1});case 22:case"end":return e.stop()}}),e,null,[[4,18]])})))).apply(this,arguments)}var T={sdkAppId:{required:!0,type:"number"},userId:{required:!0,type:"string"},userSig:{required:!0,type:"string"}};var P,M,R,S=(P="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,"undefined"!=typeof __filename&&(P=P||__filename),function(e){var t,r,n=void 0!==(e=e||{})?e:{};n.ready=new Promise((function(e,n){t=e,r=n})),Object.getOwnPropertyDescriptor(n.ready,"_main")||(Object.defineProperty(n.ready,"_main",{configurable:!0,get:function(){we("You are getting _main on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_main",{configurable:!0,set:function(){we("You are setting _main on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_stack_get_end")||(Object.defineProperty(n.ready,"_emscripten_stack_get_end",{configurable:!0,get:function(){we("You are getting _emscripten_stack_get_end on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_stack_get_end",{configurable:!0,set:function(){we("You are setting _emscripten_stack_get_end on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_stack_get_free")||(Object.defineProperty(n.ready,"_emscripten_stack_get_free",{configurable:!0,get:function(){we("You are getting _emscripten_stack_get_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_stack_get_free",{configurable:!0,set:function(){we("You are setting _emscripten_stack_get_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_stack_init")||(Object.defineProperty(n.ready,"_emscripten_stack_init",{configurable:!0,get:function(){we("You are getting _emscripten_stack_init on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_stack_init",{configurable:!0,set:function(){we("You are setting _emscripten_stack_init on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_stackSave")||(Object.defineProperty(n.ready,"_stackSave",{configurable:!0,get:function(){we("You are getting _stackSave on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_stackSave",{configurable:!0,set:function(){we("You are setting _stackSave on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_stackRestore")||(Object.defineProperty(n.ready,"_stackRestore",{configurable:!0,get:function(){we("You are getting _stackRestore on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_stackRestore",{configurable:!0,set:function(){we("You are setting _stackRestore on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_stackAlloc")||(Object.defineProperty(n.ready,"_stackAlloc",{configurable:!0,get:function(){we("You are getting _stackAlloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_stackAlloc",{configurable:!0,set:function(){we("You are setting _stackAlloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___wasm_call_ctors")||(Object.defineProperty(n.ready,"___wasm_call_ctors",{configurable:!0,get:function(){we("You are getting ___wasm_call_ctors on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___wasm_call_ctors",{configurable:!0,set:function(){we("You are setting ___wasm_call_ctors on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_fflush")||(Object.defineProperty(n.ready,"_fflush",{configurable:!0,get:function(){we("You are getting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_fflush",{configurable:!0,set:function(){we("You are setting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___errno_location")||(Object.defineProperty(n.ready,"___errno_location",{configurable:!0,get:function(){we("You are getting ___errno_location on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___errno_location",{configurable:!0,set:function(){we("You are setting ___errno_location on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_malloc")||(Object.defineProperty(n.ready,"_malloc",{configurable:!0,get:function(){we("You are getting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_malloc",{configurable:!0,set:function(){we("You are setting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_free")||(Object.defineProperty(n.ready,"_free",{configurable:!0,get:function(){we("You are getting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_free",{configurable:!0,set:function(){we("You are setting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_setThrew")||(Object.defineProperty(n.ready,"_setThrew",{configurable:!0,get:function(){we("You are getting _setThrew on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_setThrew",{configurable:!0,set:function(){we("You are setting _setThrew on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___cxa_is_pointer_type")||(Object.defineProperty(n.ready,"___cxa_is_pointer_type",{configurable:!0,get:function(){we("You are getting ___cxa_is_pointer_type on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___cxa_is_pointer_type",{configurable:!0,set:function(){we("You are setting ___cxa_is_pointer_type on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___cxa_can_catch")||(Object.defineProperty(n.ready,"___cxa_can_catch",{configurable:!0,get:function(){we("You are getting ___cxa_can_catch on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___cxa_can_catch",{configurable:!0,set:function(){we("You are setting ___cxa_can_catch on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_saveSetjmp")||(Object.defineProperty(n.ready,"_saveSetjmp",{configurable:!0,get:function(){we("You are getting _saveSetjmp on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_saveSetjmp",{configurable:!0,set:function(){we("You are setting _saveSetjmp on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_memalign")||(Object.defineProperty(n.ready,"_memalign",{configurable:!0,get:function(){we("You are getting _memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_memalign",{configurable:!0,set:function(){we("You are setting _memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_main_thread_process_queued_calls")||(Object.defineProperty(n.ready,"_emscripten_main_thread_process_queued_calls",{configurable:!0,get:function(){we("You are getting _emscripten_main_thread_process_queued_calls on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_main_thread_process_queued_calls",{configurable:!0,set:function(){we("You are setting _emscripten_main_thread_process_queued_calls on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_webgl_make_context_current")||(Object.defineProperty(n.ready,"_emscripten_webgl_make_context_current",{configurable:!0,get:function(){we("You are getting _emscripten_webgl_make_context_current on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_webgl_make_context_current",{configurable:!0,set:function(){we("You are setting _emscripten_webgl_make_context_current on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_webgl_get_current_context")||(Object.defineProperty(n.ready,"_emscripten_webgl_get_current_context",{configurable:!0,get:function(){we("You are getting _emscripten_webgl_get_current_context on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_webgl_get_current_context",{configurable:!0,set:function(){we("You are setting _emscripten_webgl_get_current_context on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"__get_tzname")||(Object.defineProperty(n.ready,"__get_tzname",{configurable:!0,get:function(){we("You are getting __get_tzname on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"__get_tzname",{configurable:!0,set:function(){we("You are setting __get_tzname on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"__get_daylight")||(Object.defineProperty(n.ready,"__get_daylight",{configurable:!0,get:function(){we("You are getting __get_daylight on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"__get_daylight",{configurable:!0,set:function(){we("You are setting __get_daylight on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"__get_timezone")||(Object.defineProperty(n.ready,"__get_timezone",{configurable:!0,get:function(){we("You are getting __get_timezone on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"__get_timezone",{configurable:!0,set:function(){we("You are setting __get_timezone on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_builtin_malloc")||(Object.defineProperty(n.ready,"_emscripten_builtin_malloc",{configurable:!0,get:function(){we("You are getting _emscripten_builtin_malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_builtin_malloc",{configurable:!0,set:function(){we("You are setting _emscripten_builtin_malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_builtin_free")||(Object.defineProperty(n.ready,"_emscripten_builtin_free",{configurable:!0,get:function(){we("You are getting _emscripten_builtin_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_builtin_free",{configurable:!0,set:function(){we("You are setting _emscripten_builtin_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_builtin_memalign")||(Object.defineProperty(n.ready,"_emscripten_builtin_memalign",{configurable:!0,get:function(){we("You are getting _emscripten_builtin_memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_builtin_memalign",{configurable:!0,set:function(){we("You are setting _emscripten_builtin_memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___getTypeName")||(Object.defineProperty(n.ready,"___getTypeName",{configurable:!0,get:function(){we("You are getting ___getTypeName on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___getTypeName",{configurable:!0,set:function(){we("You are setting ___getTypeName on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___embind_register_native_and_builtin_types")||(Object.defineProperty(n.ready,"___embind_register_native_and_builtin_types",{configurable:!0,get:function(){we("You are getting ___embind_register_native_and_builtin_types on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___embind_register_native_and_builtin_types",{configurable:!0,set:function(){we("You are setting ___embind_register_native_and_builtin_types on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"onRuntimeInitialized")||(Object.defineProperty(n.ready,"onRuntimeInitialized",{configurable:!0,get:function(){we("You are getting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"onRuntimeInitialized",{configurable:!0,set:function(){we("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 o,i={};for(o in n)n.hasOwnProperty(o)&&(i[o]=n[o]);var a="./this.program",s=function(e,t){throw t},A="object"===("undefined"==typeof window?"undefined":E(window)),c="function"==typeof importScripts,u="object"===("undefined"==typeof process?"undefined":E(process))&&"object"===E(process.versions)&&"string"==typeof process.versions.node,g=!A&&!u&&!c;if(n.ENVIRONMENT)throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -s ENVIRONMENT=web or -s ENVIRONMENT=node)");var d,l,f="";if(!A&&!c)throw new Error("environment detection error");if(c?f=self.location.href:"undefined"!=typeof document&&document.currentScript&&(f=document.currentScript.src),P&&(f=P),f=0!==f.indexOf("blob:")?f.substr(0,f.lastIndexOf("/")+1):"","object"!==("undefined"==typeof window?"undefined":E(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?)");d=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},l=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 p=n.print||console.log.bind(console),h=n.printErr||console.warn.bind(console);for(o in i)i.hasOwnProperty(o)&&(n[o]=i[o]);function I(e){I.shown||(I.shown={}),I.shown[e]||(I.shown[e]=1,h(e))}i=null,n.arguments&&n.arguments,Object.getOwnPropertyDescriptor(n,"arguments")||Object.defineProperty(n,"arguments",{configurable:!0,get:function(){we("Module.arguments has been replaced with plain arguments_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),n.thisProgram&&(a=n.thisProgram),Object.getOwnPropertyDescriptor(n,"thisProgram")||Object.defineProperty(n,"thisProgram",{configurable:!0,get:function(){we("Module.thisProgram has been replaced with plain thisProgram (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),n.quit&&(s=n.quit),Object.getOwnPropertyDescriptor(n,"quit")||Object.defineProperty(n,"quit",{configurable:!0,get:function(){we("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===n.memoryInitializerPrefixURL,"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),v(void 0===n.pthreadMainPrefixURL,"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),v(void 0===n.cdInitializerPrefixURL,"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),v(void 0===n.filePackagePrefixURL,"Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),v(void 0===n.read,"Module.read option was removed (modify read_ in JS)"),v(void 0===n.readAsync,"Module.readAsync option was removed (modify readAsync in JS)"),v(void 0===n.readBinary,"Module.readBinary option was removed (modify readBinary in JS)"),v(void 0===n.setWindowTitle,"Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),v(void 0===n.TOTAL_MEMORY,"Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"),Object.getOwnPropertyDescriptor(n,"read")||Object.defineProperty(n,"read",{configurable:!0,get:function(){we("Module.read has been replaced with plain read_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Object.getOwnPropertyDescriptor(n,"readAsync")||Object.defineProperty(n,"readAsync",{configurable:!0,get:function(){we("Module.readAsync has been replaced with plain readAsync (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Object.getOwnPropertyDescriptor(n,"readBinary")||Object.defineProperty(n,"readBinary",{configurable:!0,get:function(){we("Module.readBinary has been replaced with plain readBinary (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Object.getOwnPropertyDescriptor(n,"setWindowTitle")||Object.defineProperty(n,"setWindowTitle",{configurable:!0,get:function(){we("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.");var m=0,y=function(e){m=e};n.wasmBinary&&n.wasmBinary,Object.getOwnPropertyDescriptor(n,"wasmBinary")||Object.defineProperty(n,"wasmBinary",{configurable:!0,get:function(){we("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 C,w=n.noExitRuntime||!0;Object.getOwnPropertyDescriptor(n,"noExitRuntime")||Object.defineProperty(n,"noExitRuntime",{configurable:!0,get:function(){we("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"!==("undefined"==typeof WebAssembly?"undefined":E(WebAssembly))&&we("no native wasm support detected");var _,B=!1;function v(e,t){e||we("Assertion failed: ".concat(t))}var b="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function O(e,t,r){for(var n=t+r,o=t;e[o]&&!(o>=n);)++o;if(o-t>16&&e.subarray&&b)return b.decode(e.subarray(t,o));for(var i="";t<o;){var a=e[t++];if(128&a){var s=63&e[t++];if(192!=(224&a)){var A=63&e[t++];if(224==(240&a)?a=(15&a)<<12|s<<6|A:(240!=(248&a)&&I("Invalid UTF-8 leading byte 0x".concat(a.toString(16)," encountered when deserializing a UTF-8 string in wasm memory to a JS string!")),a=(7&a)<<18|s<<12|A<<6|63&e[t++]),a<65536)i+=String.fromCharCode(a);else{var c=a-65536;i+=String.fromCharCode(55296|c>>10,56320|1023&c)}}else i+=String.fromCharCode((31&a)<<6|s)}else i+=String.fromCharCode(a)}return i}function Q(e,t){return e?O(k,e,t):""}function T(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;s>=2097152&&I("Invalid Unicode code point 0x".concat(s.toString(16)," encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x1FFFFF).")),t[r++]=240|s>>18,t[r++]=128|s>>12&63,t[r++]=128|s>>6&63,t[r++]=128|63&s}}return t[r]=0,r-o}function M(e,t,r){return v("number"==typeof r,"stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),T(e,k,t,r)}function R(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 S,F,k,x,N,j,U,L,H,G="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function Y(e,t){v(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)&&N[n];)++n;if((r=n<<1)-e>32&&G)return G.decode(k.subarray(e,r));for(var i="",a=0;!(a>=t/2);++a){var s=x[e+2*a>>1];if(0==s)break;i+=String.fromCharCode(s)}return i}function X(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;for(var n=t,o=(r-=2)<2*e.length?r/2:e.length,i=0;i<o;++i){var a=e.charCodeAt(i);x[t>>1]=a,t+=2}return x[t>>1]=0,t-n}function W(e){return 2*e.length}function V(e,t){v(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 z(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;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)),j[t>>2]=a,(t+=4)+4>o)break}return j[t>>2]=0,t-n}function J(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 K(e){var t=R(e)+1,r=An(t);return r&&T(e,F,r,t),r}function Z(e){S=e,n.HEAP8=F=new Int8Array(e),n.HEAP16=x=new Int16Array(e),n.HEAP32=j=new Int32Array(e),n.HEAPU8=k=new Uint8Array(e),n.HEAPU16=N=new Uint16Array(e),n.HEAPU32=U=new Uint32Array(e),n.HEAPF32=L=new Float32Array(e),n.HEAPF64=H=new Float64Array(e)}var q=5242880;n.TOTAL_STACK&&v(q===n.TOTAL_STACK,"the stack size can no longer be determined at runtime");var $,ee=n.INITIAL_MEMORY||16777216;function te(){var e=gn();v(!(3&e)),U[1+(e>>2)]=34821223,U[2+(e>>2)]=2310721022,j[0]=1668509029}function re(){if(!B){var e=gn(),t=U[1+(e>>2)],r=U[2+(e>>2)];34821223==t&&2310721022==r||we("Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x2135467, but received 0x".concat(r.toString(16)," ").concat(t.toString(16))),1668509029!==j[0]&&we("Runtime error: The application has corrupted its heap memory area (address zero)!")}}Object.getOwnPropertyDescriptor(n,"INITIAL_MEMORY")||Object.defineProperty(n,"INITIAL_MEMORY",{configurable:!0,get:function(){we("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(ee>=q,"INITIAL_MEMORY should be larger than TOTAL_STACK, was ".concat(ee,"! (TOTAL_STACK=").concat(q,")")),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(!n.wasmMemory,"Use of `wasmMemory` detected. Use -s IMPORTED_MEMORY to define wasmMemory externally"),v(16777216==ee,"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 ne=[],oe=[],ie=[],ae=[],se=!1,Ae=!1,ce=0;function ue(){return w||ce>0}v(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),v(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),v(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),v(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");var ge,de,le,fe,Ee=0,pe=null,he=null,Ie={};function me(e){for(var t=e;;){if(!Ie[e])return e;e=t+Math.random()}}function ye(e){Ee++,n.monitorRunDependencies&&n.monitorRunDependencies(Ee),e?(v(!Ie[e]),Ie[e]=1,null===pe&&"undefined"!=typeof setInterval&&(pe=setInterval((function(){if(B)return clearInterval(pe),void(pe=null);var e=!1;for(var t in Ie)e||(e=!0,h("still waiting on run dependencies:")),h("dependency: ".concat(t));e&&h("(end of list)")}),1e4))):h("warning: run dependency added without ID")}function Ce(e){if(Ee--,n.monitorRunDependencies&&n.monitorRunDependencies(Ee),e?(v(Ie[e]),delete Ie[e]):h("warning: run dependency removed without ID"),0==Ee&&(null!==pe&&(clearInterval(pe),pe=null),he)){var t=he;he=null,t()}}function we(e){n.onAbort&&n.onAbort(e),h(e+=""),B=!0,_=1;var t,o="abort(".concat(e,") at ").concat((t=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()}(),n.extraStackTrace&&(t+="\n".concat(n.extraStackTrace())),Me(t)));e=o;var i=new WebAssembly.RuntimeError(e);throw r(i),i}function _e(e,t){return function(){var r=e,o=t;return o=n.asm,v(se,"native function `".concat(r,"` called before runtime initialization")),v(!Ae,"native function `".concat(r,"` called after runtime exit (use NO_EXIT_RUNTIME to keep it alive after main() exits)")),o[e]||v(o[e],"exported native function `".concat(r,"` not found")),o[e].apply(null,arguments)}}n.preloadedImages={},n.preloadedAudios={},(ge="selfie_segmentation_solution_simd_wasm_bin.wasm").startsWith("data:application/octet-stream;base64,")||(de=ge,ge=n.locateFile?n.locateFile(de,f):f+de);var Be,ve={460656:function(){var e=!0;if(e){var t=Or;if("function"!=typeof t)return void("undefined"!=typeof console&&console.error('Expected Emscripten global function "findCanvasEventTarget" not found. WebGL context creation may fail.'));Or=function(e){if(0==e){if(n&&n.canvas)return n.canvas;if(n&&n.canvasCssSelector)return t(n.canvasCssSelector);"undefined"!=typeof console&&console.warn("Module properties canvas and canvasCssSelector not found during WebGL context creation.")}return t(e)},e=!1}},461441:function(){return"undefined"!=typeof wasmOffsetConverter}};function De(e){!function(e){if(_=e,function(){var e=p,t=h,r=!1;p=h=function(e){r=!0};try{var o=n._fflush;o&&o(0),["stdout","stderr"].forEach((function(e){var t=Ve.analyzePath("/dev/".concat(e));if(t){var n=t.object.rdev,o=He.ttys[n];o&&o.output&&o.output.length&&(r=!0)}}))}catch(e){}p=e,h=t,r&&I("stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the FAQ), or make sure to emit a newline when you printf etc.")}(),ue()){var t="program exited (with status: ".concat(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)");r(t),h(t)}else re(),Ae=!0;vn(e)}(e)}function be(e,t,r,o,i){v(!Te.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."),Te.mainLoop.func=e,Te.mainLoop.arg=o;var a=Te.mainLoop.currentlyRunningMainloop;function s(){return!(a<Te.mainLoop.currentlyRunningMainloop&&(function(){if(!ue())try{De(_)}catch(e){if(e instanceof _n)return;throw e}}(),1))}Te.mainLoop.running=!1,Te.mainLoop.runner=function(){if(!B)if(Te.mainLoop.queue.length>0){var t=Date.now(),r=Te.mainLoop.queue.shift();if(r.func(r.arg),Te.mainLoop.remainingBlockers){var o=Te.mainLoop.remainingBlockers,i=o%1==0?o-1:Math.floor(o);r.counted?Te.mainLoop.remainingBlockers=i:(i+=.5,Te.mainLoop.remainingBlockers=(8*o+i)/9)}if(p('main loop blocker "'.concat(r.name,'" took ').concat(Date.now()-t," ms")),Te.mainLoop.updateStatus(),!s())return;setTimeout(Te.mainLoop.runner,0)}else s()&&(Te.mainLoop.currentFrameNumber=Te.mainLoop.currentFrameNumber+1|0,1==Te.mainLoop.timingMode&&Te.mainLoop.timingValue>1&&Te.mainLoop.currentFrameNumber%Te.mainLoop.timingValue!=0?Te.mainLoop.scheduler():(0==Te.mainLoop.timingMode&&(Te.mainLoop.tickStartTime=Be()),Br.newRenderingFrameStarted(),void 0!==Br&&Br.currentContext&&!Br.currentContextIsProxied&&!Br.currentContext.attributes.explicitSwapControl&&Br.currentContext.GLctx.commit&&Br.currentContext.GLctx.commit(),"timeout"===Te.mainLoop.method&&n.ctx&&(I("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!"),Te.mainLoop.method=""),Te.mainLoop.runIter(e),re(),s()&&("object"===("undefined"==typeof SDL?"undefined":E(SDL))&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),Te.mainLoop.scheduler())))}}function Oe(e,t){if(B)h("user callback triggered after application aborted. Ignoring.");else try{e()}catch(e){if(e instanceof _n)return;if("unwind"!==e)throw e&&"object"===E(e)&&e.stack&&h("exception thrown: ".concat([e,e.stack])),e}}function Qe(e,t){return setTimeout((function(){Oe(e)}),t)}Be=u?function(){var e=process.hrtime();return 1e3*e[0]+e[1]/1e6}:function(){return performance.now()};var Te={mainLoop:{running:!1,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Te.mainLoop.scheduler=null,Te.mainLoop.currentlyRunningMainloop++},resume:function(){Te.mainLoop.currentlyRunningMainloop++;var e=Te.mainLoop.timingMode,t=Te.mainLoop.timingValue,r=Te.mainLoop.func;Te.mainLoop.func=null,be(r,0,0,Te.mainLoop.arg),function(e,t){if(Te.mainLoop.timingMode=e,Te.mainLoop.timingValue=t,!Te.mainLoop.func)return h("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(Te.mainLoop.running||(Te.mainLoop.running=!0),0==e)Te.mainLoop.scheduler=function(){var e=0|Math.max(0,Te.mainLoop.tickStartTime+t-Be());setTimeout(Te.mainLoop.runner,e)},Te.mainLoop.method="timeout";else if(1==e)Te.mainLoop.scheduler=function(){Te.requestAnimationFrame(Te.mainLoop.runner)},Te.mainLoop.method="rAF";else if(2==e){if("undefined"==typeof setImmediate){var r=[],o="setimmediate";addEventListener("message",(function(e){e.data!==o&&e.data.target!==o||(e.stopPropagation(),r.shift()())}),!0),setImmediate=function(e){r.push(e),c?(void 0===n.setImmediates&&(n.setImmediates=[]),n.setImmediates.push(e),postMessage({target:o})):postMessage(o,"*")}}Te.mainLoop.scheduler=function(){setImmediate(Te.mainLoop.runner)},Te.mainLoop.method="immediate"}}(e,t),Te.mainLoop.scheduler()},updateStatus:function(){if(n.setStatus){var e=n.statusMessage||"Please wait...",t=Te.mainLoop.remainingBlockers,r=Te.mainLoop.expectedBlockers;t?t<r?n.setStatus("".concat(e," (").concat(r-t,"/").concat(r,")")):n.setStatus(e):n.setStatus("")}},runIter:function(e){if(!B){if(n.preMainLoop&&!1===n.preMainLoop())return;Oe(e),n.postMainLoop&&n.postMainLoop()}}},isFullscreen:!1,pointerLock:!1,moduleContextCreatedCallbacks:[],workers:[],init:function(){if(n.preloadPlugins||(n.preloadPlugins=[]),!Te.initted){Te.initted=!0;try{new Blob,Te.hasBlobConstructor=!0}catch(e){Te.hasBlobConstructor=!1,p("warning: no blob constructor, cannot create blobs with mimetypes")}Te.BlobBuilder="undefined"!=typeof MozBlobBuilder?MozBlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:Te.hasBlobConstructor?null:p("warning: no BlobBuilder"),Te.URLObject="undefined"!=typeof window?window.URL?window.URL:window.webkitURL:void 0,n.noImageDecoding||void 0!==Te.URLObject||(p("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),n.noImageDecoding=!0);var e={canHandle:function(e){return!n.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(e)},handle:function(e,t,r,o){var i=null;if(Te.hasBlobConstructor)try{(i=new Blob([e],{type:Te.getMimetype(t)})).size!==e.length&&(i=new Blob([new Uint8Array(e).buffer],{type:Te.getMimetype(t)}))}catch(e){I("Blob constructor present but fails: ".concat(e,"; falling back to blob builder"))}if(!i){var a=new Te.BlobBuilder;a.append(new Uint8Array(e).buffer),i=a.getBlob()}var s=Te.URLObject.createObjectURL(i);v("string"==typeof s,"createObjectURL must return a url as a string");var A=new Image;A.onload=function(){v(A.complete,"Image ".concat(t," could not be decoded"));var o=document.createElement("canvas");o.width=A.width,o.height=A.height,o.getContext("2d").drawImage(A,0,0),n.preloadedImages[t]=o,Te.URLObject.revokeObjectURL(s),r&&r(e)},A.onerror=function(e){p("Image ".concat(s," could not be decoded")),o&&o()},A.src=s}};n.preloadPlugins.push(e);var t={canHandle:function(e){return!n.noAudioDecoding&&e.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},handle:function(e,t,r,o){var i=!1;function a(o){i||(i=!0,n.preloadedAudios[t]=o,r&&r(e))}function s(){i||(i=!0,n.preloadedAudios[t]=new Audio,o&&o())}if(!Te.hasBlobConstructor)return s();try{var A=new Blob([e],{type:Te.getMimetype(t)})}catch(e){return s()}var c=Te.URLObject.createObjectURL(A);v("string"==typeof c,"createObjectURL must return a url as a string");var u=new Audio;u.addEventListener("canplaythrough",(function(){a(u)}),!1),u.onerror=function(r){i||(p("warning: browser could not fully decode audio ".concat(t,", trying slower base64 approach")),u.src="data:audio/x-".concat(t.substr(-3),";base64,").concat(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=c,Qe((function(){a(u)}),1e4)}};n.preloadPlugins.push(t),n.canvas}},createContext:function(e,t,r,o){if(t&&n.ctx&&e==n.canvas)return n.ctx;var i,a;if(t){var s={antialias:!1,alpha:!1,majorVersion:"undefined"!=typeof WebGL2RenderingContext?2:1};if(o)for(var A in o)s[A]=o[A];void 0!==Br&&(a=Br.createContext(e,s))&&(i=Br.getContext(a).GLctx)}else i=e.getContext("2d");return i?(r&&(t||v(void 0===Zr,"cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),n.ctx=i,t&&Br.makeContextCurrent(a),n.useWebGL=t,Te.moduleContextCreatedCallbacks.forEach((function(e){e()})),Te.init()),i):null},destroyContext:function(e,t,r){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(e,t){Te.lockPointer=e,Te.resizeCanvas=t,void 0===Te.lockPointer&&(Te.lockPointer=!0),void 0===Te.resizeCanvas&&(Te.resizeCanvas=!1);var r=n.canvas;Te.fullscreenHandlersInstalled||(Te.fullscreenHandlersInstalled=!0);var o=document.createElement("div");r.parentNode.insertBefore(o,r),o.appendChild(r),o.requestFullscreen=o.requestFullscreen||o.mozRequestFullScreen||o.msRequestFullscreen||(o.webkitRequestFullscreen?function(){o.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(o.webkitRequestFullScreen?function(){o.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),o.requestFullscreen()},requestFullScreen:function(){we("Module.requestFullScreen has been replaced by Module.requestFullscreen (without a capital S)")},exitFullscreen:function(){return!!Te.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===Te.nextRAF)Te.nextRAF=t+1e3/60;else for(;t+2>=Te.nextRAF;)Te.nextRAF+=1e3/60;var r=Math.max(Te.nextRAF-t,0);setTimeout(e,r)},requestAnimationFrame:function(e){function t(t){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}((function(e){"function"!=typeof requestAnimationFrame?(0,Te.fakeRequestAnimationFrame)(e):requestAnimationFrame(e)})),safeSetTimeout:function(e){return Qe(e)},safeRequestAnimationFrame:function(e){return Te.requestAnimationFrame((function(){Oe(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: ".concat(e.deltaMode)}break;default:throw"unrecognized mouse wheel event: ".concat(e.type)}return t},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(e){if(Te.pointerLock)"mousemove"!=e.type&&"mozMovementX"in e?Te.mouseMovementX=Te.mouseMovementY=0:(Te.mouseMovementX=Te.getMovementX(e),Te.mouseMovementY=Te.getMovementY(e)),"undefined"!=typeof SDL?(Te.mouseX=SDL.mouseX+Te.mouseMovementX,Te.mouseY=SDL.mouseY+Te.mouseMovementY):(Te.mouseX+=Te.mouseMovementX,Te.mouseY+=Te.mouseMovementY);else{var t=n.canvas.getBoundingClientRect(),r=n.canvas.width,o=n.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){var s=e.touch;if(void 0===s)return;var A=s.pageX-(i+t.left),c=s.pageY-(a+t.top),u={x:A*=r/t.width,y:c*=o/t.height};if("touchstart"===e.type)Te.lastTouches[s.identifier]=u,Te.touches[s.identifier]=u;else if("touchend"===e.type||"touchmove"===e.type){var g=Te.touches[s.identifier];g||(g=u),Te.lastTouches[s.identifier]=g,Te.touches[s.identifier]=u}return}var d=e.pageX-(i+t.left),l=e.pageY-(a+t.top);d*=r/t.width,l*=o/t.height,Te.mouseMovementX=d-Te.mouseX,Te.mouseMovementY=l-Te.mouseY,Te.mouseX=d,Te.mouseY=l}},resizeListeners:[],updateResizeListeners:function(){var e=n.canvas;Te.resizeListeners.forEach((function(t){t(e.width,e.height)}))},setCanvasSize:function(e,t,r){var o=n.canvas;Te.updateCanvasDimensions(o,e,t),r||Te.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if("undefined"!=typeof SDL){var e=U[SDL.screen>>2];e|=8388608,j[SDL.screen>>2]=e}Te.updateCanvasDimensions(n.canvas),Te.updateResizeListeners()},setWindowedCanvasSize:function(){if("undefined"!=typeof SDL){var e=U[SDL.screen>>2];e&=-8388609,j[SDL.screen>>2]=e}Te.updateCanvasDimensions(n.canvas),Te.updateResizeListeners()},updateCanvasDimensions:function(e,t,r){t&&r?(e.widthNative=t,e.heightNative=r):(t=e.widthNative,r=e.heightNative);var o=t,i=r;if(n.forcedAspectRatio&&n.forcedAspectRatio>0&&(o/i<n.forcedAspectRatio?o=Math.round(i*n.forcedAspectRatio):i=Math.round(o/n.forcedAspectRatio)),(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===e.parentNode&&"undefined"!=typeof screen){var a=Math.min(screen.width/o,screen.height/i);o=Math.round(o*a),i=Math.round(i*a)}Te.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!=r&&(e.height=r),void 0!==e.style&&(o!=t||i!=r?(e.style.setProperty("width","".concat(o,"px"),"important"),e.style.setProperty("height","".concat(i,"px"),"important")):(e.style.removeProperty("width"),e.style.removeProperty("height"))))}};function Pe(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var r=t.func;"number"==typeof r?void 0===t.arg?$.get(r)():$.get(r)(t.arg):r(void 0===t.arg?null:t.arg)}else t(n)}}function Me(e){return e.replace(/\b_Z[\w\d_]+/g,(function(e){var t,r=(t=e,I("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),t);return e===r?e:"".concat(r," [").concat(e,"]")}))}function Re(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,F[this.ptr+12|0]=e},this.get_caught=function(){return 0!=F[this.ptr+12|0]},this.set_rethrown=function(e){e=e?1:0,F[this.ptr+13|0]=e},this.get_rethrown=function(){return 0!=F[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,v(e>0),1===e}}function Se(e){this.free=function(){sn(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(Cn(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 Re(this.get_base_ptr())},void 0===e?(this.ptr=An(8),this.set_adjusted_ptr(0)):this.ptr=e}var Fe=[],ke=0;function xe(e){try{return sn(new Re(e).ptr)}catch(e){h("exception during cxa_free_exception: ".concat(e))}}function Ne(e){return j[cn()>>2]=e,e}var je={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=je.normalizeArray(e.split("/").filter((function(e){return!!e})),!t).join("/"))||t||(e="."),e&&r&&(e+="/"),(t?"/":"")+e},dirname:function(e){var t=je.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=je.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?e:e.substr(t+1)},extname:function(e){return je.splitPath(e)[3]},join:function(){var e=Array.prototype.slice.call(arguments,0);return je.normalize(e.join("/"))},join2:function(e,t){return je.normalize("".concat(e,"/").concat(t))}};function Ue(){if("object"===("undefined"==typeof crypto?"undefined":E(crypto))&&"function"==typeof crypto.getRandomValues){var e=new Uint8Array(1);return function(){return crypto.getRandomValues(e),e[0]}}if(u)try{var t=D("crypto");return function(){return t.randomBytes(1)[0]}}catch(e){}return function(){we("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 Le={resolve:function(){for(var e="",t=!1,r=arguments.length-1;r>=-1&&!t;r--){var n=r>=0?arguments[r]:Ve.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");if(!n)return"";e="".concat(n,"/").concat(e),t="/"===n.charAt(0)}return(t?"/":"")+(e=je.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=Le.resolve(e).substr(1),t=Le.resolve(t).substr(1);for(var n=r(e.split("/")),o=r(t.split("/")),i=Math.min(n.length,o.length),a=i,s=0;s<i;s++)if(n[s]!==o[s]){a=s;break}var A=[];for(s=a;s<n.length;s++)A.push("..");return(A=A.concat(o.slice(a))).join("/")}},He={ttys:[],init:function(){},shutdown:function(){},register:function(e,t){He.ttys[e]={input:[],output:[],ops:t},Ve.registerDevice(e,He.stream_ops)},stream_ops:{open:function(e){var t=He.ttys[e.node.rdev];if(!t)throw new Ve.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 Ve.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 Ve.ErrnoError(29)}if(void 0===s&&0===i)throw new Ve.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 Ve.ErrnoError(60);try{for(var i=0;i<n;i++)e.tty.ops.put_char(e.tty,t[r+i])}catch(e){throw new Ve.ErrnoError(29)}return n&&(e.node.timestamp=Date.now()),i}},default_tty_ops:{get_char:function(e){if(!e.input.length){var t=null;if(u){var r=Buffer.alloc(256),n=0;try{n=(void 0).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=on(t,!0)}return e.input.shift()},put_char:function(e,t){null===t||10===t?(p(O(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(p(O(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,t){null===t||10===t?(h(O(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(h(O(e.output,0)),e.output=[])}}};function Ge(e){e=function(e,t){return v(t,"alignment argument is required"),Math.ceil(e/t)*t}(e,65536);var t=wn(65536,e);return t?(function(e,t){k.fill(0,e,e+t)}(t,e),t):0}var Ye={ops_table:null,mount:function(e){return Ye.createNode(null,"/",16895,0)},createNode:function(e,t,r,n){if(Ve.isBlkdev(r)||Ve.isFIFO(r))throw new Ve.ErrnoError(63);Ye.ops_table||(Ye.ops_table={dir:{node:{getattr:Ye.node_ops.getattr,setattr:Ye.node_ops.setattr,lookup:Ye.node_ops.lookup,mknod:Ye.node_ops.mknod,rename:Ye.node_ops.rename,unlink:Ye.node_ops.unlink,rmdir:Ye.node_ops.rmdir,readdir:Ye.node_ops.readdir,symlink:Ye.node_ops.symlink},stream:{llseek:Ye.stream_ops.llseek}},file:{node:{getattr:Ye.node_ops.getattr,setattr:Ye.node_ops.setattr},stream:{llseek:Ye.stream_ops.llseek,read:Ye.stream_ops.read,write:Ye.stream_ops.write,allocate:Ye.stream_ops.allocate,mmap:Ye.stream_ops.mmap,msync:Ye.stream_ops.msync}},link:{node:{getattr:Ye.node_ops.getattr,setattr:Ye.node_ops.setattr,readlink:Ye.node_ops.readlink},stream:{}},chrdev:{node:{getattr:Ye.node_ops.getattr,setattr:Ye.node_ops.setattr},stream:Ve.chrdev_stream_ops}});var o=Ve.createNode(e,t,r,n);return Ve.isDir(o.mode)?(o.node_ops=Ye.ops_table.dir.node,o.stream_ops=Ye.ops_table.dir.stream,o.contents={}):Ve.isFile(o.mode)?(o.node_ops=Ye.ops_table.file.node,o.stream_ops=Ye.ops_table.file.stream,o.usedBytes=0,o.contents=null):Ve.isLink(o.mode)?(o.node_ops=Ye.ops_table.link.node,o.stream_ops=Ye.ops_table.link.stream):Ve.isChrdev(o.mode)&&(o.node_ops=Ye.ops_table.chrdev.node,o.stream_ops=Ye.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=Ve.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,Ve.isDir(e.mode)?t.size=4096:Ve.isFile(e.mode)?t.size=e.usedBytes:Ve.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&&Ye.resizeFileStorage(e,t.size)},lookup:function(e,t){throw Ve.genericErrors[44]},mknod:function(e,t,r,n){return Ye.createNode(e,t,r,n)},rename:function(e,t,r){if(Ve.isDir(e.mode)){var n;try{n=Ve.lookupNode(t,r)}catch(e){}if(n)for(var o in n.contents)throw new Ve.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=Ve.lookupNode(e,t);for(var n in r.contents)throw new Ve.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=Ye.createNode(e,t,41471,0);return n.link=r,n},readlink:function(e){if(!Ve.isLink(e.mode))throw new Ve.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(v(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(v(!(t instanceof ArrayBuffer)),t.buffer===F.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 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(Ye.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&&Ve.isFile(e.node.mode)&&(n+=e.node.usedBytes),n<0)throw new Ve.ErrnoError(28);return n},allocate:function(e,t,r){Ye.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 Ve.ErrnoError(28);if(!Ve.isFile(e.node.mode))throw new Ve.ErrnoError(43);var a,s,A=e.node.contents;if(2&i||A.buffer!==S){if((n>0||n+r<A.length)&&(A=A.subarray?A.subarray(n,n+r):Array.prototype.slice.call(A,n,n+r)),s=!0,!(a=Ge(r)))throw new Ve.ErrnoError(48);F.set(A,a)}else s=!1,a=A.byteOffset;return{ptr:a,allocated:s}},msync:function(e,t,r,n,o){if(!Ve.isFile(e.node.mode))throw new Ve.ErrnoError(43);return 2&o||Ye.stream_ops.write(e,t,0,n,r,!1),0}}},Xe={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"},We={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},Ve={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=Le.resolve(Ve.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 Ve.ErrnoError(32);for(var o=je.normalizeArray(e.split("/").filter((function(e){return!!e})),!1),i=Ve.root,a="/",s=0;s<o.length;s++){var A=s===o.length-1;if(A&&t.parent)break;if(i=Ve.lookupNode(i,o[s]),a=je.join2(a,o[s]),Ve.isMountpoint(i)&&(!A||A&&t.follow_mount)&&(i=i.mounted.root),!A||t.follow)for(var c=0;Ve.isLink(i.mode);){var u=Ve.readlink(a);if(a=Le.resolve(je.dirname(a),u),i=Ve.lookupPath(a,{recurse_count:t.recurse_count}).node,c++>40)throw new Ve.ErrnoError(32)}}return{path:a,node:i}},getPath:function(e){for(var t;;){if(Ve.isRoot(e)){var r=e.mount.mountpoint;return t?"/"!==r[r.length-1]?"".concat(r,"/").concat(t):r+t:r}t=t?"".concat(e.name,"/").concat(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)%Ve.nameTable.length},hashAddNode:function(e){var t=Ve.hashName(e.parent.id,e.name);e.name_next=Ve.nameTable[t],Ve.nameTable[t]=e},hashRemoveNode:function(e){var t=Ve.hashName(e.parent.id,e.name);if(Ve.nameTable[t]===e)Ve.nameTable[t]=e.name_next;else for(var r=Ve.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=Ve.mayLookup(e);if(r)throw new Ve.ErrnoError(r,e);for(var n=Ve.hashName(e.id,t),o=Ve.nameTable[n];o;o=o.name_next){var i=o.name;if(o.parent.id===e.id&&i===t)return o}return Ve.lookup(e,t)},createNode:function(e,t,r,n){v("object"===E(e));var o=new Ve.FSNode(e,t,r,n);return Ve.hashAddNode(o),o},destroyNode:function(e){Ve.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=Ve.flagModes[e];if(void 0===t)throw new Error("Unknown file open mode: ".concat(e));return t},flagsToPermissionString:function(e){var t=["r","w","rw"][3&e];return 512&e&&(t+="w"),t},nodePermissions:function(e,t){return Ve.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=Ve.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate:function(e,t){try{return Ve.lookupNode(e,t),20}catch(e){}return Ve.nodePermissions(e,"wx")},mayDelete:function(e,t,r){var n;try{n=Ve.lookupNode(e,t)}catch(e){return e.errno}var o=Ve.nodePermissions(e,"wx");if(o)return o;if(r){if(!Ve.isDir(n.mode))return 54;if(Ve.isRoot(n)||Ve.getPath(n)===Ve.cwd())return 10}else if(Ve.isDir(n.mode))return 31;return 0},mayOpen:function(e,t){return e?Ve.isLink(e.mode)?32:Ve.isDir(e.mode)&&("r"!==Ve.flagsToPermissionString(t)||512&t)?31:Ve.nodePermissions(e,Ve.flagsToPermissionString(t)):44},MAX_OPEN_FDS:4096,nextfd:function(e,t){e=e||0,t=t||Ve.MAX_OPEN_FDS;for(var r=e;r<=t;r++)if(!Ve.streams[r])return r;throw new Ve.ErrnoError(33)},getStream:function(e){return Ve.streams[e]},createStream:function(e,t,r){Ve.FSStream||(Ve.FSStream=function(){},Ve.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 Ve.FSStream;for(var o in e)n[o]=e[o];e=n;var i=Ve.nextfd(t,r);return e.fd=i,Ve.streams[i]=e,e},closeStream:function(e){Ve.streams[e]=null},chrdev_stream_ops:{open:function(e){var t=Ve.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:function(){throw new Ve.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){Ve.devices[e]={stream_ops:t}},getDevice:function(e){return Ve.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),Ve.syncFSRequests++,Ve.syncFSRequests>1&&h("warning: ".concat(Ve.syncFSRequests," FS.syncfs operations in flight at once, probably just doing extra work"));var r=Ve.getMounts(Ve.root.mount),n=0;function o(e){return v(Ve.syncFSRequests>0),Ve.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&&Ve.root)throw new Ve.ErrnoError(10);if(!o&&!i){var a=Ve.lookupPath(r,{follow_mount:!1});if(r=a.path,n=a.node,Ve.isMountpoint(n))throw new Ve.ErrnoError(10);if(!Ve.isDir(n.mode))throw new Ve.ErrnoError(54)}var s={type:e,opts:t,mountpoint:r,mounts:[]},A=e.mount(s);return A.mount=s,s.root=A,o?Ve.root=A:n&&(n.mounted=s,n.mount&&n.mount.mounts.push(s)),A},unmount:function(e){var t=Ve.lookupPath(e,{follow_mount:!1});if(!Ve.isMountpoint(t.node))throw new Ve.ErrnoError(28);var r=t.node,n=r.mounted,o=Ve.getMounts(n);Object.keys(Ve.nameTable).forEach((function(e){for(var t=Ve.nameTable[e];t;){var r=t.name_next;o.includes(t.mount)&&Ve.destroyNode(t),t=r}})),r.mounted=null;var i=r.mount.mounts.indexOf(n);v(-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=Ve.lookupPath(e,{parent:!0}).node,o=je.basename(e);if(!o||"."===o||".."===o)throw new Ve.ErrnoError(28);var i=Ve.mayCreate(n,o);if(i)throw new Ve.ErrnoError(i);if(!n.node_ops.mknod)throw new Ve.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,Ve.mknod(e,t,0)},mkdir:function(e,t){return t=void 0!==t?t:511,t&=1023,t|=16384,Ve.mknod(e,t,0)},mkdirTree:function(e,t){for(var r=e.split("/"),n="",o=0;o<r.length;++o)if(r[o]){n+="/".concat(r[o]);try{Ve.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,Ve.mknod(e,t,r)},symlink:function(e,t){if(!Le.resolve(e))throw new Ve.ErrnoError(44);var r=Ve.lookupPath(t,{parent:!0}).node;if(!r)throw new Ve.ErrnoError(44);var n=je.basename(t),o=Ve.mayCreate(r,n);if(o)throw new Ve.ErrnoError(o);if(!r.node_ops.symlink)throw new Ve.ErrnoError(63);return r.node_ops.symlink(r,n,e)},rename:function(e,t){var r,n,o=je.dirname(e),i=je.dirname(t),a=je.basename(e),s=je.basename(t);if(r=Ve.lookupPath(e,{parent:!0}).node,n=Ve.lookupPath(t,{parent:!0}).node,!r||!n)throw new Ve.ErrnoError(44);if(r.mount!==n.mount)throw new Ve.ErrnoError(75);var A,c=Ve.lookupNode(r,a),u=Le.relative(e,i);if("."!==u.charAt(0))throw new Ve.ErrnoError(28);if("."!==(u=Le.relative(t,o)).charAt(0))throw new Ve.ErrnoError(55);try{A=Ve.lookupNode(n,s)}catch(e){}if(c!==A){var g=Ve.isDir(c.mode),d=Ve.mayDelete(r,a,g);if(d)throw new Ve.ErrnoError(d);if(d=A?Ve.mayDelete(n,s,g):Ve.mayCreate(n,s))throw new Ve.ErrnoError(d);if(!r.node_ops.rename)throw new Ve.ErrnoError(63);if(Ve.isMountpoint(c)||A&&Ve.isMountpoint(A))throw new Ve.ErrnoError(10);if(n!==r&&(d=Ve.nodePermissions(r,"w")))throw new Ve.ErrnoError(d);try{Ve.trackingDelegate.willMovePath&&Ve.trackingDelegate.willMovePath(e,t)}catch(r){h("FS.trackingDelegate['willMovePath']('".concat(e,"', '").concat(t,"') threw an exception: ").concat(r.message))}Ve.hashRemoveNode(c);try{r.node_ops.rename(c,n,s)}catch(e){throw e}finally{Ve.hashAddNode(c)}try{Ve.trackingDelegate.onMovePath&&Ve.trackingDelegate.onMovePath(e,t)}catch(r){h("FS.trackingDelegate['onMovePath']('".concat(e,"', '").concat(t,"') threw an exception: ").concat(r.message))}}},rmdir:function(e){var t=Ve.lookupPath(e,{parent:!0}).node,r=je.basename(e),n=Ve.lookupNode(t,r),o=Ve.mayDelete(t,r,!0);if(o)throw new Ve.ErrnoError(o);if(!t.node_ops.rmdir)throw new Ve.ErrnoError(63);if(Ve.isMountpoint(n))throw new Ve.ErrnoError(10);try{Ve.trackingDelegate.willDeletePath&&Ve.trackingDelegate.willDeletePath(e)}catch(t){h("FS.trackingDelegate['willDeletePath']('".concat(e,"') threw an exception: ").concat(t.message))}t.node_ops.rmdir(t,r),Ve.destroyNode(n);try{Ve.trackingDelegate.onDeletePath&&Ve.trackingDelegate.onDeletePath(e)}catch(t){h("FS.trackingDelegate['onDeletePath']('".concat(e,"') threw an exception: ").concat(t.message))}},readdir:function(e){var t=Ve.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new Ve.ErrnoError(54);return t.node_ops.readdir(t)},unlink:function(e){var t=Ve.lookupPath(e,{parent:!0}).node,r=je.basename(e),n=Ve.lookupNode(t,r),o=Ve.mayDelete(t,r,!1);if(o)throw new Ve.ErrnoError(o);if(!t.node_ops.unlink)throw new Ve.ErrnoError(63);if(Ve.isMountpoint(n))throw new Ve.ErrnoError(10);try{Ve.trackingDelegate.willDeletePath&&Ve.trackingDelegate.willDeletePath(e)}catch(t){h("FS.trackingDelegate['willDeletePath']('".concat(e,"') threw an exception: ").concat(t.message))}t.node_ops.unlink(t,r),Ve.destroyNode(n);try{Ve.trackingDelegate.onDeletePath&&Ve.trackingDelegate.onDeletePath(e)}catch(t){h("FS.trackingDelegate['onDeletePath']('".concat(e,"') threw an exception: ").concat(t.message))}},readlink:function(e){var t=Ve.lookupPath(e).node;if(!t)throw new Ve.ErrnoError(44);if(!t.node_ops.readlink)throw new Ve.ErrnoError(28);return Le.resolve(Ve.getPath(t.parent),t.node_ops.readlink(t))},stat:function(e,t){var r=Ve.lookupPath(e,{follow:!t}).node;if(!r)throw new Ve.ErrnoError(44);if(!r.node_ops.getattr)throw new Ve.ErrnoError(63);return r.node_ops.getattr(r)},lstat:function(e){return Ve.stat(e,!0)},chmod:function(e,t,r){var n;if(!(n="string"==typeof e?Ve.lookupPath(e,{follow:!r}).node:e).node_ops.setattr)throw new Ve.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&t|-4096&n.mode,timestamp:Date.now()})},lchmod:function(e,t){Ve.chmod(e,t,!0)},fchmod:function(e,t){var r=Ve.getStream(e);if(!r)throw new Ve.ErrnoError(8);Ve.chmod(r.node,t)},chown:function(e,t,r,n){var o;if(!(o="string"==typeof e?Ve.lookupPath(e,{follow:!n}).node:e).node_ops.setattr)throw new Ve.ErrnoError(63);o.node_ops.setattr(o,{timestamp:Date.now()})},lchown:function(e,t,r){Ve.chown(e,t,r,!0)},fchown:function(e,t,r){var n=Ve.getStream(e);if(!n)throw new Ve.ErrnoError(8);Ve.chown(n.node,t,r)},truncate:function(e,t){if(t<0)throw new Ve.ErrnoError(28);var r;if(!(r="string"==typeof e?Ve.lookupPath(e,{follow:!0}).node:e).node_ops.setattr)throw new Ve.ErrnoError(63);if(Ve.isDir(r.mode))throw new Ve.ErrnoError(31);if(!Ve.isFile(r.mode))throw new Ve.ErrnoError(28);var n=Ve.nodePermissions(r,"w");if(n)throw new Ve.ErrnoError(n);r.node_ops.setattr(r,{size:t,timestamp:Date.now()})},ftruncate:function(e,t){var r=Ve.getStream(e);if(!r)throw new Ve.ErrnoError(8);if(!(2097155&r.flags))throw new Ve.ErrnoError(28);Ve.truncate(r.node,t)},utime:function(e,t,r){var n=Ve.lookupPath(e,{follow:!0}).node;n.node_ops.setattr(n,{timestamp:Math.max(t,r)})},open:function(e,t,r,o,i){if(""===e)throw new Ve.ErrnoError(44);var a;if(r=void 0===r?438:r,r=64&(t="string"==typeof t?Ve.modeStringToFlags(t):t)?4095&r|32768:0,"object"===E(e))a=e;else{e=je.normalize(e);try{a=Ve.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var s=!1;if(64&t)if(a){if(128&t)throw new Ve.ErrnoError(20)}else a=Ve.mknod(e,r,0),s=!0;if(!a)throw new Ve.ErrnoError(44);if(Ve.isChrdev(a.mode)&&(t&=-513),65536&t&&!Ve.isDir(a.mode))throw new Ve.ErrnoError(54);if(!s){var A=Ve.mayOpen(a,t);if(A)throw new Ve.ErrnoError(A)}512&t&&Ve.truncate(a,0),t&=-131713;var c=Ve.createStream({node:a,path:Ve.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),!n.logReadFiles||1&t||(Ve.readFiles||(Ve.readFiles={}),e in Ve.readFiles||(Ve.readFiles[e]=1,h("FS.trackingDelegate error on read file: ".concat(e))));try{if(Ve.trackingDelegate.onOpenFile){var u=0;1!=(2097155&t)&&(u|=Ve.tracking.openFlags.READ),2097155&t&&(u|=Ve.tracking.openFlags.WRITE),Ve.trackingDelegate.onOpenFile(e,u)}}catch(t){h("FS.trackingDelegate['onOpenFile']('".concat(e,"', flags) threw an exception: ").concat(t.message))}return c},close:function(e){if(Ve.isClosed(e))throw new Ve.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{Ve.closeStream(e.fd)}e.fd=null},isClosed:function(e){return null===e.fd},llseek:function(e,t,r){if(Ve.isClosed(e))throw new Ve.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new Ve.ErrnoError(70);if(0!=r&&1!=r&&2!=r)throw new Ve.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 Ve.ErrnoError(28);if(Ve.isClosed(e))throw new Ve.ErrnoError(8);if(1==(2097155&e.flags))throw new Ve.ErrnoError(8);if(Ve.isDir(e.node.mode))throw new Ve.ErrnoError(31);if(!e.stream_ops.read)throw new Ve.ErrnoError(28);var i=void 0!==o;if(i){if(!e.seekable)throw new Ve.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 Ve.ErrnoError(28);if(Ve.isClosed(e))throw new Ve.ErrnoError(8);if(!(2097155&e.flags))throw new Ve.ErrnoError(8);if(Ve.isDir(e.node.mode))throw new Ve.ErrnoError(31);if(!e.stream_ops.write)throw new Ve.ErrnoError(28);e.seekable&&1024&e.flags&&Ve.llseek(e,0,2);var a=void 0!==o;if(a){if(!e.seekable)throw new Ve.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&&Ve.trackingDelegate.onWriteToFile&&Ve.trackingDelegate.onWriteToFile(e.path)}catch(t){h("FS.trackingDelegate['onWriteToFile']('".concat(e.path,"') threw an exception: ").concat(t.message))}return s},allocate:function(e,t,r){if(Ve.isClosed(e))throw new Ve.ErrnoError(8);if(t<0||r<=0)throw new Ve.ErrnoError(28);if(!(2097155&e.flags))throw new Ve.ErrnoError(8);if(!Ve.isFile(e.node.mode)&&!Ve.isDir(e.node.mode))throw new Ve.ErrnoError(43);if(!e.stream_ops.allocate)throw new Ve.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 Ve.ErrnoError(2);if(1==(2097155&e.flags))throw new Ve.ErrnoError(2);if(!e.stream_ops.mmap)throw new Ve.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 Ve.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 "'.concat(t.encoding,'"'));var r,n=Ve.open(e,t.flags),o=Ve.stat(e).size,i=new Uint8Array(o);return Ve.read(n,i,0,o,0),"utf8"===t.encoding?r=O(i,0):"binary"===t.encoding&&(r=i),Ve.close(n),r},writeFile:function(e,t,r){(r=r||{}).flags=r.flags||577;var n=Ve.open(e,r.flags,r.mode);if("string"==typeof t){var o=new Uint8Array(R(t)+1),i=T(t,o,0,o.length);Ve.write(n,o,0,i,void 0,r.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");Ve.write(n,t,0,t.byteLength,void 0,r.canOwn)}Ve.close(n)},cwd:function(){return Ve.currentPath},chdir:function(e){var t=Ve.lookupPath(e,{follow:!0});if(null===t.node)throw new Ve.ErrnoError(44);if(!Ve.isDir(t.node.mode))throw new Ve.ErrnoError(54);var r=Ve.nodePermissions(t.node,"x");if(r)throw new Ve.ErrnoError(r);Ve.currentPath=t.path},createDefaultDirectories:function(){Ve.mkdir("/tmp"),Ve.mkdir("/home"),Ve.mkdir("/home/web_user")},createDefaultDevices:function(){Ve.mkdir("/dev"),Ve.registerDevice(Ve.makedev(1,3),{read:function(){return 0},write:function(e,t,r,n,o){return n}}),Ve.mkdev("/dev/null",Ve.makedev(1,3)),He.register(Ve.makedev(5,0),He.default_tty_ops),He.register(Ve.makedev(6,0),He.default_tty1_ops),Ve.mkdev("/dev/tty",Ve.makedev(5,0)),Ve.mkdev("/dev/tty1",Ve.makedev(6,0));var e=Ue();Ve.createDevice("/dev","random",e),Ve.createDevice("/dev","urandom",e),Ve.mkdir("/dev/shm"),Ve.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){Ve.mkdir("/proc");var e=Ve.mkdir("/proc/self");Ve.mkdir("/proc/self/fd"),Ve.mount({mount:function(){var t=Ve.createNode(e,"fd",16895,73);return t.node_ops={lookup:function(e,t){var r=+t,n=Ve.getStream(r);if(!n)throw new Ve.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(){n.stdin?Ve.createDevice("/dev","stdin",n.stdin):Ve.symlink("/dev/tty","/dev/stdin"),n.stdout?Ve.createDevice("/dev","stdout",null,n.stdout):Ve.symlink("/dev/tty","/dev/stdout"),n.stderr?Ve.createDevice("/dev","stderr",null,n.stderr):Ve.symlink("/dev/tty1","/dev/stderr");var e=Ve.open("/dev/stdin",0),t=Ve.open("/dev/stdout",1),r=Ve.open("/dev/stderr",1);v(0===e.fd,"invalid handle for stdin (".concat(e.fd,")")),v(1===t.fd,"invalid handle for stdout (".concat(t.fd,")")),v(2===r.fd,"invalid handle for stderr (".concat(r.fd,")"))},ensureErrnoError:function(){Ve.ErrnoError||(Ve.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){for(var t in this.errno=e,We)if(We[t]===e){this.code=t;break}},this.setErrno(e),this.message=Xe[e],this.stack&&(Object.defineProperty(this,"stack",{value:(new Error).stack,writable:!0}),this.stack=Me(this.stack))},Ve.ErrnoError.prototype=new Error,Ve.ErrnoError.prototype.constructor=Ve.ErrnoError,[44].forEach((function(e){Ve.genericErrors[e]=new Ve.ErrnoError(e),Ve.genericErrors[e].stack="<generic error, no stack>"})))},staticInit:function(){Ve.ensureErrnoError(),Ve.nameTable=new Array(4096),Ve.mount(Ye,{},"/"),Ve.createDefaultDirectories(),Ve.createDefaultDevices(),Ve.createSpecialDirectories(),Ve.filesystems={MEMFS:Ye}},init:function(e,t,r){v(!Ve.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)"),Ve.init.initialized=!0,Ve.ensureErrnoError(),n.stdin=e||n.stdin,n.stdout=t||n.stdout,n.stderr=r||n.stderr,Ve.createStandardStreams()},quit:function(){Ve.init.initialized=!1;var e=n._fflush;e&&e(0);for(var t=0;t<Ve.streams.length;t++){var r=Ve.streams[t];r&&Ve.close(r)}},getMode:function(e,t){var r=0;return e&&(r|=365),t&&(r|=146),r},findObject:function(e,t){var r=Ve.analyzePath(e,t);return r.exists?r.object:null},analyzePath:function(e,t){try{e=(n=Ve.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=Ve.lookupPath(e,{parent:!0});r.parentExists=!0,r.parentPath=n.path,r.parentObject=n.node,r.name=je.basename(e),n=Ve.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:Ve.getPath(e);for(var o=t.split("/").reverse();o.length;){var i=o.pop();if(i){var a=je.join2(e,i);try{Ve.mkdir(a)}catch(e){}e=a}}return a},createFile:function(e,t,r,n,o){var i=je.join2("string"==typeof e?e:Ve.getPath(e),t),a=Ve.getMode(n,o);return Ve.create(i,a)},createDataFile:function(e,t,r,n,o,i){var a=t?je.join2("string"==typeof e?e:Ve.getPath(e),t):e,s=Ve.getMode(n,o),A=Ve.create(a,s);if(r){if("string"==typeof r){for(var c=new Array(r.length),u=0,g=r.length;u<g;++u)c[u]=r.charCodeAt(u);r=c}Ve.chmod(A,146|s);var d=Ve.open(A,577);Ve.write(d,r,0,r.length,0,i),Ve.close(d),Ve.chmod(A,s)}return A},createDevice:function(e,t,r,n){var o=je.join2("string"==typeof e?e:Ve.getPath(e),t),i=Ve.getMode(!!r,!!n);Ve.createDevice.major||(Ve.createDevice.major=64);var a=Ve.makedev(Ve.createDevice.major++,0);return Ve.registerDevice(a,{open:function(e){e.seekable=!1},close:function(e){n&&n.buffer&&n.buffer.length&&n(10)},read:function(e,t,n,o,i){for(var a=0,s=0;s<o;s++){var A;try{A=r()}catch(e){throw new Ve.ErrnoError(29)}if(void 0===A&&0===a)throw new Ve.ErrnoError(6);if(null==A)break;a++,t[n+s]=A}return a&&(e.node.timestamp=Date.now()),a},write:function(e,t,r,o,i){for(var a=0;a<o;a++)try{n(t[r+a])}catch(e){throw new Ve.ErrnoError(29)}return o&&(e.node.timestamp=Date.now()),a}}),Ve.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(!d)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=on(d(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new Ve.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 ".concat(r,". Status: ").concat(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 (".concat(e,", ").concat(t,") or no bytes requested!"));if(t>n-1)throw new Error("only ".concat(n," bytes available! programmer error!"));var o=new XMLHttpRequest;if(o.open("GET",r,!1),n!==a&&o.setRequestHeader("Range","bytes=".concat(e,"-").concat(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 ".concat(r,". Status: ").concat(o.status));return void 0!==o.response?new Uint8Array(o.response||[]):on(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,p("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(!c)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var a=new i;Object.defineProperties(a,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var s={isDevice:!1,contents:a}}else s={isDevice:!1,url:r};var A=Ve.createFile(e,t,s,n,o);s.contents?A.contents=s.contents:s.url&&(A.contents=null,A.url=s.url),Object.defineProperties(A,{usedBytes:{get:function(){return this.contents.length}}});var u={};return Object.keys(A.stream_ops).forEach((function(e){var t=A.stream_ops[e];u[e]=function(){return Ve.forceLoadFile(A),t.apply(null,arguments)}})),u.read=function(e,t,r,n,o){Ve.forceLoadFile(A);var i=e.node.contents;if(o>=i.length)return 0;var a=Math.min(i.length-o,n);if(v(a>=0),i.slice)for(var s=0;s<a;s++)t[r+s]=i[o+s];else for(s=0;s<a;s++)t[r+s]=i.get(o+s);return a},A.stream_ops=u,A},createPreloadedFile:function(e,t,r,o,i,a,s,A,c,u){Te.init();var g=t?Le.resolve(je.join2(e,t)):e,d=me("cp ".concat(g));function f(r){function l(r){u&&u(),A||Ve.createDataFile(e,t,r,o,i,c),a&&a(),Ce(d)}var f=!1;n.preloadPlugins.forEach((function(e){f||e.canHandle(g)&&(e.handle(r,g,l,(function(){s&&s(),Ce(d)})),f=!0)})),f||l(r)}ye(d),"string"==typeof r?function(e,t,r){var n=me("al ".concat(e));l(e,(function(r){v(r,'Loading data file "'.concat(e,'" failed (no arrayBuffer).')),t(new Uint8Array(r)),n&&Ce(n)}),(function(t){if(!r)throw'Loading data file "'.concat(e,'" failed.');r()})),n&&ye(n)}(r,(function(e){f(e)}),s):f(r)},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return"EM_FS_".concat(window.location.pathname)},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(e,t,r){t=t||function(){},r=r||function(){};var n=Ve.indexedDB();try{var o=n.open(Ve.DB_NAME(),Ve.DB_VERSION)}catch(e){return r(e)}o.onupgradeneeded=function(){p("creating db"),o.result.createObjectStore(Ve.DB_STORE_NAME)},o.onsuccess=function(){var n=o.result.transaction([Ve.DB_STORE_NAME],"readwrite"),i=n.objectStore(Ve.DB_STORE_NAME),a=0,s=0,A=e.length;function c(){0==s?t():r()}e.forEach((function(e){var t=i.put(Ve.analyzePath(e).object.contents,e);t.onsuccess=function(){++a+s==A&&c()},t.onerror=function(){s++,a+s==A&&c()}})),n.onerror=r},o.onerror=r},loadFilesFromDB:function(e,t,r){t=t||function(){},r=r||function(){};var n=Ve.indexedDB();try{var o=n.open(Ve.DB_NAME(),Ve.DB_VERSION)}catch(e){return r(e)}o.onupgradeneeded=r,o.onsuccess=function(){var n=o.result;try{var i=n.transaction([Ve.DB_STORE_NAME],"readonly")}catch(e){return void r(e)}var a=i.objectStore(Ve.DB_STORE_NAME),s=0,A=0,c=e.length;function u(){0==A?t():r()}e.forEach((function(e){var t=a.get(e);t.onsuccess=function(){Ve.analyzePath(e).exists&&Ve.unlink(e),Ve.createDataFile(je.dirname(e),je.basename(e),t.result,!0,!0,!0),++s+A==c&&u()},t.onerror=function(){A++,s+A==c&&u()}})),i.onerror=r},o.onerror=r},absolutePath:function(){we("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder:function(){we("FS.createFolder has been removed; use FS.mkdir instead")},createLink:function(){we("FS.createLink has been removed; use FS.symlink instead")},joinPath:function(){we("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc:function(){we("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath:function(){we("FS.standardizePath has been removed; use PATH.normalize instead")}},ze={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt:function(e,t,r){if("/"===t[0])return t;var n;if(-100===e)n=Ve.cwd();else{var o=Ve.getStream(e);if(!o)throw new Ve.ErrnoError(8);n=o.path}if(0==t.length){if(!r)throw new Ve.ErrnoError(44);return n}return je.join2(n,t)},doStat:function(e,t,r){try{var n=e(t)}catch(e){if(e&&e.node&&je.normalize(t)!==je.normalize(Ve.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,fe=[n.size>>>0,(le=n.size,+Math.abs(le)>=1?le>0?(0|Math.min(+Math.floor(le/4294967296),4294967295))>>>0:~~+Math.ceil((le-+(~~le>>>0))/4294967296)>>>0:0)],j[r+40>>2]=fe[0],j[r+44>>2]=fe[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,fe=[n.ino>>>0,(le=n.ino,+Math.abs(le)>=1?le>0?(0|Math.min(+Math.floor(le/4294967296),4294967295))>>>0:~~+Math.ceil((le-+(~~le>>>0))/4294967296)>>>0:0)],j[r+80>>2]=fe[0],j[r+84>>2]=fe[1],0},doMsync:function(e,t,r,n,o){var i=k.slice(e,e+r);Ve.msync(t,i,o,r,n)},doMkdir:function(e,t){return"/"===(e=je.normalize(e))[e.length-1]&&(e=e.substr(0,e.length-1)),Ve.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 Ve.mknod(e,t,r),0},doReadlink:function(e,t,r){if(r<=0)return-28;var n=Ve.readlink(e),o=Math.min(r,R(n)),i=F[t+o];return M(n,t,r+1),F[t+o]=i,o},doAccess:function(e,t){if(-8&t)return-28;var r;if(!(r=Ve.lookupPath(e,{follow:!0}).node))return-44;var n="";return 4&t&&(n+="r"),2&t&&(n+="w"),1&t&&(n+="x"),n&&Ve.nodePermissions(r,n)?-2:0},doDup:function(e,t,r){var n=Ve.getStream(r);return n&&Ve.close(n),Ve.open(e,t,0,r,r).fd},doReadv:function(e,t,r,n){for(var o=0,i=0;i<r;i++){var a=j[t+8*i>>2],s=j[t+(8*i+4)>>2],A=Ve.read(e,F,a,s,n);if(A<0)return-1;if(o+=A,A<s)break}return o},doWritev:function(e,t,r,n){for(var o=0,i=0;i<r;i++){var a=j[t+8*i>>2],s=j[t+(8*i+4)>>2],A=Ve.write(e,F,a,s,n);if(A<0)return-1;o+=A}return o},varargs:void 0,get:function(){return v(null!=ze.varargs),ze.varargs+=4,j[ze.varargs-4>>2]},getStr:function(e){return Q(e)},getStreamFromFD:function(e){var t=Ve.getStream(e);if(!t)throw new Ve.ErrnoError(8);return t},get64:function(e,t){return v(e>=0?0===t:-1===t),e}},Je=48,Ke=57;function Ze(e){if(void 0===e)return"_unknown";var t=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return t>=Je&&t<=Ke?"_".concat(e):e}function qe(e,t){return e=Ze(e),new Function("body","return function ".concat(e,'() {\n "use strict"; return body.apply(this, arguments);\n};\n'))(t)}var $e=[],et=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function tt(){for(var e=0,t=5;t<et.length;++t)void 0!==et[t]&&++e;return e}function rt(){for(var e=5;e<et.length;++e)if(void 0!==et[e])return et[e];return null}function nt(e){switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var t=$e.length?$e.pop():et.length;return et[t]={refcount:1,value:e},t}}function ot(e,t){var r=qe(t,(function(e){this.name=t,this.message=e;var r=new Error(e).stack;void 0!==r&&(this.stack="".concat(this.toString(),"\n").concat(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:"".concat(this.name,": ").concat(this.message)},r}var it=void 0,at=void 0;function st(e){for(var t="",r=e;k[r];)t+=at[k[r++]];return t}function At(){return Object.keys(ft).length}function ct(){var e=[];for(var t in ft)ft.hasOwnProperty(t)&&e.push(ft[t]);return e}var ut=[];function gt(){for(;ut.length;){var e=ut.pop();e.$$.deleteScheduled=!1,e.delete()}}var dt=void 0;function lt(e){dt=e,ut.length&&dt&&dt(gt)}var ft={},Et=void 0;function pt(e){throw new Et(e)}function ht(e,t){for(void 0===t&&pt("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t}function It(e){return e||pt("Cannot use deleted val. handle = ".concat(e)),et[e].value}var mt={};function yt(e){var t=un(e),r=st(t);return sn(t),r}function Ct(e,t){var r=mt[e];return void 0===r&&pt("".concat(t," has unknown type ").concat(yt(e))),r}function wt(e){}var _t=!1;function Bt(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):(_t=new FinalizationGroup((function(e){for(var t=e.next();!t.done;t=e.next()){var r=t.value;r.ptr?Bt(r):console.warn("object already deleted: ".concat(r.ptr))}})),wt=function(e){_t.unregister(e.$$)},(vt=function(e){return _t.register(e,e.$$,e.$$),e})(e))}var Dt={};function bt(e){for(;e.length;){var t=e.pop();e.pop()(t)}}function Ot(e){return this.fromWireType(U[e>>2])}var Qt={},Tt={},Pt=void 0;function Mt(e){throw new Pt(e)}function Rt(e,t,r){function n(t){var n=r(t);n.length!==e.length&&Mt("Mismatched type converter count");for(var o=0;o<e.length;++o)Ft(e[o],n[o])}e.forEach((function(e){Tt[e]=t}));var o=new Array(t.length),i=[],a=0;t.forEach((function(e,t){mt.hasOwnProperty(e)?o[t]=mt[e]:(i.push(e),Qt.hasOwnProperty(e)||(Qt[e]=[]),Qt[e].push((function(){o[t]=mt[e],++a===i.length&&n(o)})))})),0===i.length&&n(o)}function St(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: ".concat(e))}}function Ft(e,t,r){if(r=r||{},!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");var n=t.name;if(e||pt('type "'.concat(n,'" must have a positive integer typeid pointer')),mt.hasOwnProperty(e)){if(r.ignoreDuplicateRegistrations)return;pt("Cannot register type '".concat(n,"' twice"))}if(mt[e]=t,delete Tt[e],Qt.hasOwnProperty(e)){var o=Qt[e];delete Qt[e],o.forEach((function(e){e()}))}}function kt(e){if(!(this instanceof Ht))return!1;if(!(e instanceof Ht))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 xt(e){pt("".concat(e.$$.ptrType.registeredClass.name," instance already deleted"))}function Nt(){if(this.$$.ptr||xt(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 jt(){this.$$.ptr||xt(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&pt("Object already scheduled for deletion"),wt(this),Bt(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Ut(){return!this.$$.ptr}function Lt(){return this.$$.ptr||xt(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&pt("Object already scheduled for deletion"),ut.push(this),1===ut.length&&dt&&dt(gt),this.$$.deleteScheduled=!0,this}function Ht(){}var Gt={};function Yt(e,t,r){if(void 0===e[t].overloadTable){var n=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||pt("Function '".concat(r,"' called with an invalid number of arguments (").concat(arguments.length,") - expects one of (").concat(e[t].overloadTable,")!")),e[t].overloadTable[arguments.length].apply(this,arguments)},e[t].overloadTable=[],e[t].overloadTable[n.argCount]=n}}function Xt(e,t,r){n.hasOwnProperty(e)?((void 0===r||void 0!==n[e].overloadTable&&void 0!==n[e].overloadTable[r])&&pt("Cannot register public name '".concat(e,"' twice")),Yt(n,e,e),n.hasOwnProperty(r)&&pt("Cannot register multiple overloads of a function with the same number of arguments (".concat(r,")!")),n[e].overloadTable[r]=t):(n[e]=t,void 0!==r&&(n[e].numArguments=r))}function Wt(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 Vt(e,t,r){for(;t!==r;)t.upcast||pt("Expected null or instance of ".concat(r.name,", got an instance of ").concat(t.name)),e=t.upcast(e),t=t.baseClass;return e}function zt(e,t){if(null===t)return this.isReference&&pt("null is not a valid ".concat(this.name)),0;t.$$||pt('Cannot pass "'.concat(fr(t),'" as a ').concat(this.name)),t.$$.ptr||pt("Cannot pass deleted object as a pointer of type ".concat(this.name));var r=t.$$.ptrType.registeredClass;return Vt(t.$$.ptr,r,this.registeredClass)}function Jt(e,t){var r;if(null===t)return this.isReference&&pt("null is not a valid ".concat(this.name)),this.isSmartPointer?(r=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,r),r):0;t.$$||pt('Cannot pass "'.concat(fr(t),'" as a ').concat(this.name)),t.$$.ptr||pt("Cannot pass deleted object as a pointer of type ".concat(this.name)),!this.isConst&&t.$$.ptrType.isConst&&pt("Cannot convert argument of type ".concat(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name," to parameter type ").concat(this.name));var n=t.$$.ptrType.registeredClass;if(r=Vt(t.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===t.$$.smartPtr&&pt("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?r=t.$$.smartPtr:pt("Cannot convert argument of type ".concat(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name," to parameter type ").concat(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,nt((function(){o.delete()}))),null!==e&&e.push(this.rawDestructor,r)}break;default:pt("Unsupporting sharing policy")}return r}function Kt(e,t){if(null===t)return this.isReference&&pt("null is not a valid ".concat(this.name)),0;t.$$||pt('Cannot pass "'.concat(fr(t),'" as a ').concat(this.name)),t.$$.ptr||pt("Cannot pass deleted object as a pointer of type ".concat(this.name)),t.$$.ptrType.isConst&&pt("Cannot convert argument of type ".concat(t.$$.ptrType.name," to parameter type ").concat(this.name));var r=t.$$.ptrType.registeredClass;return Vt(t.$$.ptr,r,this.registeredClass)}function Zt(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e}function qt(e){this.rawDestructor&&this.rawDestructor(e)}function $t(e){null!==e&&e.delete()}function er(e,t,r){if(t===r)return e;if(void 0===r.baseClass)return null;var n=er(e,t,r.baseClass);return null===n?null:r.downcast(n)}function tr(e,t){return t.ptrType&&t.ptr||Mt("makeClassHandle requires ptr and ptrType"),!!t.smartPtrType!=!!t.smartPtr&&Mt("Both smartPtrType and smartPtr must be specified"),t.count={value:1},vt(Object.create(e,{$$:{value:t}}))}function rr(e){var t=this.getPointee(e);if(!t)return this.destructor(e),null;var r=function(e,t){return t=ht(e,t),ft[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?tr(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):tr(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var i,a=this.registeredClass.getActualType(t),s=Gt[a];if(!s)return o.call(this);i=this.isConst?s.constPointerType:s.pointerType;var A=er(t,this.registeredClass,i.registeredClass);return null===A?o.call(this):this.isSmartPointer?tr(i.registeredClass.instancePrototype,{ptrType:i,ptr:A,smartPtrType:this,smartPtr:e}):tr(i.registeredClass.instancePrototype,{ptrType:i,ptr:A})}function nr(e,t,r,n,o,i,a,s,A,c,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=A,this.rawShare=c,this.rawDestructor=u,o||void 0!==t.baseClass?this.toWireType=Jt:n?(this.toWireType=zt,this.destructorFunction=null):(this.toWireType=Kt,this.destructorFunction=null)}function or(e,t,r){n.hasOwnProperty(e)||Mt("Replacing nonexistant public symbol"),void 0!==n[e].overloadTable&&void 0!==r?n[e].overloadTable[r]=t:(n[e]=t,n[e].argCount=r)}function ir(e,t,r){return e.includes("j")?function(e,t,r){v("dynCall_".concat(e)in n,"bad function pointer type - no table for sig '".concat(e,"'")),r&&r.length?v(r.length===e.substring(1).replace(/j/g,"--").length):v(1==e.length);var o=n["dynCall_".concat(e)];return r&&r.length?o.apply(null,[t].concat(r)):o.call(null,t)}(e,t,r):(v($.get(t),"missing table entry in dynCall: ".concat(t)),$.get(t).apply(null,r))}function ar(e,t){var r=(e=st(e)).includes("j")?function(e,t){v(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 ir(e,t,r)}}(e,t):$.get(t);return"function"!=typeof r&&pt("unknown function pointer with signature ".concat(e,": ").concat(t)),r}var sr=void 0;function Ar(e,t){var r=[],n={};throw t.forEach((function e(t){n[t]||mt[t]||(Tt[t]?Tt[t].forEach(e):(r.push(t),n[t]=!0))})),new sr("".concat(e,": ").concat(r.map(yt).join([", "])))}function cr(e,t){if(!(e instanceof Function))throw new TypeError("new_ called with constructor type ".concat(E(e)," which is not a function"));var r=qe(e.name||"unknownFunctionName",(function(){}));r.prototype=e.prototype;var n=new r,o=e.apply(n,t);return o instanceof Object?o:n}function ur(e,t,r,n,o){var i=t.length;i<2&&pt("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var a=null!==t[1]&&null!==r,s=!1,A=1;A<t.length;++A)if(null!==t[A]&&void 0===t[A].destructorFunction){s=!0;break}var c="void"!==t[0].name,u="",g="";for(A=0;A<i-2;++A)u+="".concat(0!==A?", ":"","arg").concat(A),g+="".concat(0!==A?", ":"","arg").concat(A,"Wired");var d="return function ".concat(Ze(e),"(").concat(u,") {\nif (arguments.length !== ").concat(i-2,") {\nthrowBindingError('function ").concat(e," called with ' + arguments.length + ' arguments, expected ").concat(i-2," args!');\n}\n");s&&(d+="var destructors = [];\n");var l=s?"destructors":"null",f=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],E=[pt,n,o,bt,t[0],t[1]];for(a&&(d+="var thisWired = classParam.toWireType(".concat(l,", this);\n")),A=0;A<i-2;++A)d+="var arg".concat(A,"Wired = argType").concat(A,".toWireType(").concat(l,", arg").concat(A,"); // ").concat(t[A+2].name,"\n"),f.push("argType".concat(A)),E.push(t[A+2]);if(a&&(g="thisWired".concat(g.length>0?", ":"").concat(g)),d+="".concat(c?"var rv = ":"","invoker(fn").concat(g.length>0?", ":"").concat(g,");\n"),s)d+="runDestructors(destructors);\n";else for(A=a?1:2;A<t.length;++A){var p=1===A?"thisWired":"arg".concat(A-2,"Wired");null!==t[A].destructorFunction&&(d+="".concat(p,"_dtor(").concat(p,"); // ").concat(t[A].name,"\n"),f.push("".concat(p,"_dtor")),E.push(t[A].destructorFunction))}return c&&(d+="var ret = retType.fromWireType(rv);\nreturn ret;\n"),d+="}\n",f.push(d),cr(Function,f).apply(null,E)}function gr(e,t){for(var r=[],n=0;n<e;n++)r.push(j[(t>>2)+n]);return r}function dr(e,t,r){return e instanceof Object||pt("".concat(r,' with invalid "this": ').concat(e)),e instanceof t.registeredClass.constructor||pt("".concat(r,' incompatible with "this" of type ').concat(e.constructor.name)),e.$$.ptr||pt("cannot call emscripten binding method ".concat(r," on deleted object")),Vt(e.$$.ptr,e.$$.ptrType.registeredClass,t.registeredClass)}function lr(e){e>4&&0==--et[e].refcount&&(et[e]=void 0,$e.push(e))}function fr(e){if(null===e)return"null";var t=E(e);return"object"===t||"array"===t||"function"===t?e.toString():"".concat(e)}function Er(e,t){switch(t){case 2:return function(e){return this.fromWireType(L[e>>2])};case 3:return function(e){return this.fromWireType(H[e>>3])};default:throw new TypeError("Unknown float type: ".concat(e))}}function pr(e,t,r){switch(t){case 0:return r?function(e){return F[e]}:function(e){return k[e]};case 1:return r?function(e){return x[e>>1]}:function(e){return N[e>>1]};case 2:return r?function(e){return j[e>>2]}:function(e){return U[e>>2]};default:throw new TypeError("Unknown integer type: ".concat(e))}}var hr={},Ir=[],mr=[];function yr(e){try{return C.grow(e-S.byteLength+65535>>>16),Z(C.buffer),1}catch(t){h("emscripten_realloc_buffer: Attempted to grow heap from ".concat(S.byteLength," bytes to ").concat(e," bytes, but got error: ").concat(t))}}function Cr(e){we("Cannot use emscripten_generate_pc (needed by __builtin_return_address) without -s USE_OFFSET_CONVERTER")}var wr={};function _r(e){e.forEach((function(e){var t=Cr();t&&(wr[t]=e)}))}var Br={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){Br.lastError||(Br.lastError=e)},getNewId:function(e){for(var t=Br.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=Br.log2ceilLookup(Br.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=Br.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=Zr.createBuffer(),t.GLctx.bindBuffer(34963,t.tempQuadIndexBuffer);for(var A=Br.MAX_TEMP_BUFFER_SIZE>>1,c=new Uint16Array(A),u=(n=0,0);c[n++]=u,!(n>=A||(c[n++]=u+1,n>=A)||(c[n++]=u+2,n>=A)||(c[n++]=u,n>=A)||(c[n++]=u+2,n>=A)||(c[n++]=u+3,n>=A));)u+=4;t.GLctx.bufferData(34963,c,35044),t.GLctx.bindBuffer(34963,null)}},getTempVertexBuffer:function(e){var t=Br.log2ceilLookup(e),r=Br.currentContext.tempVertexBuffers1[t],n=Br.currentContext.tempVertexBufferCounters1[t];Br.currentContext.tempVertexBufferCounters1[t]=Br.currentContext.tempVertexBufferCounters1[t]+1&Br.numTempVertexBuffersPerSize-1;var o=r[n];if(o)return o;var i=Zr.getParameter(34964);return r[n]=Zr.createBuffer(),Zr.bindBuffer(34962,r[n]),Zr.bufferData(34962,1<<t,35048),Zr.bindBuffer(34962,i),r[n]},getTempIndexBuffer:function(e){var t=Br.log2ceilLookup(e),r=Br.currentContext.tempIndexBuffers[t];if(r)return r;var n=Zr.getParameter(34965);return Br.currentContext.tempIndexBuffers[t]=Zr.createBuffer(),Zr.bindBuffer(34963,Br.currentContext.tempIndexBuffers[t]),Zr.bufferData(34963,1<<t,35048),Zr.bindBuffer(34963,n),Br.currentContext.tempIndexBuffers[t]},newRenderingFrameStarted:function(){if(Br.currentContext){var e=Br.currentContext.tempVertexBuffers1;Br.currentContext.tempVertexBuffers1=Br.currentContext.tempVertexBuffers2,Br.currentContext.tempVertexBuffers2=e,e=Br.currentContext.tempVertexBufferCounters1,Br.currentContext.tempVertexBufferCounters1=Br.currentContext.tempVertexBufferCounters2,Br.currentContext.tempVertexBufferCounters2=e;for(var t=Br.log2ceilLookup(Br.MAX_TEMP_BUFFER_SIZE),r=0;r<=t;++r)Br.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+=Q(j[r+4*i>>2],a<0?void 0:a)}return o},calcBufLength:function(e,t,r,n){return r>0?n*r:e*Br.byteSizeByType[t-Br.byteSizeByTypeRoot]*n},usedTempBuffers:[],preDrawHandleClientVertexAttribBindings:function(e){Br.resetBufferBinding=!1;for(var t=0;t<Br.currentContext.maxVertexAttribs;++t){var r=Br.currentContext.clientBuffers[t];if(r.clientside&&r.enabled){Br.resetBufferBinding=!0;var n=Br.calcBufLength(r.size,r.type,r.stride,e),o=Br.getTempVertexBuffer(n);Zr.bindBuffer(34962,o),Zr.bufferSubData(34962,0,k.subarray(r.ptr,r.ptr+n)),r.vertexAttribPointerAdaptor.call(Zr,t,r.size,r.type,r.normalized,r.stride,0)}}},postDrawHandleClientVertexAttribBindings:function(){Br.resetBufferBinding&&Zr.bindBuffer(34962,Br.buffers[Zr.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?Br.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(),Br.resizeOffscreenFramebuffer(e),t.bindTexture(3553,e.defaultColorTarget),t.texParameteri(3553,10241,9728),t.texParameteri(3553,10240,9728),t.texParameteri(3553,10242,33071),t.texParameteri(3553,10243,33071),t.texImage2D(3553,0,6408,t.canvas.width,t.canvas.height,0,6408,5121,null),t.framebufferTexture2D(36160,36064,3553,e.defaultColorTarget,0),t.bindTexture(3553,null),t.createRenderbuffer(),t.bindRenderbuffer(36161,e.defaultDepthTarget),t.renderbufferStorage(36161,33189,t.canvas.width,t.canvas.height),t.framebufferRenderbuffer(36160,36096,36161,e.defaultDepthTarget),t.bindRenderbuffer(36161,null);var i=t.createBuffer();t.bindBuffer(34962,i),t.bufferData(34962,new Float32Array([-1,-1,-1,1,1,-1,1,1]),35044),t.bindBuffer(34962,null),e.blitVB=i;var a=t.createShader(35633);t.shaderSource(a,"attribute vec2 pos;varying lowp vec2 tex;void main() { tex = pos * 0.5 + vec2(0.5,0.5); gl_Position = vec4(pos, 0.0, 1.0); }"),t.compileShader(a);var s=t.createShader(35632);t.shaderSource(s,"varying lowp vec2 tex;uniform sampler2D sampler;void main() { gl_FragColor = texture2D(sampler, tex); }"),t.compileShader(s);var A=t.createProgram();t.attachShader(A,a),t.attachShader(A,s),t.linkProgram(A),e.blitProgram=A,e.blitPosLoc=t.getAttribLocation(A,"pos"),t.useProgram(A),t.uniform1i(t.getUniformLocation(A,"sampler"),0),t.useProgram(null),e.defaultVao=void 0,t.createVertexArray&&(e.defaultVao=t.createVertexArray(),t.bindVertexArray(e.defaultVao),t.enableVertexAttribArray(e.blitPosLoc),t.bindVertexArray(null))},resizeOffscreenFramebuffer:function(e){var t=e.GLctx;if(e.defaultColorTarget){var r=t.getParameter(32873);t.bindTexture(3553,e.defaultColorTarget),t.texImage2D(3553,0,6408,t.drawingBufferWidth,t.drawingBufferHeight,0,6408,5121,null),t.bindTexture(3553,r)}if(e.defaultDepthTarget){var n=t.getParameter(36007);t.bindRenderbuffer(36161,e.defaultDepthTarget),t.renderbufferStorage(36161,33189,t.drawingBufferWidth,t.drawingBufferHeight),t.bindRenderbuffer(36161,n)}},blitOffscreenFramebuffer:function(e){var t=e.GLctx,r=t.getParameter(3089);r&&t.disable(3089);var n=t.getParameter(36006);if(t.blitFramebuffer&&!e.defaultFboForbidBlitFramebuffer)t.bindFramebuffer(36008,e.defaultFbo),t.bindFramebuffer(36009,null),t.blitFramebuffer(0,0,t.canvas.width,t.canvas.height,0,0,t.canvas.width,t.canvas.height,16384,9728);else{var o=function(){t.vertexAttribPointer(e.blitPosLoc,2,5126,!1,0,0),t.drawArrays(5,0,4)};t.bindFramebuffer(36160,null);var i=t.getParameter(35725);t.useProgram(e.blitProgram);var a=t.getParameter(34964);t.bindBuffer(34962,e.blitVB);var s=t.getParameter(34016);t.activeTexture(33984);var A=t.getParameter(32873);t.bindTexture(3553,e.defaultColorTarget);var c=t.getParameter(3042);c&&t.disable(3042);var u=t.getParameter(2884);u&&t.disable(2884);var g=t.getParameter(2929);g&&t.disable(2929);var d=t.getParameter(2960);if(d&&t.disable(2960),e.defaultVao){var l=t.getParameter(34229);t.bindVertexArray(e.defaultVao),o(),t.bindVertexArray(l)}else{for(var f={buffer:t.getVertexAttrib(e.blitPosLoc,34975),size:t.getVertexAttrib(e.blitPosLoc,34339),stride:t.getVertexAttrib(e.blitPosLoc,34340),type:t.getVertexAttrib(e.blitPosLoc,34341),normalized:t.getVertexAttrib(e.blitPosLoc,34922),pointer:t.getVertexAttribOffset(e.blitPosLoc,34373)},E=t.getParameter(34921),p=[],h=0;h<E;++h){var I=t.getVertexAttrib(h,34338),m=h==e.blitPosLoc;I&&!m&&t.disableVertexAttribArray(h),!I&&m&&t.enableVertexAttribArray(h),p[h]=I}for(o(),h=0;h<E;++h){I=p[h];var y=h==e.blitPosLoc;I&&!y&&t.enableVertexAttribArray(h),!I&&y&&t.disableVertexAttribArray(h)}t.bindBuffer(34962,f.buffer),t.vertexAttribPointer(e.blitPosLoc,f.size,f.type,f.normalized,f.stride,f.offset)}d&&t.enable(2960),g&&t.enable(2929),u&&t.enable(2884),c&&t.enable(3042),t.bindTexture(3553,A),t.activeTexture(s),t.bindBuffer(34962,a),t.useProgram(i)}t.bindFramebuffer(36160,n),r&&t.enable(3089)},registerContext:function(e,t){var r=Br.getNewId(Br.contexts),n={handle:r,attributes:t,version:t.majorVersion,GLctx:e};e.canvas&&(e.canvas.GLctxObject=n),Br.contexts[r]=n,(void 0===t.enableExtensionsByDefault||t.enableExtensionsByDefault)&&Br.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 Br.generateTempBuffers(!1,n),t.renderViaOffscreenBackBuffer&&Br.createOffscreenFramebuffer(n),r},makeContextCurrent:function(e){return Br.currentContext=Br.contexts[e],n.ctx=Zr=Br.currentContext&&Br.currentContext.GLctx,!(e&&!Zr)},getContext:function(e){return Br.contexts[e]},deleteContext:function(e){Br.currentContext===Br.contexts[e]&&(Br.currentContext=null),"object"===E(vr)&&vr.removeAllHandlersOnTarget(Br.contexts[e].GLctx.canvas),Br.contexts[e]&&Br.contexts[e].GLctx.canvas&&(Br.contexts[e].GLctx.canvas.GLctxObject=void 0),Br.contexts[e]=null},initExtensions:function(e){if(e||(e=Br.currentContext),!e.initExtensionsDone){e.initExtensionsDone=!0;var t,r=e.GLctx;!function(e){var t=e.getExtension("ANGLE_instanced_arrays");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");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");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||(ie.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}},Dr=["default","low-power","high-performance"],br=[0,"undefined"!=typeof document?document:0,"undefined"!=typeof window?window:0];function Or(e){return"number"==typeof e&&(e=Q(e)),e&&"#canvas"!==e?void 0!==Br&&Br.offscreenCanvases[e]?Br.offscreenCanvases[e]:function(e){I("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=br[e]||Q(e)),"#window"===e?window:"#document"===e?document:"#screen"===e?screen:"#canvas"===e?n.canvas:"string"==typeof e?document.getElementById(e):e):window}catch(e){return null}}(e):void 0!==Br&&Br.offscreenCanvases.canvas?Br.offscreenCanvases.canvas:n.canvas}function Qr(){return Br.currentContext?Br.currentContext.handle:0}function Tr(e){return Br.makeContextCurrent(e)?0:-5}n._emscripten_webgl_get_current_context=Qr,n._emscripten_webgl_make_context_current=Tr;var Pr={};function Mr(){if(!Mr.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:"".concat(("object"===("undefined"==typeof navigator?"undefined":E(navigator))&&navigator.languages&&navigator.languages[0]||"C").replace("-","_"),".UTF-8"),_:a||"./this.program"};for(var t in Pr)void 0===Pr[t]?delete e[t]:e[t]=Pr[t];var r=[];for(var t in e)r.push("".concat(t,"=").concat(e[t]));Mr.strings=r}return Mr.strings}var Rr=[];function Sr(e,t,r,n){for(var o=0;o<e;o++){var i=Zr[r](),a=i&&Br.getNewId(n);i?(i.name=a,n[a]=i):Br.recordError(1282),j[t+4*o>>2]=a}}function Fr(e,t){U[e>>2]=t,U[e+4>>2]=(t-U[e>>2])/4294967296;var r=t>=0?function(e){return U[e>>2]+4294967296*U[e+4>>2]}(e):function(e){return U[e>>2]+4294967296*j[e+4>>2]}(e);r!=t&&I("writeI53ToI64() out of range: serialized JS Number ".concat(t," to Wasm heap as bytes lo=0x").concat(U[e>>2].toString(16),", hi=0x").concat(U[e+4>>2].toString(16),", which deserializes back to ").concat(r," instead!"))}function kr(e){var t=R(e)+1,r=An(t);return M(e,r,t),r}function xr(e){return"]"==e.slice(-1)&&e.lastIndexOf("[")}function Nr(e){return 0==(e-=5120)?F:1==e?k:2==e?x:4==e?j:6==e?L:5==e||28922==e||28520==e||30779==e||30782==e?U:N}function jr(e){return 31-Math.clz32(e.BYTES_PER_ELEMENT)}function Ur(e,t,r,n,o,i){var a=Nr(e),s=jr(a),A=1<<s,c=function(e){return{5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4}[e-6402]||1}(t)*A,u=function(e,t,r,n){var o;return t*(e*r+(o=n)-1&-o)}(r,n,c,Br.unpackAlignment);return a.subarray(o>>s,o+u>>s)}function Lr(e){var t=Zr.currentProgram;if(t){var r=t.uniformLocsById[e];return"number"==typeof r&&(t.uniformLocsById[e]=r=Zr.getUniformLocation(t,t.uniformArrayNamesById[e]+(r>0?"[".concat(r,"]"):""))),r}Br.recordError(1282)}var Hr=[],Gr=[];function Yr(){if(!Yr.called){Yr.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[fn()>>2]=60*i,j[ln()>>2]=Number(n!=o);var a=u(t),s=u(r),A=K(a),c=K(s);o<n?(j[dn()>>2]=A,j[dn()+4>>2]=c):(j[dn()>>2]=c,j[dn()+4>>2]=A)}function u(e){var t=e.toTimeString().match(/\(([A-Za-z ]+)\)$/);return t?t[1]:"GMT"}}function Xr(e){return e%4==0&&(e%100!=0||e%400==0)}function Wr(e,t){for(var r=0,n=0;n<=t;r+=e[n++]);return r}var Vr=[31,29,31,30,31,30,31,31,30,31,30,31],zr=[31,28,31,30,31,30,31,31,30,31,30,31];function Jr(e,t){for(var r=new Date(e.getTime());t>0;){var n=Xr(r.getFullYear()),o=r.getMonth(),i=(n?Vr:zr)[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 Kr(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?Q(o):""},a=Q(r),s={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var A in s)a=a.replace(new RegExp(A,"g"),s[A]);var c=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],u=["January","February","March","April","May","June","July","August","September","October","November","December"];function g(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 g(e,t,"0")}function l(e,t){function r(e){return e<0?-1:e>0?1:0}var n;return 0===(n=r(e.getFullYear()-t.getFullYear()))&&0===(n=r(e.getMonth()-t.getMonth()))&&(n=r(e.getDate()-t.getDate())),n}function 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 E(e){var t=Jr(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 l(o,t)<=0?l(i,t)<=0?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}var p={"%a":function(e){return c[e.tm_wday].substring(0,3)},"%A":function(e){return c[e.tm_wday]},"%b":function(e){return 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 g(e.tm_mday,2," ")},"%g":function(e){return E(e).toString().substring(2)},"%G":function(e){return E(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+Wr(Xr(e.tm_year+1900)?Vr:zr,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:Jr(t,7-t.getDay()),n=new Date(e.tm_year+1900,e.tm_mon,e.tm_mday);if(l(r,n)<0){var o=Wr(Xr(n.getFullYear())?Vr:zr,n.getMonth()-1)-31,i=31-r.getDate()+o+n.getDate();return d(Math.ceil(i/7),2)}return 0===l(r,t)?"01":"00"},"%V":function(e){var t,r=new Date(e.tm_year+1900,0,4),n=new Date(e.tm_year+1901,0,4),o=f(r),i=f(n),a=Jr(new Date(e.tm_year+1900,0,1),e.tm_yday);return l(a,o)<0?"53":l(i,a)<=0?"01":(t=o.getFullYear()<e.tm_year+1900?e.tm_yday+32-o.getDate():e.tm_yday+1-o.getDate(),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:Jr(t,0===t.getDay()?1:7-t.getDay()+1),n=new Date(e.tm_year+1900,e.tm_mon,e.tm_mday);if(l(r,n)<0){var o=Wr(Xr(n.getFullYear())?Vr:zr,n.getMonth()-1)-31,i=31-r.getDate()+o+n.getDate();return d(Math.ceil(i/7),2)}return 0===l(r,t)?"01":"00"},"%y":function(e){return(e.tm_year+1900).toString().substring(2)},"%Y":function(e){return e.tm_year+1900},"%z":function(e){var t=e.tm_gmtoff,r=t>=0;return t=(t=Math.abs(t)/60)/60*100+t%60,(r?"+":"-")+String("0000".concat(t)).slice(-4)},"%Z":function(e){return e.tm_zone},"%%":function(){return"%"}};for(var A in p)a.includes(A)&&(a=a.replace(new RegExp(A,"g"),p[A](i)));var h,I,m=on(a,!1);return m.length>t?0:(I=e,v((h=m).length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),F.set(h,I),m.length-1)}n.requestFullscreen=function(e,t){Te.requestFullscreen(e,t)},n.requestFullScreen=function(){Te.requestFullScreen()},n.requestAnimationFrame=function(e){Te.requestAnimationFrame(e)},n.setCanvasSize=function(e,t,r){Te.setCanvasSize(e,t,r)},n.pauseMainLoop=function(){Te.mainLoop.pause()},n.resumeMainLoop=function(){Te.mainLoop.resume()},n.getUserMedia=function(){Te.getUserMedia()},n.createContext=function(e,t,r,n){return Te.createContext(e,t,r,n)};var Zr,qr=function(e,t,r,n){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=Ve.nextInode++,this.name=t,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=n},$r=365,en=146;Object.defineProperties(qr.prototype,{read:{get:function(){return(this.mode&$r)===$r},set:function(e){e?this.mode|=$r:this.mode&=-366}},write:{get:function(){return(this.mode&en)===en},set:function(e){e?this.mode|=en:this.mode&=-147}},isFolder:{get:function(){return Ve.isDir(this.mode)}},isDevice:{get:function(){return Ve.isChrdev(this.mode)}}}),Ve.FSNode=qr,Ve.staticInit(),n.FS_createPath=Ve.createPath,n.FS_createDataFile=Ve.createDataFile,n.FS_createPreloadedFile=Ve.createPreloadedFile,n.FS_createLazyFile=Ve.createLazyFile,n.FS_createDevice=Ve.createDevice,n.FS_unlink=Ve.unlink,n.count_emval_handles=tt,n.get_first_emval=rt,it=n.PureVirtualError=ot(Error,"PureVirtualError"),function(){for(var e=new Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);at=e}(),n.getInheritedInstanceCount=At,n.getLiveInheritedInstances=ct,n.flushPendingDeletes=gt,n.setDelayFunction=lt,Et=n.BindingError=ot(Error,"BindingError"),Pt=n.InternalError=ot(Error,"InternalError"),Ht.prototype.isAliasOf=kt,Ht.prototype.clone=Nt,Ht.prototype.delete=jt,Ht.prototype.isDeleted=Ut,Ht.prototype.deleteLater=Lt,nr.prototype.getPointee=Zt,nr.prototype.destructor=qt,nr.prototype.argPackAdvance=8,nr.prototype.readValueFromPointer=Ot,nr.prototype.deleteObject=$t,nr.prototype.fromWireType=rr,sr=n.UnboundTypeError=ot(Error,"UnboundTypeError");for(var tn=0;tn<32;++tn)Rr.push(new Array(tn));var rn=new Float32Array(288);for(tn=0;tn<288;++tn)Hr[tn]=rn.subarray(0,tn+1);var nn=new Int32Array(288);for(tn=0;tn<288;++tn)Gr[tn]=nn.subarray(0,tn+1);function on(e,t,r){var n=R(e)+1,o=new Array(n),i=T(e,o,0,o.length);return t&&(o.length=i),o}var an={HaveOffsetConverter:function(){return"undefined"!=typeof wasmOffsetConverter},__cxa_allocate_exception:function(e){return An(e+16)+16},__cxa_atexit:function(e,t){},__cxa_begin_catch:function(e){var t=new Se(e),r=t.get_exception_info();return r.get_caught()||r.set_caught(!0),r.set_rethrown(!1),Fe.push(t),function(e){e.add_ref()}(r),t.get_exception_ptr()},__cxa_end_catch:function(){mn(0),v(Fe.length>0);var e=Fe.pop();!function(e){if(e.release_ref()&&!e.get_rethrown()){var t=e.get_destructor();t&&$.get(t)(e.excPtr),xe(e.excPtr)}}(e.get_exception_info()),e.free(),ke=0},__cxa_find_matching_catch_2:function(){var e=ke;if(!e)return y(0),0;var t=new Re(e).get_type(),r=new Se;if(r.set_base_ptr(e),r.set_adjusted_ptr(e),!t)return y(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(yn(i,t,r.get_adjusted_ptr_addr()))return y(i),0|r.ptr}return y(t),0|r.ptr},__cxa_find_matching_catch_3:function(){var e=ke;if(!e)return y(0),0;var t=new Re(e).get_type(),r=new Se;if(r.set_base_ptr(e),r.set_adjusted_ptr(e),!t)return y(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(yn(i,t,r.get_adjusted_ptr_addr()))return y(i),0|r.ptr}return y(t),0|r.ptr},__cxa_free_exception:xe,__cxa_rethrow:function(){var e=Fe.pop();e||we("no exception to throw");var t=e.get_exception_info(),r=e.get_base_ptr();throw t.get_rethrown()?e.free():(Fe.push(e),t.set_rethrown(!0),t.set_caught(!1)),ke=r,"".concat(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 Re(e).init(t,r),ke=e,"".concat(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 Se(e),r=t.get_base_ptr();throw ke||(ke=r),t.free(),"".concat(r," - Exception catching is disabled, this exception cannot be caught. Compile with -s NO_DISABLE_EXCEPTION_CATCHING or -s EXCEPTION_CATCHING_ALLOWED=[..] to catch.")},__sys_fcntl64:function(e,t,r){ze.varargs=r;try{var n=ze.getStreamFromFD(e);switch(t){case 0:return(o=ze.get())<0?-28:Ve.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=ze.get();return n.flags|=o,0;case 12:return o=ze.get(),x[o+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return Ne(28),-1}}catch(e){return void 0!==Ve&&e instanceof Ve.ErrnoError||we(e),-e.errno}},__sys_ioctl:function(e,t,r){ze.varargs=r;try{var n=ze.getStreamFromFD(e);switch(t){case 21509:case 21505:case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:case 21523:case 21524:return n.tty?0:-59;case 21519:if(!n.tty)return-59;var o=ze.get();return j[o>>2]=0,0;case 21520:return n.tty?-28:-59;case 21531:return o=ze.get(),Ve.ioctl(n,t,o);default:we("bad ioctl syscall ".concat(t))}}catch(e){return void 0!==Ve&&e instanceof Ve.ErrnoError||we(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=Ge(t)))return-48;s=!0}else{var A=Ve.getStream(o);if(!A)return-8;var c=Ve.mmap(A,e,t,i,r,n);a=c.ptr,s=c.allocated}return ze.mappings[a]={malloc:a,len:t,allocated:s,fd:o,prot:r,flags:n,offset:i},a}(e,t,r,n,o,i)}catch(e){return void 0!==Ve&&e instanceof Ve.ErrnoError||we(e),-e.errno}},__sys_open:function(e,t,r){ze.varargs=r;try{var n=ze.getStr(e),o=r?ze.get():0;return Ve.open(n,t,o).fd}catch(e){return void 0!==Ve&&e instanceof Ve.ErrnoError||we(e),-e.errno}},__sys_stat64:function(e,t){try{return e=ze.getStr(e),ze.doStat(Ve.stat,e,t)}catch(e){return void 0!==Ve&&e instanceof Ve.ErrnoError||we(e),-e.errno}},_embind_create_inheriting_constructor:function(e,t,r){e=st(e),t=Ct(t,"wrapper"),r=It(r);var n=[].slice,o=t.registeredClass,i=o.instancePrototype,a=o.baseClass.instancePrototype,s=o.baseClass.constructor,A=qe(e,(function(){var e=this;o.baseClass.pureVirtualFunctions.forEach((function(t){if(e[t]===a[t])throw new it("Pure virtual function ".concat(t," must be implemented in JavaScript"))})),Object.defineProperty(this,"__parent",{value:i}),this.__construct.apply(this,n.call(arguments))}));for(var c in i.__construct=function(){this===i&&pt("Pass correct 'this' to __construct");var e=s.implement.apply(void 0,[this].concat(n.call(arguments)));wt(e);var t,r,a,A=e.$$;e.notifyOnDestruction(),A.preservePointerOnDelete=!0,Object.defineProperties(this,{$$:{value:A}}),vt(this),t=o,r=A.ptr,a=this,r=ht(t,r),ft.hasOwnProperty(r)?pt("Tried to register registered instance: ".concat(r)):ft[r]=a},i.__destruct=function(){var e,t;this===i&&pt("Pass correct 'this' to __destruct"),wt(this),e=o,t=this.$$.ptr,t=ht(e,t),ft.hasOwnProperty(t)?delete ft[t]:pt("Tried to unregister unregistered instance: ".concat(t))},A.prototype=Object.create(i),r)A.prototype[c]=r[c];return nt(A)},_embind_finalize_value_object:function(e){var t=Dt[e];delete Dt[e];var r=t.rawConstructor,n=t.rawDestructor,o=t.fields;Rt([e],o.map((function(e){return e.getterReturnType})).concat(o.map((function(e){return e.setterArgumentType}))),(function(e){var i={};return o.forEach((function(t,r){var n=t.fieldName,a=e[r],s=t.getter,A=t.getterContext,c=e[r+o.length],u=t.setter,g=t.setterContext;i[n]={read:function(e){return a.fromWireType(s(A,e))},write:function(e,t){var r=[];u(g,e,c.toWireType(r,t)),bt(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: "'.concat(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:Ot,destructorFunction:n}]}))},_embind_register_bigint:function(e,t,r,n,o){},_embind_register_bool:function(e,t,r,n,o){var i=St(r);Ft(e,{name:t=st(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=F;else if(2===r)n=x;else{if(4!==r)throw new TypeError("Unknown boolean type size: ".concat(t));n=j}return this.fromWireType(n[e>>i])},destructorFunction:null})},_embind_register_class:function(e,t,r,n,o,i,a,s,A,c,u,g,d){u=st(u),i=ar(o,i),s&&(s=ar(a,s)),c&&(c=ar(A,c)),d=ar(g,d);var l=Ze(u);Xt(l,(function(){Ar("Cannot construct ".concat(u," due to unbound types"),[n])})),Rt([e,t,r],n?[n]:[],(function(t){var r,o;t=t[0],o=n?(r=t.registeredClass).instancePrototype:Ht.prototype;var a=qe(l,(function(){if(Object.getPrototypeOf(this)!==A)throw new Et("Use 'new' to construct ".concat(u));if(void 0===g.constructor_body)throw new Et("".concat(u," has no accessible constructor"));var e=g.constructor_body[arguments.length];if(void 0===e)throw new Et("Tried to invoke ctor of ".concat(u," with invalid number of parameters (").concat(arguments.length,") - expected (").concat(Object.keys(g.constructor_body).toString(),") parameters instead!"));return e.apply(this,arguments)})),A=Object.create(o,{constructor:{value:a}});a.prototype=A;var g=new Wt(u,a,A,d,r,i,s,c),f=new nr(u,g,!0,!1,!1),E=new nr("".concat(u,"*"),g,!1,!1,!1),p=new nr("".concat(u," const*"),g,!1,!0,!1);return Gt[e]={pointerType:E,constPointerType:p},or(l,a),[f,E,p]}))},_embind_register_class_class_function:function(e,t,r,n,o,i,a){var s=gr(r,n);t=st(t),i=ar(o,i),Rt([],[e],(function(e){e=e[0];var n="".concat(e.name,".").concat(t);function o(){Ar("Cannot call ".concat(n," due to unbound types"),s)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]);var A=e.registeredClass.constructor;return void 0===A[t]?(o.argCount=r-1,A[t]=o):(Yt(A,t,n),A[t].overloadTable[r-1]=o),Rt([],s,(function(e){var o=[e[0],null].concat(e.slice(1)),s=ur(n,o,null,i,a);return void 0===A[t].overloadTable?(s.argCount=r-1,A[t]=s):A[t].overloadTable[r-1]=s,[]})),[]}))},_embind_register_class_constructor:function(e,t,r,n,o,i){v(t>0);var a=gr(t,r);o=ar(n,o),Rt([],[e],(function(e){e=e[0];var r="constructor ".concat(e.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 (".concat(t-1,") for class '").concat(e.name,"'! Overload resolution is currently only performed using the parameter count, not actual type info!"));return e.registeredClass.constructor_body[t-1]=function(){Ar("Cannot construct ".concat(e.name," due to unbound types"),a)},Rt([],a,(function(n){return n.splice(1,0,null),e.registeredClass.constructor_body[t-1]=ur(r,n,null,o,i),[]})),[]}))},_embind_register_class_function:function(e,t,r,n,o,i,a,s){var A=gr(r,n);t=st(t),i=ar(o,i),Rt([],[e],(function(e){e=e[0];var n="".concat(e.name,".").concat(t);function o(){Ar("Cannot call ".concat(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):(Yt(c,t,n),c[t].overloadTable[r-2]=o),Rt([],A,(function(o){var s=ur(n,o,e,i,a);return void 0===c[t].overloadTable?(s.argCount=r-2,c[t]=s):c[t].overloadTable[r-2]=s,[]})),[]}))},_embind_register_class_property:function(e,t,r,n,o,i,a,s,A,c){t=st(t),o=ar(n,o),Rt([],[e],(function(e){e=e[0];var n="".concat(e.name,".").concat(t),u={get:function(){Ar("Cannot access ".concat(n," due to unbound types"),[r,a])},enumerable:!0,configurable:!0};return u.set=A?function(){Ar("Cannot access ".concat(n," due to unbound types"),[r,a])}:function(e){pt("".concat(n," is a read-only property"))},Object.defineProperty(e.registeredClass.instancePrototype,t,u),Rt([],A?[r,a]:[r],(function(r){var a=r[0],u={get:function(){var t=dr(this,e,"".concat(n," getter"));return a.fromWireType(o(i,t))},enumerable:!0};if(A){A=ar(s,A);var g=r[1];u.set=function(t){var r=dr(this,e,"".concat(n," setter")),o=[];A(c,r,g.toWireType(o,t)),bt(o)}}return Object.defineProperty(e.registeredClass.instancePrototype,t,u),[]})),[]}))},_embind_register_emval:function(e,t){Ft(e,{name:t=st(t),fromWireType:function(e){var t=et[e].value;return lr(e),t},toWireType:function(e,t){return nt(t)},argPackAdvance:8,readValueFromPointer:Ot,destructorFunction:null})},_embind_register_float:function(e,t,r){var n=St(r);Ft(e,{name:t=st(t),fromWireType:function(e){return e},toWireType:function(e,t){if("number"!=typeof t&&"boolean"!=typeof t)throw new TypeError('Cannot convert "'.concat(fr(t),'" to ').concat(this.name));return t},argPackAdvance:8,readValueFromPointer:Er(t,n),destructorFunction:null})},_embind_register_function:function(e,t,r,n,o,i){var a=gr(t,r);e=st(e),o=ar(n,o),Xt(e,(function(){Ar("Cannot call ".concat(e," due to unbound types"),a)}),t-1),Rt([],a,(function(r){var n=[r[0],null].concat(r.slice(1));return or(e,ur(e,n,null,o,i),t-1),[]}))},_embind_register_integer:function(e,t,r,n,o){t=st(t),-1===o&&(o=4294967295);var i=St(r),a=function(e){return e};if(0===n){var s=32-8*r;a=function(e){return e<<s>>>s}}var A=t.includes("unsigned");Ft(e,{name:t,fromWireType:a,toWireType:function(e,r){if("number"!=typeof r&&"boolean"!=typeof r)throw new TypeError('Cannot convert "'.concat(fr(r),'" to ').concat(this.name));if(r<n||r>o)throw new TypeError('Passing a number "'.concat(fr(r),'" from JS side to C/C++ side to an argument of type "').concat(t,'", which is outside the valid range [').concat(n,", ").concat(o,"]!"));return A?r>>>0:0|r},argPackAdvance:8,readValueFromPointer:pr(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=U,r=t[e>>=2],o=t[e+1];return new n(S,o,r)}Ft(e,{name:r=st(r),fromWireType:o,argPackAdvance:8,readValueFromPointer:o},{ignoreDuplicateRegistrations:!0})},_embind_register_std_string:function(e,t){var r="std::string"===(t=st(t));Ft(e,{name:t,fromWireType:function(e){var t,n=U[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=Q(o,a-o);void 0===t?t=s:(t+=String.fromCharCode(0),t+=s),o=a+1}}else{var A=new Array(n);for(i=0;i<n;++i)A[i]=String.fromCharCode(k[e+4+i]);t=A.join("")}return sn(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||pt("Cannot pass non-string to std::string");var o=(r&&n?function(){return R(t)}:function(){return t.length})(),i=An(4+o+1);if(U[i>>2]=o,r&&n)M(t,i+4,o+1);else if(n)for(var a=0;a<o;++a){var s=t.charCodeAt(a);s>255&&(sn(i),pt("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(sn,i),i},argPackAdvance:8,readValueFromPointer:Ot,destructorFunction:function(e){sn(e)}})},_embind_register_std_wstring:function(e,t,r){var n,o,i,a,s;r=st(r),2===t?(n=Y,o=X,a=W,i=function(){return N},s=1):4===t&&(n=V,o=z,a=J,i=function(){return U},s=2),Ft(e,{name:r,fromWireType:function(e){for(var r,o=U[e>>2],a=i(),A=e+4,c=0;c<=o;++c){var u=e+4+c*t;if(c==o||0==a[u>>s]){var g=n(A,u-A);void 0===r?r=g:(r+=String.fromCharCode(0),r+=g),A=u+t}}return sn(e),r},toWireType:function(e,n){"string"!=typeof n&&pt("Cannot pass non-string to C++ string type ".concat(r));var i=a(n),A=An(4+i+t);return U[A>>2]=i>>s,o(n,A+4,i+t),null!==e&&e.push(sn,A),A},argPackAdvance:8,readValueFromPointer:Ot,destructorFunction:function(e){sn(e)}})},_embind_register_value_object:function(e,t,r,n,o,i){Dt[e]={name:st(t),rawConstructor:ar(r,n),rawDestructor:ar(o,i),fields:[]}},_embind_register_value_object_field:function(e,t,r,n,o,i,a,s,A,c){Dt[e].fields.push({fieldName:st(t),getterReturnType:r,getter:ar(n,o),getterContext:i,setterArgumentType:a,setter:ar(s,A),setterContext:c})},_embind_register_void:function(e,t){Ft(e,{isVoid:!0,name:t=st(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(e,t){}})},_emval_call_void_method:function(e,t,r,n){var o,i;(e=Ir[e])(t=It(t),r=void 0===(i=hr[o=r])?st(o):i,null,n)},_emval_decref:lr,_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]=Ct(j[(t>>2)+n],"parameter ".concat(n));return r}(e,t),n=r[0],o="".concat(n.name,"_$").concat(r.slice(1).map((function(e){return e.name})).join("_"),"$"),i=["retType"],a=[n],s="",A=0;A<e-1;++A)s+="".concat(0!==A?", ":"","arg").concat(A),i.push("argType".concat(A)),a.push(r[1+A]);var c=Ze("methodCaller_".concat(o)),u="return function ".concat(c,"(handle, name, destructors, args) {\n"),g=0;for(A=0;A<e-1;++A)u+=" var arg".concat(A," = argType").concat(A,".readValueFromPointer(args").concat(g?"+".concat(g):"",");\n"),g+=r[A+1].argPackAdvance;for(u+=" var rv = handle[name](".concat(s,");\n"),A=0;A<e-1;++A)r[A+1].deleteObject&&(u+=" argType".concat(A,".deleteObject(arg").concat(A,");\n"));n.isVoid||(u+=" return retType.toWireType(destructors, rv);\n"),u+="};\n",i.push(u);var d,l,f=cr(Function,i).apply(null,a);return d=f,l=Ir.length,Ir.push(d),l},_emval_incref:function(e){e>4&&(et[e].refcount+=1)},_emval_take_value:function(e,t){return nt((e=Ct(e,"_emval_take_value")).readValueFromPointer(t))},abort:function(){we()},clock_gettime:function(e,t){var r;if(0===e)r=Date.now();else{if(1!==e&&4!==e)return Ne(28),-1;r=Be()}return j[t>>2]=r/1e3|0,j[t+4>>2]=r%1e3*1e3*1e3|0,0},dlopen:function(e,t){we("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")},dlsym:function(e,t){we("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(v(Array.isArray(mr)),v(t%16==0),mr.length=0,t>>=2;r=k[e++];){v(100===r||102===r||105===r);var n=r<105;n&&1&t&&t++,mr.push(n?H[t++>>1]:j[t]),++t}return mr}(t,r);return ve.hasOwnProperty(e)||we("No EM_ASM constant found at address ".concat(e)),ve[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){we("Cannot use emscripten_pc_get_function without -s USE_OFFSET_CONVERTER")},emscripten_resize_heap:function(e){var t=k.length;v((e>>>=0)>t);var r,n,o=2147483648;if(e>o)return h("Cannot enlarge memory, asked to go up to ".concat(e," bytes, but the limit is ").concat(o," bytes!")),!1;for(var i=1;i<=4;i*=2){var a=t*(1+.2/i);a=Math.min(a,e+100663296);var s=Math.min(o,((r=Math.max(e,a))%(n=65536)>0&&(r+=n-r%n),r));if(yr(s))return!0}return h("Failed to grow the heap from ".concat(t," bytes to ").concat(s," bytes, not enough memory!")),!1},emscripten_stack_snapshot:function(){var e=(new Error).stack.split("\n");return"Error"==e[0]&&e.shift(),_r(e),wr.last_addr=Cr(e[2]),wr.last_stack=e,wr.last_addr},emscripten_stack_unwind_buffer:function(e,t,r){var n;wr.last_addr==e?n=wr.last_stack:("Error"==(n=(new Error).stack.split("\n"))[0]&&n.shift(),_r(n));for(var o=2;n[o]&&Cr(n[o])!=e;)++o;for(var i=0;i<r&&n[i+o];++i)j[t+4*i>>2]=Cr(n[i+o]);return i},emscripten_thread_sleep:function(e){for(var t=Be();Be()-t<e;);},emscripten_webgl_create_context:function(e,t){return function(e,t){v(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:Dr[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=Or(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(!Br.offscreenCanvases[i.id])return 0}else Br.offscreenCanvases[i.id]={canvas:i.transferControlToOffscreen(),canvasSharedPtr:An(12),id:i.id},i.controlTransferredOffscreen=!0;i=Br.offscreenCanvases[i.id]}return Br.createContext(i,o)}(e,t)},emscripten_webgl_destroy_context:function(e){Br.currentContext==e&&(Br.currentContext=0),Br.deleteContext(e)},emscripten_webgl_get_context_attributes:function(e,t){if(!t)return-5;if(!(e=Br.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&&Dr.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:Qr,emscripten_webgl_init_context_attributes:function(e){v(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:Tr,environ_get:function(e,t){var r=0;return Mr().forEach((function(n,o){var i=t+r;j[e+4*o>>2]=i,function(e,t){for(var r=0;r<e.length;++r)v(e.charCodeAt(r)==e.charCodeAt(r)&255),F[0|t++]=e.charCodeAt(r);F[0|t]=0}(n,i),r+=n.length+1})),0},environ_sizes_get:function(e,t){var r=Mr();j[e>>2]=r.length;var n=0;return r.forEach((function(e){n+=e.length+1})),j[t>>2]=n,0},exit:De,fd_close:function(e){try{var t=ze.getStreamFromFD(e);return Ve.close(t),0}catch(e){return void 0!==Ve&&e instanceof Ve.ErrnoError||we(e),e.errno}},fd_read:function(e,t,r,n){try{var o=ze.getStreamFromFD(e),i=ze.doReadv(o,t,r);return j[n>>2]=i,0}catch(e){return void 0!==Ve&&e instanceof Ve.ErrnoError||we(e),e.errno}},fd_seek:function(e,t,r,n,o){try{var i=ze.getStreamFromFD(e),a=4294967296*r+(t>>>0),s=9007199254740992;return a<=-s||a>=s?-61:(Ve.llseek(i,a,n),fe=[i.position>>>0,(le=i.position,+Math.abs(le)>=1?le>0?(0|Math.min(+Math.floor(le/4294967296),4294967295))>>>0:~~+Math.ceil((le-+(~~le>>>0))/4294967296)>>>0:0)],j[o>>2]=fe[0],j[o+4>>2]=fe[1],i.getdents&&0===a&&0===n&&(i.getdents=null),0)}catch(e){return void 0!==Ve&&e instanceof Ve.ErrnoError||we(e),e.errno}},fd_write:function(e,t,r,n){try{var o=ze.getStreamFromFD(e),i=ze.doWritev(o,t,r);return j[n>>2]=i,0}catch(e){return void 0!==Ve&&e instanceof Ve.ErrnoError||we(e),e.errno}},getTempRet0:function(){return m},getentropy:function e(t,r){e.randomDevice||(e.randomDevice=Ue());for(var n=0;n<r;n++)F[t+n|0]=e.randomDevice();return 0},glActiveTexture:function(e){Zr.activeTexture(e)},glAttachShader:function(e,t){Zr.attachShader(Br.programs[e],Br.shaders[t])},glBindAttribLocation:function(e,t,r){Zr.bindAttribLocation(Br.programs[e],t,Q(r))},glBindBuffer:function(e,t){34962==e?Zr.currentArrayBufferBinding=t:34963==e&&(Zr.currentElementArrayBufferBinding=t),35051==e?Zr.currentPixelPackBufferBinding=t:35052==e&&(Zr.currentPixelUnpackBufferBinding=t),Zr.bindBuffer(e,Br.buffers[t])},glBindBufferBase:function(e,t,r){Zr.bindBufferBase(e,t,Br.buffers[r])},glBindFramebuffer:function(e,t){Zr.bindFramebuffer(e,t?Br.framebuffers[t]:Br.currentContext.defaultFbo)},glBindTexture:function(e,t){Zr.bindTexture(e,Br.textures[t])},glBindVertexArray:function(e){Zr.bindVertexArray(Br.vaos[e]);var t=Zr.getParameter(34965);Zr.currentElementArrayBufferBinding=t?0|t.name:0},glBufferData:function(e,t,r,n){Br.currentContext.version>=2?r?Zr.bufferData(e,k,n,r,t):Zr.bufferData(e,t,n):Zr.bufferData(e,r?k.subarray(r,r+t):t,n)},glClientWaitSync:function(e,t,r,n){return Zr.clientWaitSync(Br.syncs[e],t,(o=r,v((i=n)===(0|i)),(o>>>0)+4294967296*i));var o,i},glCompileShader:function(e){Zr.compileShader(Br.shaders[e])},glCreateProgram:function(){var e=Br.getNewId(Br.programs),t=Zr.createProgram();return t.name=e,t.maxUniformLength=t.maxAttributeLength=t.maxUniformBlockNameLength=0,t.uniformIdCounter=1,Br.programs[e]=t,e},glCreateShader:function(e){var t=Br.getNewId(Br.shaders);return Br.shaders[t]=Zr.createShader(e),t},glDeleteBuffers:function(e,t){for(var r=0;r<e;r++){var n=j[t+4*r>>2],o=Br.buffers[n];o&&(Zr.deleteBuffer(o),o.name=0,Br.buffers[n]=null,n==Zr.currentArrayBufferBinding&&(Zr.currentArrayBufferBinding=0),n==Zr.currentElementArrayBufferBinding&&(Zr.currentElementArrayBufferBinding=0),n==Zr.currentPixelPackBufferBinding&&(Zr.currentPixelPackBufferBinding=0),n==Zr.currentPixelUnpackBufferBinding&&(Zr.currentPixelUnpackBufferBinding=0))}},glDeleteFramebuffers:function(e,t){for(var r=0;r<e;++r){var n=j[t+4*r>>2],o=Br.framebuffers[n];o&&(Zr.deleteFramebuffer(o),o.name=0,Br.framebuffers[n]=null)}},glDeleteProgram:function(e){if(e){var t=Br.programs[e];t?(Zr.deleteProgram(t),t.name=0,Br.programs[e]=null):Br.recordError(1281)}},glDeleteShader:function(e){if(e){var t=Br.shaders[e];t?(Zr.deleteShader(t),Br.shaders[e]=null):Br.recordError(1281)}},glDeleteSync:function(e){if(e){var t=Br.syncs[e];t?(Zr.deleteSync(t),t.name=0,Br.syncs[e]=null):Br.recordError(1281)}},glDeleteTextures:function(e,t){for(var r=0;r<e;r++){var n=j[t+4*r>>2],o=Br.textures[n];o&&(Zr.deleteTexture(o),o.name=0,Br.textures[n]=null)}},glDeleteVertexArrays:function(e,t){for(var r=0;r<e;r++){var n=j[t+4*r>>2];Zr.deleteVertexArray(Br.vaos[n]),Br.vaos[n]=null}},glDisable:function(e){Zr.disable(e)},glDisableVertexAttribArray:function(e){Br.currentContext.clientBuffers[e].enabled=!1,Zr.disableVertexAttribArray(e)},glDrawArrays:function(e,t,r){Br.preDrawHandleClientVertexAttribBindings(t+r),Zr.drawArrays(e,t,r),Br.postDrawHandleClientVertexAttribBindings()},glDrawBuffers:function(e,t){for(var r=Rr[e],n=0;n<e;n++)r[n]=j[t+4*n>>2];Zr.drawBuffers(r)},glEnableVertexAttribArray:function(e){Br.currentContext.clientBuffers[e].enabled=!0,Zr.enableVertexAttribArray(e)},glFenceSync:function(e,t){var r=Zr.fenceSync(e,t);if(r){var n=Br.getNewId(Br.syncs);return r.name=n,Br.syncs[n]=r,n}return 0},glFinish:function(){Zr.finish()},glFlush:function(){Zr.flush()},glFramebufferTexture2D:function(e,t,r,n,o){Zr.framebufferTexture2D(e,t,r,Br.textures[n],o)},glFramebufferTextureLayer:function(e,t,r,n,o){Zr.framebufferTextureLayer(e,t,Br.textures[r],n,o)},glGenBuffers:function(e,t){Sr(e,t,"createBuffer",Br.buffers)},glGenFramebuffers:function(e,t){Sr(e,t,"createFramebuffer",Br.framebuffers)},glGenTextures:function(e,t){Sr(e,t,"createTexture",Br.textures)},glGenVertexArrays:function(e,t){Sr(e,t,"createVertexArray",Br.vaos)},glGetAttribLocation:function(e,t){return Zr.getAttribLocation(Br.programs[e],Q(t))},glGetError:function(){var e=Zr.getError()||Br.lastError;return Br.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;case 34814:case 36345:n=0;break;case 34466:var o=Zr.getParameter(34467);n=o?o.length:0;break;case 33309:if(Br.currentContext.version<2)return void Br.recordError(1282);n=2*(Zr.getSupportedExtensions()||[]).length;break;case 33307:case 33308:if(Br.currentContext.version<2)return void Br.recordError(1280);n=33307==e?3:0}if(void 0===n){var i=Zr.getParameter(e);switch(E(i)){case"number":n=i;break;case"boolean":n=i?1:0;break;case"string":return void Br.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 Br.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:L[t+4*a>>2]=i[a];break;case 4:F[t+a|0]=i[a]?1:0}return}try{n=0|i.name}catch(t){return Br.recordError(1280),void h("GL_INVALID_ENUM in glGet".concat(r,"v: Unknown object returned from WebGL getParameter(").concat(e,")! (error: ").concat(t,")"))}}break;default:return Br.recordError(1280),void h("GL_INVALID_ENUM in glGet".concat(r,"v: Native code calling glGet").concat(r,"v(").concat(e,") and it returns ").concat(i," of type ").concat(E(i),"!"))}}switch(r){case 1:Fr(t,n);break;case 0:j[t>>2]=n;break;case 2:L[t>>2]=n;break;case 4:F[0|t]=n?1:0}}else Br.recordError(1281)}(e,t,0)},glGetString:function(e){var t=Br.stringCache[e];if(!t){switch(e){case 7939:var r=Zr.getSupportedExtensions()||[];t=kr((r=r.concat(r.map((function(e){return"GL_".concat(e)})))).join(" "));break;case 7936:case 7937:case 37445:case 37446:var n=Zr.getParameter(e);n||Br.recordError(1280),t=n&&kr(n);break;case 7938:var o=Zr.getParameter(7938);t=kr(o=Br.currentContext.version>=2?"OpenGL ES 3.0 (".concat(o,")"):"OpenGL ES 2.0 (".concat(o,")"));break;case 35724:var i=Zr.getParameter(35724),a=i.match(/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/);null!==a&&(3==a[1].length&&(a[1]="".concat(a[1],"0")),i="OpenGL ES GLSL ES ".concat(a[1]," (").concat(i,")")),t=kr(i);break;default:Br.recordError(1280)}Br.stringCache[e]=t}return t},glGetUniformBlockIndex:function(e,t){return Zr.getUniformBlockIndex(Br.programs[e],Q(t))},glGetUniformLocation:function(e,t){if(t=Q(t),e=Br.programs[e]){!function(e){var t,r,n=e.uniformLocsById,o=e.uniformSizeAndIdsByName;if(!n)for(e.uniformLocsById=n={},e.uniformArrayNamesById={},t=0;t<Zr.getProgramParameter(e,35718);++t){var i=Zr.getActiveUniform(e,t),a=i.name,s=i.size,A=xr(a),c=A>0?a.slice(0,A):a,u=e.uniformIdCounter;for(e.uniformIdCounter+=s,o[c]=[s,u],r=0;r<s;++r)n[u]=r,e.uniformArrayNamesById[u++]=c}}(e);var r=e.uniformLocsById,n=0,o=t,i=xr(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]||Zr.getUniformLocation(e,t)))return n}else Br.recordError(1281);var s;return-1},glLinkProgram:function(e){e=Br.programs[e],Zr.linkProgram(e),e.uniformLocsById=0,e.uniformSizeAndIdsByName={}},glPixelStorei:function(e,t){3317==e&&(Br.unpackAlignment=t),Zr.pixelStorei(e,t)},glReadPixels:function(e,t,r,n,o,i,a){if(Br.currentContext.version>=2)if(Zr.currentPixelPackBufferBinding)Zr.readPixels(e,t,r,n,o,i,a);else{var s=Nr(i);Zr.readPixels(e,t,r,n,o,i,s,a>>jr(s))}else{var A=Ur(i,o,r,n,a);A?Zr.readPixels(e,t,r,n,o,i,A):Br.recordError(1280)}},glShaderSource:function(e,t,r,n){var o=Br.getSource(e,t,r,n);Zr.shaderSource(Br.shaders[e],o)},glTexImage2D:function(e,t,r,n,o,i,a,s,A){if(Br.currentContext.version>=2)if(Zr.currentPixelUnpackBufferBinding)Zr.texImage2D(e,t,r,n,o,i,a,s,A);else if(A){var c=Nr(s);Zr.texImage2D(e,t,r,n,o,i,a,s,c,A>>jr(c))}else Zr.texImage2D(e,t,r,n,o,i,a,s,null);else Zr.texImage2D(e,t,r,n,o,i,a,s,A?Ur(s,a,n,o,A):null)},glTexParameterfv:function(e,t,r){var n=L[r>>2];Zr.texParameterf(e,t,n)},glTexParameteri:function(e,t,r){Zr.texParameteri(e,t,r)},glTexStorage2D:function(e,t,r,n,o){Zr.texStorage2D(e,t,r,n,o)},glTexStorage3D:function(e,t,r,n,o,i){Zr.texStorage3D(e,t,r,n,o,i)},glTexSubImage2D:function(e,t,r,n,o,i,a,s,A){if(Br.currentContext.version>=2)if(Zr.currentPixelUnpackBufferBinding)Zr.texSubImage2D(e,t,r,n,o,i,a,s,A);else if(A){var c=Nr(s);Zr.texSubImage2D(e,t,r,n,o,i,a,s,c,A>>jr(c))}else Zr.texSubImage2D(e,t,r,n,o,i,a,s,null);else{var u=null;A&&(u=Ur(s,a,o,i,A)),Zr.texSubImage2D(e,t,r,n,o,i,a,s,u)}},glTexSubImage3D:function(e,t,r,n,o,i,a,s,A,c,u){if(Zr.currentPixelUnpackBufferBinding)Zr.texSubImage3D(e,t,r,n,o,i,a,s,A,c,u);else if(u){var g=Nr(c);Zr.texSubImage3D(e,t,r,n,o,i,a,s,A,c,g,u>>jr(g))}else Zr.texSubImage3D(e,t,r,n,o,i,a,s,A,c,null)},glUniform1f:function(e,t){Zr.uniform1f(Lr(e),t)},glUniform1i:function(e,t){Zr.uniform1i(Lr(e),t)},glUniform2fv:function(e,t,r){if(Br.currentContext.version>=2)Zr.uniform2fv(Lr(e),L,r>>2,2*t);else{if(t<=144)for(var n=Hr[2*t-1],o=0;o<2*t;o+=2)n[o]=L[r+4*o>>2],n[o+1]=L[r+(4*o+4)>>2];else n=L.subarray(r>>2,r+8*t>>2);Zr.uniform2fv(Lr(e),n)}},glUniform4fv:function(e,t,r){if(Br.currentContext.version>=2)Zr.uniform4fv(Lr(e),L,r>>2,4*t);else{if(t<=72){var n=Hr[4*t-1],o=L;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=L.subarray(r>>2,r+16*t>>2);Zr.uniform4fv(Lr(e),n)}},glUniform4iv:function(e,t,r){if(Br.currentContext.version>=2)Zr.uniform4iv(Lr(e),j,r>>2,4*t);else{if(t<=72)for(var n=Gr[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);Zr.uniform4iv(Lr(e),n)}},glUniformBlockBinding:function(e,t,r){e=Br.programs[e],Zr.uniformBlockBinding(e,t,r)},glUniformMatrix4fv:function(e,t,r,n){if(Br.currentContext.version>=2)Zr.uniformMatrix4fv(Lr(e),!!r,L,n>>2,16*t);else{if(t<=18){var o=Hr[16*t-1],i=L;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=L.subarray(n>>2,n+64*t>>2);Zr.uniformMatrix4fv(Lr(e),!!r,o)}},glUseProgram:function(e){e=Br.programs[e],Zr.useProgram(e),Zr.currentProgram=e},glVertexAttribPointer:function(e,t,r,n,o,i){var a=Br.currentContext.clientBuffers[e];if(!Zr.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,Zr.vertexAttribPointer(e,t,r,!!n,o,i)},glViewport:function(e,t,r,n){Zr.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=K("GMT")),j[r+40>>2]=e.GMTString,r},invoke_diii:function(e,t,r,n){var o=En();try{return $.get(e)(t,r,n)}catch(e){if(pn(o),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_i:function(e){var t=En();try{return $.get(e)()}catch(e){if(pn(t),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_ii:function(e,t){var r=En();try{return $.get(e)(t)}catch(e){if(pn(r),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_iii:function(e,t,r){var n=En();try{return $.get(e)(t,r)}catch(e){if(pn(n),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_iiii:function(e,t,r,n){var o=En();try{return $.get(e)(t,r,n)}catch(e){if(pn(o),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_iiiii:function(e,t,r,n,o){var i=En();try{return $.get(e)(t,r,n,o)}catch(e){if(pn(i),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_iiiiii:function(e,t,r,n,o,i){var a=En();try{return $.get(e)(t,r,n,o,i)}catch(e){if(pn(a),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_iiiiiii:function(e,t,r,n,o,i,a){var s=En();try{return $.get(e)(t,r,n,o,i,a)}catch(e){if(pn(s),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_iiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c){var u=En();try{return $.get(e)(t,r,n,o,i,a,s,A,c)}catch(e){if(pn(u),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_iiiiiiii:function(e,t,r,n,o,i,a,s){var A=En();try{return $.get(e)(t,r,n,o,i,a,s)}catch(e){if(pn(A),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_iiiiiiiii:function(e,t,r,n,o,i,a,s,A){var c=En();try{return $.get(e)(t,r,n,o,i,a,s,A)}catch(e){if(pn(c),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_v:function(e){var t=En();try{$.get(e)()}catch(e){if(pn(t),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_vdiii:function(e,t,r,n,o){var i=En();try{$.get(e)(t,r,n,o)}catch(e){if(pn(i),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_vi:function(e,t){var r=En();try{$.get(e)(t)}catch(e){if(pn(r),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_vididdii:function(e,t,r,n,o,i,a,s){var A=En();try{$.get(e)(t,r,n,o,i,a,s)}catch(e){if(pn(A),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_vidii:function(e,t,r,n,o){var i=En();try{$.get(e)(t,r,n,o)}catch(e){if(pn(i),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_vii:function(e,t,r){var n=En();try{$.get(e)(t,r)}catch(e){if(pn(n),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viid:function(e,t,r,n){var o=En();try{$.get(e)(t,r,n)}catch(e){if(pn(o),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viidi:function(e,t,r,n,o){var i=En();try{$.get(e)(t,r,n,o)}catch(e){if(pn(i),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viididii:function(e,t,r,n,o,i,a,s){var A=En();try{$.get(e)(t,r,n,o,i,a,s)}catch(e){if(pn(A),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viii:function(e,t,r,n){var o=En();try{$.get(e)(t,r,n)}catch(e){if(pn(o),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiid:function(e,t,r,n,o){var i=En();try{$.get(e)(t,r,n,o)}catch(e){if(pn(i),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiidd:function(e,t,r,n,o,i){var a=En();try{$.get(e)(t,r,n,o,i)}catch(e){if(pn(a),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiddi:function(e,t,r,n,o,i,a){var s=En();try{$.get(e)(t,r,n,o,i,a)}catch(e){if(pn(s),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiidi:function(e,t,r,n,o,i){var a=En();try{$.get(e)(t,r,n,o,i)}catch(e){if(pn(a),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiii:function(e,t,r,n,o){var i=En();try{$.get(e)(t,r,n,o)}catch(e){if(pn(i),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiid:function(e,t,r,n,o,i){var a=En();try{$.get(e)(t,r,n,o,i)}catch(e){if(pn(a),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiidi:function(e,t,r,n,o,i,a){var s=En();try{$.get(e)(t,r,n,o,i,a)}catch(e){if(pn(s),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiidid:function(e,t,r,n,o,i,a,s){var A=En();try{$.get(e)(t,r,n,o,i,a,s)}catch(e){if(pn(A),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiidiidiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d,l,f,E){var p=En();try{$.get(e)(t,r,n,o,i,a,s,A,c,u,g,d,l,f,E)}catch(e){if(pn(p),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiifiifiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d,l,f,E){var p=En();try{$.get(e)(t,r,n,o,i,a,s,A,c,u,g,d,l,f,E)}catch(e){if(pn(p),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiii:function(e,t,r,n,o,i){var a=En();try{$.get(e)(t,r,n,o,i)}catch(e){if(pn(a),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiid:function(e,t,r,n,o,i,a){var s=En();try{$.get(e)(t,r,n,o,i,a)}catch(e){if(pn(s),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiif:function(e,t,r,n,o,i,a){var s=En();try{$.get(e)(t,r,n,o,i,a)}catch(e){if(pn(s),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiii:function(e,t,r,n,o,i,a){var s=En();try{$.get(e)(t,r,n,o,i,a)}catch(e){if(pn(s),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiiid:function(e,t,r,n,o,i,a,s){var A=En();try{$.get(e)(t,r,n,o,i,a,s)}catch(e){if(pn(A),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiiif:function(e,t,r,n,o,i,a,s){var A=En();try{$.get(e)(t,r,n,o,i,a,s)}catch(e){if(pn(A),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiiii:function(e,t,r,n,o,i,a,s){var A=En();try{$.get(e)(t,r,n,o,i,a,s)}catch(e){if(pn(A),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c,u){var g=En();try{$.get(e)(t,r,n,o,i,a,s,A,c,u)}catch(e){if(pn(g),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiiiidiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d){var l=En();try{$.get(e)(t,r,n,o,i,a,s,A,c,u,g,d)}catch(e){if(pn(l),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiiiifiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d){var l=En();try{$.get(e)(t,r,n,o,i,a,s,A,c,u,g,d)}catch(e){if(pn(l),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiiiii:function(e,t,r,n,o,i,a,s,A){var c=En();try{$.get(e)(t,r,n,o,i,a,s,A)}catch(e){if(pn(c),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiiiiidd:function(e,t,r,n,o,i,a,s,A,c,u){var g=En();try{$.get(e)(t,r,n,o,i,a,s,A,c,u)}catch(e){if(pn(g),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiiiiidf:function(e,t,r,n,o,i,a,s,A,c,u){var g=En();try{$.get(e)(t,r,n,o,i,a,s,A,c,u)}catch(e){if(pn(g),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiiiiii:function(e,t,r,n,o,i,a,s,A,c){var u=En();try{$.get(e)(t,r,n,o,i,a,s,A,c)}catch(e){if(pn(u),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiiiiiidd:function(e,t,r,n,o,i,a,s,A,c,u,g){var d=En();try{$.get(e)(t,r,n,o,i,a,s,A,c,u,g)}catch(e){if(pn(d),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c,u,g,d){var l=En();try{$.get(e)(t,r,n,o,i,a,s,A,c,u,g,d)}catch(e){if(pn(l),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u){var g=En();try{$.get(e)(t,r,n,o,i,a,s,A,c,u)}catch(e){if(pn(g),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c,u,g,d,l){var f=En();try{$.get(e)(t,r,n,o,i,a,s,A,c,u,g,d,l)}catch(e){if(pn(f),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u,g){var d=En();try{$.get(e)(t,r,n,o,i,a,s,A,c,u,g)}catch(e){if(pn(d),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d){var l=En();try{$.get(e)(t,r,n,o,i,a,s,A,c,u,g,d)}catch(e){if(pn(l),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d,l){var f=En();try{$.get(e)(t,r,n,o,i,a,s,A,c,u,g,d,l)}catch(e){if(pn(f),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},llvm_eh_typeid_for:function(e){return e},localtime_r:function(e,t){Yr();var r=new Date(1e3*j[e>>2]);j[t>>2]=r.getSeconds(),j[t+4>>2]=r.getMinutes(),j[t+8>>2]=r.getHours(),j[t+12>>2]=r.getDate(),j[t+16>>2]=r.getMonth(),j[t+20>>2]=r.getFullYear()-1900,j[t+24>>2]=r.getDay();var n=new Date(r.getFullYear(),0,1),o=(r.getTime()-n.getTime())/864e5|0;j[t+28>>2]=o,j[t+36>>2]=-60*r.getTimezoneOffset();var i=new Date(r.getFullYear(),6,1).getTimezoneOffset(),a=n.getTimezoneOffset(),s=0|(i!=a&&r.getTimezoneOffset()==Math.min(a,i));j[t+32>>2]=s;var A=j[dn()+(s?4:0)>>2];return j[t+40>>2]=A,t},mktime:function(e){Yr();var t=new Date(j[e+20>>2]+1900,j[e+16>>2],j[e+12>>2],j[e+8>>2],j[e+4>>2],j[e>>2],0),r=j[e+32>>2],n=t.getTimezoneOffset(),o=new Date(t.getFullYear(),0,1),i=new Date(t.getFullYear(),6,1).getTimezoneOffset(),a=o.getTimezoneOffset(),s=Math.min(a,i);if(r<0)j[e+32>>2]=Number(i!=a&&s==n);else if(r>0!=(s==n)){var A=Math.max(a,i),c=r>0?s:A;t.setTime(t.getTime()+6e4*(c-n))}j[e+24>>2]=t.getDay();var 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){y(e)},strftime:Kr,strftime_l:function(e,t,r,n){return Kr(e,t,r,n)}};!function(){var e={env:an,wasi_snapshot_preview1:an};function t(e,t){var r,o=e.exports;n.asm=o,v(C=n.asm.memory,"memory not found in wasm exports"),Z(C.buffer),v($=n.asm.__indirect_function_table,"table not found in wasm exports"),r=n.asm.__wasm_call_ctors,oe.unshift(r),Ce("wasm-instantiate")}ye("wasm-instantiate");var o=n;if(n.instantiateWasm)try{return n.instantiateWasm(e,t)}catch(e){return h("Module.instantiateWasm callback failed with error: ".concat(e)),!1}n.loadWasm(ge,e).then((function(e){v(n===o,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?"),o=null,t(e)})).catch(r)}(),n.___wasm_call_ctors=_e("__wasm_call_ctors");var sn=n._free=_e("free"),An=n._malloc=_e("malloc"),cn=n.___errno_location=_e("__errno_location");n._fflush=_e("fflush");var un=n.___getTypeName=_e("__getTypeName");n.___embind_register_native_and_builtin_types=_e("__embind_register_native_and_builtin_types"),n._emscripten_main_thread_process_queued_calls=_e("emscripten_main_thread_process_queued_calls");var gn=n._emscripten_stack_get_end=function(){return(gn=n._emscripten_stack_get_end=n.asm.emscripten_stack_get_end).apply(null,arguments)},dn=n.__get_tzname=_e("_get_tzname"),ln=n.__get_daylight=_e("_get_daylight"),fn=n.__get_timezone=_e("_get_timezone"),En=n.stackSave=_e("stackSave"),pn=n.stackRestore=_e("stackRestore");n.stackAlloc=_e("stackAlloc");var hn=n._emscripten_stack_init=function(){return(hn=n._emscripten_stack_init=n.asm.emscripten_stack_init).apply(null,arguments)};n._emscripten_stack_get_free=function(){return(n._emscripten_stack_get_free=n.asm.emscripten_stack_get_free).apply(null,arguments)},n._saveSetjmp=_e("saveSetjmp");var In,mn=n._setThrew=_e("setThrew"),yn=n.___cxa_can_catch=_e("__cxa_can_catch"),Cn=n.___cxa_is_pointer_type=_e("__cxa_is_pointer_type"),wn=n._memalign=_e("memalign");function _n(e){this.name="ExitStatus",this.message="Program terminated with exit(".concat(e,")"),this.status=e}function Bn(e){function r(){In||(In=!0,n.calledRun=!0,B||(re(),v(!se),se=!0,n.noFSInit||Ve.init.initialized||Ve.init(),Ve.ignorePermissions=!1,Pe(oe),t(n),n.onRuntimeInitialized&&n.onRuntimeInitialized(),v(!n._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),function(){if(re(),n.postRun)for("function"==typeof n.postRun&&(n.postRun=[n.postRun]);n.postRun.length;)e=n.postRun.shift(),ae.unshift(e);var e;Pe(ae)}()))}Ee>0||(hn(),te(),function(){if(n.preRun)for("function"==typeof n.preRun&&(n.preRun=[n.preRun]);n.preRun.length;)e=n.preRun.shift(),ne.unshift(e);var e;Pe(ne)}(),Ee>0||(n.setStatus?(n.setStatus("Running..."),setTimeout((function(){setTimeout((function(){n.setStatus("")}),1),r()}),1)):r(),re()))}function vn(e){_=e,ue()||(n.onExit&&n.onExit(e),B=!0),s(e,new _n(e))}if(n._emscripten_builtin_malloc=_e("emscripten_builtin_malloc"),n._emscripten_builtin_free=_e("emscripten_builtin_free"),n._emscripten_builtin_memalign=_e("emscripten_builtin_memalign"),n.dynCall_jii=_e("dynCall_jii"),n.dynCall_viji=_e("dynCall_viji"),n.dynCall_jjj=_e("dynCall_jjj"),n.dynCall_iiiijj=_e("dynCall_iiiijj"),n.dynCall_viijj=_e("dynCall_viijj"),n.dynCall_viiijjjj=_e("dynCall_viiijjjj"),n.dynCall_ji=_e("dynCall_ji"),n.dynCall_vij=_e("dynCall_vij"),n.dynCall_viijii=_e("dynCall_viijii"),n.dynCall_vj=_e("dynCall_vj"),n.dynCall_viij=_e("dynCall_viij"),n.dynCall_viiiiij=_e("dynCall_viiiiij"),n.dynCall_iijjiiii=_e("dynCall_iijjiiii"),n.dynCall_jiji=_e("dynCall_jiji"),n.dynCall_iiiiij=_e("dynCall_iiiiij"),n.dynCall_iiiiijj=_e("dynCall_iiiiijj"),n.dynCall_iiiiiijj=_e("dynCall_iiiiiijj"),Object.getOwnPropertyDescriptor(n,"intArrayFromString")||(n.intArrayFromString=function(){we("'intArrayFromString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"intArrayToString")||(n.intArrayToString=function(){we("'intArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ccall")||(n.ccall=function(){we("'ccall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"cwrap")||(n.cwrap=function(){we("'cwrap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setValue")||(n.setValue=function(){we("'setValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getValue")||(n.getValue=function(){we("'getValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocate")||(n.allocate=function(){we("'allocate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF8ArrayToString")||(n.UTF8ArrayToString=function(){we("'UTF8ArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF8ToString")||(n.UTF8ToString=function(){we("'UTF8ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF8Array")||(n.stringToUTF8Array=function(){we("'stringToUTF8Array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF8")||(n.stringToUTF8=function(){we("'stringToUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF8")||(n.lengthBytesUTF8=function(){we("'lengthBytesUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackTrace")||(n.stackTrace=function(){we("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPreRun")||(n.addOnPreRun=function(){we("'addOnPreRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnInit")||(n.addOnInit=function(){we("'addOnInit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPreMain")||(n.addOnPreMain=function(){we("'addOnPreMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnExit")||(n.addOnExit=function(){we("'addOnExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPostRun")||(n.addOnPostRun=function(){we("'addOnPostRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeStringToMemory")||(n.writeStringToMemory=function(){we("'writeStringToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeArrayToMemory")||(n.writeArrayToMemory=function(){we("'writeArrayToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeAsciiToMemory")||(n.writeAsciiToMemory=function(){we("'writeAsciiToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.addRunDependency=ye,n.removeRunDependency=Ce,Object.getOwnPropertyDescriptor(n,"FS_createFolder")||(n.FS_createFolder=function(){we("'FS_createFolder' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.FS_createPath=Ve.createPath,n.FS_createDataFile=Ve.createDataFile,n.FS_createPreloadedFile=Ve.createPreloadedFile,n.FS_createLazyFile=Ve.createLazyFile,Object.getOwnPropertyDescriptor(n,"FS_createLink")||(n.FS_createLink=function(){we("'FS_createLink' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.FS_createDevice=Ve.createDevice,n.FS_unlink=Ve.unlink,Object.getOwnPropertyDescriptor(n,"getLEB")||(n.getLEB=function(){we("'getLEB' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFunctionTables")||(n.getFunctionTables=function(){we("'getFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"alignFunctionTables")||(n.alignFunctionTables=function(){we("'alignFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFunctions")||(n.registerFunctions=function(){we("'registerFunctions' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addFunction")||(n.addFunction=function(){we("'addFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"removeFunction")||(n.removeFunction=function(){we("'removeFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFuncWrapper")||(n.getFuncWrapper=function(){we("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"prettyPrint")||(n.prettyPrint=function(){we("'prettyPrint' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCall")||(n.dynCall=function(){we("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getCompilerSetting")||(n.getCompilerSetting=function(){we("'getCompilerSetting' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"print")||(n.print=function(){we("'print' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"printErr")||(n.printErr=function(){we("'printErr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getTempRet0")||(n.getTempRet0=function(){we("'getTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setTempRet0")||(n.setTempRet0=function(){we("'setTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callMain")||(n.callMain=function(){we("'callMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"abort")||(n.abort=function(){we("'abort' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"keepRuntimeAlive")||(n.keepRuntimeAlive=function(){we("'keepRuntimeAlive' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"zeroMemory")||(n.zeroMemory=function(){we("'zeroMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToNewUTF8")||(n.stringToNewUTF8=function(){we("'stringToNewUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setFileTime")||(n.setFileTime=function(){we("'setFileTime' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscripten_realloc_buffer")||(n.emscripten_realloc_buffer=function(){we("'emscripten_realloc_buffer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ENV")||(n.ENV=function(){we("'ENV' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ERRNO_CODES")||(n.ERRNO_CODES=function(){we("'ERRNO_CODES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ERRNO_MESSAGES")||(n.ERRNO_MESSAGES=function(){we("'ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setErrNo")||(n.setErrNo=function(){we("'setErrNo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetPton4")||(n.inetPton4=function(){we("'inetPton4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetNtop4")||(n.inetNtop4=function(){we("'inetNtop4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetPton6")||(n.inetPton6=function(){we("'inetPton6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetNtop6")||(n.inetNtop6=function(){we("'inetNtop6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readSockaddr")||(n.readSockaddr=function(){we("'readSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeSockaddr")||(n.writeSockaddr=function(){we("'writeSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"DNS")||(n.DNS=function(){we("'DNS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getHostByName")||(n.getHostByName=function(){we("'getHostByName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GAI_ERRNO_MESSAGES")||(n.GAI_ERRNO_MESSAGES=function(){we("'GAI_ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Protocols")||(n.Protocols=function(){we("'Protocols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Sockets")||(n.Sockets=function(){we("'Sockets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getRandomDevice")||(n.getRandomDevice=function(){we("'getRandomDevice' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"traverseStack")||(n.traverseStack=function(){we("'traverseStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UNWIND_CACHE")||(n.UNWIND_CACHE=function(){we("'UNWIND_CACHE' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"withBuiltinMalloc")||(n.withBuiltinMalloc=function(){we("'withBuiltinMalloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readAsmConstArgsArray")||(n.readAsmConstArgsArray=function(){we("'readAsmConstArgsArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readAsmConstArgs")||(n.readAsmConstArgs=function(){we("'readAsmConstArgs' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"mainThreadEM_ASM")||(n.mainThreadEM_ASM=function(){we("'mainThreadEM_ASM' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jstoi_q")||(n.jstoi_q=function(){we("'jstoi_q' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jstoi_s")||(n.jstoi_s=function(){we("'jstoi_s' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getExecutableName")||(n.getExecutableName=function(){we("'getExecutableName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"listenOnce")||(n.listenOnce=function(){we("'listenOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"autoResumeAudioContext")||(n.autoResumeAudioContext=function(){we("'autoResumeAudioContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCallLegacy")||(n.dynCallLegacy=function(){we("'dynCallLegacy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getDynCaller")||(n.getDynCaller=function(){we("'getDynCaller' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCall")||(n.dynCall=function(){we("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callRuntimeCallbacks")||(n.callRuntimeCallbacks=function(){we("'callRuntimeCallbacks' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runtimeKeepalivePush")||(n.runtimeKeepalivePush=function(){we("'runtimeKeepalivePush' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runtimeKeepalivePop")||(n.runtimeKeepalivePop=function(){we("'runtimeKeepalivePop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callUserCallback")||(n.callUserCallback=function(){we("'callUserCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"maybeExit")||(n.maybeExit=function(){we("'maybeExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"safeSetTimeout")||(n.safeSetTimeout=function(){we("'safeSetTimeout' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"asmjsMangle")||(n.asmjsMangle=function(){we("'asmjsMangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"asyncLoad")||(n.asyncLoad=function(){we("'asyncLoad' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"alignMemory")||(n.alignMemory=function(){we("'alignMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"mmapAlloc")||(n.mmapAlloc=function(){we("'mmapAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"reallyNegative")||(n.reallyNegative=function(){we("'reallyNegative' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"unSign")||(n.unSign=function(){we("'unSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"reSign")||(n.reSign=function(){we("'reSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"formatString")||(n.formatString=function(){we("'formatString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PATH")||(n.PATH=function(){we("'PATH' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PATH_FS")||(n.PATH_FS=function(){we("'PATH_FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SYSCALLS")||(n.SYSCALLS=function(){we("'SYSCALLS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"syscallMmap2")||(n.syscallMmap2=function(){we("'syscallMmap2' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"syscallMunmap")||(n.syscallMunmap=function(){we("'syscallMunmap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getSocketFromFD")||(n.getSocketFromFD=function(){we("'getSocketFromFD' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getSocketAddress")||(n.getSocketAddress=function(){we("'getSocketAddress' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"JSEvents")||(n.JSEvents=function(){we("'JSEvents' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerKeyEventCallback")||(n.registerKeyEventCallback=function(){we("'registerKeyEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"specialHTMLTargets")||(n.specialHTMLTargets=function(){we("'specialHTMLTargets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"findEventTarget")||(n.findEventTarget=function(){we("'findEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"findCanvasEventTarget")||(n.findCanvasEventTarget=function(){we("'findCanvasEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getBoundingClientRect")||(n.getBoundingClientRect=function(){we("'getBoundingClientRect' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillMouseEventData")||(n.fillMouseEventData=function(){we("'fillMouseEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerMouseEventCallback")||(n.registerMouseEventCallback=function(){we("'registerMouseEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerWheelEventCallback")||(n.registerWheelEventCallback=function(){we("'registerWheelEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerUiEventCallback")||(n.registerUiEventCallback=function(){we("'registerUiEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFocusEventCallback")||(n.registerFocusEventCallback=function(){we("'registerFocusEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillDeviceOrientationEventData")||(n.fillDeviceOrientationEventData=function(){we("'fillDeviceOrientationEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerDeviceOrientationEventCallback")||(n.registerDeviceOrientationEventCallback=function(){we("'registerDeviceOrientationEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillDeviceMotionEventData")||(n.fillDeviceMotionEventData=function(){we("'fillDeviceMotionEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerDeviceMotionEventCallback")||(n.registerDeviceMotionEventCallback=function(){we("'registerDeviceMotionEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"screenOrientation")||(n.screenOrientation=function(){we("'screenOrientation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillOrientationChangeEventData")||(n.fillOrientationChangeEventData=function(){we("'fillOrientationChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerOrientationChangeEventCallback")||(n.registerOrientationChangeEventCallback=function(){we("'registerOrientationChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillFullscreenChangeEventData")||(n.fillFullscreenChangeEventData=function(){we("'fillFullscreenChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFullscreenChangeEventCallback")||(n.registerFullscreenChangeEventCallback=function(){we("'registerFullscreenChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerRestoreOldStyle")||(n.registerRestoreOldStyle=function(){we("'registerRestoreOldStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"hideEverythingExceptGivenElement")||(n.hideEverythingExceptGivenElement=function(){we("'hideEverythingExceptGivenElement' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"restoreHiddenElements")||(n.restoreHiddenElements=function(){we("'restoreHiddenElements' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setLetterbox")||(n.setLetterbox=function(){we("'setLetterbox' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"currentFullscreenStrategy")||(n.currentFullscreenStrategy=function(){we("'currentFullscreenStrategy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"restoreOldWindowedStyle")||(n.restoreOldWindowedStyle=function(){we("'restoreOldWindowedStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"softFullscreenResizeWebGLRenderTarget")||(n.softFullscreenResizeWebGLRenderTarget=function(){we("'softFullscreenResizeWebGLRenderTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"doRequestFullscreen")||(n.doRequestFullscreen=function(){we("'doRequestFullscreen' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillPointerlockChangeEventData")||(n.fillPointerlockChangeEventData=function(){we("'fillPointerlockChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerPointerlockChangeEventCallback")||(n.registerPointerlockChangeEventCallback=function(){we("'registerPointerlockChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerPointerlockErrorEventCallback")||(n.registerPointerlockErrorEventCallback=function(){we("'registerPointerlockErrorEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requestPointerLock")||(n.requestPointerLock=function(){we("'requestPointerLock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillVisibilityChangeEventData")||(n.fillVisibilityChangeEventData=function(){we("'fillVisibilityChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerVisibilityChangeEventCallback")||(n.registerVisibilityChangeEventCallback=function(){we("'registerVisibilityChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerTouchEventCallback")||(n.registerTouchEventCallback=function(){we("'registerTouchEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillGamepadEventData")||(n.fillGamepadEventData=function(){we("'fillGamepadEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerGamepadEventCallback")||(n.registerGamepadEventCallback=function(){we("'registerGamepadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerBeforeUnloadEventCallback")||(n.registerBeforeUnloadEventCallback=function(){we("'registerBeforeUnloadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillBatteryEventData")||(n.fillBatteryEventData=function(){we("'fillBatteryEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"battery")||(n.battery=function(){we("'battery' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerBatteryEventCallback")||(n.registerBatteryEventCallback=function(){we("'registerBatteryEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setCanvasElementSize")||(n.setCanvasElementSize=function(){we("'setCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getCanvasElementSize")||(n.getCanvasElementSize=function(){we("'getCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"polyfillSetImmediate")||(n.polyfillSetImmediate=function(){we("'polyfillSetImmediate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"demangle")||(n.demangle=function(){we("'demangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"demangleAll")||(n.demangleAll=function(){we("'demangleAll' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jsStackTrace")||(n.jsStackTrace=function(){we("'jsStackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackTrace")||(n.stackTrace=function(){we("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getEnvStrings")||(n.getEnvStrings=function(){we("'getEnvStrings' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"checkWasiClock")||(n.checkWasiClock=function(){we("'checkWasiClock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64")||(n.writeI53ToI64=function(){we("'writeI53ToI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64Clamped")||(n.writeI53ToI64Clamped=function(){we("'writeI53ToI64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64Signaling")||(n.writeI53ToI64Signaling=function(){we("'writeI53ToI64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToU64Clamped")||(n.writeI53ToU64Clamped=function(){we("'writeI53ToU64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToU64Signaling")||(n.writeI53ToU64Signaling=function(){we("'writeI53ToU64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readI53FromI64")||(n.readI53FromI64=function(){we("'readI53FromI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readI53FromU64")||(n.readI53FromU64=function(){we("'readI53FromU64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"convertI32PairToI53")||(n.convertI32PairToI53=function(){we("'convertI32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"convertU32PairToI53")||(n.convertU32PairToI53=function(){we("'convertU32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"uncaughtExceptionCount")||(n.uncaughtExceptionCount=function(){we("'uncaughtExceptionCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exceptionLast")||(n.exceptionLast=function(){we("'exceptionLast' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exceptionCaught")||(n.exceptionCaught=function(){we("'exceptionCaught' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ExceptionInfo")||(n.ExceptionInfo=function(){we("'ExceptionInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"CatchInfo")||(n.CatchInfo=function(){we("'CatchInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exception_addRef")||(n.exception_addRef=function(){we("'exception_addRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exception_decRef")||(n.exception_decRef=function(){we("'exception_decRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Browser")||(n.Browser=function(){we("'Browser' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"funcWrappers")||(n.funcWrappers=function(){we("'funcWrappers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFuncWrapper")||(n.getFuncWrapper=function(){we("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setMainLoop")||(n.setMainLoop=function(){we("'setMainLoop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"wget")||(n.wget=function(){we("'wget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"FS")||(n.FS=function(){we("'FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"MEMFS")||(n.MEMFS=function(){we("'MEMFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"TTY")||(n.TTY=function(){we("'TTY' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PIPEFS")||(n.PIPEFS=function(){we("'PIPEFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SOCKFS")||(n.SOCKFS=function(){we("'SOCKFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"_setNetworkCallback")||(n._setNetworkCallback=function(){we("'_setNetworkCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"tempFixedLengthArray")||(n.tempFixedLengthArray=function(){we("'tempFixedLengthArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"miniTempWebGLFloatBuffers")||(n.miniTempWebGLFloatBuffers=function(){we("'miniTempWebGLFloatBuffers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heapObjectForWebGLType")||(n.heapObjectForWebGLType=function(){we("'heapObjectForWebGLType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heapAccessShiftForWebGLHeap")||(n.heapAccessShiftForWebGLHeap=function(){we("'heapAccessShiftForWebGLHeap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.GL=Br,Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGet")||(n.emscriptenWebGLGet=function(){we("'emscriptenWebGLGet' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"computeUnpackAlignedImageSize")||(n.computeUnpackAlignedImageSize=function(){we("'computeUnpackAlignedImageSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetTexPixelData")||(n.emscriptenWebGLGetTexPixelData=function(){we("'emscriptenWebGLGetTexPixelData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetUniform")||(n.emscriptenWebGLGetUniform=function(){we("'emscriptenWebGLGetUniform' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglGetUniformLocation")||(n.webglGetUniformLocation=function(){we("'webglGetUniformLocation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglPrepareUniformLocationsBeforeFirstUse")||(n.webglPrepareUniformLocationsBeforeFirstUse=function(){we("'webglPrepareUniformLocationsBeforeFirstUse' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglGetLeftBracePos")||(n.webglGetLeftBracePos=function(){we("'webglGetLeftBracePos' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetVertexAttrib")||(n.emscriptenWebGLGetVertexAttrib=function(){we("'emscriptenWebGLGetVertexAttrib' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetBufferBinding")||(n.emscriptenWebGLGetBufferBinding=function(){we("'emscriptenWebGLGetBufferBinding' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLValidateMapBufferTarget")||(n.emscriptenWebGLValidateMapBufferTarget=function(){we("'emscriptenWebGLValidateMapBufferTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeGLArray")||(n.writeGLArray=function(){we("'writeGLArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"AL")||(n.AL=function(){we("'AL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_unicode")||(n.SDL_unicode=function(){we("'SDL_unicode' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_ttfContext")||(n.SDL_ttfContext=function(){we("'SDL_ttfContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_audio")||(n.SDL_audio=function(){we("'SDL_audio' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL")||(n.SDL=function(){we("'SDL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_gfx")||(n.SDL_gfx=function(){we("'SDL_gfx' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLUT")||(n.GLUT=function(){we("'GLUT' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"EGL")||(n.EGL=function(){we("'EGL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLFW_Window")||(n.GLFW_Window=function(){we("'GLFW_Window' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLFW")||(n.GLFW=function(){we("'GLFW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLEW")||(n.GLEW=function(){we("'GLEW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"IDBStore")||(n.IDBStore=function(){we("'IDBStore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runAndAbortIfError")||(n.runAndAbortIfError=function(){we("'runAndAbortIfError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_handle_array")||(n.emval_handle_array=function(){we("'emval_handle_array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_free_list")||(n.emval_free_list=function(){we("'emval_free_list' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_symbols")||(n.emval_symbols=function(){we("'emval_symbols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_emval")||(n.init_emval=function(){we("'init_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"count_emval_handles")||(n.count_emval_handles=function(){we("'count_emval_handles' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"get_first_emval")||(n.get_first_emval=function(){we("'get_first_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getStringOrSymbol")||(n.getStringOrSymbol=function(){we("'getStringOrSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requireHandle")||(n.requireHandle=function(){we("'requireHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_newers")||(n.emval_newers=function(){we("'emval_newers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"craftEmvalAllocator")||(n.craftEmvalAllocator=function(){we("'craftEmvalAllocator' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_get_global")||(n.emval_get_global=function(){we("'emval_get_global' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_methodCallers")||(n.emval_methodCallers=function(){we("'emval_methodCallers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"InternalError")||(n.InternalError=function(){we("'InternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"BindingError")||(n.BindingError=function(){we("'BindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UnboundTypeError")||(n.UnboundTypeError=function(){we("'UnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PureVirtualError")||(n.PureVirtualError=function(){we("'PureVirtualError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_embind")||(n.init_embind=function(){we("'init_embind' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwInternalError")||(n.throwInternalError=function(){we("'throwInternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwBindingError")||(n.throwBindingError=function(){we("'throwBindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwUnboundTypeError")||(n.throwUnboundTypeError=function(){we("'throwUnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ensureOverloadTable")||(n.ensureOverloadTable=function(){we("'ensureOverloadTable' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exposePublicSymbol")||(n.exposePublicSymbol=function(){we("'exposePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"replacePublicSymbol")||(n.replacePublicSymbol=function(){we("'replacePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"extendError")||(n.extendError=function(){we("'extendError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"createNamedFunction")||(n.createNamedFunction=function(){we("'createNamedFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredInstances")||(n.registeredInstances=function(){we("'registeredInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getBasestPointer")||(n.getBasestPointer=function(){we("'getBasestPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerInheritedInstance")||(n.registerInheritedInstance=function(){we("'registerInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"unregisterInheritedInstance")||(n.unregisterInheritedInstance=function(){we("'unregisterInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getInheritedInstance")||(n.getInheritedInstance=function(){we("'getInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getInheritedInstanceCount")||(n.getInheritedInstanceCount=function(){we("'getInheritedInstanceCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getLiveInheritedInstances")||(n.getLiveInheritedInstances=function(){we("'getLiveInheritedInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredTypes")||(n.registeredTypes=function(){we("'registeredTypes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"awaitingDependencies")||(n.awaitingDependencies=function(){we("'awaitingDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"typeDependencies")||(n.typeDependencies=function(){we("'typeDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredPointers")||(n.registeredPointers=function(){we("'registeredPointers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerType")||(n.registerType=function(){we("'registerType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"whenDependentTypesAreResolved")||(n.whenDependentTypesAreResolved=function(){we("'whenDependentTypesAreResolved' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind_charCodes")||(n.embind_charCodes=function(){we("'embind_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind_init_charCodes")||(n.embind_init_charCodes=function(){we("'embind_init_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readLatin1String")||(n.readLatin1String=function(){we("'readLatin1String' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getTypeName")||(n.getTypeName=function(){we("'getTypeName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heap32VectorToArray")||(n.heap32VectorToArray=function(){we("'heap32VectorToArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requireRegisteredType")||(n.requireRegisteredType=function(){we("'requireRegisteredType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getShiftFromSize")||(n.getShiftFromSize=function(){we("'getShiftFromSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"integerReadValueFromPointer")||(n.integerReadValueFromPointer=function(){we("'integerReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"enumReadValueFromPointer")||(n.enumReadValueFromPointer=function(){we("'enumReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"floatReadValueFromPointer")||(n.floatReadValueFromPointer=function(){we("'floatReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"simpleReadValueFromPointer")||(n.simpleReadValueFromPointer=function(){we("'simpleReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runDestructors")||(n.runDestructors=function(){we("'runDestructors' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"new_")||(n.new_=function(){we("'new_' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"craftInvokerFunction")||(n.craftInvokerFunction=function(){we("'craftInvokerFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind__requireFunction")||(n.embind__requireFunction=function(){we("'embind__requireFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"tupleRegistrations")||(n.tupleRegistrations=function(){we("'tupleRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"structRegistrations")||(n.structRegistrations=function(){we("'structRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"genericPointerToWireType")||(n.genericPointerToWireType=function(){we("'genericPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"constNoSmartPtrRawPointerToWireType")||(n.constNoSmartPtrRawPointerToWireType=function(){we("'constNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"nonConstNoSmartPtrRawPointerToWireType")||(n.nonConstNoSmartPtrRawPointerToWireType=function(){we("'nonConstNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_RegisteredPointer")||(n.init_RegisteredPointer=function(){we("'init_RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer")||(n.RegisteredPointer=function(){we("'RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_getPointee")||(n.RegisteredPointer_getPointee=function(){we("'RegisteredPointer_getPointee' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_destructor")||(n.RegisteredPointer_destructor=function(){we("'RegisteredPointer_destructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_deleteObject")||(n.RegisteredPointer_deleteObject=function(){we("'RegisteredPointer_deleteObject' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_fromWireType")||(n.RegisteredPointer_fromWireType=function(){we("'RegisteredPointer_fromWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runDestructor")||(n.runDestructor=function(){we("'runDestructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"releaseClassHandle")||(n.releaseClassHandle=function(){we("'releaseClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"finalizationGroup")||(n.finalizationGroup=function(){we("'finalizationGroup' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"detachFinalizer_deps")||(n.detachFinalizer_deps=function(){we("'detachFinalizer_deps' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"detachFinalizer")||(n.detachFinalizer=function(){we("'detachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"attachFinalizer")||(n.attachFinalizer=function(){we("'attachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"makeClassHandle")||(n.makeClassHandle=function(){we("'makeClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_ClassHandle")||(n.init_ClassHandle=function(){we("'init_ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle")||(n.ClassHandle=function(){we("'ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_isAliasOf")||(n.ClassHandle_isAliasOf=function(){we("'ClassHandle_isAliasOf' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwInstanceAlreadyDeleted")||(n.throwInstanceAlreadyDeleted=function(){we("'throwInstanceAlreadyDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_clone")||(n.ClassHandle_clone=function(){we("'ClassHandle_clone' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_delete")||(n.ClassHandle_delete=function(){we("'ClassHandle_delete' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"deletionQueue")||(n.deletionQueue=function(){we("'deletionQueue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_isDeleted")||(n.ClassHandle_isDeleted=function(){we("'ClassHandle_isDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_deleteLater")||(n.ClassHandle_deleteLater=function(){we("'ClassHandle_deleteLater' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"flushPendingDeletes")||(n.flushPendingDeletes=function(){we("'flushPendingDeletes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"delayFunction")||(n.delayFunction=function(){we("'delayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setDelayFunction")||(n.setDelayFunction=function(){we("'setDelayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredClass")||(n.RegisteredClass=function(){we("'RegisteredClass' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"shallowCopyInternalPointer")||(n.shallowCopyInternalPointer=function(){we("'shallowCopyInternalPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"downcastPointer")||(n.downcastPointer=function(){we("'downcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"upcastPointer")||(n.upcastPointer=function(){we("'upcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"validateThis")||(n.validateThis=function(){we("'validateThis' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"char_0")||(n.char_0=function(){we("'char_0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"char_9")||(n.char_9=function(){we("'char_9' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"makeLegalFunctionName")||(n.makeLegalFunctionName=function(){we("'makeLegalFunctionName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetIndexed")||(n.emscriptenWebGLGetIndexed=function(){we("'emscriptenWebGLGetIndexed' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"warnOnce")||(n.warnOnce=function(){we("'warnOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackSave")||(n.stackSave=function(){we("'stackSave' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackRestore")||(n.stackRestore=function(){we("'stackRestore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackAlloc")||(n.stackAlloc=function(){we("'stackAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"AsciiToString")||(n.AsciiToString=function(){we("'AsciiToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToAscii")||(n.stringToAscii=function(){we("'stringToAscii' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF16ToString")||(n.UTF16ToString=function(){we("'UTF16ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF16")||(n.stringToUTF16=function(){we("'stringToUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF16")||(n.lengthBytesUTF16=function(){we("'lengthBytesUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF32ToString")||(n.UTF32ToString=function(){we("'UTF32ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF32")||(n.stringToUTF32=function(){we("'stringToUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF32")||(n.lengthBytesUTF32=function(){we("'lengthBytesUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocateUTF8")||(n.allocateUTF8=function(){we("'allocateUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocateUTF8OnStack")||(n.allocateUTF8OnStack=function(){we("'allocateUTF8OnStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.writeStackCookie=te,n.checkStackCookie=re,Object.getOwnPropertyDescriptor(n,"ALLOC_NORMAL")||Object.defineProperty(n,"ALLOC_NORMAL",{configurable:!0,get:function(){we("'ALLOC_NORMAL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),Object.getOwnPropertyDescriptor(n,"ALLOC_STACK")||Object.defineProperty(n,"ALLOC_STACK",{configurable:!0,get:function(){we("'ALLOC_STACK' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),he=function e(){In||Bn(),In||(he=e)},n.run=Bn,n.preInit)for("function"==typeof n.preInit&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.pop()();return Bn(),e.ready}),F=S,k=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="./this.program",A=function(e,t){throw t},c="object"===("undefined"==typeof window?"undefined":E(window)),u="function"==typeof importScripts,g="object"===("undefined"==typeof process?"undefined":E(process))&&"object"===E(process.versions)&&"string"==typeof process.versions.node,d=!c&&!g&&!u;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 l,f,p,h="";if(!c&&!u)throw new Error("environment detection error");if(u?h=self.location.href:"undefined"!=typeof document&&document.currentScript&&(h=document.currentScript.src),e&&(h=e),h=0!==h.indexOf("blob:")?h.substr(0,h.lastIndexOf("/")+1):"","object"!==("undefined"==typeof window?"undefined":E(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?)");l=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},u&&(p=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),f=function(e,t,r){var n=new XMLHttpRequest;n.open("GET",e,!0),n.responseType="arraybuffer",n.onload=function(){200==n.status||0==n.status&&n.response?t(n.response):r()},n.onerror=r,n.send(null)};var I=o.print||console.log.bind(console),m=o.printErr||console.warn.bind(console);for(i in a)a.hasOwnProperty(i)&&(o[i]=a[i]);function y(e){y.shown||(y.shown={}),y.shown[e]||(y.shown[e]=1,m(e))}a=null,o.arguments&&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&&(s=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)")}}),Q(void 0===o.memoryInitializerPrefixURL,"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),Q(void 0===o.pthreadMainPrefixURL,"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),Q(void 0===o.cdInitializerPrefixURL,"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),Q(void 0===o.filePackagePrefixURL,"Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),Q(void 0===o.read,"Module.read option was removed (modify read_ in JS)"),Q(void 0===o.readAsync,"Module.readAsync option was removed (modify readAsync in JS)"),Q(void 0===o.readBinary,"Module.readBinary option was removed (modify readBinary in JS)"),Q(void 0===o.setWindowTitle,"Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),Q(void 0===o.TOTAL_MEMORY,"Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"),Object.getOwnPropertyDescriptor(o,"read")||Object.defineProperty(o,"read",{configurable:!0,get:function(){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)")}}),Q(!d,"shell environment detected but not enabled at build time. Add 'shell' to `-s ENVIRONMENT` to enable.");var C,w=0,_=function(e){w=e};o.wasmBinary&&(C=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,v=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"!==("undefined"==typeof WebAssembly?"undefined":E(WebAssembly))&&ye("no native wasm support detected");var b,O=!1;function Q(e,t){e||ye("Assertion failed: "+t)}var T="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function P(e,t,r){for(var n=t+r,o=t;e[o]&&!(o>=n);)++o;if(o-t>16&&e.subarray&&T)return T.decode(e.subarray(t,o));for(var i="";t<o;){var a=e[t++];if(128&a){var s=63&e[t++];if(192!=(224&a)){var A=63&e[t++];if(224==(240&a)?a=(15&a)<<12|s<<6|A:(240!=(248&a)&&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|A<<6|63&e[t++]),a<65536)i+=String.fromCharCode(a);else{var c=a-65536;i+=String.fromCharCode(55296|c>>10,56320|1023&c)}}else i+=String.fromCharCode((31&a)<<6|s)}else i+=String.fromCharCode(a)}return i}function M(e,t){return e?P(N,e,t):""}function R(e,t,r,n){if(!(n>0))return 0;for(var o=r,i=r+n-1,a=0;a<e.length;++a){var s=e.charCodeAt(a);if(s>=55296&&s<=57343)s=65536+((1023&s)<<10)|1023&e.charCodeAt(++a);if(s<=127){if(r>=i)break;t[r++]=s}else if(s<=2047){if(r+1>=i)break;t[r++]=192|s>>6,t[r++]=128|63&s}else if(s<=65535){if(r+2>=i)break;t[r++]=224|s>>12,t[r++]=128|s>>6&63,t[r++]=128|63&s}else{if(r+3>=i)break;s>=2097152&&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 S(e,t,r){return Q("number"==typeof r,"stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),R(e,N,t,r)}function F(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 k,x,N,j,U,L,H,G,Y,X="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function W(e,t){Q(e%2==0,"Pointer passed to UTF16ToString must be aligned to two bytes!");for(var r=e,n=r>>1,o=n+t/2;!(n>=o)&&U[n];)++n;if((r=n<<1)-e>32&&X)return X.decode(N.subarray(e,r));for(var i="",a=0;!(a>=t/2);++a){var s=j[e+2*a>>1];if(0==s)break;i+=String.fromCharCode(s)}return i}function V(e,t,r){if(Q(t%2==0,"Pointer passed to stringToUTF16 must be aligned to two bytes!"),Q("number"==typeof r,"stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),void 0===r&&(r=2147483647),r<2)return 0;for(var n=t,o=(r-=2)<2*e.length?r/2:e.length,i=0;i<o;++i){var a=e.charCodeAt(i);j[t>>1]=a,t+=2}return j[t>>1]=0,t-n}function z(e){return 2*e.length}function J(e,t){Q(e%4==0,"Pointer passed to UTF32ToString must be aligned to four bytes!");for(var r=0,n="";!(r>=t/4);){var o=L[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 K(e,t,r){if(Q(t%4==0,"Pointer passed to stringToUTF32 must be aligned to four bytes!"),Q("number"==typeof r,"stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),void 0===r&&(r=2147483647),r<4)return 0;for(var n=t,o=n+r-4,i=0;i<e.length;++i){var a=e.charCodeAt(i);if(a>=55296&&a<=57343)a=65536+((1023&a)<<10)|1023&e.charCodeAt(++i);if(L[t>>2]=a,(t+=4)+4>o)break}return L[t>>2]=0,t-n}function Z(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 q(e){var t=F(e)+1,r=fn(t);return r&&R(e,x,r,t),r}function $(e){k=e,o.HEAP8=x=new Int8Array(e),o.HEAP16=j=new Int16Array(e),o.HEAP32=L=new Int32Array(e),o.HEAPU8=N=new Uint8Array(e),o.HEAPU16=U=new Uint16Array(e),o.HEAPU32=H=new Uint32Array(e),o.HEAPF32=G=new Float32Array(e),o.HEAPF64=Y=new Float64Array(e)}var ee=5242880;o.TOTAL_STACK&&Q(ee===o.TOTAL_STACK,"the stack size can no longer be determined at runtime");var te,re=o.INITIAL_MEMORY||16777216;function ne(){var e=hn();Q(!(3&e)),H[1+(e>>2)]=34821223,H[2+(e>>2)]=2310721022,L[0]=1668509029}function oe(){if(!O){var e=hn(),t=H[1+(e>>2)],r=H[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!==L[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)")}}),Q(re>=ee,"INITIAL_MEMORY should be larger than TOTAL_STACK, was "+re+"! (TOTAL_STACK="+ee+")"),Q("undefined"!=typeof Int32Array&&"undefined"!=typeof Float64Array&&void 0!==Int32Array.prototype.subarray&&void 0!==Int32Array.prototype.set,"JS engine does not provide full typed array support"),Q(!o.wasmMemory,"Use of `wasmMemory` detected. Use -s IMPORTED_MEMORY to define wasmMemory externally"),Q(16777216==re,"Detected runtime INITIAL_MEMORY setting. Use -s IMPORTED_MEMORY to define wasmMemory dynamically"),function(){var e=new Int16Array(1),t=new Int8Array(e.buffer);if(e[0]=25459,115!==t[0]||99!==t[1])throw"Runtime error: expected the system to be little-endian! (Run with -s SUPPORT_BIG_ENDIAN=1 to bypass)"}();var ie=[],ae=[],se=[],Ae=[],ce=!1,ue=!1,ge=0;function de(){return v||ge>0}Q(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),Q(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),Q(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),Q(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");var le=0,fe=null,Ee=null,pe={};function he(e){for(var t=e;;){if(!pe[e])return e;e=t+Math.random()}}function Ie(e){le++,o.monitorRunDependencies&&o.monitorRunDependencies(le),e?(Q(!pe[e]),pe[e]=1,null===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,m("still waiting on run dependencies:")),m("dependency: "+t);e&&m("(end of list)")}),1e4))):m("warning: run dependency added without ID")}function me(e){if(le--,o.monitorRunDependencies&&o.monitorRunDependencies(le),e?(Q(pe[e]),delete pe[e]):m("warning: run dependency removed without ID"),0==le&&(null!==fe&&(clearInterval(fe),fe=null),Ee)){var t=Ee;Ee=null,t()}}function ye(e){o.onAbort&&o.onAbort(e),m(e+=""),O=!0,b=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 Ce,we,_e,Be,ve="data:application/octet-stream;base64,";function De(e){return e.startsWith(ve)}function be(e){return e.startsWith("file://")}function Oe(e,t){return function(){var r=e,n=t;return n=o.asm,Q(ce,"native function `"+r+"` called before runtime initialization"),Q(!ue,"native function `"+r+"` called after runtime exit (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),n[e]||Q(n[e],"exported native function `"+r+"` not found"),n[e].apply(null,arguments)}}function Qe(e){try{if(e==Ce&&C)return new Uint8Array(C);if(p)return p(e);throw"both async and sync fetching of the wasm failed"}catch(e){ye(e)}}De(Ce="selfie_segmentation_solution_wasm_bin.wasm")||(we=Ce,Ce=o.locateFile?o.locateFile(we,h):h+we);var Te,Pe={460976:function(){var e=!0;if(e){var t=Sr;if("function"!=typeof t)return void("undefined"!=typeof console&&console.error('Expected Emscripten global function "findCanvasEventTarget" not found. WebGL context creation may fail.'));Sr=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 Me(e){!function(e){if(b=e,function(){var e=I,t=m,r=!1;I=m=function(e){r=!0};try{var n=o._fflush;n&&n(0),["stdout","stderr"].forEach((function(e){var t=$e.analyzePath("/dev/"+e);if(t){var n=t.object.rdev,o=ze.ttys[n];o&&o.output&&o.output.length&&(r=!0)}}))}catch(e){}I=e,m=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()){var 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)";n(t),m(t)}else oe(),ue=!0;Pn(e)}(e)}function Re(e,t,r,n,i){Q(!ke.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),ke.mainLoop.func=e,ke.mainLoop.arg=n;var a=ke.mainLoop.currentlyRunningMainloop;function s(){return!(a<ke.mainLoop.currentlyRunningMainloop)||(function(){if(!de())try{Me(b)}catch(e){if(e instanceof Qn)return;throw e}}(),!1)}ke.mainLoop.running=!1,ke.mainLoop.runner=function(){if(!O)if(ke.mainLoop.queue.length>0){var t=Date.now(),r=ke.mainLoop.queue.shift();if(r.func(r.arg),ke.mainLoop.remainingBlockers){var n=ke.mainLoop.remainingBlockers,i=n%1==0?n-1:Math.floor(n);r.counted?ke.mainLoop.remainingBlockers=i:(i+=.5,ke.mainLoop.remainingBlockers=(8*n+i)/9)}if(I('main loop blocker "'+r.name+'" took '+(Date.now()-t)+" ms"),ke.mainLoop.updateStatus(),!s())return;setTimeout(ke.mainLoop.runner,0)}else s()&&(ke.mainLoop.currentFrameNumber=ke.mainLoop.currentFrameNumber+1|0,1==ke.mainLoop.timingMode&&ke.mainLoop.timingValue>1&&ke.mainLoop.currentFrameNumber%ke.mainLoop.timingValue!=0?ke.mainLoop.scheduler():(0==ke.mainLoop.timingMode&&(ke.mainLoop.tickStartTime=Te()),Tr.newRenderingFrameStarted(),void 0!==Tr&&Tr.currentContext&&!Tr.currentContextIsProxied&&!Tr.currentContext.attributes.explicitSwapControl&&Tr.currentContext.GLctx.commit&&Tr.currentContext.GLctx.commit(),"timeout"===ke.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!"),ke.mainLoop.method=""),ke.mainLoop.runIter(e),oe(),s()&&("object"===("undefined"==typeof SDL?"undefined":E(SDL))&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),ke.mainLoop.scheduler())))}}function Se(e,t){if(O)m("user callback triggered after application aborted. Ignoring.");else try{e()}catch(e){if(e instanceof Qn)return;if("unwind"!==e)throw e&&"object"===E(e)&&e.stack&&m("exception thrown: "+[e,e.stack]),e}}function Fe(e,t){return setTimeout((function(){Se(e)}),t)}Te=g?function(){var e=process.hrtime();return 1e3*e[0]+e[1]/1e6}:function(){return performance.now()};var ke={mainLoop:{running:!1,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){ke.mainLoop.scheduler=null,ke.mainLoop.currentlyRunningMainloop++},resume:function(){ke.mainLoop.currentlyRunningMainloop++;var e=ke.mainLoop.timingMode,t=ke.mainLoop.timingValue,r=ke.mainLoop.func;ke.mainLoop.func=null,Re(r,0,0,ke.mainLoop.arg),function(e,t){if(ke.mainLoop.timingMode=e,ke.mainLoop.timingValue=t,!ke.mainLoop.func)return m("emscripten_set_main_loop_timing: Cannot set timing mode for main loop since a main loop does not exist! Call emscripten_set_main_loop first to set one up."),1;if(ke.mainLoop.running||(ke.mainLoop.running=!0),0==e)ke.mainLoop.scheduler=function(){var e=0|Math.max(0,ke.mainLoop.tickStartTime+t-Te());setTimeout(ke.mainLoop.runner,e)},ke.mainLoop.method="timeout";else if(1==e)ke.mainLoop.scheduler=function(){ke.requestAnimationFrame(ke.mainLoop.runner)},ke.mainLoop.method="rAF";else if(2==e){if("undefined"==typeof setImmediate){var r=[],n="setimmediate";addEventListener("message",(function(e){e.data!==n&&e.data.target!==n||(e.stopPropagation(),r.shift()())}),!0),setImmediate=function(e){r.push(e),u?(void 0===o.setImmediates&&(o.setImmediates=[]),o.setImmediates.push(e),postMessage({target:n})):postMessage(n,"*")}}ke.mainLoop.scheduler=function(){setImmediate(ke.mainLoop.runner)},ke.mainLoop.method="immediate"}}(e,t),ke.mainLoop.scheduler()},updateStatus:function(){if(o.setStatus){var e=o.statusMessage||"Please wait...",t=ke.mainLoop.remainingBlockers,r=ke.mainLoop.expectedBlockers;t?t<r?o.setStatus(e+" ("+(r-t)+"/"+r+")"):o.setStatus(e):o.setStatus("")}},runIter:function(e){if(!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=[]),!ke.initted){ke.initted=!0;try{new Blob,ke.hasBlobConstructor=!0}catch(e){ke.hasBlobConstructor=!1,I("warning: no blob constructor, cannot create blobs with mimetypes")}ke.BlobBuilder="undefined"!=typeof MozBlobBuilder?MozBlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:ke.hasBlobConstructor?null:I("warning: no BlobBuilder"),ke.URLObject="undefined"!=typeof window?window.URL?window.URL:window.webkitURL:void 0,o.noImageDecoding||void 0!==ke.URLObject||(I("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),o.noImageDecoding=!0);var e={canHandle:function(e){return!o.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(e)},handle:function(e,t,r,n){var i=null;if(ke.hasBlobConstructor)try{(i=new Blob([e],{type:ke.getMimetype(t)})).size!==e.length&&(i=new Blob([new Uint8Array(e).buffer],{type:ke.getMimetype(t)}))}catch(e){y("Blob constructor present but fails: "+e+"; falling back to blob builder")}if(!i){var a=new ke.BlobBuilder;a.append(new Uint8Array(e).buffer),i=a.getBlob()}var s=ke.URLObject.createObjectURL(i);Q("string"==typeof s,"createObjectURL must return a url as a string");var A=new Image;A.onload=function(){Q(A.complete,"Image "+t+" could not be decoded");var n=document.createElement("canvas");n.width=A.width,n.height=A.height,n.getContext("2d").drawImage(A,0,0),o.preloadedImages[t]=n,ke.URLObject.revokeObjectURL(s),r&&r(e)},A.onerror=function(e){I("Image "+s+" could not be decoded"),n&&n()},A.src=s}};o.preloadPlugins.push(e);var t={canHandle:function(e){return!o.noAudioDecoding&&e.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},handle:function(e,t,r,n){var i=!1;function a(n){i||(i=!0,o.preloadedAudios[t]=n,r&&r(e))}function s(){i||(i=!0,o.preloadedAudios[t]=new Audio,n&&n())}if(!ke.hasBlobConstructor)return s();try{var A=new Blob([e],{type:ke.getMimetype(t)})}catch(e){return s()}var c=ke.URLObject.createObjectURL(A);Q("string"==typeof c,"createObjectURL must return a url as a string");var u=new Audio;u.addEventListener("canplaythrough",(function(){a(u)}),!1),u.onerror=function(r){i||(I("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=c,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){!ke.pointerLock&&o.canvas.requestPointerLock&&(o.canvas.requestPointerLock(),e.preventDefault())}),!1))}},createContext:function(e,t,r,n){if(t&&o.ctx&&e==o.canvas)return o.ctx;var i,a;if(t){var s={antialias:!1,alpha:!1,majorVersion:"undefined"!=typeof WebGL2RenderingContext?2:1};if(n)for(var A in n)s[A]=n[A];void 0!==Tr&&(a=Tr.createContext(e,s))&&(i=Tr.getContext(a).GLctx)}else i=e.getContext("2d");return i?(r&&(t||Q(void 0===nn,"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,ke.moduleContextCreatedCallbacks.forEach((function(e){e()})),ke.init()),i):null},destroyContext:function(e,t,r){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(e,t){ke.lockPointer=e,ke.resizeCanvas=t,void 0===ke.lockPointer&&(ke.lockPointer=!0),void 0===ke.resizeCanvas&&(ke.resizeCanvas=!1);var r=o.canvas;function n(){ke.isFullscreen=!1;var e=r.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===e?(r.exitFullscreen=ke.exitFullscreen,ke.lockPointer&&r.requestPointerLock(),ke.isFullscreen=!0,ke.resizeCanvas?ke.setFullscreenCanvasSize():ke.updateCanvasDimensions(r)):(e.parentNode.insertBefore(r,e),e.parentNode.removeChild(e),ke.resizeCanvas?ke.setWindowedCanvasSize():ke.updateCanvasDimensions(r)),o.onFullScreen&&o.onFullScreen(ke.isFullscreen),o.onFullscreen&&o.onFullscreen(ke.isFullscreen)}ke.fullscreenHandlersInstalled||(ke.fullscreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",n,!1),document.addEventListener("mozfullscreenchange",n,!1),document.addEventListener("webkitfullscreenchange",n,!1),document.addEventListener("MSFullscreenChange",n,!1));var i=document.createElement("div");r.parentNode.insertBefore(i,r),i.appendChild(r),i.requestFullscreen=i.requestFullscreen||i.mozRequestFullScreen||i.msRequestFullscreen||(i.webkitRequestFullscreen?function(){i.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(i.webkitRequestFullScreen?function(){i.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),i.requestFullscreen()},requestFullScreen:function(){ye("Module.requestFullScreen has been replaced by Module.requestFullscreen (without a capital S)")},exitFullscreen:function(){return!!ke.isFullscreen&&((document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){}).apply(document,[]),!0)},nextRAF:0,fakeRequestAnimationFrame:function(e){var t=Date.now();if(0===ke.nextRAF)ke.nextRAF=t+1e3/60;else for(;t+2>=ke.nextRAF;)ke.nextRAF+=1e3/60;var r=Math.max(ke.nextRAF-t,0);setTimeout(e,r)},requestAnimationFrame:function(e){function t(t){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}((function(e){"function"!=typeof requestAnimationFrame?(0,ke.fakeRequestAnimationFrame)(e):requestAnimationFrame(e)})),safeSetTimeout:function(e){return Fe(e)},safeRequestAnimationFrame:function(e){return ke.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(ke.pointerLock)"mousemove"!=e.type&&"mozMovementX"in e?ke.mouseMovementX=ke.mouseMovementY=0:(ke.mouseMovementX=ke.getMovementX(e),ke.mouseMovementY=ke.getMovementY(e)),"undefined"!=typeof SDL?(ke.mouseX=SDL.mouseX+ke.mouseMovementX,ke.mouseY=SDL.mouseY+ke.mouseMovementY):(ke.mouseX+=ke.mouseMovementX,ke.mouseY+=ke.mouseMovementY);else{var t=o.canvas.getBoundingClientRect(),r=o.canvas.width,n=o.canvas.height,i=void 0!==window.scrollX?window.scrollX:window.pageXOffset,a=void 0!==window.scrollY?window.scrollY:window.pageYOffset;if(Q(void 0!==i&&void 0!==a,"Unable to retrieve scroll position, mouse positions likely broken."),"touchstart"===e.type||"touchend"===e.type||"touchmove"===e.type){var s=e.touch;if(void 0===s)return;var A=s.pageX-(i+t.left),c=s.pageY-(a+t.top),u={x:A*=r/t.width,y:c*=n/t.height};if("touchstart"===e.type)ke.lastTouches[s.identifier]=u,ke.touches[s.identifier]=u;else if("touchend"===e.type||"touchmove"===e.type){var g=ke.touches[s.identifier];g||(g=u),ke.lastTouches[s.identifier]=g,ke.touches[s.identifier]=u}return}var d=e.pageX-(i+t.left),l=e.pageY-(a+t.top);d*=r/t.width,l*=n/t.height,ke.mouseMovementX=d-ke.mouseX,ke.mouseMovementY=l-ke.mouseY,ke.mouseX=d,ke.mouseY=l}},resizeListeners:[],updateResizeListeners:function(){var e=o.canvas;ke.resizeListeners.forEach((function(t){t(e.width,e.height)}))},setCanvasSize:function(e,t,r){var n=o.canvas;ke.updateCanvasDimensions(n,e,t),r||ke.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if("undefined"!=typeof SDL){var e=H[SDL.screen>>2];e|=8388608,L[SDL.screen>>2]=e}ke.updateCanvasDimensions(o.canvas),ke.updateResizeListeners()},setWindowedCanvasSize:function(){if("undefined"!=typeof SDL){var e=H[SDL.screen>>2];e&=-8388609,L[SDL.screen>>2]=e}ke.updateCanvasDimensions(o.canvas),ke.updateResizeListeners()},updateCanvasDimensions:function(e,t,r){t&&r?(e.widthNative=t,e.heightNative=r):(t=e.widthNative,r=e.heightNative);var n=t,i=r;if(o.forcedAspectRatio&&o.forcedAspectRatio>0&&(n/i<o.forcedAspectRatio?n=Math.round(i*o.forcedAspectRatio):i=Math.round(n/o.forcedAspectRatio)),(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===e.parentNode&&"undefined"!=typeof screen){var a=Math.min(screen.width/n,screen.height/i);n=Math.round(n*a),i=Math.round(i*a)}ke.resizeCanvas?(e.width!=n&&(e.width=n),e.height!=i&&(e.height=i),void 0!==e.style&&(e.style.removeProperty("width"),e.style.removeProperty("height"))):(e.width!=t&&(e.width=t),e.height!=r&&(e.height=r),void 0!==e.style&&(n!=t||i!=r?(e.style.setProperty("width",n+"px","important"),e.style.setProperty("height",i+"px","important")):(e.style.removeProperty("width"),e.style.removeProperty("height"))))}};function xe(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var r=t.func;"number"==typeof r?void 0===t.arg?te.get(r)():te.get(r)(t.arg):r(void 0===t.arg?null:t.arg)}else t(o)}}function 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 je(e){this.excPtr=e,this.ptr=e-16,this.set_type=function(e){L[this.ptr+4>>2]=e},this.get_type=function(){return L[this.ptr+4>>2]},this.set_destructor=function(e){L[this.ptr+8>>2]=e},this.get_destructor=function(){return L[this.ptr+8>>2]},this.set_refcount=function(e){L[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=L[this.ptr>>2];L[this.ptr>>2]=e+1},this.release_ref=function(){var e=L[this.ptr>>2];return L[this.ptr>>2]=e-1,Q(e>0),1===e}}function Ue(e){this.free=function(){ln(this.ptr),this.ptr=0},this.set_base_ptr=function(e){L[this.ptr>>2]=e},this.get_base_ptr=function(){return L[this.ptr>>2]},this.set_adjusted_ptr=function(e){L[this.ptr+4>>2]=e},this.get_adjusted_ptr_addr=function(){return this.ptr+4},this.get_adjusted_ptr=function(){return L[this.ptr+4>>2]},this.get_exception_ptr=function(){if(bn(this.get_exception_info().get_type()))return L[this.get_base_ptr()>>2];var e=this.get_adjusted_ptr();return 0!==e?e:this.get_base_ptr()},this.get_exception_info=function(){return new je(this.get_base_ptr())},void 0===e?(this.ptr=fn(8),this.set_adjusted_ptr(0)):this.ptr=e}var Le=[];var He=0;function Ge(e){try{return ln(new je(e).ptr)}catch(e){m("exception during cxa_free_exception: "+e)}}function Ye(e){return L[En()>>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"===("undefined"==typeof crypto?"undefined":E(crypto))&&"function"==typeof crypto.getRandomValues){var e=new Uint8Array(1);return function(){return crypto.getRandomValues(e),e[0]}}if(g)try{var t=D("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]:$e.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 A=[];for(s=a;s<n.length;s++)A.push("..");return(A=A.concat(o.slice(a))).join("/")}},ze={ttys:[],init:function(){},shutdown:function(){},register:function(e,t){ze.ttys[e]={input:[],output:[],ops:t},$e.registerDevice(e,ze.stream_ops)},stream_ops:{open:function(e){var t=ze.ttys[e.node.rdev];if(!t)throw new $e.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 $e.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 $e.ErrnoError(29)}if(void 0===s&&0===i)throw new $e.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 $e.ErrnoError(60);try{for(var i=0;i<n;i++)e.tty.ops.put_char(e.tty,t[r+i])}catch(e){throw new $e.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(g){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=gn(t,!0)}return e.input.shift()},put_char:function(e,t){null===t||10===t?(I(P(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(I(P(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,t){null===t||10===t?(m(P(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(m(P(e.output,0)),e.output=[])}}};function Je(e){e=function(e,t){return Q(t,"alignment argument is required"),Math.ceil(e/t)*t}(e,65536);var t=On(65536,e);return t?(function(e,t){N.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($e.isBlkdev(r)||$e.isFIFO(r))throw new $e.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:$e.chrdev_stream_ops}});var o=$e.createNode(e,t,r,n);return $e.isDir(o.mode)?(o.node_ops=Ke.ops_table.dir.node,o.stream_ops=Ke.ops_table.dir.stream,o.contents={}):$e.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):$e.isLink(o.mode)?(o.node_ops=Ke.ops_table.link.node,o.stream_ops=Ke.ops_table.link.stream):$e.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=$e.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,$e.isDir(e.mode)?t.size=4096:$e.isFile(e.mode)?t.size=e.usedBytes:$e.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 $e.genericErrors[44]},mknod:function(e,t,r,n){return Ke.createNode(e,t,r,n)},rename:function(e,t,r){if($e.isDir(e.mode)){var n;try{n=$e.lookupNode(t,r)}catch(e){}if(n)for(var o in n.contents)throw new $e.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=$e.lookupNode(e,t);for(var n in r.contents)throw new $e.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(!$e.isLink(e.mode))throw new $e.ErrnoError(28);return e.link}},stream_ops:{read:function(e,t,r,n,o){var i=e.node.contents;if(o>=e.node.usedBytes)return 0;var a=Math.min(e.node.usedBytes-o,n);if(Q(a>=0),a>8&&i.subarray)t.set(i.subarray(o,o+a),r);else for(var s=0;s<a;s++)t[r+s]=i[o+s];return a},write:function(e,t,r,n,o,i){if(Q(!(t instanceof ArrayBuffer)),t.buffer===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 Q(0===o,"canOwn must imply no weird position inside the file"),a.contents=t.subarray(r,r+n),a.usedBytes=n,n;if(0===a.usedBytes&&0===o)return a.contents=t.slice(r,r+n),a.usedBytes=n,n;if(o+n<=a.usedBytes)return a.contents.set(t.subarray(r,r+n),o),n}if(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&&$e.isFile(e.node.mode)&&(n+=e.node.usedBytes),n<0)throw new $e.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 $e.ErrnoError(28);if(!$e.isFile(e.node.mode))throw new $e.ErrnoError(43);var a,s,A=e.node.contents;if(2&i||A.buffer!==k){if((n>0||n+r<A.length)&&(A=A.subarray?A.subarray(n,n+r):Array.prototype.slice.call(A,n,n+r)),s=!0,!(a=Je(r)))throw new $e.ErrnoError(48);x.set(A,a)}else s=!1,a=A.byteOffset;return{ptr:a,allocated:s}},msync:function(e,t,r,n,o){if(!$e.isFile(e.node.mode))throw new $e.ErrnoError(43);return 2&o||Ke.stream_ops.write(e,t,0,n,r,!1),0}}};var Ze={0:"Success",1:"Arg list too long",2:"Permission denied",3:"Address already in use",4:"Address not available",5:"Address family not supported by protocol family",6:"No more processes",7:"Socket already connected",8:"Bad file number",9:"Trying to read unreadable message",10:"Mount device busy",11:"Operation canceled",12:"No children",13:"Connection aborted",14:"Connection refused",15:"Connection reset by peer",16:"File locking deadlock error",17:"Destination address required",18:"Math arg out of domain of func",19:"Quota exceeded",20:"File exists",21:"Bad address",22:"File too large",23:"Host is unreachable",24:"Identifier removed",25:"Illegal byte sequence",26:"Connection already in progress",27:"Interrupted system call",28:"Invalid argument",29:"I/O error",30:"Socket is already connected",31:"Is a directory",32:"Too many symbolic links",33:"Too many open files",34:"Too many links",35:"Message too long",36:"Multihop attempted",37:"File or path name too long",38:"Network interface is not configured",39:"Connection reset by network",40:"Network is unreachable",41:"Too many open files in system",42:"No buffer space available",43:"No such device",44:"No such file or directory",45:"Exec format error",46:"No record locks available",47:"The link has been severed",48:"Not enough core",49:"No message of desired type",50:"Protocol not available",51:"No space left on device",52:"Function not implemented",53:"Socket is not connected",54:"Not a directory",55:"Directory not empty",56:"State not recoverable",57:"Socket operation on non-socket",59:"Not a typewriter",60:"No such device or address",61:"Value too large for defined data type",62:"Previous owner died",63:"Not super-user",64:"Broken pipe",65:"Protocol error",66:"Unknown protocol",67:"Protocol wrong type for socket",68:"Math result not representable",69:"Read only file system",70:"Illegal seek",71:"No such process",72:"Stale file handle",73:"Connection timed out",74:"Text file busy",75:"Cross-device link",100:"Device not a stream",101:"Bad font file fmt",102:"Invalid slot",103:"Invalid request code",104:"No anode",105:"Block device required",106:"Channel number out of range",107:"Level 3 halted",108:"Level 3 reset",109:"Link number out of range",110:"Protocol driver not attached",111:"No CSI structure available",112:"Level 2 halted",113:"Invalid exchange",114:"Invalid request descriptor",115:"Exchange full",116:"No data (for no delay io)",117:"Timer expired",118:"Out of streams resources",119:"Machine is not on the network",120:"Package not installed",121:"The object is remote",122:"Advertise error",123:"Srmount error",124:"Communication error on send",125:"Cross mount point (not really error)",126:"Given log. name not unique",127:"f.d. invalid for this operation",128:"Remote address changed",129:"Can access a needed shared lib",130:"Accessing a corrupted shared lib",131:".lib section in a.out corrupted",132:"Attempting to link in too many libs",133:"Attempting to exec a shared library",135:"Streams pipe error",136:"Too many users",137:"Socket type not supported",138:"Not supported",139:"Protocol family not supported",140:"Can't send after socket shutdown",141:"Too many references",142:"Host is down",148:"No medium (in tape drive)",156:"Level 2 not synchronized"},qe={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},$e={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($e.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 $e.ErrnoError(32);for(var o=Xe.normalizeArray(e.split("/").filter((function(e){return!!e})),!1),i=$e.root,a="/",s=0;s<o.length;s++){var A=s===o.length-1;if(A&&t.parent)break;if(i=$e.lookupNode(i,o[s]),a=Xe.join2(a,o[s]),$e.isMountpoint(i)&&(!A||A&&t.follow_mount)&&(i=i.mounted.root),!A||t.follow)for(var c=0;$e.isLink(i.mode);){var u=$e.readlink(a);if(a=Ve.resolve(Xe.dirname(a),u),i=$e.lookupPath(a,{recurse_count:t.recurse_count}).node,c++>40)throw new $e.ErrnoError(32)}}return{path:a,node:i}},getPath:function(e){for(var t;;){if($e.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)%$e.nameTable.length},hashAddNode:function(e){var t=$e.hashName(e.parent.id,e.name);e.name_next=$e.nameTable[t],$e.nameTable[t]=e},hashRemoveNode:function(e){var t=$e.hashName(e.parent.id,e.name);if($e.nameTable[t]===e)$e.nameTable[t]=e.name_next;else for(var r=$e.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=$e.mayLookup(e);if(r)throw new $e.ErrnoError(r,e);for(var n=$e.hashName(e.id,t),o=$e.nameTable[n];o;o=o.name_next){var i=o.name;if(o.parent.id===e.id&&i===t)return o}return $e.lookup(e,t)},createNode:function(e,t,r,n){Q("object"===E(e));var o=new $e.FSNode(e,t,r,n);return $e.hashAddNode(o),o},destroyNode:function(e){$e.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=$e.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 $e.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=$e.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate:function(e,t){try{$e.lookupNode(e,t);return 20}catch(e){}return $e.nodePermissions(e,"wx")},mayDelete:function(e,t,r){var n;try{n=$e.lookupNode(e,t)}catch(e){return e.errno}var o=$e.nodePermissions(e,"wx");if(o)return o;if(r){if(!$e.isDir(n.mode))return 54;if($e.isRoot(n)||$e.getPath(n)===$e.cwd())return 10}else if($e.isDir(n.mode))return 31;return 0},mayOpen:function(e,t){return e?$e.isLink(e.mode)?32:$e.isDir(e.mode)&&("r"!==$e.flagsToPermissionString(t)||512&t)?31:$e.nodePermissions(e,$e.flagsToPermissionString(t)):44},MAX_OPEN_FDS:4096,nextfd:function(e,t){e=e||0,t=t||$e.MAX_OPEN_FDS;for(var r=e;r<=t;r++)if(!$e.streams[r])return r;throw new $e.ErrnoError(33)},getStream:function(e){return $e.streams[e]},createStream:function(e,t,r){$e.FSStream||($e.FSStream=function(){},$e.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 $e.FSStream;for(var o in e)n[o]=e[o];e=n;var i=$e.nextfd(t,r);return e.fd=i,$e.streams[i]=e,e},closeStream:function(e){$e.streams[e]=null},chrdev_stream_ops:{open:function(e){var t=$e.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:function(){throw new $e.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){$e.devices[e]={stream_ops:t}},getDevice:function(e){return $e.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),$e.syncFSRequests++,$e.syncFSRequests>1&&m("warning: "+$e.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var r=$e.getMounts($e.root.mount),n=0;function o(e){return Q($e.syncFSRequests>0),$e.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&&$e.root)throw new $e.ErrnoError(10);if(!o&&!i){var a=$e.lookupPath(r,{follow_mount:!1});if(r=a.path,n=a.node,$e.isMountpoint(n))throw new $e.ErrnoError(10);if(!$e.isDir(n.mode))throw new $e.ErrnoError(54)}var s={type:e,opts:t,mountpoint:r,mounts:[]},A=e.mount(s);return A.mount=s,s.root=A,o?$e.root=A:n&&(n.mounted=s,n.mount&&n.mount.mounts.push(s)),A},unmount:function(e){var t=$e.lookupPath(e,{follow_mount:!1});if(!$e.isMountpoint(t.node))throw new $e.ErrnoError(28);var r=t.node,n=r.mounted,o=$e.getMounts(n);Object.keys($e.nameTable).forEach((function(e){for(var t=$e.nameTable[e];t;){var r=t.name_next;o.includes(t.mount)&&$e.destroyNode(t),t=r}})),r.mounted=null;var i=r.mount.mounts.indexOf(n);Q(-1!==i),r.mount.mounts.splice(i,1)},lookup:function(e,t){return e.node_ops.lookup(e,t)},mknod:function(e,t,r){var n=$e.lookupPath(e,{parent:!0}).node,o=Xe.basename(e);if(!o||"."===o||".."===o)throw new $e.ErrnoError(28);var i=$e.mayCreate(n,o);if(i)throw new $e.ErrnoError(i);if(!n.node_ops.mknod)throw new $e.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,$e.mknod(e,t,0)},mkdir:function(e,t){return t=void 0!==t?t:511,t&=1023,t|=16384,$e.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{$e.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,$e.mknod(e,t,r)},symlink:function(e,t){if(!Ve.resolve(e))throw new $e.ErrnoError(44);var r=$e.lookupPath(t,{parent:!0}).node;if(!r)throw new $e.ErrnoError(44);var n=Xe.basename(t),o=$e.mayCreate(r,n);if(o)throw new $e.ErrnoError(o);if(!r.node_ops.symlink)throw new $e.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=$e.lookupPath(e,{parent:!0}).node,n=$e.lookupPath(t,{parent:!0}).node,!r||!n)throw new $e.ErrnoError(44);if(r.mount!==n.mount)throw new $e.ErrnoError(75);var A,c=$e.lookupNode(r,a),u=Ve.relative(e,i);if("."!==u.charAt(0))throw new $e.ErrnoError(28);if("."!==(u=Ve.relative(t,o)).charAt(0))throw new $e.ErrnoError(55);try{A=$e.lookupNode(n,s)}catch(e){}if(c!==A){var g=$e.isDir(c.mode),d=$e.mayDelete(r,a,g);if(d)throw new $e.ErrnoError(d);if(d=A?$e.mayDelete(n,s,g):$e.mayCreate(n,s))throw new $e.ErrnoError(d);if(!r.node_ops.rename)throw new $e.ErrnoError(63);if($e.isMountpoint(c)||A&&$e.isMountpoint(A))throw new $e.ErrnoError(10);if(n!==r&&(d=$e.nodePermissions(r,"w")))throw new $e.ErrnoError(d);try{$e.trackingDelegate.willMovePath&&$e.trackingDelegate.willMovePath(e,t)}catch(r){m("FS.trackingDelegate['willMovePath']('"+e+"', '"+t+"') threw an exception: "+r.message)}$e.hashRemoveNode(c);try{r.node_ops.rename(c,n,s)}catch(e){throw e}finally{$e.hashAddNode(c)}try{$e.trackingDelegate.onMovePath&&$e.trackingDelegate.onMovePath(e,t)}catch(r){m("FS.trackingDelegate['onMovePath']('"+e+"', '"+t+"') threw an exception: "+r.message)}}},rmdir:function(e){var t=$e.lookupPath(e,{parent:!0}).node,r=Xe.basename(e),n=$e.lookupNode(t,r),o=$e.mayDelete(t,r,!0);if(o)throw new $e.ErrnoError(o);if(!t.node_ops.rmdir)throw new $e.ErrnoError(63);if($e.isMountpoint(n))throw new $e.ErrnoError(10);try{$e.trackingDelegate.willDeletePath&&$e.trackingDelegate.willDeletePath(e)}catch(t){m("FS.trackingDelegate['willDeletePath']('"+e+"') threw an exception: "+t.message)}t.node_ops.rmdir(t,r),$e.destroyNode(n);try{$e.trackingDelegate.onDeletePath&&$e.trackingDelegate.onDeletePath(e)}catch(t){m("FS.trackingDelegate['onDeletePath']('"+e+"') threw an exception: "+t.message)}},readdir:function(e){var t=$e.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new $e.ErrnoError(54);return t.node_ops.readdir(t)},unlink:function(e){var t=$e.lookupPath(e,{parent:!0}).node,r=Xe.basename(e),n=$e.lookupNode(t,r),o=$e.mayDelete(t,r,!1);if(o)throw new $e.ErrnoError(o);if(!t.node_ops.unlink)throw new $e.ErrnoError(63);if($e.isMountpoint(n))throw new $e.ErrnoError(10);try{$e.trackingDelegate.willDeletePath&&$e.trackingDelegate.willDeletePath(e)}catch(t){m("FS.trackingDelegate['willDeletePath']('"+e+"') threw an exception: "+t.message)}t.node_ops.unlink(t,r),$e.destroyNode(n);try{$e.trackingDelegate.onDeletePath&&$e.trackingDelegate.onDeletePath(e)}catch(t){m("FS.trackingDelegate['onDeletePath']('"+e+"') threw an exception: "+t.message)}},readlink:function(e){var t=$e.lookupPath(e).node;if(!t)throw new $e.ErrnoError(44);if(!t.node_ops.readlink)throw new $e.ErrnoError(28);return Ve.resolve($e.getPath(t.parent),t.node_ops.readlink(t))},stat:function(e,t){var r=$e.lookupPath(e,{follow:!t}).node;if(!r)throw new $e.ErrnoError(44);if(!r.node_ops.getattr)throw new $e.ErrnoError(63);return r.node_ops.getattr(r)},lstat:function(e){return $e.stat(e,!0)},chmod:function(e,t,r){var n;"string"==typeof e?n=$e.lookupPath(e,{follow:!r}).node:n=e;if(!n.node_ops.setattr)throw new $e.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&t|-4096&n.mode,timestamp:Date.now()})},lchmod:function(e,t){$e.chmod(e,t,!0)},fchmod:function(e,t){var r=$e.getStream(e);if(!r)throw new $e.ErrnoError(8);$e.chmod(r.node,t)},chown:function(e,t,r,n){var o;"string"==typeof e?o=$e.lookupPath(e,{follow:!n}).node:o=e;if(!o.node_ops.setattr)throw new $e.ErrnoError(63);o.node_ops.setattr(o,{timestamp:Date.now()})},lchown:function(e,t,r){$e.chown(e,t,r,!0)},fchown:function(e,t,r){var n=$e.getStream(e);if(!n)throw new $e.ErrnoError(8);$e.chown(n.node,t,r)},truncate:function(e,t){if(t<0)throw new $e.ErrnoError(28);var r;"string"==typeof e?r=$e.lookupPath(e,{follow:!0}).node:r=e;if(!r.node_ops.setattr)throw new $e.ErrnoError(63);if($e.isDir(r.mode))throw new $e.ErrnoError(31);if(!$e.isFile(r.mode))throw new $e.ErrnoError(28);var n=$e.nodePermissions(r,"w");if(n)throw new $e.ErrnoError(n);r.node_ops.setattr(r,{size:t,timestamp:Date.now()})},ftruncate:function(e,t){var r=$e.getStream(e);if(!r)throw new $e.ErrnoError(8);if(!(2097155&r.flags))throw new $e.ErrnoError(28);$e.truncate(r.node,t)},utime:function(e,t,r){var n=$e.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 $e.ErrnoError(44);var a;if(r=void 0===r?438:r,r=64&(t="string"==typeof t?$e.modeStringToFlags(t):t)?4095&r|32768:0,"object"===E(e))a=e;else{e=Xe.normalize(e);try{a=$e.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var s=!1;if(64&t)if(a){if(128&t)throw new $e.ErrnoError(20)}else a=$e.mknod(e,r,0),s=!0;if(!a)throw new $e.ErrnoError(44);if($e.isChrdev(a.mode)&&(t&=-513),65536&t&&!$e.isDir(a.mode))throw new $e.ErrnoError(54);if(!s){var A=$e.mayOpen(a,t);if(A)throw new $e.ErrnoError(A)}512&t&&$e.truncate(a,0),t&=-131713;var c=$e.createStream({node:a,path:$e.getPath(a),flags:t,seekable:!0,position:0,stream_ops:a.stream_ops,ungotten:[],error:!1},n,i);c.stream_ops.open&&c.stream_ops.open(c),!o.logReadFiles||1&t||($e.readFiles||($e.readFiles={}),e in $e.readFiles||($e.readFiles[e]=1,m("FS.trackingDelegate error on read file: "+e)));try{if($e.trackingDelegate.onOpenFile){var u=0;1!=(2097155&t)&&(u|=$e.tracking.openFlags.READ),2097155&t&&(u|=$e.tracking.openFlags.WRITE),$e.trackingDelegate.onOpenFile(e,u)}}catch(t){m("FS.trackingDelegate['onOpenFile']('"+e+"', flags) threw an exception: "+t.message)}return c},close:function(e){if($e.isClosed(e))throw new $e.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{$e.closeStream(e.fd)}e.fd=null},isClosed:function(e){return null===e.fd},llseek:function(e,t,r){if($e.isClosed(e))throw new $e.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new $e.ErrnoError(70);if(0!=r&&1!=r&&2!=r)throw new $e.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 $e.ErrnoError(28);if($e.isClosed(e))throw new $e.ErrnoError(8);if(1==(2097155&e.flags))throw new $e.ErrnoError(8);if($e.isDir(e.node.mode))throw new $e.ErrnoError(31);if(!e.stream_ops.read)throw new $e.ErrnoError(28);var i=void 0!==o;if(i){if(!e.seekable)throw new $e.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 $e.ErrnoError(28);if($e.isClosed(e))throw new $e.ErrnoError(8);if(!(2097155&e.flags))throw new $e.ErrnoError(8);if($e.isDir(e.node.mode))throw new $e.ErrnoError(31);if(!e.stream_ops.write)throw new $e.ErrnoError(28);e.seekable&&1024&e.flags&&$e.llseek(e,0,2);var a=void 0!==o;if(a){if(!e.seekable)throw new $e.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&&$e.trackingDelegate.onWriteToFile&&$e.trackingDelegate.onWriteToFile(e.path)}catch(t){m("FS.trackingDelegate['onWriteToFile']('"+e.path+"') threw an exception: "+t.message)}return s},allocate:function(e,t,r){if($e.isClosed(e))throw new $e.ErrnoError(8);if(t<0||r<=0)throw new $e.ErrnoError(28);if(!(2097155&e.flags))throw new $e.ErrnoError(8);if(!$e.isFile(e.node.mode)&&!$e.isDir(e.node.mode))throw new $e.ErrnoError(43);if(!e.stream_ops.allocate)throw new $e.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 $e.ErrnoError(2);if(1==(2097155&e.flags))throw new $e.ErrnoError(2);if(!e.stream_ops.mmap)throw new $e.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 $e.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=$e.open(e,t.flags),o=$e.stat(e).size,i=new Uint8Array(o);return $e.read(n,i,0,o,0),"utf8"===t.encoding?r=P(i,0):"binary"===t.encoding&&(r=i),$e.close(n),r},writeFile:function(e,t,r){(r=r||{}).flags=r.flags||577;var n=$e.open(e,r.flags,r.mode);if("string"==typeof t){var o=new Uint8Array(F(t)+1),i=R(t,o,0,o.length);$e.write(n,o,0,i,void 0,r.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");$e.write(n,t,0,t.byteLength,void 0,r.canOwn)}$e.close(n)},cwd:function(){return $e.currentPath},chdir:function(e){var t=$e.lookupPath(e,{follow:!0});if(null===t.node)throw new $e.ErrnoError(44);if(!$e.isDir(t.node.mode))throw new $e.ErrnoError(54);var r=$e.nodePermissions(t.node,"x");if(r)throw new $e.ErrnoError(r);$e.currentPath=t.path},createDefaultDirectories:function(){$e.mkdir("/tmp"),$e.mkdir("/home"),$e.mkdir("/home/web_user")},createDefaultDevices:function(){$e.mkdir("/dev"),$e.registerDevice($e.makedev(1,3),{read:function(){return 0},write:function(e,t,r,n,o){return n}}),$e.mkdev("/dev/null",$e.makedev(1,3)),ze.register($e.makedev(5,0),ze.default_tty_ops),ze.register($e.makedev(6,0),ze.default_tty1_ops),$e.mkdev("/dev/tty",$e.makedev(5,0)),$e.mkdev("/dev/tty1",$e.makedev(6,0));var e=We();$e.createDevice("/dev","random",e),$e.createDevice("/dev","urandom",e),$e.mkdir("/dev/shm"),$e.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){$e.mkdir("/proc");var e=$e.mkdir("/proc/self");$e.mkdir("/proc/self/fd"),$e.mount({mount:function(){var t=$e.createNode(e,"fd",16895,73);return t.node_ops={lookup:function(e,t){var r=+t,n=$e.getStream(r);if(!n)throw new $e.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?$e.createDevice("/dev","stdin",o.stdin):$e.symlink("/dev/tty","/dev/stdin"),o.stdout?$e.createDevice("/dev","stdout",null,o.stdout):$e.symlink("/dev/tty","/dev/stdout"),o.stderr?$e.createDevice("/dev","stderr",null,o.stderr):$e.symlink("/dev/tty1","/dev/stderr");var e=$e.open("/dev/stdin",0),t=$e.open("/dev/stdout",1),r=$e.open("/dev/stderr",1);Q(0===e.fd,"invalid handle for stdin ("+e.fd+")"),Q(1===t.fd,"invalid handle for stdout ("+t.fd+")"),Q(2===r.fd,"invalid handle for stderr ("+r.fd+")")},ensureErrnoError:function(){$e.ErrnoError||($e.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){for(var t in this.errno=e,qe)if(qe[t]===e){this.code=t;break}},this.setErrno(e),this.message=Ze[e],this.stack&&(Object.defineProperty(this,"stack",{value:(new Error).stack,writable:!0}),this.stack=Ne(this.stack))},$e.ErrnoError.prototype=new Error,$e.ErrnoError.prototype.constructor=$e.ErrnoError,[44].forEach((function(e){$e.genericErrors[e]=new $e.ErrnoError(e),$e.genericErrors[e].stack="<generic error, no stack>"})))},staticInit:function(){$e.ensureErrnoError(),$e.nameTable=new Array(4096),$e.mount(Ke,{},"/"),$e.createDefaultDirectories(),$e.createDefaultDevices(),$e.createSpecialDirectories(),$e.filesystems={MEMFS:Ke}},init:function(e,t,r){Q(!$e.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)"),$e.init.initialized=!0,$e.ensureErrnoError(),o.stdin=e||o.stdin,o.stdout=t||o.stdout,o.stderr=r||o.stderr,$e.createStandardStreams()},quit:function(){$e.init.initialized=!1;var e=o._fflush;e&&e(0);for(var t=0;t<$e.streams.length;t++){var r=$e.streams[t];r&&$e.close(r)}},getMode:function(e,t){var r=0;return e&&(r|=365),t&&(r|=146),r},findObject:function(e,t){var r=$e.analyzePath(e,t);return r.exists?r.object:null},analyzePath:function(e,t){try{e=(n=$e.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=$e.lookupPath(e,{parent:!0});r.parentExists=!0,r.parentPath=n.path,r.parentObject=n.node,r.name=Xe.basename(e),n=$e.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:$e.getPath(e);for(var o=t.split("/").reverse();o.length;){var i=o.pop();if(i){var a=Xe.join2(e,i);try{$e.mkdir(a)}catch(e){}e=a}}return a},createFile:function(e,t,r,n,o){var i=Xe.join2("string"==typeof e?e:$e.getPath(e),t),a=$e.getMode(n,o);return $e.create(i,a)},createDataFile:function(e,t,r,n,o,i){var a=t?Xe.join2("string"==typeof e?e:$e.getPath(e),t):e,s=$e.getMode(n,o),A=$e.create(a,s);if(r){if("string"==typeof r){for(var c=new Array(r.length),u=0,g=r.length;u<g;++u)c[u]=r.charCodeAt(u);r=c}$e.chmod(A,146|s);var d=$e.open(A,577);$e.write(d,r,0,r.length,0,i),$e.close(d),$e.chmod(A,s)}return A},createDevice:function(e,t,r,n){var o=Xe.join2("string"==typeof e?e:$e.getPath(e),t),i=$e.getMode(!!r,!!n);$e.createDevice.major||($e.createDevice.major=64);var a=$e.makedev($e.createDevice.major++,0);return $e.registerDevice(a,{open:function(e){e.seekable=!1},close:function(e){n&&n.buffer&&n.buffer.length&&n(10)},read:function(e,t,n,o,i){for(var a=0,s=0;s<o;s++){var A;try{A=r()}catch(e){throw new $e.ErrnoError(29)}if(void 0===A&&0===a)throw new $e.ErrnoError(6);if(null==A)break;a++,t[n+s]=A}return a&&(e.node.timestamp=Date.now()),a},write:function(e,t,r,o,i){for(var a=0;a<o;a++)try{n(t[r+a])}catch(e){throw new $e.ErrnoError(29)}return o&&(e.node.timestamp=Date.now()),a}}),$e.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(!l)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=gn(l(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new $e.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||[]):gn(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(!u)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var a=new i;Object.defineProperties(a,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var s={isDevice:!1,contents:a}}else s={isDevice:!1,url:r};var A=$e.createFile(e,t,s,n,o);s.contents?A.contents=s.contents:s.url&&(A.contents=null,A.url=s.url),Object.defineProperties(A,{usedBytes:{get:function(){return this.contents.length}}});var c={};return Object.keys(A.stream_ops).forEach((function(e){var t=A.stream_ops[e];c[e]=function(){return $e.forceLoadFile(A),t.apply(null,arguments)}})),c.read=function(e,t,r,n,o){$e.forceLoadFile(A);var i=e.node.contents;if(o>=i.length)return 0;var a=Math.min(i.length-o,n);if(Q(a>=0),i.slice)for(var s=0;s<a;s++)t[r+s]=i[o+s];else for(s=0;s<a;s++)t[r+s]=i.get(o+s);return a},A.stream_ops=c,A},createPreloadedFile:function(e,t,r,n,i,a,s,A,c,u){ke.init();var g=t?Ve.resolve(Xe.join2(e,t)):e,d=he("cp "+g);function l(r){function l(r){u&&u(),A||$e.createDataFile(e,t,r,n,i,c),a&&a(),me(d)}var f=!1;o.preloadPlugins.forEach((function(e){f||e.canHandle(g)&&(e.handle(r,g,l,(function(){s&&s(),me(d)})),f=!0)})),f||l(r)}Ie(d),"string"==typeof r?function(e,t,r){var n=he("al "+e);f(e,(function(r){Q(r,'Loading data file "'+e+'" failed (no arrayBuffer).'),t(new Uint8Array(r)),n&&me(n)}),(function(t){if(!r)throw'Loading data file "'+e+'" failed.';r()})),n&&Ie(n)}(r,(function(e){l(e)}),s):l(r)},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(e,t,r){t=t||function(){},r=r||function(){};var n=$e.indexedDB();try{var o=n.open($e.DB_NAME(),$e.DB_VERSION)}catch(e){return r(e)}o.onupgradeneeded=function(){I("creating db"),o.result.createObjectStore($e.DB_STORE_NAME)},o.onsuccess=function(){var n=o.result.transaction([$e.DB_STORE_NAME],"readwrite"),i=n.objectStore($e.DB_STORE_NAME),a=0,s=0,A=e.length;function c(){0==s?t():r()}e.forEach((function(e){var t=i.put($e.analyzePath(e).object.contents,e);t.onsuccess=function(){++a+s==A&&c()},t.onerror=function(){s++,a+s==A&&c()}})),n.onerror=r},o.onerror=r},loadFilesFromDB:function(e,t,r){t=t||function(){},r=r||function(){};var n=$e.indexedDB();try{var o=n.open($e.DB_NAME(),$e.DB_VERSION)}catch(e){return r(e)}o.onupgradeneeded=r,o.onsuccess=function(){var n=o.result;try{var i=n.transaction([$e.DB_STORE_NAME],"readonly")}catch(e){return void r(e)}var a=i.objectStore($e.DB_STORE_NAME),s=0,A=0,c=e.length;function u(){0==A?t():r()}e.forEach((function(e){var t=a.get(e);t.onsuccess=function(){$e.analyzePath(e).exists&&$e.unlink(e),$e.createDataFile(Xe.dirname(e),Xe.basename(e),t.result,!0,!0,!0),++s+A==c&&u()},t.onerror=function(){A++,s+A==c&&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=$e.cwd();else{var o=$e.getStream(e);if(!o)throw new $e.ErrnoError(8);n=o.path}if(0==t.length){if(!r)throw new $e.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($e.getPath(e.node)))return-54;throw e}return L[r>>2]=n.dev,L[r+4>>2]=0,L[r+8>>2]=n.ino,L[r+12>>2]=n.mode,L[r+16>>2]=n.nlink,L[r+20>>2]=n.uid,L[r+24>>2]=n.gid,L[r+28>>2]=n.rdev,L[r+32>>2]=0,Be=[n.size>>>0,(_e=n.size,+Math.abs(_e)>=1?_e>0?(0|Math.min(+Math.floor(_e/4294967296),4294967295))>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],L[r+40>>2]=Be[0],L[r+44>>2]=Be[1],L[r+48>>2]=4096,L[r+52>>2]=n.blocks,L[r+56>>2]=n.atime.getTime()/1e3|0,L[r+60>>2]=0,L[r+64>>2]=n.mtime.getTime()/1e3|0,L[r+68>>2]=0,L[r+72>>2]=n.ctime.getTime()/1e3|0,L[r+76>>2]=0,Be=[n.ino>>>0,(_e=n.ino,+Math.abs(_e)>=1?_e>0?(0|Math.min(+Math.floor(_e/4294967296),4294967295))>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],L[r+80>>2]=Be[0],L[r+84>>2]=Be[1],0},doMsync:function(e,t,r,n,o){var i=N.slice(e,e+r);$e.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)),$e.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 $e.mknod(e,t,r),0},doReadlink:function(e,t,r){if(r<=0)return-28;var n=$e.readlink(e),o=Math.min(r,F(n)),i=x[t+o];return S(n,t,r+1),x[t+o]=i,o},doAccess:function(e,t){if(-8&t)return-28;var r;if(!(r=$e.lookupPath(e,{follow:!0}).node))return-44;var n="";return 4&t&&(n+="r"),2&t&&(n+="w"),1&t&&(n+="x"),n&&$e.nodePermissions(r,n)?-2:0},doDup:function(e,t,r){var n=$e.getStream(r);return n&&$e.close(n),$e.open(e,t,0,r,r).fd},doReadv:function(e,t,r,n){for(var o=0,i=0;i<r;i++){var a=L[t+8*i>>2],s=L[t+(8*i+4)>>2],A=$e.read(e,x,a,s,n);if(A<0)return-1;if(o+=A,A<s)break}return o},doWritev:function(e,t,r,n){for(var o=0,i=0;i<r;i++){var a=L[t+8*i>>2],s=L[t+(8*i+4)>>2],A=$e.write(e,x,a,s,n);if(A<0)return-1;o+=A}return o},varargs:void 0,get:function(){return Q(null!=et.varargs),et.varargs+=4,L[et.varargs-4>>2]},getStr:function(e){return M(e)},getStreamFromFD:function(e){var t=$e.getStream(e);if(!t)throw new $e.ErrnoError(8);return t},get64:function(e,t){return Q(e>=0?0===t:-1===t),e}};var tt=48,rt=57;function nt(e){if(void 0===e)return"_unknown";var t=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return t>=tt&&t<=rt?"_"+e:e}function ot(e,t){return e=nt(e),new Function("body","return function "+e+'() {\n "use strict"; return body.apply(this, arguments);\n};\n')(t)}var it=[],at=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function st(){for(var e=0,t=5;t<at.length;++t)void 0!==at[t]&&++e;return e}function At(){for(var e=5;e<at.length;++e)if(void 0!==at[e])return at[e];return null}function ct(e){switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var t=it.length?it.pop():at.length;return at[t]={refcount:1,value:e},t}}function ut(e,t){var r=ot(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 gt=void 0;var dt=void 0;function lt(e){for(var t="",r=e;N[r];)t+=dt[N[r++]];return t}function ft(){return Object.keys(yt).length}function Et(){var e=[];for(var t in yt)yt.hasOwnProperty(t)&&e.push(yt[t]);return e}var pt=[];function ht(){for(;pt.length;){var e=pt.pop();e.$$.deleteScheduled=!1,e.delete()}}var It=void 0;function mt(e){It=e,pt.length&&It&&It(ht)}var yt={},Ct=void 0;function wt(e){throw new Ct(e)}function _t(e,t){for(void 0===t&&wt("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t}function Bt(e){return e||wt("Cannot use deleted val. handle = "+e),at[e].value}var vt={};function Dt(e){var t=pn(e),r=lt(t);return ln(t),r}function bt(e,t){var r=vt[e];return void 0===r&&wt(t+" has unknown type "+Dt(e)),r}function Ot(e){}var Qt=!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 Pt(e){return"undefined"==typeof FinalizationGroup?(Pt=function(e){return e},e):(Qt=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)}})),Ot=function(e){Qt.unregister(e.$$)},(Pt=function(e){return Qt.register(e,e.$$,e.$$),e})(e))}var Mt={};function Rt(e){for(;e.length;){var t=e.pop();e.pop()(t)}}function St(e){return this.fromWireType(H[e>>2])}var Ft={},kt={},xt=void 0;function Nt(e){throw new xt(e)}function jt(e,t,r){function n(t){var n=r(t);n.length!==e.length&&Nt("Mismatched type converter count");for(var o=0;o<e.length;++o)Lt(e[o],n[o])}e.forEach((function(e){kt[e]=t}));var o=new Array(t.length),i=[],a=0;t.forEach((function(e,t){vt.hasOwnProperty(e)?o[t]=vt[e]:(i.push(e),Ft.hasOwnProperty(e)||(Ft[e]=[]),Ft[e].push((function(){o[t]=vt[e],++a===i.length&&n(o)})))})),0===i.length&&n(o)}function Ut(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 Lt(e,t,r){if(r=r||{},!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");var n=t.name;if(e||wt('type "'+n+'" must have a positive integer typeid pointer'),vt.hasOwnProperty(e)){if(r.ignoreDuplicateRegistrations)return;wt("Cannot register type '"+n+"' twice")}if(vt[e]=t,delete kt[e],Ft.hasOwnProperty(e)){var o=Ft[e];delete Ft[e],o.forEach((function(e){e()}))}}function Ht(e){if(!(this instanceof zt))return!1;if(!(e instanceof zt))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 Gt(e){wt(e.$$.ptrType.registeredClass.name+" instance already deleted")}function Yt(){if(this.$$.ptr||Gt(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e,t=Pt(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 Xt(){this.$$.ptr||Gt(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&wt("Object already scheduled for deletion"),Ot(this),Tt(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Wt(){return!this.$$.ptr}function Vt(){return this.$$.ptr||Gt(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&wt("Object already scheduled for deletion"),pt.push(this),1===pt.length&&It&&It(ht),this.$$.deleteScheduled=!0,this}function zt(){}var Jt={};function Kt(e,t,r){if(void 0===e[t].overloadTable){var n=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||wt("Function '"+r+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+e[t].overloadTable+")!"),e[t].overloadTable[arguments.length].apply(this,arguments)},e[t].overloadTable=[],e[t].overloadTable[n.argCount]=n}}function Zt(e,t,r){o.hasOwnProperty(e)?((void 0===r||void 0!==o[e].overloadTable&&void 0!==o[e].overloadTable[r])&&wt("Cannot register public name '"+e+"' twice"),Kt(o,e,e),o.hasOwnProperty(r)&&wt("Cannot register multiple overloads of a function with the same number of arguments ("+r+")!"),o[e].overloadTable[r]=t):(o[e]=t,void 0!==r&&(o[e].numArguments=r))}function qt(e,t,r,n,o,i,a,s){this.name=e,this.constructor=t,this.instancePrototype=r,this.rawDestructor=n,this.baseClass=o,this.getActualType=i,this.upcast=a,this.downcast=s,this.pureVirtualFunctions=[]}function $t(e,t,r){for(;t!==r;)t.upcast||wt("Expected null or instance of "+r.name+", got an instance of "+t.name),e=t.upcast(e),t=t.baseClass;return e}function er(e,t){if(null===t)return this.isReference&&wt("null is not a valid "+this.name),0;t.$$||wt('Cannot pass "'+yr(t)+'" as a '+this.name),t.$$.ptr||wt("Cannot pass deleted object as a pointer of type "+this.name);var r=t.$$.ptrType.registeredClass;return $t(t.$$.ptr,r,this.registeredClass)}function tr(e,t){var r;if(null===t)return this.isReference&&wt("null is not a valid "+this.name),this.isSmartPointer?(r=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,r),r):0;t.$$||wt('Cannot pass "'+yr(t)+'" as a '+this.name),t.$$.ptr||wt("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&t.$$.ptrType.isConst&&wt("Cannot convert argument of type "+(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name)+" to parameter type "+this.name);var n=t.$$.ptrType.registeredClass;if(r=$t(t.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===t.$$.smartPtr&&wt("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?r=t.$$.smartPtr:wt("Cannot convert argument of type "+(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name)+" to parameter type "+this.name);break;case 1:r=t.$$.smartPtr;break;case 2:if(t.$$.smartPtrType===this)r=t.$$.smartPtr;else{var o=t.clone();r=this.rawShare(r,ct((function(){o.delete()}))),null!==e&&e.push(this.rawDestructor,r)}break;default:wt("Unsupporting sharing policy")}return r}function rr(e,t){if(null===t)return this.isReference&&wt("null is not a valid "+this.name),0;t.$$||wt('Cannot pass "'+yr(t)+'" as a '+this.name),t.$$.ptr||wt("Cannot pass deleted object as a pointer of type "+this.name),t.$$.ptrType.isConst&&wt("Cannot convert argument of type "+t.$$.ptrType.name+" to parameter type "+this.name);var r=t.$$.ptrType.registeredClass;return $t(t.$$.ptr,r,this.registeredClass)}function nr(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e}function or(e){this.rawDestructor&&this.rawDestructor(e)}function ir(e){null!==e&&e.delete()}function ar(e,t,r){if(t===r)return e;if(void 0===r.baseClass)return null;var n=ar(e,t,r.baseClass);return null===n?null:r.downcast(n)}function sr(e,t){return t.ptrType&&t.ptr||Nt("makeClassHandle requires ptr and ptrType"),!!t.smartPtrType!==!!t.smartPtr&&Nt("Both smartPtrType and smartPtr must be specified"),t.count={value:1},Pt(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),yt[t]}(this.registeredClass,t);if(void 0!==r){if(0===r.$$.count.value)return r.$$.ptr=t,r.$$.smartPtr=e,r.clone();var n=r.clone();return this.destructor(e),n}function o(){return this.isSmartPointer?sr(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):sr(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var i,a=this.registeredClass.getActualType(t),s=Jt[a];if(!s)return o.call(this);i=this.isConst?s.constPointerType:s.pointerType;var A=ar(t,this.registeredClass,i.registeredClass);return null===A?o.call(this):this.isSmartPointer?sr(i.registeredClass.instancePrototype,{ptrType:i,ptr:A,smartPtrType:this,smartPtr:e}):sr(i.registeredClass.instancePrototype,{ptrType:i,ptr:A})}function cr(e,t,r,n,o,i,a,s,A,c,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=A,this.rawShare=c,this.rawDestructor=u,o||void 0!==t.baseClass?this.toWireType=tr:n?(this.toWireType=er,this.destructorFunction=null):(this.toWireType=rr,this.destructorFunction=null)}function ur(e,t,r){o.hasOwnProperty(e)||Nt("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 gr(e,t,r){return e.includes("j")?function(e,t,r){Q("dynCall_"+e in o,"bad function pointer type - no table for sig '"+e+"'"),r&&r.length?Q(r.length===e.substring(1).replace(/j/g,"--").length):Q(1==e.length);var n=o["dynCall_"+e];return r&&r.length?n.apply(null,[t].concat(r)):n.call(null,t)}(e,t,r):(Q(te.get(t),"missing table entry in dynCall: "+t),te.get(t).apply(null,r))}function dr(e,t){var r=(e=lt(e)).includes("j")?function(e,t){Q(e.includes("j"),"getDynCaller should only be called with i64 sigs");var r=[];return function(){r.length=arguments.length;for(var n=0;n<arguments.length;n++)r[n]=arguments[n];return gr(e,t,r)}}(e,t):te.get(t);return"function"!=typeof r&&wt("unknown function pointer with signature "+e+": "+t),r}var lr=void 0;function fr(e,t){var r=[],n={};throw t.forEach((function e(t){n[t]||vt[t]||(kt[t]?kt[t].forEach(e):(r.push(t),n[t]=!0))})),new lr(e+": "+r.map(Dt).join([", "]))}function Er(e,t){if(!(e instanceof Function))throw new TypeError("new_ called with constructor type "+E(e)+" which is not a function");var r=ot(e.name||"unknownFunctionName",(function(){}));r.prototype=e.prototype;var n=new r,o=e.apply(n,t);return o instanceof Object?o:n}function pr(e,t,r,n,o){var i=t.length;i<2&&wt("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var a=null!==t[1]&&null!==r,s=!1,A=1;A<t.length;++A)if(null!==t[A]&&void 0===t[A].destructorFunction){s=!0;break}var c="void"!==t[0].name,u="",g="";for(A=0;A<i-2;++A)u+=(0!==A?", ":"")+"arg"+A,g+=(0!==A?", ":"")+"arg"+A+"Wired";var d="return function "+nt(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 l=s?"destructors":"null",f=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],E=[wt,n,o,Rt,t[0],t[1]];a&&(d+="var thisWired = classParam.toWireType("+l+", this);\n");for(A=0;A<i-2;++A)d+="var arg"+A+"Wired = argType"+A+".toWireType("+l+", arg"+A+"); // "+t[A+2].name+"\n",f.push("argType"+A),E.push(t[A+2]);if(a&&(g="thisWired"+(g.length>0?", ":"")+g),d+=(c?"var rv = ":"")+"invoker(fn"+(g.length>0?", ":"")+g+");\n",s)d+="runDestructors(destructors);\n";else for(A=a?1:2;A<t.length;++A){var p=1===A?"thisWired":"arg"+(A-2)+"Wired";null!==t[A].destructorFunction&&(d+=p+"_dtor("+p+"); // "+t[A].name+"\n",f.push(p+"_dtor"),E.push(t[A].destructorFunction))}return c&&(d+="var ret = retType.fromWireType(rv);\nreturn ret;\n"),d+="}\n",f.push(d),Er(Function,f).apply(null,E)}function hr(e,t){for(var r=[],n=0;n<e;n++)r.push(L[(t>>2)+n]);return r}function Ir(e,t,r){return e instanceof Object||wt(r+' with invalid "this": '+e),e instanceof t.registeredClass.constructor||wt(r+' incompatible with "this" of type '+e.constructor.name),e.$$.ptr||wt("cannot call emscripten binding method "+r+" on deleted object"),$t(e.$$.ptr,e.$$.ptrType.registeredClass,t.registeredClass)}function mr(e){e>4&&0==--at[e].refcount&&(at[e]=void 0,it.push(e))}function yr(e){if(null===e)return"null";var t=E(e);return"object"===t||"array"===t||"function"===t?e.toString():""+e}function Cr(e,t){switch(t){case 2:return function(e){return this.fromWireType(G[e>>2])};case 3:return function(e){return this.fromWireType(Y[e>>3])};default:throw new TypeError("Unknown float type: "+e)}}function wr(e,t,r){switch(t){case 0:return r?function(e){return x[e]}:function(e){return N[e]};case 1:return r?function(e){return j[e>>1]}:function(e){return U[e>>1]};case 2:return r?function(e){return L[e>>2]}:function(e){return H[e>>2]};default:throw new TypeError("Unknown integer type: "+e)}}var _r={};var Br=[];var vr=[];function Dr(e){try{return B.grow(e-k.byteLength+65535>>>16),$(B.buffer),1}catch(t){m("emscripten_realloc_buffer: Attempted to grow heap from "+k.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 Or={};function Qr(e){e.forEach((function(e){var t=br();t&&(Or[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=nn.createBuffer(),t.GLctx.bindBuffer(34963,t.tempQuadIndexBuffer);for(var A=Tr.MAX_TEMP_BUFFER_SIZE>>1,c=new Uint16Array(A),u=(n=0,0);!(c[n++]=u,n>=A||(c[n++]=u+1,n>=A)||(c[n++]=u+2,n>=A)||(c[n++]=u,n>=A)||(c[n++]=u+2,n>=A)||(c[n++]=u+3,n>=A));)u+=4;t.GLctx.bufferData(34963,c,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=nn.getParameter(34964);return r[n]=nn.createBuffer(),nn.bindBuffer(34962,r[n]),nn.bufferData(34962,1<<t,35048),nn.bindBuffer(34962,i),r[n]},getTempIndexBuffer:function(e){var t=Tr.log2ceilLookup(e),r=Tr.currentContext.tempIndexBuffers[t];if(r)return r;var n=nn.getParameter(34965);return Tr.currentContext.tempIndexBuffers[t]=nn.createBuffer(),nn.bindBuffer(34963,Tr.currentContext.tempIndexBuffers[t]),nn.bufferData(34963,1<<t,35048),nn.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?L[n+4*i>>2]:-1;o+=M(L[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);nn.bindBuffer(34962,o),nn.bufferSubData(34962,0,N.subarray(r.ptr,r.ptr+n)),r.vertexAttribPointerAdaptor.call(nn,t,r.size,r.type,r.normalized,r.stride,0)}}},postDrawHandleClientVertexAttribBindings:function(){Tr.resetBufferBinding&&nn.bindBuffer(34962,Tr.buffers[nn.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 A=t.createProgram();t.attachShader(A,a),t.attachShader(A,s),t.linkProgram(A),e.blitProgram=A,e.blitPosLoc=t.getAttribLocation(A,"pos"),t.useProgram(A),t.uniform1i(t.getUniformLocation(A,"sampler"),0),t.useProgram(null),e.defaultVao=void 0,t.createVertexArray&&(e.defaultVao=t.createVertexArray(),t.bindVertexArray(e.defaultVao),t.enableVertexAttribArray(e.blitPosLoc),t.bindVertexArray(null))},resizeOffscreenFramebuffer:function(e){var t=e.GLctx;if(e.defaultColorTarget){var r=t.getParameter(32873);t.bindTexture(3553,e.defaultColorTarget),t.texImage2D(3553,0,6408,t.drawingBufferWidth,t.drawingBufferHeight,0,6408,5121,null),t.bindTexture(3553,r)}if(e.defaultDepthTarget){var n=t.getParameter(36007);t.bindRenderbuffer(36161,e.defaultDepthTarget),t.renderbufferStorage(36161,33189,t.drawingBufferWidth,t.drawingBufferHeight),t.bindRenderbuffer(36161,n)}},blitOffscreenFramebuffer:function(e){var t=e.GLctx,r=t.getParameter(3089);r&&t.disable(3089);var n=t.getParameter(36006);if(t.blitFramebuffer&&!e.defaultFboForbidBlitFramebuffer)t.bindFramebuffer(36008,e.defaultFbo),t.bindFramebuffer(36009,null),t.blitFramebuffer(0,0,t.canvas.width,t.canvas.height,0,0,t.canvas.width,t.canvas.height,16384,9728);else{var o=function(){t.vertexAttribPointer(e.blitPosLoc,2,5126,!1,0,0),t.drawArrays(5,0,4)};t.bindFramebuffer(36160,null);var i=t.getParameter(35725);t.useProgram(e.blitProgram);var a=t.getParameter(34964);t.bindBuffer(34962,e.blitVB);var s=t.getParameter(34016);t.activeTexture(33984);var A=t.getParameter(32873);t.bindTexture(3553,e.defaultColorTarget);var c=t.getParameter(3042);c&&t.disable(3042);var u=t.getParameter(2884);u&&t.disable(2884);var g=t.getParameter(2929);g&&t.disable(2929);var d=t.getParameter(2960);if(d&&t.disable(2960),e.defaultVao){var l=t.getParameter(34229);t.bindVertexArray(e.defaultVao),o(),t.bindVertexArray(l)}else{for(var f={buffer:t.getVertexAttrib(e.blitPosLoc,34975),size:t.getVertexAttrib(e.blitPosLoc,34339),stride:t.getVertexAttrib(e.blitPosLoc,34340),type:t.getVertexAttrib(e.blitPosLoc,34341),normalized:t.getVertexAttrib(e.blitPosLoc,34922),pointer:t.getVertexAttribOffset(e.blitPosLoc,34373)},E=t.getParameter(34921),p=[],h=0;h<E;++h){var I=t.getVertexAttrib(h,34338),m=h==e.blitPosLoc;I&&!m&&t.disableVertexAttribArray(h),!I&&m&&t.enableVertexAttribArray(h),p[h]=I}o();for(h=0;h<E;++h){I=p[h];var y=h==e.blitPosLoc;I&&!y&&t.enableVertexAttribArray(h),!I&&y&&t.disableVertexAttribArray(h)}t.bindBuffer(34962,f.buffer),t.vertexAttribPointer(e.blitPosLoc,f.size,f.type,f.normalized,f.stride,f.offset)}d&&t.enable(2960),g&&t.enable(2929),u&&t.enable(2884),c&&t.enable(3042),t.bindTexture(3553,A),t.activeTexture(s),t.bindBuffer(34962,a),t.useProgram(i)}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=nn=Tr.currentContext&&Tr.currentContext.GLctx,!(e&&!nn)},getContext:function(e){return Tr.contexts[e]},deleteContext:function(e){Tr.currentContext===Tr.contexts[e]&&(Tr.currentContext=null),"object"===E(Pr)&&Pr.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)}))}}},Pr={inEventHandler:0,removeAllEventListeners:function(){for(var e=Pr.eventHandlers.length-1;e>=0;--e)Pr._removeHandler(e);Pr.eventHandlers=[],Pr.deferredCalls=[]},registerRemoveEventListeners:function(){Pr.removeEventListenersRegistered||(se.push(Pr.removeAllEventListeners),Pr.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 Pr.deferredCalls){var i=Pr.deferredCalls[o];if(i.targetFunction==e&&n(i.argsList,r))return}Pr.deferredCalls.push({targetFunction:e,precedence:t,argsList:r}),Pr.deferredCalls.sort((function(e,t){return e.precedence<t.precedence}))},removeDeferredCalls:function(e){for(var t=0;t<Pr.deferredCalls.length;++t)Pr.deferredCalls[t].targetFunction==e&&(Pr.deferredCalls.splice(t,1),--t)},canPerformEventHandlerRequests:function(){return Pr.inEventHandler&&Pr.currentEventHandler.allowsDeferredCalls},runDeferredCalls:function(){if(Pr.canPerformEventHandlerRequests())for(var e=0;e<Pr.deferredCalls.length;++e){var t=Pr.deferredCalls[e];Pr.deferredCalls.splice(e,1),--e,t.targetFunction.apply(null,t.argsList)}},eventHandlers:[],removeAllHandlersOnTarget:function(e,t){for(var r=0;r<Pr.eventHandlers.length;++r)Pr.eventHandlers[r].target!=e||t&&t!=Pr.eventHandlers[r].eventTypeString||Pr._removeHandler(r--)},_removeHandler:function(e){var t=Pr.eventHandlers[e];t.target.removeEventListener(t.eventTypeString,t.eventListenerFunc,t.useCapture),Pr.eventHandlers.splice(e,1)},registerOrRemoveHandler:function(e){var t=function(t){++Pr.inEventHandler,Pr.currentEventHandler=e,Pr.runDeferredCalls(),e.handlerFunc(t),Pr.runDeferredCalls(),--Pr.inEventHandler};if(e.callbackfunc)e.eventListenerFunc=t,e.target.addEventListener(e.eventTypeString,t,e.useCapture),Pr.eventHandlers.push(e),Pr.registerRemoveEventListeners();else for(var r=0;r<Pr.eventHandlers.length;++r)Pr.eventHandlers[r].target==e.target&&Pr.eventHandlers[r].eventTypeString==e.eventTypeString&&Pr._removeHandler(r--)},getNodeNameForTarget:function(e){return e?e==window?"#window":e==screen?"#screen":e&&e.nodeName?e.nodeName:"":""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}},Mr=["default","low-power","high-performance"],Rr=[0,"undefined"!=typeof document?document:0,"undefined"!=typeof window?window:0];function Sr(e){return"number"==typeof e&&(e=M(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=Rr[e]||M(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 Fr(){return Tr.currentContext?Tr.currentContext.handle:0}function kr(e){return Tr.makeContextCurrent(e)?0:-5}o._emscripten_webgl_get_current_context=Fr,o._emscripten_webgl_make_context_current=kr;var xr={};function Nr(){if(!Nr.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"===("undefined"==typeof navigator?"undefined":E(navigator))&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:s||"./this.program"};for(var t in xr)void 0===xr[t]?delete e[t]:e[t]=xr[t];var r=[];for(var t in e)r.push(t+"="+e[t]);Nr.strings=r}return Nr.strings}var jr=[];function Ur(e,t,r,n){for(var o=0;o<e;o++){var i=nn[r](),a=i&&Tr.getNewId(n);i?(i.name=a,n[a]=i):Tr.recordError(1282),L[t+4*o>>2]=a}}function Lr(e,t){H[e>>2]=t,H[e+4>>2]=(t-H[e>>2])/4294967296;var r=t>=0?function(e){return H[e>>2]+4294967296*H[e+4>>2]}(e):function(e){return H[e>>2]+4294967296*L[e+4>>2]}(e);r!=t&&y("writeI53ToI64() out of range: serialized JS Number "+t+" to Wasm heap as bytes lo=0x"+H[e>>2].toString(16)+", hi=0x"+H[e+4>>2].toString(16)+", which deserializes back to "+r+" instead!")}function Hr(e){var t=F(e)+1,r=fn(t);return S(e,r,t),r}function Gr(e){return"]"==e.slice(-1)&&e.lastIndexOf("[")}function Yr(e){return 0==(e-=5120)?x:1==e?N:2==e?j:4==e?L:6==e?G:5==e||28922==e||28520==e||30779==e||30782==e?H:U}function Xr(e){return 31-Math.clz32(e.BYTES_PER_ELEMENT)}function Wr(e,t,r,n,o,i){var a=Yr(e),s=Xr(a),A=1<<s,c=function(e){return{5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4}[e-6402]||1}(t)*A,u=function(e,t,r,n){var o;return t*(e*r+(o=n)-1&-o)}(r,n,c,Tr.unpackAlignment);return a.subarray(o>>s,o+u>>s)}function Vr(e){var t=nn.currentProgram;if(t){var r=t.uniformLocsById[e];return"number"==typeof r&&(t.uniformLocsById[e]=r=nn.getUniformLocation(t,t.uniformArrayNamesById[e]+(r>0?"["+r+"]":""))),r}Tr.recordError(1282)}var zr=[];var Jr=[];function Kr(){if(!Kr.called){Kr.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);L[yn()>>2]=60*i,L[mn()>>2]=Number(n!=o);var a=u(t),s=u(r),A=q(a),c=q(s);o<n?(L[In()>>2]=A,L[In()+4>>2]=c):(L[In()>>2]=c,L[In()+4>>2]=A)}function u(e){var t=e.toTimeString().match(/\(([A-Za-z ]+)\)$/);return t?t[1]:"GMT"}}function Zr(e){return e%4==0&&(e%100!=0||e%400==0)}function qr(e,t){for(var r=0,n=0;n<=t;r+=e[n++]);return r}var $r=[31,29,31,30,31,30,31,31,30,31,30,31],en=[31,28,31,30,31,30,31,31,30,31,30,31];function tn(e,t){for(var r=new Date(e.getTime());t>0;){var n=Zr(r.getFullYear()),o=r.getMonth(),i=(n?$r:en)[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 rn(e,t,r,n){var o=L[n+40>>2],i={tm_sec:L[n>>2],tm_min:L[n+4>>2],tm_hour:L[n+8>>2],tm_mday:L[n+12>>2],tm_mon:L[n+16>>2],tm_year:L[n+20>>2],tm_wday:L[n+24>>2],tm_yday:L[n+28>>2],tm_isdst:L[n+32>>2],tm_gmtoff:L[n+36>>2],tm_zone:o?M(o):""},a=M(r),s={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var A in s)a=a.replace(new RegExp(A,"g"),s[A]);var c=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],u=["January","February","March","April","May","June","July","August","September","October","November","December"];function g(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 g(e,t,"0")}function l(e,t){function r(e){return e<0?-1:e>0?1:0}var n;return 0===(n=r(e.getFullYear()-t.getFullYear()))&&0===(n=r(e.getMonth()-t.getMonth()))&&(n=r(e.getDate()-t.getDate())),n}function 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 E(e){var t=tn(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 l(o,t)<=0?l(i,t)<=0?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}var p={"%a":function(e){return c[e.tm_wday].substring(0,3)},"%A":function(e){return c[e.tm_wday]},"%b":function(e){return 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 g(e.tm_mday,2," ")},"%g":function(e){return E(e).toString().substring(2)},"%G":function(e){return E(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+qr(Zr(e.tm_year+1900)?$r:en,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:tn(t,7-t.getDay()),n=new Date(e.tm_year+1900,e.tm_mon,e.tm_mday);if(l(r,n)<0){var o=qr(Zr(n.getFullYear())?$r:en,n.getMonth()-1)-31,i=31-r.getDate()+o+n.getDate();return d(Math.ceil(i/7),2)}return 0===l(r,t)?"01":"00"},"%V":function(e){var t,r=new Date(e.tm_year+1900,0,4),n=new Date(e.tm_year+1901,0,4),o=f(r),i=f(n),a=tn(new Date(e.tm_year+1900,0,1),e.tm_yday);return l(a,o)<0?"53":l(i,a)<=0?"01":(t=o.getFullYear()<e.tm_year+1900?e.tm_yday+32-o.getDate():e.tm_yday+1-o.getDate(),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:tn(t,0===t.getDay()?1:7-t.getDay()+1),n=new Date(e.tm_year+1900,e.tm_mon,e.tm_mday);if(l(r,n)<0){var o=qr(Zr(n.getFullYear())?$r:en,n.getMonth()-1)-31,i=31-r.getDate()+o+n.getDate();return d(Math.ceil(i/7),2)}return 0===l(r,t)?"01":"00"},"%y":function(e){return(e.tm_year+1900).toString().substring(2)},"%Y":function(e){return e.tm_year+1900},"%z":function(e){var t=e.tm_gmtoff,r=t>=0;return t=(t=Math.abs(t)/60)/60*100+t%60,(r?"+":"-")+String("0000"+t).slice(-4)},"%Z":function(e){return e.tm_zone},"%%":function(){return"%"}};for(var A in p)a.includes(A)&&(a=a.replace(new RegExp(A,"g"),p[A](i)));var h,I,m=gn(a,!1);return m.length>t?0:(I=e,Q((h=m).length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),x.set(h,I),m.length-1)}o.requestFullscreen=function(e,t){ke.requestFullscreen(e,t)},o.requestFullScreen=function(){ke.requestFullScreen()},o.requestAnimationFrame=function(e){ke.requestAnimationFrame(e)},o.setCanvasSize=function(e,t,r){ke.setCanvasSize(e,t,r)},o.pauseMainLoop=function(){ke.mainLoop.pause()},o.resumeMainLoop=function(){ke.mainLoop.resume()},o.getUserMedia=function(){ke.getUserMedia()},o.createContext=function(e,t,r,n){return ke.createContext(e,t,r,n)};var nn,on=function(e,t,r,n){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=$e.nextInode++,this.name=t,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=n},an=365,sn=146;Object.defineProperties(on.prototype,{read:{get:function(){return(this.mode&an)===an},set:function(e){e?this.mode|=an:this.mode&=-366}},write:{get:function(){return(this.mode&sn)===sn},set:function(e){e?this.mode|=sn:this.mode&=-147}},isFolder:{get:function(){return $e.isDir(this.mode)}},isDevice:{get:function(){return $e.isChrdev(this.mode)}}}),$e.FSNode=on,$e.staticInit(),o.FS_createPath=$e.createPath,o.FS_createDataFile=$e.createDataFile,o.FS_createPreloadedFile=$e.createPreloadedFile,o.FS_createLazyFile=$e.createLazyFile,o.FS_createDevice=$e.createDevice,o.FS_unlink=$e.unlink,o.count_emval_handles=st,o.get_first_emval=At,gt=o.PureVirtualError=ut(Error,"PureVirtualError"),function(){for(var e=new Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);dt=e}(),o.getInheritedInstanceCount=ft,o.getLiveInheritedInstances=Et,o.flushPendingDeletes=ht,o.setDelayFunction=mt,Ct=o.BindingError=ut(Error,"BindingError"),xt=o.InternalError=ut(Error,"InternalError"),zt.prototype.isAliasOf=Ht,zt.prototype.clone=Yt,zt.prototype.delete=Xt,zt.prototype.isDeleted=Wt,zt.prototype.deleteLater=Vt,cr.prototype.getPointee=nr,cr.prototype.destructor=or,cr.prototype.argPackAdvance=8,cr.prototype.readValueFromPointer=St,cr.prototype.deleteObject=ir,cr.prototype.fromWireType=Ar,lr=o.UnboundTypeError=ut(Error,"UnboundTypeError");for(var An=0;An<32;++An)jr.push(new Array(An));var cn=new Float32Array(288);for(An=0;An<288;++An)zr[An]=cn.subarray(0,An+1);var un=new Int32Array(288);for(An=0;An<288;++An)Jr[An]=un.subarray(0,An+1);function gn(e,t,r){var n=F(e)+1,o=new Array(n),i=R(e,o,0,o.length);return t&&(o.length=i),o}var dn={HaveOffsetConverter:function(){return"undefined"!=typeof wasmOffsetConverter},__cxa_allocate_exception:function(e){return fn(e+16)+16},__cxa_atexit:function(e,t){},__cxa_begin_catch:function(e){var t=new Ue(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(){vn(0),Q(Le.length>0);var e=Le.pop();!function(e){if(e.release_ref()&&!e.get_rethrown()){var t=e.get_destructor();t&&te.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 _(0),0;var t=new je(e).get_type(),r=new Ue;if(r.set_base_ptr(e),r.set_adjusted_ptr(e),!t)return _(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(Dn(i,t,r.get_adjusted_ptr_addr()))return _(i),0|r.ptr}return _(t),0|r.ptr},__cxa_find_matching_catch_3:function(){var e=He;if(!e)return _(0),0;var t=new je(e).get_type(),r=new Ue;if(r.set_base_ptr(e),r.set_adjusted_ptr(e),!t)return _(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(Dn(i,t,r.get_adjusted_ptr_addr()))return _(i),0|r.ptr}return _(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 je(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 Ue(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:$e.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 j[o+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return Ye(28),-1}}catch(e){return void 0!==$e&&e instanceof $e.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 L[o>>2]=0,0;case 21520:return n.tty?-28:-59;case 21531:o=et.get();return $e.ioctl(n,t,o);default:ye("bad ioctl syscall "+t)}}catch(e){return void 0!==$e&&e instanceof $e.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=Je(t)))return-48;s=!0}else{var A=$e.getStream(o);if(!A)return-8;var c=$e.mmap(A,e,t,i,r,n);a=c.ptr,s=c.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!==$e&&e instanceof $e.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 $e.open(n,t,o).fd}catch(e){return void 0!==$e&&e instanceof $e.ErrnoError||ye(e),-e.errno}},__sys_stat64:function(e,t){try{return e=et.getStr(e),et.doStat($e.stat,e,t)}catch(e){return void 0!==$e&&e instanceof $e.ErrnoError||ye(e),-e.errno}},_embind_create_inheriting_constructor:function(e,t,r){e=lt(e),t=bt(t,"wrapper"),r=Bt(r);var n=[].slice,o=t.registeredClass,i=o.instancePrototype,a=o.baseClass.instancePrototype,s=o.baseClass.constructor,A=ot(e,(function(){o.baseClass.pureVirtualFunctions.forEach(function(e){if(this[e]===a[e])throw new gt("Pure virtual function "+e+" must be implemented in JavaScript")}.bind(this)),Object.defineProperty(this,"__parent",{value:i}),this.__construct.apply(this,n.call(arguments))}));for(var c in i.__construct=function(){this===i&&wt("Pass correct 'this' to __construct");var e=s.implement.apply(void 0,[this].concat(n.call(arguments)));Ot(e);var t,r,a,A=e.$$;e.notifyOnDestruction(),A.preservePointerOnDelete=!0,Object.defineProperties(this,{$$:{value:A}}),Pt(this),t=o,r=A.ptr,a=this,r=_t(t,r),yt.hasOwnProperty(r)?wt("Tried to register registered instance: "+r):yt[r]=a},i.__destruct=function(){var e,t;this===i&&wt("Pass correct 'this' to __destruct"),Ot(this),e=o,t=this.$$.ptr,t=_t(e,t),yt.hasOwnProperty(t)?delete yt[t]:wt("Tried to unregister unregistered instance: "+t)},A.prototype=Object.create(i),r)A.prototype[c]=r[c];return ct(A)},_embind_finalize_value_object:function(e){var t=Mt[e];delete Mt[e];var r=t.rawConstructor,n=t.rawDestructor,o=t.fields;jt([e],o.map((function(e){return e.getterReturnType})).concat(o.map((function(e){return e.setterArgumentType}))),(function(e){var i={};return o.forEach((function(t,r){var n=t.fieldName,a=e[r],s=t.getter,A=t.getterContext,c=e[r+o.length],u=t.setter,g=t.setterContext;i[n]={read:function(e){return a.fromWireType(s(A,e))},write:function(e,t){var r=[];u(g,e,c.toWireType(r,t)),Rt(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:St,destructorFunction:n}]}))},_embind_register_bigint:function(e,t,r,n,o){},_embind_register_bool:function(e,t,r,n,o){var i=Ut(r);Lt(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=j;else{if(4!==r)throw new TypeError("Unknown boolean type size: "+t);n=L}return this.fromWireType(n[e>>i])},destructorFunction:null})},_embind_register_class:function(e,t,r,n,o,i,a,s,A,c,u,g,d){u=lt(u),i=dr(o,i),s&&(s=dr(a,s)),c&&(c=dr(A,c)),d=dr(g,d);var l=nt(u);Zt(l,(function(){fr("Cannot construct "+u+" due to unbound types",[n])})),jt([e,t,r],n?[n]:[],(function(t){var r,o;t=t[0],o=n?(r=t.registeredClass).instancePrototype:zt.prototype;var a=ot(l,(function(){if(Object.getPrototypeOf(this)!==A)throw new Ct("Use 'new' to construct "+u);if(void 0===g.constructor_body)throw new Ct(u+" has no accessible constructor");var e=g.constructor_body[arguments.length];if(void 0===e)throw new Ct("Tried to invoke ctor of "+u+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(g.constructor_body).toString()+") parameters instead!");return e.apply(this,arguments)})),A=Object.create(o,{constructor:{value:a}});a.prototype=A;var g=new qt(u,a,A,d,r,i,s,c),f=new cr(u,g,!0,!1,!1),E=new cr(u+"*",g,!1,!1,!1),p=new cr(u+" const*",g,!1,!0,!1);return Jt[e]={pointerType:E,constPointerType:p},ur(l,a),[f,E,p]}))},_embind_register_class_class_function:function(e,t,r,n,o,i,a){var s=hr(r,n);t=lt(t),i=dr(o,i),jt([],[e],(function(e){var n=(e=e[0]).name+"."+t;function o(){fr("Cannot call "+n+" due to unbound types",s)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]);var A=e.registeredClass.constructor;return void 0===A[t]?(o.argCount=r-1,A[t]=o):(Kt(A,t,n),A[t].overloadTable[r-1]=o),jt([],s,(function(e){var o=[e[0],null].concat(e.slice(1)),s=pr(n,o,null,i,a);return void 0===A[t].overloadTable?(s.argCount=r-1,A[t]=s):A[t].overloadTable[r-1]=s,[]})),[]}))},_embind_register_class_constructor:function(e,t,r,n,o,i){Q(t>0);var a=hr(t,r);o=dr(n,o),jt([],[e],(function(e){var r="constructor "+(e=e[0]).name;if(void 0===e.registeredClass.constructor_body&&(e.registeredClass.constructor_body=[]),void 0!==e.registeredClass.constructor_body[t-1])throw new Ct("Cannot register multiple constructors with identical number of parameters ("+(t-1)+") for class '"+e.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return e.registeredClass.constructor_body[t-1]=function(){fr("Cannot construct "+e.name+" due to unbound types",a)},jt([],a,(function(n){return n.splice(1,0,null),e.registeredClass.constructor_body[t-1]=pr(r,n,null,o,i),[]})),[]}))},_embind_register_class_function:function(e,t,r,n,o,i,a,s){var A=hr(r,n);t=lt(t),i=dr(o,i),jt([],[e],(function(e){var n=(e=e[0]).name+"."+t;function o(){fr("Cannot call "+n+" due to unbound types",A)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]),s&&e.registeredClass.pureVirtualFunctions.push(t);var c=e.registeredClass.instancePrototype,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):(Kt(c,t,n),c[t].overloadTable[r-2]=o),jt([],A,(function(o){var s=pr(n,o,e,i,a);return void 0===c[t].overloadTable?(s.argCount=r-2,c[t]=s):c[t].overloadTable[r-2]=s,[]})),[]}))},_embind_register_class_property:function(e,t,r,n,o,i,a,s,A,c){t=lt(t),o=dr(n,o),jt([],[e],(function(e){var n=(e=e[0]).name+"."+t,u={get:function(){fr("Cannot access "+n+" due to unbound types",[r,a])},enumerable:!0,configurable:!0};return u.set=A?function(){fr("Cannot access "+n+" due to unbound types",[r,a])}:function(e){wt(n+" is a read-only property")},Object.defineProperty(e.registeredClass.instancePrototype,t,u),jt([],A?[r,a]:[r],(function(r){var a=r[0],u={get:function(){var t=Ir(this,e,n+" getter");return a.fromWireType(o(i,t))},enumerable:!0};if(A){A=dr(s,A);var g=r[1];u.set=function(t){var r=Ir(this,e,n+" setter"),o=[];A(c,r,g.toWireType(o,t)),Rt(o)}}return Object.defineProperty(e.registeredClass.instancePrototype,t,u),[]})),[]}))},_embind_register_emval:function(e,t){Lt(e,{name:t=lt(t),fromWireType:function(e){var t=at[e].value;return mr(e),t},toWireType:function(e,t){return ct(t)},argPackAdvance:8,readValueFromPointer:St,destructorFunction:null})},_embind_register_float:function(e,t,r){var n=Ut(r);Lt(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 "'+yr(t)+'" to '+this.name);return t},argPackAdvance:8,readValueFromPointer:Cr(t,n),destructorFunction:null})},_embind_register_function:function(e,t,r,n,o,i){var a=hr(t,r);e=lt(e),o=dr(n,o),Zt(e,(function(){fr("Cannot call "+e+" due to unbound types",a)}),t-1),jt([],a,(function(r){var n=[r[0],null].concat(r.slice(1));return ur(e,pr(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=Ut(r),a=function(e){return e};if(0===n){var s=32-8*r;a=function(e){return e<<s>>>s}}var A=t.includes("unsigned");Lt(e,{name:t,fromWireType:a,toWireType:function(e,r){if("number"!=typeof r&&"boolean"!=typeof r)throw new TypeError('Cannot convert "'+yr(r)+'" to '+this.name);if(r<n||r>o)throw new TypeError('Passing a number "'+yr(r)+'" from JS side to C/C++ side to an argument of type "'+t+'", which is outside the valid range ['+n+", "+o+"]!");return A?r>>>0:0|r},argPackAdvance:8,readValueFromPointer:wr(t,i,0!==n),destructorFunction:null})},_embind_register_memory_view:function(e,t,r){var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];function o(e){var t=H,r=t[e>>=2],o=t[e+1];return new n(k,o,r)}Lt(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));Lt(e,{name:t,fromWireType:function(e){var t,n=H[e>>2];if(r)for(var o=e+4,i=0;i<=n;++i){var a=e+4+i;if(i==n||0==N[a]){var s=M(o,a-o);void 0===t?t=s:(t+=String.fromCharCode(0),t+=s),o=a+1}}else{var A=new Array(n);for(i=0;i<n;++i)A[i]=String.fromCharCode(N[e+4+i]);t=A.join("")}return ln(e),t},toWireType:function(e,t){t instanceof ArrayBuffer&&(t=new Uint8Array(t));var n="string"==typeof t;n||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int8Array||wt("Cannot pass non-string to std::string");var o=(r&&n?function(){return F(t)}:function(){return t.length})(),i=fn(4+o+1);if(H[i>>2]=o,r&&n)S(t,i+4,o+1);else if(n)for(var a=0;a<o;++a){var s=t.charCodeAt(a);s>255&&(ln(i),wt("String has UTF-16 code units that do not fit in 8 bits")),N[i+4+a]=s}else for(a=0;a<o;++a)N[i+4+a]=t[a];return null!==e&&e.push(ln,i),i},argPackAdvance:8,readValueFromPointer:St,destructorFunction:function(e){ln(e)}})},_embind_register_std_wstring:function(e,t,r){var n,o,i,a,s;r=lt(r),2===t?(n=W,o=V,a=z,i=function(){return U},s=1):4===t&&(n=J,o=K,a=Z,i=function(){return H},s=2),Lt(e,{name:r,fromWireType:function(e){for(var r,o=H[e>>2],a=i(),A=e+4,c=0;c<=o;++c){var u=e+4+c*t;if(c==o||0==a[u>>s]){var g=n(A,u-A);void 0===r?r=g:(r+=String.fromCharCode(0),r+=g),A=u+t}}return ln(e),r},toWireType:function(e,n){"string"!=typeof n&&wt("Cannot pass non-string to C++ string type "+r);var i=a(n),A=fn(4+i+t);return H[A>>2]=i>>s,o(n,A+4,i+t),null!==e&&e.push(ln,A),A},argPackAdvance:8,readValueFromPointer:St,destructorFunction:function(e){ln(e)}})},_embind_register_value_object:function(e,t,r,n,o,i){Mt[e]={name:lt(t),rawConstructor:dr(r,n),rawDestructor:dr(o,i),fields:[]}},_embind_register_value_object_field:function(e,t,r,n,o,i,a,s,A,c){Mt[e].fields.push({fieldName:lt(t),getterReturnType:r,getter:dr(n,o),getterContext:i,setterArgumentType:a,setter:dr(s,A),setterContext:c})},_embind_register_void:function(e,t){Lt(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=Br[e])(t=Bt(t),r=void 0===(i=_r[o=r])?lt(o):i,null,n)},_emval_decref:mr,_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(L[(t>>2)+n],"parameter "+n);return r}(e,t),n=r[0],o=n.name+"_$"+r.slice(1).map((function(e){return e.name})).join("_")+"$",i=["retType"],a=[n],s="",A=0;A<e-1;++A)s+=(0!==A?", ":"")+"arg"+A,i.push("argType"+A),a.push(r[1+A]);var c="return function "+nt("methodCaller_"+o)+"(handle, name, destructors, args) {\n",u=0;for(A=0;A<e-1;++A)c+=" var arg"+A+" = argType"+A+".readValueFromPointer(args"+(u?"+"+u:"")+");\n",u+=r[A+1].argPackAdvance;for(c+=" var rv = handle[name]("+s+");\n",A=0;A<e-1;++A)r[A+1].deleteObject&&(c+=" argType"+A+".deleteObject(arg"+A+");\n");n.isVoid||(c+=" return retType.toWireType(destructors, rv);\n"),c+="};\n",i.push(c);var g,d,l=Er(Function,i).apply(null,a);return g=l,d=Br.length,Br.push(g),d},_emval_incref:function(e){e>4&&(at[e].refcount+=1)},_emval_take_value:function(e,t){return ct((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=Te()}return L[t>>2]=r/1e3|0,L[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(Q(Array.isArray(vr)),Q(t%16==0),vr.length=0,t>>=2;r=N[e++];){Q(100===r||102===r||105===r);var n=r<105;n&&1&t&&t++,vr.push(n?Y[t++>>1]:L[t]),++t}return vr}(t,r);return Pe.hasOwnProperty(e)||ye("No EM_ASM constant found at address "+e),Pe[e].apply(null,n)},emscripten_get_heap_max:function(){return 2147483648},emscripten_memcpy_big:function(e,t,r){N.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=N.length;Q((e>>>=0)>t);var r,n,o=2147483648;if(e>o)return m("Cannot enlarge memory, asked to go up to "+e+" bytes, but the limit is "+o+" bytes!"),!1;for(var i=1;i<=4;i*=2){var a=t*(1+.2/i);a=Math.min(a,e+100663296);var s=Math.min(o,((r=Math.max(e,a))%(n=65536)>0&&(r+=n-r%n),r));if(Dr(s))return!0}return m("Failed to grow the heap from "+t+" bytes to "+s+" bytes, not enough memory!"),!1},emscripten_stack_snapshot:function(){var e=(new Error).stack.split("\n");return"Error"==e[0]&&e.shift(),Qr(e),Or.last_addr=br(e[2]),Or.last_stack=e,Or.last_addr},emscripten_stack_unwind_buffer:function(e,t,r){var n;Or.last_addr==e?n=Or.last_stack:("Error"==(n=(new Error).stack.split("\n"))[0]&&n.shift(),Qr(n));for(var o=2;n[o]&&br(n[o])!=e;)++o;for(var i=0;i<r&&n[i+o];++i)L[t+4*i>>2]=br(n[i+o]);return i},emscripten_thread_sleep:function(e){for(var t=Te();Te()-t<e;);},emscripten_webgl_create_context:function(e,t){return function(e,t){Q(t);var r=t>>2,n=L[r+6],o={alpha:!!L[r+0],depth:!!L[r+1],stencil:!!L[r+2],antialias:!!L[r+3],premultipliedAlpha:!!L[r+4],preserveDrawingBuffer:!!L[r+5],powerPreference:Mr[n],failIfMajorPerformanceCaveat:!!L[r+7],majorVersion:L[r+8],minorVersion:L[r+9],enableExtensionsByDefault:L[r+10],explicitSwapControl:L[r+11],proxyContextToMainThread:L[r+12],renderViaOffscreenBackBuffer:L[r+13]},i=Sr(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:fn(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(),L[t>>2]=r.alpha,L[t+4>>2]=r.depth,L[t+8>>2]=r.stencil,L[t+12>>2]=r.antialias,L[t+16>>2]=r.premultipliedAlpha,L[t+20>>2]=r.preserveDrawingBuffer;var n=r.powerPreference&&Mr.indexOf(r.powerPreference);return L[t+24>>2]=n,L[t+28>>2]=r.failIfMajorPerformanceCaveat,L[t+32>>2]=e.version,L[t+36>>2]=0,L[t+40>>2]=e.attributes.enableExtensionsByDefault,0},emscripten_webgl_get_current_context:Fr,emscripten_webgl_init_context_attributes:function(e){Q(e);for(var t=e>>2,r=0;r<14;++r)L[t+r]=0;L[t+0]=L[t+1]=L[t+3]=L[t+4]=L[t+8]=L[t+10]=1},emscripten_webgl_make_context_current:kr,environ_get:function(e,t){var r=0;return Nr().forEach((function(n,o){var i=t+r;L[e+4*o>>2]=i,function(e,t){for(var r=0;r<e.length;++r)Q(e.charCodeAt(r)==e.charCodeAt(r)&255),x[0|t++]=e.charCodeAt(r);x[0|t]=0}(n,i),r+=n.length+1})),0},environ_sizes_get:function(e,t){var r=Nr();L[e>>2]=r.length;var n=0;return r.forEach((function(e){n+=e.length+1})),L[t>>2]=n,0},exit:Me,fd_close:function(e){try{var t=et.getStreamFromFD(e);return $e.close(t),0}catch(e){return void 0!==$e&&e instanceof $e.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 L[n>>2]=i,0}catch(e){return void 0!==$e&&e instanceof $e.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:($e.llseek(i,a,n),Be=[i.position>>>0,(_e=i.position,+Math.abs(_e)>=1?_e>0?(0|Math.min(+Math.floor(_e/4294967296),4294967295))>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],L[o>>2]=Be[0],L[o+4>>2]=Be[1],i.getdents&&0===a&&0===n&&(i.getdents=null),0)}catch(e){return void 0!==$e&&e instanceof $e.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 L[n>>2]=i,0}catch(e){return void 0!==$e&&e instanceof $e.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){nn.activeTexture(e)},glAttachShader:function(e,t){nn.attachShader(Tr.programs[e],Tr.shaders[t])},glBindAttribLocation:function(e,t,r){nn.bindAttribLocation(Tr.programs[e],t,M(r))},glBindBuffer:function(e,t){34962==e?nn.currentArrayBufferBinding=t:34963==e&&(nn.currentElementArrayBufferBinding=t),35051==e?nn.currentPixelPackBufferBinding=t:35052==e&&(nn.currentPixelUnpackBufferBinding=t),nn.bindBuffer(e,Tr.buffers[t])},glBindBufferBase:function(e,t,r){nn.bindBufferBase(e,t,Tr.buffers[r])},glBindFramebuffer:function(e,t){nn.bindFramebuffer(e,t?Tr.framebuffers[t]:Tr.currentContext.defaultFbo)},glBindTexture:function(e,t){nn.bindTexture(e,Tr.textures[t])},glBindVertexArray:function(e){nn.bindVertexArray(Tr.vaos[e]);var t=nn.getParameter(34965);nn.currentElementArrayBufferBinding=t?0|t.name:0},glBufferData:function(e,t,r,n){Tr.currentContext.version>=2?r?nn.bufferData(e,N,n,r,t):nn.bufferData(e,t,n):nn.bufferData(e,r?N.subarray(r,r+t):t,n)},glClientWaitSync:function(e,t,r,n){return nn.clientWaitSync(Tr.syncs[e],t,(o=r,Q((i=n)===(0|i)),(o>>>0)+4294967296*i));var o,i},glCompileShader:function(e){nn.compileShader(Tr.shaders[e])},glCreateProgram:function(){var e=Tr.getNewId(Tr.programs),t=nn.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]=nn.createShader(e),t},glDeleteBuffers:function(e,t){for(var r=0;r<e;r++){var n=L[t+4*r>>2],o=Tr.buffers[n];o&&(nn.deleteBuffer(o),o.name=0,Tr.buffers[n]=null,n==nn.currentArrayBufferBinding&&(nn.currentArrayBufferBinding=0),n==nn.currentElementArrayBufferBinding&&(nn.currentElementArrayBufferBinding=0),n==nn.currentPixelPackBufferBinding&&(nn.currentPixelPackBufferBinding=0),n==nn.currentPixelUnpackBufferBinding&&(nn.currentPixelUnpackBufferBinding=0))}},glDeleteFramebuffers:function(e,t){for(var r=0;r<e;++r){var n=L[t+4*r>>2],o=Tr.framebuffers[n];o&&(nn.deleteFramebuffer(o),o.name=0,Tr.framebuffers[n]=null)}},glDeleteProgram:function(e){if(e){var t=Tr.programs[e];t?(nn.deleteProgram(t),t.name=0,Tr.programs[e]=null):Tr.recordError(1281)}},glDeleteShader:function(e){if(e){var t=Tr.shaders[e];t?(nn.deleteShader(t),Tr.shaders[e]=null):Tr.recordError(1281)}},glDeleteSync:function(e){if(e){var t=Tr.syncs[e];t?(nn.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=L[t+4*r>>2],o=Tr.textures[n];o&&(nn.deleteTexture(o),o.name=0,Tr.textures[n]=null)}},glDeleteVertexArrays:function(e,t){for(var r=0;r<e;r++){var n=L[t+4*r>>2];nn.deleteVertexArray(Tr.vaos[n]),Tr.vaos[n]=null}},glDisable:function(e){nn.disable(e)},glDisableVertexAttribArray:function(e){Tr.currentContext.clientBuffers[e].enabled=!1,nn.disableVertexAttribArray(e)},glDrawArrays:function(e,t,r){Tr.preDrawHandleClientVertexAttribBindings(t+r),nn.drawArrays(e,t,r),Tr.postDrawHandleClientVertexAttribBindings()},glDrawBuffers:function(e,t){for(var r=jr[e],n=0;n<e;n++)r[n]=L[t+4*n>>2];nn.drawBuffers(r)},glEnableVertexAttribArray:function(e){Tr.currentContext.clientBuffers[e].enabled=!0,nn.enableVertexAttribArray(e)},glFenceSync:function(e,t){var r=nn.fenceSync(e,t);if(r){var n=Tr.getNewId(Tr.syncs);return r.name=n,Tr.syncs[n]=r,n}return 0},glFinish:function(){nn.finish()},glFlush:function(){nn.flush()},glFramebufferTexture2D:function(e,t,r,n,o){nn.framebufferTexture2D(e,t,r,Tr.textures[n],o)},glFramebufferTextureLayer:function(e,t,r,n,o){nn.framebufferTextureLayer(e,t,Tr.textures[r],n,o)},glGenBuffers:function(e,t){Ur(e,t,"createBuffer",Tr.buffers)},glGenFramebuffers:function(e,t){Ur(e,t,"createFramebuffer",Tr.framebuffers)},glGenTextures:function(e,t){Ur(e,t,"createTexture",Tr.textures)},glGenVertexArrays:function(e,t){Ur(e,t,"createVertexArray",Tr.vaos)},glGetAttribLocation:function(e,t){return nn.getAttribLocation(Tr.programs[e],M(t))},glGetError:function(){var e=nn.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;case 34814:case 36345:n=0;break;case 34466:var o=nn.getParameter(34467);n=o?o.length:0;break;case 33309:if(Tr.currentContext.version<2)return void Tr.recordError(1282);n=2*(nn.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=nn.getParameter(e);switch(E(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:L[t+4*a>>2]=i[a];break;case 2:G[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 m("GL_INVALID_ENUM in glGet"+r+"v: Unknown object returned from WebGL getParameter("+e+")! (error: "+t+")")}}break;default:return Tr.recordError(1280),void m("GL_INVALID_ENUM in glGet"+r+"v: Native code calling glGet"+r+"v("+e+") and it returns "+i+" of type "+E(i)+"!")}}switch(r){case 1:Lr(t,n);break;case 0:L[t>>2]=n;break;case 2:G[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=nn.getSupportedExtensions()||[];t=Hr((r=r.concat(r.map((function(e){return"GL_"+e})))).join(" "));break;case 7936:case 7937:case 37445:case 37446:var n=nn.getParameter(e);n||Tr.recordError(1280),t=n&&Hr(n);break;case 7938:var o=nn.getParameter(7938);t=Hr(o=Tr.currentContext.version>=2?"OpenGL ES 3.0 ("+o+")":"OpenGL ES 2.0 ("+o+")");break;case 35724:var i=nn.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=Hr(i);break;default:Tr.recordError(1280)}Tr.stringCache[e]=t}return t},glGetUniformBlockIndex:function(e,t){return nn.getUniformBlockIndex(Tr.programs[e],M(t))},glGetUniformLocation:function(e,t){if(t=M(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<nn.getProgramParameter(e,35718);++t){var i=nn.getActiveUniform(e,t),a=i.name,s=i.size,A=Gr(a),c=A>0?a.slice(0,A):a,u=e.uniformIdCounter;for(e.uniformIdCounter+=s,o[c]=[s,u],r=0;r<s;++r)n[u]=r,e.uniformArrayNamesById[u++]=c}}(e);var r=e.uniformLocsById,n=0,o=t,i=Gr(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]||nn.getUniformLocation(e,t)))return n}else Tr.recordError(1281);var s;return-1},glLinkProgram:function(e){e=Tr.programs[e],nn.linkProgram(e),e.uniformLocsById=0,e.uniformSizeAndIdsByName={}},glPixelStorei:function(e,t){3317==e&&(Tr.unpackAlignment=t),nn.pixelStorei(e,t)},glReadPixels:function(e,t,r,n,o,i,a){if(Tr.currentContext.version>=2)if(nn.currentPixelPackBufferBinding)nn.readPixels(e,t,r,n,o,i,a);else{var s=Yr(i);nn.readPixels(e,t,r,n,o,i,s,a>>Xr(s))}else{var A=Wr(i,o,r,n,a);A?nn.readPixels(e,t,r,n,o,i,A):Tr.recordError(1280)}},glShaderSource:function(e,t,r,n){var o=Tr.getSource(e,t,r,n);nn.shaderSource(Tr.shaders[e],o)},glTexImage2D:function(e,t,r,n,o,i,a,s,A){if(Tr.currentContext.version>=2)if(nn.currentPixelUnpackBufferBinding)nn.texImage2D(e,t,r,n,o,i,a,s,A);else if(A){var c=Yr(s);nn.texImage2D(e,t,r,n,o,i,a,s,c,A>>Xr(c))}else nn.texImage2D(e,t,r,n,o,i,a,s,null);else nn.texImage2D(e,t,r,n,o,i,a,s,A?Wr(s,a,n,o,A):null)},glTexParameterfv:function(e,t,r){var n=G[r>>2];nn.texParameterf(e,t,n)},glTexParameteri:function(e,t,r){nn.texParameteri(e,t,r)},glTexStorage2D:function(e,t,r,n,o){nn.texStorage2D(e,t,r,n,o)},glTexStorage3D:function(e,t,r,n,o,i){nn.texStorage3D(e,t,r,n,o,i)},glTexSubImage2D:function(e,t,r,n,o,i,a,s,A){if(Tr.currentContext.version>=2)if(nn.currentPixelUnpackBufferBinding)nn.texSubImage2D(e,t,r,n,o,i,a,s,A);else if(A){var c=Yr(s);nn.texSubImage2D(e,t,r,n,o,i,a,s,c,A>>Xr(c))}else nn.texSubImage2D(e,t,r,n,o,i,a,s,null);else{var u=null;A&&(u=Wr(s,a,o,i,A)),nn.texSubImage2D(e,t,r,n,o,i,a,s,u)}},glTexSubImage3D:function(e,t,r,n,o,i,a,s,A,c,u){if(nn.currentPixelUnpackBufferBinding)nn.texSubImage3D(e,t,r,n,o,i,a,s,A,c,u);else if(u){var g=Yr(c);nn.texSubImage3D(e,t,r,n,o,i,a,s,A,c,g,u>>Xr(g))}else nn.texSubImage3D(e,t,r,n,o,i,a,s,A,c,null)},glUniform1f:function(e,t){nn.uniform1f(Vr(e),t)},glUniform1i:function(e,t){nn.uniform1i(Vr(e),t)},glUniform2fv:function(e,t,r){if(Tr.currentContext.version>=2)nn.uniform2fv(Vr(e),G,r>>2,2*t);else{if(t<=144)for(var n=zr[2*t-1],o=0;o<2*t;o+=2)n[o]=G[r+4*o>>2],n[o+1]=G[r+(4*o+4)>>2];else n=G.subarray(r>>2,r+8*t>>2);nn.uniform2fv(Vr(e),n)}},glUniform4fv:function(e,t,r){if(Tr.currentContext.version>=2)nn.uniform4fv(Vr(e),G,r>>2,4*t);else{if(t<=72){var n=zr[4*t-1],o=G;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=G.subarray(r>>2,r+16*t>>2);nn.uniform4fv(Vr(e),n)}},glUniform4iv:function(e,t,r){if(Tr.currentContext.version>=2)nn.uniform4iv(Vr(e),L,r>>2,4*t);else{if(t<=72)for(var n=Jr[4*t-1],o=0;o<4*t;o+=4)n[o]=L[r+4*o>>2],n[o+1]=L[r+(4*o+4)>>2],n[o+2]=L[r+(4*o+8)>>2],n[o+3]=L[r+(4*o+12)>>2];else n=L.subarray(r>>2,r+16*t>>2);nn.uniform4iv(Vr(e),n)}},glUniformBlockBinding:function(e,t,r){e=Tr.programs[e],nn.uniformBlockBinding(e,t,r)},glUniformMatrix4fv:function(e,t,r,n){if(Tr.currentContext.version>=2)nn.uniformMatrix4fv(Vr(e),!!r,G,n>>2,16*t);else{if(t<=18){var o=zr[16*t-1],i=G;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=G.subarray(n>>2,n+64*t>>2);nn.uniformMatrix4fv(Vr(e),!!r,o)}},glUseProgram:function(e){e=Tr.programs[e],nn.useProgram(e),nn.currentProgram=e},glVertexAttribPointer:function(e,t,r,n,o,i){var a=Tr.currentContext.clientBuffers[e];if(!nn.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,nn.vertexAttribPointer(e,t,r,!!n,o,i)},glViewport:function(e,t,r,n){nn.viewport(e,t,r,n)},gmtime_r:function e(t,r){var n=new Date(1e3*L[t>>2]);L[r>>2]=n.getUTCSeconds(),L[r+4>>2]=n.getUTCMinutes(),L[r+8>>2]=n.getUTCHours(),L[r+12>>2]=n.getUTCDate(),L[r+16>>2]=n.getUTCMonth(),L[r+20>>2]=n.getUTCFullYear()-1900,L[r+24>>2]=n.getUTCDay(),L[r+36>>2]=0,L[r+32>>2]=0;var o=Date.UTC(n.getUTCFullYear(),0,1,0,0,0,0),i=(n.getTime()-o)/864e5|0;return L[r+28>>2]=i,e.GMTString||(e.GMTString=q("GMT")),L[r+40>>2]=e.GMTString,r},invoke_diii:function(e,t,r,n){var o=Cn();try{return te.get(e)(t,r,n)}catch(e){if(wn(o),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_i:function(e){var t=Cn();try{return te.get(e)()}catch(e){if(wn(t),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_ii:function(e,t){var r=Cn();try{return te.get(e)(t)}catch(e){if(wn(r),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_iii:function(e,t,r){var n=Cn();try{return te.get(e)(t,r)}catch(e){if(wn(n),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_iiii:function(e,t,r,n){var o=Cn();try{return te.get(e)(t,r,n)}catch(e){if(wn(o),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_iiiii:function(e,t,r,n,o){var i=Cn();try{return te.get(e)(t,r,n,o)}catch(e){if(wn(i),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_iiiiii:function(e,t,r,n,o,i){var a=Cn();try{return te.get(e)(t,r,n,o,i)}catch(e){if(wn(a),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_iiiiiii:function(e,t,r,n,o,i,a){var s=Cn();try{return te.get(e)(t,r,n,o,i,a)}catch(e){if(wn(s),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_iiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c){var u=Cn();try{return te.get(e)(t,r,n,o,i,a,s,A,c)}catch(e){if(wn(u),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_iiiiiiii:function(e,t,r,n,o,i,a,s){var A=Cn();try{return te.get(e)(t,r,n,o,i,a,s)}catch(e){if(wn(A),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_iiiiiiiii:function(e,t,r,n,o,i,a,s,A){var c=Cn();try{return te.get(e)(t,r,n,o,i,a,s,A)}catch(e){if(wn(c),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_v:function(e){var t=Cn();try{te.get(e)()}catch(e){if(wn(t),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_vdiii:function(e,t,r,n,o){var i=Cn();try{te.get(e)(t,r,n,o)}catch(e){if(wn(i),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_vi:function(e,t){var r=Cn();try{te.get(e)(t)}catch(e){if(wn(r),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_vididdii:function(e,t,r,n,o,i,a,s){var A=Cn();try{te.get(e)(t,r,n,o,i,a,s)}catch(e){if(wn(A),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_vidii:function(e,t,r,n,o){var i=Cn();try{te.get(e)(t,r,n,o)}catch(e){if(wn(i),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_vii:function(e,t,r){var n=Cn();try{te.get(e)(t,r)}catch(e){if(wn(n),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viid:function(e,t,r,n){var o=Cn();try{te.get(e)(t,r,n)}catch(e){if(wn(o),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viidi:function(e,t,r,n,o){var i=Cn();try{te.get(e)(t,r,n,o)}catch(e){if(wn(i),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viididii:function(e,t,r,n,o,i,a,s){var A=Cn();try{te.get(e)(t,r,n,o,i,a,s)}catch(e){if(wn(A),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viii:function(e,t,r,n){var o=Cn();try{te.get(e)(t,r,n)}catch(e){if(wn(o),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiid:function(e,t,r,n,o){var i=Cn();try{te.get(e)(t,r,n,o)}catch(e){if(wn(i),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiidd:function(e,t,r,n,o,i){var a=Cn();try{te.get(e)(t,r,n,o,i)}catch(e){if(wn(a),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiddi:function(e,t,r,n,o,i,a){var s=Cn();try{te.get(e)(t,r,n,o,i,a)}catch(e){if(wn(s),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiidi:function(e,t,r,n,o,i){var a=Cn();try{te.get(e)(t,r,n,o,i)}catch(e){if(wn(a),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiii:function(e,t,r,n,o){var i=Cn();try{te.get(e)(t,r,n,o)}catch(e){if(wn(i),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiid:function(e,t,r,n,o,i){var a=Cn();try{te.get(e)(t,r,n,o,i)}catch(e){if(wn(a),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiidi:function(e,t,r,n,o,i,a){var s=Cn();try{te.get(e)(t,r,n,o,i,a)}catch(e){if(wn(s),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiidid:function(e,t,r,n,o,i,a,s){var A=Cn();try{te.get(e)(t,r,n,o,i,a,s)}catch(e){if(wn(A),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiidiidiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d,l,f,E){var p=Cn();try{te.get(e)(t,r,n,o,i,a,s,A,c,u,g,d,l,f,E)}catch(e){if(wn(p),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiifiifiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d,l,f,E){var p=Cn();try{te.get(e)(t,r,n,o,i,a,s,A,c,u,g,d,l,f,E)}catch(e){if(wn(p),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiii:function(e,t,r,n,o,i){var a=Cn();try{te.get(e)(t,r,n,o,i)}catch(e){if(wn(a),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiid:function(e,t,r,n,o,i,a){var s=Cn();try{te.get(e)(t,r,n,o,i,a)}catch(e){if(wn(s),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiif:function(e,t,r,n,o,i,a){var s=Cn();try{te.get(e)(t,r,n,o,i,a)}catch(e){if(wn(s),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiii:function(e,t,r,n,o,i,a){var s=Cn();try{te.get(e)(t,r,n,o,i,a)}catch(e){if(wn(s),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiiid:function(e,t,r,n,o,i,a,s){var A=Cn();try{te.get(e)(t,r,n,o,i,a,s)}catch(e){if(wn(A),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiiif:function(e,t,r,n,o,i,a,s){var A=Cn();try{te.get(e)(t,r,n,o,i,a,s)}catch(e){if(wn(A),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiiii:function(e,t,r,n,o,i,a,s){var A=Cn();try{te.get(e)(t,r,n,o,i,a,s)}catch(e){if(wn(A),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c,u){var g=Cn();try{te.get(e)(t,r,n,o,i,a,s,A,c,u)}catch(e){if(wn(g),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiiiidiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d){var l=Cn();try{te.get(e)(t,r,n,o,i,a,s,A,c,u,g,d)}catch(e){if(wn(l),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiiiifiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d){var l=Cn();try{te.get(e)(t,r,n,o,i,a,s,A,c,u,g,d)}catch(e){if(wn(l),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiiiii:function(e,t,r,n,o,i,a,s,A){var c=Cn();try{te.get(e)(t,r,n,o,i,a,s,A)}catch(e){if(wn(c),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiiiiidd:function(e,t,r,n,o,i,a,s,A,c,u){var g=Cn();try{te.get(e)(t,r,n,o,i,a,s,A,c,u)}catch(e){if(wn(g),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiiiiidf:function(e,t,r,n,o,i,a,s,A,c,u){var g=Cn();try{te.get(e)(t,r,n,o,i,a,s,A,c,u)}catch(e){if(wn(g),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiiiiii:function(e,t,r,n,o,i,a,s,A,c){var u=Cn();try{te.get(e)(t,r,n,o,i,a,s,A,c)}catch(e){if(wn(u),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiiiiiidd:function(e,t,r,n,o,i,a,s,A,c,u,g){var d=Cn();try{te.get(e)(t,r,n,o,i,a,s,A,c,u,g)}catch(e){if(wn(d),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c,u,g,d){var l=Cn();try{te.get(e)(t,r,n,o,i,a,s,A,c,u,g,d)}catch(e){if(wn(l),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u){var g=Cn();try{te.get(e)(t,r,n,o,i,a,s,A,c,u)}catch(e){if(wn(g),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c,u,g,d,l){var f=Cn();try{te.get(e)(t,r,n,o,i,a,s,A,c,u,g,d,l)}catch(e){if(wn(f),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u,g){var d=Cn();try{te.get(e)(t,r,n,o,i,a,s,A,c,u,g)}catch(e){if(wn(d),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d){var l=Cn();try{te.get(e)(t,r,n,o,i,a,s,A,c,u,g,d)}catch(e){if(wn(l),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d,l){var f=Cn();try{te.get(e)(t,r,n,o,i,a,s,A,c,u,g,d,l)}catch(e){if(wn(f),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},llvm_eh_typeid_for:function(e){return e},localtime_r:function(e,t){Kr();var r=new Date(1e3*L[e>>2]);L[t>>2]=r.getSeconds(),L[t+4>>2]=r.getMinutes(),L[t+8>>2]=r.getHours(),L[t+12>>2]=r.getDate(),L[t+16>>2]=r.getMonth(),L[t+20>>2]=r.getFullYear()-1900,L[t+24>>2]=r.getDay();var n=new Date(r.getFullYear(),0,1),o=(r.getTime()-n.getTime())/864e5|0;L[t+28>>2]=o,L[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));L[t+32>>2]=s;var A=L[In()+(s?4:0)>>2];return L[t+40>>2]=A,t},mktime:function(e){Kr();var t=new Date(L[e+20>>2]+1900,L[e+16>>2],L[e+12>>2],L[e+8>>2],L[e+4>>2],L[e>>2],0),r=L[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)L[e+32>>2]=Number(i!=a&&s==n);else if(r>0!=(s==n)){var A=Math.max(a,i),c=r>0?s:A;t.setTime(t.getTime()+6e4*(c-n))}L[e+24>>2]=t.getDay();var u=(t.getTime()-o.getTime())/864e5|0;return L[e+28>>2]=u,L[e>>2]=t.getSeconds(),L[e+4>>2]=t.getMinutes(),L[e+8>>2]=t.getHours(),L[e+12>>2]=t.getDate(),L[e+16>>2]=t.getMonth(),t.getTime()/1e3|0},proc_exit:function(e){Pn(e)},setTempRet0:function(e){_(e)},strftime:rn,strftime_l:function(e,t,r,n){return rn(e,t,r,n)}};!function(){var e={env:dn,wasi_snapshot_preview1:dn};function t(e,t){var r,n=e.exports;o.asm=n,Q(B=o.asm.memory,"memory not found in wasm exports"),$(B.buffer),Q(te=o.asm.__indirect_function_table,"table not found in wasm exports"),r=o.asm.__wasm_call_ctors,ae.unshift(r),me("wasm-instantiate")}Ie("wasm-instantiate");var r=o;function i(e){Q(o===r,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?"),r=null,t(e.instance)}function a(t){return function(){if(!C&&(c||u)){if("function"==typeof fetch&&!be(Ce))return fetch(Ce,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+Ce+"'";return e.arrayBuffer()})).catch((function(){return Qe(Ce)}));if(f)return new Promise((function(e,t){f(Ce,(function(t){e(new Uint8Array(t))}),t)}))}return Promise.resolve().then((function(){return Qe(Ce)}))}().then((function(t){return WebAssembly.instantiate(t,e)})).then(t,(function(e){m("failed to asynchronously prepare wasm: "+e),be(Ce)&&m("warning: Loading from a file URI ("+Ce+") 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 m("Module.instantiateWasm callback failed with error: "+e),!1}(C||"function"!=typeof WebAssembly.instantiateStreaming||De(Ce)||be(Ce)||"function"!=typeof fetch?a(i):fetch(Ce,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,e).then(i,(function(e){return m("wasm streaming compile failed: "+e),m("falling back to ArrayBuffer instantiation"),a(i)}))}))).catch(n)}(),o.___wasm_call_ctors=Oe("__wasm_call_ctors");var ln=o._free=Oe("free"),fn=o._malloc=Oe("malloc"),En=o.___errno_location=Oe("__errno_location");o._fflush=Oe("fflush");var pn=o.___getTypeName=Oe("__getTypeName");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");var hn=o._emscripten_stack_get_end=function(){return(hn=o._emscripten_stack_get_end=o.asm.emscripten_stack_get_end).apply(null,arguments)},In=o.__get_tzname=Oe("_get_tzname"),mn=o.__get_daylight=Oe("_get_daylight"),yn=o.__get_timezone=Oe("_get_timezone"),Cn=o.stackSave=Oe("stackSave"),wn=o.stackRestore=Oe("stackRestore");o.stackAlloc=Oe("stackAlloc");var _n=o._emscripten_stack_init=function(){return(_n=o._emscripten_stack_init=o.asm.emscripten_stack_init).apply(null,arguments)};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");var Bn,vn=o._setThrew=Oe("setThrew"),Dn=o.___cxa_can_catch=Oe("__cxa_can_catch"),bn=o.___cxa_is_pointer_type=Oe("__cxa_is_pointer_type"),On=o._memalign=Oe("memalign");function Qn(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function Tn(e){function t(){Bn||(Bn=!0,o.calledRun=!0,O||(oe(),Q(!ce),ce=!0,o.noFSInit||$e.init.initialized||$e.init(),$e.ignorePermissions=!1,xe(ae),r(o),o.onRuntimeInitialized&&o.onRuntimeInitialized(),Q(!o._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),function(){if(oe(),o.postRun)for("function"==typeof o.postRun&&(o.postRun=[o.postRun]);o.postRun.length;)e=o.postRun.shift(),Ae.unshift(e);var e;xe(Ae)}()))}le>0||(_n(),ne(),function(){if(o.preRun)for("function"==typeof o.preRun&&(o.preRun=[o.preRun]);o.preRun.length;)e=o.preRun.shift(),ie.unshift(e);var e;xe(ie)}(),le>0||(o.setStatus?(o.setStatus("Running..."),setTimeout((function(){setTimeout((function(){o.setStatus("")}),1),t()}),1)):t(),oe()))}function Pn(e){b=e,de()||(o.onExit&&o.onExit(e),O=!0),A(e,new Qn(e))}if(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"),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=Ie,o.removeRunDependency=me,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=$e.createPath,o.FS_createDataFile=$e.createDataFile,o.FS_createPreloadedFile=$e.createPreloadedFile,o.FS_createLazyFile=$e.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=$e.createDevice,o.FS_unlink=$e.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=ne,o.checkStackCookie=oe,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)")}}),Ee=function e(){Bn||Tn(),Bn||(Ee=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}}(),x=k,N=(R="undefined"!=typeof document?null==(M=document.currentScript)?void 0:M.src:void 0,function(){var e,t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=Object.assign({},r),s=new Promise((function(r,n){e=r,t=n})),c=Object.assign({},i),u="";"undefined"!=typeof document&&document.currentScript&&(u=document.currentScript.src),R&&(u=R),u=u.startsWith("blob:")?"":u.substr(0,u.replace(/[?#].*/,"").lastIndexOf("/")+1);var g,d,f=i.print||console.log.bind(console),p=i.printErr||console.error.bind(console);function I(e){if(x(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(k.length))}Object.assign(i,c),c=null,i.arguments&&i.arguments,i.thisProgram&&i.thisProgram,i.quit&&i.quit,i.wasmBinary&&(g=i.wasmBinary);var m,y,C,w,_,B,v,D,b=!1,O=[],Q=[],T=[],P=0,M=null;function S(e){var r;null==(r=i.onAbort)||r.call(i,e),p(e="Aborted("+e+")"),b=!0,e+=". Build with -sASSERTIONS for more info.";var n=new WebAssembly.RuntimeError(e);throw t(n),n}var F,k="data:application/octet-stream;base64,",x=function(e){return e.startsWith(k)};function N(e){return Promise.resolve().then((function(){return function(e){if(e==F&&g)return new Uint8Array(g);var t=I(e);if(t)return t;throw"both async and sync fetching of the wasm failed"}(e)}))}function j(e,t,r,n){return function(e,t,r){return N(e).then((function(e){return WebAssembly.instantiate(e,t)})).then(r,(function(e){p("failed to asynchronously prepare wasm: ".concat(e)),S(e)}))}(t,r,n)}var U=function(e){for(;e.length>0;)e.shift()(i)};i.noExitRuntime;var L,H,G,Y=function(){return a((function e(t){o(this,e),this.excPtr=t,this.ptr=t-24}),[{key:"set_type",value:function(e){B[this.ptr+4>>2]=e}},{key:"get_type",value:function(){return B[this.ptr+4>>2]}},{key:"set_destructor",value:function(e){B[this.ptr+8>>2]=e}},{key:"get_destructor",value:function(){return B[this.ptr+8>>2]}},{key:"set_caught",value:function(e){e=e?1:0,m[this.ptr+12]=e}},{key:"get_caught",value:function(){return 0!=m[this.ptr+12]}},{key:"set_rethrown",value:function(e){e=e?1:0,m[this.ptr+13]=e}},{key:"get_rethrown",value:function(){return 0!=m[this.ptr+13]}},{key:"init",value:function(e,t){this.set_adjusted_ptr(0),this.set_type(e),this.set_destructor(t)}},{key:"set_adjusted_ptr",value:function(e){B[this.ptr+16>>2]=e}},{key:"get_adjusted_ptr",value:function(){return B[this.ptr+16>>2]}},{key:"get_exception_ptr",value:function(){if(ht(this.get_type()))return B[this.excPtr>>2];var e=this.get_adjusted_ptr();return 0!==e?e:this.excPtr}}])}(),X=function(e){for(var t="",r=e;y[r];)t+=L[y[r++]];return t},W={},V={},z={},J=function(e){throw new H(e)},K=function(e){throw new G(e)},Z=function(e,t,r){function n(t){var n=r(t);n.length!==e.length&&K("Mismatched type converter count");for(var o=0;o<e.length;++o)q(e[o],n[o])}e.forEach((function(e){z[e]=t}));var o=new Array(t.length),i=[],a=0;t.forEach((function(e,t){V.hasOwnProperty(e)?o[t]=V[e]:(i.push(e),W.hasOwnProperty(e)||(W[e]=[]),W[e].push((function(){o[t]=V[e],++a===i.length&&n(o)})))})),0===i.length&&n(o)};function q(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=t.name;if(e||J('type "'.concat(n,'" must have a positive integer typeid pointer')),V.hasOwnProperty(e)){if(r.ignoreDuplicateRegistrations)return;J("Cannot register type '".concat(n,"' twice"))}if(V[e]=t,delete z[e],W.hasOwnProperty(e)){var o=W[e];delete W[e],o.forEach((function(e){return e()}))}}(e,t,r)}var $,ee=function(e){J(e.$$.ptrType.registeredClass.name+" instance already deleted")},te=!1,re=function(e){},ne=function(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)},oe=function(e,t,r){if(t===r)return e;if(void 0===r.baseClass)return null;var n=oe(e,t,r.baseClass);return null===n?null:r.downcast(n)},ie={},ae=function(){return Object.keys(ge).length},se=function(){var e=[];for(var t in ge)ge.hasOwnProperty(t)&&e.push(ge[t]);return e},Ae=[],ce=function(){for(;Ae.length;){var e=Ae.pop();e.$$.deleteScheduled=!1,e.delete()}},ue=function(e){$=e,Ae.length&&$&&$(ce)},ge={},de=function(e,t){return t=function(e,t){for(void 0===t&&J("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t}(e,t),ge[t]},le=function(e,t){return t.ptrType&&t.ptr||K("makeClassHandle requires ptr and ptrType"),!!t.smartPtrType!=!!t.smartPtr&&K("Both smartPtrType and smartPtr must be specified"),t.count={value:1},Ee(Object.create(e,{$$:{value:t,writable:!0}}))};function fe(e){var t=this.getPointee(e);if(!t)return this.destructor(e),null;var r=de(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?le(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):le(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var i,a=this.registeredClass.getActualType(t),s=ie[a];if(!s)return o.call(this);i=this.isConst?s.constPointerType:s.pointerType;var A=oe(t,this.registeredClass,i.registeredClass);return null===A?o.call(this):this.isSmartPointer?le(i.registeredClass.instancePrototype,{ptrType:i,ptr:A,smartPtrType:this,smartPtr:e}):le(i.registeredClass.instancePrototype,{ptrType:i,ptr:A})}var Ee=function(e){return"undefined"==typeof FinalizationRegistry?(Ee=function(e){return e},e):(te=new FinalizationRegistry((function(e){ne(e.$$)})),re=function(e){return te.unregister(e)},(Ee=function(e){var t=e.$$;if(t.smartPtr){var r={$$:t};te.register(e,r,e)}return e})(e))};function pe(){}var he=function(e,t){return Object.defineProperty(t,"name",{value:e})},Ie=function(e,t,r){if(void 0===e[t].overloadTable){var n=e[t];e[t]=function(){for(var n=arguments.length,o=new Array(n),i=0;i<n;i++)o[i]=arguments[i];return e[t].overloadTable.hasOwnProperty(o.length)||J("Function '".concat(r,"' called with an invalid number of arguments (").concat(o.length,") - expects one of (").concat(e[t].overloadTable,")!")),e[t].overloadTable[o.length].apply(this,o)},e[t].overloadTable=[],e[t].overloadTable[n.argCount]=n}};function me(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 ye=function(e,t,r){for(;t!==r;)t.upcast||J("Expected null or instance of ".concat(r.name,", got an instance of ").concat(t.name)),e=t.upcast(e),t=t.baseClass;return e};function Ce(e,t){if(null===t)return this.isReference&&J("null is not a valid ".concat(this.name)),0;t.$$||J('Cannot pass "'.concat(Ve(t),'" as a ').concat(this.name)),t.$$.ptr||J("Cannot pass deleted object as a pointer of type ".concat(this.name));var r=t.$$.ptrType.registeredClass;return ye(t.$$.ptr,r,this.registeredClass)}function we(e,t){var r;if(null===t)return this.isReference&&J("null is not a valid ".concat(this.name)),this.isSmartPointer?(r=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,r),r):0;t&&t.$$||J('Cannot pass "'.concat(Ve(t),'" as a ').concat(this.name)),t.$$.ptr||J("Cannot pass deleted object as a pointer of type ".concat(this.name)),!this.isConst&&t.$$.ptrType.isConst&&J("Cannot convert argument of type ".concat(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name," to parameter type ").concat(this.name));var n=t.$$.ptrType.registeredClass;if(r=ye(t.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===t.$$.smartPtr&&J("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?r=t.$$.smartPtr:J("Cannot convert argument of type ".concat(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name," to parameter type ").concat(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,Xe.toHandle((function(){return o.delete()}))),null!==e&&e.push(this.rawDestructor,r)}break;default:J("Unsupporting sharing policy")}return r}function _e(e,t){if(null===t)return this.isReference&&J("null is not a valid ".concat(this.name)),0;t.$$||J('Cannot pass "'.concat(Ve(t),'" as a ').concat(this.name)),t.$$.ptr||J("Cannot pass deleted object as a pointer of type ".concat(this.name)),t.$$.ptrType.isConst&&J("Cannot convert argument of type ".concat(t.$$.ptrType.name," to parameter type ").concat(this.name));var r=t.$$.ptrType.registeredClass;return ye(t.$$.ptr,r,this.registeredClass)}function Be(e){return this.fromWireType(B[e>>2])}function ve(e,t,r,n,o,i,a,s,A,c,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=A,this.rawShare=c,this.rawDestructor=u,o||void 0!==t.baseClass?this.toWireType=we:n?(this.toWireType=Ce,this.destructorFunction=null):(this.toWireType=_e,this.destructorFunction=null)}var De,be,Oe=[],Qe=function(e){var t=Oe[e];return t||(e>=Oe.length&&(Oe.length=e+1),Oe[e]=t=De.get(e)),t},Te=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return e.includes("j")?function(e,t,r){return e=e.replace(/p/g,"i"),i["dynCall_"+e].apply(void 0,[t].concat(l(r)))}(e,t,r):Qe(t).apply(void 0,l(r))},Pe=function(e,t){var r,n,o=(e=X(e)).includes("j")?(r=e,n=t,function(){for(var e=arguments.length,t=new Array(e),o=0;o<e;o++)t[o]=arguments[o];return Te(r,n,t)}):Qe(t);return"function"!=typeof o&&J("unknown function pointer with signature ".concat(e,": ").concat(t)),o},Me=function(e){var t=Et(e),r=X(t);return pt(t),r},Re=function(e,t){var r=[],n={};throw t.forEach((function e(t){n[t]||V[t]||(z[t]?z[t].forEach(e):(r.push(t),n[t]=!0))})),new be("".concat(e,": ")+r.map(Me).join([", "]))},Se=function(e,t){for(var r=[],n=0;n<e;n++)r.push(B[t+4*n>>2]);return r},Fe=function(e){for(;e.length;){var t=e.pop();e.pop()(t)}};function ke(e,t,r,n,o,i){var a=t.length;a<2&&J("argTypes array size mismatch! Must at least get return value and 'this' types!");var s=null!==t[1]&&null!==r,A=function(e){for(var t=1;t<e.length;++t)if(null!==e[t]&&void 0===e[t].destructorFunction)return!0;return!1}(t),c="void"!==t[0].name,u=a-2,g=new Array(u),d=[],l=[];return he(e,(function(){var r;arguments.length!==u&&J("function ".concat(e," called with ").concat(arguments.length," arguments, expected ").concat(u)),l.length=0,d.length=s?2:1,d[0]=o,s&&(r=t[1].toWireType(l,this),d[1]=r);for(var i=0;i<u;++i)g[i]=t[i+2].toWireType(l,i<0||arguments.length<=i?void 0:arguments[i]),d.push(g[i]);return function(e){if(A)Fe(l);else for(var n=s?1:2;n<t.length;n++){var o=1===n?r:g[n-2];null!==t[n].destructorFunction&&t[n].destructorFunction(o)}if(c)return t[0].fromWireType(e)}(n.apply(void 0,d))}))}var xe,Ne,je,Ue=function(e,t,r){return e instanceof Object||J("".concat(r,' with invalid "this": ').concat(e)),e instanceof t.registeredClass.constructor||J("".concat(r,' incompatible with "this" of type ').concat(e.constructor.name)),e.$$.ptr||J("cannot call emscripten binding method ".concat(r," on deleted object")),ye(e.$$.ptr,e.$$.ptrType.registeredClass,t.registeredClass)},Le=[],He=[],Ge=function(e){e>9&&0==--He[e+1]&&(He[e]=void 0,Le.push(e))},Ye=function(){return He.length/2-5-Le.length},Xe={toValue:function(e){return e||J("Cannot use deleted val. handle = "+e),He[e]},toHandle:function(e){switch(e){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:var t=Le.pop()||He.length;return He[t]=e,He[t+1]=1,t}}},We={name:"emscripten::val",fromWireType:function(e){var t=Xe.toValue(e);return Ge(e),t},toWireType:function(e,t){return Xe.toHandle(t)},argPackAdvance:8,readValueFromPointer:Be,destructorFunction:null},Ve=function(e){if(null===e)return"null";var t=E(e);return"object"===t||"array"===t||"function"===t?e.toString():""+e},ze=function(e,t){switch(t){case 4:return function(e){return this.fromWireType(v[e>>2])};case 8:return function(e){return this.fromWireType(D[e>>3])};default:throw new TypeError("invalid float width (".concat(t,"): ").concat(e))}},Je=function(e,t,r){switch(t){case 1:return r?function(e){return m[e]}:function(e){return y[e]};case 2:return r?function(e){return C[e>>1]}:function(e){return w[e>>1]};case 4:return r?function(e){return _[e>>2]}:function(e){return B[e>>2]};default:throw new TypeError("invalid integer width (".concat(t,"): ").concat(e))}},Ke="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,Ze=function(e,t,r){for(var n=t+r,o=t;e[o]&&!(o>=n);)++o;if(o-t>16&&e.buffer&&Ke)return Ke.decode(e.subarray(t,o));for(var i="";t<o;){var a=e[t++];if(128&a){var s=63&e[t++];if(192!=(224&a)){var A=63&e[t++];if((a=224==(240&a)?(15&a)<<12|s<<6|A:(7&a)<<18|s<<12|A<<6|63&e[t++])<65536)i+=String.fromCharCode(a);else{var c=a-65536;i+=String.fromCharCode(55296|c>>10,56320|1023&c)}}else i+=String.fromCharCode((31&a)<<6|s)}else i+=String.fromCharCode(a)}return i},qe="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0,$e=function(e,t){for(var r=e,n=r>>1,o=n+t/2;!(n>=o)&&w[n];)++n;if((r=n<<1)-e>32&&qe)return qe.decode(y.subarray(e,r));for(var i="",a=0;!(a>=t/2);++a){var s=C[e+2*a>>1];if(0==s)break;i+=String.fromCharCode(s)}return i},et=function(e,t,r){if(null!=r||(r=2147483647),r<2)return 0;for(var n=t,o=(r-=2)<2*e.length?r/2:e.length,i=0;i<o;++i){var a=e.charCodeAt(i);C[t>>1]=a,t+=2}return C[t>>1]=0,t-n},tt=function(e){return 2*e.length},rt=function(e,t){for(var r=0,n="";!(r>=t/4);){var o=_[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},nt=function(e,t,r){if(null!=r||(r=2147483647),r<4)return 0;for(var n=t,o=n+r-4,i=0;i<e.length;++i){var a=e.charCodeAt(i);if(a>=55296&&a<=57343&&(a=65536+((1023&a)<<10)|1023&e.charCodeAt(++i)),_[t>>2]=a,(t+=4)+4>o)break}return _[t>>2]=0,t-n},ot=function(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},it=function(e,t){var r=V[e];return void 0===r&&J("".concat(t," has unknown type ").concat(Me(e))),r},at=function(e,t,r){var n=[],o=e.toWireType(n,r);return n.length&&(B[t>>2]=Xe.toHandle(n)),o},st={},At=[],ct=Reflect.construct,ut=[null,[],[]];!function(){for(var e=new Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);L=e}(),H=i.BindingError=function(e){function t(e){var r;return o(this,t),(r=n(this,t,[e])).name="BindingError",r}return A(t,e),a(t)}(h(Error)),G=i.InternalError=function(e){function t(e){var r;return o(this,t),(r=n(this,t,[e])).name="InternalError",r}return A(t,e),a(t)}(h(Error)),Object.assign(pe.prototype,{isAliasOf:function(e){if(!(this instanceof pe))return!1;if(!(e instanceof pe))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:function(){if(this.$$.ptr||ee(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e,t=Ee(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:function(){this.$$.ptr||ee(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&J("Object already scheduled for deletion"),re(this),ne(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted:function(){return!this.$$.ptr},deleteLater:function(){return this.$$.ptr||ee(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&J("Object already scheduled for deletion"),Ae.push(this),1===Ae.length&&$&&$(ce),this.$$.deleteScheduled=!0,this}}),i.getInheritedInstanceCount=ae,i.getLiveInheritedInstances=se,i.flushPendingDeletes=ce,i.setDelayFunction=ue,Object.assign(ve.prototype,{getPointee:function(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e},destructor:function(e){var t;null==(t=this.rawDestructor)||t.call(this,e)},argPackAdvance:8,readValueFromPointer:Be,fromWireType:fe}),be=i.UnboundTypeError=(xe=Error,(je=he(Ne="UnboundTypeError",(function(e){this.name=Ne,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(xe.prototype),je.prototype.constructor=je,je.prototype.toString=function(){return void 0===this.message?this.name:"".concat(this.name,": ").concat(this.message)},je),He.push(0,1,void 0,1,null,1,!0,1,!1,1),i.count_emval_handles=Ye;var gt,dt={w:function(e,t,r){throw new Y(e).init(t,r),e},q:function(){S("")},p:function(e,t,r,n,o){},u:function(e,t,r,n){q(e,{name:t=X(t),fromWireType:function(e){return!!e},toWireType:function(e,t){return t?r:n},argPackAdvance:8,readValueFromPointer:function(e){return this.fromWireType(y[e])},destructorFunction:null})},y:function(e,t,r,n,o,a,s,A,c,u,g,d,l){g=X(g),a=Pe(o,a),A&&(A=Pe(s,A)),u&&(u=Pe(c,u)),l=Pe(d,l);var f=function(e){if(void 0===e)return"_unknown";var t=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return t>=48&&t<=57?"_".concat(e):e}(g);!function(e,t,r){i.hasOwnProperty(e)?(J("Cannot register public name '".concat(e,"' twice")),Ie(i,e,e),i.hasOwnProperty(r)&&J("Cannot register multiple overloads of a function with the same number of arguments (".concat(r,")!")),i[e].overloadTable[r]=t):i[e]=t}(f,(function(){Re("Cannot construct ".concat(g," due to unbound types"),[n])})),Z([e,t,r],n?[n]:[],(function(t){var r,o,s;t=t[0],s=n?(o=t.registeredClass).instancePrototype:pe.prototype;var c=he(g,(function(){if(Object.getPrototypeOf(this)!==d)throw new H("Use 'new' to construct "+g);if(void 0===E.constructor_body)throw new H(g+" has no accessible constructor");for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var n=E.constructor_body[t.length];if(void 0===n)throw new H("Tried to invoke ctor of ".concat(g," with invalid number of parameters (").concat(t.length,") - expected (").concat(Object.keys(E.constructor_body).toString(),") parameters instead!"));return n.apply(this,t)})),d=Object.create(s,{constructor:{value:c}});c.prototype=d;var E=new me(g,c,d,l,o,a,A,u);E.baseClass&&(null!=(r=E.baseClass).__derivedClasses||(r.__derivedClasses=[]),E.baseClass.__derivedClasses.push(E));var p=new ve(g,E,!0,!1,!1),h=new ve(g+"*",E,!1,!1,!1),I=new ve(g+" const*",E,!1,!0,!1);return ie[e]={pointerType:h,constPointerType:I},function(e,t,r){i.hasOwnProperty(e)||K("Replacing nonexistent public symbol"),void 0!==i[e].overloadTable&&void 0!==r?i[e].overloadTable[r]=t:(i[e]=t,i[e].argCount=r)}(f,c),[p,h,I]}))},x:function(e,t,r,n,o,i){var a=Se(t,r);o=Pe(n,o),Z([],[e],(function(e){e=e[0];var r="constructor ".concat(e.name);if(void 0===e.registeredClass.constructor_body&&(e.registeredClass.constructor_body=[]),void 0!==e.registeredClass.constructor_body[t-1])throw new H("Cannot register multiple constructors with identical number of parameters (".concat(t-1,") for class '").concat(e.name,"'! Overload resolution is currently only performed using the parameter count, not actual type info!"));return e.registeredClass.constructor_body[t-1]=function(){Re("Cannot construct ".concat(e.name," due to unbound types"),a)},Z([],a,(function(n){return n.splice(1,0,null),e.registeredClass.constructor_body[t-1]=ke(r,n,null,o,i),[]})),[]}))},h:function(e,t,r,n,o,i,a,s,A){var c,u,g=Se(r,n);t=X(t),u=(c=(c=t).trim()).indexOf("("),t=-1!==u?c.substr(0,u):c,i=Pe(o,i),Z([],[e],(function(e){e=e[0];var n="".concat(e.name,".").concat(t);function o(){Re("Cannot call ".concat(n," due to unbound types"),g)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]),s&&e.registeredClass.pureVirtualFunctions.push(t);var A=e.registeredClass.instancePrototype,c=A[t];return void 0===c||void 0===c.overloadTable&&c.className!==e.name&&c.argCount===r-2?(o.argCount=r-2,o.className=e.name,A[t]=o):(Ie(A,t,n),A[t].overloadTable[r-2]=o),Z([],g,(function(o){var s=ke(n,o,e,i,a);return void 0===A[t].overloadTable?(s.argCount=r-2,A[t]=s):A[t].overloadTable[r-2]=s,[]})),[]}))},k:function(e,t,r,n,o,i,a,s,A,c){t=X(t),o=Pe(n,o),Z([],[e],(function(e){e=e[0];var n="".concat(e.name,".").concat(t),u={get:function(){Re("Cannot access ".concat(n," due to unbound types"),[r,a])},enumerable:!0,configurable:!0};return u.set=A?function(){return Re("Cannot access ".concat(n," due to unbound types"),[r,a])}:function(e){return J(n+" is a read-only property")},Object.defineProperty(e.registeredClass.instancePrototype,t,u),Z([],A?[r,a]:[r],(function(r){var a=r[0],u={get:function(){var t=Ue(this,e,n+" getter");return a.fromWireType(o(i,t))},enumerable:!0};if(A){A=Pe(s,A);var g=r[1];u.set=function(t){var r=Ue(this,e,n+" setter"),o=[];A(c,r,g.toWireType(o,t)),Fe(o)}}return Object.defineProperty(e.registeredClass.instancePrototype,t,u),[]})),[]}))},t:function(e){return q(e,We)},o:function(e,t,r){q(e,{name:t=X(t),fromWireType:function(e){return e},toWireType:function(e,t){return t},argPackAdvance:8,readValueFromPointer:ze(t,r),destructorFunction:null})},g:function(e,t,r,n,o){t=X(t);var i=function(e){return e};if(0===n){var a=32-8*r;i=function(e){return e<<a>>>a}}var s=t.includes("unsigned");q(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:Je(t,r,0!==n),destructorFunction:null})},a:function(e,t,r){var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];function o(e){var t=B[e>>2],r=B[e+4>>2];return new n(m.buffer,r,t)}q(e,{name:r=X(r),fromWireType:o,argPackAdvance:8,readValueFromPointer:o},{ignoreDuplicateRegistrations:!0})},n:function(e,t){var r="std::string"===(t=X(t));q(e,{name:t,fromWireType:function(e){var t,n,o,i=B[e>>2],a=e+4;if(r)for(var s=a,A=0;A<=i;++A){var c=a+A;if(A==i||0==y[c]){var u=(o=c-s,(n=s)?Ze(y,n,o):"");void 0===t?t=u:(t+=String.fromCharCode(0),t+=u),s=c+1}}else{var g=new Array(i);for(A=0;A<i;++A)g[A]=String.fromCharCode(y[a+A]);t=g.join("")}return pt(e),t},toWireType:function(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||J("Cannot pass non-string to std::string"),n=r&&o?function(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=ft(4+n+1),a=i+4;if(B[i>>2]=n,r&&o)!function(e,t,r,n){if(!(n>0))return 0;for(var o=r+n-1,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)),a<=127){if(r>=o)break;t[r++]=a}else if(a<=2047){if(r+1>=o)break;t[r++]=192|a>>6,t[r++]=128|63&a}else if(a<=65535){if(r+2>=o)break;t[r++]=224|a>>12,t[r++]=128|a>>6&63,t[r++]=128|63&a}else{if(r+3>=o)break;t[r++]=240|a>>18,t[r++]=128|a>>12&63,t[r++]=128|a>>6&63,t[r++]=128|63&a}}t[r]=0}(t,y,a,n+1);else if(o)for(var s=0;s<n;++s){var A=t.charCodeAt(s);A>255&&(pt(a),J("String has UTF-16 code units that do not fit in 8 bits")),y[a+s]=A}else for(s=0;s<n;++s)y[a+s]=t[s];return null!==e&&e.push(pt,i),i},argPackAdvance:8,readValueFromPointer:Be,destructorFunction:function(e){pt(e)}})},l:function(e,t,r){var n,o,i,a;r=X(r),2===t?(n=$e,o=et,a=tt,i=function(e){return w[e>>1]}):4===t&&(n=rt,o=nt,a=ot,i=function(e){return B[e>>2]}),q(e,{name:r,fromWireType:function(e){for(var r,o=B[e>>2],a=e+4,s=0;s<=o;++s){var A=e+4+s*t;if(s==o||0==i(A)){var c=n(a,A-a);void 0===r?r=c:(r+=String.fromCharCode(0),r+=c),a=A+t}}return pt(e),r},toWireType:function(e,n){"string"!=typeof n&&J("Cannot pass non-string to C++ string type ".concat(r));var i=a(n),s=ft(4+i+t);return B[s>>2]=i/t,o(n,s+4,i+t),null!==e&&e.push(pt,s),s},argPackAdvance:8,readValueFromPointer:Be,destructorFunction:function(e){pt(e)}})},v:function(e,t){q(e,{isVoid:!0,name:t=X(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(e,t){}})},s:function(e,t,r){return y.copyWithin(e,t,t+r)},j:function(e,t,r){return e=Xe.toValue(e),t=it(t,"emval::as"),at(t,r,e)},e:function(e,t,r,n,o){var i,a;return(e=At[e])(t=Xe.toValue(t),t[r=void 0===(a=st[i=r])?X(i):a],n,o)},c:Ge,f:function(e,t,r){var n=function(e,t){for(var r=new Array(e),n=0;n<e;++n)r[n]=it(B[t+4*n>>2],"parameter "+n);return r}(e,t),o=n.shift();e--;var i,a,s=new Array(e),A="methodCaller<(".concat(n.map((function(e){return e.name})).join(", "),") => ").concat(o.name,">");return i=he(A,(function(t,i,a,A){for(var c=0,u=0;u<e;++u)s[u]=n[u].readValueFromPointer(A+c),c+=n[u].argPackAdvance;var g=1===r?ct(i,s):i.apply(t,s);return at(o,a,g)})),a=At.length,At.push(i),a},d:function(e){e>9&&(He[e+1]+=1)},b:function(e){var t=Xe.toValue(e);Fe(t),Ge(e)},i:function(e,t){var r=(e=it(e,"_emval_take_value")).readValueFromPointer(t);return Xe.toHandle(r)},r:function(e){y.length,S("OOM")},m:function(e,t,r,n){for(var o,i,a,s=0,A=0;A<r;A++){var c=B[t>>2],u=B[t+4>>2];t+=8;for(var g=0;g<u;g++)o=e,i=y[c+g],a=void 0,a=ut[o],0===i||10===i?((1===o?f:p)(Ze(a,0)),a.length=0):a.push(i);s+=u}return B[n>>2]=s,0}},lt=function(){var e,r={a:dt};function n(e,t){var r,n;return lt=e.exports,d=lt.z,r=d.buffer,i.HEAP8=m=new Int8Array(r),i.HEAP16=C=new Int16Array(r),i.HEAPU8=y=new Uint8Array(r),i.HEAPU16=w=new Uint16Array(r),i.HEAP32=_=new Int32Array(r),i.HEAPU32=B=new Uint32Array(r),i.HEAPF32=v=new Float32Array(r),i.HEAPF64=D=new Float64Array(r),De=lt.C,n=lt.A,Q.unshift(n),function(){var e;if(P--,null==(e=i.monitorRunDependencies)||e.call(i,P),0==P&&M){var t=M;M=null,t()}}(),lt}if(P++,null==(e=i.monitorRunDependencies)||e.call(i,P),i.instantiateWasm)try{return i.instantiateWasm(r,n)}catch(e){p("Module.instantiateWasm callback failed with error: ".concat(e)),t(e)}return F||(F="data:application/octet-stream;base64,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Ay0AASIARQ0BIAJBAWohAiADQQFqIQMgACABRg0ACwsgACABRgtrAQF/IwBBgAJrIgUkAAJAIAIgA0wNACAEQYDABHENACAFIAEgAiADayIDQYACIANBgAJJIgEbECQaIAFFBEADQCAAIAVBgAIQHSADQYACayIDQf8BSw0ACwsgACAFIAMQHQsgBUGAAmokAAvlAwEFfyMAQRBrIgMkACADIAAoAgAiBEEIaygCACICNgIMIAMgACACajYCBCADIARBBGsoAgA2AgggAygCCCIEIAFBABAeIQIgAygCBCEFAkAgAgRAIAMoAgwhACMAQUBqIgEkACABQUBrJABBACAFIAAbIQIMAQsjAEFAaiICJAAgACAFTgRAIAJCADcCHCACQgA3AiQgAkIANwIsIAJCADcCFCACQQA2AhAgAiABNgIMIAIgBDYCBCACQQA2AjwgAkKBgICAgICAgAE3AjQgAiAANgIIIAQgAkEEaiAFIAVBAUEAIAQoAgAoAhQRCQAgAEEAIAIoAhwbIQYLIAJBQGskACAGIgINACMAQUBqIgIkACACQQA2AhAgAkGsxgA2AgwgAiAANgIIIAIgATYCBEEAIQAgAkEUakEAQScQJBogAkEANgI8IAJBAToAOyAEIAJBBGogBUEBQQAgBCgCACgCGBEIAAJAAkACQCACKAIoDgIAAQILIAIoAhhBACACKAIkQQFGG0EAIAIoAiBBAUYbQQAgAigCLEEBRhshAAwBCyACKAIcQQFHBEAgAigCLA0BIAIoAiBBAUcNASACKAIkQQFHDQELIAIoAhQhAAsgAkFAayQAIAAhAgsgA0EQaiQAIAILtAEBBX8jAEEQayIGJAAgBkEEaiICEEEjAEEQayIFJAACfyACLQALQQd2BEAgAigCBAwBCyACLQALQf8AcQshBANAAkACfyACLQALQQd2BEAgAigCAAwBCyACCyEDIAUgATkDACACAn8gAyAEQQFqIAUQRyIDQQBOBEAgAyAETQ0CIAMMAQsgBEEBdEEBcgsiBBAtDAELCyACIAMQLSAAIAIQQCAFQRBqJAAgAhBEIAZBEGokAAuABAEDfyACQYAETwRAIAAgASACEBIgAA8LIAAgAmohAwJAIAAgAXNBA3FFBEACQCAAQQNxRQRAIAAhAgwBCyACRQRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAkEDcUUNASACIANJDQALCwJAIANBfHEiBEHAAEkNACACIARBQGoiBUsNAANAIAIgASgCADYCACACIAEoAgQ2AgQgAiABKAIINgIIIAIgASgCDDYCDCACIAEoAhA2AhAgAiABKAIUNgIUIAIgASgCGDYCGCACIAEoAhw2AhwgAiABKAIgNgIgIAIgASgCJDYCJCACIAEoAig2AiggAiABKAIsNgIsIAIgASgCMDYCMCACIAEoAjQ2AjQgAiABKAI4NgI4IAIgASgCPDYCPCABQUBrIQEgAkFAayICIAVNDQALCyACIARPDQEDQCACIAEoAgA2AgAgAUEEaiEBIAJBBGoiAiAESQ0ACwwBCyADQQRJBEAgACECDAELIAAgA0EEayIESwRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAiABLQABOgABIAIgAS0AAjoAAiACIAEtAAM6AAMgAUEEaiEBIAJBBGoiAiAETQ0ACwsgAiADSQRAA0AgAiABLQAAOgAAIAFBAWohASACQQFqIgIgA0cNAAsLIAALCwAgASACIAAQRRoL8gICAn8BfgJAIAJFDQAgACABOgAAIAAgAmoiA0EBayABOgAAIAJBA0kNACAAIAE6AAIgACABOgABIANBA2sgAToAACADQQJrIAE6AAAgAkEHSQ0AIAAgAToAAyADQQRrIAE6AAAgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBBGsgATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQQhrIAE2AgAgAkEMayABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkEQayABNgIAIAJBFGsgATYCACACQRhrIAE2AgAgAkEcayABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa1CgYCAgBB+IQUgAyAEaiEBA0AgASAFNwMYIAEgBTcDECABIAU3AwggASAFNwMAIAFBIGohASACQSBrIgJBH0sNAAsLIAALEgAgAUEBdEHAxABqQQIgABBFC60CAQd/An8gARAqIQMjAEEQayIGJAACfyAALQALQQd2BEAgACgCBAwBCyAALQALQf8AcQsiBEEATwRAAkAgAyAALQAL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eHEgBCgCCEH/////B3FyNgIIIAAgACgCCEGAgICAeHI2AgggBEEQaiQADAELECcACyAAIAE2AgQLIAECfyAALQALQQd2BEAgACgCAAwBCyAACyICaiAFEEMgACABIAVqIgAQMSAGQQA6AA8gACACaiAGLQAPOgAACyAGQRBqJAAPCwJ/IAAtAAtBB3YEQCAAKAIADAELIAALIQQjAEEQayICJAACfyAALQALQQd2BEAgACgCBAwBCyAALQALCxogACABEDEgAkEAOgAPIAEgBGogAi0ADzoAACACQRBqJAALPQEBfyMAQRBrIgIkACACQQA6AA8DQCABBEAgACACLQAPOgAAIAFBAWshASAAQQFqIQAMAQsLIAJBEGokAAsaACAALQALQQd2BEAgACgCCBogACgCABAZCwvmAQEFfyMAQRBrIgUkACMAQSBrIgMkACMAQRBrIgQkACAEIAA2AgwgBCAAIAFqNgIIIAMgBCgCDDYCGCADIAQoAgg2AhwgBEEQaiQAIAMoAhghBCADKAIcIQYjAEEQayIBJAAgASAGNgIMIAIgBCAGIARrIgQQNiABIAIgBGo2AgggAyABKAIMNgIQIAMgASgCCDYCFCABQRBqJAAgAyAAIAMoAhAgAGtqNgIMIAMgAiADKAIUIAJrajYCCCAFIAMoAgw2AgggBSADKAIINgIMIANBIGokACAFKAIMIQcgBUEQaiQAIAcL8wIBBX8jAEEQayIHJAAgAiABQX9zQff///8Hak0EQAJ/IAAtAAtBB3YEQCAAKAIADAELIAALIQggB0EEaiIJIAFB8////wNJBH8gByABQQF0NgIMIAcgASACajYCBCMAQRBrIgIkACAJKAIAIAdBDGoiCigCAEkhCyACQRBqJAAgCiAJIAsbKAIAIgJBC08EfyACQQhqQXhxIgIgAkEBayICIAJBC0YbBUEKC0EBagVB9////wcLEDAgBygCBCECIAcoAggaIAQEQCACIAggBBAjCyAFBEAgAiAEaiAGIAUQIwsgAyAEayEGIAMgBEcEQCACIARqIAVqIAQgCGogBhAjCyABQQpHBEAgCBAZCyAAIAI2AgAgACAAKAIIQYCAgIB4cSAHKAIIQf////8HcXI2AgggACAAKAIIQYCAgIB4cjYCCCAAIAQgBWogBmoiADYCBCAHQQA6AAwgACACaiAH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IwBBEGsiAiQAQcQAEBwhASAAKAIEIgBBCU8EQCAAEAMLIAIgADYCCCABQZQnIAJBCGoQCDYCBCABQaTPADYCACABQQI2AhwgAUGkzwA2AhggAUECNgIUIAFBpM8ANgIQIAFBAjYCDCABQaTPADYCCCABQQA6ACAgAUKAgICAMDcCPCABQQA7ADcgAUEAOwArIAJBEGokACABC54FAgZ+BH8gASABKAIAQQdqQXhxIgFBEGo2AgAgACELIAEpAwAhAyABKQMIIQcjAEEgayIBJAAgB0L///////8/gyEFAn4gB0IwiEL//wGDIgSnIglBgfgAa0H9D00EQCAFQgSGIANCPIiEIQIgCUGA+ABrrSEEAkAgA0L//////////w+DIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILQgAgAiACQv////////8HViIAGyECIACtIAR8DAELAkAgAyAFhFANACAEQv//AVINACAFQgSGIANCPIiEQoCAgICAgIAEhCECQv8PDAELQv8PIAlB/ocBSw0AGkIAQYD4AEGB+AAgBFAiCBsiCiAJayIAQfAASg0AGiADIQIgBSAFQoCAgICAgMAAhCAIGyIEIQYCQEGAASAAayIIQcAAcQRAIAIgCEFAaq2GIQZCACECDAELIAhFDQAgBiAIrSIFhiACQcAAIAhrrYiEIQYgAiAFhiECCyABIAI3AxAgASAGNwMYAkAgAEHAAHEEQCAEIABBQGqtiCEDQgAhBAwBCyAARQ0AIARBwAAgAGuthiADIACtIgKIhCEDIAQgAoghBAsgASADNwMAIAEgBDcDCCABKQMIQgSGIAEpAwAiA0I8iIQhAgJAIAkgCkcgASkDECABKQMYhEIAUnGtIANC//////////8Pg4QiA0KBgICAgICAgAhaBEAgAkIBfCECDAELIANCgICAgICAgIAIUg0AIAJCAYMgAnwhAgsgAkKAgICAgICACIUgAiACQv////////8HViIAGyECIACtCyEDIAFBIGokACALIAdCgICAgICAgICAf4MgA0I0hoQgAoS/OQMAC0MBAn8jAEEQayICJAAgAiABNgIMIAJBpM8ANgIIIAJBCGogABEBACEDIAIoAgwiAUEJTwRAIAEQAgsgAkEQaiQAIAMLBABCAAsE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IgdBAEgiAxsgBSgCCCAHIAMbEBsiAygCCDYCcCAFIAMpAgA3A2ggA0IANwIAIANBADYCCCAFIAVB6ABqQasREBoiAygCCDYCgAEgBSADKQIANwN4IANCADcCACADQQA2AgggBUGIAWogBSgCeCAFQfgAaiAFLACDASIHQQBIIgMbIAUoAnwgByADGxAbGiAFLACDAUEASARAIAUoAngQGQsgBSwAc0EASARAIAUoAmgQGQsgBSwAD0EASARAIAUoAgQQGQsgBSwAY0EASARAIAUoAlgQGQsgBSwAU0EASARAIAUoAkgQGQsgBSwAG0EASARAIAUoAhAQGQsgBSwAQ0EASARAIAUoAjgQGQsgBSwAM0EASARAIAUoAigQGQsgBSwAJ0EATg0AIAUoAhwQGQsgAkEBaiICQQdHDQALIAlBAWoiCUEHRw0ACyMAQRBrIggkAEHzHxAqIQwCfyAFQYgBaiILLQALQQd2BEAgCygCBAwBCyALLQALQf8AcQshBgJ/An8jAEEQayIHJAAgBUH4AGohCiAGIAxqIglB9////wdNBEACQCAJQQtJBEAgCkIANwIAIApBADYCCCAKIAotAAtBgAFxIAlB/wBxcjoACyAKIAotAAtB/wBxOgALDAELIAlBC08EfyAJQQhqQXhxIgIgAkEBayICIAJBC0YbBUEKC0EBaiIDEBwhAiAKIAooAghBgICAgHhxIANB/////wdxcjYCCCAKIAooAghBgICAgHhyNgIIIAogAjYCACAKIAk2AgQLIAdBEGokACAKDAELECcACyICLQALQQd2BEAgAigCAAwBCyACCyICQfMfIAwQIyACIAxqIgICfyALLQALQQd2BEAgCygCAAwBCyALCyAGECMgAiAGakEBEEMgCEEQaiQAIA0gCkHNIxAaIgIpAgA3AgAgDSACKAIINgIIIAJCADcCACACQQA2AgggBSwAgwFBAEgEQCAFKAJ4EBkLIAUsAJMBQQBIBEAgBSgCiAEQGQsgBSgClAEiBwRAIAUoApgBIgMgByICRwRAA0AgA0EMayICKAIAIggEQCADQQhrIAg2AgAgCBAZCyACIgMgB0cNAAsgBSgClAEhAgsgBSAHNgKYASACEBkLIAVBoAFqJAAgBEEwaiAEKAIgIA0gBCwAKyIDQQBIIgIbIAQoAiQgAyACGxAbGiAELAAr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AAsLvUQWAEGACAukH3NldEJlYXV0eQAtKyAgIDBYMHgALTBYKzBYIDBYLTB4KzB4IDB4AHVuc2lnbmVkIHNob3J0AHVuc2lnbmVkIGludABpbml0AGZsb2F0AHVpbnQ2NF90AGJsdXJSYWRpdXMAdmVjdG9yAG1pcnJvcgBhdHRhY2hTaGFkZXIAZGVsZXRlU2hhZGVyAGNyZWF0ZVNoYWRlcgBjb21waWxlU2hhZGVyAHVuc2lnbmVkIGNoYXIAc3RkOjpleGNlcHRpb24AbmFuAGxpbmtQcm9ncmFtAGRlbGV0ZVByb2dyYW0AY3JlYXRlUHJvZ3JhbQBib29sAHNldFdhdGVyTWFyawBzdG9wV2F0ZXJNYXJrAHVuc2lnbmVkIGxvbmcAc3RkOjp3c3RyaW5nAGJhc2ljX3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBpbmYAJWYAY2xvc2UAZG91YmxlAHZiTW9kZQBzaGFkZXJTb3VyY2UAdm9pZABzYW1wbGVDb2xvciArPSB0ZXh0dXJlKGZyYW1lLCBibHVyQ29vcmRpbmF0ZXNbAE5BTgBJTkYAZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZmxvYXQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ2NF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ2NF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVkIGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGRvdWJsZT4AdmVjMiBjID0gdl90ZXhDb29yZDsAdmVjMiBjID0gdmVjMigxLjAgLSB2X3RleENvb3JkLngsIHZfdGV4Q29vcmQueSk7AEFsbEluMQAuAC4wLAAuMCkqbykqAChudWxsKQApKm8ueSk7ICAgIHZlYzIgY29vcmQyID0gdmVjMihmbG9hdCgAICAgIGMgPSB2ZWMyKHZfdGV4Q29vcmQueCwgMS4wIC0gdl90ZXhDb29yZC55KTsgICAgdmVjMiBjb29yZDEgPSB2ZWMyKGZsb2F0KAApLCAoYy55IC1jb29yZDEueSkgLyBvLnkgLyBmbG9hdCgAKSpvLnkpOyAgICBpZiAoYy54ID4gY29vcmQxLnggJiYgYy54IDwgY29vcmQyLnggJiYgYy55ID4gY29vcmQxLnkgJiYgYy55IDwgY29vcmQyLnkpIHsgICAgICB2ZWM0IHdhdGVyQ29sb3IgPSB0ZXh0dXJlKHdhdGVyTWFyaywgdmVjMigoYy54IC0gY29vcmQxLngpICAvIG8ueCAvIGZsb2F0KAApICogby54LCBmbG9hdCgAb3V0Q29sb3IucmdiICs9IHZlYzMoACk7ICAgICAgIHZlYzMgc21vb3RoQ29sb3IgPSBvdXRDb2xvci5yZ2IgKyAob3V0Q29sb3IucmdiLXZlYzMoaGlnaFBhc3MpKSphbHBoYSowLjE7ICAgICAgIHNtb290aENvbG9yID0gY2xhbXAocG93KHNtb290aENvbG9yLCB2ZWMzKABnKz1HKGMsdmVjMigAICAgICAgdmVjMiBvZmZzZXQgPSB2ZWMyKABdID0gdl90ZXhDb29yZC54eSArIG9mZnNldCAqIHZlYzIoADsgACkpLCB2ZWMzKDAuMCksIHZlYzMoMS4wKSk7ICAgICAgdmVjMyBzY3JlZW4gPSB2ZWMzKDEuMCkgLSAodmVjMygxLjApLXNtb290aENvbG9yKSAqICh2ZWMzKDEuMCktb3V0Q29sb3IucmdiKTsgICAgICAgdmVjMyBsaWdodGVuID0gbWF4KHNtb290aENvbG9yLCBvdXRDb2xvci5yZ2IpOyAgICAgICB2ZWMzIGJlYXV0eUNvbG9yID0gbWl4KG1peChvdXRDb2xvci5yZ2IsIHNjcmVlbiwgYWxwaGEpLCBsaWdodGVuLCBhbHBoYSk7ICAgICAgb3V0Q29sb3IucmdiID0gbWl4KG91dENvbG9yLnJnYiwgYmVhdXR5Q29sb3IsIAAKICAgICAgY29uc3QgbWF0MyBzYXR1cmF0ZU1hdHJpeCA9IG1hdDMoMS4xMTAyLC0wLjA1OTgsLTAuMDYxLC0wLjA3NzQsMS4wODI2LC0wLjExODYsLTAuMDIyOCwtMC4wMjI4LDEuMTc3Mik7CiAgICAgIHZlYzMgd2FybUNvbG9yID0gb3V0Q29sb3IucmdiICogc2F0dXJhdGVNYXRyaXg7CiAgICAgIG91dENvbG9yLnJnYiA9IG1peChvdXRDb2xvci5yZ2IsIHdhcm1Db2xvciwgACAgICAgIHNhbXBsZUNvbG9yID0gc2FtcGxlQ29sb3IgLyA2Mi4wOyAgICAgICBmbG9hdCBoaWdoUGFzcyA9IG91dENvbG9yLmcgLSBzYW1wbGVDb2xvciArIDAuNTsgICAgICAgY29uc3QgaGlnaHAgdmVjMyBXID0gdmVjMygwLjI5OSwwLjU4NywwLjExNCk7ICAgICAgZmxvYXQgbHVtaW5hbmNlID0gZG90KG91dENvbG9yLnJnYiwgVyk7ICAgICAgIGZsb2F0IGFscGhhID0gcG93KGx1bWluYW5jZSwgAF0pLmcgKiAAKSkpOyAgICAgIG91dENvbG9yID0gbWl4KG91dENvbG9yLHdhdGVyQ29sb3IsICB3YXRlckNvbG9yLmEpOyAgICB9ICAgIAApOyAgICAAKTsgICAgICB2ZWMyIGJsdXJDb29yZGluYXRlc1syNF07ICAgICAgACAgICAgIGZsb2F0IHNhbXBsZUNvbG9yID0gb3V0Q29sb3IuZyAqIDIyLjA7ICAgICAgIAAjdmVyc2lvbiAzMDAgZXMKICAgIHByZWNpc2lvbiBoaWdocCBmbG9hdDsKICAgIHVuaWZvcm0gc2FtcGxlcjJEIGZyYW1lOwogICAgdW5pZm9ybSBzYW1wbGVyMkQgbWFzazsKICAgIHVuaWZvcm0gc2FtcGxlcjJEIGJnOwogICAgdW5pZm9ybSBzYW1wbGVyMkQgd2F0ZXJNYXJrOwogICAgdW5pZm9ybSBzYW1wbGVyMkQgbGFzdE1hc2s7CiAgICBpbiB2ZWMyIHZfdGV4Q29vcmQ7CiAgICBvdXQgdmVjNCBvdXRDb2xvcjsKICAgIHZlYzQgRyh2ZWMyIGMsdmVjMiBzKXsKICAgICAgcmV0dXJuIHRleHR1cmUoZnJhbWUsdGV4dHVyZShtYXNrLGMrcykuYT4wLjM/YzpjK3MpOwogICAgfQogICAgdm9pZCBtYWluKCkgewogICAgICAACiAgICB2ZWM0IGcgPSB2ZWM0KDAuMCk7CiAgICAACiAgICAgIGMueSA9IDEuMCAtIGMueTsKICAgICAgdmVjNCBzcmNfY29sb3IgPSB0ZXh0dXJlKGZyYW1lLCBjKTsKICAgICAgZmxvYXQgYSA9IHRleHR1cmUobWFzaywgYykuYTsKICAgICAgYSA9IGE8MC41PzIuMCphKmE6MS4wLTIuMCooMS4wLWEpKigxLjAtYSk7CiAgICAgIC8vIGZsb2F0IGEyID0gdGV4dHVyZShsYXN0TWFzaywgYykuYTsKICAgICAgLy8gYTIgPSBhMjwwLjU/Mi4wKmEyKmEyOjEuMC0yLjAqKDEuMC1hMikqKDEuMC1hMik7CiAgICAgIC8vIGZsb2F0IGRlbHRhID0gYSAtIGEyOwogICAgICAvLyBpZiAoZGVsdGEgPCAwLjI1ICYmIGRlbHRhID4gLTAuMjUpCiAgICAgIC8vIHsKICAgICAgLy8gICAgIGEgPSBhICsgMC41KmRlbHRhOwogICAgICAvLyB9CiAgICAgIAogICAgICB2ZWMyIG8gPSAxLjAgLyB2ZWMyKHRleHR1cmVTaXplKGZyYW1lLCAwKSk7CiAgICAACiAgICAgIG91dENvbG9yID0gZzsKICAAI3ZlcnNpb24gMzAwIGVzCmluIHZlYzIgYV9wb3NpdGlvbjsKaW4gdmVjMiBhX3RleENvb3JkOwpvdXQgdmVjMiB2X3RleENvb3JkOwp2b2lkIG1haW4oKSB7CiAgZ2xfUG9zaXRpb24gPSB2ZWM0KGFfcG9zaXRpb24ueCwgYV9wb3NpdGlvbi55LCAwLCAxKTsKICB2X3RleENvb3JkID0gYV90ZXhDb29yZDsKfQoAc2V0QmVhdXR5ICVmICVmICVmICVmICVmCgBvdXRDb2xvciA9IHNyY19jb2xvcjsKAG91dENvbG9yID0gbWl4KHRleHR1cmUoYmcsIGMpLHNyY19jb2xvcixhKTsKAG91dENvbG9yID0gbWl4KHZlYzQoMC4wLDEuMCwwLjAsMS4wKSxzcmNfY29sb3IsYSk7CgA2QWxsSW4xAFAlAAAoEwAAUDZBbGxJbjEAAAAA1CUAADgTAAAAAAAAMBMAAFBLNkFsbEluMQAAANQlAABUEwAAAQAAADATAABwcAB2AHZwAEQTAACUEwAATjEwZW1zY3JpcHRlbjN2YWxFAABQJQAAgBMAAHBwcAB2cHBwAEGwJwskjCQAAEQTAABAJQAAQCUAAEAlAABAJQAAQCUAAHZwcGRkZGRkAEHgJwvICIwkAABEEwAAQCUAAEAlAABAJQAAQCUAAHZwcGRkZGQAjCQAAEQTAAB2cHAAjCQAAJQTAACUEwAARBMAAJQTAADsJAAAjCQAAJQTAABwFAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUAAFAlAAAwFAAAlBMAAIwkAACUEwAAlBMAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0loTlNfMTFjaGFyX3RyYWl0c0loRUVOU185YWxsb2NhdG9ySWhFRUVFAABQJQAAiBQAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0l3TlNfMTFjaGFyX3RyYWl0c0l3RUVOU185YWxsb2NhdG9ySXdFRUVFAABQJQAA0BQAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0lEc05TXzExY2hhcl90cmFpdHNJRHNFRU5TXzlhbGxvY2F0b3JJRHNFRUVFAAAAUCUAABgVAABOU3QzX18yMTJiYXNpY19zdHJpbmdJRGlOU18xMWNoYXJfdHJhaXRzSURpRUVO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"),j(0,F,r,(function(e){n(e.instance)})).catch(t),{}}(),ft=function(e){return(ft=lt.B)(e)},Et=function(e){return(Et=lt.D)(e)},pt=function(e){return(pt=lt.E)(e)},ht=function(e){return(ht=lt.F)(e)};function It(){function t(){gt||(gt=!0,i.calledRun=!0,b||(U(Q),e(i),i.onRuntimeInitialized&&i.onRuntimeInitialized(),function(){if(i.postRun)for("function"==typeof i.postRun&&(i.postRun=[i.postRun]);i.postRun.length;)e=i.postRun.shift(),T.unshift(e);var e;U(T)}()))}P>0||(function(){if(i.preRun)for("function"==typeof i.preRun&&(i.preRun=[i.preRun]);i.preRun.length;)e=i.preRun.shift(),O.unshift(e);var e;U(O)}(),P>0||(i.setStatus?(i.setStatus("Running..."),setTimeout((function(){setTimeout((function(){i.setStatus("")}),1),t()}),1)):t()))}if(i.dynCall_jiji=function(e,t,r,n,o){return(i.dynCall_jiji=lt.G)(e,t,r,n,o)},i._vertexShaderSource=9872,M=function e(){gt||It(),gt||(M=e)},i.preInit)for("function"==typeof i.preInit&&(i.preInit=[i.preInit]);i.preInit.length>0;)i.preInit.pop()();return It(),s}),j=N,U=function(){return a((function e(t,r){var n=this;o(this,e),b(this,"canvas"),b(this,"locateFile"),b(this,"_glName"),b(this,"_solutionWasm"),b(this,"ctx"),b(this,"fileDownloader"),b(this,"startTime"),b(this,"lastTimestamp"),b(this,"pl",{onResults:function(e){return n.onResults(e.get(0).glName)}}),this.locateFile=function(e){return"".concat(t,"/").concat(e).replace(/([^:]\/)\/+/g,"$1")},this.fileDownloader=r}),[{key:"bindTexture",value:function(){var e;null==(e=this.ctx)||e.activeTexture(this.ctx.TEXTURE0),this.bindTexture2d(this._glName)}},{key:"initialize",value:(t=r(u().mark((function e(){var t,r;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this._solutionWasm=new this.SolutionWasm,(t=new this.StringList).push_back("segmentation_mask"),r=this.PacketListener.implement(this.pl),this._solutionWasm.attachMultiListener(t,r),t.delete(),e.t0=this._solutionWasm,e.next=9,this.fileDownloader.download(this.locateFile("selfie_segmentation.binarypb"),{type:"arraybuffer"});case 9:return e.t1=e.sent,e.t0.loadGraph.call(e.t0,e.t1),e.abrupt("return",this);case 12:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"setCanvas",value:function(e){this.canvas=e,this.createContext(e,!0,!0,{}),this._glName=this.createTexture()}},{key:"fetchResponse",value:function(e){return this.fileDownloader.downloadWithFetch(e,"fetch-response")}},{key:"loadWasm",value:function(e,t){return this.fileDownloader.loadWasm(e,t)}},{key:"changeModel",value:(e=r(u().mark((function e(){var t,r,n=arguments;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("string"!=typeof(t=n.length>0&&void 0!==n[0]?n[0]:"selfie_segmentation_landscape.tflite")){e.next=7;break}return e.next=4,this.fileDownloader.download(this.locateFile(t),{type:"arraybuffer"});case 4:e.t0=e.sent,e.next=8;break;case 7:e.t0=t;case 8:t=e.t0,this._solutionWasm.overrideFile("third_party/mediapipe/modules/selfie_segmentation/selfie_segmentation_landscape.tflite",t),(r=new this.GraphOptionChangeRequestList).push_back({calculatorIndex:1,calculatorName:"",calculatorType:"GlScalerCalculator",fieldName:"flip_horizontal",valueBoolean:!1,valueNumber:0,valueString:""}),r.push_back({calculatorIndex:0,calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorModelSelection",fieldName:"int_value",valueBoolean:!1,valueNumber:1,valueString:""}),r.push_back({calculatorIndex:0,calculatorType:"InferenceCalculator",calculatorName:"",fieldName:"use_cpu_inference",valueBoolean:!1,valueNumber:0,valueString:""}),this._solutionWasm.changeOptions(r),this.startTime=Date.now();case 16:case"end":return e.stop()}}),e,this)}))),function(){return e.apply(this,arguments)})},{key:"send",value:function(e,t){var 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()}},{key:"close",value:function(){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(var n=0,o=Object.keys(this);n<o.length;n++){delete this[o[n]]}}}]);var e,t}(),L="undefined"==typeof navigator?"":navigator.userAgent,H=function(e){return new RegExp(e,"i").test(L)},G=function(e){if(H(e)){var t=new RegExp("".concat(e,"\\/([\\d.]+)")),r=L.match(t);if(r&&r[1])return r[1]}return""},Y=function(e){if(H(e)){var t=new RegExp("".concat(e,"\\/(\\d+)")),r=L.match(t);if(r&&r[1])return parseFloat(r[1])}return NaN},X=/AppleWebKit\/([\d.]+)/i.exec(L);X&&parseFloat(X[1]);var W=H("iPad"),V="undefined"!=typeof navigator&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&H("Macintosh"),z=H("iPhone")&&!W,J=H("iPod"),K=z||W||J||V,Z=H("Android");!function(){if(Z){var e=L.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(e){var t=e[1]&&parseFloat(e[1]),r=e[2]&&parseFloat(e[2]);if(t&&r)return parseFloat("".concat(e[1],".").concat(e[2]));if(t)return t}}}();Z&&H("webkit");var q=H("Firefox"),$=G("Firefox");Y("Firefox");var ee=H("Edge"),te=G("Edge"),re=H("Edg"),ne=G("Edg");Y("Edg");var oe=H("SogouMobileBrowser"),ie=G("SogouMobileBrowser"),ae=H("MetaSr\\s"),se=G("MetaSr\\s"),Ae=H("TBS"),ce=G("TBS"),ue=H("XWEB"),ge=G("XWEB");H("MSIE\\s8\\.0");var de=H("MSIE\\/\\d+");!function(){if(de){var e=/MSIE\s(\d+)\.\d/.exec(L),t=e&&parseFloat(e[1]);return!t&&/Trident\/7.0/i.test(L)&&/rv:11.0/.test(L)&&(t=11),t}}();var le=H("(micromessenger|webbrowser)"),fe=G("MicroMessenger"),Ee=!Ae&&H("MQQBrowser")&&H("COVC"),pe=!Ae&&H("MQQBrowser")&&!H("COVC"),he=pe||Ee?G("MQQBrowser"):"",Ie=!Ae&&H(" QQBrowser"),me=G(" QQBrowser"),ye=!Ae&&H("QQBrowserLite"),Ce=G("QQBrowserLite"),we=!Ae&&H("MQBHD"),_e=G("MQBHD");H("Windows"),!K&&H("MAC OS X"),!Z&&H("Linux"),H("CrOS"),H("MicroMessenger"),H("UCBrowser"),H("Electron");var Be=H("MiuiBrowser"),ve=G("MiuiBrowser"),De=H("HuaweiBrowser");H("Huawei")||H("HUAWEI"),H("Honor")||H("HONOR");var be=G("HuaweiBrowser"),Oe=H("SamsungBrowser"),Qe=G("SamsungBrowser"),Te=H("HeyTapBrowser"),Pe=G("HeyTapBrowser"),Me=H("VivoBrowser"),Re=G("VivoBrowser"),Se=H("Chrome"),Fe=!ee&&!ae&&!oe&&!Ae&&!ue&&!re&&!Ie&&!Be&&!De&&!Oe&&!Te&&!Me&&Se;H("HeadlessChrome");var ke=Y("Chrome"),xe=G("Chrome"),Ne=!Se&&!pe&&!Ee&&!ye&&!we&&H("Safari"),je=G("Version"),Ue=function(){if(V)return je;if(K){var e=L.match(/OS (\d+)_(\d+)/i);if(e&&e[1]){var t=e[1];return e[2]&&(t+=".".concat(e[2])),t}}return""}();Number(Ue.split(".")[0]),Number(Ue.split(".")[0]),function(){var e=new Map([[q,["Firefox",$]],[re,["Edg",ne]],[Fe,["Chrome",xe]],[Ne,["Safari",je]],[Ae,["TBS",ce]],[ue,["XWEB",ge]],[le&&z,["WeChat",fe]],[Ie,["QQ(Win)",me]],[pe,["QQ(Mobile)",he]],[Ee,["QQ(Mobile X5)",he]],[ye,["QQ(Mac)",Ce]],[we,["QQ(iPad)",_e]],[Be,["MI",ve]],[De,["HW",be]],[Oe,["Samsung",Qe]],[Te,["OPPO",Pe]],[Me,["VIVO",Re]],[ee,["EDGE",te]],[oe,["SogouMobile",ie]],[ae,["Sogou",se]]]),t="unknown",r="unknown";if(e.has(!0)){var n=d(e.get(!0),2);t=n[0],r=n[1]}}();var Le=570703,He=0,Ge=function(){function e(t){o(this,e),this.core=t,b(this,"seq"),b(this,"_core"),b(this,"log"),b(this,"preLoadPromise"),b(this,"startResolve"),b(this,"startReject"),b(this,"mediaPipeSolutions"),b(this,"assetsPath"),b(this,"currentType"),b(this,"onAbort"),b(this,"isAborted",!1),He+=1,this.seq=He,this._core=t,this.log=t.log.createChild({id:"".concat(this.getAlias()).concat(He)}),this.log.info("created"),t.assetsPath&&(this.preLoadPromise=this.preload(t.assetsPath))}return a(e,[{key:"preload",value:(s=r(u().mark((function e(){var t,r,n,o,i,a=this,s=arguments;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=s.length>0&&void 0!==s[0]?s[0]:"https://web.sdk.qcloud.com/trtc/webrtc/v5/assets/",e.prev=1,this._core.room.videoManager.Wasm){e.next=6;break}return e.next=5,j();case 5:this._core.room.videoManager.Wasm=e.sent;case 6:return this.assetsPath="".concat(t,"/selfie_segmentation/"),(r=new U(this.assetsPath,this._core.fileDownloader)).onAbort=function(e){var t;a.core.kvStatManager.addEnum({key:Le,value:a.getKVTypeValue(!1,a.isAborted,"ABORT_IN_INFERENCE")}),a.isAborted=!0,a.log.error("mediaPipeSolutions abort",e),a.core.clearStarted(a,a.getGroup()),a.stop(),null==(t=a.onAbort)||t.call(a,e)},r.print=this.log.info.bind(this.log),r.printErr=this.log.warn.bind(this.log),e.next=13,(this.core.rtcDectection.isSIMDSupported()?F:x)(r);case 13:return this.mediaPipeSolutions=e.sent,e.next=16,this.mediaPipeSolutions.initialize();case 16:return e.next=18,this._core.room.videoManager.initVirtualBackground(this.mediaPipeSolutions);case 18:e.next=24;break;case 20:throw e.prev=20,e.t0=e.catch(1),n=this._core.errorModule,o=n.RtcError,i=n.ErrorCode,new o({code:i.INVALID_OPERATION,message:"VirtualBackground preload error, please check your assetsPath. detail: ".concat(e.t0)});case 24:case"end":return e.stop()}}),e,this,[[1,20]])}))),function(){return s.apply(this,arguments)})},{key:"getName",value:function(){return e.Name}},{key:"getAlias",value:function(){return"vb"}},{key:"getValidateRule",value:function(e){switch(e){case"start":return t=this._core,{name:"VirtualBackgroundOptions",type:"object",required:!0,allowEmpty:!1,properties:(r=v({},T),n={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}},m(r,y(n))),validate:function(e,r,n,o){var i,a=t.errorModule,s=a.RtcError,A=a.ErrorCode,c=a.ErrorCodeDictionary;if(e){var u=e.type,g=e.src,d=e.onAbort;if("image"===u&&!g)throw new s({code:A.INVALID_PARAMETER,extraCode:c.INVALID_PARAMETER_REQUIRED,fnName:n,messageParams:{key:"src"}});if(d&&!t.utils.isFunction(d))throw new s({code:A.INVALID_PARAMETER,extraCode:c.INVALID_PARAMETER_TYPE,fnName:n,messageParams:{key:"onAbort",value:E(d),rule:{type:"Function"}}});if(!(null==(i=t.room.videoManager.cameraTrack)?void 0:i.mediaTrack))throw new s({code:A.INVALID_OPERATION,extraCode:c.INVALID_OPERATION_NEED_VIDEO,fnName:n})}}};case"update":return function(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:function(t,r,n,o){if(t){var i=e.errorModule,a=i.RtcError,s=i.ErrorCode,A=i.ErrorCodeDictionary,c=t.type,u=t.src;if("image"===c&&!u)throw new a({code:s.INVALID_PARAMETER,extraCode:A.INVALID_PARAMETER_REQUIRED,fnName:n,messageParams:{key:"src"}})}}}}(this._core);case"stop":return this._core,{name:"StopVirtualBackgroundOptions",required:!1}}var t,r,n}},{key:"getGroup",value:function(){return"vb"}},{key:"getKVTypeValue",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"NONE",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}},{key:"start",value:(i=r(u().mark((function e(t){var r,n,o,i,a,s,A,c,g,d,l,f,E=this;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.type,n=void 0===r?"blur":r,o=t.src,i=t.blurLevel,a=void 0===i?3:i,s=t.onAbort,this.currentType=n,this.onAbort=s,e.next=5,O({sdkAppId:t.sdkAppId,userId:t.userId,userSig:t.userSig,core:this._core});case 5:if(A=e.sent,c=A.auth,A.sign,A.timestamp,c){e.next=12;break}throw g=this._core.errorModule,d=g.RtcError,l=g.ErrorCode,f=g.ErrorCodeDictionary,new d({code:l.SERVER_ERROR,extraCode:f.NEED_TO_BUY,messageParams:{value:"Virtual Background",url:"https://cloud.tencent.com/document/product/647/85386"}});case 12:return this.preLoadPromise||(this.preLoadPromise=this.preload(this._core.assetsPath)),e.next=15,this.preLoadPromise;case 15:return e.abrupt("return",this.core.room.videoManager.setVirtualBackground({type:n,imageUrl:o,blurLevel:a,onAbort:function(e){var t;E.core.kvStatManager.addEnum({key:Le,value:E.getKVTypeValue(!0,E.isAborted,"ABORT_IN_VIDEO_MANAGER")}),E.isAborted=!0,E.core.clearStarted(E,E.getGroup()),E.stop(),delete E.preLoadPromise,null==(t=E.onAbort)||t.call(E,e)}}).then((function(){E.core.kvStatManager.addEnum({key:Le,value:E.getKVTypeValue(!1,E.isAborted,"NONE")})})).catch((function(){E.core.kvStatManager.addEnum({key:Le,value:E.getKVTypeValue(!0,E.isAborted,"OTHER")})})));case 16:case"end":return e.stop()}}),e,this)}))),function(e){return i.apply(this,arguments)})},{key:"update",value:(n=r(u().mark((function e(t){var r,n,o=this;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.type,n=t.src,r!==this.currentType&&(this.currentType=r),e.abrupt("return",this.core.room.videoManager.setVirtualBackground({type:r,imageUrl:n,blurLevel:t.blurLevel}).then((function(){o.core.kvStatManager.addEnum({key:Le,value:o.getKVTypeValue(!1,!1,"NONE")})})).catch((function(){o.core.kvStatManager.addEnum({key:Le,value:o.getKVTypeValue(!0,!1,"OTHER")})})));case 3:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"stop",value:(t=r(u().mark((function e(){return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.core.room.videoManager.setVirtualBackground());case 1:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})}],[{key:"isSupported",value:function(){if(ke<90)return!1;var e=document.createElement("canvas").getContext("webgl2");return!!(e&&e instanceof WebGL2RenderingContext)}}]);var t,n,i,s}();return b(Ge,"Name","VirtualBackground"),Ge}));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).VirtualBackground=t()}(this,(function(){"use strict";function e(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function t(e,t,r,n,o,i,a){try{var s=e[i](a),A=s.value}catch(e){return void r(e)}s.done?t(A):Promise.resolve(A).then(n,o)}function r(e){return function(){var r=this,n=arguments;return new Promise((function(o,i){var a=e.apply(r,n);function s(e){t(a,o,i,s,A,"next",e)}function A(e){t(a,o,i,s,A,"throw",e)}s(void 0)}))}}function n(e,t,r){return t=s(t),function(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,c()?Reflect.construct(t,r||[],s(e).constructor):t.apply(e,r))}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,f(n.key),n)}}function a(e,t,r){return t&&i(e.prototype,t),r&&i(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function s(e){return s=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},s(e)}function A(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&g(e,t)}function c(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(c=function(){return!!e})()}function u(){u=function(){return t};var e,t={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",A=i.toStringTag||"@@toStringTag";function c(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,r){return e[t]=r}}function g(e,t,r,n){var i=t&&t.prototype instanceof I?t:I,a=Object.create(i.prototype),s=new P(n||[]);return o(a,"_invoke",{value:b(e,r,s)}),a}function d(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=g;var l="suspendedStart",f="suspendedYield",E="executing",p="completed",h={};function I(){}function m(){}function y(){}var C={};c(C,a,(function(){return this}));var w=Object.getPrototypeOf,_=w&&w(w(M([])));_&&_!==r&&n.call(_,a)&&(C=_);var B=y.prototype=I.prototype=Object.create(C);function v(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function D(e,t){function r(o,i,a,s){var A=d(e[o],e,i);if("throw"!==A.type){var c=A.arg,u=c.value;return u&&"object"==typeof u&&n.call(u,"__await")?t.resolve(u.__await).then((function(e){r("next",e,a,s)}),(function(e){r("throw",e,a,s)})):t.resolve(u).then((function(e){c.value=e,a(c)}),(function(e){return r("throw",e,a,s)}))}s(A.arg)}var i;o(this,"_invoke",{value:function(e,n){function o(){return new t((function(t,o){r(e,n,t,o)}))}return i=i?i.then(o,o):o()}})}function b(t,r,n){var o=l;return function(i,a){if(o===E)throw Error("Generator is already running");if(o===p){if("throw"===i)throw a;return{value:e,done:!0}}for(n.method=i,n.arg=a;;){var s=n.delegate;if(s){var A=O(s,n);if(A){if(A===h)continue;return A}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===l)throw o=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=E;var c=d(t,r,n);if("normal"===c.type){if(o=n.done?p:f,c.arg===h)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(o=p,n.method="throw",n.arg=c.arg)}}}function O(t,r){var n=r.method,o=t.iterator[n];if(o===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,O(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),h;var i=d(o,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,h;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,h):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,h)}function Q(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function T(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function P(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(Q,this),this.reset(!0)}function M(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function r(){for(;++o<t.length;)if(n.call(t,o))return r.value=t[o],r.done=!1,r;return r.value=e,r.done=!0,r};return i.next=i}}throw new TypeError(typeof t+" is not iterable")}return m.prototype=y,o(B,"constructor",{value:y,configurable:!0}),o(y,"constructor",{value:m,configurable:!0}),m.displayName=c(y,A,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===m||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,y):(e.__proto__=y,c(e,A,"GeneratorFunction")),e.prototype=Object.create(B),e},t.awrap=function(e){return{__await:e}},v(D.prototype),c(D.prototype,s,(function(){return this})),t.AsyncIterator=D,t.async=function(e,r,n,o,i){void 0===i&&(i=Promise);var a=new D(g(e,r,n,o),i);return t.isGeneratorFunction(r)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},v(B),c(B,A,"Generator"),c(B,a,(function(){return this})),c(B,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},t.values=M,P.prototype={constructor:P,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(T),!t)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var r=this;function o(n,o){return s.type="throw",s.arg=t,r.next=n,o&&(r.method="next",r.arg=e),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var A=n.call(a,"catchLoc"),c=n.call(a,"finallyLoc");if(A&&c){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(A){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!c)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,h):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),h},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),T(r),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;T(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:M(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),h}},t}function g(e,t){return g=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},g(e,t)}function d(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,s=[],A=!0,c=!1;try{if(i=(r=r.call(e)).next,0===t);else for(;!(A=(n=i.call(r)).done)&&(s.push(n.value),s.length!==t);A=!0);}catch(e){c=!0,o=e}finally{try{if(!A&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return s}}(e,t)||p(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(t){return function(t){if(Array.isArray(t))return e(t)}(t)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(t)||p(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t);if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e,"string");return"symbol"==typeof t?t:t+""}function E(e){return E="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},E(e)}function p(t,r){if(t){if("string"==typeof t)return e(t,r);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?e(t,r):void 0}}function h(e){var t="function"==typeof Map?new Map:void 0;return h=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return function(e,t,r){if(c())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,t);var o=new(e.bind.apply(e,n));return r&&g(o,r.prototype),o}(e,arguments,s(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),g(r,e)},h(e)}var I=Object.defineProperty,m=Object.defineProperties,y=Object.getOwnPropertyDescriptors,C=Object.getOwnPropertySymbols,w=Object.prototype.hasOwnProperty,_=Object.prototype.propertyIsEnumerable,B=function(e,t,r){return t in e?I(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r},v=function(e,t){for(var r in t||(t={}))w.call(t,r)&&B(e,r,t[r]);if(C){var n,o=function(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=p(e))||t){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}(C(t));try{for(o.s();!(n=o.n()).done;){r=n.value;_.call(t,r)&&B(e,r,t[r])}}catch(e){o.e(e)}finally{o.f()}}return e},D=function(e){return"undefined"!=typeof require?require:"undefined"!=typeof Proxy?new Proxy(e,{get:function(e,t){return("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')})),b=function(e,t,r){return B(e,"symbol"!==E(t)?t+"":t,r)};function O(e){return Q.apply(this,arguments)}function Q(){return(Q=r(u().mark((function e(t){var r,n,o,i,a,s,A,c,g,d,l;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.sdkAppId,n=t.userId,o=t.userSig,i=t.core,s=i.schedule.getAbilityConfigUrl(r),A=Math.round((new Date).getTime()/1e3),c="".concat(s,"?sdkAppId=").concat(r,"&userId=").concat(n,"&userSig=").concat(o,"×tamp=").concat(A),e.prev=4,e.next=7,fetch(c);case 7:return g=e.sent,e.next=10,g.json();case 10:if(d=e.sent,i.log.info("virtual background send ".concat(c,", response: ").concat(JSON.stringify(d))),l=d.data,!(null==(a=null==l?void 0:l.trtcAutoConf)?void 0:a.web_ar)){e.next=15;break}return e.abrupt("return",{auth:!0,timestamp:A});case 15:return e.abrupt("return",{auth:!1});case 18:return e.prev=18,e.t0=e.catch(4),i.log.error("virtual background fetch error",e.t0),e.abrupt("return",{auth:!1});case 22:case"end":return e.stop()}}),e,null,[[4,18]])})))).apply(this,arguments)}var T={sdkAppId:{required:!0,type:"number"},userId:{required:!0,type:"string"},userSig:{required:!0,type:"string"}};var P,M,R,S=(P="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,"undefined"!=typeof __filename&&(P=P||__filename),function(e){var t,r,n=void 0!==(e=e||{})?e:{};n.ready=new Promise((function(e,n){t=e,r=n})),Object.getOwnPropertyDescriptor(n.ready,"_main")||(Object.defineProperty(n.ready,"_main",{configurable:!0,get:function(){we("You are getting _main on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_main",{configurable:!0,set:function(){we("You are setting _main on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_stack_get_end")||(Object.defineProperty(n.ready,"_emscripten_stack_get_end",{configurable:!0,get:function(){we("You are getting _emscripten_stack_get_end on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_stack_get_end",{configurable:!0,set:function(){we("You are setting _emscripten_stack_get_end on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_stack_get_free")||(Object.defineProperty(n.ready,"_emscripten_stack_get_free",{configurable:!0,get:function(){we("You are getting _emscripten_stack_get_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_stack_get_free",{configurable:!0,set:function(){we("You are setting _emscripten_stack_get_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_stack_init")||(Object.defineProperty(n.ready,"_emscripten_stack_init",{configurable:!0,get:function(){we("You are getting _emscripten_stack_init on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_stack_init",{configurable:!0,set:function(){we("You are setting _emscripten_stack_init on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_stackSave")||(Object.defineProperty(n.ready,"_stackSave",{configurable:!0,get:function(){we("You are getting _stackSave on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_stackSave",{configurable:!0,set:function(){we("You are setting _stackSave on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_stackRestore")||(Object.defineProperty(n.ready,"_stackRestore",{configurable:!0,get:function(){we("You are getting _stackRestore on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_stackRestore",{configurable:!0,set:function(){we("You are setting _stackRestore on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_stackAlloc")||(Object.defineProperty(n.ready,"_stackAlloc",{configurable:!0,get:function(){we("You are getting _stackAlloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_stackAlloc",{configurable:!0,set:function(){we("You are setting _stackAlloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___wasm_call_ctors")||(Object.defineProperty(n.ready,"___wasm_call_ctors",{configurable:!0,get:function(){we("You are getting ___wasm_call_ctors on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___wasm_call_ctors",{configurable:!0,set:function(){we("You are setting ___wasm_call_ctors on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_fflush")||(Object.defineProperty(n.ready,"_fflush",{configurable:!0,get:function(){we("You are getting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_fflush",{configurable:!0,set:function(){we("You are setting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___errno_location")||(Object.defineProperty(n.ready,"___errno_location",{configurable:!0,get:function(){we("You are getting ___errno_location on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___errno_location",{configurable:!0,set:function(){we("You are setting ___errno_location on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_malloc")||(Object.defineProperty(n.ready,"_malloc",{configurable:!0,get:function(){we("You are getting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_malloc",{configurable:!0,set:function(){we("You are setting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_free")||(Object.defineProperty(n.ready,"_free",{configurable:!0,get:function(){we("You are getting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_free",{configurable:!0,set:function(){we("You are setting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_setThrew")||(Object.defineProperty(n.ready,"_setThrew",{configurable:!0,get:function(){we("You are getting _setThrew on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_setThrew",{configurable:!0,set:function(){we("You are setting _setThrew on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___cxa_is_pointer_type")||(Object.defineProperty(n.ready,"___cxa_is_pointer_type",{configurable:!0,get:function(){we("You are getting ___cxa_is_pointer_type on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___cxa_is_pointer_type",{configurable:!0,set:function(){we("You are setting ___cxa_is_pointer_type on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___cxa_can_catch")||(Object.defineProperty(n.ready,"___cxa_can_catch",{configurable:!0,get:function(){we("You are getting ___cxa_can_catch on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___cxa_can_catch",{configurable:!0,set:function(){we("You are setting ___cxa_can_catch on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_saveSetjmp")||(Object.defineProperty(n.ready,"_saveSetjmp",{configurable:!0,get:function(){we("You are getting _saveSetjmp on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_saveSetjmp",{configurable:!0,set:function(){we("You are setting _saveSetjmp on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_memalign")||(Object.defineProperty(n.ready,"_memalign",{configurable:!0,get:function(){we("You are getting _memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_memalign",{configurable:!0,set:function(){we("You are setting _memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_main_thread_process_queued_calls")||(Object.defineProperty(n.ready,"_emscripten_main_thread_process_queued_calls",{configurable:!0,get:function(){we("You are getting _emscripten_main_thread_process_queued_calls on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_main_thread_process_queued_calls",{configurable:!0,set:function(){we("You are setting _emscripten_main_thread_process_queued_calls on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_webgl_make_context_current")||(Object.defineProperty(n.ready,"_emscripten_webgl_make_context_current",{configurable:!0,get:function(){we("You are getting _emscripten_webgl_make_context_current on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_webgl_make_context_current",{configurable:!0,set:function(){we("You are setting _emscripten_webgl_make_context_current on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_webgl_get_current_context")||(Object.defineProperty(n.ready,"_emscripten_webgl_get_current_context",{configurable:!0,get:function(){we("You are getting _emscripten_webgl_get_current_context on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_webgl_get_current_context",{configurable:!0,set:function(){we("You are setting _emscripten_webgl_get_current_context on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"__get_tzname")||(Object.defineProperty(n.ready,"__get_tzname",{configurable:!0,get:function(){we("You are getting __get_tzname on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"__get_tzname",{configurable:!0,set:function(){we("You are setting __get_tzname on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"__get_daylight")||(Object.defineProperty(n.ready,"__get_daylight",{configurable:!0,get:function(){we("You are getting __get_daylight on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"__get_daylight",{configurable:!0,set:function(){we("You are setting __get_daylight on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"__get_timezone")||(Object.defineProperty(n.ready,"__get_timezone",{configurable:!0,get:function(){we("You are getting __get_timezone on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"__get_timezone",{configurable:!0,set:function(){we("You are setting __get_timezone on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_builtin_malloc")||(Object.defineProperty(n.ready,"_emscripten_builtin_malloc",{configurable:!0,get:function(){we("You are getting _emscripten_builtin_malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_builtin_malloc",{configurable:!0,set:function(){we("You are setting _emscripten_builtin_malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_builtin_free")||(Object.defineProperty(n.ready,"_emscripten_builtin_free",{configurable:!0,get:function(){we("You are getting _emscripten_builtin_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_builtin_free",{configurable:!0,set:function(){we("You are setting _emscripten_builtin_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_builtin_memalign")||(Object.defineProperty(n.ready,"_emscripten_builtin_memalign",{configurable:!0,get:function(){we("You are getting _emscripten_builtin_memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_builtin_memalign",{configurable:!0,set:function(){we("You are setting _emscripten_builtin_memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___getTypeName")||(Object.defineProperty(n.ready,"___getTypeName",{configurable:!0,get:function(){we("You are getting ___getTypeName on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___getTypeName",{configurable:!0,set:function(){we("You are setting ___getTypeName on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___embind_register_native_and_builtin_types")||(Object.defineProperty(n.ready,"___embind_register_native_and_builtin_types",{configurable:!0,get:function(){we("You are getting ___embind_register_native_and_builtin_types on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___embind_register_native_and_builtin_types",{configurable:!0,set:function(){we("You are setting ___embind_register_native_and_builtin_types on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"onRuntimeInitialized")||(Object.defineProperty(n.ready,"onRuntimeInitialized",{configurable:!0,get:function(){we("You are getting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"onRuntimeInitialized",{configurable:!0,set:function(){we("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 o,i={};for(o in n)n.hasOwnProperty(o)&&(i[o]=n[o]);var a="./this.program",s=function(e,t){throw t},A="object"===("undefined"==typeof window?"undefined":E(window)),c="function"==typeof importScripts,u="object"===("undefined"==typeof process?"undefined":E(process))&&"object"===E(process.versions)&&"string"==typeof process.versions.node,g=!A&&!u&&!c;if(n.ENVIRONMENT)throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -s ENVIRONMENT=web or -s ENVIRONMENT=node)");var d,l,f="";if(!A&&!c)throw new Error("environment detection error");if(c?f=self.location.href:"undefined"!=typeof document&&document.currentScript&&(f=document.currentScript.src),P&&(f=P),f=0!==f.indexOf("blob:")?f.substr(0,f.lastIndexOf("/")+1):"","object"!==("undefined"==typeof window?"undefined":E(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?)");d=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},l=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 p=n.print||console.log.bind(console),h=n.printErr||console.warn.bind(console);for(o in i)i.hasOwnProperty(o)&&(n[o]=i[o]);function I(e){I.shown||(I.shown={}),I.shown[e]||(I.shown[e]=1,h(e))}i=null,n.arguments&&n.arguments,Object.getOwnPropertyDescriptor(n,"arguments")||Object.defineProperty(n,"arguments",{configurable:!0,get:function(){we("Module.arguments has been replaced with plain arguments_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),n.thisProgram&&(a=n.thisProgram),Object.getOwnPropertyDescriptor(n,"thisProgram")||Object.defineProperty(n,"thisProgram",{configurable:!0,get:function(){we("Module.thisProgram has been replaced with plain thisProgram (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),n.quit&&(s=n.quit),Object.getOwnPropertyDescriptor(n,"quit")||Object.defineProperty(n,"quit",{configurable:!0,get:function(){we("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===n.memoryInitializerPrefixURL,"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),v(void 0===n.pthreadMainPrefixURL,"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),v(void 0===n.cdInitializerPrefixURL,"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),v(void 0===n.filePackagePrefixURL,"Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),v(void 0===n.read,"Module.read option was removed (modify read_ in JS)"),v(void 0===n.readAsync,"Module.readAsync option was removed (modify readAsync in JS)"),v(void 0===n.readBinary,"Module.readBinary option was removed (modify readBinary in JS)"),v(void 0===n.setWindowTitle,"Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),v(void 0===n.TOTAL_MEMORY,"Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"),Object.getOwnPropertyDescriptor(n,"read")||Object.defineProperty(n,"read",{configurable:!0,get:function(){we("Module.read has been replaced with plain read_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Object.getOwnPropertyDescriptor(n,"readAsync")||Object.defineProperty(n,"readAsync",{configurable:!0,get:function(){we("Module.readAsync has been replaced with plain readAsync (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Object.getOwnPropertyDescriptor(n,"readBinary")||Object.defineProperty(n,"readBinary",{configurable:!0,get:function(){we("Module.readBinary has been replaced with plain readBinary (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Object.getOwnPropertyDescriptor(n,"setWindowTitle")||Object.defineProperty(n,"setWindowTitle",{configurable:!0,get:function(){we("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.");var m=0,y=function(e){m=e};n.wasmBinary&&n.wasmBinary,Object.getOwnPropertyDescriptor(n,"wasmBinary")||Object.defineProperty(n,"wasmBinary",{configurable:!0,get:function(){we("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 C,w=n.noExitRuntime||!0;Object.getOwnPropertyDescriptor(n,"noExitRuntime")||Object.defineProperty(n,"noExitRuntime",{configurable:!0,get:function(){we("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"!==("undefined"==typeof WebAssembly?"undefined":E(WebAssembly))&&we("no native wasm support detected");var _,B=!1;function v(e,t){e||we("Assertion failed: ".concat(t))}var b="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function O(e,t,r){for(var n=t+r,o=t;e[o]&&!(o>=n);)++o;if(o-t>16&&e.subarray&&b)return b.decode(e.subarray(t,o));for(var i="";t<o;){var a=e[t++];if(128&a){var s=63&e[t++];if(192!=(224&a)){var A=63&e[t++];if(224==(240&a)?a=(15&a)<<12|s<<6|A:(240!=(248&a)&&I("Invalid UTF-8 leading byte 0x".concat(a.toString(16)," encountered when deserializing a UTF-8 string in wasm memory to a JS string!")),a=(7&a)<<18|s<<12|A<<6|63&e[t++]),a<65536)i+=String.fromCharCode(a);else{var c=a-65536;i+=String.fromCharCode(55296|c>>10,56320|1023&c)}}else i+=String.fromCharCode((31&a)<<6|s)}else i+=String.fromCharCode(a)}return i}function Q(e,t){return e?O(k,e,t):""}function T(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;s>=2097152&&I("Invalid Unicode code point 0x".concat(s.toString(16)," encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x1FFFFF).")),t[r++]=240|s>>18,t[r++]=128|s>>12&63,t[r++]=128|s>>6&63,t[r++]=128|63&s}}return t[r]=0,r-o}function M(e,t,r){return v("number"==typeof r,"stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),T(e,k,t,r)}function R(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 S,F,k,x,N,j,U,L,H,G="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function Y(e,t){v(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)&&N[n];)++n;if((r=n<<1)-e>32&&G)return G.decode(k.subarray(e,r));for(var i="",a=0;!(a>=t/2);++a){var s=x[e+2*a>>1];if(0==s)break;i+=String.fromCharCode(s)}return i}function X(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;for(var n=t,o=(r-=2)<2*e.length?r/2:e.length,i=0;i<o;++i){var a=e.charCodeAt(i);x[t>>1]=a,t+=2}return x[t>>1]=0,t-n}function W(e){return 2*e.length}function V(e,t){v(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 z(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;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)),j[t>>2]=a,(t+=4)+4>o)break}return j[t>>2]=0,t-n}function J(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 K(e){var t=R(e)+1,r=An(t);return r&&T(e,F,r,t),r}function Z(e){S=e,n.HEAP8=F=new Int8Array(e),n.HEAP16=x=new Int16Array(e),n.HEAP32=j=new Int32Array(e),n.HEAPU8=k=new Uint8Array(e),n.HEAPU16=N=new Uint16Array(e),n.HEAPU32=U=new Uint32Array(e),n.HEAPF32=L=new Float32Array(e),n.HEAPF64=H=new Float64Array(e)}var q=5242880;n.TOTAL_STACK&&v(q===n.TOTAL_STACK,"the stack size can no longer be determined at runtime");var $,ee=n.INITIAL_MEMORY||16777216;function te(){var e=gn();v(!(3&e)),U[1+(e>>2)]=34821223,U[2+(e>>2)]=2310721022,j[0]=1668509029}function re(){if(!B){var e=gn(),t=U[1+(e>>2)],r=U[2+(e>>2)];34821223==t&&2310721022==r||we("Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x2135467, but received 0x".concat(r.toString(16)," ").concat(t.toString(16))),1668509029!==j[0]&&we("Runtime error: The application has corrupted its heap memory area (address zero)!")}}Object.getOwnPropertyDescriptor(n,"INITIAL_MEMORY")||Object.defineProperty(n,"INITIAL_MEMORY",{configurable:!0,get:function(){we("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(ee>=q,"INITIAL_MEMORY should be larger than TOTAL_STACK, was ".concat(ee,"! (TOTAL_STACK=").concat(q,")")),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(!n.wasmMemory,"Use of `wasmMemory` detected. Use -s IMPORTED_MEMORY to define wasmMemory externally"),v(16777216==ee,"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 ne=[],oe=[],ie=[],ae=[],se=!1,Ae=!1,ce=0;function ue(){return w||ce>0}v(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),v(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),v(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),v(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");var ge,de,le,fe,Ee=0,pe=null,he=null,Ie={};function me(e){for(var t=e;;){if(!Ie[e])return e;e=t+Math.random()}}function ye(e){Ee++,n.monitorRunDependencies&&n.monitorRunDependencies(Ee),e?(v(!Ie[e]),Ie[e]=1,null===pe&&"undefined"!=typeof setInterval&&(pe=setInterval((function(){if(B)return clearInterval(pe),void(pe=null);var e=!1;for(var t in Ie)e||(e=!0,h("still waiting on run dependencies:")),h("dependency: ".concat(t));e&&h("(end of list)")}),1e4))):h("warning: run dependency added without ID")}function Ce(e){if(Ee--,n.monitorRunDependencies&&n.monitorRunDependencies(Ee),e?(v(Ie[e]),delete Ie[e]):h("warning: run dependency removed without ID"),0==Ee&&(null!==pe&&(clearInterval(pe),pe=null),he)){var t=he;he=null,t()}}function we(e){n.onAbort&&n.onAbort(e),h(e+=""),B=!0,_=1;var t,o="abort(".concat(e,") at ").concat((t=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()}(),n.extraStackTrace&&(t+="\n".concat(n.extraStackTrace())),Me(t)));e=o;var i=new WebAssembly.RuntimeError(e);throw r(i),i}function _e(e,t){return function(){var r=e,o=t;return o=n.asm,v(se,"native function `".concat(r,"` called before runtime initialization")),v(!Ae,"native function `".concat(r,"` called after runtime exit (use NO_EXIT_RUNTIME to keep it alive after main() exits)")),o[e]||v(o[e],"exported native function `".concat(r,"` not found")),o[e].apply(null,arguments)}}n.preloadedImages={},n.preloadedAudios={},(ge="selfie_segmentation_solution_simd_wasm_bin.wasm").startsWith("data:application/octet-stream;base64,")||(de=ge,ge=n.locateFile?n.locateFile(de,f):f+de);var Be,ve={460656:function(){var e=!0;if(e){var t=Or;if("function"!=typeof t)return void("undefined"!=typeof console&&console.error('Expected Emscripten global function "findCanvasEventTarget" not found. WebGL context creation may fail.'));Or=function(e){if(0==e){if(n&&n.canvas)return n.canvas;if(n&&n.canvasCssSelector)return t(n.canvasCssSelector);"undefined"!=typeof console&&console.warn("Module properties canvas and canvasCssSelector not found during WebGL context creation.")}return t(e)},e=!1}},461441:function(){return"undefined"!=typeof wasmOffsetConverter}};function De(e){!function(e){if(_=e,function(){var e=p,t=h,r=!1;p=h=function(e){r=!0};try{var o=n._fflush;o&&o(0),["stdout","stderr"].forEach((function(e){var t=Ve.analyzePath("/dev/".concat(e));if(t){var n=t.object.rdev,o=He.ttys[n];o&&o.output&&o.output.length&&(r=!0)}}))}catch(e){}p=e,h=t,r&&I("stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the FAQ), or make sure to emit a newline when you printf etc.")}(),ue()){var t="program exited (with status: ".concat(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)");r(t),h(t)}else re(),Ae=!0;vn(e)}(e)}function be(e,t,r,o,i){v(!Te.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."),Te.mainLoop.func=e,Te.mainLoop.arg=o;var a=Te.mainLoop.currentlyRunningMainloop;function s(){return!(a<Te.mainLoop.currentlyRunningMainloop&&(function(){if(!ue())try{De(_)}catch(e){if(e instanceof _n)return;throw e}}(),1))}Te.mainLoop.running=!1,Te.mainLoop.runner=function(){if(!B)if(Te.mainLoop.queue.length>0){var t=Date.now(),r=Te.mainLoop.queue.shift();if(r.func(r.arg),Te.mainLoop.remainingBlockers){var o=Te.mainLoop.remainingBlockers,i=o%1==0?o-1:Math.floor(o);r.counted?Te.mainLoop.remainingBlockers=i:(i+=.5,Te.mainLoop.remainingBlockers=(8*o+i)/9)}if(p('main loop blocker "'.concat(r.name,'" took ').concat(Date.now()-t," ms")),Te.mainLoop.updateStatus(),!s())return;setTimeout(Te.mainLoop.runner,0)}else s()&&(Te.mainLoop.currentFrameNumber=Te.mainLoop.currentFrameNumber+1|0,1==Te.mainLoop.timingMode&&Te.mainLoop.timingValue>1&&Te.mainLoop.currentFrameNumber%Te.mainLoop.timingValue!=0?Te.mainLoop.scheduler():(0==Te.mainLoop.timingMode&&(Te.mainLoop.tickStartTime=Be()),Br.newRenderingFrameStarted(),void 0!==Br&&Br.currentContext&&!Br.currentContextIsProxied&&!Br.currentContext.attributes.explicitSwapControl&&Br.currentContext.GLctx.commit&&Br.currentContext.GLctx.commit(),"timeout"===Te.mainLoop.method&&n.ctx&&(I("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!"),Te.mainLoop.method=""),Te.mainLoop.runIter(e),re(),s()&&("object"===("undefined"==typeof SDL?"undefined":E(SDL))&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),Te.mainLoop.scheduler())))}}function Oe(e,t){if(B)h("user callback triggered after application aborted. Ignoring.");else try{e()}catch(e){if(e instanceof _n)return;if("unwind"!==e)throw e&&"object"===E(e)&&e.stack&&h("exception thrown: ".concat([e,e.stack])),e}}function Qe(e,t){return setTimeout((function(){Oe(e)}),t)}Be=u?function(){var e=process.hrtime();return 1e3*e[0]+e[1]/1e6}:function(){return performance.now()};var Te={mainLoop:{running:!1,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Te.mainLoop.scheduler=null,Te.mainLoop.currentlyRunningMainloop++},resume:function(){Te.mainLoop.currentlyRunningMainloop++;var e=Te.mainLoop.timingMode,t=Te.mainLoop.timingValue,r=Te.mainLoop.func;Te.mainLoop.func=null,be(r,0,0,Te.mainLoop.arg),function(e,t){if(Te.mainLoop.timingMode=e,Te.mainLoop.timingValue=t,!Te.mainLoop.func)return h("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(Te.mainLoop.running||(Te.mainLoop.running=!0),0==e)Te.mainLoop.scheduler=function(){var e=0|Math.max(0,Te.mainLoop.tickStartTime+t-Be());setTimeout(Te.mainLoop.runner,e)},Te.mainLoop.method="timeout";else if(1==e)Te.mainLoop.scheduler=function(){Te.requestAnimationFrame(Te.mainLoop.runner)},Te.mainLoop.method="rAF";else if(2==e){if("undefined"==typeof setImmediate){var r=[],o="setimmediate";addEventListener("message",(function(e){e.data!==o&&e.data.target!==o||(e.stopPropagation(),r.shift()())}),!0),setImmediate=function(e){r.push(e),c?(void 0===n.setImmediates&&(n.setImmediates=[]),n.setImmediates.push(e),postMessage({target:o})):postMessage(o,"*")}}Te.mainLoop.scheduler=function(){setImmediate(Te.mainLoop.runner)},Te.mainLoop.method="immediate"}}(e,t),Te.mainLoop.scheduler()},updateStatus:function(){if(n.setStatus){var e=n.statusMessage||"Please wait...",t=Te.mainLoop.remainingBlockers,r=Te.mainLoop.expectedBlockers;t?t<r?n.setStatus("".concat(e," (").concat(r-t,"/").concat(r,")")):n.setStatus(e):n.setStatus("")}},runIter:function(e){if(!B){if(n.preMainLoop&&!1===n.preMainLoop())return;Oe(e),n.postMainLoop&&n.postMainLoop()}}},isFullscreen:!1,pointerLock:!1,moduleContextCreatedCallbacks:[],workers:[],init:function(){if(n.preloadPlugins||(n.preloadPlugins=[]),!Te.initted){Te.initted=!0;try{new Blob,Te.hasBlobConstructor=!0}catch(e){Te.hasBlobConstructor=!1,p("warning: no blob constructor, cannot create blobs with mimetypes")}Te.BlobBuilder="undefined"!=typeof MozBlobBuilder?MozBlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:Te.hasBlobConstructor?null:p("warning: no BlobBuilder"),Te.URLObject="undefined"!=typeof window?window.URL?window.URL:window.webkitURL:void 0,n.noImageDecoding||void 0!==Te.URLObject||(p("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),n.noImageDecoding=!0);var e={canHandle:function(e){return!n.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(e)},handle:function(e,t,r,o){var i=null;if(Te.hasBlobConstructor)try{(i=new Blob([e],{type:Te.getMimetype(t)})).size!==e.length&&(i=new Blob([new Uint8Array(e).buffer],{type:Te.getMimetype(t)}))}catch(e){I("Blob constructor present but fails: ".concat(e,"; falling back to blob builder"))}if(!i){var a=new Te.BlobBuilder;a.append(new Uint8Array(e).buffer),i=a.getBlob()}var s=Te.URLObject.createObjectURL(i);v("string"==typeof s,"createObjectURL must return a url as a string");var A=new Image;A.onload=function(){v(A.complete,"Image ".concat(t," could not be decoded"));var o=document.createElement("canvas");o.width=A.width,o.height=A.height,o.getContext("2d").drawImage(A,0,0),n.preloadedImages[t]=o,Te.URLObject.revokeObjectURL(s),r&&r(e)},A.onerror=function(e){p("Image ".concat(s," could not be decoded")),o&&o()},A.src=s}};n.preloadPlugins.push(e);var t={canHandle:function(e){return!n.noAudioDecoding&&e.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},handle:function(e,t,r,o){var i=!1;function a(o){i||(i=!0,n.preloadedAudios[t]=o,r&&r(e))}function s(){i||(i=!0,n.preloadedAudios[t]=new Audio,o&&o())}if(!Te.hasBlobConstructor)return s();try{var A=new Blob([e],{type:Te.getMimetype(t)})}catch(e){return s()}var c=Te.URLObject.createObjectURL(A);v("string"==typeof c,"createObjectURL must return a url as a string");var u=new Audio;u.addEventListener("canplaythrough",(function(){a(u)}),!1),u.onerror=function(r){i||(p("warning: browser could not fully decode audio ".concat(t,", trying slower base64 approach")),u.src="data:audio/x-".concat(t.substr(-3),";base64,").concat(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=c,Qe((function(){a(u)}),1e4)}};n.preloadPlugins.push(t),n.canvas}},createContext:function(e,t,r,o){if(t&&n.ctx&&e==n.canvas)return n.ctx;var i,a;if(t){var s={antialias:!1,alpha:!1,majorVersion:"undefined"!=typeof WebGL2RenderingContext?2:1};if(o)for(var A in o)s[A]=o[A];void 0!==Br&&(a=Br.createContext(e,s))&&(i=Br.getContext(a).GLctx)}else i=e.getContext("2d");return i?(r&&(t||v(void 0===Zr,"cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),n.ctx=i,t&&Br.makeContextCurrent(a),n.useWebGL=t,Te.moduleContextCreatedCallbacks.forEach((function(e){e()})),Te.init()),i):null},destroyContext:function(e,t,r){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(e,t){Te.lockPointer=e,Te.resizeCanvas=t,void 0===Te.lockPointer&&(Te.lockPointer=!0),void 0===Te.resizeCanvas&&(Te.resizeCanvas=!1);var r=n.canvas;Te.fullscreenHandlersInstalled||(Te.fullscreenHandlersInstalled=!0);var o=document.createElement("div");r.parentNode.insertBefore(o,r),o.appendChild(r),o.requestFullscreen=o.requestFullscreen||o.mozRequestFullScreen||o.msRequestFullscreen||(o.webkitRequestFullscreen?function(){o.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(o.webkitRequestFullScreen?function(){o.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),o.requestFullscreen()},requestFullScreen:function(){we("Module.requestFullScreen has been replaced by Module.requestFullscreen (without a capital S)")},exitFullscreen:function(){return!!Te.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===Te.nextRAF)Te.nextRAF=t+1e3/60;else for(;t+2>=Te.nextRAF;)Te.nextRAF+=1e3/60;var r=Math.max(Te.nextRAF-t,0);setTimeout(e,r)},requestAnimationFrame:function(e){function t(t){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}((function(e){"function"!=typeof requestAnimationFrame?(0,Te.fakeRequestAnimationFrame)(e):requestAnimationFrame(e)})),safeSetTimeout:function(e){return Qe(e)},safeRequestAnimationFrame:function(e){return Te.requestAnimationFrame((function(){Oe(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: ".concat(e.deltaMode)}break;default:throw"unrecognized mouse wheel event: ".concat(e.type)}return t},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(e){if(Te.pointerLock)"mousemove"!=e.type&&"mozMovementX"in e?Te.mouseMovementX=Te.mouseMovementY=0:(Te.mouseMovementX=Te.getMovementX(e),Te.mouseMovementY=Te.getMovementY(e)),"undefined"!=typeof SDL?(Te.mouseX=SDL.mouseX+Te.mouseMovementX,Te.mouseY=SDL.mouseY+Te.mouseMovementY):(Te.mouseX+=Te.mouseMovementX,Te.mouseY+=Te.mouseMovementY);else{var t=n.canvas.getBoundingClientRect(),r=n.canvas.width,o=n.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){var s=e.touch;if(void 0===s)return;var A=s.pageX-(i+t.left),c=s.pageY-(a+t.top),u={x:A*=r/t.width,y:c*=o/t.height};if("touchstart"===e.type)Te.lastTouches[s.identifier]=u,Te.touches[s.identifier]=u;else if("touchend"===e.type||"touchmove"===e.type){var g=Te.touches[s.identifier];g||(g=u),Te.lastTouches[s.identifier]=g,Te.touches[s.identifier]=u}return}var d=e.pageX-(i+t.left),l=e.pageY-(a+t.top);d*=r/t.width,l*=o/t.height,Te.mouseMovementX=d-Te.mouseX,Te.mouseMovementY=l-Te.mouseY,Te.mouseX=d,Te.mouseY=l}},resizeListeners:[],updateResizeListeners:function(){var e=n.canvas;Te.resizeListeners.forEach((function(t){t(e.width,e.height)}))},setCanvasSize:function(e,t,r){var o=n.canvas;Te.updateCanvasDimensions(o,e,t),r||Te.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if("undefined"!=typeof SDL){var e=U[SDL.screen>>2];e|=8388608,j[SDL.screen>>2]=e}Te.updateCanvasDimensions(n.canvas),Te.updateResizeListeners()},setWindowedCanvasSize:function(){if("undefined"!=typeof SDL){var e=U[SDL.screen>>2];e&=-8388609,j[SDL.screen>>2]=e}Te.updateCanvasDimensions(n.canvas),Te.updateResizeListeners()},updateCanvasDimensions:function(e,t,r){t&&r?(e.widthNative=t,e.heightNative=r):(t=e.widthNative,r=e.heightNative);var o=t,i=r;if(n.forcedAspectRatio&&n.forcedAspectRatio>0&&(o/i<n.forcedAspectRatio?o=Math.round(i*n.forcedAspectRatio):i=Math.round(o/n.forcedAspectRatio)),(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===e.parentNode&&"undefined"!=typeof screen){var a=Math.min(screen.width/o,screen.height/i);o=Math.round(o*a),i=Math.round(i*a)}Te.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!=r&&(e.height=r),void 0!==e.style&&(o!=t||i!=r?(e.style.setProperty("width","".concat(o,"px"),"important"),e.style.setProperty("height","".concat(i,"px"),"important")):(e.style.removeProperty("width"),e.style.removeProperty("height"))))}};function Pe(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var r=t.func;"number"==typeof r?void 0===t.arg?$.get(r)():$.get(r)(t.arg):r(void 0===t.arg?null:t.arg)}else t(n)}}function Me(e){return e.replace(/\b_Z[\w\d_]+/g,(function(e){var t,r=(t=e,I("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),t);return e===r?e:"".concat(r," [").concat(e,"]")}))}function Re(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,F[this.ptr+12|0]=e},this.get_caught=function(){return 0!=F[this.ptr+12|0]},this.set_rethrown=function(e){e=e?1:0,F[this.ptr+13|0]=e},this.get_rethrown=function(){return 0!=F[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,v(e>0),1===e}}function Se(e){this.free=function(){sn(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(Cn(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 Re(this.get_base_ptr())},void 0===e?(this.ptr=An(8),this.set_adjusted_ptr(0)):this.ptr=e}var Fe=[],ke=0;function xe(e){try{return sn(new Re(e).ptr)}catch(e){h("exception during cxa_free_exception: ".concat(e))}}function Ne(e){return j[cn()>>2]=e,e}var je={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=je.normalizeArray(e.split("/").filter((function(e){return!!e})),!t).join("/"))||t||(e="."),e&&r&&(e+="/"),(t?"/":"")+e},dirname:function(e){var t=je.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=je.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?e:e.substr(t+1)},extname:function(e){return je.splitPath(e)[3]},join:function(){var e=Array.prototype.slice.call(arguments,0);return je.normalize(e.join("/"))},join2:function(e,t){return je.normalize("".concat(e,"/").concat(t))}};function Ue(){if("object"===("undefined"==typeof crypto?"undefined":E(crypto))&&"function"==typeof crypto.getRandomValues){var e=new Uint8Array(1);return function(){return crypto.getRandomValues(e),e[0]}}if(u)try{var t=D("crypto");return function(){return t.randomBytes(1)[0]}}catch(e){}return function(){we("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 Le={resolve:function(){for(var e="",t=!1,r=arguments.length-1;r>=-1&&!t;r--){var n=r>=0?arguments[r]:Ve.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");if(!n)return"";e="".concat(n,"/").concat(e),t="/"===n.charAt(0)}return(t?"/":"")+(e=je.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=Le.resolve(e).substr(1),t=Le.resolve(t).substr(1);for(var n=r(e.split("/")),o=r(t.split("/")),i=Math.min(n.length,o.length),a=i,s=0;s<i;s++)if(n[s]!==o[s]){a=s;break}var A=[];for(s=a;s<n.length;s++)A.push("..");return(A=A.concat(o.slice(a))).join("/")}},He={ttys:[],init:function(){},shutdown:function(){},register:function(e,t){He.ttys[e]={input:[],output:[],ops:t},Ve.registerDevice(e,He.stream_ops)},stream_ops:{open:function(e){var t=He.ttys[e.node.rdev];if(!t)throw new Ve.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 Ve.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 Ve.ErrnoError(29)}if(void 0===s&&0===i)throw new Ve.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 Ve.ErrnoError(60);try{for(var i=0;i<n;i++)e.tty.ops.put_char(e.tty,t[r+i])}catch(e){throw new Ve.ErrnoError(29)}return n&&(e.node.timestamp=Date.now()),i}},default_tty_ops:{get_char:function(e){if(!e.input.length){var t=null;if(u){var r=Buffer.alloc(256),n=0;try{n=(void 0).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=on(t,!0)}return e.input.shift()},put_char:function(e,t){null===t||10===t?(p(O(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(p(O(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,t){null===t||10===t?(h(O(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(h(O(e.output,0)),e.output=[])}}};function Ge(e){e=function(e,t){return v(t,"alignment argument is required"),Math.ceil(e/t)*t}(e,65536);var t=wn(65536,e);return t?(function(e,t){k.fill(0,e,e+t)}(t,e),t):0}var Ye={ops_table:null,mount:function(e){return Ye.createNode(null,"/",16895,0)},createNode:function(e,t,r,n){if(Ve.isBlkdev(r)||Ve.isFIFO(r))throw new Ve.ErrnoError(63);Ye.ops_table||(Ye.ops_table={dir:{node:{getattr:Ye.node_ops.getattr,setattr:Ye.node_ops.setattr,lookup:Ye.node_ops.lookup,mknod:Ye.node_ops.mknod,rename:Ye.node_ops.rename,unlink:Ye.node_ops.unlink,rmdir:Ye.node_ops.rmdir,readdir:Ye.node_ops.readdir,symlink:Ye.node_ops.symlink},stream:{llseek:Ye.stream_ops.llseek}},file:{node:{getattr:Ye.node_ops.getattr,setattr:Ye.node_ops.setattr},stream:{llseek:Ye.stream_ops.llseek,read:Ye.stream_ops.read,write:Ye.stream_ops.write,allocate:Ye.stream_ops.allocate,mmap:Ye.stream_ops.mmap,msync:Ye.stream_ops.msync}},link:{node:{getattr:Ye.node_ops.getattr,setattr:Ye.node_ops.setattr,readlink:Ye.node_ops.readlink},stream:{}},chrdev:{node:{getattr:Ye.node_ops.getattr,setattr:Ye.node_ops.setattr},stream:Ve.chrdev_stream_ops}});var o=Ve.createNode(e,t,r,n);return Ve.isDir(o.mode)?(o.node_ops=Ye.ops_table.dir.node,o.stream_ops=Ye.ops_table.dir.stream,o.contents={}):Ve.isFile(o.mode)?(o.node_ops=Ye.ops_table.file.node,o.stream_ops=Ye.ops_table.file.stream,o.usedBytes=0,o.contents=null):Ve.isLink(o.mode)?(o.node_ops=Ye.ops_table.link.node,o.stream_ops=Ye.ops_table.link.stream):Ve.isChrdev(o.mode)&&(o.node_ops=Ye.ops_table.chrdev.node,o.stream_ops=Ye.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=Ve.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,Ve.isDir(e.mode)?t.size=4096:Ve.isFile(e.mode)?t.size=e.usedBytes:Ve.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&&Ye.resizeFileStorage(e,t.size)},lookup:function(e,t){throw Ve.genericErrors[44]},mknod:function(e,t,r,n){return Ye.createNode(e,t,r,n)},rename:function(e,t,r){if(Ve.isDir(e.mode)){var n;try{n=Ve.lookupNode(t,r)}catch(e){}if(n)for(var o in n.contents)throw new Ve.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=Ve.lookupNode(e,t);for(var n in r.contents)throw new Ve.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=Ye.createNode(e,t,41471,0);return n.link=r,n},readlink:function(e){if(!Ve.isLink(e.mode))throw new Ve.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(v(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(v(!(t instanceof ArrayBuffer)),t.buffer===F.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 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(Ye.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&&Ve.isFile(e.node.mode)&&(n+=e.node.usedBytes),n<0)throw new Ve.ErrnoError(28);return n},allocate:function(e,t,r){Ye.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 Ve.ErrnoError(28);if(!Ve.isFile(e.node.mode))throw new Ve.ErrnoError(43);var a,s,A=e.node.contents;if(2&i||A.buffer!==S){if((n>0||n+r<A.length)&&(A=A.subarray?A.subarray(n,n+r):Array.prototype.slice.call(A,n,n+r)),s=!0,!(a=Ge(r)))throw new Ve.ErrnoError(48);F.set(A,a)}else s=!1,a=A.byteOffset;return{ptr:a,allocated:s}},msync:function(e,t,r,n,o){if(!Ve.isFile(e.node.mode))throw new Ve.ErrnoError(43);return 2&o||Ye.stream_ops.write(e,t,0,n,r,!1),0}}},Xe={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"},We={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},Ve={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=Le.resolve(Ve.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 Ve.ErrnoError(32);for(var o=je.normalizeArray(e.split("/").filter((function(e){return!!e})),!1),i=Ve.root,a="/",s=0;s<o.length;s++){var A=s===o.length-1;if(A&&t.parent)break;if(i=Ve.lookupNode(i,o[s]),a=je.join2(a,o[s]),Ve.isMountpoint(i)&&(!A||A&&t.follow_mount)&&(i=i.mounted.root),!A||t.follow)for(var c=0;Ve.isLink(i.mode);){var u=Ve.readlink(a);if(a=Le.resolve(je.dirname(a),u),i=Ve.lookupPath(a,{recurse_count:t.recurse_count}).node,c++>40)throw new Ve.ErrnoError(32)}}return{path:a,node:i}},getPath:function(e){for(var t;;){if(Ve.isRoot(e)){var r=e.mount.mountpoint;return t?"/"!==r[r.length-1]?"".concat(r,"/").concat(t):r+t:r}t=t?"".concat(e.name,"/").concat(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)%Ve.nameTable.length},hashAddNode:function(e){var t=Ve.hashName(e.parent.id,e.name);e.name_next=Ve.nameTable[t],Ve.nameTable[t]=e},hashRemoveNode:function(e){var t=Ve.hashName(e.parent.id,e.name);if(Ve.nameTable[t]===e)Ve.nameTable[t]=e.name_next;else for(var r=Ve.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=Ve.mayLookup(e);if(r)throw new Ve.ErrnoError(r,e);for(var n=Ve.hashName(e.id,t),o=Ve.nameTable[n];o;o=o.name_next){var i=o.name;if(o.parent.id===e.id&&i===t)return o}return Ve.lookup(e,t)},createNode:function(e,t,r,n){v("object"===E(e));var o=new Ve.FSNode(e,t,r,n);return Ve.hashAddNode(o),o},destroyNode:function(e){Ve.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=Ve.flagModes[e];if(void 0===t)throw new Error("Unknown file open mode: ".concat(e));return t},flagsToPermissionString:function(e){var t=["r","w","rw"][3&e];return 512&e&&(t+="w"),t},nodePermissions:function(e,t){return Ve.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=Ve.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate:function(e,t){try{return Ve.lookupNode(e,t),20}catch(e){}return Ve.nodePermissions(e,"wx")},mayDelete:function(e,t,r){var n;try{n=Ve.lookupNode(e,t)}catch(e){return e.errno}var o=Ve.nodePermissions(e,"wx");if(o)return o;if(r){if(!Ve.isDir(n.mode))return 54;if(Ve.isRoot(n)||Ve.getPath(n)===Ve.cwd())return 10}else if(Ve.isDir(n.mode))return 31;return 0},mayOpen:function(e,t){return e?Ve.isLink(e.mode)?32:Ve.isDir(e.mode)&&("r"!==Ve.flagsToPermissionString(t)||512&t)?31:Ve.nodePermissions(e,Ve.flagsToPermissionString(t)):44},MAX_OPEN_FDS:4096,nextfd:function(e,t){e=e||0,t=t||Ve.MAX_OPEN_FDS;for(var r=e;r<=t;r++)if(!Ve.streams[r])return r;throw new Ve.ErrnoError(33)},getStream:function(e){return Ve.streams[e]},createStream:function(e,t,r){Ve.FSStream||(Ve.FSStream=function(){},Ve.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 Ve.FSStream;for(var o in e)n[o]=e[o];e=n;var i=Ve.nextfd(t,r);return e.fd=i,Ve.streams[i]=e,e},closeStream:function(e){Ve.streams[e]=null},chrdev_stream_ops:{open:function(e){var t=Ve.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:function(){throw new Ve.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){Ve.devices[e]={stream_ops:t}},getDevice:function(e){return Ve.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),Ve.syncFSRequests++,Ve.syncFSRequests>1&&h("warning: ".concat(Ve.syncFSRequests," FS.syncfs operations in flight at once, probably just doing extra work"));var r=Ve.getMounts(Ve.root.mount),n=0;function o(e){return v(Ve.syncFSRequests>0),Ve.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&&Ve.root)throw new Ve.ErrnoError(10);if(!o&&!i){var a=Ve.lookupPath(r,{follow_mount:!1});if(r=a.path,n=a.node,Ve.isMountpoint(n))throw new Ve.ErrnoError(10);if(!Ve.isDir(n.mode))throw new Ve.ErrnoError(54)}var s={type:e,opts:t,mountpoint:r,mounts:[]},A=e.mount(s);return A.mount=s,s.root=A,o?Ve.root=A:n&&(n.mounted=s,n.mount&&n.mount.mounts.push(s)),A},unmount:function(e){var t=Ve.lookupPath(e,{follow_mount:!1});if(!Ve.isMountpoint(t.node))throw new Ve.ErrnoError(28);var r=t.node,n=r.mounted,o=Ve.getMounts(n);Object.keys(Ve.nameTable).forEach((function(e){for(var t=Ve.nameTable[e];t;){var r=t.name_next;o.includes(t.mount)&&Ve.destroyNode(t),t=r}})),r.mounted=null;var i=r.mount.mounts.indexOf(n);v(-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=Ve.lookupPath(e,{parent:!0}).node,o=je.basename(e);if(!o||"."===o||".."===o)throw new Ve.ErrnoError(28);var i=Ve.mayCreate(n,o);if(i)throw new Ve.ErrnoError(i);if(!n.node_ops.mknod)throw new Ve.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,Ve.mknod(e,t,0)},mkdir:function(e,t){return t=void 0!==t?t:511,t&=1023,t|=16384,Ve.mknod(e,t,0)},mkdirTree:function(e,t){for(var r=e.split("/"),n="",o=0;o<r.length;++o)if(r[o]){n+="/".concat(r[o]);try{Ve.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,Ve.mknod(e,t,r)},symlink:function(e,t){if(!Le.resolve(e))throw new Ve.ErrnoError(44);var r=Ve.lookupPath(t,{parent:!0}).node;if(!r)throw new Ve.ErrnoError(44);var n=je.basename(t),o=Ve.mayCreate(r,n);if(o)throw new Ve.ErrnoError(o);if(!r.node_ops.symlink)throw new Ve.ErrnoError(63);return r.node_ops.symlink(r,n,e)},rename:function(e,t){var r,n,o=je.dirname(e),i=je.dirname(t),a=je.basename(e),s=je.basename(t);if(r=Ve.lookupPath(e,{parent:!0}).node,n=Ve.lookupPath(t,{parent:!0}).node,!r||!n)throw new Ve.ErrnoError(44);if(r.mount!==n.mount)throw new Ve.ErrnoError(75);var A,c=Ve.lookupNode(r,a),u=Le.relative(e,i);if("."!==u.charAt(0))throw new Ve.ErrnoError(28);if("."!==(u=Le.relative(t,o)).charAt(0))throw new Ve.ErrnoError(55);try{A=Ve.lookupNode(n,s)}catch(e){}if(c!==A){var g=Ve.isDir(c.mode),d=Ve.mayDelete(r,a,g);if(d)throw new Ve.ErrnoError(d);if(d=A?Ve.mayDelete(n,s,g):Ve.mayCreate(n,s))throw new Ve.ErrnoError(d);if(!r.node_ops.rename)throw new Ve.ErrnoError(63);if(Ve.isMountpoint(c)||A&&Ve.isMountpoint(A))throw new Ve.ErrnoError(10);if(n!==r&&(d=Ve.nodePermissions(r,"w")))throw new Ve.ErrnoError(d);try{Ve.trackingDelegate.willMovePath&&Ve.trackingDelegate.willMovePath(e,t)}catch(r){h("FS.trackingDelegate['willMovePath']('".concat(e,"', '").concat(t,"') threw an exception: ").concat(r.message))}Ve.hashRemoveNode(c);try{r.node_ops.rename(c,n,s)}catch(e){throw e}finally{Ve.hashAddNode(c)}try{Ve.trackingDelegate.onMovePath&&Ve.trackingDelegate.onMovePath(e,t)}catch(r){h("FS.trackingDelegate['onMovePath']('".concat(e,"', '").concat(t,"') threw an exception: ").concat(r.message))}}},rmdir:function(e){var t=Ve.lookupPath(e,{parent:!0}).node,r=je.basename(e),n=Ve.lookupNode(t,r),o=Ve.mayDelete(t,r,!0);if(o)throw new Ve.ErrnoError(o);if(!t.node_ops.rmdir)throw new Ve.ErrnoError(63);if(Ve.isMountpoint(n))throw new Ve.ErrnoError(10);try{Ve.trackingDelegate.willDeletePath&&Ve.trackingDelegate.willDeletePath(e)}catch(t){h("FS.trackingDelegate['willDeletePath']('".concat(e,"') threw an exception: ").concat(t.message))}t.node_ops.rmdir(t,r),Ve.destroyNode(n);try{Ve.trackingDelegate.onDeletePath&&Ve.trackingDelegate.onDeletePath(e)}catch(t){h("FS.trackingDelegate['onDeletePath']('".concat(e,"') threw an exception: ").concat(t.message))}},readdir:function(e){var t=Ve.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new Ve.ErrnoError(54);return t.node_ops.readdir(t)},unlink:function(e){var t=Ve.lookupPath(e,{parent:!0}).node,r=je.basename(e),n=Ve.lookupNode(t,r),o=Ve.mayDelete(t,r,!1);if(o)throw new Ve.ErrnoError(o);if(!t.node_ops.unlink)throw new Ve.ErrnoError(63);if(Ve.isMountpoint(n))throw new Ve.ErrnoError(10);try{Ve.trackingDelegate.willDeletePath&&Ve.trackingDelegate.willDeletePath(e)}catch(t){h("FS.trackingDelegate['willDeletePath']('".concat(e,"') threw an exception: ").concat(t.message))}t.node_ops.unlink(t,r),Ve.destroyNode(n);try{Ve.trackingDelegate.onDeletePath&&Ve.trackingDelegate.onDeletePath(e)}catch(t){h("FS.trackingDelegate['onDeletePath']('".concat(e,"') threw an exception: ").concat(t.message))}},readlink:function(e){var t=Ve.lookupPath(e).node;if(!t)throw new Ve.ErrnoError(44);if(!t.node_ops.readlink)throw new Ve.ErrnoError(28);return Le.resolve(Ve.getPath(t.parent),t.node_ops.readlink(t))},stat:function(e,t){var r=Ve.lookupPath(e,{follow:!t}).node;if(!r)throw new Ve.ErrnoError(44);if(!r.node_ops.getattr)throw new Ve.ErrnoError(63);return r.node_ops.getattr(r)},lstat:function(e){return Ve.stat(e,!0)},chmod:function(e,t,r){var n;if(!(n="string"==typeof e?Ve.lookupPath(e,{follow:!r}).node:e).node_ops.setattr)throw new Ve.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&t|-4096&n.mode,timestamp:Date.now()})},lchmod:function(e,t){Ve.chmod(e,t,!0)},fchmod:function(e,t){var r=Ve.getStream(e);if(!r)throw new Ve.ErrnoError(8);Ve.chmod(r.node,t)},chown:function(e,t,r,n){var o;if(!(o="string"==typeof e?Ve.lookupPath(e,{follow:!n}).node:e).node_ops.setattr)throw new Ve.ErrnoError(63);o.node_ops.setattr(o,{timestamp:Date.now()})},lchown:function(e,t,r){Ve.chown(e,t,r,!0)},fchown:function(e,t,r){var n=Ve.getStream(e);if(!n)throw new Ve.ErrnoError(8);Ve.chown(n.node,t,r)},truncate:function(e,t){if(t<0)throw new Ve.ErrnoError(28);var r;if(!(r="string"==typeof e?Ve.lookupPath(e,{follow:!0}).node:e).node_ops.setattr)throw new Ve.ErrnoError(63);if(Ve.isDir(r.mode))throw new Ve.ErrnoError(31);if(!Ve.isFile(r.mode))throw new Ve.ErrnoError(28);var n=Ve.nodePermissions(r,"w");if(n)throw new Ve.ErrnoError(n);r.node_ops.setattr(r,{size:t,timestamp:Date.now()})},ftruncate:function(e,t){var r=Ve.getStream(e);if(!r)throw new Ve.ErrnoError(8);if(!(2097155&r.flags))throw new Ve.ErrnoError(28);Ve.truncate(r.node,t)},utime:function(e,t,r){var n=Ve.lookupPath(e,{follow:!0}).node;n.node_ops.setattr(n,{timestamp:Math.max(t,r)})},open:function(e,t,r,o,i){if(""===e)throw new Ve.ErrnoError(44);var a;if(r=void 0===r?438:r,r=64&(t="string"==typeof t?Ve.modeStringToFlags(t):t)?4095&r|32768:0,"object"===E(e))a=e;else{e=je.normalize(e);try{a=Ve.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var s=!1;if(64&t)if(a){if(128&t)throw new Ve.ErrnoError(20)}else a=Ve.mknod(e,r,0),s=!0;if(!a)throw new Ve.ErrnoError(44);if(Ve.isChrdev(a.mode)&&(t&=-513),65536&t&&!Ve.isDir(a.mode))throw new Ve.ErrnoError(54);if(!s){var A=Ve.mayOpen(a,t);if(A)throw new Ve.ErrnoError(A)}512&t&&Ve.truncate(a,0),t&=-131713;var c=Ve.createStream({node:a,path:Ve.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),!n.logReadFiles||1&t||(Ve.readFiles||(Ve.readFiles={}),e in Ve.readFiles||(Ve.readFiles[e]=1,h("FS.trackingDelegate error on read file: ".concat(e))));try{if(Ve.trackingDelegate.onOpenFile){var u=0;1!=(2097155&t)&&(u|=Ve.tracking.openFlags.READ),2097155&t&&(u|=Ve.tracking.openFlags.WRITE),Ve.trackingDelegate.onOpenFile(e,u)}}catch(t){h("FS.trackingDelegate['onOpenFile']('".concat(e,"', flags) threw an exception: ").concat(t.message))}return c},close:function(e){if(Ve.isClosed(e))throw new Ve.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{Ve.closeStream(e.fd)}e.fd=null},isClosed:function(e){return null===e.fd},llseek:function(e,t,r){if(Ve.isClosed(e))throw new Ve.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new Ve.ErrnoError(70);if(0!=r&&1!=r&&2!=r)throw new Ve.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 Ve.ErrnoError(28);if(Ve.isClosed(e))throw new Ve.ErrnoError(8);if(1==(2097155&e.flags))throw new Ve.ErrnoError(8);if(Ve.isDir(e.node.mode))throw new Ve.ErrnoError(31);if(!e.stream_ops.read)throw new Ve.ErrnoError(28);var i=void 0!==o;if(i){if(!e.seekable)throw new Ve.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 Ve.ErrnoError(28);if(Ve.isClosed(e))throw new Ve.ErrnoError(8);if(!(2097155&e.flags))throw new Ve.ErrnoError(8);if(Ve.isDir(e.node.mode))throw new Ve.ErrnoError(31);if(!e.stream_ops.write)throw new Ve.ErrnoError(28);e.seekable&&1024&e.flags&&Ve.llseek(e,0,2);var a=void 0!==o;if(a){if(!e.seekable)throw new Ve.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&&Ve.trackingDelegate.onWriteToFile&&Ve.trackingDelegate.onWriteToFile(e.path)}catch(t){h("FS.trackingDelegate['onWriteToFile']('".concat(e.path,"') threw an exception: ").concat(t.message))}return s},allocate:function(e,t,r){if(Ve.isClosed(e))throw new Ve.ErrnoError(8);if(t<0||r<=0)throw new Ve.ErrnoError(28);if(!(2097155&e.flags))throw new Ve.ErrnoError(8);if(!Ve.isFile(e.node.mode)&&!Ve.isDir(e.node.mode))throw new Ve.ErrnoError(43);if(!e.stream_ops.allocate)throw new Ve.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 Ve.ErrnoError(2);if(1==(2097155&e.flags))throw new Ve.ErrnoError(2);if(!e.stream_ops.mmap)throw new Ve.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 Ve.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 "'.concat(t.encoding,'"'));var r,n=Ve.open(e,t.flags),o=Ve.stat(e).size,i=new Uint8Array(o);return Ve.read(n,i,0,o,0),"utf8"===t.encoding?r=O(i,0):"binary"===t.encoding&&(r=i),Ve.close(n),r},writeFile:function(e,t,r){(r=r||{}).flags=r.flags||577;var n=Ve.open(e,r.flags,r.mode);if("string"==typeof t){var o=new Uint8Array(R(t)+1),i=T(t,o,0,o.length);Ve.write(n,o,0,i,void 0,r.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");Ve.write(n,t,0,t.byteLength,void 0,r.canOwn)}Ve.close(n)},cwd:function(){return Ve.currentPath},chdir:function(e){var t=Ve.lookupPath(e,{follow:!0});if(null===t.node)throw new Ve.ErrnoError(44);if(!Ve.isDir(t.node.mode))throw new Ve.ErrnoError(54);var r=Ve.nodePermissions(t.node,"x");if(r)throw new Ve.ErrnoError(r);Ve.currentPath=t.path},createDefaultDirectories:function(){Ve.mkdir("/tmp"),Ve.mkdir("/home"),Ve.mkdir("/home/web_user")},createDefaultDevices:function(){Ve.mkdir("/dev"),Ve.registerDevice(Ve.makedev(1,3),{read:function(){return 0},write:function(e,t,r,n,o){return n}}),Ve.mkdev("/dev/null",Ve.makedev(1,3)),He.register(Ve.makedev(5,0),He.default_tty_ops),He.register(Ve.makedev(6,0),He.default_tty1_ops),Ve.mkdev("/dev/tty",Ve.makedev(5,0)),Ve.mkdev("/dev/tty1",Ve.makedev(6,0));var e=Ue();Ve.createDevice("/dev","random",e),Ve.createDevice("/dev","urandom",e),Ve.mkdir("/dev/shm"),Ve.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){Ve.mkdir("/proc");var e=Ve.mkdir("/proc/self");Ve.mkdir("/proc/self/fd"),Ve.mount({mount:function(){var t=Ve.createNode(e,"fd",16895,73);return t.node_ops={lookup:function(e,t){var r=+t,n=Ve.getStream(r);if(!n)throw new Ve.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(){n.stdin?Ve.createDevice("/dev","stdin",n.stdin):Ve.symlink("/dev/tty","/dev/stdin"),n.stdout?Ve.createDevice("/dev","stdout",null,n.stdout):Ve.symlink("/dev/tty","/dev/stdout"),n.stderr?Ve.createDevice("/dev","stderr",null,n.stderr):Ve.symlink("/dev/tty1","/dev/stderr");var e=Ve.open("/dev/stdin",0),t=Ve.open("/dev/stdout",1),r=Ve.open("/dev/stderr",1);v(0===e.fd,"invalid handle for stdin (".concat(e.fd,")")),v(1===t.fd,"invalid handle for stdout (".concat(t.fd,")")),v(2===r.fd,"invalid handle for stderr (".concat(r.fd,")"))},ensureErrnoError:function(){Ve.ErrnoError||(Ve.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){for(var t in this.errno=e,We)if(We[t]===e){this.code=t;break}},this.setErrno(e),this.message=Xe[e],this.stack&&(Object.defineProperty(this,"stack",{value:(new Error).stack,writable:!0}),this.stack=Me(this.stack))},Ve.ErrnoError.prototype=new Error,Ve.ErrnoError.prototype.constructor=Ve.ErrnoError,[44].forEach((function(e){Ve.genericErrors[e]=new Ve.ErrnoError(e),Ve.genericErrors[e].stack="<generic error, no stack>"})))},staticInit:function(){Ve.ensureErrnoError(),Ve.nameTable=new Array(4096),Ve.mount(Ye,{},"/"),Ve.createDefaultDirectories(),Ve.createDefaultDevices(),Ve.createSpecialDirectories(),Ve.filesystems={MEMFS:Ye}},init:function(e,t,r){v(!Ve.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)"),Ve.init.initialized=!0,Ve.ensureErrnoError(),n.stdin=e||n.stdin,n.stdout=t||n.stdout,n.stderr=r||n.stderr,Ve.createStandardStreams()},quit:function(){Ve.init.initialized=!1;var e=n._fflush;e&&e(0);for(var t=0;t<Ve.streams.length;t++){var r=Ve.streams[t];r&&Ve.close(r)}},getMode:function(e,t){var r=0;return e&&(r|=365),t&&(r|=146),r},findObject:function(e,t){var r=Ve.analyzePath(e,t);return r.exists?r.object:null},analyzePath:function(e,t){try{e=(n=Ve.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=Ve.lookupPath(e,{parent:!0});r.parentExists=!0,r.parentPath=n.path,r.parentObject=n.node,r.name=je.basename(e),n=Ve.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:Ve.getPath(e);for(var o=t.split("/").reverse();o.length;){var i=o.pop();if(i){var a=je.join2(e,i);try{Ve.mkdir(a)}catch(e){}e=a}}return a},createFile:function(e,t,r,n,o){var i=je.join2("string"==typeof e?e:Ve.getPath(e),t),a=Ve.getMode(n,o);return Ve.create(i,a)},createDataFile:function(e,t,r,n,o,i){var a=t?je.join2("string"==typeof e?e:Ve.getPath(e),t):e,s=Ve.getMode(n,o),A=Ve.create(a,s);if(r){if("string"==typeof r){for(var c=new Array(r.length),u=0,g=r.length;u<g;++u)c[u]=r.charCodeAt(u);r=c}Ve.chmod(A,146|s);var d=Ve.open(A,577);Ve.write(d,r,0,r.length,0,i),Ve.close(d),Ve.chmod(A,s)}return A},createDevice:function(e,t,r,n){var o=je.join2("string"==typeof e?e:Ve.getPath(e),t),i=Ve.getMode(!!r,!!n);Ve.createDevice.major||(Ve.createDevice.major=64);var a=Ve.makedev(Ve.createDevice.major++,0);return Ve.registerDevice(a,{open:function(e){e.seekable=!1},close:function(e){n&&n.buffer&&n.buffer.length&&n(10)},read:function(e,t,n,o,i){for(var a=0,s=0;s<o;s++){var A;try{A=r()}catch(e){throw new Ve.ErrnoError(29)}if(void 0===A&&0===a)throw new Ve.ErrnoError(6);if(null==A)break;a++,t[n+s]=A}return a&&(e.node.timestamp=Date.now()),a},write:function(e,t,r,o,i){for(var a=0;a<o;a++)try{n(t[r+a])}catch(e){throw new Ve.ErrnoError(29)}return o&&(e.node.timestamp=Date.now()),a}}),Ve.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(!d)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=on(d(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new Ve.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 ".concat(r,". Status: ").concat(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 (".concat(e,", ").concat(t,") or no bytes requested!"));if(t>n-1)throw new Error("only ".concat(n," bytes available! programmer error!"));var o=new XMLHttpRequest;if(o.open("GET",r,!1),n!==a&&o.setRequestHeader("Range","bytes=".concat(e,"-").concat(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 ".concat(r,". Status: ").concat(o.status));return void 0!==o.response?new Uint8Array(o.response||[]):on(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,p("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(!c)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var a=new i;Object.defineProperties(a,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var s={isDevice:!1,contents:a}}else s={isDevice:!1,url:r};var A=Ve.createFile(e,t,s,n,o);s.contents?A.contents=s.contents:s.url&&(A.contents=null,A.url=s.url),Object.defineProperties(A,{usedBytes:{get:function(){return this.contents.length}}});var u={};return Object.keys(A.stream_ops).forEach((function(e){var t=A.stream_ops[e];u[e]=function(){return Ve.forceLoadFile(A),t.apply(null,arguments)}})),u.read=function(e,t,r,n,o){Ve.forceLoadFile(A);var i=e.node.contents;if(o>=i.length)return 0;var a=Math.min(i.length-o,n);if(v(a>=0),i.slice)for(var s=0;s<a;s++)t[r+s]=i[o+s];else for(s=0;s<a;s++)t[r+s]=i.get(o+s);return a},A.stream_ops=u,A},createPreloadedFile:function(e,t,r,o,i,a,s,A,c,u){Te.init();var g=t?Le.resolve(je.join2(e,t)):e,d=me("cp ".concat(g));function f(r){function l(r){u&&u(),A||Ve.createDataFile(e,t,r,o,i,c),a&&a(),Ce(d)}var f=!1;n.preloadPlugins.forEach((function(e){f||e.canHandle(g)&&(e.handle(r,g,l,(function(){s&&s(),Ce(d)})),f=!0)})),f||l(r)}ye(d),"string"==typeof r?function(e,t,r){var n=me("al ".concat(e));l(e,(function(r){v(r,'Loading data file "'.concat(e,'" failed (no arrayBuffer).')),t(new Uint8Array(r)),n&&Ce(n)}),(function(t){if(!r)throw'Loading data file "'.concat(e,'" failed.');r()})),n&&ye(n)}(r,(function(e){f(e)}),s):f(r)},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return"EM_FS_".concat(window.location.pathname)},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(e,t,r){t=t||function(){},r=r||function(){};var n=Ve.indexedDB();try{var o=n.open(Ve.DB_NAME(),Ve.DB_VERSION)}catch(e){return r(e)}o.onupgradeneeded=function(){p("creating db"),o.result.createObjectStore(Ve.DB_STORE_NAME)},o.onsuccess=function(){var n=o.result.transaction([Ve.DB_STORE_NAME],"readwrite"),i=n.objectStore(Ve.DB_STORE_NAME),a=0,s=0,A=e.length;function c(){0==s?t():r()}e.forEach((function(e){var t=i.put(Ve.analyzePath(e).object.contents,e);t.onsuccess=function(){++a+s==A&&c()},t.onerror=function(){s++,a+s==A&&c()}})),n.onerror=r},o.onerror=r},loadFilesFromDB:function(e,t,r){t=t||function(){},r=r||function(){};var n=Ve.indexedDB();try{var o=n.open(Ve.DB_NAME(),Ve.DB_VERSION)}catch(e){return r(e)}o.onupgradeneeded=r,o.onsuccess=function(){var n=o.result;try{var i=n.transaction([Ve.DB_STORE_NAME],"readonly")}catch(e){return void r(e)}var a=i.objectStore(Ve.DB_STORE_NAME),s=0,A=0,c=e.length;function u(){0==A?t():r()}e.forEach((function(e){var t=a.get(e);t.onsuccess=function(){Ve.analyzePath(e).exists&&Ve.unlink(e),Ve.createDataFile(je.dirname(e),je.basename(e),t.result,!0,!0,!0),++s+A==c&&u()},t.onerror=function(){A++,s+A==c&&u()}})),i.onerror=r},o.onerror=r},absolutePath:function(){we("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder:function(){we("FS.createFolder has been removed; use FS.mkdir instead")},createLink:function(){we("FS.createLink has been removed; use FS.symlink instead")},joinPath:function(){we("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc:function(){we("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath:function(){we("FS.standardizePath has been removed; use PATH.normalize instead")}},ze={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt:function(e,t,r){if("/"===t[0])return t;var n;if(-100===e)n=Ve.cwd();else{var o=Ve.getStream(e);if(!o)throw new Ve.ErrnoError(8);n=o.path}if(0==t.length){if(!r)throw new Ve.ErrnoError(44);return n}return je.join2(n,t)},doStat:function(e,t,r){try{var n=e(t)}catch(e){if(e&&e.node&&je.normalize(t)!==je.normalize(Ve.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,fe=[n.size>>>0,(le=n.size,+Math.abs(le)>=1?le>0?(0|Math.min(+Math.floor(le/4294967296),4294967295))>>>0:~~+Math.ceil((le-+(~~le>>>0))/4294967296)>>>0:0)],j[r+40>>2]=fe[0],j[r+44>>2]=fe[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,fe=[n.ino>>>0,(le=n.ino,+Math.abs(le)>=1?le>0?(0|Math.min(+Math.floor(le/4294967296),4294967295))>>>0:~~+Math.ceil((le-+(~~le>>>0))/4294967296)>>>0:0)],j[r+80>>2]=fe[0],j[r+84>>2]=fe[1],0},doMsync:function(e,t,r,n,o){var i=k.slice(e,e+r);Ve.msync(t,i,o,r,n)},doMkdir:function(e,t){return"/"===(e=je.normalize(e))[e.length-1]&&(e=e.substr(0,e.length-1)),Ve.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 Ve.mknod(e,t,r),0},doReadlink:function(e,t,r){if(r<=0)return-28;var n=Ve.readlink(e),o=Math.min(r,R(n)),i=F[t+o];return M(n,t,r+1),F[t+o]=i,o},doAccess:function(e,t){if(-8&t)return-28;var r;if(!(r=Ve.lookupPath(e,{follow:!0}).node))return-44;var n="";return 4&t&&(n+="r"),2&t&&(n+="w"),1&t&&(n+="x"),n&&Ve.nodePermissions(r,n)?-2:0},doDup:function(e,t,r){var n=Ve.getStream(r);return n&&Ve.close(n),Ve.open(e,t,0,r,r).fd},doReadv:function(e,t,r,n){for(var o=0,i=0;i<r;i++){var a=j[t+8*i>>2],s=j[t+(8*i+4)>>2],A=Ve.read(e,F,a,s,n);if(A<0)return-1;if(o+=A,A<s)break}return o},doWritev:function(e,t,r,n){for(var o=0,i=0;i<r;i++){var a=j[t+8*i>>2],s=j[t+(8*i+4)>>2],A=Ve.write(e,F,a,s,n);if(A<0)return-1;o+=A}return o},varargs:void 0,get:function(){return v(null!=ze.varargs),ze.varargs+=4,j[ze.varargs-4>>2]},getStr:function(e){return Q(e)},getStreamFromFD:function(e){var t=Ve.getStream(e);if(!t)throw new Ve.ErrnoError(8);return t},get64:function(e,t){return v(e>=0?0===t:-1===t),e}},Je=48,Ke=57;function Ze(e){if(void 0===e)return"_unknown";var t=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return t>=Je&&t<=Ke?"_".concat(e):e}function qe(e,t){return e=Ze(e),new Function("body","return function ".concat(e,'() {\n "use strict"; return body.apply(this, arguments);\n};\n'))(t)}var $e=[],et=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function tt(){for(var e=0,t=5;t<et.length;++t)void 0!==et[t]&&++e;return e}function rt(){for(var e=5;e<et.length;++e)if(void 0!==et[e])return et[e];return null}function nt(e){switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var t=$e.length?$e.pop():et.length;return et[t]={refcount:1,value:e},t}}function ot(e,t){var r=qe(t,(function(e){this.name=t,this.message=e;var r=new Error(e).stack;void 0!==r&&(this.stack="".concat(this.toString(),"\n").concat(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:"".concat(this.name,": ").concat(this.message)},r}var it=void 0,at=void 0;function st(e){for(var t="",r=e;k[r];)t+=at[k[r++]];return t}function At(){return Object.keys(ft).length}function ct(){var e=[];for(var t in ft)ft.hasOwnProperty(t)&&e.push(ft[t]);return e}var ut=[];function gt(){for(;ut.length;){var e=ut.pop();e.$$.deleteScheduled=!1,e.delete()}}var dt=void 0;function lt(e){dt=e,ut.length&&dt&&dt(gt)}var ft={},Et=void 0;function pt(e){throw new Et(e)}function ht(e,t){for(void 0===t&&pt("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t}function It(e){return e||pt("Cannot use deleted val. handle = ".concat(e)),et[e].value}var mt={};function yt(e){var t=un(e),r=st(t);return sn(t),r}function Ct(e,t){var r=mt[e];return void 0===r&&pt("".concat(t," has unknown type ").concat(yt(e))),r}function wt(e){}var _t=!1;function Bt(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):(_t=new FinalizationGroup((function(e){for(var t=e.next();!t.done;t=e.next()){var r=t.value;r.ptr?Bt(r):console.warn("object already deleted: ".concat(r.ptr))}})),wt=function(e){_t.unregister(e.$$)},(vt=function(e){return _t.register(e,e.$$,e.$$),e})(e))}var Dt={};function bt(e){for(;e.length;){var t=e.pop();e.pop()(t)}}function Ot(e){return this.fromWireType(U[e>>2])}var Qt={},Tt={},Pt=void 0;function Mt(e){throw new Pt(e)}function Rt(e,t,r){function n(t){var n=r(t);n.length!==e.length&&Mt("Mismatched type converter count");for(var o=0;o<e.length;++o)Ft(e[o],n[o])}e.forEach((function(e){Tt[e]=t}));var o=new Array(t.length),i=[],a=0;t.forEach((function(e,t){mt.hasOwnProperty(e)?o[t]=mt[e]:(i.push(e),Qt.hasOwnProperty(e)||(Qt[e]=[]),Qt[e].push((function(){o[t]=mt[e],++a===i.length&&n(o)})))})),0===i.length&&n(o)}function St(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: ".concat(e))}}function Ft(e,t,r){if(r=r||{},!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");var n=t.name;if(e||pt('type "'.concat(n,'" must have a positive integer typeid pointer')),mt.hasOwnProperty(e)){if(r.ignoreDuplicateRegistrations)return;pt("Cannot register type '".concat(n,"' twice"))}if(mt[e]=t,delete Tt[e],Qt.hasOwnProperty(e)){var o=Qt[e];delete Qt[e],o.forEach((function(e){e()}))}}function kt(e){if(!(this instanceof Ht))return!1;if(!(e instanceof Ht))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 xt(e){pt("".concat(e.$$.ptrType.registeredClass.name," instance already deleted"))}function Nt(){if(this.$$.ptr||xt(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 jt(){this.$$.ptr||xt(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&pt("Object already scheduled for deletion"),wt(this),Bt(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Ut(){return!this.$$.ptr}function Lt(){return this.$$.ptr||xt(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&pt("Object already scheduled for deletion"),ut.push(this),1===ut.length&&dt&&dt(gt),this.$$.deleteScheduled=!0,this}function Ht(){}var Gt={};function Yt(e,t,r){if(void 0===e[t].overloadTable){var n=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||pt("Function '".concat(r,"' called with an invalid number of arguments (").concat(arguments.length,") - expects one of (").concat(e[t].overloadTable,")!")),e[t].overloadTable[arguments.length].apply(this,arguments)},e[t].overloadTable=[],e[t].overloadTable[n.argCount]=n}}function Xt(e,t,r){n.hasOwnProperty(e)?((void 0===r||void 0!==n[e].overloadTable&&void 0!==n[e].overloadTable[r])&&pt("Cannot register public name '".concat(e,"' twice")),Yt(n,e,e),n.hasOwnProperty(r)&&pt("Cannot register multiple overloads of a function with the same number of arguments (".concat(r,")!")),n[e].overloadTable[r]=t):(n[e]=t,void 0!==r&&(n[e].numArguments=r))}function Wt(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 Vt(e,t,r){for(;t!==r;)t.upcast||pt("Expected null or instance of ".concat(r.name,", got an instance of ").concat(t.name)),e=t.upcast(e),t=t.baseClass;return e}function zt(e,t){if(null===t)return this.isReference&&pt("null is not a valid ".concat(this.name)),0;t.$$||pt('Cannot pass "'.concat(fr(t),'" as a ').concat(this.name)),t.$$.ptr||pt("Cannot pass deleted object as a pointer of type ".concat(this.name));var r=t.$$.ptrType.registeredClass;return Vt(t.$$.ptr,r,this.registeredClass)}function Jt(e,t){var r;if(null===t)return this.isReference&&pt("null is not a valid ".concat(this.name)),this.isSmartPointer?(r=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,r),r):0;t.$$||pt('Cannot pass "'.concat(fr(t),'" as a ').concat(this.name)),t.$$.ptr||pt("Cannot pass deleted object as a pointer of type ".concat(this.name)),!this.isConst&&t.$$.ptrType.isConst&&pt("Cannot convert argument of type ".concat(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name," to parameter type ").concat(this.name));var n=t.$$.ptrType.registeredClass;if(r=Vt(t.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===t.$$.smartPtr&&pt("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?r=t.$$.smartPtr:pt("Cannot convert argument of type ".concat(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name," to parameter type ").concat(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,nt((function(){o.delete()}))),null!==e&&e.push(this.rawDestructor,r)}break;default:pt("Unsupporting sharing policy")}return r}function Kt(e,t){if(null===t)return this.isReference&&pt("null is not a valid ".concat(this.name)),0;t.$$||pt('Cannot pass "'.concat(fr(t),'" as a ').concat(this.name)),t.$$.ptr||pt("Cannot pass deleted object as a pointer of type ".concat(this.name)),t.$$.ptrType.isConst&&pt("Cannot convert argument of type ".concat(t.$$.ptrType.name," to parameter type ").concat(this.name));var r=t.$$.ptrType.registeredClass;return Vt(t.$$.ptr,r,this.registeredClass)}function Zt(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e}function qt(e){this.rawDestructor&&this.rawDestructor(e)}function $t(e){null!==e&&e.delete()}function er(e,t,r){if(t===r)return e;if(void 0===r.baseClass)return null;var n=er(e,t,r.baseClass);return null===n?null:r.downcast(n)}function tr(e,t){return t.ptrType&&t.ptr||Mt("makeClassHandle requires ptr and ptrType"),!!t.smartPtrType!=!!t.smartPtr&&Mt("Both smartPtrType and smartPtr must be specified"),t.count={value:1},vt(Object.create(e,{$$:{value:t}}))}function rr(e){var t=this.getPointee(e);if(!t)return this.destructor(e),null;var r=function(e,t){return t=ht(e,t),ft[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?tr(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):tr(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var i,a=this.registeredClass.getActualType(t),s=Gt[a];if(!s)return o.call(this);i=this.isConst?s.constPointerType:s.pointerType;var A=er(t,this.registeredClass,i.registeredClass);return null===A?o.call(this):this.isSmartPointer?tr(i.registeredClass.instancePrototype,{ptrType:i,ptr:A,smartPtrType:this,smartPtr:e}):tr(i.registeredClass.instancePrototype,{ptrType:i,ptr:A})}function nr(e,t,r,n,o,i,a,s,A,c,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=A,this.rawShare=c,this.rawDestructor=u,o||void 0!==t.baseClass?this.toWireType=Jt:n?(this.toWireType=zt,this.destructorFunction=null):(this.toWireType=Kt,this.destructorFunction=null)}function or(e,t,r){n.hasOwnProperty(e)||Mt("Replacing nonexistant public symbol"),void 0!==n[e].overloadTable&&void 0!==r?n[e].overloadTable[r]=t:(n[e]=t,n[e].argCount=r)}function ir(e,t,r){return e.includes("j")?function(e,t,r){v("dynCall_".concat(e)in n,"bad function pointer type - no table for sig '".concat(e,"'")),r&&r.length?v(r.length===e.substring(1).replace(/j/g,"--").length):v(1==e.length);var o=n["dynCall_".concat(e)];return r&&r.length?o.apply(null,[t].concat(r)):o.call(null,t)}(e,t,r):(v($.get(t),"missing table entry in dynCall: ".concat(t)),$.get(t).apply(null,r))}function ar(e,t){var r=(e=st(e)).includes("j")?function(e,t){v(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 ir(e,t,r)}}(e,t):$.get(t);return"function"!=typeof r&&pt("unknown function pointer with signature ".concat(e,": ").concat(t)),r}var sr=void 0;function Ar(e,t){var r=[],n={};throw t.forEach((function e(t){n[t]||mt[t]||(Tt[t]?Tt[t].forEach(e):(r.push(t),n[t]=!0))})),new sr("".concat(e,": ").concat(r.map(yt).join([", "])))}function cr(e,t){if(!(e instanceof Function))throw new TypeError("new_ called with constructor type ".concat(E(e)," which is not a function"));var r=qe(e.name||"unknownFunctionName",(function(){}));r.prototype=e.prototype;var n=new r,o=e.apply(n,t);return o instanceof Object?o:n}function ur(e,t,r,n,o){var i=t.length;i<2&&pt("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var a=null!==t[1]&&null!==r,s=!1,A=1;A<t.length;++A)if(null!==t[A]&&void 0===t[A].destructorFunction){s=!0;break}var c="void"!==t[0].name,u="",g="";for(A=0;A<i-2;++A)u+="".concat(0!==A?", ":"","arg").concat(A),g+="".concat(0!==A?", ":"","arg").concat(A,"Wired");var d="return function ".concat(Ze(e),"(").concat(u,") {\nif (arguments.length !== ").concat(i-2,") {\nthrowBindingError('function ").concat(e," called with ' + arguments.length + ' arguments, expected ").concat(i-2," args!');\n}\n");s&&(d+="var destructors = [];\n");var l=s?"destructors":"null",f=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],E=[pt,n,o,bt,t[0],t[1]];for(a&&(d+="var thisWired = classParam.toWireType(".concat(l,", this);\n")),A=0;A<i-2;++A)d+="var arg".concat(A,"Wired = argType").concat(A,".toWireType(").concat(l,", arg").concat(A,"); // ").concat(t[A+2].name,"\n"),f.push("argType".concat(A)),E.push(t[A+2]);if(a&&(g="thisWired".concat(g.length>0?", ":"").concat(g)),d+="".concat(c?"var rv = ":"","invoker(fn").concat(g.length>0?", ":"").concat(g,");\n"),s)d+="runDestructors(destructors);\n";else for(A=a?1:2;A<t.length;++A){var p=1===A?"thisWired":"arg".concat(A-2,"Wired");null!==t[A].destructorFunction&&(d+="".concat(p,"_dtor(").concat(p,"); // ").concat(t[A].name,"\n"),f.push("".concat(p,"_dtor")),E.push(t[A].destructorFunction))}return c&&(d+="var ret = retType.fromWireType(rv);\nreturn ret;\n"),d+="}\n",f.push(d),cr(Function,f).apply(null,E)}function gr(e,t){for(var r=[],n=0;n<e;n++)r.push(j[(t>>2)+n]);return r}function dr(e,t,r){return e instanceof Object||pt("".concat(r,' with invalid "this": ').concat(e)),e instanceof t.registeredClass.constructor||pt("".concat(r,' incompatible with "this" of type ').concat(e.constructor.name)),e.$$.ptr||pt("cannot call emscripten binding method ".concat(r," on deleted object")),Vt(e.$$.ptr,e.$$.ptrType.registeredClass,t.registeredClass)}function lr(e){e>4&&0==--et[e].refcount&&(et[e]=void 0,$e.push(e))}function fr(e){if(null===e)return"null";var t=E(e);return"object"===t||"array"===t||"function"===t?e.toString():"".concat(e)}function Er(e,t){switch(t){case 2:return function(e){return this.fromWireType(L[e>>2])};case 3:return function(e){return this.fromWireType(H[e>>3])};default:throw new TypeError("Unknown float type: ".concat(e))}}function pr(e,t,r){switch(t){case 0:return r?function(e){return F[e]}:function(e){return k[e]};case 1:return r?function(e){return x[e>>1]}:function(e){return N[e>>1]};case 2:return r?function(e){return j[e>>2]}:function(e){return U[e>>2]};default:throw new TypeError("Unknown integer type: ".concat(e))}}var hr={},Ir=[],mr=[];function yr(e){try{return C.grow(e-S.byteLength+65535>>>16),Z(C.buffer),1}catch(t){h("emscripten_realloc_buffer: Attempted to grow heap from ".concat(S.byteLength," bytes to ").concat(e," bytes, but got error: ").concat(t))}}function Cr(e){we("Cannot use emscripten_generate_pc (needed by __builtin_return_address) without -s USE_OFFSET_CONVERTER")}var wr={};function _r(e){e.forEach((function(e){var t=Cr();t&&(wr[t]=e)}))}var Br={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){Br.lastError||(Br.lastError=e)},getNewId:function(e){for(var t=Br.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=Br.log2ceilLookup(Br.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=Br.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=Zr.createBuffer(),t.GLctx.bindBuffer(34963,t.tempQuadIndexBuffer);for(var A=Br.MAX_TEMP_BUFFER_SIZE>>1,c=new Uint16Array(A),u=(n=0,0);c[n++]=u,!(n>=A||(c[n++]=u+1,n>=A)||(c[n++]=u+2,n>=A)||(c[n++]=u,n>=A)||(c[n++]=u+2,n>=A)||(c[n++]=u+3,n>=A));)u+=4;t.GLctx.bufferData(34963,c,35044),t.GLctx.bindBuffer(34963,null)}},getTempVertexBuffer:function(e){var t=Br.log2ceilLookup(e),r=Br.currentContext.tempVertexBuffers1[t],n=Br.currentContext.tempVertexBufferCounters1[t];Br.currentContext.tempVertexBufferCounters1[t]=Br.currentContext.tempVertexBufferCounters1[t]+1&Br.numTempVertexBuffersPerSize-1;var o=r[n];if(o)return o;var i=Zr.getParameter(34964);return r[n]=Zr.createBuffer(),Zr.bindBuffer(34962,r[n]),Zr.bufferData(34962,1<<t,35048),Zr.bindBuffer(34962,i),r[n]},getTempIndexBuffer:function(e){var t=Br.log2ceilLookup(e),r=Br.currentContext.tempIndexBuffers[t];if(r)return r;var n=Zr.getParameter(34965);return Br.currentContext.tempIndexBuffers[t]=Zr.createBuffer(),Zr.bindBuffer(34963,Br.currentContext.tempIndexBuffers[t]),Zr.bufferData(34963,1<<t,35048),Zr.bindBuffer(34963,n),Br.currentContext.tempIndexBuffers[t]},newRenderingFrameStarted:function(){if(Br.currentContext){var e=Br.currentContext.tempVertexBuffers1;Br.currentContext.tempVertexBuffers1=Br.currentContext.tempVertexBuffers2,Br.currentContext.tempVertexBuffers2=e,e=Br.currentContext.tempVertexBufferCounters1,Br.currentContext.tempVertexBufferCounters1=Br.currentContext.tempVertexBufferCounters2,Br.currentContext.tempVertexBufferCounters2=e;for(var t=Br.log2ceilLookup(Br.MAX_TEMP_BUFFER_SIZE),r=0;r<=t;++r)Br.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+=Q(j[r+4*i>>2],a<0?void 0:a)}return o},calcBufLength:function(e,t,r,n){return r>0?n*r:e*Br.byteSizeByType[t-Br.byteSizeByTypeRoot]*n},usedTempBuffers:[],preDrawHandleClientVertexAttribBindings:function(e){Br.resetBufferBinding=!1;for(var t=0;t<Br.currentContext.maxVertexAttribs;++t){var r=Br.currentContext.clientBuffers[t];if(r.clientside&&r.enabled){Br.resetBufferBinding=!0;var n=Br.calcBufLength(r.size,r.type,r.stride,e),o=Br.getTempVertexBuffer(n);Zr.bindBuffer(34962,o),Zr.bufferSubData(34962,0,k.subarray(r.ptr,r.ptr+n)),r.vertexAttribPointerAdaptor.call(Zr,t,r.size,r.type,r.normalized,r.stride,0)}}},postDrawHandleClientVertexAttribBindings:function(){Br.resetBufferBinding&&Zr.bindBuffer(34962,Br.buffers[Zr.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?Br.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(),Br.resizeOffscreenFramebuffer(e),t.bindTexture(3553,e.defaultColorTarget),t.texParameteri(3553,10241,9728),t.texParameteri(3553,10240,9728),t.texParameteri(3553,10242,33071),t.texParameteri(3553,10243,33071),t.texImage2D(3553,0,6408,t.canvas.width,t.canvas.height,0,6408,5121,null),t.framebufferTexture2D(36160,36064,3553,e.defaultColorTarget,0),t.bindTexture(3553,null),t.createRenderbuffer(),t.bindRenderbuffer(36161,e.defaultDepthTarget),t.renderbufferStorage(36161,33189,t.canvas.width,t.canvas.height),t.framebufferRenderbuffer(36160,36096,36161,e.defaultDepthTarget),t.bindRenderbuffer(36161,null);var i=t.createBuffer();t.bindBuffer(34962,i),t.bufferData(34962,new Float32Array([-1,-1,-1,1,1,-1,1,1]),35044),t.bindBuffer(34962,null),e.blitVB=i;var a=t.createShader(35633);t.shaderSource(a,"attribute vec2 pos;varying lowp vec2 tex;void main() { tex = pos * 0.5 + vec2(0.5,0.5); gl_Position = vec4(pos, 0.0, 1.0); }"),t.compileShader(a);var s=t.createShader(35632);t.shaderSource(s,"varying lowp vec2 tex;uniform sampler2D sampler;void main() { gl_FragColor = texture2D(sampler, tex); }"),t.compileShader(s);var A=t.createProgram();t.attachShader(A,a),t.attachShader(A,s),t.linkProgram(A),e.blitProgram=A,e.blitPosLoc=t.getAttribLocation(A,"pos"),t.useProgram(A),t.uniform1i(t.getUniformLocation(A,"sampler"),0),t.useProgram(null),e.defaultVao=void 0,t.createVertexArray&&(e.defaultVao=t.createVertexArray(),t.bindVertexArray(e.defaultVao),t.enableVertexAttribArray(e.blitPosLoc),t.bindVertexArray(null))},resizeOffscreenFramebuffer:function(e){var t=e.GLctx;if(e.defaultColorTarget){var r=t.getParameter(32873);t.bindTexture(3553,e.defaultColorTarget),t.texImage2D(3553,0,6408,t.drawingBufferWidth,t.drawingBufferHeight,0,6408,5121,null),t.bindTexture(3553,r)}if(e.defaultDepthTarget){var n=t.getParameter(36007);t.bindRenderbuffer(36161,e.defaultDepthTarget),t.renderbufferStorage(36161,33189,t.drawingBufferWidth,t.drawingBufferHeight),t.bindRenderbuffer(36161,n)}},blitOffscreenFramebuffer:function(e){var t=e.GLctx,r=t.getParameter(3089);r&&t.disable(3089);var n=t.getParameter(36006);if(t.blitFramebuffer&&!e.defaultFboForbidBlitFramebuffer)t.bindFramebuffer(36008,e.defaultFbo),t.bindFramebuffer(36009,null),t.blitFramebuffer(0,0,t.canvas.width,t.canvas.height,0,0,t.canvas.width,t.canvas.height,16384,9728);else{var o=function(){t.vertexAttribPointer(e.blitPosLoc,2,5126,!1,0,0),t.drawArrays(5,0,4)};t.bindFramebuffer(36160,null);var i=t.getParameter(35725);t.useProgram(e.blitProgram);var a=t.getParameter(34964);t.bindBuffer(34962,e.blitVB);var s=t.getParameter(34016);t.activeTexture(33984);var A=t.getParameter(32873);t.bindTexture(3553,e.defaultColorTarget);var c=t.getParameter(3042);c&&t.disable(3042);var u=t.getParameter(2884);u&&t.disable(2884);var g=t.getParameter(2929);g&&t.disable(2929);var d=t.getParameter(2960);if(d&&t.disable(2960),e.defaultVao){var l=t.getParameter(34229);t.bindVertexArray(e.defaultVao),o(),t.bindVertexArray(l)}else{for(var f={buffer:t.getVertexAttrib(e.blitPosLoc,34975),size:t.getVertexAttrib(e.blitPosLoc,34339),stride:t.getVertexAttrib(e.blitPosLoc,34340),type:t.getVertexAttrib(e.blitPosLoc,34341),normalized:t.getVertexAttrib(e.blitPosLoc,34922),pointer:t.getVertexAttribOffset(e.blitPosLoc,34373)},E=t.getParameter(34921),p=[],h=0;h<E;++h){var I=t.getVertexAttrib(h,34338),m=h==e.blitPosLoc;I&&!m&&t.disableVertexAttribArray(h),!I&&m&&t.enableVertexAttribArray(h),p[h]=I}for(o(),h=0;h<E;++h){I=p[h];var y=h==e.blitPosLoc;I&&!y&&t.enableVertexAttribArray(h),!I&&y&&t.disableVertexAttribArray(h)}t.bindBuffer(34962,f.buffer),t.vertexAttribPointer(e.blitPosLoc,f.size,f.type,f.normalized,f.stride,f.offset)}d&&t.enable(2960),g&&t.enable(2929),u&&t.enable(2884),c&&t.enable(3042),t.bindTexture(3553,A),t.activeTexture(s),t.bindBuffer(34962,a),t.useProgram(i)}t.bindFramebuffer(36160,n),r&&t.enable(3089)},registerContext:function(e,t){var r=Br.getNewId(Br.contexts),n={handle:r,attributes:t,version:t.majorVersion,GLctx:e};e.canvas&&(e.canvas.GLctxObject=n),Br.contexts[r]=n,(void 0===t.enableExtensionsByDefault||t.enableExtensionsByDefault)&&Br.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 Br.generateTempBuffers(!1,n),t.renderViaOffscreenBackBuffer&&Br.createOffscreenFramebuffer(n),r},makeContextCurrent:function(e){return Br.currentContext=Br.contexts[e],n.ctx=Zr=Br.currentContext&&Br.currentContext.GLctx,!(e&&!Zr)},getContext:function(e){return Br.contexts[e]},deleteContext:function(e){Br.currentContext===Br.contexts[e]&&(Br.currentContext=null),"object"===E(vr)&&vr.removeAllHandlersOnTarget(Br.contexts[e].GLctx.canvas),Br.contexts[e]&&Br.contexts[e].GLctx.canvas&&(Br.contexts[e].GLctx.canvas.GLctxObject=void 0),Br.contexts[e]=null},initExtensions:function(e){if(e||(e=Br.currentContext),!e.initExtensionsDone){e.initExtensionsDone=!0;var t,r=e.GLctx;!function(e){var t=e.getExtension("ANGLE_instanced_arrays");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");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");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||(ie.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}},Dr=["default","low-power","high-performance"],br=[0,"undefined"!=typeof document?document:0,"undefined"!=typeof window?window:0];function Or(e){return"number"==typeof e&&(e=Q(e)),e&&"#canvas"!==e?void 0!==Br&&Br.offscreenCanvases[e]?Br.offscreenCanvases[e]:function(e){I("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=br[e]||Q(e)),"#window"===e?window:"#document"===e?document:"#screen"===e?screen:"#canvas"===e?n.canvas:"string"==typeof e?document.getElementById(e):e):window}catch(e){return null}}(e):void 0!==Br&&Br.offscreenCanvases.canvas?Br.offscreenCanvases.canvas:n.canvas}function Qr(){return Br.currentContext?Br.currentContext.handle:0}function Tr(e){return Br.makeContextCurrent(e)?0:-5}n._emscripten_webgl_get_current_context=Qr,n._emscripten_webgl_make_context_current=Tr;var Pr={};function Mr(){if(!Mr.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:"".concat(("object"===("undefined"==typeof navigator?"undefined":E(navigator))&&navigator.languages&&navigator.languages[0]||"C").replace("-","_"),".UTF-8"),_:a||"./this.program"};for(var t in Pr)void 0===Pr[t]?delete e[t]:e[t]=Pr[t];var r=[];for(var t in e)r.push("".concat(t,"=").concat(e[t]));Mr.strings=r}return Mr.strings}var Rr=[];function Sr(e,t,r,n){for(var o=0;o<e;o++){var i=Zr[r](),a=i&&Br.getNewId(n);i?(i.name=a,n[a]=i):Br.recordError(1282),j[t+4*o>>2]=a}}function Fr(e,t){U[e>>2]=t,U[e+4>>2]=(t-U[e>>2])/4294967296;var r=t>=0?function(e){return U[e>>2]+4294967296*U[e+4>>2]}(e):function(e){return U[e>>2]+4294967296*j[e+4>>2]}(e);r!=t&&I("writeI53ToI64() out of range: serialized JS Number ".concat(t," to Wasm heap as bytes lo=0x").concat(U[e>>2].toString(16),", hi=0x").concat(U[e+4>>2].toString(16),", which deserializes back to ").concat(r," instead!"))}function kr(e){var t=R(e)+1,r=An(t);return M(e,r,t),r}function xr(e){return"]"==e.slice(-1)&&e.lastIndexOf("[")}function Nr(e){return 0==(e-=5120)?F:1==e?k:2==e?x:4==e?j:6==e?L:5==e||28922==e||28520==e||30779==e||30782==e?U:N}function jr(e){return 31-Math.clz32(e.BYTES_PER_ELEMENT)}function Ur(e,t,r,n,o,i){var a=Nr(e),s=jr(a),A=1<<s,c=function(e){return{5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4}[e-6402]||1}(t)*A,u=function(e,t,r,n){var o;return t*(e*r+(o=n)-1&-o)}(r,n,c,Br.unpackAlignment);return a.subarray(o>>s,o+u>>s)}function Lr(e){var t=Zr.currentProgram;if(t){var r=t.uniformLocsById[e];return"number"==typeof r&&(t.uniformLocsById[e]=r=Zr.getUniformLocation(t,t.uniformArrayNamesById[e]+(r>0?"[".concat(r,"]"):""))),r}Br.recordError(1282)}var Hr=[],Gr=[];function Yr(){if(!Yr.called){Yr.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[fn()>>2]=60*i,j[ln()>>2]=Number(n!=o);var a=u(t),s=u(r),A=K(a),c=K(s);o<n?(j[dn()>>2]=A,j[dn()+4>>2]=c):(j[dn()>>2]=c,j[dn()+4>>2]=A)}function u(e){var t=e.toTimeString().match(/\(([A-Za-z ]+)\)$/);return t?t[1]:"GMT"}}function Xr(e){return e%4==0&&(e%100!=0||e%400==0)}function Wr(e,t){for(var r=0,n=0;n<=t;r+=e[n++]);return r}var Vr=[31,29,31,30,31,30,31,31,30,31,30,31],zr=[31,28,31,30,31,30,31,31,30,31,30,31];function Jr(e,t){for(var r=new Date(e.getTime());t>0;){var n=Xr(r.getFullYear()),o=r.getMonth(),i=(n?Vr:zr)[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 Kr(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?Q(o):""},a=Q(r),s={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var A in s)a=a.replace(new RegExp(A,"g"),s[A]);var c=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],u=["January","February","March","April","May","June","July","August","September","October","November","December"];function g(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 g(e,t,"0")}function l(e,t){function r(e){return e<0?-1:e>0?1:0}var n;return 0===(n=r(e.getFullYear()-t.getFullYear()))&&0===(n=r(e.getMonth()-t.getMonth()))&&(n=r(e.getDate()-t.getDate())),n}function 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 E(e){var t=Jr(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 l(o,t)<=0?l(i,t)<=0?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}var p={"%a":function(e){return c[e.tm_wday].substring(0,3)},"%A":function(e){return c[e.tm_wday]},"%b":function(e){return 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 g(e.tm_mday,2," ")},"%g":function(e){return E(e).toString().substring(2)},"%G":function(e){return E(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+Wr(Xr(e.tm_year+1900)?Vr:zr,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:Jr(t,7-t.getDay()),n=new Date(e.tm_year+1900,e.tm_mon,e.tm_mday);if(l(r,n)<0){var o=Wr(Xr(n.getFullYear())?Vr:zr,n.getMonth()-1)-31,i=31-r.getDate()+o+n.getDate();return d(Math.ceil(i/7),2)}return 0===l(r,t)?"01":"00"},"%V":function(e){var t,r=new Date(e.tm_year+1900,0,4),n=new Date(e.tm_year+1901,0,4),o=f(r),i=f(n),a=Jr(new Date(e.tm_year+1900,0,1),e.tm_yday);return l(a,o)<0?"53":l(i,a)<=0?"01":(t=o.getFullYear()<e.tm_year+1900?e.tm_yday+32-o.getDate():e.tm_yday+1-o.getDate(),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:Jr(t,0===t.getDay()?1:7-t.getDay()+1),n=new Date(e.tm_year+1900,e.tm_mon,e.tm_mday);if(l(r,n)<0){var o=Wr(Xr(n.getFullYear())?Vr:zr,n.getMonth()-1)-31,i=31-r.getDate()+o+n.getDate();return d(Math.ceil(i/7),2)}return 0===l(r,t)?"01":"00"},"%y":function(e){return(e.tm_year+1900).toString().substring(2)},"%Y":function(e){return e.tm_year+1900},"%z":function(e){var t=e.tm_gmtoff,r=t>=0;return t=(t=Math.abs(t)/60)/60*100+t%60,(r?"+":"-")+String("0000".concat(t)).slice(-4)},"%Z":function(e){return e.tm_zone},"%%":function(){return"%"}};for(var A in p)a.includes(A)&&(a=a.replace(new RegExp(A,"g"),p[A](i)));var h,I,m=on(a,!1);return m.length>t?0:(I=e,v((h=m).length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),F.set(h,I),m.length-1)}n.requestFullscreen=function(e,t){Te.requestFullscreen(e,t)},n.requestFullScreen=function(){Te.requestFullScreen()},n.requestAnimationFrame=function(e){Te.requestAnimationFrame(e)},n.setCanvasSize=function(e,t,r){Te.setCanvasSize(e,t,r)},n.pauseMainLoop=function(){Te.mainLoop.pause()},n.resumeMainLoop=function(){Te.mainLoop.resume()},n.getUserMedia=function(){Te.getUserMedia()},n.createContext=function(e,t,r,n){return Te.createContext(e,t,r,n)};var Zr,qr=function(e,t,r,n){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=Ve.nextInode++,this.name=t,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=n},$r=365,en=146;Object.defineProperties(qr.prototype,{read:{get:function(){return(this.mode&$r)===$r},set:function(e){e?this.mode|=$r:this.mode&=-366}},write:{get:function(){return(this.mode&en)===en},set:function(e){e?this.mode|=en:this.mode&=-147}},isFolder:{get:function(){return Ve.isDir(this.mode)}},isDevice:{get:function(){return Ve.isChrdev(this.mode)}}}),Ve.FSNode=qr,Ve.staticInit(),n.FS_createPath=Ve.createPath,n.FS_createDataFile=Ve.createDataFile,n.FS_createPreloadedFile=Ve.createPreloadedFile,n.FS_createLazyFile=Ve.createLazyFile,n.FS_createDevice=Ve.createDevice,n.FS_unlink=Ve.unlink,n.count_emval_handles=tt,n.get_first_emval=rt,it=n.PureVirtualError=ot(Error,"PureVirtualError"),function(){for(var e=new Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);at=e}(),n.getInheritedInstanceCount=At,n.getLiveInheritedInstances=ct,n.flushPendingDeletes=gt,n.setDelayFunction=lt,Et=n.BindingError=ot(Error,"BindingError"),Pt=n.InternalError=ot(Error,"InternalError"),Ht.prototype.isAliasOf=kt,Ht.prototype.clone=Nt,Ht.prototype.delete=jt,Ht.prototype.isDeleted=Ut,Ht.prototype.deleteLater=Lt,nr.prototype.getPointee=Zt,nr.prototype.destructor=qt,nr.prototype.argPackAdvance=8,nr.prototype.readValueFromPointer=Ot,nr.prototype.deleteObject=$t,nr.prototype.fromWireType=rr,sr=n.UnboundTypeError=ot(Error,"UnboundTypeError");for(var tn=0;tn<32;++tn)Rr.push(new Array(tn));var rn=new Float32Array(288);for(tn=0;tn<288;++tn)Hr[tn]=rn.subarray(0,tn+1);var nn=new Int32Array(288);for(tn=0;tn<288;++tn)Gr[tn]=nn.subarray(0,tn+1);function on(e,t,r){var n=R(e)+1,o=new Array(n),i=T(e,o,0,o.length);return t&&(o.length=i),o}var an={HaveOffsetConverter:function(){return"undefined"!=typeof wasmOffsetConverter},__cxa_allocate_exception:function(e){return An(e+16)+16},__cxa_atexit:function(e,t){},__cxa_begin_catch:function(e){var t=new Se(e),r=t.get_exception_info();return r.get_caught()||r.set_caught(!0),r.set_rethrown(!1),Fe.push(t),function(e){e.add_ref()}(r),t.get_exception_ptr()},__cxa_end_catch:function(){mn(0),v(Fe.length>0);var e=Fe.pop();!function(e){if(e.release_ref()&&!e.get_rethrown()){var t=e.get_destructor();t&&$.get(t)(e.excPtr),xe(e.excPtr)}}(e.get_exception_info()),e.free(),ke=0},__cxa_find_matching_catch_2:function(){var e=ke;if(!e)return y(0),0;var t=new Re(e).get_type(),r=new Se;if(r.set_base_ptr(e),r.set_adjusted_ptr(e),!t)return y(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(yn(i,t,r.get_adjusted_ptr_addr()))return y(i),0|r.ptr}return y(t),0|r.ptr},__cxa_find_matching_catch_3:function(){var e=ke;if(!e)return y(0),0;var t=new Re(e).get_type(),r=new Se;if(r.set_base_ptr(e),r.set_adjusted_ptr(e),!t)return y(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(yn(i,t,r.get_adjusted_ptr_addr()))return y(i),0|r.ptr}return y(t),0|r.ptr},__cxa_free_exception:xe,__cxa_rethrow:function(){var e=Fe.pop();e||we("no exception to throw");var t=e.get_exception_info(),r=e.get_base_ptr();throw t.get_rethrown()?e.free():(Fe.push(e),t.set_rethrown(!0),t.set_caught(!1)),ke=r,"".concat(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 Re(e).init(t,r),ke=e,"".concat(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 Se(e),r=t.get_base_ptr();throw ke||(ke=r),t.free(),"".concat(r," - Exception catching is disabled, this exception cannot be caught. Compile with -s NO_DISABLE_EXCEPTION_CATCHING or -s EXCEPTION_CATCHING_ALLOWED=[..] to catch.")},__sys_fcntl64:function(e,t,r){ze.varargs=r;try{var n=ze.getStreamFromFD(e);switch(t){case 0:return(o=ze.get())<0?-28:Ve.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=ze.get();return n.flags|=o,0;case 12:return o=ze.get(),x[o+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return Ne(28),-1}}catch(e){return void 0!==Ve&&e instanceof Ve.ErrnoError||we(e),-e.errno}},__sys_ioctl:function(e,t,r){ze.varargs=r;try{var n=ze.getStreamFromFD(e);switch(t){case 21509:case 21505:case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:case 21523:case 21524:return n.tty?0:-59;case 21519:if(!n.tty)return-59;var o=ze.get();return j[o>>2]=0,0;case 21520:return n.tty?-28:-59;case 21531:return o=ze.get(),Ve.ioctl(n,t,o);default:we("bad ioctl syscall ".concat(t))}}catch(e){return void 0!==Ve&&e instanceof Ve.ErrnoError||we(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=Ge(t)))return-48;s=!0}else{var A=Ve.getStream(o);if(!A)return-8;var c=Ve.mmap(A,e,t,i,r,n);a=c.ptr,s=c.allocated}return ze.mappings[a]={malloc:a,len:t,allocated:s,fd:o,prot:r,flags:n,offset:i},a}(e,t,r,n,o,i)}catch(e){return void 0!==Ve&&e instanceof Ve.ErrnoError||we(e),-e.errno}},__sys_open:function(e,t,r){ze.varargs=r;try{var n=ze.getStr(e),o=r?ze.get():0;return Ve.open(n,t,o).fd}catch(e){return void 0!==Ve&&e instanceof Ve.ErrnoError||we(e),-e.errno}},__sys_stat64:function(e,t){try{return e=ze.getStr(e),ze.doStat(Ve.stat,e,t)}catch(e){return void 0!==Ve&&e instanceof Ve.ErrnoError||we(e),-e.errno}},_embind_create_inheriting_constructor:function(e,t,r){e=st(e),t=Ct(t,"wrapper"),r=It(r);var n=[].slice,o=t.registeredClass,i=o.instancePrototype,a=o.baseClass.instancePrototype,s=o.baseClass.constructor,A=qe(e,(function(){var e=this;o.baseClass.pureVirtualFunctions.forEach((function(t){if(e[t]===a[t])throw new it("Pure virtual function ".concat(t," must be implemented in JavaScript"))})),Object.defineProperty(this,"__parent",{value:i}),this.__construct.apply(this,n.call(arguments))}));for(var c in i.__construct=function(){this===i&&pt("Pass correct 'this' to __construct");var e=s.implement.apply(void 0,[this].concat(n.call(arguments)));wt(e);var t,r,a,A=e.$$;e.notifyOnDestruction(),A.preservePointerOnDelete=!0,Object.defineProperties(this,{$$:{value:A}}),vt(this),t=o,r=A.ptr,a=this,r=ht(t,r),ft.hasOwnProperty(r)?pt("Tried to register registered instance: ".concat(r)):ft[r]=a},i.__destruct=function(){var e,t;this===i&&pt("Pass correct 'this' to __destruct"),wt(this),e=o,t=this.$$.ptr,t=ht(e,t),ft.hasOwnProperty(t)?delete ft[t]:pt("Tried to unregister unregistered instance: ".concat(t))},A.prototype=Object.create(i),r)A.prototype[c]=r[c];return nt(A)},_embind_finalize_value_object:function(e){var t=Dt[e];delete Dt[e];var r=t.rawConstructor,n=t.rawDestructor,o=t.fields;Rt([e],o.map((function(e){return e.getterReturnType})).concat(o.map((function(e){return e.setterArgumentType}))),(function(e){var i={};return o.forEach((function(t,r){var n=t.fieldName,a=e[r],s=t.getter,A=t.getterContext,c=e[r+o.length],u=t.setter,g=t.setterContext;i[n]={read:function(e){return a.fromWireType(s(A,e))},write:function(e,t){var r=[];u(g,e,c.toWireType(r,t)),bt(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: "'.concat(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:Ot,destructorFunction:n}]}))},_embind_register_bigint:function(e,t,r,n,o){},_embind_register_bool:function(e,t,r,n,o){var i=St(r);Ft(e,{name:t=st(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=F;else if(2===r)n=x;else{if(4!==r)throw new TypeError("Unknown boolean type size: ".concat(t));n=j}return this.fromWireType(n[e>>i])},destructorFunction:null})},_embind_register_class:function(e,t,r,n,o,i,a,s,A,c,u,g,d){u=st(u),i=ar(o,i),s&&(s=ar(a,s)),c&&(c=ar(A,c)),d=ar(g,d);var l=Ze(u);Xt(l,(function(){Ar("Cannot construct ".concat(u," due to unbound types"),[n])})),Rt([e,t,r],n?[n]:[],(function(t){var r,o;t=t[0],o=n?(r=t.registeredClass).instancePrototype:Ht.prototype;var a=qe(l,(function(){if(Object.getPrototypeOf(this)!==A)throw new Et("Use 'new' to construct ".concat(u));if(void 0===g.constructor_body)throw new Et("".concat(u," has no accessible constructor"));var e=g.constructor_body[arguments.length];if(void 0===e)throw new Et("Tried to invoke ctor of ".concat(u," with invalid number of parameters (").concat(arguments.length,") - expected (").concat(Object.keys(g.constructor_body).toString(),") parameters instead!"));return e.apply(this,arguments)})),A=Object.create(o,{constructor:{value:a}});a.prototype=A;var g=new Wt(u,a,A,d,r,i,s,c),f=new nr(u,g,!0,!1,!1),E=new nr("".concat(u,"*"),g,!1,!1,!1),p=new nr("".concat(u," const*"),g,!1,!0,!1);return Gt[e]={pointerType:E,constPointerType:p},or(l,a),[f,E,p]}))},_embind_register_class_class_function:function(e,t,r,n,o,i,a){var s=gr(r,n);t=st(t),i=ar(o,i),Rt([],[e],(function(e){e=e[0];var n="".concat(e.name,".").concat(t);function o(){Ar("Cannot call ".concat(n," due to unbound types"),s)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]);var A=e.registeredClass.constructor;return void 0===A[t]?(o.argCount=r-1,A[t]=o):(Yt(A,t,n),A[t].overloadTable[r-1]=o),Rt([],s,(function(e){var o=[e[0],null].concat(e.slice(1)),s=ur(n,o,null,i,a);return void 0===A[t].overloadTable?(s.argCount=r-1,A[t]=s):A[t].overloadTable[r-1]=s,[]})),[]}))},_embind_register_class_constructor:function(e,t,r,n,o,i){v(t>0);var a=gr(t,r);o=ar(n,o),Rt([],[e],(function(e){e=e[0];var r="constructor ".concat(e.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 (".concat(t-1,") for class '").concat(e.name,"'! Overload resolution is currently only performed using the parameter count, not actual type info!"));return e.registeredClass.constructor_body[t-1]=function(){Ar("Cannot construct ".concat(e.name," due to unbound types"),a)},Rt([],a,(function(n){return n.splice(1,0,null),e.registeredClass.constructor_body[t-1]=ur(r,n,null,o,i),[]})),[]}))},_embind_register_class_function:function(e,t,r,n,o,i,a,s){var A=gr(r,n);t=st(t),i=ar(o,i),Rt([],[e],(function(e){e=e[0];var n="".concat(e.name,".").concat(t);function o(){Ar("Cannot call ".concat(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):(Yt(c,t,n),c[t].overloadTable[r-2]=o),Rt([],A,(function(o){var s=ur(n,o,e,i,a);return void 0===c[t].overloadTable?(s.argCount=r-2,c[t]=s):c[t].overloadTable[r-2]=s,[]})),[]}))},_embind_register_class_property:function(e,t,r,n,o,i,a,s,A,c){t=st(t),o=ar(n,o),Rt([],[e],(function(e){e=e[0];var n="".concat(e.name,".").concat(t),u={get:function(){Ar("Cannot access ".concat(n," due to unbound types"),[r,a])},enumerable:!0,configurable:!0};return u.set=A?function(){Ar("Cannot access ".concat(n," due to unbound types"),[r,a])}:function(e){pt("".concat(n," is a read-only property"))},Object.defineProperty(e.registeredClass.instancePrototype,t,u),Rt([],A?[r,a]:[r],(function(r){var a=r[0],u={get:function(){var t=dr(this,e,"".concat(n," getter"));return a.fromWireType(o(i,t))},enumerable:!0};if(A){A=ar(s,A);var g=r[1];u.set=function(t){var r=dr(this,e,"".concat(n," setter")),o=[];A(c,r,g.toWireType(o,t)),bt(o)}}return Object.defineProperty(e.registeredClass.instancePrototype,t,u),[]})),[]}))},_embind_register_emval:function(e,t){Ft(e,{name:t=st(t),fromWireType:function(e){var t=et[e].value;return lr(e),t},toWireType:function(e,t){return nt(t)},argPackAdvance:8,readValueFromPointer:Ot,destructorFunction:null})},_embind_register_float:function(e,t,r){var n=St(r);Ft(e,{name:t=st(t),fromWireType:function(e){return e},toWireType:function(e,t){if("number"!=typeof t&&"boolean"!=typeof t)throw new TypeError('Cannot convert "'.concat(fr(t),'" to ').concat(this.name));return t},argPackAdvance:8,readValueFromPointer:Er(t,n),destructorFunction:null})},_embind_register_function:function(e,t,r,n,o,i){var a=gr(t,r);e=st(e),o=ar(n,o),Xt(e,(function(){Ar("Cannot call ".concat(e," due to unbound types"),a)}),t-1),Rt([],a,(function(r){var n=[r[0],null].concat(r.slice(1));return or(e,ur(e,n,null,o,i),t-1),[]}))},_embind_register_integer:function(e,t,r,n,o){t=st(t),-1===o&&(o=4294967295);var i=St(r),a=function(e){return e};if(0===n){var s=32-8*r;a=function(e){return e<<s>>>s}}var A=t.includes("unsigned");Ft(e,{name:t,fromWireType:a,toWireType:function(e,r){if("number"!=typeof r&&"boolean"!=typeof r)throw new TypeError('Cannot convert "'.concat(fr(r),'" to ').concat(this.name));if(r<n||r>o)throw new TypeError('Passing a number "'.concat(fr(r),'" from JS side to C/C++ side to an argument of type "').concat(t,'", which is outside the valid range [').concat(n,", ").concat(o,"]!"));return A?r>>>0:0|r},argPackAdvance:8,readValueFromPointer:pr(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=U,r=t[e>>=2],o=t[e+1];return new n(S,o,r)}Ft(e,{name:r=st(r),fromWireType:o,argPackAdvance:8,readValueFromPointer:o},{ignoreDuplicateRegistrations:!0})},_embind_register_std_string:function(e,t){var r="std::string"===(t=st(t));Ft(e,{name:t,fromWireType:function(e){var t,n=U[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=Q(o,a-o);void 0===t?t=s:(t+=String.fromCharCode(0),t+=s),o=a+1}}else{var A=new Array(n);for(i=0;i<n;++i)A[i]=String.fromCharCode(k[e+4+i]);t=A.join("")}return sn(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||pt("Cannot pass non-string to std::string");var o=(r&&n?function(){return R(t)}:function(){return t.length})(),i=An(4+o+1);if(U[i>>2]=o,r&&n)M(t,i+4,o+1);else if(n)for(var a=0;a<o;++a){var s=t.charCodeAt(a);s>255&&(sn(i),pt("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(sn,i),i},argPackAdvance:8,readValueFromPointer:Ot,destructorFunction:function(e){sn(e)}})},_embind_register_std_wstring:function(e,t,r){var n,o,i,a,s;r=st(r),2===t?(n=Y,o=X,a=W,i=function(){return N},s=1):4===t&&(n=V,o=z,a=J,i=function(){return U},s=2),Ft(e,{name:r,fromWireType:function(e){for(var r,o=U[e>>2],a=i(),A=e+4,c=0;c<=o;++c){var u=e+4+c*t;if(c==o||0==a[u>>s]){var g=n(A,u-A);void 0===r?r=g:(r+=String.fromCharCode(0),r+=g),A=u+t}}return sn(e),r},toWireType:function(e,n){"string"!=typeof n&&pt("Cannot pass non-string to C++ string type ".concat(r));var i=a(n),A=An(4+i+t);return U[A>>2]=i>>s,o(n,A+4,i+t),null!==e&&e.push(sn,A),A},argPackAdvance:8,readValueFromPointer:Ot,destructorFunction:function(e){sn(e)}})},_embind_register_value_object:function(e,t,r,n,o,i){Dt[e]={name:st(t),rawConstructor:ar(r,n),rawDestructor:ar(o,i),fields:[]}},_embind_register_value_object_field:function(e,t,r,n,o,i,a,s,A,c){Dt[e].fields.push({fieldName:st(t),getterReturnType:r,getter:ar(n,o),getterContext:i,setterArgumentType:a,setter:ar(s,A),setterContext:c})},_embind_register_void:function(e,t){Ft(e,{isVoid:!0,name:t=st(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(e,t){}})},_emval_call_void_method:function(e,t,r,n){var o,i;(e=Ir[e])(t=It(t),r=void 0===(i=hr[o=r])?st(o):i,null,n)},_emval_decref:lr,_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]=Ct(j[(t>>2)+n],"parameter ".concat(n));return r}(e,t),n=r[0],o="".concat(n.name,"_$").concat(r.slice(1).map((function(e){return e.name})).join("_"),"$"),i=["retType"],a=[n],s="",A=0;A<e-1;++A)s+="".concat(0!==A?", ":"","arg").concat(A),i.push("argType".concat(A)),a.push(r[1+A]);var c=Ze("methodCaller_".concat(o)),u="return function ".concat(c,"(handle, name, destructors, args) {\n"),g=0;for(A=0;A<e-1;++A)u+=" var arg".concat(A," = argType").concat(A,".readValueFromPointer(args").concat(g?"+".concat(g):"",");\n"),g+=r[A+1].argPackAdvance;for(u+=" var rv = handle[name](".concat(s,");\n"),A=0;A<e-1;++A)r[A+1].deleteObject&&(u+=" argType".concat(A,".deleteObject(arg").concat(A,");\n"));n.isVoid||(u+=" return retType.toWireType(destructors, rv);\n"),u+="};\n",i.push(u);var d,l,f=cr(Function,i).apply(null,a);return d=f,l=Ir.length,Ir.push(d),l},_emval_incref:function(e){e>4&&(et[e].refcount+=1)},_emval_take_value:function(e,t){return nt((e=Ct(e,"_emval_take_value")).readValueFromPointer(t))},abort:function(){we()},clock_gettime:function(e,t){var r;if(0===e)r=Date.now();else{if(1!==e&&4!==e)return Ne(28),-1;r=Be()}return j[t>>2]=r/1e3|0,j[t+4>>2]=r%1e3*1e3*1e3|0,0},dlopen:function(e,t){we("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")},dlsym:function(e,t){we("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(v(Array.isArray(mr)),v(t%16==0),mr.length=0,t>>=2;r=k[e++];){v(100===r||102===r||105===r);var n=r<105;n&&1&t&&t++,mr.push(n?H[t++>>1]:j[t]),++t}return mr}(t,r);return ve.hasOwnProperty(e)||we("No EM_ASM constant found at address ".concat(e)),ve[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){we("Cannot use emscripten_pc_get_function without -s USE_OFFSET_CONVERTER")},emscripten_resize_heap:function(e){var t=k.length;v((e>>>=0)>t);var r,n,o=2147483648;if(e>o)return h("Cannot enlarge memory, asked to go up to ".concat(e," bytes, but the limit is ").concat(o," bytes!")),!1;for(var i=1;i<=4;i*=2){var a=t*(1+.2/i);a=Math.min(a,e+100663296);var s=Math.min(o,((r=Math.max(e,a))%(n=65536)>0&&(r+=n-r%n),r));if(yr(s))return!0}return h("Failed to grow the heap from ".concat(t," bytes to ").concat(s," bytes, not enough memory!")),!1},emscripten_stack_snapshot:function(){var e=(new Error).stack.split("\n");return"Error"==e[0]&&e.shift(),_r(e),wr.last_addr=Cr(e[2]),wr.last_stack=e,wr.last_addr},emscripten_stack_unwind_buffer:function(e,t,r){var n;wr.last_addr==e?n=wr.last_stack:("Error"==(n=(new Error).stack.split("\n"))[0]&&n.shift(),_r(n));for(var o=2;n[o]&&Cr(n[o])!=e;)++o;for(var i=0;i<r&&n[i+o];++i)j[t+4*i>>2]=Cr(n[i+o]);return i},emscripten_thread_sleep:function(e){for(var t=Be();Be()-t<e;);},emscripten_webgl_create_context:function(e,t){return function(e,t){v(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:Dr[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=Or(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(!Br.offscreenCanvases[i.id])return 0}else Br.offscreenCanvases[i.id]={canvas:i.transferControlToOffscreen(),canvasSharedPtr:An(12),id:i.id},i.controlTransferredOffscreen=!0;i=Br.offscreenCanvases[i.id]}return Br.createContext(i,o)}(e,t)},emscripten_webgl_destroy_context:function(e){Br.currentContext==e&&(Br.currentContext=0),Br.deleteContext(e)},emscripten_webgl_get_context_attributes:function(e,t){if(!t)return-5;if(!(e=Br.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&&Dr.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:Qr,emscripten_webgl_init_context_attributes:function(e){v(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:Tr,environ_get:function(e,t){var r=0;return Mr().forEach((function(n,o){var i=t+r;j[e+4*o>>2]=i,function(e,t){for(var r=0;r<e.length;++r)v(e.charCodeAt(r)==e.charCodeAt(r)&255),F[0|t++]=e.charCodeAt(r);F[0|t]=0}(n,i),r+=n.length+1})),0},environ_sizes_get:function(e,t){var r=Mr();j[e>>2]=r.length;var n=0;return r.forEach((function(e){n+=e.length+1})),j[t>>2]=n,0},exit:De,fd_close:function(e){try{var t=ze.getStreamFromFD(e);return Ve.close(t),0}catch(e){return void 0!==Ve&&e instanceof Ve.ErrnoError||we(e),e.errno}},fd_read:function(e,t,r,n){try{var o=ze.getStreamFromFD(e),i=ze.doReadv(o,t,r);return j[n>>2]=i,0}catch(e){return void 0!==Ve&&e instanceof Ve.ErrnoError||we(e),e.errno}},fd_seek:function(e,t,r,n,o){try{var i=ze.getStreamFromFD(e),a=4294967296*r+(t>>>0),s=9007199254740992;return a<=-s||a>=s?-61:(Ve.llseek(i,a,n),fe=[i.position>>>0,(le=i.position,+Math.abs(le)>=1?le>0?(0|Math.min(+Math.floor(le/4294967296),4294967295))>>>0:~~+Math.ceil((le-+(~~le>>>0))/4294967296)>>>0:0)],j[o>>2]=fe[0],j[o+4>>2]=fe[1],i.getdents&&0===a&&0===n&&(i.getdents=null),0)}catch(e){return void 0!==Ve&&e instanceof Ve.ErrnoError||we(e),e.errno}},fd_write:function(e,t,r,n){try{var o=ze.getStreamFromFD(e),i=ze.doWritev(o,t,r);return j[n>>2]=i,0}catch(e){return void 0!==Ve&&e instanceof Ve.ErrnoError||we(e),e.errno}},getTempRet0:function(){return m},getentropy:function e(t,r){e.randomDevice||(e.randomDevice=Ue());for(var n=0;n<r;n++)F[t+n|0]=e.randomDevice();return 0},glActiveTexture:function(e){Zr.activeTexture(e)},glAttachShader:function(e,t){Zr.attachShader(Br.programs[e],Br.shaders[t])},glBindAttribLocation:function(e,t,r){Zr.bindAttribLocation(Br.programs[e],t,Q(r))},glBindBuffer:function(e,t){34962==e?Zr.currentArrayBufferBinding=t:34963==e&&(Zr.currentElementArrayBufferBinding=t),35051==e?Zr.currentPixelPackBufferBinding=t:35052==e&&(Zr.currentPixelUnpackBufferBinding=t),Zr.bindBuffer(e,Br.buffers[t])},glBindBufferBase:function(e,t,r){Zr.bindBufferBase(e,t,Br.buffers[r])},glBindFramebuffer:function(e,t){Zr.bindFramebuffer(e,t?Br.framebuffers[t]:Br.currentContext.defaultFbo)},glBindTexture:function(e,t){Zr.bindTexture(e,Br.textures[t])},glBindVertexArray:function(e){Zr.bindVertexArray(Br.vaos[e]);var t=Zr.getParameter(34965);Zr.currentElementArrayBufferBinding=t?0|t.name:0},glBufferData:function(e,t,r,n){Br.currentContext.version>=2?r?Zr.bufferData(e,k,n,r,t):Zr.bufferData(e,t,n):Zr.bufferData(e,r?k.subarray(r,r+t):t,n)},glClientWaitSync:function(e,t,r,n){return Zr.clientWaitSync(Br.syncs[e],t,(o=r,v((i=n)===(0|i)),(o>>>0)+4294967296*i));var o,i},glCompileShader:function(e){Zr.compileShader(Br.shaders[e])},glCreateProgram:function(){var e=Br.getNewId(Br.programs),t=Zr.createProgram();return t.name=e,t.maxUniformLength=t.maxAttributeLength=t.maxUniformBlockNameLength=0,t.uniformIdCounter=1,Br.programs[e]=t,e},glCreateShader:function(e){var t=Br.getNewId(Br.shaders);return Br.shaders[t]=Zr.createShader(e),t},glDeleteBuffers:function(e,t){for(var r=0;r<e;r++){var n=j[t+4*r>>2],o=Br.buffers[n];o&&(Zr.deleteBuffer(o),o.name=0,Br.buffers[n]=null,n==Zr.currentArrayBufferBinding&&(Zr.currentArrayBufferBinding=0),n==Zr.currentElementArrayBufferBinding&&(Zr.currentElementArrayBufferBinding=0),n==Zr.currentPixelPackBufferBinding&&(Zr.currentPixelPackBufferBinding=0),n==Zr.currentPixelUnpackBufferBinding&&(Zr.currentPixelUnpackBufferBinding=0))}},glDeleteFramebuffers:function(e,t){for(var r=0;r<e;++r){var n=j[t+4*r>>2],o=Br.framebuffers[n];o&&(Zr.deleteFramebuffer(o),o.name=0,Br.framebuffers[n]=null)}},glDeleteProgram:function(e){if(e){var t=Br.programs[e];t?(Zr.deleteProgram(t),t.name=0,Br.programs[e]=null):Br.recordError(1281)}},glDeleteShader:function(e){if(e){var t=Br.shaders[e];t?(Zr.deleteShader(t),Br.shaders[e]=null):Br.recordError(1281)}},glDeleteSync:function(e){if(e){var t=Br.syncs[e];t?(Zr.deleteSync(t),t.name=0,Br.syncs[e]=null):Br.recordError(1281)}},glDeleteTextures:function(e,t){for(var r=0;r<e;r++){var n=j[t+4*r>>2],o=Br.textures[n];o&&(Zr.deleteTexture(o),o.name=0,Br.textures[n]=null)}},glDeleteVertexArrays:function(e,t){for(var r=0;r<e;r++){var n=j[t+4*r>>2];Zr.deleteVertexArray(Br.vaos[n]),Br.vaos[n]=null}},glDisable:function(e){Zr.disable(e)},glDisableVertexAttribArray:function(e){Br.currentContext.clientBuffers[e].enabled=!1,Zr.disableVertexAttribArray(e)},glDrawArrays:function(e,t,r){Br.preDrawHandleClientVertexAttribBindings(t+r),Zr.drawArrays(e,t,r),Br.postDrawHandleClientVertexAttribBindings()},glDrawBuffers:function(e,t){for(var r=Rr[e],n=0;n<e;n++)r[n]=j[t+4*n>>2];Zr.drawBuffers(r)},glEnableVertexAttribArray:function(e){Br.currentContext.clientBuffers[e].enabled=!0,Zr.enableVertexAttribArray(e)},glFenceSync:function(e,t){var r=Zr.fenceSync(e,t);if(r){var n=Br.getNewId(Br.syncs);return r.name=n,Br.syncs[n]=r,n}return 0},glFinish:function(){Zr.finish()},glFlush:function(){Zr.flush()},glFramebufferTexture2D:function(e,t,r,n,o){Zr.framebufferTexture2D(e,t,r,Br.textures[n],o)},glFramebufferTextureLayer:function(e,t,r,n,o){Zr.framebufferTextureLayer(e,t,Br.textures[r],n,o)},glGenBuffers:function(e,t){Sr(e,t,"createBuffer",Br.buffers)},glGenFramebuffers:function(e,t){Sr(e,t,"createFramebuffer",Br.framebuffers)},glGenTextures:function(e,t){Sr(e,t,"createTexture",Br.textures)},glGenVertexArrays:function(e,t){Sr(e,t,"createVertexArray",Br.vaos)},glGetAttribLocation:function(e,t){return Zr.getAttribLocation(Br.programs[e],Q(t))},glGetError:function(){var e=Zr.getError()||Br.lastError;return Br.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;case 34814:case 36345:n=0;break;case 34466:var o=Zr.getParameter(34467);n=o?o.length:0;break;case 33309:if(Br.currentContext.version<2)return void Br.recordError(1282);n=2*(Zr.getSupportedExtensions()||[]).length;break;case 33307:case 33308:if(Br.currentContext.version<2)return void Br.recordError(1280);n=33307==e?3:0}if(void 0===n){var i=Zr.getParameter(e);switch(E(i)){case"number":n=i;break;case"boolean":n=i?1:0;break;case"string":return void Br.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 Br.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:L[t+4*a>>2]=i[a];break;case 4:F[t+a|0]=i[a]?1:0}return}try{n=0|i.name}catch(t){return Br.recordError(1280),void h("GL_INVALID_ENUM in glGet".concat(r,"v: Unknown object returned from WebGL getParameter(").concat(e,")! (error: ").concat(t,")"))}}break;default:return Br.recordError(1280),void h("GL_INVALID_ENUM in glGet".concat(r,"v: Native code calling glGet").concat(r,"v(").concat(e,") and it returns ").concat(i," of type ").concat(E(i),"!"))}}switch(r){case 1:Fr(t,n);break;case 0:j[t>>2]=n;break;case 2:L[t>>2]=n;break;case 4:F[0|t]=n?1:0}}else Br.recordError(1281)}(e,t,0)},glGetString:function(e){var t=Br.stringCache[e];if(!t){switch(e){case 7939:var r=Zr.getSupportedExtensions()||[];t=kr((r=r.concat(r.map((function(e){return"GL_".concat(e)})))).join(" "));break;case 7936:case 7937:case 37445:case 37446:var n=Zr.getParameter(e);n||Br.recordError(1280),t=n&&kr(n);break;case 7938:var o=Zr.getParameter(7938);t=kr(o=Br.currentContext.version>=2?"OpenGL ES 3.0 (".concat(o,")"):"OpenGL ES 2.0 (".concat(o,")"));break;case 35724:var i=Zr.getParameter(35724),a=i.match(/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/);null!==a&&(3==a[1].length&&(a[1]="".concat(a[1],"0")),i="OpenGL ES GLSL ES ".concat(a[1]," (").concat(i,")")),t=kr(i);break;default:Br.recordError(1280)}Br.stringCache[e]=t}return t},glGetUniformBlockIndex:function(e,t){return Zr.getUniformBlockIndex(Br.programs[e],Q(t))},glGetUniformLocation:function(e,t){if(t=Q(t),e=Br.programs[e]){!function(e){var t,r,n=e.uniformLocsById,o=e.uniformSizeAndIdsByName;if(!n)for(e.uniformLocsById=n={},e.uniformArrayNamesById={},t=0;t<Zr.getProgramParameter(e,35718);++t){var i=Zr.getActiveUniform(e,t),a=i.name,s=i.size,A=xr(a),c=A>0?a.slice(0,A):a,u=e.uniformIdCounter;for(e.uniformIdCounter+=s,o[c]=[s,u],r=0;r<s;++r)n[u]=r,e.uniformArrayNamesById[u++]=c}}(e);var r=e.uniformLocsById,n=0,o=t,i=xr(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]||Zr.getUniformLocation(e,t)))return n}else Br.recordError(1281);var s;return-1},glLinkProgram:function(e){e=Br.programs[e],Zr.linkProgram(e),e.uniformLocsById=0,e.uniformSizeAndIdsByName={}},glPixelStorei:function(e,t){3317==e&&(Br.unpackAlignment=t),Zr.pixelStorei(e,t)},glReadPixels:function(e,t,r,n,o,i,a){if(Br.currentContext.version>=2)if(Zr.currentPixelPackBufferBinding)Zr.readPixels(e,t,r,n,o,i,a);else{var s=Nr(i);Zr.readPixels(e,t,r,n,o,i,s,a>>jr(s))}else{var A=Ur(i,o,r,n,a);A?Zr.readPixels(e,t,r,n,o,i,A):Br.recordError(1280)}},glShaderSource:function(e,t,r,n){var o=Br.getSource(e,t,r,n);Zr.shaderSource(Br.shaders[e],o)},glTexImage2D:function(e,t,r,n,o,i,a,s,A){if(Br.currentContext.version>=2)if(Zr.currentPixelUnpackBufferBinding)Zr.texImage2D(e,t,r,n,o,i,a,s,A);else if(A){var c=Nr(s);Zr.texImage2D(e,t,r,n,o,i,a,s,c,A>>jr(c))}else Zr.texImage2D(e,t,r,n,o,i,a,s,null);else Zr.texImage2D(e,t,r,n,o,i,a,s,A?Ur(s,a,n,o,A):null)},glTexParameterfv:function(e,t,r){var n=L[r>>2];Zr.texParameterf(e,t,n)},glTexParameteri:function(e,t,r){Zr.texParameteri(e,t,r)},glTexStorage2D:function(e,t,r,n,o){Zr.texStorage2D(e,t,r,n,o)},glTexStorage3D:function(e,t,r,n,o,i){Zr.texStorage3D(e,t,r,n,o,i)},glTexSubImage2D:function(e,t,r,n,o,i,a,s,A){if(Br.currentContext.version>=2)if(Zr.currentPixelUnpackBufferBinding)Zr.texSubImage2D(e,t,r,n,o,i,a,s,A);else if(A){var c=Nr(s);Zr.texSubImage2D(e,t,r,n,o,i,a,s,c,A>>jr(c))}else Zr.texSubImage2D(e,t,r,n,o,i,a,s,null);else{var u=null;A&&(u=Ur(s,a,o,i,A)),Zr.texSubImage2D(e,t,r,n,o,i,a,s,u)}},glTexSubImage3D:function(e,t,r,n,o,i,a,s,A,c,u){if(Zr.currentPixelUnpackBufferBinding)Zr.texSubImage3D(e,t,r,n,o,i,a,s,A,c,u);else if(u){var g=Nr(c);Zr.texSubImage3D(e,t,r,n,o,i,a,s,A,c,g,u>>jr(g))}else Zr.texSubImage3D(e,t,r,n,o,i,a,s,A,c,null)},glUniform1f:function(e,t){Zr.uniform1f(Lr(e),t)},glUniform1i:function(e,t){Zr.uniform1i(Lr(e),t)},glUniform2fv:function(e,t,r){if(Br.currentContext.version>=2)Zr.uniform2fv(Lr(e),L,r>>2,2*t);else{if(t<=144)for(var n=Hr[2*t-1],o=0;o<2*t;o+=2)n[o]=L[r+4*o>>2],n[o+1]=L[r+(4*o+4)>>2];else n=L.subarray(r>>2,r+8*t>>2);Zr.uniform2fv(Lr(e),n)}},glUniform4fv:function(e,t,r){if(Br.currentContext.version>=2)Zr.uniform4fv(Lr(e),L,r>>2,4*t);else{if(t<=72){var n=Hr[4*t-1],o=L;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=L.subarray(r>>2,r+16*t>>2);Zr.uniform4fv(Lr(e),n)}},glUniform4iv:function(e,t,r){if(Br.currentContext.version>=2)Zr.uniform4iv(Lr(e),j,r>>2,4*t);else{if(t<=72)for(var n=Gr[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);Zr.uniform4iv(Lr(e),n)}},glUniformBlockBinding:function(e,t,r){e=Br.programs[e],Zr.uniformBlockBinding(e,t,r)},glUniformMatrix4fv:function(e,t,r,n){if(Br.currentContext.version>=2)Zr.uniformMatrix4fv(Lr(e),!!r,L,n>>2,16*t);else{if(t<=18){var o=Hr[16*t-1],i=L;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=L.subarray(n>>2,n+64*t>>2);Zr.uniformMatrix4fv(Lr(e),!!r,o)}},glUseProgram:function(e){e=Br.programs[e],Zr.useProgram(e),Zr.currentProgram=e},glVertexAttribPointer:function(e,t,r,n,o,i){var a=Br.currentContext.clientBuffers[e];if(!Zr.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,Zr.vertexAttribPointer(e,t,r,!!n,o,i)},glViewport:function(e,t,r,n){Zr.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=K("GMT")),j[r+40>>2]=e.GMTString,r},invoke_diii:function(e,t,r,n){var o=En();try{return $.get(e)(t,r,n)}catch(e){if(pn(o),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_i:function(e){var t=En();try{return $.get(e)()}catch(e){if(pn(t),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_ii:function(e,t){var r=En();try{return $.get(e)(t)}catch(e){if(pn(r),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_iii:function(e,t,r){var n=En();try{return $.get(e)(t,r)}catch(e){if(pn(n),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_iiii:function(e,t,r,n){var o=En();try{return $.get(e)(t,r,n)}catch(e){if(pn(o),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_iiiii:function(e,t,r,n,o){var i=En();try{return $.get(e)(t,r,n,o)}catch(e){if(pn(i),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_iiiiii:function(e,t,r,n,o,i){var a=En();try{return $.get(e)(t,r,n,o,i)}catch(e){if(pn(a),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_iiiiiii:function(e,t,r,n,o,i,a){var s=En();try{return $.get(e)(t,r,n,o,i,a)}catch(e){if(pn(s),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_iiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c){var u=En();try{return $.get(e)(t,r,n,o,i,a,s,A,c)}catch(e){if(pn(u),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_iiiiiiii:function(e,t,r,n,o,i,a,s){var A=En();try{return $.get(e)(t,r,n,o,i,a,s)}catch(e){if(pn(A),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_iiiiiiiii:function(e,t,r,n,o,i,a,s,A){var c=En();try{return $.get(e)(t,r,n,o,i,a,s,A)}catch(e){if(pn(c),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_v:function(e){var t=En();try{$.get(e)()}catch(e){if(pn(t),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_vdiii:function(e,t,r,n,o){var i=En();try{$.get(e)(t,r,n,o)}catch(e){if(pn(i),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_vi:function(e,t){var r=En();try{$.get(e)(t)}catch(e){if(pn(r),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_vididdii:function(e,t,r,n,o,i,a,s){var A=En();try{$.get(e)(t,r,n,o,i,a,s)}catch(e){if(pn(A),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_vidii:function(e,t,r,n,o){var i=En();try{$.get(e)(t,r,n,o)}catch(e){if(pn(i),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_vii:function(e,t,r){var n=En();try{$.get(e)(t,r)}catch(e){if(pn(n),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viid:function(e,t,r,n){var o=En();try{$.get(e)(t,r,n)}catch(e){if(pn(o),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viidi:function(e,t,r,n,o){var i=En();try{$.get(e)(t,r,n,o)}catch(e){if(pn(i),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viididii:function(e,t,r,n,o,i,a,s){var A=En();try{$.get(e)(t,r,n,o,i,a,s)}catch(e){if(pn(A),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viii:function(e,t,r,n){var o=En();try{$.get(e)(t,r,n)}catch(e){if(pn(o),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiid:function(e,t,r,n,o){var i=En();try{$.get(e)(t,r,n,o)}catch(e){if(pn(i),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiidd:function(e,t,r,n,o,i){var a=En();try{$.get(e)(t,r,n,o,i)}catch(e){if(pn(a),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiddi:function(e,t,r,n,o,i,a){var s=En();try{$.get(e)(t,r,n,o,i,a)}catch(e){if(pn(s),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiidi:function(e,t,r,n,o,i){var a=En();try{$.get(e)(t,r,n,o,i)}catch(e){if(pn(a),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiii:function(e,t,r,n,o){var i=En();try{$.get(e)(t,r,n,o)}catch(e){if(pn(i),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiid:function(e,t,r,n,o,i){var a=En();try{$.get(e)(t,r,n,o,i)}catch(e){if(pn(a),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiidi:function(e,t,r,n,o,i,a){var s=En();try{$.get(e)(t,r,n,o,i,a)}catch(e){if(pn(s),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiidid:function(e,t,r,n,o,i,a,s){var A=En();try{$.get(e)(t,r,n,o,i,a,s)}catch(e){if(pn(A),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiidiidiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d,l,f,E){var p=En();try{$.get(e)(t,r,n,o,i,a,s,A,c,u,g,d,l,f,E)}catch(e){if(pn(p),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiifiifiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d,l,f,E){var p=En();try{$.get(e)(t,r,n,o,i,a,s,A,c,u,g,d,l,f,E)}catch(e){if(pn(p),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiii:function(e,t,r,n,o,i){var a=En();try{$.get(e)(t,r,n,o,i)}catch(e){if(pn(a),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiid:function(e,t,r,n,o,i,a){var s=En();try{$.get(e)(t,r,n,o,i,a)}catch(e){if(pn(s),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiif:function(e,t,r,n,o,i,a){var s=En();try{$.get(e)(t,r,n,o,i,a)}catch(e){if(pn(s),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiii:function(e,t,r,n,o,i,a){var s=En();try{$.get(e)(t,r,n,o,i,a)}catch(e){if(pn(s),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiiid:function(e,t,r,n,o,i,a,s){var A=En();try{$.get(e)(t,r,n,o,i,a,s)}catch(e){if(pn(A),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiiif:function(e,t,r,n,o,i,a,s){var A=En();try{$.get(e)(t,r,n,o,i,a,s)}catch(e){if(pn(A),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiiii:function(e,t,r,n,o,i,a,s){var A=En();try{$.get(e)(t,r,n,o,i,a,s)}catch(e){if(pn(A),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c,u){var g=En();try{$.get(e)(t,r,n,o,i,a,s,A,c,u)}catch(e){if(pn(g),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiiiidiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d){var l=En();try{$.get(e)(t,r,n,o,i,a,s,A,c,u,g,d)}catch(e){if(pn(l),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiiiifiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d){var l=En();try{$.get(e)(t,r,n,o,i,a,s,A,c,u,g,d)}catch(e){if(pn(l),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiiiii:function(e,t,r,n,o,i,a,s,A){var c=En();try{$.get(e)(t,r,n,o,i,a,s,A)}catch(e){if(pn(c),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiiiiidd:function(e,t,r,n,o,i,a,s,A,c,u){var g=En();try{$.get(e)(t,r,n,o,i,a,s,A,c,u)}catch(e){if(pn(g),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiiiiidf:function(e,t,r,n,o,i,a,s,A,c,u){var g=En();try{$.get(e)(t,r,n,o,i,a,s,A,c,u)}catch(e){if(pn(g),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiiiiii:function(e,t,r,n,o,i,a,s,A,c){var u=En();try{$.get(e)(t,r,n,o,i,a,s,A,c)}catch(e){if(pn(u),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiiiiiidd:function(e,t,r,n,o,i,a,s,A,c,u,g){var d=En();try{$.get(e)(t,r,n,o,i,a,s,A,c,u,g)}catch(e){if(pn(d),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c,u,g,d){var l=En();try{$.get(e)(t,r,n,o,i,a,s,A,c,u,g,d)}catch(e){if(pn(l),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u){var g=En();try{$.get(e)(t,r,n,o,i,a,s,A,c,u)}catch(e){if(pn(g),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c,u,g,d,l){var f=En();try{$.get(e)(t,r,n,o,i,a,s,A,c,u,g,d,l)}catch(e){if(pn(f),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u,g){var d=En();try{$.get(e)(t,r,n,o,i,a,s,A,c,u,g)}catch(e){if(pn(d),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d){var l=En();try{$.get(e)(t,r,n,o,i,a,s,A,c,u,g,d)}catch(e){if(pn(l),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},invoke_viiiiiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d,l){var f=En();try{$.get(e)(t,r,n,o,i,a,s,A,c,u,g,d,l)}catch(e){if(pn(f),e!==e+0&&"longjmp"!==e)throw e;mn(1,0)}},llvm_eh_typeid_for:function(e){return e},localtime_r:function(e,t){Yr();var r=new Date(1e3*j[e>>2]);j[t>>2]=r.getSeconds(),j[t+4>>2]=r.getMinutes(),j[t+8>>2]=r.getHours(),j[t+12>>2]=r.getDate(),j[t+16>>2]=r.getMonth(),j[t+20>>2]=r.getFullYear()-1900,j[t+24>>2]=r.getDay();var n=new Date(r.getFullYear(),0,1),o=(r.getTime()-n.getTime())/864e5|0;j[t+28>>2]=o,j[t+36>>2]=-60*r.getTimezoneOffset();var i=new Date(r.getFullYear(),6,1).getTimezoneOffset(),a=n.getTimezoneOffset(),s=0|(i!=a&&r.getTimezoneOffset()==Math.min(a,i));j[t+32>>2]=s;var A=j[dn()+(s?4:0)>>2];return j[t+40>>2]=A,t},mktime:function(e){Yr();var t=new Date(j[e+20>>2]+1900,j[e+16>>2],j[e+12>>2],j[e+8>>2],j[e+4>>2],j[e>>2],0),r=j[e+32>>2],n=t.getTimezoneOffset(),o=new Date(t.getFullYear(),0,1),i=new Date(t.getFullYear(),6,1).getTimezoneOffset(),a=o.getTimezoneOffset(),s=Math.min(a,i);if(r<0)j[e+32>>2]=Number(i!=a&&s==n);else if(r>0!=(s==n)){var A=Math.max(a,i),c=r>0?s:A;t.setTime(t.getTime()+6e4*(c-n))}j[e+24>>2]=t.getDay();var 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){y(e)},strftime:Kr,strftime_l:function(e,t,r,n){return Kr(e,t,r,n)}};!function(){var e={env:an,wasi_snapshot_preview1:an};function t(e,t){var r,o=e.exports;n.asm=o,v(C=n.asm.memory,"memory not found in wasm exports"),Z(C.buffer),v($=n.asm.__indirect_function_table,"table not found in wasm exports"),r=n.asm.__wasm_call_ctors,oe.unshift(r),Ce("wasm-instantiate")}ye("wasm-instantiate");var o=n;if(n.instantiateWasm)try{return n.instantiateWasm(e,t)}catch(e){return h("Module.instantiateWasm callback failed with error: ".concat(e)),!1}n.loadWasm(ge,e).then((function(e){v(n===o,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?"),o=null,t(e)})).catch(r)}(),n.___wasm_call_ctors=_e("__wasm_call_ctors");var sn=n._free=_e("free"),An=n._malloc=_e("malloc"),cn=n.___errno_location=_e("__errno_location");n._fflush=_e("fflush");var un=n.___getTypeName=_e("__getTypeName");n.___embind_register_native_and_builtin_types=_e("__embind_register_native_and_builtin_types"),n._emscripten_main_thread_process_queued_calls=_e("emscripten_main_thread_process_queued_calls");var gn=n._emscripten_stack_get_end=function(){return(gn=n._emscripten_stack_get_end=n.asm.emscripten_stack_get_end).apply(null,arguments)},dn=n.__get_tzname=_e("_get_tzname"),ln=n.__get_daylight=_e("_get_daylight"),fn=n.__get_timezone=_e("_get_timezone"),En=n.stackSave=_e("stackSave"),pn=n.stackRestore=_e("stackRestore");n.stackAlloc=_e("stackAlloc");var hn=n._emscripten_stack_init=function(){return(hn=n._emscripten_stack_init=n.asm.emscripten_stack_init).apply(null,arguments)};n._emscripten_stack_get_free=function(){return(n._emscripten_stack_get_free=n.asm.emscripten_stack_get_free).apply(null,arguments)},n._saveSetjmp=_e("saveSetjmp");var In,mn=n._setThrew=_e("setThrew"),yn=n.___cxa_can_catch=_e("__cxa_can_catch"),Cn=n.___cxa_is_pointer_type=_e("__cxa_is_pointer_type"),wn=n._memalign=_e("memalign");function _n(e){this.name="ExitStatus",this.message="Program terminated with exit(".concat(e,")"),this.status=e}function Bn(e){function r(){In||(In=!0,n.calledRun=!0,B||(re(),v(!se),se=!0,n.noFSInit||Ve.init.initialized||Ve.init(),Ve.ignorePermissions=!1,Pe(oe),t(n),n.onRuntimeInitialized&&n.onRuntimeInitialized(),v(!n._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),function(){if(re(),n.postRun)for("function"==typeof n.postRun&&(n.postRun=[n.postRun]);n.postRun.length;)e=n.postRun.shift(),ae.unshift(e);var e;Pe(ae)}()))}Ee>0||(hn(),te(),function(){if(n.preRun)for("function"==typeof n.preRun&&(n.preRun=[n.preRun]);n.preRun.length;)e=n.preRun.shift(),ne.unshift(e);var e;Pe(ne)}(),Ee>0||(n.setStatus?(n.setStatus("Running..."),setTimeout((function(){setTimeout((function(){n.setStatus("")}),1),r()}),1)):r(),re()))}function vn(e){_=e,ue()||(n.onExit&&n.onExit(e),B=!0),s(e,new _n(e))}if(n._emscripten_builtin_malloc=_e("emscripten_builtin_malloc"),n._emscripten_builtin_free=_e("emscripten_builtin_free"),n._emscripten_builtin_memalign=_e("emscripten_builtin_memalign"),n.dynCall_jii=_e("dynCall_jii"),n.dynCall_viji=_e("dynCall_viji"),n.dynCall_jjj=_e("dynCall_jjj"),n.dynCall_iiiijj=_e("dynCall_iiiijj"),n.dynCall_viijj=_e("dynCall_viijj"),n.dynCall_viiijjjj=_e("dynCall_viiijjjj"),n.dynCall_ji=_e("dynCall_ji"),n.dynCall_vij=_e("dynCall_vij"),n.dynCall_viijii=_e("dynCall_viijii"),n.dynCall_vj=_e("dynCall_vj"),n.dynCall_viij=_e("dynCall_viij"),n.dynCall_viiiiij=_e("dynCall_viiiiij"),n.dynCall_iijjiiii=_e("dynCall_iijjiiii"),n.dynCall_jiji=_e("dynCall_jiji"),n.dynCall_iiiiij=_e("dynCall_iiiiij"),n.dynCall_iiiiijj=_e("dynCall_iiiiijj"),n.dynCall_iiiiiijj=_e("dynCall_iiiiiijj"),Object.getOwnPropertyDescriptor(n,"intArrayFromString")||(n.intArrayFromString=function(){we("'intArrayFromString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"intArrayToString")||(n.intArrayToString=function(){we("'intArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ccall")||(n.ccall=function(){we("'ccall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"cwrap")||(n.cwrap=function(){we("'cwrap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setValue")||(n.setValue=function(){we("'setValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getValue")||(n.getValue=function(){we("'getValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocate")||(n.allocate=function(){we("'allocate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF8ArrayToString")||(n.UTF8ArrayToString=function(){we("'UTF8ArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF8ToString")||(n.UTF8ToString=function(){we("'UTF8ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF8Array")||(n.stringToUTF8Array=function(){we("'stringToUTF8Array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF8")||(n.stringToUTF8=function(){we("'stringToUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF8")||(n.lengthBytesUTF8=function(){we("'lengthBytesUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackTrace")||(n.stackTrace=function(){we("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPreRun")||(n.addOnPreRun=function(){we("'addOnPreRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnInit")||(n.addOnInit=function(){we("'addOnInit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPreMain")||(n.addOnPreMain=function(){we("'addOnPreMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnExit")||(n.addOnExit=function(){we("'addOnExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPostRun")||(n.addOnPostRun=function(){we("'addOnPostRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeStringToMemory")||(n.writeStringToMemory=function(){we("'writeStringToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeArrayToMemory")||(n.writeArrayToMemory=function(){we("'writeArrayToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeAsciiToMemory")||(n.writeAsciiToMemory=function(){we("'writeAsciiToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.addRunDependency=ye,n.removeRunDependency=Ce,Object.getOwnPropertyDescriptor(n,"FS_createFolder")||(n.FS_createFolder=function(){we("'FS_createFolder' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.FS_createPath=Ve.createPath,n.FS_createDataFile=Ve.createDataFile,n.FS_createPreloadedFile=Ve.createPreloadedFile,n.FS_createLazyFile=Ve.createLazyFile,Object.getOwnPropertyDescriptor(n,"FS_createLink")||(n.FS_createLink=function(){we("'FS_createLink' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.FS_createDevice=Ve.createDevice,n.FS_unlink=Ve.unlink,Object.getOwnPropertyDescriptor(n,"getLEB")||(n.getLEB=function(){we("'getLEB' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFunctionTables")||(n.getFunctionTables=function(){we("'getFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"alignFunctionTables")||(n.alignFunctionTables=function(){we("'alignFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFunctions")||(n.registerFunctions=function(){we("'registerFunctions' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addFunction")||(n.addFunction=function(){we("'addFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"removeFunction")||(n.removeFunction=function(){we("'removeFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFuncWrapper")||(n.getFuncWrapper=function(){we("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"prettyPrint")||(n.prettyPrint=function(){we("'prettyPrint' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCall")||(n.dynCall=function(){we("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getCompilerSetting")||(n.getCompilerSetting=function(){we("'getCompilerSetting' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"print")||(n.print=function(){we("'print' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"printErr")||(n.printErr=function(){we("'printErr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getTempRet0")||(n.getTempRet0=function(){we("'getTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setTempRet0")||(n.setTempRet0=function(){we("'setTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callMain")||(n.callMain=function(){we("'callMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"abort")||(n.abort=function(){we("'abort' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"keepRuntimeAlive")||(n.keepRuntimeAlive=function(){we("'keepRuntimeAlive' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"zeroMemory")||(n.zeroMemory=function(){we("'zeroMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToNewUTF8")||(n.stringToNewUTF8=function(){we("'stringToNewUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setFileTime")||(n.setFileTime=function(){we("'setFileTime' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscripten_realloc_buffer")||(n.emscripten_realloc_buffer=function(){we("'emscripten_realloc_buffer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ENV")||(n.ENV=function(){we("'ENV' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ERRNO_CODES")||(n.ERRNO_CODES=function(){we("'ERRNO_CODES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ERRNO_MESSAGES")||(n.ERRNO_MESSAGES=function(){we("'ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setErrNo")||(n.setErrNo=function(){we("'setErrNo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetPton4")||(n.inetPton4=function(){we("'inetPton4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetNtop4")||(n.inetNtop4=function(){we("'inetNtop4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetPton6")||(n.inetPton6=function(){we("'inetPton6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetNtop6")||(n.inetNtop6=function(){we("'inetNtop6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readSockaddr")||(n.readSockaddr=function(){we("'readSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeSockaddr")||(n.writeSockaddr=function(){we("'writeSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"DNS")||(n.DNS=function(){we("'DNS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getHostByName")||(n.getHostByName=function(){we("'getHostByName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GAI_ERRNO_MESSAGES")||(n.GAI_ERRNO_MESSAGES=function(){we("'GAI_ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Protocols")||(n.Protocols=function(){we("'Protocols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Sockets")||(n.Sockets=function(){we("'Sockets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getRandomDevice")||(n.getRandomDevice=function(){we("'getRandomDevice' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"traverseStack")||(n.traverseStack=function(){we("'traverseStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UNWIND_CACHE")||(n.UNWIND_CACHE=function(){we("'UNWIND_CACHE' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"withBuiltinMalloc")||(n.withBuiltinMalloc=function(){we("'withBuiltinMalloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readAsmConstArgsArray")||(n.readAsmConstArgsArray=function(){we("'readAsmConstArgsArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readAsmConstArgs")||(n.readAsmConstArgs=function(){we("'readAsmConstArgs' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"mainThreadEM_ASM")||(n.mainThreadEM_ASM=function(){we("'mainThreadEM_ASM' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jstoi_q")||(n.jstoi_q=function(){we("'jstoi_q' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jstoi_s")||(n.jstoi_s=function(){we("'jstoi_s' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getExecutableName")||(n.getExecutableName=function(){we("'getExecutableName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"listenOnce")||(n.listenOnce=function(){we("'listenOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"autoResumeAudioContext")||(n.autoResumeAudioContext=function(){we("'autoResumeAudioContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCallLegacy")||(n.dynCallLegacy=function(){we("'dynCallLegacy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getDynCaller")||(n.getDynCaller=function(){we("'getDynCaller' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCall")||(n.dynCall=function(){we("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callRuntimeCallbacks")||(n.callRuntimeCallbacks=function(){we("'callRuntimeCallbacks' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runtimeKeepalivePush")||(n.runtimeKeepalivePush=function(){we("'runtimeKeepalivePush' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runtimeKeepalivePop")||(n.runtimeKeepalivePop=function(){we("'runtimeKeepalivePop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callUserCallback")||(n.callUserCallback=function(){we("'callUserCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"maybeExit")||(n.maybeExit=function(){we("'maybeExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"safeSetTimeout")||(n.safeSetTimeout=function(){we("'safeSetTimeout' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"asmjsMangle")||(n.asmjsMangle=function(){we("'asmjsMangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"asyncLoad")||(n.asyncLoad=function(){we("'asyncLoad' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"alignMemory")||(n.alignMemory=function(){we("'alignMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"mmapAlloc")||(n.mmapAlloc=function(){we("'mmapAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"reallyNegative")||(n.reallyNegative=function(){we("'reallyNegative' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"unSign")||(n.unSign=function(){we("'unSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"reSign")||(n.reSign=function(){we("'reSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"formatString")||(n.formatString=function(){we("'formatString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PATH")||(n.PATH=function(){we("'PATH' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PATH_FS")||(n.PATH_FS=function(){we("'PATH_FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SYSCALLS")||(n.SYSCALLS=function(){we("'SYSCALLS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"syscallMmap2")||(n.syscallMmap2=function(){we("'syscallMmap2' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"syscallMunmap")||(n.syscallMunmap=function(){we("'syscallMunmap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getSocketFromFD")||(n.getSocketFromFD=function(){we("'getSocketFromFD' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getSocketAddress")||(n.getSocketAddress=function(){we("'getSocketAddress' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"JSEvents")||(n.JSEvents=function(){we("'JSEvents' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerKeyEventCallback")||(n.registerKeyEventCallback=function(){we("'registerKeyEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"specialHTMLTargets")||(n.specialHTMLTargets=function(){we("'specialHTMLTargets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"findEventTarget")||(n.findEventTarget=function(){we("'findEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"findCanvasEventTarget")||(n.findCanvasEventTarget=function(){we("'findCanvasEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getBoundingClientRect")||(n.getBoundingClientRect=function(){we("'getBoundingClientRect' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillMouseEventData")||(n.fillMouseEventData=function(){we("'fillMouseEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerMouseEventCallback")||(n.registerMouseEventCallback=function(){we("'registerMouseEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerWheelEventCallback")||(n.registerWheelEventCallback=function(){we("'registerWheelEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerUiEventCallback")||(n.registerUiEventCallback=function(){we("'registerUiEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFocusEventCallback")||(n.registerFocusEventCallback=function(){we("'registerFocusEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillDeviceOrientationEventData")||(n.fillDeviceOrientationEventData=function(){we("'fillDeviceOrientationEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerDeviceOrientationEventCallback")||(n.registerDeviceOrientationEventCallback=function(){we("'registerDeviceOrientationEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillDeviceMotionEventData")||(n.fillDeviceMotionEventData=function(){we("'fillDeviceMotionEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerDeviceMotionEventCallback")||(n.registerDeviceMotionEventCallback=function(){we("'registerDeviceMotionEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"screenOrientation")||(n.screenOrientation=function(){we("'screenOrientation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillOrientationChangeEventData")||(n.fillOrientationChangeEventData=function(){we("'fillOrientationChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerOrientationChangeEventCallback")||(n.registerOrientationChangeEventCallback=function(){we("'registerOrientationChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillFullscreenChangeEventData")||(n.fillFullscreenChangeEventData=function(){we("'fillFullscreenChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFullscreenChangeEventCallback")||(n.registerFullscreenChangeEventCallback=function(){we("'registerFullscreenChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerRestoreOldStyle")||(n.registerRestoreOldStyle=function(){we("'registerRestoreOldStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"hideEverythingExceptGivenElement")||(n.hideEverythingExceptGivenElement=function(){we("'hideEverythingExceptGivenElement' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"restoreHiddenElements")||(n.restoreHiddenElements=function(){we("'restoreHiddenElements' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setLetterbox")||(n.setLetterbox=function(){we("'setLetterbox' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"currentFullscreenStrategy")||(n.currentFullscreenStrategy=function(){we("'currentFullscreenStrategy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"restoreOldWindowedStyle")||(n.restoreOldWindowedStyle=function(){we("'restoreOldWindowedStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"softFullscreenResizeWebGLRenderTarget")||(n.softFullscreenResizeWebGLRenderTarget=function(){we("'softFullscreenResizeWebGLRenderTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"doRequestFullscreen")||(n.doRequestFullscreen=function(){we("'doRequestFullscreen' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillPointerlockChangeEventData")||(n.fillPointerlockChangeEventData=function(){we("'fillPointerlockChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerPointerlockChangeEventCallback")||(n.registerPointerlockChangeEventCallback=function(){we("'registerPointerlockChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerPointerlockErrorEventCallback")||(n.registerPointerlockErrorEventCallback=function(){we("'registerPointerlockErrorEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requestPointerLock")||(n.requestPointerLock=function(){we("'requestPointerLock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillVisibilityChangeEventData")||(n.fillVisibilityChangeEventData=function(){we("'fillVisibilityChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerVisibilityChangeEventCallback")||(n.registerVisibilityChangeEventCallback=function(){we("'registerVisibilityChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerTouchEventCallback")||(n.registerTouchEventCallback=function(){we("'registerTouchEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillGamepadEventData")||(n.fillGamepadEventData=function(){we("'fillGamepadEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerGamepadEventCallback")||(n.registerGamepadEventCallback=function(){we("'registerGamepadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerBeforeUnloadEventCallback")||(n.registerBeforeUnloadEventCallback=function(){we("'registerBeforeUnloadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillBatteryEventData")||(n.fillBatteryEventData=function(){we("'fillBatteryEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"battery")||(n.battery=function(){we("'battery' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerBatteryEventCallback")||(n.registerBatteryEventCallback=function(){we("'registerBatteryEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setCanvasElementSize")||(n.setCanvasElementSize=function(){we("'setCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getCanvasElementSize")||(n.getCanvasElementSize=function(){we("'getCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"polyfillSetImmediate")||(n.polyfillSetImmediate=function(){we("'polyfillSetImmediate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"demangle")||(n.demangle=function(){we("'demangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"demangleAll")||(n.demangleAll=function(){we("'demangleAll' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jsStackTrace")||(n.jsStackTrace=function(){we("'jsStackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackTrace")||(n.stackTrace=function(){we("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getEnvStrings")||(n.getEnvStrings=function(){we("'getEnvStrings' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"checkWasiClock")||(n.checkWasiClock=function(){we("'checkWasiClock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64")||(n.writeI53ToI64=function(){we("'writeI53ToI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64Clamped")||(n.writeI53ToI64Clamped=function(){we("'writeI53ToI64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64Signaling")||(n.writeI53ToI64Signaling=function(){we("'writeI53ToI64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToU64Clamped")||(n.writeI53ToU64Clamped=function(){we("'writeI53ToU64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToU64Signaling")||(n.writeI53ToU64Signaling=function(){we("'writeI53ToU64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readI53FromI64")||(n.readI53FromI64=function(){we("'readI53FromI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readI53FromU64")||(n.readI53FromU64=function(){we("'readI53FromU64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"convertI32PairToI53")||(n.convertI32PairToI53=function(){we("'convertI32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"convertU32PairToI53")||(n.convertU32PairToI53=function(){we("'convertU32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"uncaughtExceptionCount")||(n.uncaughtExceptionCount=function(){we("'uncaughtExceptionCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exceptionLast")||(n.exceptionLast=function(){we("'exceptionLast' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exceptionCaught")||(n.exceptionCaught=function(){we("'exceptionCaught' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ExceptionInfo")||(n.ExceptionInfo=function(){we("'ExceptionInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"CatchInfo")||(n.CatchInfo=function(){we("'CatchInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exception_addRef")||(n.exception_addRef=function(){we("'exception_addRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exception_decRef")||(n.exception_decRef=function(){we("'exception_decRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Browser")||(n.Browser=function(){we("'Browser' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"funcWrappers")||(n.funcWrappers=function(){we("'funcWrappers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFuncWrapper")||(n.getFuncWrapper=function(){we("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setMainLoop")||(n.setMainLoop=function(){we("'setMainLoop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"wget")||(n.wget=function(){we("'wget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"FS")||(n.FS=function(){we("'FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"MEMFS")||(n.MEMFS=function(){we("'MEMFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"TTY")||(n.TTY=function(){we("'TTY' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PIPEFS")||(n.PIPEFS=function(){we("'PIPEFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SOCKFS")||(n.SOCKFS=function(){we("'SOCKFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"_setNetworkCallback")||(n._setNetworkCallback=function(){we("'_setNetworkCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"tempFixedLengthArray")||(n.tempFixedLengthArray=function(){we("'tempFixedLengthArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"miniTempWebGLFloatBuffers")||(n.miniTempWebGLFloatBuffers=function(){we("'miniTempWebGLFloatBuffers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heapObjectForWebGLType")||(n.heapObjectForWebGLType=function(){we("'heapObjectForWebGLType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heapAccessShiftForWebGLHeap")||(n.heapAccessShiftForWebGLHeap=function(){we("'heapAccessShiftForWebGLHeap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.GL=Br,Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGet")||(n.emscriptenWebGLGet=function(){we("'emscriptenWebGLGet' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"computeUnpackAlignedImageSize")||(n.computeUnpackAlignedImageSize=function(){we("'computeUnpackAlignedImageSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetTexPixelData")||(n.emscriptenWebGLGetTexPixelData=function(){we("'emscriptenWebGLGetTexPixelData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetUniform")||(n.emscriptenWebGLGetUniform=function(){we("'emscriptenWebGLGetUniform' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglGetUniformLocation")||(n.webglGetUniformLocation=function(){we("'webglGetUniformLocation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglPrepareUniformLocationsBeforeFirstUse")||(n.webglPrepareUniformLocationsBeforeFirstUse=function(){we("'webglPrepareUniformLocationsBeforeFirstUse' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglGetLeftBracePos")||(n.webglGetLeftBracePos=function(){we("'webglGetLeftBracePos' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetVertexAttrib")||(n.emscriptenWebGLGetVertexAttrib=function(){we("'emscriptenWebGLGetVertexAttrib' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetBufferBinding")||(n.emscriptenWebGLGetBufferBinding=function(){we("'emscriptenWebGLGetBufferBinding' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLValidateMapBufferTarget")||(n.emscriptenWebGLValidateMapBufferTarget=function(){we("'emscriptenWebGLValidateMapBufferTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeGLArray")||(n.writeGLArray=function(){we("'writeGLArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"AL")||(n.AL=function(){we("'AL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_unicode")||(n.SDL_unicode=function(){we("'SDL_unicode' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_ttfContext")||(n.SDL_ttfContext=function(){we("'SDL_ttfContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_audio")||(n.SDL_audio=function(){we("'SDL_audio' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL")||(n.SDL=function(){we("'SDL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_gfx")||(n.SDL_gfx=function(){we("'SDL_gfx' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLUT")||(n.GLUT=function(){we("'GLUT' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"EGL")||(n.EGL=function(){we("'EGL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLFW_Window")||(n.GLFW_Window=function(){we("'GLFW_Window' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLFW")||(n.GLFW=function(){we("'GLFW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLEW")||(n.GLEW=function(){we("'GLEW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"IDBStore")||(n.IDBStore=function(){we("'IDBStore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runAndAbortIfError")||(n.runAndAbortIfError=function(){we("'runAndAbortIfError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_handle_array")||(n.emval_handle_array=function(){we("'emval_handle_array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_free_list")||(n.emval_free_list=function(){we("'emval_free_list' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_symbols")||(n.emval_symbols=function(){we("'emval_symbols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_emval")||(n.init_emval=function(){we("'init_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"count_emval_handles")||(n.count_emval_handles=function(){we("'count_emval_handles' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"get_first_emval")||(n.get_first_emval=function(){we("'get_first_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getStringOrSymbol")||(n.getStringOrSymbol=function(){we("'getStringOrSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requireHandle")||(n.requireHandle=function(){we("'requireHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_newers")||(n.emval_newers=function(){we("'emval_newers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"craftEmvalAllocator")||(n.craftEmvalAllocator=function(){we("'craftEmvalAllocator' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_get_global")||(n.emval_get_global=function(){we("'emval_get_global' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_methodCallers")||(n.emval_methodCallers=function(){we("'emval_methodCallers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"InternalError")||(n.InternalError=function(){we("'InternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"BindingError")||(n.BindingError=function(){we("'BindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UnboundTypeError")||(n.UnboundTypeError=function(){we("'UnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PureVirtualError")||(n.PureVirtualError=function(){we("'PureVirtualError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_embind")||(n.init_embind=function(){we("'init_embind' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwInternalError")||(n.throwInternalError=function(){we("'throwInternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwBindingError")||(n.throwBindingError=function(){we("'throwBindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwUnboundTypeError")||(n.throwUnboundTypeError=function(){we("'throwUnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ensureOverloadTable")||(n.ensureOverloadTable=function(){we("'ensureOverloadTable' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exposePublicSymbol")||(n.exposePublicSymbol=function(){we("'exposePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"replacePublicSymbol")||(n.replacePublicSymbol=function(){we("'replacePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"extendError")||(n.extendError=function(){we("'extendError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"createNamedFunction")||(n.createNamedFunction=function(){we("'createNamedFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredInstances")||(n.registeredInstances=function(){we("'registeredInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getBasestPointer")||(n.getBasestPointer=function(){we("'getBasestPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerInheritedInstance")||(n.registerInheritedInstance=function(){we("'registerInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"unregisterInheritedInstance")||(n.unregisterInheritedInstance=function(){we("'unregisterInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getInheritedInstance")||(n.getInheritedInstance=function(){we("'getInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getInheritedInstanceCount")||(n.getInheritedInstanceCount=function(){we("'getInheritedInstanceCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getLiveInheritedInstances")||(n.getLiveInheritedInstances=function(){we("'getLiveInheritedInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredTypes")||(n.registeredTypes=function(){we("'registeredTypes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"awaitingDependencies")||(n.awaitingDependencies=function(){we("'awaitingDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"typeDependencies")||(n.typeDependencies=function(){we("'typeDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredPointers")||(n.registeredPointers=function(){we("'registeredPointers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerType")||(n.registerType=function(){we("'registerType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"whenDependentTypesAreResolved")||(n.whenDependentTypesAreResolved=function(){we("'whenDependentTypesAreResolved' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind_charCodes")||(n.embind_charCodes=function(){we("'embind_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind_init_charCodes")||(n.embind_init_charCodes=function(){we("'embind_init_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readLatin1String")||(n.readLatin1String=function(){we("'readLatin1String' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getTypeName")||(n.getTypeName=function(){we("'getTypeName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heap32VectorToArray")||(n.heap32VectorToArray=function(){we("'heap32VectorToArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requireRegisteredType")||(n.requireRegisteredType=function(){we("'requireRegisteredType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getShiftFromSize")||(n.getShiftFromSize=function(){we("'getShiftFromSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"integerReadValueFromPointer")||(n.integerReadValueFromPointer=function(){we("'integerReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"enumReadValueFromPointer")||(n.enumReadValueFromPointer=function(){we("'enumReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"floatReadValueFromPointer")||(n.floatReadValueFromPointer=function(){we("'floatReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"simpleReadValueFromPointer")||(n.simpleReadValueFromPointer=function(){we("'simpleReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runDestructors")||(n.runDestructors=function(){we("'runDestructors' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"new_")||(n.new_=function(){we("'new_' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"craftInvokerFunction")||(n.craftInvokerFunction=function(){we("'craftInvokerFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind__requireFunction")||(n.embind__requireFunction=function(){we("'embind__requireFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"tupleRegistrations")||(n.tupleRegistrations=function(){we("'tupleRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"structRegistrations")||(n.structRegistrations=function(){we("'structRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"genericPointerToWireType")||(n.genericPointerToWireType=function(){we("'genericPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"constNoSmartPtrRawPointerToWireType")||(n.constNoSmartPtrRawPointerToWireType=function(){we("'constNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"nonConstNoSmartPtrRawPointerToWireType")||(n.nonConstNoSmartPtrRawPointerToWireType=function(){we("'nonConstNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_RegisteredPointer")||(n.init_RegisteredPointer=function(){we("'init_RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer")||(n.RegisteredPointer=function(){we("'RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_getPointee")||(n.RegisteredPointer_getPointee=function(){we("'RegisteredPointer_getPointee' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_destructor")||(n.RegisteredPointer_destructor=function(){we("'RegisteredPointer_destructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_deleteObject")||(n.RegisteredPointer_deleteObject=function(){we("'RegisteredPointer_deleteObject' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_fromWireType")||(n.RegisteredPointer_fromWireType=function(){we("'RegisteredPointer_fromWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runDestructor")||(n.runDestructor=function(){we("'runDestructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"releaseClassHandle")||(n.releaseClassHandle=function(){we("'releaseClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"finalizationGroup")||(n.finalizationGroup=function(){we("'finalizationGroup' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"detachFinalizer_deps")||(n.detachFinalizer_deps=function(){we("'detachFinalizer_deps' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"detachFinalizer")||(n.detachFinalizer=function(){we("'detachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"attachFinalizer")||(n.attachFinalizer=function(){we("'attachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"makeClassHandle")||(n.makeClassHandle=function(){we("'makeClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_ClassHandle")||(n.init_ClassHandle=function(){we("'init_ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle")||(n.ClassHandle=function(){we("'ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_isAliasOf")||(n.ClassHandle_isAliasOf=function(){we("'ClassHandle_isAliasOf' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwInstanceAlreadyDeleted")||(n.throwInstanceAlreadyDeleted=function(){we("'throwInstanceAlreadyDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_clone")||(n.ClassHandle_clone=function(){we("'ClassHandle_clone' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_delete")||(n.ClassHandle_delete=function(){we("'ClassHandle_delete' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"deletionQueue")||(n.deletionQueue=function(){we("'deletionQueue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_isDeleted")||(n.ClassHandle_isDeleted=function(){we("'ClassHandle_isDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_deleteLater")||(n.ClassHandle_deleteLater=function(){we("'ClassHandle_deleteLater' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"flushPendingDeletes")||(n.flushPendingDeletes=function(){we("'flushPendingDeletes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"delayFunction")||(n.delayFunction=function(){we("'delayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setDelayFunction")||(n.setDelayFunction=function(){we("'setDelayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredClass")||(n.RegisteredClass=function(){we("'RegisteredClass' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"shallowCopyInternalPointer")||(n.shallowCopyInternalPointer=function(){we("'shallowCopyInternalPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"downcastPointer")||(n.downcastPointer=function(){we("'downcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"upcastPointer")||(n.upcastPointer=function(){we("'upcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"validateThis")||(n.validateThis=function(){we("'validateThis' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"char_0")||(n.char_0=function(){we("'char_0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"char_9")||(n.char_9=function(){we("'char_9' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"makeLegalFunctionName")||(n.makeLegalFunctionName=function(){we("'makeLegalFunctionName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetIndexed")||(n.emscriptenWebGLGetIndexed=function(){we("'emscriptenWebGLGetIndexed' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"warnOnce")||(n.warnOnce=function(){we("'warnOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackSave")||(n.stackSave=function(){we("'stackSave' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackRestore")||(n.stackRestore=function(){we("'stackRestore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackAlloc")||(n.stackAlloc=function(){we("'stackAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"AsciiToString")||(n.AsciiToString=function(){we("'AsciiToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToAscii")||(n.stringToAscii=function(){we("'stringToAscii' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF16ToString")||(n.UTF16ToString=function(){we("'UTF16ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF16")||(n.stringToUTF16=function(){we("'stringToUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF16")||(n.lengthBytesUTF16=function(){we("'lengthBytesUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF32ToString")||(n.UTF32ToString=function(){we("'UTF32ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF32")||(n.stringToUTF32=function(){we("'stringToUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF32")||(n.lengthBytesUTF32=function(){we("'lengthBytesUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocateUTF8")||(n.allocateUTF8=function(){we("'allocateUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocateUTF8OnStack")||(n.allocateUTF8OnStack=function(){we("'allocateUTF8OnStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.writeStackCookie=te,n.checkStackCookie=re,Object.getOwnPropertyDescriptor(n,"ALLOC_NORMAL")||Object.defineProperty(n,"ALLOC_NORMAL",{configurable:!0,get:function(){we("'ALLOC_NORMAL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),Object.getOwnPropertyDescriptor(n,"ALLOC_STACK")||Object.defineProperty(n,"ALLOC_STACK",{configurable:!0,get:function(){we("'ALLOC_STACK' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),he=function e(){In||Bn(),In||(he=e)},n.run=Bn,n.preInit)for("function"==typeof n.preInit&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.pop()();return Bn(),e.ready}),F=S,k=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="./this.program",A=function(e,t){throw t},c="object"===("undefined"==typeof window?"undefined":E(window)),u="function"==typeof importScripts,g="object"===("undefined"==typeof process?"undefined":E(process))&&"object"===E(process.versions)&&"string"==typeof process.versions.node,d=!c&&!g&&!u;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 l,f,p,h="";if(!c&&!u)throw new Error("environment detection error");if(u?h=self.location.href:"undefined"!=typeof document&&document.currentScript&&(h=document.currentScript.src),e&&(h=e),h=0!==h.indexOf("blob:")?h.substr(0,h.lastIndexOf("/")+1):"","object"!==("undefined"==typeof window?"undefined":E(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?)");l=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},u&&(p=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),f=function(e,t,r){var n=new XMLHttpRequest;n.open("GET",e,!0),n.responseType="arraybuffer",n.onload=function(){200==n.status||0==n.status&&n.response?t(n.response):r()},n.onerror=r,n.send(null)};var I=o.print||console.log.bind(console),m=o.printErr||console.warn.bind(console);for(i in a)a.hasOwnProperty(i)&&(o[i]=a[i]);function y(e){y.shown||(y.shown={}),y.shown[e]||(y.shown[e]=1,m(e))}a=null,o.arguments&&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&&(s=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)")}}),Q(void 0===o.memoryInitializerPrefixURL,"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),Q(void 0===o.pthreadMainPrefixURL,"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),Q(void 0===o.cdInitializerPrefixURL,"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),Q(void 0===o.filePackagePrefixURL,"Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),Q(void 0===o.read,"Module.read option was removed (modify read_ in JS)"),Q(void 0===o.readAsync,"Module.readAsync option was removed (modify readAsync in JS)"),Q(void 0===o.readBinary,"Module.readBinary option was removed (modify readBinary in JS)"),Q(void 0===o.setWindowTitle,"Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),Q(void 0===o.TOTAL_MEMORY,"Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"),Object.getOwnPropertyDescriptor(o,"read")||Object.defineProperty(o,"read",{configurable:!0,get:function(){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)")}}),Q(!d,"shell environment detected but not enabled at build time. Add 'shell' to `-s ENVIRONMENT` to enable.");var C,w=0,_=function(e){w=e};o.wasmBinary&&(C=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,v=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"!==("undefined"==typeof WebAssembly?"undefined":E(WebAssembly))&&ye("no native wasm support detected");var b,O=!1;function Q(e,t){e||ye("Assertion failed: "+t)}var T="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function P(e,t,r){for(var n=t+r,o=t;e[o]&&!(o>=n);)++o;if(o-t>16&&e.subarray&&T)return T.decode(e.subarray(t,o));for(var i="";t<o;){var a=e[t++];if(128&a){var s=63&e[t++];if(192!=(224&a)){var A=63&e[t++];if(224==(240&a)?a=(15&a)<<12|s<<6|A:(240!=(248&a)&&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|A<<6|63&e[t++]),a<65536)i+=String.fromCharCode(a);else{var c=a-65536;i+=String.fromCharCode(55296|c>>10,56320|1023&c)}}else i+=String.fromCharCode((31&a)<<6|s)}else i+=String.fromCharCode(a)}return i}function M(e,t){return e?P(N,e,t):""}function R(e,t,r,n){if(!(n>0))return 0;for(var o=r,i=r+n-1,a=0;a<e.length;++a){var s=e.charCodeAt(a);if(s>=55296&&s<=57343)s=65536+((1023&s)<<10)|1023&e.charCodeAt(++a);if(s<=127){if(r>=i)break;t[r++]=s}else if(s<=2047){if(r+1>=i)break;t[r++]=192|s>>6,t[r++]=128|63&s}else if(s<=65535){if(r+2>=i)break;t[r++]=224|s>>12,t[r++]=128|s>>6&63,t[r++]=128|63&s}else{if(r+3>=i)break;s>=2097152&&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 S(e,t,r){return Q("number"==typeof r,"stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),R(e,N,t,r)}function F(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 k,x,N,j,U,L,H,G,Y,X="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function W(e,t){Q(e%2==0,"Pointer passed to UTF16ToString must be aligned to two bytes!");for(var r=e,n=r>>1,o=n+t/2;!(n>=o)&&U[n];)++n;if((r=n<<1)-e>32&&X)return X.decode(N.subarray(e,r));for(var i="",a=0;!(a>=t/2);++a){var s=j[e+2*a>>1];if(0==s)break;i+=String.fromCharCode(s)}return i}function V(e,t,r){if(Q(t%2==0,"Pointer passed to stringToUTF16 must be aligned to two bytes!"),Q("number"==typeof r,"stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),void 0===r&&(r=2147483647),r<2)return 0;for(var n=t,o=(r-=2)<2*e.length?r/2:e.length,i=0;i<o;++i){var a=e.charCodeAt(i);j[t>>1]=a,t+=2}return j[t>>1]=0,t-n}function z(e){return 2*e.length}function J(e,t){Q(e%4==0,"Pointer passed to UTF32ToString must be aligned to four bytes!");for(var r=0,n="";!(r>=t/4);){var o=L[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 K(e,t,r){if(Q(t%4==0,"Pointer passed to stringToUTF32 must be aligned to four bytes!"),Q("number"==typeof r,"stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),void 0===r&&(r=2147483647),r<4)return 0;for(var n=t,o=n+r-4,i=0;i<e.length;++i){var a=e.charCodeAt(i);if(a>=55296&&a<=57343)a=65536+((1023&a)<<10)|1023&e.charCodeAt(++i);if(L[t>>2]=a,(t+=4)+4>o)break}return L[t>>2]=0,t-n}function Z(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 q(e){var t=F(e)+1,r=fn(t);return r&&R(e,x,r,t),r}function $(e){k=e,o.HEAP8=x=new Int8Array(e),o.HEAP16=j=new Int16Array(e),o.HEAP32=L=new Int32Array(e),o.HEAPU8=N=new Uint8Array(e),o.HEAPU16=U=new Uint16Array(e),o.HEAPU32=H=new Uint32Array(e),o.HEAPF32=G=new Float32Array(e),o.HEAPF64=Y=new Float64Array(e)}var ee=5242880;o.TOTAL_STACK&&Q(ee===o.TOTAL_STACK,"the stack size can no longer be determined at runtime");var te,re=o.INITIAL_MEMORY||16777216;function ne(){var e=hn();Q(!(3&e)),H[1+(e>>2)]=34821223,H[2+(e>>2)]=2310721022,L[0]=1668509029}function oe(){if(!O){var e=hn(),t=H[1+(e>>2)],r=H[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!==L[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)")}}),Q(re>=ee,"INITIAL_MEMORY should be larger than TOTAL_STACK, was "+re+"! (TOTAL_STACK="+ee+")"),Q("undefined"!=typeof Int32Array&&"undefined"!=typeof Float64Array&&void 0!==Int32Array.prototype.subarray&&void 0!==Int32Array.prototype.set,"JS engine does not provide full typed array support"),Q(!o.wasmMemory,"Use of `wasmMemory` detected. Use -s IMPORTED_MEMORY to define wasmMemory externally"),Q(16777216==re,"Detected runtime INITIAL_MEMORY setting. Use -s IMPORTED_MEMORY to define wasmMemory dynamically"),function(){var e=new Int16Array(1),t=new Int8Array(e.buffer);if(e[0]=25459,115!==t[0]||99!==t[1])throw"Runtime error: expected the system to be little-endian! (Run with -s SUPPORT_BIG_ENDIAN=1 to bypass)"}();var ie=[],ae=[],se=[],Ae=[],ce=!1,ue=!1,ge=0;function de(){return v||ge>0}Q(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),Q(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),Q(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),Q(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");var le=0,fe=null,Ee=null,pe={};function he(e){for(var t=e;;){if(!pe[e])return e;e=t+Math.random()}}function Ie(e){le++,o.monitorRunDependencies&&o.monitorRunDependencies(le),e?(Q(!pe[e]),pe[e]=1,null===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,m("still waiting on run dependencies:")),m("dependency: "+t);e&&m("(end of list)")}),1e4))):m("warning: run dependency added without ID")}function me(e){if(le--,o.monitorRunDependencies&&o.monitorRunDependencies(le),e?(Q(pe[e]),delete pe[e]):m("warning: run dependency removed without ID"),0==le&&(null!==fe&&(clearInterval(fe),fe=null),Ee)){var t=Ee;Ee=null,t()}}function ye(e){o.onAbort&&o.onAbort(e),m(e+=""),O=!0,b=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 Ce,we,_e,Be,ve="data:application/octet-stream;base64,";function De(e){return e.startsWith(ve)}function be(e){return e.startsWith("file://")}function Oe(e,t){return function(){var r=e,n=t;return n=o.asm,Q(ce,"native function `"+r+"` called before runtime initialization"),Q(!ue,"native function `"+r+"` called after runtime exit (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),n[e]||Q(n[e],"exported native function `"+r+"` not found"),n[e].apply(null,arguments)}}function Qe(e){try{if(e==Ce&&C)return new Uint8Array(C);if(p)return p(e);throw"both async and sync fetching of the wasm failed"}catch(e){ye(e)}}De(Ce="selfie_segmentation_solution_wasm_bin.wasm")||(we=Ce,Ce=o.locateFile?o.locateFile(we,h):h+we);var Te,Pe={460976:function(){var e=!0;if(e){var t=Sr;if("function"!=typeof t)return void("undefined"!=typeof console&&console.error('Expected Emscripten global function "findCanvasEventTarget" not found. WebGL context creation may fail.'));Sr=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 Me(e){!function(e){if(b=e,function(){var e=I,t=m,r=!1;I=m=function(e){r=!0};try{var n=o._fflush;n&&n(0),["stdout","stderr"].forEach((function(e){var t=$e.analyzePath("/dev/"+e);if(t){var n=t.object.rdev,o=ze.ttys[n];o&&o.output&&o.output.length&&(r=!0)}}))}catch(e){}I=e,m=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()){var 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)";n(t),m(t)}else oe(),ue=!0;Pn(e)}(e)}function Re(e,t,r,n,i){Q(!ke.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),ke.mainLoop.func=e,ke.mainLoop.arg=n;var a=ke.mainLoop.currentlyRunningMainloop;function s(){return!(a<ke.mainLoop.currentlyRunningMainloop)||(function(){if(!de())try{Me(b)}catch(e){if(e instanceof Qn)return;throw e}}(),!1)}ke.mainLoop.running=!1,ke.mainLoop.runner=function(){if(!O)if(ke.mainLoop.queue.length>0){var t=Date.now(),r=ke.mainLoop.queue.shift();if(r.func(r.arg),ke.mainLoop.remainingBlockers){var n=ke.mainLoop.remainingBlockers,i=n%1==0?n-1:Math.floor(n);r.counted?ke.mainLoop.remainingBlockers=i:(i+=.5,ke.mainLoop.remainingBlockers=(8*n+i)/9)}if(I('main loop blocker "'+r.name+'" took '+(Date.now()-t)+" ms"),ke.mainLoop.updateStatus(),!s())return;setTimeout(ke.mainLoop.runner,0)}else s()&&(ke.mainLoop.currentFrameNumber=ke.mainLoop.currentFrameNumber+1|0,1==ke.mainLoop.timingMode&&ke.mainLoop.timingValue>1&&ke.mainLoop.currentFrameNumber%ke.mainLoop.timingValue!=0?ke.mainLoop.scheduler():(0==ke.mainLoop.timingMode&&(ke.mainLoop.tickStartTime=Te()),Tr.newRenderingFrameStarted(),void 0!==Tr&&Tr.currentContext&&!Tr.currentContextIsProxied&&!Tr.currentContext.attributes.explicitSwapControl&&Tr.currentContext.GLctx.commit&&Tr.currentContext.GLctx.commit(),"timeout"===ke.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!"),ke.mainLoop.method=""),ke.mainLoop.runIter(e),oe(),s()&&("object"===("undefined"==typeof SDL?"undefined":E(SDL))&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),ke.mainLoop.scheduler())))}}function Se(e,t){if(O)m("user callback triggered after application aborted. Ignoring.");else try{e()}catch(e){if(e instanceof Qn)return;if("unwind"!==e)throw e&&"object"===E(e)&&e.stack&&m("exception thrown: "+[e,e.stack]),e}}function Fe(e,t){return setTimeout((function(){Se(e)}),t)}Te=g?function(){var e=process.hrtime();return 1e3*e[0]+e[1]/1e6}:function(){return performance.now()};var ke={mainLoop:{running:!1,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){ke.mainLoop.scheduler=null,ke.mainLoop.currentlyRunningMainloop++},resume:function(){ke.mainLoop.currentlyRunningMainloop++;var e=ke.mainLoop.timingMode,t=ke.mainLoop.timingValue,r=ke.mainLoop.func;ke.mainLoop.func=null,Re(r,0,0,ke.mainLoop.arg),function(e,t){if(ke.mainLoop.timingMode=e,ke.mainLoop.timingValue=t,!ke.mainLoop.func)return m("emscripten_set_main_loop_timing: Cannot set timing mode for main loop since a main loop does not exist! Call emscripten_set_main_loop first to set one up."),1;if(ke.mainLoop.running||(ke.mainLoop.running=!0),0==e)ke.mainLoop.scheduler=function(){var e=0|Math.max(0,ke.mainLoop.tickStartTime+t-Te());setTimeout(ke.mainLoop.runner,e)},ke.mainLoop.method="timeout";else if(1==e)ke.mainLoop.scheduler=function(){ke.requestAnimationFrame(ke.mainLoop.runner)},ke.mainLoop.method="rAF";else if(2==e){if("undefined"==typeof setImmediate){var r=[],n="setimmediate";addEventListener("message",(function(e){e.data!==n&&e.data.target!==n||(e.stopPropagation(),r.shift()())}),!0),setImmediate=function(e){r.push(e),u?(void 0===o.setImmediates&&(o.setImmediates=[]),o.setImmediates.push(e),postMessage({target:n})):postMessage(n,"*")}}ke.mainLoop.scheduler=function(){setImmediate(ke.mainLoop.runner)},ke.mainLoop.method="immediate"}}(e,t),ke.mainLoop.scheduler()},updateStatus:function(){if(o.setStatus){var e=o.statusMessage||"Please wait...",t=ke.mainLoop.remainingBlockers,r=ke.mainLoop.expectedBlockers;t?t<r?o.setStatus(e+" ("+(r-t)+"/"+r+")"):o.setStatus(e):o.setStatus("")}},runIter:function(e){if(!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=[]),!ke.initted){ke.initted=!0;try{new Blob,ke.hasBlobConstructor=!0}catch(e){ke.hasBlobConstructor=!1,I("warning: no blob constructor, cannot create blobs with mimetypes")}ke.BlobBuilder="undefined"!=typeof MozBlobBuilder?MozBlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:ke.hasBlobConstructor?null:I("warning: no BlobBuilder"),ke.URLObject="undefined"!=typeof window?window.URL?window.URL:window.webkitURL:void 0,o.noImageDecoding||void 0!==ke.URLObject||(I("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),o.noImageDecoding=!0);var e={canHandle:function(e){return!o.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(e)},handle:function(e,t,r,n){var i=null;if(ke.hasBlobConstructor)try{(i=new Blob([e],{type:ke.getMimetype(t)})).size!==e.length&&(i=new Blob([new Uint8Array(e).buffer],{type:ke.getMimetype(t)}))}catch(e){y("Blob constructor present but fails: "+e+"; falling back to blob builder")}if(!i){var a=new ke.BlobBuilder;a.append(new Uint8Array(e).buffer),i=a.getBlob()}var s=ke.URLObject.createObjectURL(i);Q("string"==typeof s,"createObjectURL must return a url as a string");var A=new Image;A.onload=function(){Q(A.complete,"Image "+t+" could not be decoded");var n=document.createElement("canvas");n.width=A.width,n.height=A.height,n.getContext("2d").drawImage(A,0,0),o.preloadedImages[t]=n,ke.URLObject.revokeObjectURL(s),r&&r(e)},A.onerror=function(e){I("Image "+s+" could not be decoded"),n&&n()},A.src=s}};o.preloadPlugins.push(e);var t={canHandle:function(e){return!o.noAudioDecoding&&e.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},handle:function(e,t,r,n){var i=!1;function a(n){i||(i=!0,o.preloadedAudios[t]=n,r&&r(e))}function s(){i||(i=!0,o.preloadedAudios[t]=new Audio,n&&n())}if(!ke.hasBlobConstructor)return s();try{var A=new Blob([e],{type:ke.getMimetype(t)})}catch(e){return s()}var c=ke.URLObject.createObjectURL(A);Q("string"==typeof c,"createObjectURL must return a url as a string");var u=new Audio;u.addEventListener("canplaythrough",(function(){a(u)}),!1),u.onerror=function(r){i||(I("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=c,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){!ke.pointerLock&&o.canvas.requestPointerLock&&(o.canvas.requestPointerLock(),e.preventDefault())}),!1))}},createContext:function(e,t,r,n){if(t&&o.ctx&&e==o.canvas)return o.ctx;var i,a;if(t){var s={antialias:!1,alpha:!1,majorVersion:"undefined"!=typeof WebGL2RenderingContext?2:1};if(n)for(var A in n)s[A]=n[A];void 0!==Tr&&(a=Tr.createContext(e,s))&&(i=Tr.getContext(a).GLctx)}else i=e.getContext("2d");return i?(r&&(t||Q(void 0===nn,"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,ke.moduleContextCreatedCallbacks.forEach((function(e){e()})),ke.init()),i):null},destroyContext:function(e,t,r){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(e,t){ke.lockPointer=e,ke.resizeCanvas=t,void 0===ke.lockPointer&&(ke.lockPointer=!0),void 0===ke.resizeCanvas&&(ke.resizeCanvas=!1);var r=o.canvas;function n(){ke.isFullscreen=!1;var e=r.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===e?(r.exitFullscreen=ke.exitFullscreen,ke.lockPointer&&r.requestPointerLock(),ke.isFullscreen=!0,ke.resizeCanvas?ke.setFullscreenCanvasSize():ke.updateCanvasDimensions(r)):(e.parentNode.insertBefore(r,e),e.parentNode.removeChild(e),ke.resizeCanvas?ke.setWindowedCanvasSize():ke.updateCanvasDimensions(r)),o.onFullScreen&&o.onFullScreen(ke.isFullscreen),o.onFullscreen&&o.onFullscreen(ke.isFullscreen)}ke.fullscreenHandlersInstalled||(ke.fullscreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",n,!1),document.addEventListener("mozfullscreenchange",n,!1),document.addEventListener("webkitfullscreenchange",n,!1),document.addEventListener("MSFullscreenChange",n,!1));var i=document.createElement("div");r.parentNode.insertBefore(i,r),i.appendChild(r),i.requestFullscreen=i.requestFullscreen||i.mozRequestFullScreen||i.msRequestFullscreen||(i.webkitRequestFullscreen?function(){i.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(i.webkitRequestFullScreen?function(){i.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),i.requestFullscreen()},requestFullScreen:function(){ye("Module.requestFullScreen has been replaced by Module.requestFullscreen (without a capital S)")},exitFullscreen:function(){return!!ke.isFullscreen&&((document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){}).apply(document,[]),!0)},nextRAF:0,fakeRequestAnimationFrame:function(e){var t=Date.now();if(0===ke.nextRAF)ke.nextRAF=t+1e3/60;else for(;t+2>=ke.nextRAF;)ke.nextRAF+=1e3/60;var r=Math.max(ke.nextRAF-t,0);setTimeout(e,r)},requestAnimationFrame:function(e){function t(t){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}((function(e){"function"!=typeof requestAnimationFrame?(0,ke.fakeRequestAnimationFrame)(e):requestAnimationFrame(e)})),safeSetTimeout:function(e){return Fe(e)},safeRequestAnimationFrame:function(e){return ke.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(ke.pointerLock)"mousemove"!=e.type&&"mozMovementX"in e?ke.mouseMovementX=ke.mouseMovementY=0:(ke.mouseMovementX=ke.getMovementX(e),ke.mouseMovementY=ke.getMovementY(e)),"undefined"!=typeof SDL?(ke.mouseX=SDL.mouseX+ke.mouseMovementX,ke.mouseY=SDL.mouseY+ke.mouseMovementY):(ke.mouseX+=ke.mouseMovementX,ke.mouseY+=ke.mouseMovementY);else{var t=o.canvas.getBoundingClientRect(),r=o.canvas.width,n=o.canvas.height,i=void 0!==window.scrollX?window.scrollX:window.pageXOffset,a=void 0!==window.scrollY?window.scrollY:window.pageYOffset;if(Q(void 0!==i&&void 0!==a,"Unable to retrieve scroll position, mouse positions likely broken."),"touchstart"===e.type||"touchend"===e.type||"touchmove"===e.type){var s=e.touch;if(void 0===s)return;var A=s.pageX-(i+t.left),c=s.pageY-(a+t.top),u={x:A*=r/t.width,y:c*=n/t.height};if("touchstart"===e.type)ke.lastTouches[s.identifier]=u,ke.touches[s.identifier]=u;else if("touchend"===e.type||"touchmove"===e.type){var g=ke.touches[s.identifier];g||(g=u),ke.lastTouches[s.identifier]=g,ke.touches[s.identifier]=u}return}var d=e.pageX-(i+t.left),l=e.pageY-(a+t.top);d*=r/t.width,l*=n/t.height,ke.mouseMovementX=d-ke.mouseX,ke.mouseMovementY=l-ke.mouseY,ke.mouseX=d,ke.mouseY=l}},resizeListeners:[],updateResizeListeners:function(){var e=o.canvas;ke.resizeListeners.forEach((function(t){t(e.width,e.height)}))},setCanvasSize:function(e,t,r){var n=o.canvas;ke.updateCanvasDimensions(n,e,t),r||ke.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if("undefined"!=typeof SDL){var e=H[SDL.screen>>2];e|=8388608,L[SDL.screen>>2]=e}ke.updateCanvasDimensions(o.canvas),ke.updateResizeListeners()},setWindowedCanvasSize:function(){if("undefined"!=typeof SDL){var e=H[SDL.screen>>2];e&=-8388609,L[SDL.screen>>2]=e}ke.updateCanvasDimensions(o.canvas),ke.updateResizeListeners()},updateCanvasDimensions:function(e,t,r){t&&r?(e.widthNative=t,e.heightNative=r):(t=e.widthNative,r=e.heightNative);var n=t,i=r;if(o.forcedAspectRatio&&o.forcedAspectRatio>0&&(n/i<o.forcedAspectRatio?n=Math.round(i*o.forcedAspectRatio):i=Math.round(n/o.forcedAspectRatio)),(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===e.parentNode&&"undefined"!=typeof screen){var a=Math.min(screen.width/n,screen.height/i);n=Math.round(n*a),i=Math.round(i*a)}ke.resizeCanvas?(e.width!=n&&(e.width=n),e.height!=i&&(e.height=i),void 0!==e.style&&(e.style.removeProperty("width"),e.style.removeProperty("height"))):(e.width!=t&&(e.width=t),e.height!=r&&(e.height=r),void 0!==e.style&&(n!=t||i!=r?(e.style.setProperty("width",n+"px","important"),e.style.setProperty("height",i+"px","important")):(e.style.removeProperty("width"),e.style.removeProperty("height"))))}};function xe(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var r=t.func;"number"==typeof r?void 0===t.arg?te.get(r)():te.get(r)(t.arg):r(void 0===t.arg?null:t.arg)}else t(o)}}function 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 je(e){this.excPtr=e,this.ptr=e-16,this.set_type=function(e){L[this.ptr+4>>2]=e},this.get_type=function(){return L[this.ptr+4>>2]},this.set_destructor=function(e){L[this.ptr+8>>2]=e},this.get_destructor=function(){return L[this.ptr+8>>2]},this.set_refcount=function(e){L[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=L[this.ptr>>2];L[this.ptr>>2]=e+1},this.release_ref=function(){var e=L[this.ptr>>2];return L[this.ptr>>2]=e-1,Q(e>0),1===e}}function Ue(e){this.free=function(){ln(this.ptr),this.ptr=0},this.set_base_ptr=function(e){L[this.ptr>>2]=e},this.get_base_ptr=function(){return L[this.ptr>>2]},this.set_adjusted_ptr=function(e){L[this.ptr+4>>2]=e},this.get_adjusted_ptr_addr=function(){return this.ptr+4},this.get_adjusted_ptr=function(){return L[this.ptr+4>>2]},this.get_exception_ptr=function(){if(bn(this.get_exception_info().get_type()))return L[this.get_base_ptr()>>2];var e=this.get_adjusted_ptr();return 0!==e?e:this.get_base_ptr()},this.get_exception_info=function(){return new je(this.get_base_ptr())},void 0===e?(this.ptr=fn(8),this.set_adjusted_ptr(0)):this.ptr=e}var Le=[];var He=0;function Ge(e){try{return ln(new je(e).ptr)}catch(e){m("exception during cxa_free_exception: "+e)}}function Ye(e){return L[En()>>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"===("undefined"==typeof crypto?"undefined":E(crypto))&&"function"==typeof crypto.getRandomValues){var e=new Uint8Array(1);return function(){return crypto.getRandomValues(e),e[0]}}if(g)try{var t=D("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]:$e.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 A=[];for(s=a;s<n.length;s++)A.push("..");return(A=A.concat(o.slice(a))).join("/")}},ze={ttys:[],init:function(){},shutdown:function(){},register:function(e,t){ze.ttys[e]={input:[],output:[],ops:t},$e.registerDevice(e,ze.stream_ops)},stream_ops:{open:function(e){var t=ze.ttys[e.node.rdev];if(!t)throw new $e.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 $e.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 $e.ErrnoError(29)}if(void 0===s&&0===i)throw new $e.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 $e.ErrnoError(60);try{for(var i=0;i<n;i++)e.tty.ops.put_char(e.tty,t[r+i])}catch(e){throw new $e.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(g){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=gn(t,!0)}return e.input.shift()},put_char:function(e,t){null===t||10===t?(I(P(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(I(P(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,t){null===t||10===t?(m(P(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(m(P(e.output,0)),e.output=[])}}};function Je(e){e=function(e,t){return Q(t,"alignment argument is required"),Math.ceil(e/t)*t}(e,65536);var t=On(65536,e);return t?(function(e,t){N.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($e.isBlkdev(r)||$e.isFIFO(r))throw new $e.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:$e.chrdev_stream_ops}});var o=$e.createNode(e,t,r,n);return $e.isDir(o.mode)?(o.node_ops=Ke.ops_table.dir.node,o.stream_ops=Ke.ops_table.dir.stream,o.contents={}):$e.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):$e.isLink(o.mode)?(o.node_ops=Ke.ops_table.link.node,o.stream_ops=Ke.ops_table.link.stream):$e.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=$e.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,$e.isDir(e.mode)?t.size=4096:$e.isFile(e.mode)?t.size=e.usedBytes:$e.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 $e.genericErrors[44]},mknod:function(e,t,r,n){return Ke.createNode(e,t,r,n)},rename:function(e,t,r){if($e.isDir(e.mode)){var n;try{n=$e.lookupNode(t,r)}catch(e){}if(n)for(var o in n.contents)throw new $e.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=$e.lookupNode(e,t);for(var n in r.contents)throw new $e.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(!$e.isLink(e.mode))throw new $e.ErrnoError(28);return e.link}},stream_ops:{read:function(e,t,r,n,o){var i=e.node.contents;if(o>=e.node.usedBytes)return 0;var a=Math.min(e.node.usedBytes-o,n);if(Q(a>=0),a>8&&i.subarray)t.set(i.subarray(o,o+a),r);else for(var s=0;s<a;s++)t[r+s]=i[o+s];return a},write:function(e,t,r,n,o,i){if(Q(!(t instanceof ArrayBuffer)),t.buffer===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 Q(0===o,"canOwn must imply no weird position inside the file"),a.contents=t.subarray(r,r+n),a.usedBytes=n,n;if(0===a.usedBytes&&0===o)return a.contents=t.slice(r,r+n),a.usedBytes=n,n;if(o+n<=a.usedBytes)return a.contents.set(t.subarray(r,r+n),o),n}if(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&&$e.isFile(e.node.mode)&&(n+=e.node.usedBytes),n<0)throw new $e.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 $e.ErrnoError(28);if(!$e.isFile(e.node.mode))throw new $e.ErrnoError(43);var a,s,A=e.node.contents;if(2&i||A.buffer!==k){if((n>0||n+r<A.length)&&(A=A.subarray?A.subarray(n,n+r):Array.prototype.slice.call(A,n,n+r)),s=!0,!(a=Je(r)))throw new $e.ErrnoError(48);x.set(A,a)}else s=!1,a=A.byteOffset;return{ptr:a,allocated:s}},msync:function(e,t,r,n,o){if(!$e.isFile(e.node.mode))throw new $e.ErrnoError(43);return 2&o||Ke.stream_ops.write(e,t,0,n,r,!1),0}}};var Ze={0:"Success",1:"Arg list too long",2:"Permission denied",3:"Address already in use",4:"Address not available",5:"Address family not supported by protocol family",6:"No more processes",7:"Socket already connected",8:"Bad file number",9:"Trying to read unreadable message",10:"Mount device busy",11:"Operation canceled",12:"No children",13:"Connection aborted",14:"Connection refused",15:"Connection reset by peer",16:"File locking deadlock error",17:"Destination address required",18:"Math arg out of domain of func",19:"Quota exceeded",20:"File exists",21:"Bad address",22:"File too large",23:"Host is unreachable",24:"Identifier removed",25:"Illegal byte sequence",26:"Connection already in progress",27:"Interrupted system call",28:"Invalid argument",29:"I/O error",30:"Socket is already connected",31:"Is a directory",32:"Too many symbolic links",33:"Too many open files",34:"Too many links",35:"Message too long",36:"Multihop attempted",37:"File or path name too long",38:"Network interface is not configured",39:"Connection reset by network",40:"Network is unreachable",41:"Too many open files in system",42:"No buffer space available",43:"No such device",44:"No such file or directory",45:"Exec format error",46:"No record locks available",47:"The link has been severed",48:"Not enough core",49:"No message of desired type",50:"Protocol not available",51:"No space left on device",52:"Function not implemented",53:"Socket is not connected",54:"Not a directory",55:"Directory not empty",56:"State not recoverable",57:"Socket operation on non-socket",59:"Not a typewriter",60:"No such device or address",61:"Value too large for defined data type",62:"Previous owner died",63:"Not super-user",64:"Broken pipe",65:"Protocol error",66:"Unknown protocol",67:"Protocol wrong type for socket",68:"Math result not representable",69:"Read only file system",70:"Illegal seek",71:"No such process",72:"Stale file handle",73:"Connection timed out",74:"Text file busy",75:"Cross-device link",100:"Device not a stream",101:"Bad font file fmt",102:"Invalid slot",103:"Invalid request code",104:"No anode",105:"Block device required",106:"Channel number out of range",107:"Level 3 halted",108:"Level 3 reset",109:"Link number out of range",110:"Protocol driver not attached",111:"No CSI structure available",112:"Level 2 halted",113:"Invalid exchange",114:"Invalid request descriptor",115:"Exchange full",116:"No data (for no delay io)",117:"Timer expired",118:"Out of streams resources",119:"Machine is not on the network",120:"Package not installed",121:"The object is remote",122:"Advertise error",123:"Srmount error",124:"Communication error on send",125:"Cross mount point (not really error)",126:"Given log. name not unique",127:"f.d. invalid for this operation",128:"Remote address changed",129:"Can access a needed shared lib",130:"Accessing a corrupted shared lib",131:".lib section in a.out corrupted",132:"Attempting to link in too many libs",133:"Attempting to exec a shared library",135:"Streams pipe error",136:"Too many users",137:"Socket type not supported",138:"Not supported",139:"Protocol family not supported",140:"Can't send after socket shutdown",141:"Too many references",142:"Host is down",148:"No medium (in tape drive)",156:"Level 2 not synchronized"},qe={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},$e={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($e.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 $e.ErrnoError(32);for(var o=Xe.normalizeArray(e.split("/").filter((function(e){return!!e})),!1),i=$e.root,a="/",s=0;s<o.length;s++){var A=s===o.length-1;if(A&&t.parent)break;if(i=$e.lookupNode(i,o[s]),a=Xe.join2(a,o[s]),$e.isMountpoint(i)&&(!A||A&&t.follow_mount)&&(i=i.mounted.root),!A||t.follow)for(var c=0;$e.isLink(i.mode);){var u=$e.readlink(a);if(a=Ve.resolve(Xe.dirname(a),u),i=$e.lookupPath(a,{recurse_count:t.recurse_count}).node,c++>40)throw new $e.ErrnoError(32)}}return{path:a,node:i}},getPath:function(e){for(var t;;){if($e.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)%$e.nameTable.length},hashAddNode:function(e){var t=$e.hashName(e.parent.id,e.name);e.name_next=$e.nameTable[t],$e.nameTable[t]=e},hashRemoveNode:function(e){var t=$e.hashName(e.parent.id,e.name);if($e.nameTable[t]===e)$e.nameTable[t]=e.name_next;else for(var r=$e.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=$e.mayLookup(e);if(r)throw new $e.ErrnoError(r,e);for(var n=$e.hashName(e.id,t),o=$e.nameTable[n];o;o=o.name_next){var i=o.name;if(o.parent.id===e.id&&i===t)return o}return $e.lookup(e,t)},createNode:function(e,t,r,n){Q("object"===E(e));var o=new $e.FSNode(e,t,r,n);return $e.hashAddNode(o),o},destroyNode:function(e){$e.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=$e.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 $e.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=$e.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate:function(e,t){try{$e.lookupNode(e,t);return 20}catch(e){}return $e.nodePermissions(e,"wx")},mayDelete:function(e,t,r){var n;try{n=$e.lookupNode(e,t)}catch(e){return e.errno}var o=$e.nodePermissions(e,"wx");if(o)return o;if(r){if(!$e.isDir(n.mode))return 54;if($e.isRoot(n)||$e.getPath(n)===$e.cwd())return 10}else if($e.isDir(n.mode))return 31;return 0},mayOpen:function(e,t){return e?$e.isLink(e.mode)?32:$e.isDir(e.mode)&&("r"!==$e.flagsToPermissionString(t)||512&t)?31:$e.nodePermissions(e,$e.flagsToPermissionString(t)):44},MAX_OPEN_FDS:4096,nextfd:function(e,t){e=e||0,t=t||$e.MAX_OPEN_FDS;for(var r=e;r<=t;r++)if(!$e.streams[r])return r;throw new $e.ErrnoError(33)},getStream:function(e){return $e.streams[e]},createStream:function(e,t,r){$e.FSStream||($e.FSStream=function(){},$e.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 $e.FSStream;for(var o in e)n[o]=e[o];e=n;var i=$e.nextfd(t,r);return e.fd=i,$e.streams[i]=e,e},closeStream:function(e){$e.streams[e]=null},chrdev_stream_ops:{open:function(e){var t=$e.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:function(){throw new $e.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){$e.devices[e]={stream_ops:t}},getDevice:function(e){return $e.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),$e.syncFSRequests++,$e.syncFSRequests>1&&m("warning: "+$e.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var r=$e.getMounts($e.root.mount),n=0;function o(e){return Q($e.syncFSRequests>0),$e.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&&$e.root)throw new $e.ErrnoError(10);if(!o&&!i){var a=$e.lookupPath(r,{follow_mount:!1});if(r=a.path,n=a.node,$e.isMountpoint(n))throw new $e.ErrnoError(10);if(!$e.isDir(n.mode))throw new $e.ErrnoError(54)}var s={type:e,opts:t,mountpoint:r,mounts:[]},A=e.mount(s);return A.mount=s,s.root=A,o?$e.root=A:n&&(n.mounted=s,n.mount&&n.mount.mounts.push(s)),A},unmount:function(e){var t=$e.lookupPath(e,{follow_mount:!1});if(!$e.isMountpoint(t.node))throw new $e.ErrnoError(28);var r=t.node,n=r.mounted,o=$e.getMounts(n);Object.keys($e.nameTable).forEach((function(e){for(var t=$e.nameTable[e];t;){var r=t.name_next;o.includes(t.mount)&&$e.destroyNode(t),t=r}})),r.mounted=null;var i=r.mount.mounts.indexOf(n);Q(-1!==i),r.mount.mounts.splice(i,1)},lookup:function(e,t){return e.node_ops.lookup(e,t)},mknod:function(e,t,r){var n=$e.lookupPath(e,{parent:!0}).node,o=Xe.basename(e);if(!o||"."===o||".."===o)throw new $e.ErrnoError(28);var i=$e.mayCreate(n,o);if(i)throw new $e.ErrnoError(i);if(!n.node_ops.mknod)throw new $e.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,$e.mknod(e,t,0)},mkdir:function(e,t){return t=void 0!==t?t:511,t&=1023,t|=16384,$e.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{$e.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,$e.mknod(e,t,r)},symlink:function(e,t){if(!Ve.resolve(e))throw new $e.ErrnoError(44);var r=$e.lookupPath(t,{parent:!0}).node;if(!r)throw new $e.ErrnoError(44);var n=Xe.basename(t),o=$e.mayCreate(r,n);if(o)throw new $e.ErrnoError(o);if(!r.node_ops.symlink)throw new $e.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=$e.lookupPath(e,{parent:!0}).node,n=$e.lookupPath(t,{parent:!0}).node,!r||!n)throw new $e.ErrnoError(44);if(r.mount!==n.mount)throw new $e.ErrnoError(75);var A,c=$e.lookupNode(r,a),u=Ve.relative(e,i);if("."!==u.charAt(0))throw new $e.ErrnoError(28);if("."!==(u=Ve.relative(t,o)).charAt(0))throw new $e.ErrnoError(55);try{A=$e.lookupNode(n,s)}catch(e){}if(c!==A){var g=$e.isDir(c.mode),d=$e.mayDelete(r,a,g);if(d)throw new $e.ErrnoError(d);if(d=A?$e.mayDelete(n,s,g):$e.mayCreate(n,s))throw new $e.ErrnoError(d);if(!r.node_ops.rename)throw new $e.ErrnoError(63);if($e.isMountpoint(c)||A&&$e.isMountpoint(A))throw new $e.ErrnoError(10);if(n!==r&&(d=$e.nodePermissions(r,"w")))throw new $e.ErrnoError(d);try{$e.trackingDelegate.willMovePath&&$e.trackingDelegate.willMovePath(e,t)}catch(r){m("FS.trackingDelegate['willMovePath']('"+e+"', '"+t+"') threw an exception: "+r.message)}$e.hashRemoveNode(c);try{r.node_ops.rename(c,n,s)}catch(e){throw e}finally{$e.hashAddNode(c)}try{$e.trackingDelegate.onMovePath&&$e.trackingDelegate.onMovePath(e,t)}catch(r){m("FS.trackingDelegate['onMovePath']('"+e+"', '"+t+"') threw an exception: "+r.message)}}},rmdir:function(e){var t=$e.lookupPath(e,{parent:!0}).node,r=Xe.basename(e),n=$e.lookupNode(t,r),o=$e.mayDelete(t,r,!0);if(o)throw new $e.ErrnoError(o);if(!t.node_ops.rmdir)throw new $e.ErrnoError(63);if($e.isMountpoint(n))throw new $e.ErrnoError(10);try{$e.trackingDelegate.willDeletePath&&$e.trackingDelegate.willDeletePath(e)}catch(t){m("FS.trackingDelegate['willDeletePath']('"+e+"') threw an exception: "+t.message)}t.node_ops.rmdir(t,r),$e.destroyNode(n);try{$e.trackingDelegate.onDeletePath&&$e.trackingDelegate.onDeletePath(e)}catch(t){m("FS.trackingDelegate['onDeletePath']('"+e+"') threw an exception: "+t.message)}},readdir:function(e){var t=$e.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new $e.ErrnoError(54);return t.node_ops.readdir(t)},unlink:function(e){var t=$e.lookupPath(e,{parent:!0}).node,r=Xe.basename(e),n=$e.lookupNode(t,r),o=$e.mayDelete(t,r,!1);if(o)throw new $e.ErrnoError(o);if(!t.node_ops.unlink)throw new $e.ErrnoError(63);if($e.isMountpoint(n))throw new $e.ErrnoError(10);try{$e.trackingDelegate.willDeletePath&&$e.trackingDelegate.willDeletePath(e)}catch(t){m("FS.trackingDelegate['willDeletePath']('"+e+"') threw an exception: "+t.message)}t.node_ops.unlink(t,r),$e.destroyNode(n);try{$e.trackingDelegate.onDeletePath&&$e.trackingDelegate.onDeletePath(e)}catch(t){m("FS.trackingDelegate['onDeletePath']('"+e+"') threw an exception: "+t.message)}},readlink:function(e){var t=$e.lookupPath(e).node;if(!t)throw new $e.ErrnoError(44);if(!t.node_ops.readlink)throw new $e.ErrnoError(28);return Ve.resolve($e.getPath(t.parent),t.node_ops.readlink(t))},stat:function(e,t){var r=$e.lookupPath(e,{follow:!t}).node;if(!r)throw new $e.ErrnoError(44);if(!r.node_ops.getattr)throw new $e.ErrnoError(63);return r.node_ops.getattr(r)},lstat:function(e){return $e.stat(e,!0)},chmod:function(e,t,r){var n;"string"==typeof e?n=$e.lookupPath(e,{follow:!r}).node:n=e;if(!n.node_ops.setattr)throw new $e.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&t|-4096&n.mode,timestamp:Date.now()})},lchmod:function(e,t){$e.chmod(e,t,!0)},fchmod:function(e,t){var r=$e.getStream(e);if(!r)throw new $e.ErrnoError(8);$e.chmod(r.node,t)},chown:function(e,t,r,n){var o;"string"==typeof e?o=$e.lookupPath(e,{follow:!n}).node:o=e;if(!o.node_ops.setattr)throw new $e.ErrnoError(63);o.node_ops.setattr(o,{timestamp:Date.now()})},lchown:function(e,t,r){$e.chown(e,t,r,!0)},fchown:function(e,t,r){var n=$e.getStream(e);if(!n)throw new $e.ErrnoError(8);$e.chown(n.node,t,r)},truncate:function(e,t){if(t<0)throw new $e.ErrnoError(28);var r;"string"==typeof e?r=$e.lookupPath(e,{follow:!0}).node:r=e;if(!r.node_ops.setattr)throw new $e.ErrnoError(63);if($e.isDir(r.mode))throw new $e.ErrnoError(31);if(!$e.isFile(r.mode))throw new $e.ErrnoError(28);var n=$e.nodePermissions(r,"w");if(n)throw new $e.ErrnoError(n);r.node_ops.setattr(r,{size:t,timestamp:Date.now()})},ftruncate:function(e,t){var r=$e.getStream(e);if(!r)throw new $e.ErrnoError(8);if(!(2097155&r.flags))throw new $e.ErrnoError(28);$e.truncate(r.node,t)},utime:function(e,t,r){var n=$e.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 $e.ErrnoError(44);var a;if(r=void 0===r?438:r,r=64&(t="string"==typeof t?$e.modeStringToFlags(t):t)?4095&r|32768:0,"object"===E(e))a=e;else{e=Xe.normalize(e);try{a=$e.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var s=!1;if(64&t)if(a){if(128&t)throw new $e.ErrnoError(20)}else a=$e.mknod(e,r,0),s=!0;if(!a)throw new $e.ErrnoError(44);if($e.isChrdev(a.mode)&&(t&=-513),65536&t&&!$e.isDir(a.mode))throw new $e.ErrnoError(54);if(!s){var A=$e.mayOpen(a,t);if(A)throw new $e.ErrnoError(A)}512&t&&$e.truncate(a,0),t&=-131713;var c=$e.createStream({node:a,path:$e.getPath(a),flags:t,seekable:!0,position:0,stream_ops:a.stream_ops,ungotten:[],error:!1},n,i);c.stream_ops.open&&c.stream_ops.open(c),!o.logReadFiles||1&t||($e.readFiles||($e.readFiles={}),e in $e.readFiles||($e.readFiles[e]=1,m("FS.trackingDelegate error on read file: "+e)));try{if($e.trackingDelegate.onOpenFile){var u=0;1!=(2097155&t)&&(u|=$e.tracking.openFlags.READ),2097155&t&&(u|=$e.tracking.openFlags.WRITE),$e.trackingDelegate.onOpenFile(e,u)}}catch(t){m("FS.trackingDelegate['onOpenFile']('"+e+"', flags) threw an exception: "+t.message)}return c},close:function(e){if($e.isClosed(e))throw new $e.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{$e.closeStream(e.fd)}e.fd=null},isClosed:function(e){return null===e.fd},llseek:function(e,t,r){if($e.isClosed(e))throw new $e.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new $e.ErrnoError(70);if(0!=r&&1!=r&&2!=r)throw new $e.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 $e.ErrnoError(28);if($e.isClosed(e))throw new $e.ErrnoError(8);if(1==(2097155&e.flags))throw new $e.ErrnoError(8);if($e.isDir(e.node.mode))throw new $e.ErrnoError(31);if(!e.stream_ops.read)throw new $e.ErrnoError(28);var i=void 0!==o;if(i){if(!e.seekable)throw new $e.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 $e.ErrnoError(28);if($e.isClosed(e))throw new $e.ErrnoError(8);if(!(2097155&e.flags))throw new $e.ErrnoError(8);if($e.isDir(e.node.mode))throw new $e.ErrnoError(31);if(!e.stream_ops.write)throw new $e.ErrnoError(28);e.seekable&&1024&e.flags&&$e.llseek(e,0,2);var a=void 0!==o;if(a){if(!e.seekable)throw new $e.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&&$e.trackingDelegate.onWriteToFile&&$e.trackingDelegate.onWriteToFile(e.path)}catch(t){m("FS.trackingDelegate['onWriteToFile']('"+e.path+"') threw an exception: "+t.message)}return s},allocate:function(e,t,r){if($e.isClosed(e))throw new $e.ErrnoError(8);if(t<0||r<=0)throw new $e.ErrnoError(28);if(!(2097155&e.flags))throw new $e.ErrnoError(8);if(!$e.isFile(e.node.mode)&&!$e.isDir(e.node.mode))throw new $e.ErrnoError(43);if(!e.stream_ops.allocate)throw new $e.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 $e.ErrnoError(2);if(1==(2097155&e.flags))throw new $e.ErrnoError(2);if(!e.stream_ops.mmap)throw new $e.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 $e.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=$e.open(e,t.flags),o=$e.stat(e).size,i=new Uint8Array(o);return $e.read(n,i,0,o,0),"utf8"===t.encoding?r=P(i,0):"binary"===t.encoding&&(r=i),$e.close(n),r},writeFile:function(e,t,r){(r=r||{}).flags=r.flags||577;var n=$e.open(e,r.flags,r.mode);if("string"==typeof t){var o=new Uint8Array(F(t)+1),i=R(t,o,0,o.length);$e.write(n,o,0,i,void 0,r.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");$e.write(n,t,0,t.byteLength,void 0,r.canOwn)}$e.close(n)},cwd:function(){return $e.currentPath},chdir:function(e){var t=$e.lookupPath(e,{follow:!0});if(null===t.node)throw new $e.ErrnoError(44);if(!$e.isDir(t.node.mode))throw new $e.ErrnoError(54);var r=$e.nodePermissions(t.node,"x");if(r)throw new $e.ErrnoError(r);$e.currentPath=t.path},createDefaultDirectories:function(){$e.mkdir("/tmp"),$e.mkdir("/home"),$e.mkdir("/home/web_user")},createDefaultDevices:function(){$e.mkdir("/dev"),$e.registerDevice($e.makedev(1,3),{read:function(){return 0},write:function(e,t,r,n,o){return n}}),$e.mkdev("/dev/null",$e.makedev(1,3)),ze.register($e.makedev(5,0),ze.default_tty_ops),ze.register($e.makedev(6,0),ze.default_tty1_ops),$e.mkdev("/dev/tty",$e.makedev(5,0)),$e.mkdev("/dev/tty1",$e.makedev(6,0));var e=We();$e.createDevice("/dev","random",e),$e.createDevice("/dev","urandom",e),$e.mkdir("/dev/shm"),$e.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){$e.mkdir("/proc");var e=$e.mkdir("/proc/self");$e.mkdir("/proc/self/fd"),$e.mount({mount:function(){var t=$e.createNode(e,"fd",16895,73);return t.node_ops={lookup:function(e,t){var r=+t,n=$e.getStream(r);if(!n)throw new $e.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?$e.createDevice("/dev","stdin",o.stdin):$e.symlink("/dev/tty","/dev/stdin"),o.stdout?$e.createDevice("/dev","stdout",null,o.stdout):$e.symlink("/dev/tty","/dev/stdout"),o.stderr?$e.createDevice("/dev","stderr",null,o.stderr):$e.symlink("/dev/tty1","/dev/stderr");var e=$e.open("/dev/stdin",0),t=$e.open("/dev/stdout",1),r=$e.open("/dev/stderr",1);Q(0===e.fd,"invalid handle for stdin ("+e.fd+")"),Q(1===t.fd,"invalid handle for stdout ("+t.fd+")"),Q(2===r.fd,"invalid handle for stderr ("+r.fd+")")},ensureErrnoError:function(){$e.ErrnoError||($e.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){for(var t in this.errno=e,qe)if(qe[t]===e){this.code=t;break}},this.setErrno(e),this.message=Ze[e],this.stack&&(Object.defineProperty(this,"stack",{value:(new Error).stack,writable:!0}),this.stack=Ne(this.stack))},$e.ErrnoError.prototype=new Error,$e.ErrnoError.prototype.constructor=$e.ErrnoError,[44].forEach((function(e){$e.genericErrors[e]=new $e.ErrnoError(e),$e.genericErrors[e].stack="<generic error, no stack>"})))},staticInit:function(){$e.ensureErrnoError(),$e.nameTable=new Array(4096),$e.mount(Ke,{},"/"),$e.createDefaultDirectories(),$e.createDefaultDevices(),$e.createSpecialDirectories(),$e.filesystems={MEMFS:Ke}},init:function(e,t,r){Q(!$e.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)"),$e.init.initialized=!0,$e.ensureErrnoError(),o.stdin=e||o.stdin,o.stdout=t||o.stdout,o.stderr=r||o.stderr,$e.createStandardStreams()},quit:function(){$e.init.initialized=!1;var e=o._fflush;e&&e(0);for(var t=0;t<$e.streams.length;t++){var r=$e.streams[t];r&&$e.close(r)}},getMode:function(e,t){var r=0;return e&&(r|=365),t&&(r|=146),r},findObject:function(e,t){var r=$e.analyzePath(e,t);return r.exists?r.object:null},analyzePath:function(e,t){try{e=(n=$e.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=$e.lookupPath(e,{parent:!0});r.parentExists=!0,r.parentPath=n.path,r.parentObject=n.node,r.name=Xe.basename(e),n=$e.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:$e.getPath(e);for(var o=t.split("/").reverse();o.length;){var i=o.pop();if(i){var a=Xe.join2(e,i);try{$e.mkdir(a)}catch(e){}e=a}}return a},createFile:function(e,t,r,n,o){var i=Xe.join2("string"==typeof e?e:$e.getPath(e),t),a=$e.getMode(n,o);return $e.create(i,a)},createDataFile:function(e,t,r,n,o,i){var a=t?Xe.join2("string"==typeof e?e:$e.getPath(e),t):e,s=$e.getMode(n,o),A=$e.create(a,s);if(r){if("string"==typeof r){for(var c=new Array(r.length),u=0,g=r.length;u<g;++u)c[u]=r.charCodeAt(u);r=c}$e.chmod(A,146|s);var d=$e.open(A,577);$e.write(d,r,0,r.length,0,i),$e.close(d),$e.chmod(A,s)}return A},createDevice:function(e,t,r,n){var o=Xe.join2("string"==typeof e?e:$e.getPath(e),t),i=$e.getMode(!!r,!!n);$e.createDevice.major||($e.createDevice.major=64);var a=$e.makedev($e.createDevice.major++,0);return $e.registerDevice(a,{open:function(e){e.seekable=!1},close:function(e){n&&n.buffer&&n.buffer.length&&n(10)},read:function(e,t,n,o,i){for(var a=0,s=0;s<o;s++){var A;try{A=r()}catch(e){throw new $e.ErrnoError(29)}if(void 0===A&&0===a)throw new $e.ErrnoError(6);if(null==A)break;a++,t[n+s]=A}return a&&(e.node.timestamp=Date.now()),a},write:function(e,t,r,o,i){for(var a=0;a<o;a++)try{n(t[r+a])}catch(e){throw new $e.ErrnoError(29)}return o&&(e.node.timestamp=Date.now()),a}}),$e.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(!l)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=gn(l(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new $e.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||[]):gn(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(!u)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var a=new i;Object.defineProperties(a,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var s={isDevice:!1,contents:a}}else s={isDevice:!1,url:r};var A=$e.createFile(e,t,s,n,o);s.contents?A.contents=s.contents:s.url&&(A.contents=null,A.url=s.url),Object.defineProperties(A,{usedBytes:{get:function(){return this.contents.length}}});var c={};return Object.keys(A.stream_ops).forEach((function(e){var t=A.stream_ops[e];c[e]=function(){return $e.forceLoadFile(A),t.apply(null,arguments)}})),c.read=function(e,t,r,n,o){$e.forceLoadFile(A);var i=e.node.contents;if(o>=i.length)return 0;var a=Math.min(i.length-o,n);if(Q(a>=0),i.slice)for(var s=0;s<a;s++)t[r+s]=i[o+s];else for(s=0;s<a;s++)t[r+s]=i.get(o+s);return a},A.stream_ops=c,A},createPreloadedFile:function(e,t,r,n,i,a,s,A,c,u){ke.init();var g=t?Ve.resolve(Xe.join2(e,t)):e,d=he("cp "+g);function l(r){function l(r){u&&u(),A||$e.createDataFile(e,t,r,n,i,c),a&&a(),me(d)}var f=!1;o.preloadPlugins.forEach((function(e){f||e.canHandle(g)&&(e.handle(r,g,l,(function(){s&&s(),me(d)})),f=!0)})),f||l(r)}Ie(d),"string"==typeof r?function(e,t,r){var n=he("al "+e);f(e,(function(r){Q(r,'Loading data file "'+e+'" failed (no arrayBuffer).'),t(new Uint8Array(r)),n&&me(n)}),(function(t){if(!r)throw'Loading data file "'+e+'" failed.';r()})),n&&Ie(n)}(r,(function(e){l(e)}),s):l(r)},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(e,t,r){t=t||function(){},r=r||function(){};var n=$e.indexedDB();try{var o=n.open($e.DB_NAME(),$e.DB_VERSION)}catch(e){return r(e)}o.onupgradeneeded=function(){I("creating db"),o.result.createObjectStore($e.DB_STORE_NAME)},o.onsuccess=function(){var n=o.result.transaction([$e.DB_STORE_NAME],"readwrite"),i=n.objectStore($e.DB_STORE_NAME),a=0,s=0,A=e.length;function c(){0==s?t():r()}e.forEach((function(e){var t=i.put($e.analyzePath(e).object.contents,e);t.onsuccess=function(){++a+s==A&&c()},t.onerror=function(){s++,a+s==A&&c()}})),n.onerror=r},o.onerror=r},loadFilesFromDB:function(e,t,r){t=t||function(){},r=r||function(){};var n=$e.indexedDB();try{var o=n.open($e.DB_NAME(),$e.DB_VERSION)}catch(e){return r(e)}o.onupgradeneeded=r,o.onsuccess=function(){var n=o.result;try{var i=n.transaction([$e.DB_STORE_NAME],"readonly")}catch(e){return void r(e)}var a=i.objectStore($e.DB_STORE_NAME),s=0,A=0,c=e.length;function u(){0==A?t():r()}e.forEach((function(e){var t=a.get(e);t.onsuccess=function(){$e.analyzePath(e).exists&&$e.unlink(e),$e.createDataFile(Xe.dirname(e),Xe.basename(e),t.result,!0,!0,!0),++s+A==c&&u()},t.onerror=function(){A++,s+A==c&&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=$e.cwd();else{var o=$e.getStream(e);if(!o)throw new $e.ErrnoError(8);n=o.path}if(0==t.length){if(!r)throw new $e.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($e.getPath(e.node)))return-54;throw e}return L[r>>2]=n.dev,L[r+4>>2]=0,L[r+8>>2]=n.ino,L[r+12>>2]=n.mode,L[r+16>>2]=n.nlink,L[r+20>>2]=n.uid,L[r+24>>2]=n.gid,L[r+28>>2]=n.rdev,L[r+32>>2]=0,Be=[n.size>>>0,(_e=n.size,+Math.abs(_e)>=1?_e>0?(0|Math.min(+Math.floor(_e/4294967296),4294967295))>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],L[r+40>>2]=Be[0],L[r+44>>2]=Be[1],L[r+48>>2]=4096,L[r+52>>2]=n.blocks,L[r+56>>2]=n.atime.getTime()/1e3|0,L[r+60>>2]=0,L[r+64>>2]=n.mtime.getTime()/1e3|0,L[r+68>>2]=0,L[r+72>>2]=n.ctime.getTime()/1e3|0,L[r+76>>2]=0,Be=[n.ino>>>0,(_e=n.ino,+Math.abs(_e)>=1?_e>0?(0|Math.min(+Math.floor(_e/4294967296),4294967295))>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],L[r+80>>2]=Be[0],L[r+84>>2]=Be[1],0},doMsync:function(e,t,r,n,o){var i=N.slice(e,e+r);$e.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)),$e.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 $e.mknod(e,t,r),0},doReadlink:function(e,t,r){if(r<=0)return-28;var n=$e.readlink(e),o=Math.min(r,F(n)),i=x[t+o];return S(n,t,r+1),x[t+o]=i,o},doAccess:function(e,t){if(-8&t)return-28;var r;if(!(r=$e.lookupPath(e,{follow:!0}).node))return-44;var n="";return 4&t&&(n+="r"),2&t&&(n+="w"),1&t&&(n+="x"),n&&$e.nodePermissions(r,n)?-2:0},doDup:function(e,t,r){var n=$e.getStream(r);return n&&$e.close(n),$e.open(e,t,0,r,r).fd},doReadv:function(e,t,r,n){for(var o=0,i=0;i<r;i++){var a=L[t+8*i>>2],s=L[t+(8*i+4)>>2],A=$e.read(e,x,a,s,n);if(A<0)return-1;if(o+=A,A<s)break}return o},doWritev:function(e,t,r,n){for(var o=0,i=0;i<r;i++){var a=L[t+8*i>>2],s=L[t+(8*i+4)>>2],A=$e.write(e,x,a,s,n);if(A<0)return-1;o+=A}return o},varargs:void 0,get:function(){return Q(null!=et.varargs),et.varargs+=4,L[et.varargs-4>>2]},getStr:function(e){return M(e)},getStreamFromFD:function(e){var t=$e.getStream(e);if(!t)throw new $e.ErrnoError(8);return t},get64:function(e,t){return Q(e>=0?0===t:-1===t),e}};var tt=48,rt=57;function nt(e){if(void 0===e)return"_unknown";var t=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return t>=tt&&t<=rt?"_"+e:e}function ot(e,t){return e=nt(e),new Function("body","return function "+e+'() {\n "use strict"; return body.apply(this, arguments);\n};\n')(t)}var it=[],at=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function st(){for(var e=0,t=5;t<at.length;++t)void 0!==at[t]&&++e;return e}function At(){for(var e=5;e<at.length;++e)if(void 0!==at[e])return at[e];return null}function ct(e){switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var t=it.length?it.pop():at.length;return at[t]={refcount:1,value:e},t}}function ut(e,t){var r=ot(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 gt=void 0;var dt=void 0;function lt(e){for(var t="",r=e;N[r];)t+=dt[N[r++]];return t}function ft(){return Object.keys(yt).length}function Et(){var e=[];for(var t in yt)yt.hasOwnProperty(t)&&e.push(yt[t]);return e}var pt=[];function ht(){for(;pt.length;){var e=pt.pop();e.$$.deleteScheduled=!1,e.delete()}}var It=void 0;function mt(e){It=e,pt.length&&It&&It(ht)}var yt={},Ct=void 0;function wt(e){throw new Ct(e)}function _t(e,t){for(void 0===t&&wt("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t}function Bt(e){return e||wt("Cannot use deleted val. handle = "+e),at[e].value}var vt={};function Dt(e){var t=pn(e),r=lt(t);return ln(t),r}function bt(e,t){var r=vt[e];return void 0===r&&wt(t+" has unknown type "+Dt(e)),r}function Ot(e){}var Qt=!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 Pt(e){return"undefined"==typeof FinalizationGroup?(Pt=function(e){return e},e):(Qt=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)}})),Ot=function(e){Qt.unregister(e.$$)},(Pt=function(e){return Qt.register(e,e.$$,e.$$),e})(e))}var Mt={};function Rt(e){for(;e.length;){var t=e.pop();e.pop()(t)}}function St(e){return this.fromWireType(H[e>>2])}var Ft={},kt={},xt=void 0;function Nt(e){throw new xt(e)}function jt(e,t,r){function n(t){var n=r(t);n.length!==e.length&&Nt("Mismatched type converter count");for(var o=0;o<e.length;++o)Lt(e[o],n[o])}e.forEach((function(e){kt[e]=t}));var o=new Array(t.length),i=[],a=0;t.forEach((function(e,t){vt.hasOwnProperty(e)?o[t]=vt[e]:(i.push(e),Ft.hasOwnProperty(e)||(Ft[e]=[]),Ft[e].push((function(){o[t]=vt[e],++a===i.length&&n(o)})))})),0===i.length&&n(o)}function Ut(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 Lt(e,t,r){if(r=r||{},!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");var n=t.name;if(e||wt('type "'+n+'" must have a positive integer typeid pointer'),vt.hasOwnProperty(e)){if(r.ignoreDuplicateRegistrations)return;wt("Cannot register type '"+n+"' twice")}if(vt[e]=t,delete kt[e],Ft.hasOwnProperty(e)){var o=Ft[e];delete Ft[e],o.forEach((function(e){e()}))}}function Ht(e){if(!(this instanceof zt))return!1;if(!(e instanceof zt))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 Gt(e){wt(e.$$.ptrType.registeredClass.name+" instance already deleted")}function Yt(){if(this.$$.ptr||Gt(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e,t=Pt(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 Xt(){this.$$.ptr||Gt(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&wt("Object already scheduled for deletion"),Ot(this),Tt(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Wt(){return!this.$$.ptr}function Vt(){return this.$$.ptr||Gt(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&wt("Object already scheduled for deletion"),pt.push(this),1===pt.length&&It&&It(ht),this.$$.deleteScheduled=!0,this}function zt(){}var Jt={};function Kt(e,t,r){if(void 0===e[t].overloadTable){var n=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||wt("Function '"+r+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+e[t].overloadTable+")!"),e[t].overloadTable[arguments.length].apply(this,arguments)},e[t].overloadTable=[],e[t].overloadTable[n.argCount]=n}}function Zt(e,t,r){o.hasOwnProperty(e)?((void 0===r||void 0!==o[e].overloadTable&&void 0!==o[e].overloadTable[r])&&wt("Cannot register public name '"+e+"' twice"),Kt(o,e,e),o.hasOwnProperty(r)&&wt("Cannot register multiple overloads of a function with the same number of arguments ("+r+")!"),o[e].overloadTable[r]=t):(o[e]=t,void 0!==r&&(o[e].numArguments=r))}function qt(e,t,r,n,o,i,a,s){this.name=e,this.constructor=t,this.instancePrototype=r,this.rawDestructor=n,this.baseClass=o,this.getActualType=i,this.upcast=a,this.downcast=s,this.pureVirtualFunctions=[]}function $t(e,t,r){for(;t!==r;)t.upcast||wt("Expected null or instance of "+r.name+", got an instance of "+t.name),e=t.upcast(e),t=t.baseClass;return e}function er(e,t){if(null===t)return this.isReference&&wt("null is not a valid "+this.name),0;t.$$||wt('Cannot pass "'+yr(t)+'" as a '+this.name),t.$$.ptr||wt("Cannot pass deleted object as a pointer of type "+this.name);var r=t.$$.ptrType.registeredClass;return $t(t.$$.ptr,r,this.registeredClass)}function tr(e,t){var r;if(null===t)return this.isReference&&wt("null is not a valid "+this.name),this.isSmartPointer?(r=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,r),r):0;t.$$||wt('Cannot pass "'+yr(t)+'" as a '+this.name),t.$$.ptr||wt("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&t.$$.ptrType.isConst&&wt("Cannot convert argument of type "+(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name)+" to parameter type "+this.name);var n=t.$$.ptrType.registeredClass;if(r=$t(t.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===t.$$.smartPtr&&wt("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?r=t.$$.smartPtr:wt("Cannot convert argument of type "+(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name)+" to parameter type "+this.name);break;case 1:r=t.$$.smartPtr;break;case 2:if(t.$$.smartPtrType===this)r=t.$$.smartPtr;else{var o=t.clone();r=this.rawShare(r,ct((function(){o.delete()}))),null!==e&&e.push(this.rawDestructor,r)}break;default:wt("Unsupporting sharing policy")}return r}function rr(e,t){if(null===t)return this.isReference&&wt("null is not a valid "+this.name),0;t.$$||wt('Cannot pass "'+yr(t)+'" as a '+this.name),t.$$.ptr||wt("Cannot pass deleted object as a pointer of type "+this.name),t.$$.ptrType.isConst&&wt("Cannot convert argument of type "+t.$$.ptrType.name+" to parameter type "+this.name);var r=t.$$.ptrType.registeredClass;return $t(t.$$.ptr,r,this.registeredClass)}function nr(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e}function or(e){this.rawDestructor&&this.rawDestructor(e)}function ir(e){null!==e&&e.delete()}function ar(e,t,r){if(t===r)return e;if(void 0===r.baseClass)return null;var n=ar(e,t,r.baseClass);return null===n?null:r.downcast(n)}function sr(e,t){return t.ptrType&&t.ptr||Nt("makeClassHandle requires ptr and ptrType"),!!t.smartPtrType!==!!t.smartPtr&&Nt("Both smartPtrType and smartPtr must be specified"),t.count={value:1},Pt(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),yt[t]}(this.registeredClass,t);if(void 0!==r){if(0===r.$$.count.value)return r.$$.ptr=t,r.$$.smartPtr=e,r.clone();var n=r.clone();return this.destructor(e),n}function o(){return this.isSmartPointer?sr(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):sr(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var i,a=this.registeredClass.getActualType(t),s=Jt[a];if(!s)return o.call(this);i=this.isConst?s.constPointerType:s.pointerType;var A=ar(t,this.registeredClass,i.registeredClass);return null===A?o.call(this):this.isSmartPointer?sr(i.registeredClass.instancePrototype,{ptrType:i,ptr:A,smartPtrType:this,smartPtr:e}):sr(i.registeredClass.instancePrototype,{ptrType:i,ptr:A})}function cr(e,t,r,n,o,i,a,s,A,c,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=A,this.rawShare=c,this.rawDestructor=u,o||void 0!==t.baseClass?this.toWireType=tr:n?(this.toWireType=er,this.destructorFunction=null):(this.toWireType=rr,this.destructorFunction=null)}function ur(e,t,r){o.hasOwnProperty(e)||Nt("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 gr(e,t,r){return e.includes("j")?function(e,t,r){Q("dynCall_"+e in o,"bad function pointer type - no table for sig '"+e+"'"),r&&r.length?Q(r.length===e.substring(1).replace(/j/g,"--").length):Q(1==e.length);var n=o["dynCall_"+e];return r&&r.length?n.apply(null,[t].concat(r)):n.call(null,t)}(e,t,r):(Q(te.get(t),"missing table entry in dynCall: "+t),te.get(t).apply(null,r))}function dr(e,t){var r=(e=lt(e)).includes("j")?function(e,t){Q(e.includes("j"),"getDynCaller should only be called with i64 sigs");var r=[];return function(){r.length=arguments.length;for(var n=0;n<arguments.length;n++)r[n]=arguments[n];return gr(e,t,r)}}(e,t):te.get(t);return"function"!=typeof r&&wt("unknown function pointer with signature "+e+": "+t),r}var lr=void 0;function fr(e,t){var r=[],n={};throw t.forEach((function e(t){n[t]||vt[t]||(kt[t]?kt[t].forEach(e):(r.push(t),n[t]=!0))})),new lr(e+": "+r.map(Dt).join([", "]))}function Er(e,t){if(!(e instanceof Function))throw new TypeError("new_ called with constructor type "+E(e)+" which is not a function");var r=ot(e.name||"unknownFunctionName",(function(){}));r.prototype=e.prototype;var n=new r,o=e.apply(n,t);return o instanceof Object?o:n}function pr(e,t,r,n,o){var i=t.length;i<2&&wt("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var a=null!==t[1]&&null!==r,s=!1,A=1;A<t.length;++A)if(null!==t[A]&&void 0===t[A].destructorFunction){s=!0;break}var c="void"!==t[0].name,u="",g="";for(A=0;A<i-2;++A)u+=(0!==A?", ":"")+"arg"+A,g+=(0!==A?", ":"")+"arg"+A+"Wired";var d="return function "+nt(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 l=s?"destructors":"null",f=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],E=[wt,n,o,Rt,t[0],t[1]];a&&(d+="var thisWired = classParam.toWireType("+l+", this);\n");for(A=0;A<i-2;++A)d+="var arg"+A+"Wired = argType"+A+".toWireType("+l+", arg"+A+"); // "+t[A+2].name+"\n",f.push("argType"+A),E.push(t[A+2]);if(a&&(g="thisWired"+(g.length>0?", ":"")+g),d+=(c?"var rv = ":"")+"invoker(fn"+(g.length>0?", ":"")+g+");\n",s)d+="runDestructors(destructors);\n";else for(A=a?1:2;A<t.length;++A){var p=1===A?"thisWired":"arg"+(A-2)+"Wired";null!==t[A].destructorFunction&&(d+=p+"_dtor("+p+"); // "+t[A].name+"\n",f.push(p+"_dtor"),E.push(t[A].destructorFunction))}return c&&(d+="var ret = retType.fromWireType(rv);\nreturn ret;\n"),d+="}\n",f.push(d),Er(Function,f).apply(null,E)}function hr(e,t){for(var r=[],n=0;n<e;n++)r.push(L[(t>>2)+n]);return r}function Ir(e,t,r){return e instanceof Object||wt(r+' with invalid "this": '+e),e instanceof t.registeredClass.constructor||wt(r+' incompatible with "this" of type '+e.constructor.name),e.$$.ptr||wt("cannot call emscripten binding method "+r+" on deleted object"),$t(e.$$.ptr,e.$$.ptrType.registeredClass,t.registeredClass)}function mr(e){e>4&&0==--at[e].refcount&&(at[e]=void 0,it.push(e))}function yr(e){if(null===e)return"null";var t=E(e);return"object"===t||"array"===t||"function"===t?e.toString():""+e}function Cr(e,t){switch(t){case 2:return function(e){return this.fromWireType(G[e>>2])};case 3:return function(e){return this.fromWireType(Y[e>>3])};default:throw new TypeError("Unknown float type: "+e)}}function wr(e,t,r){switch(t){case 0:return r?function(e){return x[e]}:function(e){return N[e]};case 1:return r?function(e){return j[e>>1]}:function(e){return U[e>>1]};case 2:return r?function(e){return L[e>>2]}:function(e){return H[e>>2]};default:throw new TypeError("Unknown integer type: "+e)}}var _r={};var Br=[];var vr=[];function Dr(e){try{return B.grow(e-k.byteLength+65535>>>16),$(B.buffer),1}catch(t){m("emscripten_realloc_buffer: Attempted to grow heap from "+k.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 Or={};function Qr(e){e.forEach((function(e){var t=br();t&&(Or[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=nn.createBuffer(),t.GLctx.bindBuffer(34963,t.tempQuadIndexBuffer);for(var A=Tr.MAX_TEMP_BUFFER_SIZE>>1,c=new Uint16Array(A),u=(n=0,0);!(c[n++]=u,n>=A||(c[n++]=u+1,n>=A)||(c[n++]=u+2,n>=A)||(c[n++]=u,n>=A)||(c[n++]=u+2,n>=A)||(c[n++]=u+3,n>=A));)u+=4;t.GLctx.bufferData(34963,c,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=nn.getParameter(34964);return r[n]=nn.createBuffer(),nn.bindBuffer(34962,r[n]),nn.bufferData(34962,1<<t,35048),nn.bindBuffer(34962,i),r[n]},getTempIndexBuffer:function(e){var t=Tr.log2ceilLookup(e),r=Tr.currentContext.tempIndexBuffers[t];if(r)return r;var n=nn.getParameter(34965);return Tr.currentContext.tempIndexBuffers[t]=nn.createBuffer(),nn.bindBuffer(34963,Tr.currentContext.tempIndexBuffers[t]),nn.bufferData(34963,1<<t,35048),nn.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?L[n+4*i>>2]:-1;o+=M(L[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);nn.bindBuffer(34962,o),nn.bufferSubData(34962,0,N.subarray(r.ptr,r.ptr+n)),r.vertexAttribPointerAdaptor.call(nn,t,r.size,r.type,r.normalized,r.stride,0)}}},postDrawHandleClientVertexAttribBindings:function(){Tr.resetBufferBinding&&nn.bindBuffer(34962,Tr.buffers[nn.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 A=t.createProgram();t.attachShader(A,a),t.attachShader(A,s),t.linkProgram(A),e.blitProgram=A,e.blitPosLoc=t.getAttribLocation(A,"pos"),t.useProgram(A),t.uniform1i(t.getUniformLocation(A,"sampler"),0),t.useProgram(null),e.defaultVao=void 0,t.createVertexArray&&(e.defaultVao=t.createVertexArray(),t.bindVertexArray(e.defaultVao),t.enableVertexAttribArray(e.blitPosLoc),t.bindVertexArray(null))},resizeOffscreenFramebuffer:function(e){var t=e.GLctx;if(e.defaultColorTarget){var r=t.getParameter(32873);t.bindTexture(3553,e.defaultColorTarget),t.texImage2D(3553,0,6408,t.drawingBufferWidth,t.drawingBufferHeight,0,6408,5121,null),t.bindTexture(3553,r)}if(e.defaultDepthTarget){var n=t.getParameter(36007);t.bindRenderbuffer(36161,e.defaultDepthTarget),t.renderbufferStorage(36161,33189,t.drawingBufferWidth,t.drawingBufferHeight),t.bindRenderbuffer(36161,n)}},blitOffscreenFramebuffer:function(e){var t=e.GLctx,r=t.getParameter(3089);r&&t.disable(3089);var n=t.getParameter(36006);if(t.blitFramebuffer&&!e.defaultFboForbidBlitFramebuffer)t.bindFramebuffer(36008,e.defaultFbo),t.bindFramebuffer(36009,null),t.blitFramebuffer(0,0,t.canvas.width,t.canvas.height,0,0,t.canvas.width,t.canvas.height,16384,9728);else{var o=function(){t.vertexAttribPointer(e.blitPosLoc,2,5126,!1,0,0),t.drawArrays(5,0,4)};t.bindFramebuffer(36160,null);var i=t.getParameter(35725);t.useProgram(e.blitProgram);var a=t.getParameter(34964);t.bindBuffer(34962,e.blitVB);var s=t.getParameter(34016);t.activeTexture(33984);var A=t.getParameter(32873);t.bindTexture(3553,e.defaultColorTarget);var c=t.getParameter(3042);c&&t.disable(3042);var u=t.getParameter(2884);u&&t.disable(2884);var g=t.getParameter(2929);g&&t.disable(2929);var d=t.getParameter(2960);if(d&&t.disable(2960),e.defaultVao){var l=t.getParameter(34229);t.bindVertexArray(e.defaultVao),o(),t.bindVertexArray(l)}else{for(var f={buffer:t.getVertexAttrib(e.blitPosLoc,34975),size:t.getVertexAttrib(e.blitPosLoc,34339),stride:t.getVertexAttrib(e.blitPosLoc,34340),type:t.getVertexAttrib(e.blitPosLoc,34341),normalized:t.getVertexAttrib(e.blitPosLoc,34922),pointer:t.getVertexAttribOffset(e.blitPosLoc,34373)},E=t.getParameter(34921),p=[],h=0;h<E;++h){var I=t.getVertexAttrib(h,34338),m=h==e.blitPosLoc;I&&!m&&t.disableVertexAttribArray(h),!I&&m&&t.enableVertexAttribArray(h),p[h]=I}o();for(h=0;h<E;++h){I=p[h];var y=h==e.blitPosLoc;I&&!y&&t.enableVertexAttribArray(h),!I&&y&&t.disableVertexAttribArray(h)}t.bindBuffer(34962,f.buffer),t.vertexAttribPointer(e.blitPosLoc,f.size,f.type,f.normalized,f.stride,f.offset)}d&&t.enable(2960),g&&t.enable(2929),u&&t.enable(2884),c&&t.enable(3042),t.bindTexture(3553,A),t.activeTexture(s),t.bindBuffer(34962,a),t.useProgram(i)}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=nn=Tr.currentContext&&Tr.currentContext.GLctx,!(e&&!nn)},getContext:function(e){return Tr.contexts[e]},deleteContext:function(e){Tr.currentContext===Tr.contexts[e]&&(Tr.currentContext=null),"object"===E(Pr)&&Pr.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)}))}}},Pr={inEventHandler:0,removeAllEventListeners:function(){for(var e=Pr.eventHandlers.length-1;e>=0;--e)Pr._removeHandler(e);Pr.eventHandlers=[],Pr.deferredCalls=[]},registerRemoveEventListeners:function(){Pr.removeEventListenersRegistered||(se.push(Pr.removeAllEventListeners),Pr.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 Pr.deferredCalls){var i=Pr.deferredCalls[o];if(i.targetFunction==e&&n(i.argsList,r))return}Pr.deferredCalls.push({targetFunction:e,precedence:t,argsList:r}),Pr.deferredCalls.sort((function(e,t){return e.precedence<t.precedence}))},removeDeferredCalls:function(e){for(var t=0;t<Pr.deferredCalls.length;++t)Pr.deferredCalls[t].targetFunction==e&&(Pr.deferredCalls.splice(t,1),--t)},canPerformEventHandlerRequests:function(){return Pr.inEventHandler&&Pr.currentEventHandler.allowsDeferredCalls},runDeferredCalls:function(){if(Pr.canPerformEventHandlerRequests())for(var e=0;e<Pr.deferredCalls.length;++e){var t=Pr.deferredCalls[e];Pr.deferredCalls.splice(e,1),--e,t.targetFunction.apply(null,t.argsList)}},eventHandlers:[],removeAllHandlersOnTarget:function(e,t){for(var r=0;r<Pr.eventHandlers.length;++r)Pr.eventHandlers[r].target!=e||t&&t!=Pr.eventHandlers[r].eventTypeString||Pr._removeHandler(r--)},_removeHandler:function(e){var t=Pr.eventHandlers[e];t.target.removeEventListener(t.eventTypeString,t.eventListenerFunc,t.useCapture),Pr.eventHandlers.splice(e,1)},registerOrRemoveHandler:function(e){var t=function(t){++Pr.inEventHandler,Pr.currentEventHandler=e,Pr.runDeferredCalls(),e.handlerFunc(t),Pr.runDeferredCalls(),--Pr.inEventHandler};if(e.callbackfunc)e.eventListenerFunc=t,e.target.addEventListener(e.eventTypeString,t,e.useCapture),Pr.eventHandlers.push(e),Pr.registerRemoveEventListeners();else for(var r=0;r<Pr.eventHandlers.length;++r)Pr.eventHandlers[r].target==e.target&&Pr.eventHandlers[r].eventTypeString==e.eventTypeString&&Pr._removeHandler(r--)},getNodeNameForTarget:function(e){return e?e==window?"#window":e==screen?"#screen":e&&e.nodeName?e.nodeName:"":""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}},Mr=["default","low-power","high-performance"],Rr=[0,"undefined"!=typeof document?document:0,"undefined"!=typeof window?window:0];function Sr(e){return"number"==typeof e&&(e=M(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=Rr[e]||M(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 Fr(){return Tr.currentContext?Tr.currentContext.handle:0}function kr(e){return Tr.makeContextCurrent(e)?0:-5}o._emscripten_webgl_get_current_context=Fr,o._emscripten_webgl_make_context_current=kr;var xr={};function Nr(){if(!Nr.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"===("undefined"==typeof navigator?"undefined":E(navigator))&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:s||"./this.program"};for(var t in xr)void 0===xr[t]?delete e[t]:e[t]=xr[t];var r=[];for(var t in e)r.push(t+"="+e[t]);Nr.strings=r}return Nr.strings}var jr=[];function Ur(e,t,r,n){for(var o=0;o<e;o++){var i=nn[r](),a=i&&Tr.getNewId(n);i?(i.name=a,n[a]=i):Tr.recordError(1282),L[t+4*o>>2]=a}}function Lr(e,t){H[e>>2]=t,H[e+4>>2]=(t-H[e>>2])/4294967296;var r=t>=0?function(e){return H[e>>2]+4294967296*H[e+4>>2]}(e):function(e){return H[e>>2]+4294967296*L[e+4>>2]}(e);r!=t&&y("writeI53ToI64() out of range: serialized JS Number "+t+" to Wasm heap as bytes lo=0x"+H[e>>2].toString(16)+", hi=0x"+H[e+4>>2].toString(16)+", which deserializes back to "+r+" instead!")}function Hr(e){var t=F(e)+1,r=fn(t);return S(e,r,t),r}function Gr(e){return"]"==e.slice(-1)&&e.lastIndexOf("[")}function Yr(e){return 0==(e-=5120)?x:1==e?N:2==e?j:4==e?L:6==e?G:5==e||28922==e||28520==e||30779==e||30782==e?H:U}function Xr(e){return 31-Math.clz32(e.BYTES_PER_ELEMENT)}function Wr(e,t,r,n,o,i){var a=Yr(e),s=Xr(a),A=1<<s,c=function(e){return{5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4}[e-6402]||1}(t)*A,u=function(e,t,r,n){var o;return t*(e*r+(o=n)-1&-o)}(r,n,c,Tr.unpackAlignment);return a.subarray(o>>s,o+u>>s)}function Vr(e){var t=nn.currentProgram;if(t){var r=t.uniformLocsById[e];return"number"==typeof r&&(t.uniformLocsById[e]=r=nn.getUniformLocation(t,t.uniformArrayNamesById[e]+(r>0?"["+r+"]":""))),r}Tr.recordError(1282)}var zr=[];var Jr=[];function Kr(){if(!Kr.called){Kr.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);L[yn()>>2]=60*i,L[mn()>>2]=Number(n!=o);var a=u(t),s=u(r),A=q(a),c=q(s);o<n?(L[In()>>2]=A,L[In()+4>>2]=c):(L[In()>>2]=c,L[In()+4>>2]=A)}function u(e){var t=e.toTimeString().match(/\(([A-Za-z ]+)\)$/);return t?t[1]:"GMT"}}function Zr(e){return e%4==0&&(e%100!=0||e%400==0)}function qr(e,t){for(var r=0,n=0;n<=t;r+=e[n++]);return r}var $r=[31,29,31,30,31,30,31,31,30,31,30,31],en=[31,28,31,30,31,30,31,31,30,31,30,31];function tn(e,t){for(var r=new Date(e.getTime());t>0;){var n=Zr(r.getFullYear()),o=r.getMonth(),i=(n?$r:en)[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 rn(e,t,r,n){var o=L[n+40>>2],i={tm_sec:L[n>>2],tm_min:L[n+4>>2],tm_hour:L[n+8>>2],tm_mday:L[n+12>>2],tm_mon:L[n+16>>2],tm_year:L[n+20>>2],tm_wday:L[n+24>>2],tm_yday:L[n+28>>2],tm_isdst:L[n+32>>2],tm_gmtoff:L[n+36>>2],tm_zone:o?M(o):""},a=M(r),s={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var A in s)a=a.replace(new RegExp(A,"g"),s[A]);var c=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],u=["January","February","March","April","May","June","July","August","September","October","November","December"];function g(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 g(e,t,"0")}function l(e,t){function r(e){return e<0?-1:e>0?1:0}var n;return 0===(n=r(e.getFullYear()-t.getFullYear()))&&0===(n=r(e.getMonth()-t.getMonth()))&&(n=r(e.getDate()-t.getDate())),n}function 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 E(e){var t=tn(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 l(o,t)<=0?l(i,t)<=0?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}var p={"%a":function(e){return c[e.tm_wday].substring(0,3)},"%A":function(e){return c[e.tm_wday]},"%b":function(e){return 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 g(e.tm_mday,2," ")},"%g":function(e){return E(e).toString().substring(2)},"%G":function(e){return E(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+qr(Zr(e.tm_year+1900)?$r:en,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:tn(t,7-t.getDay()),n=new Date(e.tm_year+1900,e.tm_mon,e.tm_mday);if(l(r,n)<0){var o=qr(Zr(n.getFullYear())?$r:en,n.getMonth()-1)-31,i=31-r.getDate()+o+n.getDate();return d(Math.ceil(i/7),2)}return 0===l(r,t)?"01":"00"},"%V":function(e){var t,r=new Date(e.tm_year+1900,0,4),n=new Date(e.tm_year+1901,0,4),o=f(r),i=f(n),a=tn(new Date(e.tm_year+1900,0,1),e.tm_yday);return l(a,o)<0?"53":l(i,a)<=0?"01":(t=o.getFullYear()<e.tm_year+1900?e.tm_yday+32-o.getDate():e.tm_yday+1-o.getDate(),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:tn(t,0===t.getDay()?1:7-t.getDay()+1),n=new Date(e.tm_year+1900,e.tm_mon,e.tm_mday);if(l(r,n)<0){var o=qr(Zr(n.getFullYear())?$r:en,n.getMonth()-1)-31,i=31-r.getDate()+o+n.getDate();return d(Math.ceil(i/7),2)}return 0===l(r,t)?"01":"00"},"%y":function(e){return(e.tm_year+1900).toString().substring(2)},"%Y":function(e){return e.tm_year+1900},"%z":function(e){var t=e.tm_gmtoff,r=t>=0;return t=(t=Math.abs(t)/60)/60*100+t%60,(r?"+":"-")+String("0000"+t).slice(-4)},"%Z":function(e){return e.tm_zone},"%%":function(){return"%"}};for(var A in p)a.includes(A)&&(a=a.replace(new RegExp(A,"g"),p[A](i)));var h,I,m=gn(a,!1);return m.length>t?0:(I=e,Q((h=m).length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),x.set(h,I),m.length-1)}o.requestFullscreen=function(e,t){ke.requestFullscreen(e,t)},o.requestFullScreen=function(){ke.requestFullScreen()},o.requestAnimationFrame=function(e){ke.requestAnimationFrame(e)},o.setCanvasSize=function(e,t,r){ke.setCanvasSize(e,t,r)},o.pauseMainLoop=function(){ke.mainLoop.pause()},o.resumeMainLoop=function(){ke.mainLoop.resume()},o.getUserMedia=function(){ke.getUserMedia()},o.createContext=function(e,t,r,n){return ke.createContext(e,t,r,n)};var nn,on=function(e,t,r,n){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=$e.nextInode++,this.name=t,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=n},an=365,sn=146;Object.defineProperties(on.prototype,{read:{get:function(){return(this.mode&an)===an},set:function(e){e?this.mode|=an:this.mode&=-366}},write:{get:function(){return(this.mode&sn)===sn},set:function(e){e?this.mode|=sn:this.mode&=-147}},isFolder:{get:function(){return $e.isDir(this.mode)}},isDevice:{get:function(){return $e.isChrdev(this.mode)}}}),$e.FSNode=on,$e.staticInit(),o.FS_createPath=$e.createPath,o.FS_createDataFile=$e.createDataFile,o.FS_createPreloadedFile=$e.createPreloadedFile,o.FS_createLazyFile=$e.createLazyFile,o.FS_createDevice=$e.createDevice,o.FS_unlink=$e.unlink,o.count_emval_handles=st,o.get_first_emval=At,gt=o.PureVirtualError=ut(Error,"PureVirtualError"),function(){for(var e=new Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);dt=e}(),o.getInheritedInstanceCount=ft,o.getLiveInheritedInstances=Et,o.flushPendingDeletes=ht,o.setDelayFunction=mt,Ct=o.BindingError=ut(Error,"BindingError"),xt=o.InternalError=ut(Error,"InternalError"),zt.prototype.isAliasOf=Ht,zt.prototype.clone=Yt,zt.prototype.delete=Xt,zt.prototype.isDeleted=Wt,zt.prototype.deleteLater=Vt,cr.prototype.getPointee=nr,cr.prototype.destructor=or,cr.prototype.argPackAdvance=8,cr.prototype.readValueFromPointer=St,cr.prototype.deleteObject=ir,cr.prototype.fromWireType=Ar,lr=o.UnboundTypeError=ut(Error,"UnboundTypeError");for(var An=0;An<32;++An)jr.push(new Array(An));var cn=new Float32Array(288);for(An=0;An<288;++An)zr[An]=cn.subarray(0,An+1);var un=new Int32Array(288);for(An=0;An<288;++An)Jr[An]=un.subarray(0,An+1);function gn(e,t,r){var n=F(e)+1,o=new Array(n),i=R(e,o,0,o.length);return t&&(o.length=i),o}var dn={HaveOffsetConverter:function(){return"undefined"!=typeof wasmOffsetConverter},__cxa_allocate_exception:function(e){return fn(e+16)+16},__cxa_atexit:function(e,t){},__cxa_begin_catch:function(e){var t=new Ue(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(){vn(0),Q(Le.length>0);var e=Le.pop();!function(e){if(e.release_ref()&&!e.get_rethrown()){var t=e.get_destructor();t&&te.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 _(0),0;var t=new je(e).get_type(),r=new Ue;if(r.set_base_ptr(e),r.set_adjusted_ptr(e),!t)return _(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(Dn(i,t,r.get_adjusted_ptr_addr()))return _(i),0|r.ptr}return _(t),0|r.ptr},__cxa_find_matching_catch_3:function(){var e=He;if(!e)return _(0),0;var t=new je(e).get_type(),r=new Ue;if(r.set_base_ptr(e),r.set_adjusted_ptr(e),!t)return _(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(Dn(i,t,r.get_adjusted_ptr_addr()))return _(i),0|r.ptr}return _(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 je(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 Ue(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:$e.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 j[o+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return Ye(28),-1}}catch(e){return void 0!==$e&&e instanceof $e.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 L[o>>2]=0,0;case 21520:return n.tty?-28:-59;case 21531:o=et.get();return $e.ioctl(n,t,o);default:ye("bad ioctl syscall "+t)}}catch(e){return void 0!==$e&&e instanceof $e.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=Je(t)))return-48;s=!0}else{var A=$e.getStream(o);if(!A)return-8;var c=$e.mmap(A,e,t,i,r,n);a=c.ptr,s=c.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!==$e&&e instanceof $e.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 $e.open(n,t,o).fd}catch(e){return void 0!==$e&&e instanceof $e.ErrnoError||ye(e),-e.errno}},__sys_stat64:function(e,t){try{return e=et.getStr(e),et.doStat($e.stat,e,t)}catch(e){return void 0!==$e&&e instanceof $e.ErrnoError||ye(e),-e.errno}},_embind_create_inheriting_constructor:function(e,t,r){e=lt(e),t=bt(t,"wrapper"),r=Bt(r);var n=[].slice,o=t.registeredClass,i=o.instancePrototype,a=o.baseClass.instancePrototype,s=o.baseClass.constructor,A=ot(e,(function(){o.baseClass.pureVirtualFunctions.forEach(function(e){if(this[e]===a[e])throw new gt("Pure virtual function "+e+" must be implemented in JavaScript")}.bind(this)),Object.defineProperty(this,"__parent",{value:i}),this.__construct.apply(this,n.call(arguments))}));for(var c in i.__construct=function(){this===i&&wt("Pass correct 'this' to __construct");var e=s.implement.apply(void 0,[this].concat(n.call(arguments)));Ot(e);var t,r,a,A=e.$$;e.notifyOnDestruction(),A.preservePointerOnDelete=!0,Object.defineProperties(this,{$$:{value:A}}),Pt(this),t=o,r=A.ptr,a=this,r=_t(t,r),yt.hasOwnProperty(r)?wt("Tried to register registered instance: "+r):yt[r]=a},i.__destruct=function(){var e,t;this===i&&wt("Pass correct 'this' to __destruct"),Ot(this),e=o,t=this.$$.ptr,t=_t(e,t),yt.hasOwnProperty(t)?delete yt[t]:wt("Tried to unregister unregistered instance: "+t)},A.prototype=Object.create(i),r)A.prototype[c]=r[c];return ct(A)},_embind_finalize_value_object:function(e){var t=Mt[e];delete Mt[e];var r=t.rawConstructor,n=t.rawDestructor,o=t.fields;jt([e],o.map((function(e){return e.getterReturnType})).concat(o.map((function(e){return e.setterArgumentType}))),(function(e){var i={};return o.forEach((function(t,r){var n=t.fieldName,a=e[r],s=t.getter,A=t.getterContext,c=e[r+o.length],u=t.setter,g=t.setterContext;i[n]={read:function(e){return a.fromWireType(s(A,e))},write:function(e,t){var r=[];u(g,e,c.toWireType(r,t)),Rt(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:St,destructorFunction:n}]}))},_embind_register_bigint:function(e,t,r,n,o){},_embind_register_bool:function(e,t,r,n,o){var i=Ut(r);Lt(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=j;else{if(4!==r)throw new TypeError("Unknown boolean type size: "+t);n=L}return this.fromWireType(n[e>>i])},destructorFunction:null})},_embind_register_class:function(e,t,r,n,o,i,a,s,A,c,u,g,d){u=lt(u),i=dr(o,i),s&&(s=dr(a,s)),c&&(c=dr(A,c)),d=dr(g,d);var l=nt(u);Zt(l,(function(){fr("Cannot construct "+u+" due to unbound types",[n])})),jt([e,t,r],n?[n]:[],(function(t){var r,o;t=t[0],o=n?(r=t.registeredClass).instancePrototype:zt.prototype;var a=ot(l,(function(){if(Object.getPrototypeOf(this)!==A)throw new Ct("Use 'new' to construct "+u);if(void 0===g.constructor_body)throw new Ct(u+" has no accessible constructor");var e=g.constructor_body[arguments.length];if(void 0===e)throw new Ct("Tried to invoke ctor of "+u+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(g.constructor_body).toString()+") parameters instead!");return e.apply(this,arguments)})),A=Object.create(o,{constructor:{value:a}});a.prototype=A;var g=new qt(u,a,A,d,r,i,s,c),f=new cr(u,g,!0,!1,!1),E=new cr(u+"*",g,!1,!1,!1),p=new cr(u+" const*",g,!1,!0,!1);return Jt[e]={pointerType:E,constPointerType:p},ur(l,a),[f,E,p]}))},_embind_register_class_class_function:function(e,t,r,n,o,i,a){var s=hr(r,n);t=lt(t),i=dr(o,i),jt([],[e],(function(e){var n=(e=e[0]).name+"."+t;function o(){fr("Cannot call "+n+" due to unbound types",s)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]);var A=e.registeredClass.constructor;return void 0===A[t]?(o.argCount=r-1,A[t]=o):(Kt(A,t,n),A[t].overloadTable[r-1]=o),jt([],s,(function(e){var o=[e[0],null].concat(e.slice(1)),s=pr(n,o,null,i,a);return void 0===A[t].overloadTable?(s.argCount=r-1,A[t]=s):A[t].overloadTable[r-1]=s,[]})),[]}))},_embind_register_class_constructor:function(e,t,r,n,o,i){Q(t>0);var a=hr(t,r);o=dr(n,o),jt([],[e],(function(e){var r="constructor "+(e=e[0]).name;if(void 0===e.registeredClass.constructor_body&&(e.registeredClass.constructor_body=[]),void 0!==e.registeredClass.constructor_body[t-1])throw new Ct("Cannot register multiple constructors with identical number of parameters ("+(t-1)+") for class '"+e.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return e.registeredClass.constructor_body[t-1]=function(){fr("Cannot construct "+e.name+" due to unbound types",a)},jt([],a,(function(n){return n.splice(1,0,null),e.registeredClass.constructor_body[t-1]=pr(r,n,null,o,i),[]})),[]}))},_embind_register_class_function:function(e,t,r,n,o,i,a,s){var A=hr(r,n);t=lt(t),i=dr(o,i),jt([],[e],(function(e){var n=(e=e[0]).name+"."+t;function o(){fr("Cannot call "+n+" due to unbound types",A)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]),s&&e.registeredClass.pureVirtualFunctions.push(t);var c=e.registeredClass.instancePrototype,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):(Kt(c,t,n),c[t].overloadTable[r-2]=o),jt([],A,(function(o){var s=pr(n,o,e,i,a);return void 0===c[t].overloadTable?(s.argCount=r-2,c[t]=s):c[t].overloadTable[r-2]=s,[]})),[]}))},_embind_register_class_property:function(e,t,r,n,o,i,a,s,A,c){t=lt(t),o=dr(n,o),jt([],[e],(function(e){var n=(e=e[0]).name+"."+t,u={get:function(){fr("Cannot access "+n+" due to unbound types",[r,a])},enumerable:!0,configurable:!0};return u.set=A?function(){fr("Cannot access "+n+" due to unbound types",[r,a])}:function(e){wt(n+" is a read-only property")},Object.defineProperty(e.registeredClass.instancePrototype,t,u),jt([],A?[r,a]:[r],(function(r){var a=r[0],u={get:function(){var t=Ir(this,e,n+" getter");return a.fromWireType(o(i,t))},enumerable:!0};if(A){A=dr(s,A);var g=r[1];u.set=function(t){var r=Ir(this,e,n+" setter"),o=[];A(c,r,g.toWireType(o,t)),Rt(o)}}return Object.defineProperty(e.registeredClass.instancePrototype,t,u),[]})),[]}))},_embind_register_emval:function(e,t){Lt(e,{name:t=lt(t),fromWireType:function(e){var t=at[e].value;return mr(e),t},toWireType:function(e,t){return ct(t)},argPackAdvance:8,readValueFromPointer:St,destructorFunction:null})},_embind_register_float:function(e,t,r){var n=Ut(r);Lt(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 "'+yr(t)+'" to '+this.name);return t},argPackAdvance:8,readValueFromPointer:Cr(t,n),destructorFunction:null})},_embind_register_function:function(e,t,r,n,o,i){var a=hr(t,r);e=lt(e),o=dr(n,o),Zt(e,(function(){fr("Cannot call "+e+" due to unbound types",a)}),t-1),jt([],a,(function(r){var n=[r[0],null].concat(r.slice(1));return ur(e,pr(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=Ut(r),a=function(e){return e};if(0===n){var s=32-8*r;a=function(e){return e<<s>>>s}}var A=t.includes("unsigned");Lt(e,{name:t,fromWireType:a,toWireType:function(e,r){if("number"!=typeof r&&"boolean"!=typeof r)throw new TypeError('Cannot convert "'+yr(r)+'" to '+this.name);if(r<n||r>o)throw new TypeError('Passing a number "'+yr(r)+'" from JS side to C/C++ side to an argument of type "'+t+'", which is outside the valid range ['+n+", "+o+"]!");return A?r>>>0:0|r},argPackAdvance:8,readValueFromPointer:wr(t,i,0!==n),destructorFunction:null})},_embind_register_memory_view:function(e,t,r){var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];function o(e){var t=H,r=t[e>>=2],o=t[e+1];return new n(k,o,r)}Lt(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));Lt(e,{name:t,fromWireType:function(e){var t,n=H[e>>2];if(r)for(var o=e+4,i=0;i<=n;++i){var a=e+4+i;if(i==n||0==N[a]){var s=M(o,a-o);void 0===t?t=s:(t+=String.fromCharCode(0),t+=s),o=a+1}}else{var A=new Array(n);for(i=0;i<n;++i)A[i]=String.fromCharCode(N[e+4+i]);t=A.join("")}return ln(e),t},toWireType:function(e,t){t instanceof ArrayBuffer&&(t=new Uint8Array(t));var n="string"==typeof t;n||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int8Array||wt("Cannot pass non-string to std::string");var o=(r&&n?function(){return F(t)}:function(){return t.length})(),i=fn(4+o+1);if(H[i>>2]=o,r&&n)S(t,i+4,o+1);else if(n)for(var a=0;a<o;++a){var s=t.charCodeAt(a);s>255&&(ln(i),wt("String has UTF-16 code units that do not fit in 8 bits")),N[i+4+a]=s}else for(a=0;a<o;++a)N[i+4+a]=t[a];return null!==e&&e.push(ln,i),i},argPackAdvance:8,readValueFromPointer:St,destructorFunction:function(e){ln(e)}})},_embind_register_std_wstring:function(e,t,r){var n,o,i,a,s;r=lt(r),2===t?(n=W,o=V,a=z,i=function(){return U},s=1):4===t&&(n=J,o=K,a=Z,i=function(){return H},s=2),Lt(e,{name:r,fromWireType:function(e){for(var r,o=H[e>>2],a=i(),A=e+4,c=0;c<=o;++c){var u=e+4+c*t;if(c==o||0==a[u>>s]){var g=n(A,u-A);void 0===r?r=g:(r+=String.fromCharCode(0),r+=g),A=u+t}}return ln(e),r},toWireType:function(e,n){"string"!=typeof n&&wt("Cannot pass non-string to C++ string type "+r);var i=a(n),A=fn(4+i+t);return H[A>>2]=i>>s,o(n,A+4,i+t),null!==e&&e.push(ln,A),A},argPackAdvance:8,readValueFromPointer:St,destructorFunction:function(e){ln(e)}})},_embind_register_value_object:function(e,t,r,n,o,i){Mt[e]={name:lt(t),rawConstructor:dr(r,n),rawDestructor:dr(o,i),fields:[]}},_embind_register_value_object_field:function(e,t,r,n,o,i,a,s,A,c){Mt[e].fields.push({fieldName:lt(t),getterReturnType:r,getter:dr(n,o),getterContext:i,setterArgumentType:a,setter:dr(s,A),setterContext:c})},_embind_register_void:function(e,t){Lt(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=Br[e])(t=Bt(t),r=void 0===(i=_r[o=r])?lt(o):i,null,n)},_emval_decref:mr,_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(L[(t>>2)+n],"parameter "+n);return r}(e,t),n=r[0],o=n.name+"_$"+r.slice(1).map((function(e){return e.name})).join("_")+"$",i=["retType"],a=[n],s="",A=0;A<e-1;++A)s+=(0!==A?", ":"")+"arg"+A,i.push("argType"+A),a.push(r[1+A]);var c="return function "+nt("methodCaller_"+o)+"(handle, name, destructors, args) {\n",u=0;for(A=0;A<e-1;++A)c+=" var arg"+A+" = argType"+A+".readValueFromPointer(args"+(u?"+"+u:"")+");\n",u+=r[A+1].argPackAdvance;for(c+=" var rv = handle[name]("+s+");\n",A=0;A<e-1;++A)r[A+1].deleteObject&&(c+=" argType"+A+".deleteObject(arg"+A+");\n");n.isVoid||(c+=" return retType.toWireType(destructors, rv);\n"),c+="};\n",i.push(c);var g,d,l=Er(Function,i).apply(null,a);return g=l,d=Br.length,Br.push(g),d},_emval_incref:function(e){e>4&&(at[e].refcount+=1)},_emval_take_value:function(e,t){return ct((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=Te()}return L[t>>2]=r/1e3|0,L[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(Q(Array.isArray(vr)),Q(t%16==0),vr.length=0,t>>=2;r=N[e++];){Q(100===r||102===r||105===r);var n=r<105;n&&1&t&&t++,vr.push(n?Y[t++>>1]:L[t]),++t}return vr}(t,r);return Pe.hasOwnProperty(e)||ye("No EM_ASM constant found at address "+e),Pe[e].apply(null,n)},emscripten_get_heap_max:function(){return 2147483648},emscripten_memcpy_big:function(e,t,r){N.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=N.length;Q((e>>>=0)>t);var r,n,o=2147483648;if(e>o)return m("Cannot enlarge memory, asked to go up to "+e+" bytes, but the limit is "+o+" bytes!"),!1;for(var i=1;i<=4;i*=2){var a=t*(1+.2/i);a=Math.min(a,e+100663296);var s=Math.min(o,((r=Math.max(e,a))%(n=65536)>0&&(r+=n-r%n),r));if(Dr(s))return!0}return m("Failed to grow the heap from "+t+" bytes to "+s+" bytes, not enough memory!"),!1},emscripten_stack_snapshot:function(){var e=(new Error).stack.split("\n");return"Error"==e[0]&&e.shift(),Qr(e),Or.last_addr=br(e[2]),Or.last_stack=e,Or.last_addr},emscripten_stack_unwind_buffer:function(e,t,r){var n;Or.last_addr==e?n=Or.last_stack:("Error"==(n=(new Error).stack.split("\n"))[0]&&n.shift(),Qr(n));for(var o=2;n[o]&&br(n[o])!=e;)++o;for(var i=0;i<r&&n[i+o];++i)L[t+4*i>>2]=br(n[i+o]);return i},emscripten_thread_sleep:function(e){for(var t=Te();Te()-t<e;);},emscripten_webgl_create_context:function(e,t){return function(e,t){Q(t);var r=t>>2,n=L[r+6],o={alpha:!!L[r+0],depth:!!L[r+1],stencil:!!L[r+2],antialias:!!L[r+3],premultipliedAlpha:!!L[r+4],preserveDrawingBuffer:!!L[r+5],powerPreference:Mr[n],failIfMajorPerformanceCaveat:!!L[r+7],majorVersion:L[r+8],minorVersion:L[r+9],enableExtensionsByDefault:L[r+10],explicitSwapControl:L[r+11],proxyContextToMainThread:L[r+12],renderViaOffscreenBackBuffer:L[r+13]},i=Sr(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:fn(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(),L[t>>2]=r.alpha,L[t+4>>2]=r.depth,L[t+8>>2]=r.stencil,L[t+12>>2]=r.antialias,L[t+16>>2]=r.premultipliedAlpha,L[t+20>>2]=r.preserveDrawingBuffer;var n=r.powerPreference&&Mr.indexOf(r.powerPreference);return L[t+24>>2]=n,L[t+28>>2]=r.failIfMajorPerformanceCaveat,L[t+32>>2]=e.version,L[t+36>>2]=0,L[t+40>>2]=e.attributes.enableExtensionsByDefault,0},emscripten_webgl_get_current_context:Fr,emscripten_webgl_init_context_attributes:function(e){Q(e);for(var t=e>>2,r=0;r<14;++r)L[t+r]=0;L[t+0]=L[t+1]=L[t+3]=L[t+4]=L[t+8]=L[t+10]=1},emscripten_webgl_make_context_current:kr,environ_get:function(e,t){var r=0;return Nr().forEach((function(n,o){var i=t+r;L[e+4*o>>2]=i,function(e,t){for(var r=0;r<e.length;++r)Q(e.charCodeAt(r)==e.charCodeAt(r)&255),x[0|t++]=e.charCodeAt(r);x[0|t]=0}(n,i),r+=n.length+1})),0},environ_sizes_get:function(e,t){var r=Nr();L[e>>2]=r.length;var n=0;return r.forEach((function(e){n+=e.length+1})),L[t>>2]=n,0},exit:Me,fd_close:function(e){try{var t=et.getStreamFromFD(e);return $e.close(t),0}catch(e){return void 0!==$e&&e instanceof $e.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 L[n>>2]=i,0}catch(e){return void 0!==$e&&e instanceof $e.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:($e.llseek(i,a,n),Be=[i.position>>>0,(_e=i.position,+Math.abs(_e)>=1?_e>0?(0|Math.min(+Math.floor(_e/4294967296),4294967295))>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],L[o>>2]=Be[0],L[o+4>>2]=Be[1],i.getdents&&0===a&&0===n&&(i.getdents=null),0)}catch(e){return void 0!==$e&&e instanceof $e.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 L[n>>2]=i,0}catch(e){return void 0!==$e&&e instanceof $e.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){nn.activeTexture(e)},glAttachShader:function(e,t){nn.attachShader(Tr.programs[e],Tr.shaders[t])},glBindAttribLocation:function(e,t,r){nn.bindAttribLocation(Tr.programs[e],t,M(r))},glBindBuffer:function(e,t){34962==e?nn.currentArrayBufferBinding=t:34963==e&&(nn.currentElementArrayBufferBinding=t),35051==e?nn.currentPixelPackBufferBinding=t:35052==e&&(nn.currentPixelUnpackBufferBinding=t),nn.bindBuffer(e,Tr.buffers[t])},glBindBufferBase:function(e,t,r){nn.bindBufferBase(e,t,Tr.buffers[r])},glBindFramebuffer:function(e,t){nn.bindFramebuffer(e,t?Tr.framebuffers[t]:Tr.currentContext.defaultFbo)},glBindTexture:function(e,t){nn.bindTexture(e,Tr.textures[t])},glBindVertexArray:function(e){nn.bindVertexArray(Tr.vaos[e]);var t=nn.getParameter(34965);nn.currentElementArrayBufferBinding=t?0|t.name:0},glBufferData:function(e,t,r,n){Tr.currentContext.version>=2?r?nn.bufferData(e,N,n,r,t):nn.bufferData(e,t,n):nn.bufferData(e,r?N.subarray(r,r+t):t,n)},glClientWaitSync:function(e,t,r,n){return nn.clientWaitSync(Tr.syncs[e],t,(o=r,Q((i=n)===(0|i)),(o>>>0)+4294967296*i));var o,i},glCompileShader:function(e){nn.compileShader(Tr.shaders[e])},glCreateProgram:function(){var e=Tr.getNewId(Tr.programs),t=nn.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]=nn.createShader(e),t},glDeleteBuffers:function(e,t){for(var r=0;r<e;r++){var n=L[t+4*r>>2],o=Tr.buffers[n];o&&(nn.deleteBuffer(o),o.name=0,Tr.buffers[n]=null,n==nn.currentArrayBufferBinding&&(nn.currentArrayBufferBinding=0),n==nn.currentElementArrayBufferBinding&&(nn.currentElementArrayBufferBinding=0),n==nn.currentPixelPackBufferBinding&&(nn.currentPixelPackBufferBinding=0),n==nn.currentPixelUnpackBufferBinding&&(nn.currentPixelUnpackBufferBinding=0))}},glDeleteFramebuffers:function(e,t){for(var r=0;r<e;++r){var n=L[t+4*r>>2],o=Tr.framebuffers[n];o&&(nn.deleteFramebuffer(o),o.name=0,Tr.framebuffers[n]=null)}},glDeleteProgram:function(e){if(e){var t=Tr.programs[e];t?(nn.deleteProgram(t),t.name=0,Tr.programs[e]=null):Tr.recordError(1281)}},glDeleteShader:function(e){if(e){var t=Tr.shaders[e];t?(nn.deleteShader(t),Tr.shaders[e]=null):Tr.recordError(1281)}},glDeleteSync:function(e){if(e){var t=Tr.syncs[e];t?(nn.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=L[t+4*r>>2],o=Tr.textures[n];o&&(nn.deleteTexture(o),o.name=0,Tr.textures[n]=null)}},glDeleteVertexArrays:function(e,t){for(var r=0;r<e;r++){var n=L[t+4*r>>2];nn.deleteVertexArray(Tr.vaos[n]),Tr.vaos[n]=null}},glDisable:function(e){nn.disable(e)},glDisableVertexAttribArray:function(e){Tr.currentContext.clientBuffers[e].enabled=!1,nn.disableVertexAttribArray(e)},glDrawArrays:function(e,t,r){Tr.preDrawHandleClientVertexAttribBindings(t+r),nn.drawArrays(e,t,r),Tr.postDrawHandleClientVertexAttribBindings()},glDrawBuffers:function(e,t){for(var r=jr[e],n=0;n<e;n++)r[n]=L[t+4*n>>2];nn.drawBuffers(r)},glEnableVertexAttribArray:function(e){Tr.currentContext.clientBuffers[e].enabled=!0,nn.enableVertexAttribArray(e)},glFenceSync:function(e,t){var r=nn.fenceSync(e,t);if(r){var n=Tr.getNewId(Tr.syncs);return r.name=n,Tr.syncs[n]=r,n}return 0},glFinish:function(){nn.finish()},glFlush:function(){nn.flush()},glFramebufferTexture2D:function(e,t,r,n,o){nn.framebufferTexture2D(e,t,r,Tr.textures[n],o)},glFramebufferTextureLayer:function(e,t,r,n,o){nn.framebufferTextureLayer(e,t,Tr.textures[r],n,o)},glGenBuffers:function(e,t){Ur(e,t,"createBuffer",Tr.buffers)},glGenFramebuffers:function(e,t){Ur(e,t,"createFramebuffer",Tr.framebuffers)},glGenTextures:function(e,t){Ur(e,t,"createTexture",Tr.textures)},glGenVertexArrays:function(e,t){Ur(e,t,"createVertexArray",Tr.vaos)},glGetAttribLocation:function(e,t){return nn.getAttribLocation(Tr.programs[e],M(t))},glGetError:function(){var e=nn.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;case 34814:case 36345:n=0;break;case 34466:var o=nn.getParameter(34467);n=o?o.length:0;break;case 33309:if(Tr.currentContext.version<2)return void Tr.recordError(1282);n=2*(nn.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=nn.getParameter(e);switch(E(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:L[t+4*a>>2]=i[a];break;case 2:G[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 m("GL_INVALID_ENUM in glGet"+r+"v: Unknown object returned from WebGL getParameter("+e+")! (error: "+t+")")}}break;default:return Tr.recordError(1280),void m("GL_INVALID_ENUM in glGet"+r+"v: Native code calling glGet"+r+"v("+e+") and it returns "+i+" of type "+E(i)+"!")}}switch(r){case 1:Lr(t,n);break;case 0:L[t>>2]=n;break;case 2:G[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=nn.getSupportedExtensions()||[];t=Hr((r=r.concat(r.map((function(e){return"GL_"+e})))).join(" "));break;case 7936:case 7937:case 37445:case 37446:var n=nn.getParameter(e);n||Tr.recordError(1280),t=n&&Hr(n);break;case 7938:var o=nn.getParameter(7938);t=Hr(o=Tr.currentContext.version>=2?"OpenGL ES 3.0 ("+o+")":"OpenGL ES 2.0 ("+o+")");break;case 35724:var i=nn.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=Hr(i);break;default:Tr.recordError(1280)}Tr.stringCache[e]=t}return t},glGetUniformBlockIndex:function(e,t){return nn.getUniformBlockIndex(Tr.programs[e],M(t))},glGetUniformLocation:function(e,t){if(t=M(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<nn.getProgramParameter(e,35718);++t){var i=nn.getActiveUniform(e,t),a=i.name,s=i.size,A=Gr(a),c=A>0?a.slice(0,A):a,u=e.uniformIdCounter;for(e.uniformIdCounter+=s,o[c]=[s,u],r=0;r<s;++r)n[u]=r,e.uniformArrayNamesById[u++]=c}}(e);var r=e.uniformLocsById,n=0,o=t,i=Gr(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]||nn.getUniformLocation(e,t)))return n}else Tr.recordError(1281);var s;return-1},glLinkProgram:function(e){e=Tr.programs[e],nn.linkProgram(e),e.uniformLocsById=0,e.uniformSizeAndIdsByName={}},glPixelStorei:function(e,t){3317==e&&(Tr.unpackAlignment=t),nn.pixelStorei(e,t)},glReadPixels:function(e,t,r,n,o,i,a){if(Tr.currentContext.version>=2)if(nn.currentPixelPackBufferBinding)nn.readPixels(e,t,r,n,o,i,a);else{var s=Yr(i);nn.readPixels(e,t,r,n,o,i,s,a>>Xr(s))}else{var A=Wr(i,o,r,n,a);A?nn.readPixels(e,t,r,n,o,i,A):Tr.recordError(1280)}},glShaderSource:function(e,t,r,n){var o=Tr.getSource(e,t,r,n);nn.shaderSource(Tr.shaders[e],o)},glTexImage2D:function(e,t,r,n,o,i,a,s,A){if(Tr.currentContext.version>=2)if(nn.currentPixelUnpackBufferBinding)nn.texImage2D(e,t,r,n,o,i,a,s,A);else if(A){var c=Yr(s);nn.texImage2D(e,t,r,n,o,i,a,s,c,A>>Xr(c))}else nn.texImage2D(e,t,r,n,o,i,a,s,null);else nn.texImage2D(e,t,r,n,o,i,a,s,A?Wr(s,a,n,o,A):null)},glTexParameterfv:function(e,t,r){var n=G[r>>2];nn.texParameterf(e,t,n)},glTexParameteri:function(e,t,r){nn.texParameteri(e,t,r)},glTexStorage2D:function(e,t,r,n,o){nn.texStorage2D(e,t,r,n,o)},glTexStorage3D:function(e,t,r,n,o,i){nn.texStorage3D(e,t,r,n,o,i)},glTexSubImage2D:function(e,t,r,n,o,i,a,s,A){if(Tr.currentContext.version>=2)if(nn.currentPixelUnpackBufferBinding)nn.texSubImage2D(e,t,r,n,o,i,a,s,A);else if(A){var c=Yr(s);nn.texSubImage2D(e,t,r,n,o,i,a,s,c,A>>Xr(c))}else nn.texSubImage2D(e,t,r,n,o,i,a,s,null);else{var u=null;A&&(u=Wr(s,a,o,i,A)),nn.texSubImage2D(e,t,r,n,o,i,a,s,u)}},glTexSubImage3D:function(e,t,r,n,o,i,a,s,A,c,u){if(nn.currentPixelUnpackBufferBinding)nn.texSubImage3D(e,t,r,n,o,i,a,s,A,c,u);else if(u){var g=Yr(c);nn.texSubImage3D(e,t,r,n,o,i,a,s,A,c,g,u>>Xr(g))}else nn.texSubImage3D(e,t,r,n,o,i,a,s,A,c,null)},glUniform1f:function(e,t){nn.uniform1f(Vr(e),t)},glUniform1i:function(e,t){nn.uniform1i(Vr(e),t)},glUniform2fv:function(e,t,r){if(Tr.currentContext.version>=2)nn.uniform2fv(Vr(e),G,r>>2,2*t);else{if(t<=144)for(var n=zr[2*t-1],o=0;o<2*t;o+=2)n[o]=G[r+4*o>>2],n[o+1]=G[r+(4*o+4)>>2];else n=G.subarray(r>>2,r+8*t>>2);nn.uniform2fv(Vr(e),n)}},glUniform4fv:function(e,t,r){if(Tr.currentContext.version>=2)nn.uniform4fv(Vr(e),G,r>>2,4*t);else{if(t<=72){var n=zr[4*t-1],o=G;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=G.subarray(r>>2,r+16*t>>2);nn.uniform4fv(Vr(e),n)}},glUniform4iv:function(e,t,r){if(Tr.currentContext.version>=2)nn.uniform4iv(Vr(e),L,r>>2,4*t);else{if(t<=72)for(var n=Jr[4*t-1],o=0;o<4*t;o+=4)n[o]=L[r+4*o>>2],n[o+1]=L[r+(4*o+4)>>2],n[o+2]=L[r+(4*o+8)>>2],n[o+3]=L[r+(4*o+12)>>2];else n=L.subarray(r>>2,r+16*t>>2);nn.uniform4iv(Vr(e),n)}},glUniformBlockBinding:function(e,t,r){e=Tr.programs[e],nn.uniformBlockBinding(e,t,r)},glUniformMatrix4fv:function(e,t,r,n){if(Tr.currentContext.version>=2)nn.uniformMatrix4fv(Vr(e),!!r,G,n>>2,16*t);else{if(t<=18){var o=zr[16*t-1],i=G;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=G.subarray(n>>2,n+64*t>>2);nn.uniformMatrix4fv(Vr(e),!!r,o)}},glUseProgram:function(e){e=Tr.programs[e],nn.useProgram(e),nn.currentProgram=e},glVertexAttribPointer:function(e,t,r,n,o,i){var a=Tr.currentContext.clientBuffers[e];if(!nn.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,nn.vertexAttribPointer(e,t,r,!!n,o,i)},glViewport:function(e,t,r,n){nn.viewport(e,t,r,n)},gmtime_r:function e(t,r){var n=new Date(1e3*L[t>>2]);L[r>>2]=n.getUTCSeconds(),L[r+4>>2]=n.getUTCMinutes(),L[r+8>>2]=n.getUTCHours(),L[r+12>>2]=n.getUTCDate(),L[r+16>>2]=n.getUTCMonth(),L[r+20>>2]=n.getUTCFullYear()-1900,L[r+24>>2]=n.getUTCDay(),L[r+36>>2]=0,L[r+32>>2]=0;var o=Date.UTC(n.getUTCFullYear(),0,1,0,0,0,0),i=(n.getTime()-o)/864e5|0;return L[r+28>>2]=i,e.GMTString||(e.GMTString=q("GMT")),L[r+40>>2]=e.GMTString,r},invoke_diii:function(e,t,r,n){var o=Cn();try{return te.get(e)(t,r,n)}catch(e){if(wn(o),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_i:function(e){var t=Cn();try{return te.get(e)()}catch(e){if(wn(t),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_ii:function(e,t){var r=Cn();try{return te.get(e)(t)}catch(e){if(wn(r),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_iii:function(e,t,r){var n=Cn();try{return te.get(e)(t,r)}catch(e){if(wn(n),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_iiii:function(e,t,r,n){var o=Cn();try{return te.get(e)(t,r,n)}catch(e){if(wn(o),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_iiiii:function(e,t,r,n,o){var i=Cn();try{return te.get(e)(t,r,n,o)}catch(e){if(wn(i),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_iiiiii:function(e,t,r,n,o,i){var a=Cn();try{return te.get(e)(t,r,n,o,i)}catch(e){if(wn(a),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_iiiiiii:function(e,t,r,n,o,i,a){var s=Cn();try{return te.get(e)(t,r,n,o,i,a)}catch(e){if(wn(s),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_iiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c){var u=Cn();try{return te.get(e)(t,r,n,o,i,a,s,A,c)}catch(e){if(wn(u),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_iiiiiiii:function(e,t,r,n,o,i,a,s){var A=Cn();try{return te.get(e)(t,r,n,o,i,a,s)}catch(e){if(wn(A),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_iiiiiiiii:function(e,t,r,n,o,i,a,s,A){var c=Cn();try{return te.get(e)(t,r,n,o,i,a,s,A)}catch(e){if(wn(c),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_v:function(e){var t=Cn();try{te.get(e)()}catch(e){if(wn(t),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_vdiii:function(e,t,r,n,o){var i=Cn();try{te.get(e)(t,r,n,o)}catch(e){if(wn(i),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_vi:function(e,t){var r=Cn();try{te.get(e)(t)}catch(e){if(wn(r),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_vididdii:function(e,t,r,n,o,i,a,s){var A=Cn();try{te.get(e)(t,r,n,o,i,a,s)}catch(e){if(wn(A),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_vidii:function(e,t,r,n,o){var i=Cn();try{te.get(e)(t,r,n,o)}catch(e){if(wn(i),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_vii:function(e,t,r){var n=Cn();try{te.get(e)(t,r)}catch(e){if(wn(n),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viid:function(e,t,r,n){var o=Cn();try{te.get(e)(t,r,n)}catch(e){if(wn(o),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viidi:function(e,t,r,n,o){var i=Cn();try{te.get(e)(t,r,n,o)}catch(e){if(wn(i),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viididii:function(e,t,r,n,o,i,a,s){var A=Cn();try{te.get(e)(t,r,n,o,i,a,s)}catch(e){if(wn(A),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viii:function(e,t,r,n){var o=Cn();try{te.get(e)(t,r,n)}catch(e){if(wn(o),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiid:function(e,t,r,n,o){var i=Cn();try{te.get(e)(t,r,n,o)}catch(e){if(wn(i),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiidd:function(e,t,r,n,o,i){var a=Cn();try{te.get(e)(t,r,n,o,i)}catch(e){if(wn(a),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiddi:function(e,t,r,n,o,i,a){var s=Cn();try{te.get(e)(t,r,n,o,i,a)}catch(e){if(wn(s),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiidi:function(e,t,r,n,o,i){var a=Cn();try{te.get(e)(t,r,n,o,i)}catch(e){if(wn(a),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiii:function(e,t,r,n,o){var i=Cn();try{te.get(e)(t,r,n,o)}catch(e){if(wn(i),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiid:function(e,t,r,n,o,i){var a=Cn();try{te.get(e)(t,r,n,o,i)}catch(e){if(wn(a),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiidi:function(e,t,r,n,o,i,a){var s=Cn();try{te.get(e)(t,r,n,o,i,a)}catch(e){if(wn(s),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiidid:function(e,t,r,n,o,i,a,s){var A=Cn();try{te.get(e)(t,r,n,o,i,a,s)}catch(e){if(wn(A),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiidiidiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d,l,f,E){var p=Cn();try{te.get(e)(t,r,n,o,i,a,s,A,c,u,g,d,l,f,E)}catch(e){if(wn(p),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiifiifiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d,l,f,E){var p=Cn();try{te.get(e)(t,r,n,o,i,a,s,A,c,u,g,d,l,f,E)}catch(e){if(wn(p),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiii:function(e,t,r,n,o,i){var a=Cn();try{te.get(e)(t,r,n,o,i)}catch(e){if(wn(a),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiid:function(e,t,r,n,o,i,a){var s=Cn();try{te.get(e)(t,r,n,o,i,a)}catch(e){if(wn(s),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiif:function(e,t,r,n,o,i,a){var s=Cn();try{te.get(e)(t,r,n,o,i,a)}catch(e){if(wn(s),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiii:function(e,t,r,n,o,i,a){var s=Cn();try{te.get(e)(t,r,n,o,i,a)}catch(e){if(wn(s),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiiid:function(e,t,r,n,o,i,a,s){var A=Cn();try{te.get(e)(t,r,n,o,i,a,s)}catch(e){if(wn(A),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiiif:function(e,t,r,n,o,i,a,s){var A=Cn();try{te.get(e)(t,r,n,o,i,a,s)}catch(e){if(wn(A),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiiii:function(e,t,r,n,o,i,a,s){var A=Cn();try{te.get(e)(t,r,n,o,i,a,s)}catch(e){if(wn(A),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c,u){var g=Cn();try{te.get(e)(t,r,n,o,i,a,s,A,c,u)}catch(e){if(wn(g),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiiiidiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d){var l=Cn();try{te.get(e)(t,r,n,o,i,a,s,A,c,u,g,d)}catch(e){if(wn(l),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiiiifiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d){var l=Cn();try{te.get(e)(t,r,n,o,i,a,s,A,c,u,g,d)}catch(e){if(wn(l),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiiiii:function(e,t,r,n,o,i,a,s,A){var c=Cn();try{te.get(e)(t,r,n,o,i,a,s,A)}catch(e){if(wn(c),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiiiiidd:function(e,t,r,n,o,i,a,s,A,c,u){var g=Cn();try{te.get(e)(t,r,n,o,i,a,s,A,c,u)}catch(e){if(wn(g),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiiiiidf:function(e,t,r,n,o,i,a,s,A,c,u){var g=Cn();try{te.get(e)(t,r,n,o,i,a,s,A,c,u)}catch(e){if(wn(g),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiiiiii:function(e,t,r,n,o,i,a,s,A,c){var u=Cn();try{te.get(e)(t,r,n,o,i,a,s,A,c)}catch(e){if(wn(u),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiiiiiidd:function(e,t,r,n,o,i,a,s,A,c,u,g){var d=Cn();try{te.get(e)(t,r,n,o,i,a,s,A,c,u,g)}catch(e){if(wn(d),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c,u,g,d){var l=Cn();try{te.get(e)(t,r,n,o,i,a,s,A,c,u,g,d)}catch(e){if(wn(l),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u){var g=Cn();try{te.get(e)(t,r,n,o,i,a,s,A,c,u)}catch(e){if(wn(g),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c,u,g,d,l){var f=Cn();try{te.get(e)(t,r,n,o,i,a,s,A,c,u,g,d,l)}catch(e){if(wn(f),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u,g){var d=Cn();try{te.get(e)(t,r,n,o,i,a,s,A,c,u,g)}catch(e){if(wn(d),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d){var l=Cn();try{te.get(e)(t,r,n,o,i,a,s,A,c,u,g,d)}catch(e){if(wn(l),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},invoke_viiiiiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d,l){var f=Cn();try{te.get(e)(t,r,n,o,i,a,s,A,c,u,g,d,l)}catch(e){if(wn(f),e!==e+0&&"longjmp"!==e)throw e;vn(1,0)}},llvm_eh_typeid_for:function(e){return e},localtime_r:function(e,t){Kr();var r=new Date(1e3*L[e>>2]);L[t>>2]=r.getSeconds(),L[t+4>>2]=r.getMinutes(),L[t+8>>2]=r.getHours(),L[t+12>>2]=r.getDate(),L[t+16>>2]=r.getMonth(),L[t+20>>2]=r.getFullYear()-1900,L[t+24>>2]=r.getDay();var n=new Date(r.getFullYear(),0,1),o=(r.getTime()-n.getTime())/864e5|0;L[t+28>>2]=o,L[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));L[t+32>>2]=s;var A=L[In()+(s?4:0)>>2];return L[t+40>>2]=A,t},mktime:function(e){Kr();var t=new Date(L[e+20>>2]+1900,L[e+16>>2],L[e+12>>2],L[e+8>>2],L[e+4>>2],L[e>>2],0),r=L[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)L[e+32>>2]=Number(i!=a&&s==n);else if(r>0!=(s==n)){var A=Math.max(a,i),c=r>0?s:A;t.setTime(t.getTime()+6e4*(c-n))}L[e+24>>2]=t.getDay();var u=(t.getTime()-o.getTime())/864e5|0;return L[e+28>>2]=u,L[e>>2]=t.getSeconds(),L[e+4>>2]=t.getMinutes(),L[e+8>>2]=t.getHours(),L[e+12>>2]=t.getDate(),L[e+16>>2]=t.getMonth(),t.getTime()/1e3|0},proc_exit:function(e){Pn(e)},setTempRet0:function(e){_(e)},strftime:rn,strftime_l:function(e,t,r,n){return rn(e,t,r,n)}};!function(){var e={env:dn,wasi_snapshot_preview1:dn};function t(e,t){var r,n=e.exports;o.asm=n,Q(B=o.asm.memory,"memory not found in wasm exports"),$(B.buffer),Q(te=o.asm.__indirect_function_table,"table not found in wasm exports"),r=o.asm.__wasm_call_ctors,ae.unshift(r),me("wasm-instantiate")}Ie("wasm-instantiate");var r=o;function i(e){Q(o===r,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?"),r=null,t(e.instance)}function a(t){return function(){if(!C&&(c||u)){if("function"==typeof fetch&&!be(Ce))return fetch(Ce,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+Ce+"'";return e.arrayBuffer()})).catch((function(){return Qe(Ce)}));if(f)return new Promise((function(e,t){f(Ce,(function(t){e(new Uint8Array(t))}),t)}))}return Promise.resolve().then((function(){return Qe(Ce)}))}().then((function(t){return WebAssembly.instantiate(t,e)})).then(t,(function(e){m("failed to asynchronously prepare wasm: "+e),be(Ce)&&m("warning: Loading from a file URI ("+Ce+") 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 m("Module.instantiateWasm callback failed with error: "+e),!1}(C||"function"!=typeof WebAssembly.instantiateStreaming||De(Ce)||be(Ce)||"function"!=typeof fetch?a(i):fetch(Ce,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,e).then(i,(function(e){return m("wasm streaming compile failed: "+e),m("falling back to ArrayBuffer instantiation"),a(i)}))}))).catch(n)}(),o.___wasm_call_ctors=Oe("__wasm_call_ctors");var ln=o._free=Oe("free"),fn=o._malloc=Oe("malloc"),En=o.___errno_location=Oe("__errno_location");o._fflush=Oe("fflush");var pn=o.___getTypeName=Oe("__getTypeName");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");var hn=o._emscripten_stack_get_end=function(){return(hn=o._emscripten_stack_get_end=o.asm.emscripten_stack_get_end).apply(null,arguments)},In=o.__get_tzname=Oe("_get_tzname"),mn=o.__get_daylight=Oe("_get_daylight"),yn=o.__get_timezone=Oe("_get_timezone"),Cn=o.stackSave=Oe("stackSave"),wn=o.stackRestore=Oe("stackRestore");o.stackAlloc=Oe("stackAlloc");var _n=o._emscripten_stack_init=function(){return(_n=o._emscripten_stack_init=o.asm.emscripten_stack_init).apply(null,arguments)};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");var Bn,vn=o._setThrew=Oe("setThrew"),Dn=o.___cxa_can_catch=Oe("__cxa_can_catch"),bn=o.___cxa_is_pointer_type=Oe("__cxa_is_pointer_type"),On=o._memalign=Oe("memalign");function Qn(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function Tn(e){function t(){Bn||(Bn=!0,o.calledRun=!0,O||(oe(),Q(!ce),ce=!0,o.noFSInit||$e.init.initialized||$e.init(),$e.ignorePermissions=!1,xe(ae),r(o),o.onRuntimeInitialized&&o.onRuntimeInitialized(),Q(!o._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),function(){if(oe(),o.postRun)for("function"==typeof o.postRun&&(o.postRun=[o.postRun]);o.postRun.length;)e=o.postRun.shift(),Ae.unshift(e);var e;xe(Ae)}()))}le>0||(_n(),ne(),function(){if(o.preRun)for("function"==typeof o.preRun&&(o.preRun=[o.preRun]);o.preRun.length;)e=o.preRun.shift(),ie.unshift(e);var e;xe(ie)}(),le>0||(o.setStatus?(o.setStatus("Running..."),setTimeout((function(){setTimeout((function(){o.setStatus("")}),1),t()}),1)):t(),oe()))}function Pn(e){b=e,de()||(o.onExit&&o.onExit(e),O=!0),A(e,new Qn(e))}if(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"),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=Ie,o.removeRunDependency=me,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=$e.createPath,o.FS_createDataFile=$e.createDataFile,o.FS_createPreloadedFile=$e.createPreloadedFile,o.FS_createLazyFile=$e.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=$e.createDevice,o.FS_unlink=$e.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=ne,o.checkStackCookie=oe,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)")}}),Ee=function e(){Bn||Tn(),Bn||(Ee=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}}(),x=k,N=(R="undefined"!=typeof document?null==(M=document.currentScript)?void 0:M.src:void 0,function(){var e,t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=Object.assign({},r),s=new Promise((function(r,n){e=r,t=n})),c=Object.assign({},i),u="";"undefined"!=typeof document&&document.currentScript&&(u=document.currentScript.src),R&&(u=R),u=u.startsWith("blob:")?"":u.substr(0,u.replace(/[?#].*/,"").lastIndexOf("/")+1);var g,d,f=i.print||console.log.bind(console),p=i.printErr||console.error.bind(console);function I(e){if(x(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(k.length))}Object.assign(i,c),c=null,i.arguments&&i.arguments,i.thisProgram&&i.thisProgram,i.quit&&i.quit,i.wasmBinary&&(g=i.wasmBinary);var m,y,C,w,_,B,v,D,b=!1,O=[],Q=[],T=[],P=0,M=null;function S(e){var r;null==(r=i.onAbort)||r.call(i,e),p(e="Aborted("+e+")"),b=!0,e+=". Build with -sASSERTIONS for more info.";var n=new WebAssembly.RuntimeError(e);throw t(n),n}var F,k="data:application/octet-stream;base64,",x=function(e){return e.startsWith(k)};function N(e){return Promise.resolve().then((function(){return function(e){if(e==F&&g)return new Uint8Array(g);var t=I(e);if(t)return t;throw"both async and sync fetching of the wasm failed"}(e)}))}function j(e,t,r,n){return function(e,t,r){return N(e).then((function(e){return WebAssembly.instantiate(e,t)})).then(r,(function(e){p("failed to asynchronously prepare wasm: ".concat(e)),S(e)}))}(t,r,n)}var U=function(e){for(;e.length>0;)e.shift()(i)};i.noExitRuntime;var L,H,G,Y=function(){return a((function e(t){o(this,e),this.excPtr=t,this.ptr=t-24}),[{key:"set_type",value:function(e){B[this.ptr+4>>2]=e}},{key:"get_type",value:function(){return B[this.ptr+4>>2]}},{key:"set_destructor",value:function(e){B[this.ptr+8>>2]=e}},{key:"get_destructor",value:function(){return B[this.ptr+8>>2]}},{key:"set_caught",value:function(e){e=e?1:0,m[this.ptr+12]=e}},{key:"get_caught",value:function(){return 0!=m[this.ptr+12]}},{key:"set_rethrown",value:function(e){e=e?1:0,m[this.ptr+13]=e}},{key:"get_rethrown",value:function(){return 0!=m[this.ptr+13]}},{key:"init",value:function(e,t){this.set_adjusted_ptr(0),this.set_type(e),this.set_destructor(t)}},{key:"set_adjusted_ptr",value:function(e){B[this.ptr+16>>2]=e}},{key:"get_adjusted_ptr",value:function(){return B[this.ptr+16>>2]}},{key:"get_exception_ptr",value:function(){if(ht(this.get_type()))return B[this.excPtr>>2];var e=this.get_adjusted_ptr();return 0!==e?e:this.excPtr}}])}(),X=function(e){for(var t="",r=e;y[r];)t+=L[y[r++]];return t},W={},V={},z={},J=function(e){throw new H(e)},K=function(e){throw new G(e)},Z=function(e,t,r){function n(t){var n=r(t);n.length!==e.length&&K("Mismatched type converter count");for(var o=0;o<e.length;++o)q(e[o],n[o])}e.forEach((function(e){z[e]=t}));var o=new Array(t.length),i=[],a=0;t.forEach((function(e,t){V.hasOwnProperty(e)?o[t]=V[e]:(i.push(e),W.hasOwnProperty(e)||(W[e]=[]),W[e].push((function(){o[t]=V[e],++a===i.length&&n(o)})))})),0===i.length&&n(o)};function q(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=t.name;if(e||J('type "'.concat(n,'" must have a positive integer typeid pointer')),V.hasOwnProperty(e)){if(r.ignoreDuplicateRegistrations)return;J("Cannot register type '".concat(n,"' twice"))}if(V[e]=t,delete z[e],W.hasOwnProperty(e)){var o=W[e];delete W[e],o.forEach((function(e){return e()}))}}(e,t,r)}var $,ee=function(e){J(e.$$.ptrType.registeredClass.name+" instance already deleted")},te=!1,re=function(e){},ne=function(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)},oe=function(e,t,r){if(t===r)return e;if(void 0===r.baseClass)return null;var n=oe(e,t,r.baseClass);return null===n?null:r.downcast(n)},ie={},ae=function(){return Object.keys(ge).length},se=function(){var e=[];for(var t in ge)ge.hasOwnProperty(t)&&e.push(ge[t]);return e},Ae=[],ce=function(){for(;Ae.length;){var e=Ae.pop();e.$$.deleteScheduled=!1,e.delete()}},ue=function(e){$=e,Ae.length&&$&&$(ce)},ge={},de=function(e,t){return t=function(e,t){for(void 0===t&&J("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t}(e,t),ge[t]},le=function(e,t){return t.ptrType&&t.ptr||K("makeClassHandle requires ptr and ptrType"),!!t.smartPtrType!=!!t.smartPtr&&K("Both smartPtrType and smartPtr must be specified"),t.count={value:1},Ee(Object.create(e,{$$:{value:t,writable:!0}}))};function fe(e){var t=this.getPointee(e);if(!t)return this.destructor(e),null;var r=de(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?le(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):le(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var i,a=this.registeredClass.getActualType(t),s=ie[a];if(!s)return o.call(this);i=this.isConst?s.constPointerType:s.pointerType;var A=oe(t,this.registeredClass,i.registeredClass);return null===A?o.call(this):this.isSmartPointer?le(i.registeredClass.instancePrototype,{ptrType:i,ptr:A,smartPtrType:this,smartPtr:e}):le(i.registeredClass.instancePrototype,{ptrType:i,ptr:A})}var Ee=function(e){return"undefined"==typeof FinalizationRegistry?(Ee=function(e){return e},e):(te=new FinalizationRegistry((function(e){ne(e.$$)})),re=function(e){return te.unregister(e)},(Ee=function(e){var t=e.$$;if(t.smartPtr){var r={$$:t};te.register(e,r,e)}return e})(e))};function pe(){}var he=function(e,t){return Object.defineProperty(t,"name",{value:e})},Ie=function(e,t,r){if(void 0===e[t].overloadTable){var n=e[t];e[t]=function(){for(var n=arguments.length,o=new Array(n),i=0;i<n;i++)o[i]=arguments[i];return e[t].overloadTable.hasOwnProperty(o.length)||J("Function '".concat(r,"' called with an invalid number of arguments (").concat(o.length,") - expects one of (").concat(e[t].overloadTable,")!")),e[t].overloadTable[o.length].apply(this,o)},e[t].overloadTable=[],e[t].overloadTable[n.argCount]=n}};function me(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 ye=function(e,t,r){for(;t!==r;)t.upcast||J("Expected null or instance of ".concat(r.name,", got an instance of ").concat(t.name)),e=t.upcast(e),t=t.baseClass;return e};function Ce(e,t){if(null===t)return this.isReference&&J("null is not a valid ".concat(this.name)),0;t.$$||J('Cannot pass "'.concat(Ve(t),'" as a ').concat(this.name)),t.$$.ptr||J("Cannot pass deleted object as a pointer of type ".concat(this.name));var r=t.$$.ptrType.registeredClass;return ye(t.$$.ptr,r,this.registeredClass)}function we(e,t){var r;if(null===t)return this.isReference&&J("null is not a valid ".concat(this.name)),this.isSmartPointer?(r=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,r),r):0;t&&t.$$||J('Cannot pass "'.concat(Ve(t),'" as a ').concat(this.name)),t.$$.ptr||J("Cannot pass deleted object as a pointer of type ".concat(this.name)),!this.isConst&&t.$$.ptrType.isConst&&J("Cannot convert argument of type ".concat(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name," to parameter type ").concat(this.name));var n=t.$$.ptrType.registeredClass;if(r=ye(t.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===t.$$.smartPtr&&J("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?r=t.$$.smartPtr:J("Cannot convert argument of type ".concat(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name," to parameter type ").concat(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,Xe.toHandle((function(){return o.delete()}))),null!==e&&e.push(this.rawDestructor,r)}break;default:J("Unsupporting sharing policy")}return r}function _e(e,t){if(null===t)return this.isReference&&J("null is not a valid ".concat(this.name)),0;t.$$||J('Cannot pass "'.concat(Ve(t),'" as a ').concat(this.name)),t.$$.ptr||J("Cannot pass deleted object as a pointer of type ".concat(this.name)),t.$$.ptrType.isConst&&J("Cannot convert argument of type ".concat(t.$$.ptrType.name," to parameter type ").concat(this.name));var r=t.$$.ptrType.registeredClass;return ye(t.$$.ptr,r,this.registeredClass)}function Be(e){return this.fromWireType(B[e>>2])}function ve(e,t,r,n,o,i,a,s,A,c,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=A,this.rawShare=c,this.rawDestructor=u,o||void 0!==t.baseClass?this.toWireType=we:n?(this.toWireType=Ce,this.destructorFunction=null):(this.toWireType=_e,this.destructorFunction=null)}var De,be,Oe=[],Qe=function(e){var t=Oe[e];return t||(e>=Oe.length&&(Oe.length=e+1),Oe[e]=t=De.get(e)),t},Te=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return e.includes("j")?function(e,t,r){return e=e.replace(/p/g,"i"),i["dynCall_"+e].apply(void 0,[t].concat(l(r)))}(e,t,r):Qe(t).apply(void 0,l(r))},Pe=function(e,t){var r,n,o=(e=X(e)).includes("j")?(r=e,n=t,function(){for(var e=arguments.length,t=new Array(e),o=0;o<e;o++)t[o]=arguments[o];return Te(r,n,t)}):Qe(t);return"function"!=typeof o&&J("unknown function pointer with signature ".concat(e,": ").concat(t)),o},Me=function(e){var t=Et(e),r=X(t);return pt(t),r},Re=function(e,t){var r=[],n={};throw t.forEach((function e(t){n[t]||V[t]||(z[t]?z[t].forEach(e):(r.push(t),n[t]=!0))})),new be("".concat(e,": ")+r.map(Me).join([", "]))},Se=function(e,t){for(var r=[],n=0;n<e;n++)r.push(B[t+4*n>>2]);return r},Fe=function(e){for(;e.length;){var t=e.pop();e.pop()(t)}};function ke(e,t,r,n,o,i){var a=t.length;a<2&&J("argTypes array size mismatch! Must at least get return value and 'this' types!");var s=null!==t[1]&&null!==r,A=function(e){for(var t=1;t<e.length;++t)if(null!==e[t]&&void 0===e[t].destructorFunction)return!0;return!1}(t),c="void"!==t[0].name,u=a-2,g=new Array(u),d=[],l=[];return he(e,(function(){var r;arguments.length!==u&&J("function ".concat(e," called with ").concat(arguments.length," arguments, expected ").concat(u)),l.length=0,d.length=s?2:1,d[0]=o,s&&(r=t[1].toWireType(l,this),d[1]=r);for(var i=0;i<u;++i)g[i]=t[i+2].toWireType(l,i<0||arguments.length<=i?void 0:arguments[i]),d.push(g[i]);return function(e){if(A)Fe(l);else for(var n=s?1:2;n<t.length;n++){var o=1===n?r:g[n-2];null!==t[n].destructorFunction&&t[n].destructorFunction(o)}if(c)return t[0].fromWireType(e)}(n.apply(void 0,d))}))}var xe,Ne,je,Ue=function(e,t,r){return e instanceof Object||J("".concat(r,' with invalid "this": ').concat(e)),e instanceof t.registeredClass.constructor||J("".concat(r,' incompatible with "this" of type ').concat(e.constructor.name)),e.$$.ptr||J("cannot call emscripten binding method ".concat(r," on deleted object")),ye(e.$$.ptr,e.$$.ptrType.registeredClass,t.registeredClass)},Le=[],He=[],Ge=function(e){e>9&&0==--He[e+1]&&(He[e]=void 0,Le.push(e))},Ye=function(){return He.length/2-5-Le.length},Xe={toValue:function(e){return e||J("Cannot use deleted val. handle = "+e),He[e]},toHandle:function(e){switch(e){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:var t=Le.pop()||He.length;return He[t]=e,He[t+1]=1,t}}},We={name:"emscripten::val",fromWireType:function(e){var t=Xe.toValue(e);return Ge(e),t},toWireType:function(e,t){return Xe.toHandle(t)},argPackAdvance:8,readValueFromPointer:Be,destructorFunction:null},Ve=function(e){if(null===e)return"null";var t=E(e);return"object"===t||"array"===t||"function"===t?e.toString():""+e},ze=function(e,t){switch(t){case 4:return function(e){return this.fromWireType(v[e>>2])};case 8:return function(e){return this.fromWireType(D[e>>3])};default:throw new TypeError("invalid float width (".concat(t,"): ").concat(e))}},Je=function(e,t,r){switch(t){case 1:return r?function(e){return m[e]}:function(e){return y[e]};case 2:return r?function(e){return C[e>>1]}:function(e){return w[e>>1]};case 4:return r?function(e){return _[e>>2]}:function(e){return B[e>>2]};default:throw new TypeError("invalid integer width (".concat(t,"): ").concat(e))}},Ke="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,Ze=function(e,t,r){for(var n=t+r,o=t;e[o]&&!(o>=n);)++o;if(o-t>16&&e.buffer&&Ke)return Ke.decode(e.subarray(t,o));for(var i="";t<o;){var a=e[t++];if(128&a){var s=63&e[t++];if(192!=(224&a)){var A=63&e[t++];if((a=224==(240&a)?(15&a)<<12|s<<6|A:(7&a)<<18|s<<12|A<<6|63&e[t++])<65536)i+=String.fromCharCode(a);else{var c=a-65536;i+=String.fromCharCode(55296|c>>10,56320|1023&c)}}else i+=String.fromCharCode((31&a)<<6|s)}else i+=String.fromCharCode(a)}return i},qe="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0,$e=function(e,t){for(var r=e,n=r>>1,o=n+t/2;!(n>=o)&&w[n];)++n;if((r=n<<1)-e>32&&qe)return qe.decode(y.subarray(e,r));for(var i="",a=0;!(a>=t/2);++a){var s=C[e+2*a>>1];if(0==s)break;i+=String.fromCharCode(s)}return i},et=function(e,t,r){if(null!=r||(r=2147483647),r<2)return 0;for(var n=t,o=(r-=2)<2*e.length?r/2:e.length,i=0;i<o;++i){var a=e.charCodeAt(i);C[t>>1]=a,t+=2}return C[t>>1]=0,t-n},tt=function(e){return 2*e.length},rt=function(e,t){for(var r=0,n="";!(r>=t/4);){var o=_[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},nt=function(e,t,r){if(null!=r||(r=2147483647),r<4)return 0;for(var n=t,o=n+r-4,i=0;i<e.length;++i){var a=e.charCodeAt(i);if(a>=55296&&a<=57343&&(a=65536+((1023&a)<<10)|1023&e.charCodeAt(++i)),_[t>>2]=a,(t+=4)+4>o)break}return _[t>>2]=0,t-n},ot=function(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},it=function(e,t){var r=V[e];return void 0===r&&J("".concat(t," has unknown type ").concat(Me(e))),r},at=function(e,t,r){var n=[],o=e.toWireType(n,r);return n.length&&(B[t>>2]=Xe.toHandle(n)),o},st={},At=[],ct=Reflect.construct,ut=[null,[],[]];!function(){for(var e=new Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);L=e}(),H=i.BindingError=function(e){function t(e){var r;return o(this,t),(r=n(this,t,[e])).name="BindingError",r}return A(t,e),a(t)}(h(Error)),G=i.InternalError=function(e){function t(e){var r;return o(this,t),(r=n(this,t,[e])).name="InternalError",r}return A(t,e),a(t)}(h(Error)),Object.assign(pe.prototype,{isAliasOf:function(e){if(!(this instanceof pe))return!1;if(!(e instanceof pe))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:function(){if(this.$$.ptr||ee(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e,t=Ee(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:function(){this.$$.ptr||ee(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&J("Object already scheduled for deletion"),re(this),ne(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted:function(){return!this.$$.ptr},deleteLater:function(){return this.$$.ptr||ee(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&J("Object already scheduled for deletion"),Ae.push(this),1===Ae.length&&$&&$(ce),this.$$.deleteScheduled=!0,this}}),i.getInheritedInstanceCount=ae,i.getLiveInheritedInstances=se,i.flushPendingDeletes=ce,i.setDelayFunction=ue,Object.assign(ve.prototype,{getPointee:function(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e},destructor:function(e){var t;null==(t=this.rawDestructor)||t.call(this,e)},argPackAdvance:8,readValueFromPointer:Be,fromWireType:fe}),be=i.UnboundTypeError=(xe=Error,(je=he(Ne="UnboundTypeError",(function(e){this.name=Ne,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(xe.prototype),je.prototype.constructor=je,je.prototype.toString=function(){return void 0===this.message?this.name:"".concat(this.name,": ").concat(this.message)},je),He.push(0,1,void 0,1,null,1,!0,1,!1,1),i.count_emval_handles=Ye;var gt,dt={w:function(e,t,r){throw new Y(e).init(t,r),e},q:function(){S("")},p:function(e,t,r,n,o){},u:function(e,t,r,n){q(e,{name:t=X(t),fromWireType:function(e){return!!e},toWireType:function(e,t){return t?r:n},argPackAdvance:8,readValueFromPointer:function(e){return this.fromWireType(y[e])},destructorFunction:null})},y:function(e,t,r,n,o,a,s,A,c,u,g,d,l){g=X(g),a=Pe(o,a),A&&(A=Pe(s,A)),u&&(u=Pe(c,u)),l=Pe(d,l);var f=function(e){if(void 0===e)return"_unknown";var t=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return t>=48&&t<=57?"_".concat(e):e}(g);!function(e,t,r){i.hasOwnProperty(e)?(J("Cannot register public name '".concat(e,"' twice")),Ie(i,e,e),i.hasOwnProperty(r)&&J("Cannot register multiple overloads of a function with the same number of arguments (".concat(r,")!")),i[e].overloadTable[r]=t):i[e]=t}(f,(function(){Re("Cannot construct ".concat(g," due to unbound types"),[n])})),Z([e,t,r],n?[n]:[],(function(t){var r,o,s;t=t[0],s=n?(o=t.registeredClass).instancePrototype:pe.prototype;var c=he(g,(function(){if(Object.getPrototypeOf(this)!==d)throw new H("Use 'new' to construct "+g);if(void 0===E.constructor_body)throw new H(g+" has no accessible constructor");for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var n=E.constructor_body[t.length];if(void 0===n)throw new H("Tried to invoke ctor of ".concat(g," with invalid number of parameters (").concat(t.length,") - expected (").concat(Object.keys(E.constructor_body).toString(),") parameters instead!"));return n.apply(this,t)})),d=Object.create(s,{constructor:{value:c}});c.prototype=d;var E=new me(g,c,d,l,o,a,A,u);E.baseClass&&(null!=(r=E.baseClass).__derivedClasses||(r.__derivedClasses=[]),E.baseClass.__derivedClasses.push(E));var p=new ve(g,E,!0,!1,!1),h=new ve(g+"*",E,!1,!1,!1),I=new ve(g+" const*",E,!1,!0,!1);return ie[e]={pointerType:h,constPointerType:I},function(e,t,r){i.hasOwnProperty(e)||K("Replacing nonexistent public symbol"),void 0!==i[e].overloadTable&&void 0!==r?i[e].overloadTable[r]=t:(i[e]=t,i[e].argCount=r)}(f,c),[p,h,I]}))},x:function(e,t,r,n,o,i){var a=Se(t,r);o=Pe(n,o),Z([],[e],(function(e){e=e[0];var r="constructor ".concat(e.name);if(void 0===e.registeredClass.constructor_body&&(e.registeredClass.constructor_body=[]),void 0!==e.registeredClass.constructor_body[t-1])throw new H("Cannot register multiple constructors with identical number of parameters (".concat(t-1,") for class '").concat(e.name,"'! Overload resolution is currently only performed using the parameter count, not actual type info!"));return e.registeredClass.constructor_body[t-1]=function(){Re("Cannot construct ".concat(e.name," due to unbound types"),a)},Z([],a,(function(n){return n.splice(1,0,null),e.registeredClass.constructor_body[t-1]=ke(r,n,null,o,i),[]})),[]}))},h:function(e,t,r,n,o,i,a,s,A){var c,u,g=Se(r,n);t=X(t),u=(c=(c=t).trim()).indexOf("("),t=-1!==u?c.substr(0,u):c,i=Pe(o,i),Z([],[e],(function(e){e=e[0];var n="".concat(e.name,".").concat(t);function o(){Re("Cannot call ".concat(n," due to unbound types"),g)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]),s&&e.registeredClass.pureVirtualFunctions.push(t);var A=e.registeredClass.instancePrototype,c=A[t];return void 0===c||void 0===c.overloadTable&&c.className!==e.name&&c.argCount===r-2?(o.argCount=r-2,o.className=e.name,A[t]=o):(Ie(A,t,n),A[t].overloadTable[r-2]=o),Z([],g,(function(o){var s=ke(n,o,e,i,a);return void 0===A[t].overloadTable?(s.argCount=r-2,A[t]=s):A[t].overloadTable[r-2]=s,[]})),[]}))},k:function(e,t,r,n,o,i,a,s,A,c){t=X(t),o=Pe(n,o),Z([],[e],(function(e){e=e[0];var n="".concat(e.name,".").concat(t),u={get:function(){Re("Cannot access ".concat(n," due to unbound types"),[r,a])},enumerable:!0,configurable:!0};return u.set=A?function(){return Re("Cannot access ".concat(n," due to unbound types"),[r,a])}:function(e){return J(n+" is a read-only property")},Object.defineProperty(e.registeredClass.instancePrototype,t,u),Z([],A?[r,a]:[r],(function(r){var a=r[0],u={get:function(){var t=Ue(this,e,n+" getter");return a.fromWireType(o(i,t))},enumerable:!0};if(A){A=Pe(s,A);var g=r[1];u.set=function(t){var r=Ue(this,e,n+" setter"),o=[];A(c,r,g.toWireType(o,t)),Fe(o)}}return Object.defineProperty(e.registeredClass.instancePrototype,t,u),[]})),[]}))},t:function(e){return q(e,We)},o:function(e,t,r){q(e,{name:t=X(t),fromWireType:function(e){return e},toWireType:function(e,t){return t},argPackAdvance:8,readValueFromPointer:ze(t,r),destructorFunction:null})},g:function(e,t,r,n,o){t=X(t);var i=function(e){return e};if(0===n){var a=32-8*r;i=function(e){return e<<a>>>a}}var s=t.includes("unsigned");q(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:Je(t,r,0!==n),destructorFunction:null})},a:function(e,t,r){var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];function o(e){var t=B[e>>2],r=B[e+4>>2];return new n(m.buffer,r,t)}q(e,{name:r=X(r),fromWireType:o,argPackAdvance:8,readValueFromPointer:o},{ignoreDuplicateRegistrations:!0})},n:function(e,t){var r="std::string"===(t=X(t));q(e,{name:t,fromWireType:function(e){var t,n,o,i=B[e>>2],a=e+4;if(r)for(var s=a,A=0;A<=i;++A){var c=a+A;if(A==i||0==y[c]){var u=(o=c-s,(n=s)?Ze(y,n,o):"");void 0===t?t=u:(t+=String.fromCharCode(0),t+=u),s=c+1}}else{var g=new Array(i);for(A=0;A<i;++A)g[A]=String.fromCharCode(y[a+A]);t=g.join("")}return pt(e),t},toWireType:function(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||J("Cannot pass non-string to std::string"),n=r&&o?function(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=ft(4+n+1),a=i+4;if(B[i>>2]=n,r&&o)!function(e,t,r,n){if(!(n>0))return 0;for(var o=r+n-1,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)),a<=127){if(r>=o)break;t[r++]=a}else if(a<=2047){if(r+1>=o)break;t[r++]=192|a>>6,t[r++]=128|63&a}else if(a<=65535){if(r+2>=o)break;t[r++]=224|a>>12,t[r++]=128|a>>6&63,t[r++]=128|63&a}else{if(r+3>=o)break;t[r++]=240|a>>18,t[r++]=128|a>>12&63,t[r++]=128|a>>6&63,t[r++]=128|63&a}}t[r]=0}(t,y,a,n+1);else if(o)for(var s=0;s<n;++s){var A=t.charCodeAt(s);A>255&&(pt(a),J("String has UTF-16 code units that do not fit in 8 bits")),y[a+s]=A}else for(s=0;s<n;++s)y[a+s]=t[s];return null!==e&&e.push(pt,i),i},argPackAdvance:8,readValueFromPointer:Be,destructorFunction:function(e){pt(e)}})},l:function(e,t,r){var n,o,i,a;r=X(r),2===t?(n=$e,o=et,a=tt,i=function(e){return w[e>>1]}):4===t&&(n=rt,o=nt,a=ot,i=function(e){return B[e>>2]}),q(e,{name:r,fromWireType:function(e){for(var r,o=B[e>>2],a=e+4,s=0;s<=o;++s){var A=e+4+s*t;if(s==o||0==i(A)){var c=n(a,A-a);void 0===r?r=c:(r+=String.fromCharCode(0),r+=c),a=A+t}}return pt(e),r},toWireType:function(e,n){"string"!=typeof n&&J("Cannot pass non-string to C++ string type ".concat(r));var i=a(n),s=ft(4+i+t);return B[s>>2]=i/t,o(n,s+4,i+t),null!==e&&e.push(pt,s),s},argPackAdvance:8,readValueFromPointer:Be,destructorFunction:function(e){pt(e)}})},v:function(e,t){q(e,{isVoid:!0,name:t=X(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(e,t){}})},s:function(e,t,r){return y.copyWithin(e,t,t+r)},j:function(e,t,r){return e=Xe.toValue(e),t=it(t,"emval::as"),at(t,r,e)},e:function(e,t,r,n,o){var i,a;return(e=At[e])(t=Xe.toValue(t),t[r=void 0===(a=st[i=r])?X(i):a],n,o)},c:Ge,f:function(e,t,r){var n=function(e,t){for(var r=new Array(e),n=0;n<e;++n)r[n]=it(B[t+4*n>>2],"parameter "+n);return r}(e,t),o=n.shift();e--;var i,a,s=new Array(e),A="methodCaller<(".concat(n.map((function(e){return e.name})).join(", "),") => ").concat(o.name,">");return i=he(A,(function(t,i,a,A){for(var c=0,u=0;u<e;++u)s[u]=n[u].readValueFromPointer(A+c),c+=n[u].argPackAdvance;var g=1===r?ct(i,s):i.apply(t,s);return at(o,a,g)})),a=At.length,At.push(i),a},d:function(e){e>9&&(He[e+1]+=1)},b:function(e){var t=Xe.toValue(e);Fe(t),Ge(e)},i:function(e,t){var r=(e=it(e,"_emval_take_value")).readValueFromPointer(t);return Xe.toHandle(r)},r:function(e){y.length,S("OOM")},m:function(e,t,r,n){for(var o,i,a,s=0,A=0;A<r;A++){var c=B[t>>2],u=B[t+4>>2];t+=8;for(var g=0;g<u;g++)o=e,i=y[c+g],a=void 0,a=ut[o],0===i||10===i?((1===o?f:p)(Ze(a,0)),a.length=0):a.push(i);s+=u}return B[n>>2]=s,0}},lt=function(){var e,r={a:dt};function n(e,t){var r,n;return lt=e.exports,d=lt.z,r=d.buffer,i.HEAP8=m=new Int8Array(r),i.HEAP16=C=new Int16Array(r),i.HEAPU8=y=new Uint8Array(r),i.HEAPU16=w=new Uint16Array(r),i.HEAP32=_=new Int32Array(r),i.HEAPU32=B=new Uint32Array(r),i.HEAPF32=v=new Float32Array(r),i.HEAPF64=D=new Float64Array(r),De=lt.C,n=lt.A,Q.unshift(n),function(){var e;if(P--,null==(e=i.monitorRunDependencies)||e.call(i,P),0==P&&M){var t=M;M=null,t()}}(),lt}if(P++,null==(e=i.monitorRunDependencies)||e.call(i,P),i.instantiateWasm)try{return i.instantiateWasm(r,n)}catch(e){p("Module.instantiateWasm callback failed with error: ".concat(e)),t(e)}return F||(F="data:application/octet-stream;base64,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Ay0AASIARQ0BIAJBAWohAiADQQFqIQMgACABRg0ACwsgACABRgtrAQF/IwBBgAJrIgUkAAJAIAIgA0wNACAEQYDABHENACAFIAEgAiADayIDQYACIANBgAJJIgEbECQaIAFFBEADQCAAIAVBgAIQHSADQYACayIDQf8BSw0ACwsgACAFIAMQHQsgBUGAAmokAAvlAwEFfyMAQRBrIgMkACADIAAoAgAiBEEIaygCACICNgIMIAMgACACajYCBCADIARBBGsoAgA2AgggAygCCCIEIAFBABAeIQIgAygCBCEFAkAgAgRAIAMoAgwhACMAQUBqIgEkACABQUBrJABBACAFIAAbIQIMAQsjAEFAaiICJAAgACAFTgRAIAJCADcCHCACQgA3AiQgAkIANwIsIAJCADcCFCACQQA2AhAgAiABNgIMIAIgBDYCBCACQQA2AjwgAkKBgICAgICAgAE3AjQgAiAANgIIIAQgAkEEaiAFIAVBAUEAIAQoAgAoAhQRCQAgAEEAIAIoAhwbIQYLIAJBQGskACAGIgINACMAQUBqIgIkACACQQA2AhAgAkGsxgA2AgwgAiAANgIIIAIgATYCBEEAIQAgAkEUakEAQScQJBogAkEANgI8IAJBAToAOyAEIAJBBGogBUEBQQAgBCgCACgCGBEIAAJAAkACQCACKAIoDgIAAQILIAIoAhhBACACKAIkQQFGG0EAIAIoAiBBAUYbQQAgAigCLEEBRhshAAwBCyACKAIcQQFHBEAgAigCLA0BIAIoAiBBAUcNASACKAIkQQFHDQELIAIoAhQhAAsgAkFAayQAIAAhAgsgA0EQaiQAIAILtAEBBX8jAEEQayIGJAAgBkEEaiICEEEjAEEQayIFJAACfyACLQALQQd2BEAgAigCBAwBCyACLQALQf8AcQshBANAAkACfyACLQALQQd2BEAgAigCAAwBCyACCyEDIAUgATkDACACAn8gAyAEQQFqIAUQRyIDQQBOBEAgAyAETQ0CIAMMAQsgBEEBdEEBcgsiBBAtDAELCyACIAMQLSAAIAIQQCAFQRBqJAAgAhBEIAZBEGokAAuABAEDfyACQYAETwRAIAAgASACEBIgAA8LIAAgAmohAwJAIAAgAXNBA3FFBEACQCAAQQNxRQRAIAAhAgwBCyACRQRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAkEDcUUNASACIANJDQALCwJAIANBfHEiBEHAAEkNACACIARBQGoiBUsNAANAIAIgASgCADYCACACIAEoAgQ2AgQgAiABKAIINgIIIAIgASgCDDYCDCACIAEoAhA2AhAgAiABKAIUNgIUIAIgASgCGDYCGCACIAEoAhw2AhwgAiABKAIgNgIgIAIgASgCJDYCJCACIAEoAig2AiggAiABKAIsNgIsIAIgASgCMDYCMCACIAEoAjQ2AjQgAiABKAI4NgI4IAIgASgCPDYCPCABQUBrIQEgAkFAayICIAVNDQALCyACIARPDQEDQCACIAEoAgA2AgAgAUEEaiEBIAJBBGoiAiAESQ0ACwwBCyADQQRJBEAgACECDAELIAAgA0EEayIESwRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAiABLQABOgABIAIgAS0AAjoAAiACIAEtAAM6AAMgAUEEaiEBIAJBBGoiAiAETQ0ACwsgAiADSQRAA0AgAiABLQAAOgAAIAFBAWohASACQQFqIgIgA0cNAAsLIAALCwAgASACIAAQRRoL8gICAn8BfgJAIAJFDQAgACABOgAAIAAgAmoiA0EBayABOgAAIAJBA0kNACAAIAE6AAIgACABOgABIANBA2sgAToAACADQQJrIAE6AAAgAkEHSQ0AIAAgAToAAyADQQRrIAE6AAAgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBBGsgATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQQhrIAE2AgAgAkEMayABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkEQayABNgIAIAJBFGsgATYCACACQRhrIAE2AgAgAkEcayABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa1CgYCAgBB+IQUgAyAEaiEBA0AgASAFNwMYIAEgBTcDECABIAU3AwggASAFNwMAIAFBIGohASACQSBrIgJBH0sNAAsLIAALEgAgAUEBdEHAxABqQQIgABBFC60CAQd/An8gARAqIQMjAEEQayIGJAACfyAALQALQQd2BEAgACgCBAwBCyAALQALQf8AcQsiBEEATwRAAkAgAyAALQAL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eHEgBCgCCEH/////B3FyNgIIIAAgACgCCEGAgICAeHI2AgggBEEQaiQADAELECcACyAAIAE2AgQLIAECfyAALQALQQd2BEAgACgCAAwBCyAACyICaiAFEEMgACABIAVqIgAQMSAGQQA6AA8gACACaiAGLQAPOgAACyAGQRBqJAAPCwJ/IAAtAAtBB3YEQCAAKAIADAELIAALIQQjAEEQayICJAACfyAALQALQQd2BEAgACgCBAwBCyAALQALCxogACABEDEgAkEAOgAPIAEgBGogAi0ADzoAACACQRBqJAALPQEBfyMAQRBrIgIkACACQQA6AA8DQCABBEAgACACLQAPOgAAIAFBAWshASAAQQFqIQAMAQsLIAJBEGokAAsaACAALQALQQd2BEAgACgCCBogACgCABAZCwvmAQEFfyMAQRBrIgUkACMAQSBrIgMkACMAQRBrIgQkACAEIAA2AgwgBCAAIAFqNgIIIAMgBCgCDDYCGCADIAQoAgg2AhwgBEEQaiQAIAMoAhghBCADKAIcIQYjAEEQayIBJAAgASAGNgIMIAIgBCAGIARrIgQQNiABIAIgBGo2AgggAyABKAIMNgIQIAMgASgCCDYCFCABQRBqJAAgAyAAIAMoAhAgAGtqNgIMIAMgAiADKAIUIAJrajYCCCAFIAMoAgw2AgggBSADKAIINgIMIANBIGokACAFKAIMIQcgBUEQaiQAIAcL8wIBBX8jAEEQayIHJAAgAiABQX9zQff///8Hak0EQAJ/IAAtAAtBB3YEQCAAKAIADAELIAALIQggB0EEaiIJIAFB8////wNJBH8gByABQQF0NgIMIAcgASACajYCBCMAQRBrIgIkACAJKAIAIAdBDGoiCigCAEkhCyACQRBqJAAgCiAJIAsbKAIAIgJBC08EfyACQQhqQXhxIgIgAkEBayICIAJBC0YbBUEKC0EBagVB9////wcLEDAgBygCBCECIAcoAggaIAQEQCACIAggBBAjCyAFBEAgAiAEaiAGIAUQIwsgAyAEayEGIAMgBEcEQCACIARqIAVqIAQgCGogBhAjCyABQQpHBEAgCBAZCyAAIAI2AgAgACAAKAIIQYCAgIB4cSAHKAIIQf////8HcXI2AgggACAAKAIIQYCAgIB4cjYCCCAAIAQgBWogBmoiADYCBCAHQQA6AAwgACACaiAH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IwBBEGsiAiQAQcQAEBwhASAAKAIEIgBBCU8EQCAAEAMLIAIgADYCCCABQZQnIAJBCGoQCDYCBCABQaTPADYCACABQQI2AhwgAUGkzwA2AhggAUECNgIUIAFBpM8ANgIQIAFBAjYCDCABQaTPADYCCCABQQA6ACAgAUKAgICAMDcCPCABQQA7ADcgAUEAOwArIAJBEGokACABC54FAgZ+BH8gASABKAIAQQdqQXhxIgFBEGo2AgAgACELIAEpAwAhAyABKQMIIQcjAEEgayIBJAAgB0L///////8/gyEFAn4gB0IwiEL//wGDIgSnIglBgfgAa0H9D00EQCAFQgSGIANCPIiEIQIgCUGA+ABrrSEEAkAgA0L//////////w+DIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILQgAgAiACQv////////8HViIAGyECIACtIAR8DAELAkAgAyAFhFANACAEQv//AVINACAFQgSGIANCPIiEQoCAgICAgIAEhCECQv8PDAELQv8PIAlB/ocBSw0AGkIAQYD4AEGB+AAgBFAiCBsiCiAJayIAQfAASg0AGiADIQIgBSAFQoCAgICAgMAAhCAIGyIEIQYCQEGAASAAayIIQcAAcQRAIAIgCEFAaq2GIQZCACECDAELIAhFDQAgBiAIrSIFhiACQcAAIAhrrYiEIQYgAiAFhiECCyABIAI3AxAgASAGNwMYAkAgAEHAAHEEQCAEIABBQGqtiCEDQgAhBAwBCyAARQ0AIARBwAAgAGuthiADIACtIgKIhCEDIAQgAoghBAsgASADNwMAIAEgBDcDCCABKQMIQgSGIAEpAwAiA0I8iIQhAgJAIAkgCkcgASkDECABKQMYhEIAUnGtIANC//////////8Pg4QiA0KBgICAgICAgAhaBEAgAkIBfCECDAELIANCgICAgICAgIAIUg0AIAJCAYMgAnwhAgsgAkKAgICAgICACIUgAiACQv////////8HViIAGyECIACtCyEDIAFBIGokACALIAdCgICAgICAgICAf4MgA0I0hoQgAoS/OQMAC0MBAn8jAEEQayICJAAgAiABNgIMIAJBpM8ANgIIIAJBCGogABEBACEDIAIoAgwiAUEJTwRAIAEQAgsgAkEQaiQAIAMLBABCAAsE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IgdBAEgiAxsgBSgCCCAHIAMbEBsiAygCCDYCcCAFIAMpAgA3A2ggA0IANwIAIANBADYCCCAFIAVB6ABqQasREBoiAygCCDYCgAEgBSADKQIANwN4IANCADcCACADQQA2AgggBUGIAWogBSgCeCAFQfgAaiAFLACDASIHQQBIIgMbIAUoAnwgByADGxAbGiAFLACDAUEASARAIAUoAngQGQsgBSwAc0EASARAIAUoAmgQGQsgBSwAD0EASARAIAUoAgQQGQsgBSwAY0EASARAIAUoAlgQGQsgBSwAU0EASARAIAUoAkgQGQsgBSwAG0EASARAIAUoAhAQGQsgBSwAQ0EASARAIAUoAjgQGQsgBSwAM0EASARAIAUoAigQGQsgBSwAJ0EATg0AIAUoAhwQGQsgAkEBaiICQQdHDQALIAlBAWoiCUEHRw0ACyMAQRBrIggkAEHzHxAqIQwCfyAFQYgBaiILLQALQQd2BEAgCygCBAwBCyALLQALQf8AcQshBgJ/An8jAEEQayIHJAAgBUH4AGohCiAGIAxqIglB9////wdNBEACQCAJQQtJBEAgCkIANwIAIApBADYCCCAKIAotAAtBgAFxIAlB/wBxcjoACyAKIAotAAtB/wBxOgALDAELIAlBC08EfyAJQQhqQXhxIgIgAkEBayICIAJBC0YbBUEKC0EBaiIDEBwhAiAKIAooAghBgICAgHhxIANB/////wdxcjYCCCAKIAooAghBgICAgHhyNgIIIAogAjYCACAKIAk2AgQLIAdBEGokACAKDAELECcACyICLQALQQd2BEAgAigCAAwBCyACCyICQfMfIAwQIyACIAxqIgICfyALLQALQQd2BEAgCygCAAwBCyALCyAGECMgAiAGakEBEEMgCEEQaiQAIA0gCkHNIxAaIgIpAgA3AgAgDSACKAIINgIIIAJCADcCACACQQA2AgggBSwAgwFBAEgEQCAFKAJ4EBkLIAUsAJMBQQBIBEAgBSgCiAEQGQsgBSgClAEiBwRAIAUoApgBIgMgByICRwRAA0AgA0EMayICKAIAIggEQCADQQhrIAg2AgAgCBAZCyACIgMgB0cNAAsgBSgClAEhAgsgBSAHNgKYASACEBkLIAVBoAFqJAAgBEEwaiAEKAIgIA0gBCwAKyIDQQBIIgIbIAQoAiQgAyACGxAbGiAELAAr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AAsLvUQWAEGACAukH3NldEJlYXV0eQAtKyAgIDBYMHgALTBYKzBYIDBYLTB4KzB4IDB4AHVuc2lnbmVkIHNob3J0AHVuc2lnbmVkIGludABpbml0AGZsb2F0AHVpbnQ2NF90AGJsdXJSYWRpdXMAdmVjdG9yAG1pcnJvcgBhdHRhY2hTaGFkZXIAZGVsZXRlU2hhZGVyAGNyZWF0ZVNoYWRlcgBjb21waWxlU2hhZGVyAHVuc2lnbmVkIGNoYXIAc3RkOjpleGNlcHRpb24AbmFuAGxpbmtQcm9ncmFtAGRlbGV0ZVByb2dyYW0AY3JlYXRlUHJvZ3JhbQBib29sAHNldFdhdGVyTWFyawBzdG9wV2F0ZXJNYXJrAHVuc2lnbmVkIGxvbmcAc3RkOjp3c3RyaW5nAGJhc2ljX3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBpbmYAJWYAY2xvc2UAZG91YmxlAHZiTW9kZQBzaGFkZXJTb3VyY2UAdm9pZABzYW1wbGVDb2xvciArPSB0ZXh0dXJlKGZyYW1lLCBibHVyQ29vcmRpbmF0ZXNbAE5BTgBJTkYAZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZmxvYXQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ2NF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ2NF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVkIGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGRvdWJsZT4AdmVjMiBjID0gdl90ZXhDb29yZDsAdmVjMiBjID0gdmVjMigxLjAgLSB2X3RleENvb3JkLngsIHZfdGV4Q29vcmQueSk7AEFsbEluMQAuAC4wLAAuMCkqbykqAChudWxsKQApKm8ueSk7ICAgIHZlYzIgY29vcmQyID0gdmVjMihmbG9hdCgAICAgIGMgPSB2ZWMyKHZfdGV4Q29vcmQueCwgMS4wIC0gdl90ZXhDb29yZC55KTsgICAgdmVjMiBjb29yZDEgPSB2ZWMyKGZsb2F0KAApLCAoYy55IC1jb29yZDEueSkgLyBvLnkgLyBmbG9hdCgAKSpvLnkpOyAgICBpZiAoYy54ID4gY29vcmQxLnggJiYgYy54IDwgY29vcmQyLnggJiYgYy55ID4gY29vcmQxLnkgJiYgYy55IDwgY29vcmQyLnkpIHsgICAgICB2ZWM0IHdhdGVyQ29sb3IgPSB0ZXh0dXJlKHdhdGVyTWFyaywgdmVjMigoYy54IC0gY29vcmQxLngpICAvIG8ueCAvIGZsb2F0KAApICogby54LCBmbG9hdCgAb3V0Q29sb3IucmdiICs9IHZlYzMoACk7ICAgICAgIHZlYzMgc21vb3RoQ29sb3IgPSBvdXRDb2xvci5yZ2IgKyAob3V0Q29sb3IucmdiLXZlYzMoaGlnaFBhc3MpKSphbHBoYSowLjE7ICAgICAgIHNtb290aENvbG9yID0gY2xhbXAocG93KHNtb290aENvbG9yLCB2ZWMzKABnKz1HKGMsdmVjMigAICAgICAgdmVjMiBvZmZzZXQgPSB2ZWMyKABdID0gdl90ZXhDb29yZC54eSArIG9mZnNldCAqIHZlYzIoADsgACkpLCB2ZWMzKDAuMCksIHZlYzMoMS4wKSk7ICAgICAgdmVjMyBzY3JlZW4gPSB2ZWMzKDEuMCkgLSAodmVjMygxLjApLXNtb290aENvbG9yKSAqICh2ZWMzKDEuMCktb3V0Q29sb3IucmdiKTsgICAgICAgdmVjMyBsaWdodGVuID0gbWF4KHNtb290aENvbG9yLCBvdXRDb2xvci5yZ2IpOyAgICAgICB2ZWMzIGJlYXV0eUNvbG9yID0gbWl4KG1peChvdXRDb2xvci5yZ2IsIHNjcmVlbiwgYWxwaGEpLCBsaWdodGVuLCBhbHBoYSk7ICAgICAgb3V0Q29sb3IucmdiID0gbWl4KG91dENvbG9yLnJnYiwgYmVhdXR5Q29sb3IsIAAKICAgICAgY29uc3QgbWF0MyBzYXR1cmF0ZU1hdHJpeCA9IG1hdDMoMS4xMTAyLC0wLjA1OTgsLTAuMDYxLC0wLjA3NzQsMS4wODI2LC0wLjExODYsLTAuMDIyOCwtMC4wMjI4LDEuMTc3Mik7CiAgICAgIHZlYzMgd2FybUNvbG9yID0gb3V0Q29sb3IucmdiICogc2F0dXJhdGVNYXRyaXg7CiAgICAgIG91dENvbG9yLnJnYiA9IG1peChvdXRDb2xvci5yZ2IsIHdhcm1Db2xvciwgACAgICAgIHNhbXBsZUNvbG9yID0gc2FtcGxlQ29sb3IgLyA2Mi4wOyAgICAgICBmbG9hdCBoaWdoUGFzcyA9IG91dENvbG9yLmcgLSBzYW1wbGVDb2xvciArIDAuNTsgICAgICAgY29uc3QgaGlnaHAgdmVjMyBXID0gdmVjMygwLjI5OSwwLjU4NywwLjExNCk7ICAgICAgZmxvYXQgbHVtaW5hbmNlID0gZG90KG91dENvbG9yLnJnYiwgVyk7ICAgICAgIGZsb2F0IGFscGhhID0gcG93KGx1bWluYW5jZSwgAF0pLmcgKiAAKSkpOyAgICAgIG91dENvbG9yID0gbWl4KG91dENvbG9yLHdhdGVyQ29sb3IsICB3YXRlckNvbG9yLmEpOyAgICB9ICAgIAApOyAgICAAKTsgICAgICB2ZWMyIGJsdXJDb29yZGluYXRlc1syNF07ICAgICAgACAgICAgIGZsb2F0IHNhbXBsZUNvbG9yID0gb3V0Q29sb3IuZyAqIDIyLjA7ICAgICAgIAAjdmVyc2lvbiAzMDAgZXMKICAgIHByZWNpc2lvbiBoaWdocCBmbG9hdDsKICAgIHVuaWZvcm0gc2FtcGxlcjJEIGZyYW1lOwogICAgdW5pZm9ybSBzYW1wbGVyMkQgbWFzazsKICAgIHVuaWZvcm0gc2FtcGxlcjJEIGJnOwogICAgdW5pZm9ybSBzYW1wbGVyMkQgd2F0ZXJNYXJrOwogICAgdW5pZm9ybSBzYW1wbGVyMkQgbGFzdE1hc2s7CiAgICBpbiB2ZWMyIHZfdGV4Q29vcmQ7CiAgICBvdXQgdmVjNCBvdXRDb2xvcjsKICAgIHZlYzQgRyh2ZWMyIGMsdmVjMiBzKXsKICAgICAgcmV0dXJuIHRleHR1cmUoZnJhbWUsdGV4dHVyZShtYXNrLGMrcykuYT4wLjM/YzpjK3MpOwogICAgfQogICAgdm9pZCBtYWluKCkgewogICAgICAACiAgICB2ZWM0IGcgPSB2ZWM0KDAuMCk7CiAgICAACiAgICAgIGMueSA9IDEuMCAtIGMueTsKICAgICAgdmVjNCBzcmNfY29sb3IgPSB0ZXh0dXJlKGZyYW1lLCBjKTsKICAgICAgZmxvYXQgYSA9IHRleHR1cmUobWFzaywgYykuYTsKICAgICAgYSA9IGE8MC41PzIuMCphKmE6MS4wLTIuMCooMS4wLWEpKigxLjAtYSk7CiAgICAgIC8vIGZsb2F0IGEyID0gdGV4dHVyZShsYXN0TWFzaywgYykuYTsKICAgICAgLy8gYTIgPSBhMjwwLjU/Mi4wKmEyKmEyOjEuMC0yLjAqKDEuMC1hMikqKDEuMC1hMik7CiAgICAgIC8vIGZsb2F0IGRlbHRhID0gYSAtIGEyOwogICAgICAvLyBpZiAoZGVsdGEgPCAwLjI1ICYmIGRlbHRhID4gLTAuMjUpCiAgICAgIC8vIHsKICAgICAgLy8gICAgIGEgPSBhICsgMC41KmRlbHRhOwogICAgICAvLyB9CiAgICAgIAogICAgICB2ZWMyIG8gPSAxLjAgLyB2ZWMyKHRleHR1cmVTaXplKGZyYW1lLCAwKSk7CiAgICAACiAgICAgIG91dENvbG9yID0gZzsKICAAI3ZlcnNpb24gMzAwIGVzCmluIHZlYzIgYV9wb3NpdGlvbjsKaW4gdmVjMiBhX3RleENvb3JkOwpvdXQgdmVjMiB2X3RleENvb3JkOwp2b2lkIG1haW4oKSB7CiAgZ2xfUG9zaXRpb24gPSB2ZWM0KGFfcG9zaXRpb24ueCwgYV9wb3NpdGlvbi55LCAwLCAxKTsKICB2X3RleENvb3JkID0gYV90ZXhDb29yZDsKfQoAc2V0QmVhdXR5ICVmICVmICVmICVmICVmCgBvdXRDb2xvciA9IHNyY19jb2xvcjsKAG91dENvbG9yID0gbWl4KHRleHR1cmUoYmcsIGMpLHNyY19jb2xvcixhKTsKAG91dENvbG9yID0gbWl4KHZlYzQoMC4wLDEuMCwwLjAsMS4wKSxzcmNfY29sb3IsYSk7CgA2QWxsSW4xAFAlAAAoEwAAUDZBbGxJbjEAAAAA1CUAADgTAAAAAAAAMBMAAFBLNkFsbEluMQAAANQlAABUEwAAAQAAADATAABwcAB2AHZwAEQTAACUEwAATjEwZW1zY3JpcHRlbjN2YWxFAABQJQAAgBMAAHBwcAB2cHBwAEGwJwskjCQAAEQTAABAJQAAQCUAAEAlAABAJQAAQCUAAHZwcGRkZGRkAEHgJwvICIwkAABEEwAAQCUAAEAlAABAJQAAQCUAAHZwcGRkZGQAjCQAAEQTAAB2cHAAjCQAAJQTAACUEwAARBMAAJQTAADsJAAAjCQAAJQTAABwFAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUAAFAlAAAwFAAAlBMAAIwkAACUEwAAlBMAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0loTlNfMTFjaGFyX3RyYWl0c0loRUVOU185YWxsb2NhdG9ySWhFRUVFAABQJQAAiBQAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0l3TlNfMTFjaGFyX3RyYWl0c0l3RUVOU185YWxsb2NhdG9ySXdFRUVFAABQJQAA0BQAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0lEc05TXzExY2hhcl90cmFpdHNJRHNFRU5TXzlhbGxvY2F0b3JJRHNFRUVFAAAAUCUAABgVAABOU3QzX18yMTJiYXNpY19zdHJpbmdJRGlOU18xMWNoYXJfdHJhaXRzSURpRUVO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"),j(0,F,r,(function(e){n(e.instance)})).catch(t),{}}(),ft=function(e){return(ft=lt.B)(e)},Et=function(e){return(Et=lt.D)(e)},pt=function(e){return(pt=lt.E)(e)},ht=function(e){return(ht=lt.F)(e)};function It(){function t(){gt||(gt=!0,i.calledRun=!0,b||(U(Q),e(i),i.onRuntimeInitialized&&i.onRuntimeInitialized(),function(){if(i.postRun)for("function"==typeof i.postRun&&(i.postRun=[i.postRun]);i.postRun.length;)e=i.postRun.shift(),T.unshift(e);var e;U(T)}()))}P>0||(function(){if(i.preRun)for("function"==typeof i.preRun&&(i.preRun=[i.preRun]);i.preRun.length;)e=i.preRun.shift(),O.unshift(e);var e;U(O)}(),P>0||(i.setStatus?(i.setStatus("Running..."),setTimeout((function(){setTimeout((function(){i.setStatus("")}),1),t()}),1)):t()))}if(i.dynCall_jiji=function(e,t,r,n,o){return(i.dynCall_jiji=lt.G)(e,t,r,n,o)},i._vertexShaderSource=9872,M=function e(){gt||It(),gt||(M=e)},i.preInit)for("function"==typeof i.preInit&&(i.preInit=[i.preInit]);i.preInit.length>0;)i.preInit.pop()();return It(),s}),j=N,U=function(){return a((function e(t,r){var n=this;o(this,e),b(this,"canvas"),b(this,"locateFile"),b(this,"_glName"),b(this,"_solutionWasm"),b(this,"ctx"),b(this,"fileDownloader"),b(this,"startTime"),b(this,"lastTimestamp"),b(this,"pl",{onResults:function(e){return n.onResults(e.get(0).glName)}}),this.locateFile=function(e){return"".concat(t,"/").concat(e).replace(/([^:]\/)\/+/g,"$1")},this.fileDownloader=r}),[{key:"bindTexture",value:function(){var e;null==(e=this.ctx)||e.activeTexture(this.ctx.TEXTURE0),this.bindTexture2d(this._glName)}},{key:"initialize",value:(t=r(u().mark((function e(){var t,r;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this._solutionWasm=new this.SolutionWasm,(t=new this.StringList).push_back("segmentation_mask"),r=this.PacketListener.implement(this.pl),this._solutionWasm.attachMultiListener(t,r),t.delete(),e.t0=this._solutionWasm,e.next=9,this.fileDownloader.download(this.locateFile("selfie_segmentation.binarypb"),{type:"arraybuffer"});case 9:return e.t1=e.sent,e.t0.loadGraph.call(e.t0,e.t1),e.abrupt("return",this);case 12:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"setCanvas",value:function(e){this.canvas=e,this.createContext(e,!0,!0,{}),this._glName=this.createTexture()}},{key:"fetchResponse",value:function(e){return this.fileDownloader.downloadWithFetch(e,"fetch-response")}},{key:"loadWasm",value:function(e,t){return this.fileDownloader.loadWasm(e,t)}},{key:"changeModel",value:(e=r(u().mark((function e(){var t,r,n=arguments;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("string"!=typeof(t=n.length>0&&void 0!==n[0]?n[0]:"selfie_segmentation_landscape.tflite")){e.next=7;break}return e.next=4,this.fileDownloader.download(this.locateFile(t),{type:"arraybuffer"});case 4:e.t0=e.sent,e.next=8;break;case 7:e.t0=t;case 8:t=e.t0,this._solutionWasm.overrideFile("third_party/mediapipe/modules/selfie_segmentation/selfie_segmentation_landscape.tflite",t),(r=new this.GraphOptionChangeRequestList).push_back({calculatorIndex:1,calculatorName:"",calculatorType:"GlScalerCalculator",fieldName:"flip_horizontal",valueBoolean:!1,valueNumber:0,valueString:""}),r.push_back({calculatorIndex:0,calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorModelSelection",fieldName:"int_value",valueBoolean:!1,valueNumber:1,valueString:""}),r.push_back({calculatorIndex:0,calculatorType:"InferenceCalculator",calculatorName:"",fieldName:"use_cpu_inference",valueBoolean:!1,valueNumber:0,valueString:""}),this._solutionWasm.changeOptions(r),this.startTime=Date.now();case 16:case"end":return e.stop()}}),e,this)}))),function(){return e.apply(this,arguments)})},{key:"send",value:function(e,t){var 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()}},{key:"close",value:function(){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(var n=0,o=Object.keys(this);n<o.length;n++){delete this[o[n]]}}}]);var e,t}(),L="undefined"==typeof navigator?"":navigator.userAgent,H=function(e){return new RegExp(e,"i").test(L)},G=function(e){if(H(e)){var t=new RegExp("".concat(e,"\\/([\\d.]+)")),r=L.match(t);if(r&&r[1])return r[1]}return""},Y=function(e){if(H(e)){var t=new RegExp("".concat(e,"\\/(\\d+)")),r=L.match(t);if(r&&r[1])return parseFloat(r[1])}return NaN},X=/AppleWebKit\/([\d.]+)/i.exec(L);X&&parseFloat(X[1]);var W=H("iPad"),V="undefined"!=typeof navigator&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&H("Macintosh"),z=H("iPhone")&&!W,J=H("iPod"),K=z||W||J||V,Z=H("Android");!function(){if(Z){var e=L.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(e){var t=e[1]&&parseFloat(e[1]),r=e[2]&&parseFloat(e[2]);if(t&&r)return parseFloat("".concat(e[1],".").concat(e[2]));if(t)return t}}}();Z&&H("webkit");var q=H("Firefox"),$=G("Firefox");Y("Firefox");var ee=H("Edge"),te=G("Edge"),re=H("Edg"),ne=G("Edg");Y("Edg");var oe=H("SogouMobileBrowser"),ie=G("SogouMobileBrowser"),ae=H("MetaSr\\s"),se=G("MetaSr\\s"),Ae=H("TBS"),ce=G("TBS"),ue=H("XWEB"),ge=G("XWEB");H("MSIE\\s8\\.0");var de=H("MSIE\\/\\d+");!function(){if(de){var e=/MSIE\s(\d+)\.\d/.exec(L),t=e&&parseFloat(e[1]);return!t&&/Trident\/7.0/i.test(L)&&/rv:11.0/.test(L)&&(t=11),t}}();var le=H("(micromessenger|webbrowser)"),fe=G("MicroMessenger"),Ee=!Ae&&H("MQQBrowser")&&H("COVC"),pe=!Ae&&H("MQQBrowser")&&!H("COVC"),he=pe||Ee?G("MQQBrowser"):"",Ie=!Ae&&H(" QQBrowser"),me=G(" QQBrowser"),ye=!Ae&&H("QQBrowserLite"),Ce=G("QQBrowserLite"),we=!Ae&&H("MQBHD"),_e=G("MQBHD");H("Windows"),!K&&H("MAC OS X"),!Z&&H("Linux"),H("CrOS"),H("MicroMessenger"),H("UCBrowser"),H("Electron");var Be=H("MiuiBrowser"),ve=G("MiuiBrowser"),De=H("HuaweiBrowser");H("Huawei")||H("HUAWEI"),H("Honor")||H("HONOR");var be=G("HuaweiBrowser"),Oe=H("SamsungBrowser"),Qe=G("SamsungBrowser"),Te=H("HeyTapBrowser"),Pe=G("HeyTapBrowser"),Me=H("VivoBrowser"),Re=G("VivoBrowser");H("OpenHarmony"),G("OpenHarmony");var Se=H("Chrome"),Fe=!ee&&!ae&&!oe&&!Ae&&!ue&&!re&&!Ie&&!Be&&!De&&!Oe&&!Te&&!Me&&Se;H("HeadlessChrome");var ke=Y("Chrome"),xe=G("Chrome"),Ne=!Se&&!pe&&!Ee&&!ye&&!we&&H("Safari"),je=G("Version"),Ue=function(){if(V)return je;if(K){var e=L.match(/OS (\d+)_(\d+)/i);if(e&&e[1]){var t=e[1];return e[2]&&(t+=".".concat(e[2])),t}}return""}();Number(Ue.split(".")[0]),Number(Ue.split(".")[0]),function(){var e=new Map([[q,["Firefox",$]],[re,["Edg",ne]],[Fe,["Chrome",xe]],[Ne,["Safari",je]],[Ae,["TBS",ce]],[ue,["XWEB",ge]],[le&&z,["WeChat",fe]],[Ie,["QQ(Win)",me]],[pe,["QQ(Mobile)",he]],[Ee,["QQ(Mobile X5)",he]],[ye,["QQ(Mac)",Ce]],[we,["QQ(iPad)",_e]],[Be,["MI",ve]],[De,["HW",be]],[Oe,["Samsung",Qe]],[Te,["OPPO",Pe]],[Me,["VIVO",Re]],[ee,["EDGE",te]],[oe,["SogouMobile",ie]],[ae,["Sogou",se]]]),t="unknown",r="unknown";if(e.has(!0)){var n=d(e.get(!0),2);t=n[0],r=n[1]}}();var Le=570703,He=0,Ge=function(){function e(t){o(this,e),this.core=t,b(this,"seq"),b(this,"_core"),b(this,"log"),b(this,"preLoadPromise"),b(this,"startResolve"),b(this,"startReject"),b(this,"mediaPipeSolutions"),b(this,"assetsPath"),b(this,"currentType"),b(this,"onAbort"),b(this,"isAborted",!1),He+=1,this.seq=He,this._core=t,this.log=t.log.createChild({id:"".concat(this.getAlias()).concat(He)}),this.log.info("created"),t.assetsPath&&(this.preLoadPromise=this.preload(t.assetsPath))}return a(e,[{key:"preload",value:(s=r(u().mark((function e(){var t,r,n,o,i,a=this,s=arguments;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=s.length>0&&void 0!==s[0]?s[0]:"https://web.sdk.qcloud.com/trtc/webrtc/v5/assets/",e.prev=1,this._core.room.videoManager.Wasm){e.next=6;break}return e.next=5,j();case 5:this._core.room.videoManager.Wasm=e.sent;case 6:return this.assetsPath="".concat(t,"/selfie_segmentation/"),(r=new U(this.assetsPath,this._core.fileDownloader)).onAbort=function(e){var t;a.core.kvStatManager.addEnum({key:Le,value:a.getKVTypeValue(!1,a.isAborted,"ABORT_IN_INFERENCE")}),a.isAborted=!0,a.log.error("mediaPipeSolutions abort",e),a.core.clearStarted(a,a.getGroup()),a.stop(),null==(t=a.onAbort)||t.call(a,e)},r.print=this.log.info.bind(this.log),r.printErr=this.log.warn.bind(this.log),e.next=13,(this.core.rtcDectection.isSIMDSupported()?F:x)(r);case 13:return this.mediaPipeSolutions=e.sent,e.next=16,this.mediaPipeSolutions.initialize();case 16:return e.next=18,this._core.room.videoManager.initVirtualBackground(this.mediaPipeSolutions);case 18:e.next=24;break;case 20:throw e.prev=20,e.t0=e.catch(1),n=this._core.errorModule,o=n.RtcError,i=n.ErrorCode,new o({code:i.INVALID_OPERATION,message:"VirtualBackground preload error, please check your assetsPath. detail: ".concat(e.t0)});case 24:case"end":return e.stop()}}),e,this,[[1,20]])}))),function(){return s.apply(this,arguments)})},{key:"getName",value:function(){return e.Name}},{key:"getAlias",value:function(){return"vb"}},{key:"getValidateRule",value:function(e){switch(e){case"start":return t=this._core,{name:"VirtualBackgroundOptions",type:"object",required:!0,allowEmpty:!1,properties:(r=v({},T),n={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}},m(r,y(n))),validate:function(e,r,n,o){var i,a=t.errorModule,s=a.RtcError,A=a.ErrorCode,c=a.ErrorCodeDictionary;if(e){var u=e.type,g=e.src,d=e.onAbort;if("image"===u&&!g)throw new s({code:A.INVALID_PARAMETER,extraCode:c.INVALID_PARAMETER_REQUIRED,fnName:n,messageParams:{key:"src"}});if(d&&!t.utils.isFunction(d))throw new s({code:A.INVALID_PARAMETER,extraCode:c.INVALID_PARAMETER_TYPE,fnName:n,messageParams:{key:"onAbort",value:E(d),rule:{type:"Function"}}});if(!(null==(i=t.room.videoManager.cameraTrack)?void 0:i.mediaTrack))throw new s({code:A.INVALID_OPERATION,extraCode:c.INVALID_OPERATION_NEED_VIDEO,fnName:n})}}};case"update":return function(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:function(t,r,n,o){if(t){var i=e.errorModule,a=i.RtcError,s=i.ErrorCode,A=i.ErrorCodeDictionary,c=t.type,u=t.src;if("image"===c&&!u)throw new a({code:s.INVALID_PARAMETER,extraCode:A.INVALID_PARAMETER_REQUIRED,fnName:n,messageParams:{key:"src"}})}}}}(this._core);case"stop":return this._core,{name:"StopVirtualBackgroundOptions",required:!1}}var t,r,n}},{key:"getGroup",value:function(){return"vb"}},{key:"getKVTypeValue",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"NONE",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}},{key:"start",value:(i=r(u().mark((function e(t){var r,n,o,i,a,s,A,c,g,d,l,f,E=this;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.type,n=void 0===r?"blur":r,o=t.src,i=t.blurLevel,a=void 0===i?3:i,s=t.onAbort,this.currentType=n,this.onAbort=s,e.next=5,O({sdkAppId:t.sdkAppId,userId:t.userId,userSig:t.userSig,core:this._core});case 5:if(A=e.sent,c=A.auth,A.sign,A.timestamp,c){e.next=12;break}throw g=this._core.errorModule,d=g.RtcError,l=g.ErrorCode,f=g.ErrorCodeDictionary,new d({code:l.SERVER_ERROR,extraCode:f.NEED_TO_BUY,messageParams:{value:"Virtual Background",url:"https://cloud.tencent.com/document/product/647/85386"}});case 12:return this.preLoadPromise||(this.preLoadPromise=this.preload(this._core.assetsPath)),e.next=15,this.preLoadPromise;case 15:return e.abrupt("return",this.core.room.videoManager.setVirtualBackground({type:n,imageUrl:o,blurLevel:a,onAbort:function(e){var t;E.core.kvStatManager.addEnum({key:Le,value:E.getKVTypeValue(!0,E.isAborted,"ABORT_IN_VIDEO_MANAGER")}),E.isAborted=!0,E.core.clearStarted(E,E.getGroup()),E.stop(),delete E.preLoadPromise,null==(t=E.onAbort)||t.call(E,e)}}).then((function(){E.core.kvStatManager.addEnum({key:Le,value:E.getKVTypeValue(!1,E.isAborted,"NONE")})})).catch((function(){E.core.kvStatManager.addEnum({key:Le,value:E.getKVTypeValue(!0,E.isAborted,"OTHER")})})));case 16:case"end":return e.stop()}}),e,this)}))),function(e){return i.apply(this,arguments)})},{key:"update",value:(n=r(u().mark((function e(t){var r,n,o=this;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.type,n=t.src,r!==this.currentType&&(this.currentType=r),e.abrupt("return",this.core.room.videoManager.setVirtualBackground({type:r,imageUrl:n,blurLevel:t.blurLevel}).then((function(){o.core.kvStatManager.addEnum({key:Le,value:o.getKVTypeValue(!1,!1,"NONE")})})).catch((function(){o.core.kvStatManager.addEnum({key:Le,value:o.getKVTypeValue(!0,!1,"OTHER")})})));case 3:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"stop",value:(t=r(u().mark((function e(){return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.core.room.videoManager.setVirtualBackground());case 1:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})}],[{key:"isSupported",value:function(){if(ke<90)return!1;var e=document.createElement("canvas").getContext("webgl2");return!!(e&&e instanceof WebGL2RenderingContext)}}]);var t,n,i,s}();return b(Ge,"Name","VirtualBackground"),Ge}));
|