trtc-sdk-v5 5.10.2-beta.6 → 5.10.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.
@@ -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;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=Math.round((new Date).getTime()/1e3),e.prev=2,e.next=5,i.schedule.getAbilityConfig(r,i.schedule.ScheduleRequestType.TRTC_AUTO_CONF,{sdkAppId:r,userId:n,userSig:o,timestamp:s});case 5:if(A=e.sent,i.log.info("virtual background ability response: ".concat(JSON.stringify(A))),c=A.data,!(null==(a=null==c?void 0:c.trtcAutoConf)?void 0:a.web_ar)){e.next=10;break}return e.abrupt("return",{auth:!0,timestamp:s});case 10:return e.abrupt("return",{auth:!1});case 13:return e.prev=13,e.t0=e.catch(2),i.log.error("virtual background fetch error",e.t0),e.abrupt("return",{auth:!1});case 17:case"end":return e.stop()}}),e,null,[[2,13]])})))).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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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)")}}),_(void 0===n.memoryInitializerPrefixURL,"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),_(void 0===n.pthreadMainPrefixURL,"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),_(void 0===n.cdInitializerPrefixURL,"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),_(void 0===n.filePackagePrefixURL,"Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),_(void 0===n.read,"Module.read option was removed (modify read_ in JS)"),_(void 0===n.readAsync,"Module.readAsync option was removed (modify readAsync in JS)"),_(void 0===n.readBinary,"Module.readBinary option was removed (modify readBinary in JS)"),_(void 0===n.setWindowTitle,"Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),_(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(){he("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(){he("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(){he("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(){he("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)")}}),_(!g,"shell environment detected but not enabled at build time. Add 'shell' to `-s ENVIRONMENT` to enable.");var m,y=0,C=function(e){y=e};n.wasmBinary&&n.wasmBinary,Object.getOwnPropertyDescriptor(n,"wasmBinary")||Object.defineProperty(n,"wasmBinary",{configurable:!0,get:function(){he("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)")}}),n.noExitRuntime,Object.getOwnPropertyDescriptor(n,"noExitRuntime")||Object.defineProperty(n,"noExitRuntime",{configurable:!0,get:function(){he("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))&&he("no native wasm support detected");var w=!1;function _(e,t){e||he("Assertion failed: ".concat(t))}var B="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function v(e,t,r){for(var n=t+r,o=t;e[o]&&!(o>=n);)++o;if(o-t>16&&e.subarray&&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 b(e,t){return e?v(S,e,t):""}function O(e,t,r,n){if(!(n>0))return 0;for(var o=r,i=r+n-1,a=0;a<e.length;++a){var s=e.charCodeAt(a);if(s>=55296&&s<=57343&&(s=65536+((1023&s)<<10)|1023&e.charCodeAt(++a)),s<=127){if(r>=i)break;t[r++]=s}else if(s<=2047){if(r+1>=i)break;t[r++]=192|s>>6,t[r++]=128|63&s}else if(s<=65535){if(r+2>=i)break;t[r++]=224|s>>12,t[r++]=128|s>>6&63,t[r++]=128|63&s}else{if(r+3>=i)break;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 Q(e,t,r){return _("number"==typeof r,"stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),O(e,S,t,r)}function T(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 M,R,S,F,k,x,N,j,U,L="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function H(e,t){_(e%2==0,"Pointer passed to UTF16ToString must be aligned to two bytes!");for(var r=e,n=r>>1,o=n+t/2;!(n>=o)&&k[n];)++n;if((r=n<<1)-e>32&&L)return L.decode(S.subarray(e,r));for(var i="",a=0;!(a>=t/2);++a){var s=F[e+2*a>>1];if(0==s)break;i+=String.fromCharCode(s)}return i}function G(e,t,r){if(_(t%2==0,"Pointer passed to stringToUTF16 must be aligned to two bytes!"),_("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);F[t>>1]=a,t+=2}return F[t>>1]=0,t-n}function Y(e){return 2*e.length}function X(e,t){_(e%4==0,"Pointer passed to UTF32ToString must be aligned to four bytes!");for(var r=0,n="";!(r>=t/4);){var o=x[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 W(e,t,r){if(_(t%4==0,"Pointer passed to stringToUTF32 must be aligned to four bytes!"),_("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)),x[t>>2]=a,(t+=4)+4>o)break}return x[t>>2]=0,t-n}function V(e){for(var t=0,r=0;r<e.length;++r){var n=e.charCodeAt(r);n>=55296&&n<=57343&&++r,t+=4}return t}function z(e){var t=T(e)+1,r=Kr(t);return r&&O(e,R,r,t),r}function J(e){M=e,n.HEAP8=R=new Int8Array(e),n.HEAP16=F=new Int16Array(e),n.HEAP32=x=new Int32Array(e),n.HEAPU8=S=new Uint8Array(e),n.HEAPU16=k=new Uint16Array(e),n.HEAPU32=N=new Uint32Array(e),n.HEAPF32=j=new Float32Array(e),n.HEAPF64=U=new Float64Array(e)}var K=5242880;n.TOTAL_STACK&&_(K===n.TOTAL_STACK,"the stack size can no longer be determined at runtime");var Z,q=n.INITIAL_MEMORY||16777216;function $(){var e=$r();_(!(3&e)),N[1+(e>>2)]=34821223,N[2+(e>>2)]=2310721022,x[0]=1668509029}function ee(){if(!w){var e=$r(),t=N[1+(e>>2)],r=N[2+(e>>2)];34821223==t&&2310721022==r||he("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!==x[0]&&he("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(){he("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>=K,"INITIAL_MEMORY should be larger than TOTAL_STACK, was ".concat(q,"! (TOTAL_STACK=").concat(K,")")),_("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"),_(!n.wasmMemory,"Use of `wasmMemory` detected. Use -s IMPORTED_MEMORY to define wasmMemory externally"),_(16777216==q,"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 te=[],re=[],ne=[],oe=[],ie=!1;_(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),_(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),_(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),_(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 ae,se,Ae,ce,ue=0,ge=null,de=null,le={};function fe(e){for(var t=e;;){if(!le[e])return e;e=t+Math.random()}}function Ee(e){ue++,n.monitorRunDependencies&&n.monitorRunDependencies(ue),e?(_(!le[e]),le[e]=1,null===ge&&"undefined"!=typeof setInterval&&(ge=setInterval((function(){if(w)return clearInterval(ge),void(ge=null);var e=!1;for(var t in le)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 pe(e){if(ue--,n.monitorRunDependencies&&n.monitorRunDependencies(ue),e?(_(le[e]),delete le[e]):h("warning: run dependency removed without ID"),0==ue&&(null!==ge&&(clearInterval(ge),ge=null),de)){var t=de;de=null,t()}}function he(e){n.onAbort&&n.onAbort(e),h(e+=""),w=!0;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())),ve(t)));e=o;var i=new WebAssembly.RuntimeError(e);throw r(i),i}function Ie(e,t){return function(){var r=e,o=t;return o=n.asm,_(ie,"native function `".concat(r,"` called before runtime initialization")),_(!0,"native function `".concat(r,"` called after runtime exit (use NO_EXIT_RUNTIME to keep it alive after main() exits)")),o[e]||_(o[e],"exported native function `".concat(r,"` not found")),o[e].apply(null,arguments)}}n.preloadedImages={},n.preloadedAudios={},(ae="selfie_segmentation_solution_simd_wasm_bin.wasm").startsWith("data:application/octet-stream;base64,")||(se=ae,ae=n.locateFile?n.locateFile(se,f):f+se);var me,ye={460656:function(){var e=!0;if(e){var t=mr;if("function"!=typeof t)return void("undefined"!=typeof console&&console.error('Expected Emscripten global function "findCanvasEventTarget" not found. WebGL context creation may fail.'));mr=function(e){if(0==e){if(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 Ce(e,t){if(w)h("user callback triggered after application aborted. Ignoring.");else try{e()}catch(e){if(e instanceof dn)return;if("unwind"!==e)throw e&&"object"===E(e)&&e.stack&&h("exception thrown: ".concat([e,e.stack])),e}}function we(e,t){return setTimeout((function(){Ce(e)}),t)}me=u?function(){var e=process.hrtime();return 1e3*e[0]+e[1]/1e6}:function(){return performance.now()};var _e={mainLoop:{running:!1,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){_e.mainLoop.scheduler=null,_e.mainLoop.currentlyRunningMainloop++},resume:function(){_e.mainLoop.currentlyRunningMainloop++;var e=_e.mainLoop.timingMode,t=_e.mainLoop.timingValue,r=_e.mainLoop.func;_e.mainLoop.func=null,function(e,t,r,o){_(!_e.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."),_e.mainLoop.func=e,_e.mainLoop.arg=o;var i=_e.mainLoop.currentlyRunningMainloop;function a(){return!(i<_e.mainLoop.currentlyRunningMainloop)}_e.mainLoop.running=!1,_e.mainLoop.runner=function(){if(!w)if(_e.mainLoop.queue.length>0){var t=Date.now(),r=_e.mainLoop.queue.shift();if(r.func(r.arg),_e.mainLoop.remainingBlockers){var o=_e.mainLoop.remainingBlockers,i=o%1==0?o-1:Math.floor(o);r.counted?_e.mainLoop.remainingBlockers=i:(i+=.5,_e.mainLoop.remainingBlockers=(8*o+i)/9)}if(p('main loop blocker "'.concat(r.name,'" took ').concat(Date.now()-t," ms")),_e.mainLoop.updateStatus(),!a())return;setTimeout(_e.mainLoop.runner,0)}else a()&&(_e.mainLoop.currentFrameNumber=_e.mainLoop.currentFrameNumber+1|0,1==_e.mainLoop.timingMode&&_e.mainLoop.timingValue>1&&_e.mainLoop.currentFrameNumber%_e.mainLoop.timingValue!=0?_e.mainLoop.scheduler():(0==_e.mainLoop.timingMode&&(_e.mainLoop.tickStartTime=me()),Er.newRenderingFrameStarted(),void 0!==Er&&Er.currentContext&&!Er.currentContextIsProxied&&!Er.currentContext.attributes.explicitSwapControl&&Er.currentContext.GLctx.commit&&Er.currentContext.GLctx.commit(),"timeout"===_e.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!"),_e.mainLoop.method=""),_e.mainLoop.runIter(e),ee(),a()&&("object"===("undefined"==typeof SDL?"undefined":E(SDL))&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),_e.mainLoop.scheduler())))}}(r,0,0,_e.mainLoop.arg),function(e,t){if(_e.mainLoop.timingMode=e,_e.mainLoop.timingValue=t,!_e.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(_e.mainLoop.running||(_e.mainLoop.running=!0),0==e)_e.mainLoop.scheduler=function(){var e=0|Math.max(0,_e.mainLoop.tickStartTime+t-me());setTimeout(_e.mainLoop.runner,e)},_e.mainLoop.method="timeout";else if(1==e)_e.mainLoop.scheduler=function(){_e.requestAnimationFrame(_e.mainLoop.runner)},_e.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,"*")}}_e.mainLoop.scheduler=function(){setImmediate(_e.mainLoop.runner)},_e.mainLoop.method="immediate"}}(e,t),_e.mainLoop.scheduler()},updateStatus:function(){if(n.setStatus){var e=n.statusMessage||"Please wait...",t=_e.mainLoop.remainingBlockers,r=_e.mainLoop.expectedBlockers;t?t<r?n.setStatus("".concat(e," (").concat(r-t,"/").concat(r,")")):n.setStatus(e):n.setStatus("")}},runIter:function(e){if(!w){if(n.preMainLoop&&!1===n.preMainLoop())return;Ce(e),n.postMainLoop&&n.postMainLoop()}}},isFullscreen:!1,pointerLock:!1,moduleContextCreatedCallbacks:[],workers:[],init:function(){if(n.preloadPlugins||(n.preloadPlugins=[]),!_e.initted){_e.initted=!0;try{new Blob,_e.hasBlobConstructor=!0}catch(e){_e.hasBlobConstructor=!1,p("warning: no blob constructor, cannot create blobs with mimetypes")}_e.BlobBuilder="undefined"!=typeof MozBlobBuilder?MozBlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:_e.hasBlobConstructor?null:p("warning: no BlobBuilder"),_e.URLObject="undefined"!=typeof window?window.URL?window.URL:window.webkitURL:void 0,n.noImageDecoding||void 0!==_e.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(_e.hasBlobConstructor)try{(i=new Blob([e],{type:_e.getMimetype(t)})).size!==e.length&&(i=new Blob([new Uint8Array(e).buffer],{type:_e.getMimetype(t)}))}catch(e){I("Blob constructor present but fails: ".concat(e,"; falling back to blob builder"))}if(!i){var a=new _e.BlobBuilder;a.append(new Uint8Array(e).buffer),i=a.getBlob()}var s=_e.URLObject.createObjectURL(i);_("string"==typeof s,"createObjectURL must return a url as a string");var A=new Image;A.onload=function(){_(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,_e.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(!_e.hasBlobConstructor)return s();try{var A=new Blob([e],{type:_e.getMimetype(t)})}catch(e){return s()}var c=_e.URLObject.createObjectURL(A);_("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,we((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!==Er&&(a=Er.createContext(e,s))&&(i=Er.getContext(a).GLctx)}else i=e.getContext("2d");return i?(r&&(t||_(void 0===Hr,"cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),n.ctx=i,t&&Er.makeContextCurrent(a),n.useWebGL=t,_e.moduleContextCreatedCallbacks.forEach((function(e){e()})),_e.init()),i):null},destroyContext:function(e,t,r){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(e,t){_e.lockPointer=e,_e.resizeCanvas=t,void 0===_e.lockPointer&&(_e.lockPointer=!0),void 0===_e.resizeCanvas&&(_e.resizeCanvas=!1);var r=n.canvas;_e.fullscreenHandlersInstalled||(_e.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(){he("Module.requestFullScreen has been replaced by Module.requestFullscreen (without a capital S)")},exitFullscreen:function(){return!!_e.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===_e.nextRAF)_e.nextRAF=t+1e3/60;else for(;t+2>=_e.nextRAF;)_e.nextRAF+=1e3/60;var r=Math.max(_e.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,_e.fakeRequestAnimationFrame)(e):requestAnimationFrame(e)})),safeSetTimeout:function(e){return we(e)},safeRequestAnimationFrame:function(e){return _e.requestAnimationFrame((function(){Ce(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(_e.pointerLock)"mousemove"!=e.type&&"mozMovementX"in e?_e.mouseMovementX=_e.mouseMovementY=0:(_e.mouseMovementX=_e.getMovementX(e),_e.mouseMovementY=_e.getMovementY(e)),"undefined"!=typeof SDL?(_e.mouseX=SDL.mouseX+_e.mouseMovementX,_e.mouseY=SDL.mouseY+_e.mouseMovementY):(_e.mouseX+=_e.mouseMovementX,_e.mouseY+=_e.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(_(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)_e.lastTouches[s.identifier]=u,_e.touches[s.identifier]=u;else if("touchend"===e.type||"touchmove"===e.type){var g=_e.touches[s.identifier];g||(g=u),_e.lastTouches[s.identifier]=g,_e.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,_e.mouseMovementX=d-_e.mouseX,_e.mouseMovementY=l-_e.mouseY,_e.mouseX=d,_e.mouseY=l}},resizeListeners:[],updateResizeListeners:function(){var e=n.canvas;_e.resizeListeners.forEach((function(t){t(e.width,e.height)}))},setCanvasSize:function(e,t,r){var o=n.canvas;_e.updateCanvasDimensions(o,e,t),r||_e.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if("undefined"!=typeof SDL){var e=N[SDL.screen>>2];e|=8388608,x[SDL.screen>>2]=e}_e.updateCanvasDimensions(n.canvas),_e.updateResizeListeners()},setWindowedCanvasSize:function(){if("undefined"!=typeof SDL){var e=N[SDL.screen>>2];e&=-8388609,x[SDL.screen>>2]=e}_e.updateCanvasDimensions(n.canvas),_e.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)}_e.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 Be(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var r=t.func;"number"==typeof r?void 0===t.arg?Z.get(r)():Z.get(r)(t.arg):r(void 0===t.arg?null:t.arg)}else t(n)}}function ve(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 De(e){this.excPtr=e,this.ptr=e-16,this.set_type=function(e){x[this.ptr+4>>2]=e},this.get_type=function(){return x[this.ptr+4>>2]},this.set_destructor=function(e){x[this.ptr+8>>2]=e},this.get_destructor=function(){return x[this.ptr+8>>2]},this.set_refcount=function(e){x[this.ptr>>2]=e},this.set_caught=function(e){e=e?1:0,R[this.ptr+12|0]=e},this.get_caught=function(){return 0!=R[this.ptr+12|0]},this.set_rethrown=function(e){e=e?1:0,R[this.ptr+13|0]=e},this.get_rethrown=function(){return 0!=R[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=x[this.ptr>>2];x[this.ptr>>2]=e+1},this.release_ref=function(){var e=x[this.ptr>>2];return x[this.ptr>>2]=e-1,_(e>0),1===e}}function be(e){this.free=function(){Jr(this.ptr),this.ptr=0},this.set_base_ptr=function(e){x[this.ptr>>2]=e},this.get_base_ptr=function(){return x[this.ptr>>2]},this.set_adjusted_ptr=function(e){x[this.ptr+4>>2]=e},this.get_adjusted_ptr_addr=function(){return this.ptr+4},this.get_adjusted_ptr=function(){return x[this.ptr+4>>2]},this.get_exception_ptr=function(){if(un(this.get_exception_info().get_type()))return x[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 De(this.get_base_ptr())},void 0===e?(this.ptr=Kr(8),this.set_adjusted_ptr(0)):this.ptr=e}var Oe=[],Qe=0;function Te(e){try{return Jr(new De(e).ptr)}catch(e){h("exception during cxa_free_exception: ".concat(e))}}function Pe(e){return x[Zr()>>2]=e,e}var Me={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=Me.normalizeArray(e.split("/").filter((function(e){return!!e})),!t).join("/"))||t||(e="."),e&&r&&(e+="/"),(t?"/":"")+e},dirname:function(e){var t=Me.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=Me.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?e:e.substr(t+1)},extname:function(e){return Me.splitPath(e)[3]},join:function(){var e=Array.prototype.slice.call(arguments,0);return Me.normalize(e.join("/"))},join2:function(e,t){return Me.normalize("".concat(e,"/").concat(t))}};function Re(){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(){he("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 Se={resolve:function(){for(var e="",t=!1,r=arguments.length-1;r>=-1&&!t;r--){var n=r>=0?arguments[r]:Ue.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=Me.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=Se.resolve(e).substr(1),t=Se.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("/")}},Fe={ttys:[],init:function(){},shutdown:function(){},register:function(e,t){Fe.ttys[e]={input:[],output:[],ops:t},Ue.registerDevice(e,Fe.stream_ops)},stream_ops:{open:function(e){var t=Fe.ttys[e.node.rdev];if(!t)throw new Ue.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 Ue.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 Ue.ErrnoError(29)}if(void 0===s&&0===i)throw new Ue.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 Ue.ErrnoError(60);try{for(var i=0;i<n;i++)e.tty.ops.put_char(e.tty,t[r+i])}catch(e){throw new Ue.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=Vr(t,!0)}return e.input.shift()},put_char:function(e,t){null===t||10===t?(p(v(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(p(v(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,t){null===t||10===t?(h(v(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(h(v(e.output,0)),e.output=[])}}};function ke(e){e=function(e,t){return _(t,"alignment argument is required"),Math.ceil(e/t)*t}(e,65536);var t=gn(65536,e);return t?(function(e,t){S.fill(0,e,e+t)}(t,e),t):0}var xe={ops_table:null,mount:function(e){return xe.createNode(null,"/",16895,0)},createNode:function(e,t,r,n){if(Ue.isBlkdev(r)||Ue.isFIFO(r))throw new Ue.ErrnoError(63);xe.ops_table||(xe.ops_table={dir:{node:{getattr:xe.node_ops.getattr,setattr:xe.node_ops.setattr,lookup:xe.node_ops.lookup,mknod:xe.node_ops.mknod,rename:xe.node_ops.rename,unlink:xe.node_ops.unlink,rmdir:xe.node_ops.rmdir,readdir:xe.node_ops.readdir,symlink:xe.node_ops.symlink},stream:{llseek:xe.stream_ops.llseek}},file:{node:{getattr:xe.node_ops.getattr,setattr:xe.node_ops.setattr},stream:{llseek:xe.stream_ops.llseek,read:xe.stream_ops.read,write:xe.stream_ops.write,allocate:xe.stream_ops.allocate,mmap:xe.stream_ops.mmap,msync:xe.stream_ops.msync}},link:{node:{getattr:xe.node_ops.getattr,setattr:xe.node_ops.setattr,readlink:xe.node_ops.readlink},stream:{}},chrdev:{node:{getattr:xe.node_ops.getattr,setattr:xe.node_ops.setattr},stream:Ue.chrdev_stream_ops}});var o=Ue.createNode(e,t,r,n);return Ue.isDir(o.mode)?(o.node_ops=xe.ops_table.dir.node,o.stream_ops=xe.ops_table.dir.stream,o.contents={}):Ue.isFile(o.mode)?(o.node_ops=xe.ops_table.file.node,o.stream_ops=xe.ops_table.file.stream,o.usedBytes=0,o.contents=null):Ue.isLink(o.mode)?(o.node_ops=xe.ops_table.link.node,o.stream_ops=xe.ops_table.link.stream):Ue.isChrdev(o.mode)&&(o.node_ops=xe.ops_table.chrdev.node,o.stream_ops=xe.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=Ue.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,Ue.isDir(e.mode)?t.size=4096:Ue.isFile(e.mode)?t.size=e.usedBytes:Ue.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&&xe.resizeFileStorage(e,t.size)},lookup:function(e,t){throw Ue.genericErrors[44]},mknod:function(e,t,r,n){return xe.createNode(e,t,r,n)},rename:function(e,t,r){if(Ue.isDir(e.mode)){var n;try{n=Ue.lookupNode(t,r)}catch(e){}if(n)for(var o in n.contents)throw new Ue.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=Ue.lookupNode(e,t);for(var n in r.contents)throw new Ue.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=xe.createNode(e,t,41471,0);return n.link=r,n},readlink:function(e){if(!Ue.isLink(e.mode))throw new Ue.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(_(a>=0),a>8&&i.subarray)t.set(i.subarray(o,o+a),r);else for(var s=0;s<a;s++)t[r+s]=i[o+s];return a},write:function(e,t,r,n,o,i){if(_(!(t instanceof ArrayBuffer)),t.buffer===R.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 _(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(xe.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&&Ue.isFile(e.node.mode)&&(n+=e.node.usedBytes),n<0)throw new Ue.ErrnoError(28);return n},allocate:function(e,t,r){xe.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 Ue.ErrnoError(28);if(!Ue.isFile(e.node.mode))throw new Ue.ErrnoError(43);var a,s,A=e.node.contents;if(2&i||A.buffer!==M){if((n>0||n+r<A.length)&&(A=A.subarray?A.subarray(n,n+r):Array.prototype.slice.call(A,n,n+r)),s=!0,!(a=ke(r)))throw new Ue.ErrnoError(48);R.set(A,a)}else s=!1,a=A.byteOffset;return{ptr:a,allocated:s}},msync:function(e,t,r,n,o){if(!Ue.isFile(e.node.mode))throw new Ue.ErrnoError(43);return 2&o||xe.stream_ops.write(e,t,0,n,r,!1),0}}},Ne={0:"Success",1:"Arg list too long",2:"Permission denied",3:"Address already in use",4:"Address not available",5:"Address family not supported by protocol family",6:"No more processes",7:"Socket already connected",8:"Bad file number",9:"Trying to read unreadable message",10:"Mount device busy",11:"Operation canceled",12:"No children",13:"Connection aborted",14:"Connection refused",15:"Connection reset by peer",16:"File locking deadlock error",17:"Destination address required",18:"Math arg out of domain of func",19:"Quota exceeded",20:"File exists",21:"Bad address",22:"File too large",23:"Host is unreachable",24:"Identifier removed",25:"Illegal byte sequence",26:"Connection already in progress",27:"Interrupted system call",28:"Invalid argument",29:"I/O error",30:"Socket is already connected",31:"Is a directory",32:"Too many symbolic links",33:"Too many open files",34:"Too many links",35:"Message too long",36:"Multihop attempted",37:"File or path name too long",38:"Network interface is not configured",39:"Connection reset by network",40:"Network is unreachable",41:"Too many open files in system",42:"No buffer space available",43:"No such device",44:"No such file or directory",45:"Exec format error",46:"No record locks available",47:"The link has been severed",48:"Not enough core",49:"No message of desired type",50:"Protocol not available",51:"No space left on device",52:"Function not implemented",53:"Socket is not connected",54:"Not a directory",55:"Directory not empty",56:"State not recoverable",57:"Socket operation on non-socket",59:"Not a typewriter",60:"No such device or address",61:"Value too large for defined data type",62:"Previous owner died",63:"Not super-user",64:"Broken pipe",65:"Protocol error",66:"Unknown protocol",67:"Protocol wrong type for socket",68:"Math result not representable",69:"Read only file system",70:"Illegal seek",71:"No such process",72:"Stale file handle",73:"Connection timed out",74:"Text file busy",75:"Cross-device link",100:"Device not a stream",101:"Bad font file fmt",102:"Invalid slot",103:"Invalid request code",104:"No anode",105:"Block device required",106:"Channel number out of range",107:"Level 3 halted",108:"Level 3 reset",109:"Link number out of range",110:"Protocol driver not attached",111:"No CSI structure available",112:"Level 2 halted",113:"Invalid exchange",114:"Invalid request descriptor",115:"Exchange full",116:"No data (for no delay io)",117:"Timer expired",118:"Out of streams resources",119:"Machine is not on the network",120:"Package not installed",121:"The object is remote",122:"Advertise error",123:"Srmount error",124:"Communication error on send",125:"Cross mount point (not really error)",126:"Given log. name not unique",127:"f.d. invalid for this operation",128:"Remote address changed",129:"Can access a needed shared lib",130:"Accessing a corrupted shared lib",131:".lib section in a.out corrupted",132:"Attempting to link in too many libs",133:"Attempting to exec a shared library",135:"Streams pipe error",136:"Too many users",137:"Socket type not supported",138:"Not supported",139:"Protocol family not supported",140:"Can't send after socket shutdown",141:"Too many references",142:"Host is down",148:"No medium (in tape drive)",156:"Level 2 not synchronized"},je={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},Ue={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=Se.resolve(Ue.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 Ue.ErrnoError(32);for(var o=Me.normalizeArray(e.split("/").filter((function(e){return!!e})),!1),i=Ue.root,a="/",s=0;s<o.length;s++){var A=s===o.length-1;if(A&&t.parent)break;if(i=Ue.lookupNode(i,o[s]),a=Me.join2(a,o[s]),Ue.isMountpoint(i)&&(!A||A&&t.follow_mount)&&(i=i.mounted.root),!A||t.follow)for(var c=0;Ue.isLink(i.mode);){var u=Ue.readlink(a);if(a=Se.resolve(Me.dirname(a),u),i=Ue.lookupPath(a,{recurse_count:t.recurse_count}).node,c++>40)throw new Ue.ErrnoError(32)}}return{path:a,node:i}},getPath:function(e){for(var t;;){if(Ue.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)%Ue.nameTable.length},hashAddNode:function(e){var t=Ue.hashName(e.parent.id,e.name);e.name_next=Ue.nameTable[t],Ue.nameTable[t]=e},hashRemoveNode:function(e){var t=Ue.hashName(e.parent.id,e.name);if(Ue.nameTable[t]===e)Ue.nameTable[t]=e.name_next;else for(var r=Ue.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=Ue.mayLookup(e);if(r)throw new Ue.ErrnoError(r,e);for(var n=Ue.hashName(e.id,t),o=Ue.nameTable[n];o;o=o.name_next){var i=o.name;if(o.parent.id===e.id&&i===t)return o}return Ue.lookup(e,t)},createNode:function(e,t,r,n){_("object"===E(e));var o=new Ue.FSNode(e,t,r,n);return Ue.hashAddNode(o),o},destroyNode:function(e){Ue.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=Ue.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 Ue.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=Ue.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate:function(e,t){try{return Ue.lookupNode(e,t),20}catch(e){}return Ue.nodePermissions(e,"wx")},mayDelete:function(e,t,r){var n;try{n=Ue.lookupNode(e,t)}catch(e){return e.errno}var o=Ue.nodePermissions(e,"wx");if(o)return o;if(r){if(!Ue.isDir(n.mode))return 54;if(Ue.isRoot(n)||Ue.getPath(n)===Ue.cwd())return 10}else if(Ue.isDir(n.mode))return 31;return 0},mayOpen:function(e,t){return e?Ue.isLink(e.mode)?32:Ue.isDir(e.mode)&&("r"!==Ue.flagsToPermissionString(t)||512&t)?31:Ue.nodePermissions(e,Ue.flagsToPermissionString(t)):44},MAX_OPEN_FDS:4096,nextfd:function(e,t){e=e||0,t=t||Ue.MAX_OPEN_FDS;for(var r=e;r<=t;r++)if(!Ue.streams[r])return r;throw new Ue.ErrnoError(33)},getStream:function(e){return Ue.streams[e]},createStream:function(e,t,r){Ue.FSStream||(Ue.FSStream=function(){},Ue.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 Ue.FSStream;for(var o in e)n[o]=e[o];e=n;var i=Ue.nextfd(t,r);return e.fd=i,Ue.streams[i]=e,e},closeStream:function(e){Ue.streams[e]=null},chrdev_stream_ops:{open:function(e){var t=Ue.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:function(){throw new Ue.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){Ue.devices[e]={stream_ops:t}},getDevice:function(e){return Ue.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),Ue.syncFSRequests++,Ue.syncFSRequests>1&&h("warning: ".concat(Ue.syncFSRequests," FS.syncfs operations in flight at once, probably just doing extra work"));var r=Ue.getMounts(Ue.root.mount),n=0;function o(e){return _(Ue.syncFSRequests>0),Ue.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&&Ue.root)throw new Ue.ErrnoError(10);if(!o&&!i){var a=Ue.lookupPath(r,{follow_mount:!1});if(r=a.path,n=a.node,Ue.isMountpoint(n))throw new Ue.ErrnoError(10);if(!Ue.isDir(n.mode))throw new Ue.ErrnoError(54)}var s={type:e,opts:t,mountpoint:r,mounts:[]},A=e.mount(s);return A.mount=s,s.root=A,o?Ue.root=A:n&&(n.mounted=s,n.mount&&n.mount.mounts.push(s)),A},unmount:function(e){var t=Ue.lookupPath(e,{follow_mount:!1});if(!Ue.isMountpoint(t.node))throw new Ue.ErrnoError(28);var r=t.node,n=r.mounted,o=Ue.getMounts(n);Object.keys(Ue.nameTable).forEach((function(e){for(var t=Ue.nameTable[e];t;){var r=t.name_next;o.includes(t.mount)&&Ue.destroyNode(t),t=r}})),r.mounted=null;var i=r.mount.mounts.indexOf(n);_(-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=Ue.lookupPath(e,{parent:!0}).node,o=Me.basename(e);if(!o||"."===o||".."===o)throw new Ue.ErrnoError(28);var i=Ue.mayCreate(n,o);if(i)throw new Ue.ErrnoError(i);if(!n.node_ops.mknod)throw new Ue.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,Ue.mknod(e,t,0)},mkdir:function(e,t){return t=void 0!==t?t:511,t&=1023,t|=16384,Ue.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{Ue.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,Ue.mknod(e,t,r)},symlink:function(e,t){if(!Se.resolve(e))throw new Ue.ErrnoError(44);var r=Ue.lookupPath(t,{parent:!0}).node;if(!r)throw new Ue.ErrnoError(44);var n=Me.basename(t),o=Ue.mayCreate(r,n);if(o)throw new Ue.ErrnoError(o);if(!r.node_ops.symlink)throw new Ue.ErrnoError(63);return r.node_ops.symlink(r,n,e)},rename:function(e,t){var r,n,o=Me.dirname(e),i=Me.dirname(t),a=Me.basename(e),s=Me.basename(t);if(r=Ue.lookupPath(e,{parent:!0}).node,n=Ue.lookupPath(t,{parent:!0}).node,!r||!n)throw new Ue.ErrnoError(44);if(r.mount!==n.mount)throw new Ue.ErrnoError(75);var A,c=Ue.lookupNode(r,a),u=Se.relative(e,i);if("."!==u.charAt(0))throw new Ue.ErrnoError(28);if("."!==(u=Se.relative(t,o)).charAt(0))throw new Ue.ErrnoError(55);try{A=Ue.lookupNode(n,s)}catch(e){}if(c!==A){var g=Ue.isDir(c.mode),d=Ue.mayDelete(r,a,g);if(d)throw new Ue.ErrnoError(d);if(d=A?Ue.mayDelete(n,s,g):Ue.mayCreate(n,s))throw new Ue.ErrnoError(d);if(!r.node_ops.rename)throw new Ue.ErrnoError(63);if(Ue.isMountpoint(c)||A&&Ue.isMountpoint(A))throw new Ue.ErrnoError(10);if(n!==r&&(d=Ue.nodePermissions(r,"w")))throw new Ue.ErrnoError(d);try{Ue.trackingDelegate.willMovePath&&Ue.trackingDelegate.willMovePath(e,t)}catch(r){h("FS.trackingDelegate['willMovePath']('".concat(e,"', '").concat(t,"') threw an exception: ").concat(r.message))}Ue.hashRemoveNode(c);try{r.node_ops.rename(c,n,s)}catch(e){throw e}finally{Ue.hashAddNode(c)}try{Ue.trackingDelegate.onMovePath&&Ue.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=Ue.lookupPath(e,{parent:!0}).node,r=Me.basename(e),n=Ue.lookupNode(t,r),o=Ue.mayDelete(t,r,!0);if(o)throw new Ue.ErrnoError(o);if(!t.node_ops.rmdir)throw new Ue.ErrnoError(63);if(Ue.isMountpoint(n))throw new Ue.ErrnoError(10);try{Ue.trackingDelegate.willDeletePath&&Ue.trackingDelegate.willDeletePath(e)}catch(t){h("FS.trackingDelegate['willDeletePath']('".concat(e,"') threw an exception: ").concat(t.message))}t.node_ops.rmdir(t,r),Ue.destroyNode(n);try{Ue.trackingDelegate.onDeletePath&&Ue.trackingDelegate.onDeletePath(e)}catch(t){h("FS.trackingDelegate['onDeletePath']('".concat(e,"') threw an exception: ").concat(t.message))}},readdir:function(e){var t=Ue.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new Ue.ErrnoError(54);return t.node_ops.readdir(t)},unlink:function(e){var t=Ue.lookupPath(e,{parent:!0}).node,r=Me.basename(e),n=Ue.lookupNode(t,r),o=Ue.mayDelete(t,r,!1);if(o)throw new Ue.ErrnoError(o);if(!t.node_ops.unlink)throw new Ue.ErrnoError(63);if(Ue.isMountpoint(n))throw new Ue.ErrnoError(10);try{Ue.trackingDelegate.willDeletePath&&Ue.trackingDelegate.willDeletePath(e)}catch(t){h("FS.trackingDelegate['willDeletePath']('".concat(e,"') threw an exception: ").concat(t.message))}t.node_ops.unlink(t,r),Ue.destroyNode(n);try{Ue.trackingDelegate.onDeletePath&&Ue.trackingDelegate.onDeletePath(e)}catch(t){h("FS.trackingDelegate['onDeletePath']('".concat(e,"') threw an exception: ").concat(t.message))}},readlink:function(e){var t=Ue.lookupPath(e).node;if(!t)throw new Ue.ErrnoError(44);if(!t.node_ops.readlink)throw new Ue.ErrnoError(28);return Se.resolve(Ue.getPath(t.parent),t.node_ops.readlink(t))},stat:function(e,t){var r=Ue.lookupPath(e,{follow:!t}).node;if(!r)throw new Ue.ErrnoError(44);if(!r.node_ops.getattr)throw new Ue.ErrnoError(63);return r.node_ops.getattr(r)},lstat:function(e){return Ue.stat(e,!0)},chmod:function(e,t,r){var n;if(!(n="string"==typeof e?Ue.lookupPath(e,{follow:!r}).node:e).node_ops.setattr)throw new Ue.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&t|-4096&n.mode,timestamp:Date.now()})},lchmod:function(e,t){Ue.chmod(e,t,!0)},fchmod:function(e,t){var r=Ue.getStream(e);if(!r)throw new Ue.ErrnoError(8);Ue.chmod(r.node,t)},chown:function(e,t,r,n){var o;if(!(o="string"==typeof e?Ue.lookupPath(e,{follow:!n}).node:e).node_ops.setattr)throw new Ue.ErrnoError(63);o.node_ops.setattr(o,{timestamp:Date.now()})},lchown:function(e,t,r){Ue.chown(e,t,r,!0)},fchown:function(e,t,r){var n=Ue.getStream(e);if(!n)throw new Ue.ErrnoError(8);Ue.chown(n.node,t,r)},truncate:function(e,t){if(t<0)throw new Ue.ErrnoError(28);var r;if(!(r="string"==typeof e?Ue.lookupPath(e,{follow:!0}).node:e).node_ops.setattr)throw new Ue.ErrnoError(63);if(Ue.isDir(r.mode))throw new Ue.ErrnoError(31);if(!Ue.isFile(r.mode))throw new Ue.ErrnoError(28);var n=Ue.nodePermissions(r,"w");if(n)throw new Ue.ErrnoError(n);r.node_ops.setattr(r,{size:t,timestamp:Date.now()})},ftruncate:function(e,t){var r=Ue.getStream(e);if(!r)throw new Ue.ErrnoError(8);if(!(2097155&r.flags))throw new Ue.ErrnoError(28);Ue.truncate(r.node,t)},utime:function(e,t,r){var n=Ue.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 Ue.ErrnoError(44);var a;if(r=void 0===r?438:r,r=64&(t="string"==typeof t?Ue.modeStringToFlags(t):t)?4095&r|32768:0,"object"===E(e))a=e;else{e=Me.normalize(e);try{a=Ue.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var s=!1;if(64&t)if(a){if(128&t)throw new Ue.ErrnoError(20)}else a=Ue.mknod(e,r,0),s=!0;if(!a)throw new Ue.ErrnoError(44);if(Ue.isChrdev(a.mode)&&(t&=-513),65536&t&&!Ue.isDir(a.mode))throw new Ue.ErrnoError(54);if(!s){var A=Ue.mayOpen(a,t);if(A)throw new Ue.ErrnoError(A)}512&t&&Ue.truncate(a,0),t&=-131713;var c=Ue.createStream({node:a,path:Ue.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||(Ue.readFiles||(Ue.readFiles={}),e in Ue.readFiles||(Ue.readFiles[e]=1,h("FS.trackingDelegate error on read file: ".concat(e))));try{if(Ue.trackingDelegate.onOpenFile){var u=0;1!=(2097155&t)&&(u|=Ue.tracking.openFlags.READ),2097155&t&&(u|=Ue.tracking.openFlags.WRITE),Ue.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(Ue.isClosed(e))throw new Ue.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{Ue.closeStream(e.fd)}e.fd=null},isClosed:function(e){return null===e.fd},llseek:function(e,t,r){if(Ue.isClosed(e))throw new Ue.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new Ue.ErrnoError(70);if(0!=r&&1!=r&&2!=r)throw new Ue.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 Ue.ErrnoError(28);if(Ue.isClosed(e))throw new Ue.ErrnoError(8);if(1==(2097155&e.flags))throw new Ue.ErrnoError(8);if(Ue.isDir(e.node.mode))throw new Ue.ErrnoError(31);if(!e.stream_ops.read)throw new Ue.ErrnoError(28);var i=void 0!==o;if(i){if(!e.seekable)throw new Ue.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 Ue.ErrnoError(28);if(Ue.isClosed(e))throw new Ue.ErrnoError(8);if(!(2097155&e.flags))throw new Ue.ErrnoError(8);if(Ue.isDir(e.node.mode))throw new Ue.ErrnoError(31);if(!e.stream_ops.write)throw new Ue.ErrnoError(28);e.seekable&&1024&e.flags&&Ue.llseek(e,0,2);var a=void 0!==o;if(a){if(!e.seekable)throw new Ue.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&&Ue.trackingDelegate.onWriteToFile&&Ue.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(Ue.isClosed(e))throw new Ue.ErrnoError(8);if(t<0||r<=0)throw new Ue.ErrnoError(28);if(!(2097155&e.flags))throw new Ue.ErrnoError(8);if(!Ue.isFile(e.node.mode)&&!Ue.isDir(e.node.mode))throw new Ue.ErrnoError(43);if(!e.stream_ops.allocate)throw new Ue.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 Ue.ErrnoError(2);if(1==(2097155&e.flags))throw new Ue.ErrnoError(2);if(!e.stream_ops.mmap)throw new Ue.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 Ue.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=Ue.open(e,t.flags),o=Ue.stat(e).size,i=new Uint8Array(o);return Ue.read(n,i,0,o,0),"utf8"===t.encoding?r=v(i,0):"binary"===t.encoding&&(r=i),Ue.close(n),r},writeFile:function(e,t,r){(r=r||{}).flags=r.flags||577;var n=Ue.open(e,r.flags,r.mode);if("string"==typeof t){var o=new Uint8Array(T(t)+1),i=O(t,o,0,o.length);Ue.write(n,o,0,i,void 0,r.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");Ue.write(n,t,0,t.byteLength,void 0,r.canOwn)}Ue.close(n)},cwd:function(){return Ue.currentPath},chdir:function(e){var t=Ue.lookupPath(e,{follow:!0});if(null===t.node)throw new Ue.ErrnoError(44);if(!Ue.isDir(t.node.mode))throw new Ue.ErrnoError(54);var r=Ue.nodePermissions(t.node,"x");if(r)throw new Ue.ErrnoError(r);Ue.currentPath=t.path},createDefaultDirectories:function(){Ue.mkdir("/tmp"),Ue.mkdir("/home"),Ue.mkdir("/home/web_user")},createDefaultDevices:function(){Ue.mkdir("/dev"),Ue.registerDevice(Ue.makedev(1,3),{read:function(){return 0},write:function(e,t,r,n,o){return n}}),Ue.mkdev("/dev/null",Ue.makedev(1,3)),Fe.register(Ue.makedev(5,0),Fe.default_tty_ops),Fe.register(Ue.makedev(6,0),Fe.default_tty1_ops),Ue.mkdev("/dev/tty",Ue.makedev(5,0)),Ue.mkdev("/dev/tty1",Ue.makedev(6,0));var e=Re();Ue.createDevice("/dev","random",e),Ue.createDevice("/dev","urandom",e),Ue.mkdir("/dev/shm"),Ue.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){Ue.mkdir("/proc");var e=Ue.mkdir("/proc/self");Ue.mkdir("/proc/self/fd"),Ue.mount({mount:function(){var t=Ue.createNode(e,"fd",16895,73);return t.node_ops={lookup:function(e,t){var r=+t,n=Ue.getStream(r);if(!n)throw new Ue.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?Ue.createDevice("/dev","stdin",n.stdin):Ue.symlink("/dev/tty","/dev/stdin"),n.stdout?Ue.createDevice("/dev","stdout",null,n.stdout):Ue.symlink("/dev/tty","/dev/stdout"),n.stderr?Ue.createDevice("/dev","stderr",null,n.stderr):Ue.symlink("/dev/tty1","/dev/stderr");var e=Ue.open("/dev/stdin",0),t=Ue.open("/dev/stdout",1),r=Ue.open("/dev/stderr",1);_(0===e.fd,"invalid handle for stdin (".concat(e.fd,")")),_(1===t.fd,"invalid handle for stdout (".concat(t.fd,")")),_(2===r.fd,"invalid handle for stderr (".concat(r.fd,")"))},ensureErrnoError:function(){Ue.ErrnoError||(Ue.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){for(var t in this.errno=e,je)if(je[t]===e){this.code=t;break}},this.setErrno(e),this.message=Ne[e],this.stack&&(Object.defineProperty(this,"stack",{value:(new Error).stack,writable:!0}),this.stack=ve(this.stack))},Ue.ErrnoError.prototype=new Error,Ue.ErrnoError.prototype.constructor=Ue.ErrnoError,[44].forEach((function(e){Ue.genericErrors[e]=new Ue.ErrnoError(e),Ue.genericErrors[e].stack="<generic error, no stack>"})))},staticInit:function(){Ue.ensureErrnoError(),Ue.nameTable=new Array(4096),Ue.mount(xe,{},"/"),Ue.createDefaultDirectories(),Ue.createDefaultDevices(),Ue.createSpecialDirectories(),Ue.filesystems={MEMFS:xe}},init:function(e,t,r){_(!Ue.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)"),Ue.init.initialized=!0,Ue.ensureErrnoError(),n.stdin=e||n.stdin,n.stdout=t||n.stdout,n.stderr=r||n.stderr,Ue.createStandardStreams()},quit:function(){Ue.init.initialized=!1;var e=n._fflush;e&&e(0);for(var t=0;t<Ue.streams.length;t++){var r=Ue.streams[t];r&&Ue.close(r)}},getMode:function(e,t){var r=0;return e&&(r|=365),t&&(r|=146),r},findObject:function(e,t){var r=Ue.analyzePath(e,t);return r.exists?r.object:null},analyzePath:function(e,t){try{e=(n=Ue.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=Ue.lookupPath(e,{parent:!0});r.parentExists=!0,r.parentPath=n.path,r.parentObject=n.node,r.name=Me.basename(e),n=Ue.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:Ue.getPath(e);for(var o=t.split("/").reverse();o.length;){var i=o.pop();if(i){var a=Me.join2(e,i);try{Ue.mkdir(a)}catch(e){}e=a}}return a},createFile:function(e,t,r,n,o){var i=Me.join2("string"==typeof e?e:Ue.getPath(e),t),a=Ue.getMode(n,o);return Ue.create(i,a)},createDataFile:function(e,t,r,n,o,i){var a=t?Me.join2("string"==typeof e?e:Ue.getPath(e),t):e,s=Ue.getMode(n,o),A=Ue.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}Ue.chmod(A,146|s);var d=Ue.open(A,577);Ue.write(d,r,0,r.length,0,i),Ue.close(d),Ue.chmod(A,s)}return A},createDevice:function(e,t,r,n){var o=Me.join2("string"==typeof e?e:Ue.getPath(e),t),i=Ue.getMode(!!r,!!n);Ue.createDevice.major||(Ue.createDevice.major=64);var a=Ue.makedev(Ue.createDevice.major++,0);return Ue.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 Ue.ErrnoError(29)}if(void 0===A&&0===a)throw new Ue.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 Ue.ErrnoError(29)}return o&&(e.node.timestamp=Date.now()),a}}),Ue.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=Vr(d(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new Ue.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||[]):Vr(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=Ue.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 Ue.forceLoadFile(A),t.apply(null,arguments)}})),u.read=function(e,t,r,n,o){Ue.forceLoadFile(A);var i=e.node.contents;if(o>=i.length)return 0;var a=Math.min(i.length-o,n);if(_(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){_e.init();var g=t?Se.resolve(Me.join2(e,t)):e,d=fe("cp ".concat(g));function f(r){function l(r){u&&u(),A||Ue.createDataFile(e,t,r,o,i,c),a&&a(),pe(d)}var f=!1;n.preloadPlugins.forEach((function(e){f||e.canHandle(g)&&(e.handle(r,g,l,(function(){s&&s(),pe(d)})),f=!0)})),f||l(r)}Ee(d),"string"==typeof r?function(e,t,r){var n=fe("al ".concat(e));l(e,(function(r){_(r,'Loading data file "'.concat(e,'" failed (no arrayBuffer).')),t(new Uint8Array(r)),n&&pe(n)}),(function(t){if(!r)throw'Loading data file "'.concat(e,'" failed.');r()})),n&&Ee(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=Ue.indexedDB();try{var o=n.open(Ue.DB_NAME(),Ue.DB_VERSION)}catch(e){return r(e)}o.onupgradeneeded=function(){p("creating db"),o.result.createObjectStore(Ue.DB_STORE_NAME)},o.onsuccess=function(){var n=o.result.transaction([Ue.DB_STORE_NAME],"readwrite"),i=n.objectStore(Ue.DB_STORE_NAME),a=0,s=0,A=e.length;function c(){0==s?t():r()}e.forEach((function(e){var t=i.put(Ue.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=Ue.indexedDB();try{var o=n.open(Ue.DB_NAME(),Ue.DB_VERSION)}catch(e){return r(e)}o.onupgradeneeded=r,o.onsuccess=function(){var n=o.result;try{var i=n.transaction([Ue.DB_STORE_NAME],"readonly")}catch(e){return void r(e)}var a=i.objectStore(Ue.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(){Ue.analyzePath(e).exists&&Ue.unlink(e),Ue.createDataFile(Me.dirname(e),Me.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(){he("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder:function(){he("FS.createFolder has been removed; use FS.mkdir instead")},createLink:function(){he("FS.createLink has been removed; use FS.symlink instead")},joinPath:function(){he("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc:function(){he("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath:function(){he("FS.standardizePath has been removed; use PATH.normalize instead")}},Le={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt:function(e,t,r){if("/"===t[0])return t;var n;if(-100===e)n=Ue.cwd();else{var o=Ue.getStream(e);if(!o)throw new Ue.ErrnoError(8);n=o.path}if(0==t.length){if(!r)throw new Ue.ErrnoError(44);return n}return Me.join2(n,t)},doStat:function(e,t,r){try{var n=e(t)}catch(e){if(e&&e.node&&Me.normalize(t)!==Me.normalize(Ue.getPath(e.node)))return-54;throw e}return x[r>>2]=n.dev,x[r+4>>2]=0,x[r+8>>2]=n.ino,x[r+12>>2]=n.mode,x[r+16>>2]=n.nlink,x[r+20>>2]=n.uid,x[r+24>>2]=n.gid,x[r+28>>2]=n.rdev,x[r+32>>2]=0,ce=[n.size>>>0,(Ae=n.size,+Math.abs(Ae)>=1?Ae>0?(0|Math.min(+Math.floor(Ae/4294967296),4294967295))>>>0:~~+Math.ceil((Ae-+(~~Ae>>>0))/4294967296)>>>0:0)],x[r+40>>2]=ce[0],x[r+44>>2]=ce[1],x[r+48>>2]=4096,x[r+52>>2]=n.blocks,x[r+56>>2]=n.atime.getTime()/1e3|0,x[r+60>>2]=0,x[r+64>>2]=n.mtime.getTime()/1e3|0,x[r+68>>2]=0,x[r+72>>2]=n.ctime.getTime()/1e3|0,x[r+76>>2]=0,ce=[n.ino>>>0,(Ae=n.ino,+Math.abs(Ae)>=1?Ae>0?(0|Math.min(+Math.floor(Ae/4294967296),4294967295))>>>0:~~+Math.ceil((Ae-+(~~Ae>>>0))/4294967296)>>>0:0)],x[r+80>>2]=ce[0],x[r+84>>2]=ce[1],0},doMsync:function(e,t,r,n,o){var i=S.slice(e,e+r);Ue.msync(t,i,o,r,n)},doMkdir:function(e,t){return"/"===(e=Me.normalize(e))[e.length-1]&&(e=e.substr(0,e.length-1)),Ue.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 Ue.mknod(e,t,r),0},doReadlink:function(e,t,r){if(r<=0)return-28;var n=Ue.readlink(e),o=Math.min(r,T(n)),i=R[t+o];return Q(n,t,r+1),R[t+o]=i,o},doAccess:function(e,t){if(-8&t)return-28;var r;if(!(r=Ue.lookupPath(e,{follow:!0}).node))return-44;var n="";return 4&t&&(n+="r"),2&t&&(n+="w"),1&t&&(n+="x"),n&&Ue.nodePermissions(r,n)?-2:0},doDup:function(e,t,r){var n=Ue.getStream(r);return n&&Ue.close(n),Ue.open(e,t,0,r,r).fd},doReadv:function(e,t,r,n){for(var o=0,i=0;i<r;i++){var a=x[t+8*i>>2],s=x[t+(8*i+4)>>2],A=Ue.read(e,R,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=x[t+8*i>>2],s=x[t+(8*i+4)>>2],A=Ue.write(e,R,a,s,n);if(A<0)return-1;o+=A}return o},varargs:void 0,get:function(){return _(null!=Le.varargs),Le.varargs+=4,x[Le.varargs-4>>2]},getStr:function(e){return b(e)},getStreamFromFD:function(e){var t=Ue.getStream(e);if(!t)throw new Ue.ErrnoError(8);return t},get64:function(e,t){return _(e>=0?0===t:-1===t),e}};function He(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}function Ge(e,t){return e=He(e),new Function("body","return function ".concat(e,'() {\n "use strict"; return body.apply(this, arguments);\n};\n'))(t)}var Ye=[],Xe=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function We(){for(var e=0,t=5;t<Xe.length;++t)void 0!==Xe[t]&&++e;return e}function Ve(){for(var e=5;e<Xe.length;++e)if(void 0!==Xe[e])return Xe[e];return null}function ze(e){switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var t=Ye.length?Ye.pop():Xe.length;return Xe[t]={refcount:1,value:e},t}}function Je(e,t){var r=Ge(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 Ke=void 0,Ze=void 0;function qe(e){for(var t="",r=e;S[r];)t+=Ze[S[r++]];return t}function $e(){return Object.keys(it).length}function et(){var e=[];for(var t in it)it.hasOwnProperty(t)&&e.push(it[t]);return e}var tt=[];function rt(){for(;tt.length;){var e=tt.pop();e.$$.deleteScheduled=!1,e.delete()}}var nt=void 0;function ot(e){nt=e,tt.length&&nt&&nt(rt)}var it={},at=void 0;function st(e){throw new at(e)}function At(e,t){for(void 0===t&&st("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t}function ct(e){return e||st("Cannot use deleted val. handle = ".concat(e)),Xe[e].value}var ut={};function gt(e){var t=qr(e),r=qe(t);return Jr(t),r}function dt(e,t){var r=ut[e];return void 0===r&&st("".concat(t," has unknown type ").concat(gt(e))),r}function lt(e){}var ft=!1;function Et(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):(ft=new FinalizationGroup((function(e){for(var t=e.next();!t.done;t=e.next()){var r=t.value;r.ptr?Et(r):console.warn("object already deleted: ".concat(r.ptr))}})),lt=function(e){ft.unregister(e.$$)},(pt=function(e){return ft.register(e,e.$$,e.$$),e})(e))}var ht={};function It(e){for(;e.length;){var t=e.pop();e.pop()(t)}}function mt(e){return this.fromWireType(N[e>>2])}var yt={},Ct={},wt=void 0;function _t(e){throw new wt(e)}function Bt(e,t,r){function n(t){var n=r(t);n.length!==e.length&&_t("Mismatched type converter count");for(var o=0;o<e.length;++o)Dt(e[o],n[o])}e.forEach((function(e){Ct[e]=t}));var o=new Array(t.length),i=[],a=0;t.forEach((function(e,t){ut.hasOwnProperty(e)?o[t]=ut[e]:(i.push(e),yt.hasOwnProperty(e)||(yt[e]=[]),yt[e].push((function(){o[t]=ut[e],++a===i.length&&n(o)})))})),0===i.length&&n(o)}function vt(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 Dt(e,t,r){if(r=r||{},!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");var n=t.name;if(e||st('type "'.concat(n,'" must have a positive integer typeid pointer')),ut.hasOwnProperty(e)){if(r.ignoreDuplicateRegistrations)return;st("Cannot register type '".concat(n,"' twice"))}if(ut[e]=t,delete Ct[e],yt.hasOwnProperty(e)){var o=yt[e];delete yt[e],o.forEach((function(e){e()}))}}function bt(e){if(!(this instanceof Rt))return!1;if(!(e instanceof Rt))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 Ot(e){st("".concat(e.$$.ptrType.registeredClass.name," instance already deleted"))}function Qt(){if(this.$$.ptr||Ot(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 Tt(){this.$$.ptr||Ot(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&st("Object already scheduled for deletion"),lt(this),Et(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Pt(){return!this.$$.ptr}function Mt(){return this.$$.ptr||Ot(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&st("Object already scheduled for deletion"),tt.push(this),1===tt.length&&nt&&nt(rt),this.$$.deleteScheduled=!0,this}function Rt(){}var St={};function Ft(e,t,r){if(void 0===e[t].overloadTable){var n=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||st("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 kt(e,t,r){n.hasOwnProperty(e)?((void 0===r||void 0!==n[e].overloadTable&&void 0!==n[e].overloadTable[r])&&st("Cannot register public name '".concat(e,"' twice")),Ft(n,e,e),n.hasOwnProperty(r)&&st("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 xt(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 Nt(e,t,r){for(;t!==r;)t.upcast||st("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 jt(e,t){if(null===t)return this.isReference&&st("null is not a valid ".concat(this.name)),0;t.$$||st('Cannot pass "'.concat(ir(t),'" as a ').concat(this.name)),t.$$.ptr||st("Cannot pass deleted object as a pointer of type ".concat(this.name));var r=t.$$.ptrType.registeredClass;return Nt(t.$$.ptr,r,this.registeredClass)}function Ut(e,t){var r;if(null===t)return this.isReference&&st("null is not a valid ".concat(this.name)),this.isSmartPointer?(r=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,r),r):0;t.$$||st('Cannot pass "'.concat(ir(t),'" as a ').concat(this.name)),t.$$.ptr||st("Cannot pass deleted object as a pointer of type ".concat(this.name)),!this.isConst&&t.$$.ptrType.isConst&&st("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=Nt(t.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===t.$$.smartPtr&&st("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?r=t.$$.smartPtr:st("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,ze((function(){o.delete()}))),null!==e&&e.push(this.rawDestructor,r)}break;default:st("Unsupporting sharing policy")}return r}function Lt(e,t){if(null===t)return this.isReference&&st("null is not a valid ".concat(this.name)),0;t.$$||st('Cannot pass "'.concat(ir(t),'" as a ').concat(this.name)),t.$$.ptr||st("Cannot pass deleted object as a pointer of type ".concat(this.name)),t.$$.ptrType.isConst&&st("Cannot convert argument of type ".concat(t.$$.ptrType.name," to parameter type ").concat(this.name));var r=t.$$.ptrType.registeredClass;return Nt(t.$$.ptr,r,this.registeredClass)}function Ht(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e}function Gt(e){this.rawDestructor&&this.rawDestructor(e)}function Yt(e){null!==e&&e.delete()}function Xt(e,t,r){if(t===r)return e;if(void 0===r.baseClass)return null;var n=Xt(e,t,r.baseClass);return null===n?null:r.downcast(n)}function Wt(e,t){return t.ptrType&&t.ptr||_t("makeClassHandle requires ptr and ptrType"),!!t.smartPtrType!=!!t.smartPtr&&_t("Both smartPtrType and smartPtr must be specified"),t.count={value:1},pt(Object.create(e,{$$:{value:t}}))}function Vt(e){var t=this.getPointee(e);if(!t)return this.destructor(e),null;var r=function(e,t){return t=At(e,t),it[t]}(this.registeredClass,t);if(void 0!==r){if(0===r.$$.count.value)return r.$$.ptr=t,r.$$.smartPtr=e,r.clone();var n=r.clone();return this.destructor(e),n}function o(){return this.isSmartPointer?Wt(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):Wt(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var i,a=this.registeredClass.getActualType(t),s=St[a];if(!s)return o.call(this);i=this.isConst?s.constPointerType:s.pointerType;var A=Xt(t,this.registeredClass,i.registeredClass);return null===A?o.call(this):this.isSmartPointer?Wt(i.registeredClass.instancePrototype,{ptrType:i,ptr:A,smartPtrType:this,smartPtr:e}):Wt(i.registeredClass.instancePrototype,{ptrType:i,ptr:A})}function zt(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=Ut:n?(this.toWireType=jt,this.destructorFunction=null):(this.toWireType=Lt,this.destructorFunction=null)}function Jt(e,t,r){n.hasOwnProperty(e)||_t("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 Kt(e,t,r){return e.includes("j")?function(e,t,r){_("dynCall_".concat(e)in n,"bad function pointer type - no table for sig '".concat(e,"'")),r&&r.length?_(r.length===e.substring(1).replace(/j/g,"--").length):_(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):(_(Z.get(t),"missing table entry in dynCall: ".concat(t)),Z.get(t).apply(null,r))}function Zt(e,t){var r=(e=qe(e)).includes("j")?function(e,t){_(e.includes("j"),"getDynCaller should only be called with i64 sigs");var r=[];return function(){r.length=arguments.length;for(var n=0;n<arguments.length;n++)r[n]=arguments[n];return Kt(e,t,r)}}(e,t):Z.get(t);return"function"!=typeof r&&st("unknown function pointer with signature ".concat(e,": ").concat(t)),r}var qt=void 0;function $t(e,t){var r=[],n={};throw t.forEach((function e(t){n[t]||ut[t]||(Ct[t]?Ct[t].forEach(e):(r.push(t),n[t]=!0))})),new qt("".concat(e,": ").concat(r.map(gt).join([", "])))}function er(e,t){if(!(e instanceof Function))throw new TypeError("new_ called with constructor type ".concat(E(e)," which is not a function"));var r=Ge(e.name||"unknownFunctionName",(function(){}));r.prototype=e.prototype;var n=new r,o=e.apply(n,t);return o instanceof Object?o:n}function tr(e,t,r,n,o){var i=t.length;i<2&&st("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(He(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=[st,n,o,It,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),er(Function,f).apply(null,E)}function rr(e,t){for(var r=[],n=0;n<e;n++)r.push(x[(t>>2)+n]);return r}function nr(e,t,r){return e instanceof Object||st("".concat(r,' with invalid "this": ').concat(e)),e instanceof t.registeredClass.constructor||st("".concat(r,' incompatible with "this" of type ').concat(e.constructor.name)),e.$$.ptr||st("cannot call emscripten binding method ".concat(r," on deleted object")),Nt(e.$$.ptr,e.$$.ptrType.registeredClass,t.registeredClass)}function or(e){e>4&&0==--Xe[e].refcount&&(Xe[e]=void 0,Ye.push(e))}function ir(e){if(null===e)return"null";var t=E(e);return"object"===t||"array"===t||"function"===t?e.toString():"".concat(e)}function ar(e,t){switch(t){case 2:return function(e){return this.fromWireType(j[e>>2])};case 3:return function(e){return this.fromWireType(U[e>>3])};default:throw new TypeError("Unknown float type: ".concat(e))}}function sr(e,t,r){switch(t){case 0:return r?function(e){return R[e]}:function(e){return S[e]};case 1:return r?function(e){return F[e>>1]}:function(e){return k[e>>1]};case 2:return r?function(e){return x[e>>2]}:function(e){return N[e>>2]};default:throw new TypeError("Unknown integer type: ".concat(e))}}var Ar={},cr=[],ur=[];function gr(e){try{return m.grow(e-M.byteLength+65535>>>16),J(m.buffer),1}catch(t){h("emscripten_realloc_buffer: Attempted to grow heap from ".concat(M.byteLength," bytes to ").concat(e," bytes, but got error: ").concat(t))}}function dr(e){he("Cannot use emscripten_generate_pc (needed by __builtin_return_address) without -s USE_OFFSET_CONVERTER")}var lr={};function fr(e){e.forEach((function(e){var t=dr();t&&(lr[t]=e)}))}var Er={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){Er.lastError||(Er.lastError=e)},getNewId:function(e){for(var t=Er.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=Er.log2ceilLookup(Er.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=Er.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=Hr.createBuffer(),t.GLctx.bindBuffer(34963,t.tempQuadIndexBuffer);for(var A=Er.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=Er.log2ceilLookup(e),r=Er.currentContext.tempVertexBuffers1[t],n=Er.currentContext.tempVertexBufferCounters1[t];Er.currentContext.tempVertexBufferCounters1[t]=Er.currentContext.tempVertexBufferCounters1[t]+1&Er.numTempVertexBuffersPerSize-1;var o=r[n];if(o)return o;var i=Hr.getParameter(34964);return r[n]=Hr.createBuffer(),Hr.bindBuffer(34962,r[n]),Hr.bufferData(34962,1<<t,35048),Hr.bindBuffer(34962,i),r[n]},getTempIndexBuffer:function(e){var t=Er.log2ceilLookup(e),r=Er.currentContext.tempIndexBuffers[t];if(r)return r;var n=Hr.getParameter(34965);return Er.currentContext.tempIndexBuffers[t]=Hr.createBuffer(),Hr.bindBuffer(34963,Er.currentContext.tempIndexBuffers[t]),Hr.bufferData(34963,1<<t,35048),Hr.bindBuffer(34963,n),Er.currentContext.tempIndexBuffers[t]},newRenderingFrameStarted:function(){if(Er.currentContext){var e=Er.currentContext.tempVertexBuffers1;Er.currentContext.tempVertexBuffers1=Er.currentContext.tempVertexBuffers2,Er.currentContext.tempVertexBuffers2=e,e=Er.currentContext.tempVertexBufferCounters1,Er.currentContext.tempVertexBufferCounters1=Er.currentContext.tempVertexBufferCounters2,Er.currentContext.tempVertexBufferCounters2=e;for(var t=Er.log2ceilLookup(Er.MAX_TEMP_BUFFER_SIZE),r=0;r<=t;++r)Er.currentContext.tempVertexBufferCounters1[r]=0}},getSource:function(e,t,r,n){for(var o="",i=0;i<t;++i){var a=n?x[n+4*i>>2]:-1;o+=b(x[r+4*i>>2],a<0?void 0:a)}return o},calcBufLength:function(e,t,r,n){return r>0?n*r:e*Er.byteSizeByType[t-Er.byteSizeByTypeRoot]*n},usedTempBuffers:[],preDrawHandleClientVertexAttribBindings:function(e){Er.resetBufferBinding=!1;for(var t=0;t<Er.currentContext.maxVertexAttribs;++t){var r=Er.currentContext.clientBuffers[t];if(r.clientside&&r.enabled){Er.resetBufferBinding=!0;var n=Er.calcBufLength(r.size,r.type,r.stride,e),o=Er.getTempVertexBuffer(n);Hr.bindBuffer(34962,o),Hr.bufferSubData(34962,0,S.subarray(r.ptr,r.ptr+n)),r.vertexAttribPointerAdaptor.call(Hr,t,r.size,r.type,r.normalized,r.stride,0)}}},postDrawHandleClientVertexAttribBindings:function(){Er.resetBufferBinding&&Hr.bindBuffer(34962,Er.buffers[Hr.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?Er.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(),Er.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=Er.getNewId(Er.contexts),n={handle:r,attributes:t,version:t.majorVersion,GLctx:e};e.canvas&&(e.canvas.GLctxObject=n),Er.contexts[r]=n,(void 0===t.enableExtensionsByDefault||t.enableExtensionsByDefault)&&Er.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 Er.generateTempBuffers(!1,n),t.renderViaOffscreenBackBuffer&&Er.createOffscreenFramebuffer(n),r},makeContextCurrent:function(e){return Er.currentContext=Er.contexts[e],n.ctx=Hr=Er.currentContext&&Er.currentContext.GLctx,!(e&&!Hr)},getContext:function(e){return Er.contexts[e]},deleteContext:function(e){Er.currentContext===Er.contexts[e]&&(Er.currentContext=null),"object"===E(pr)&&pr.removeAllHandlersOnTarget(Er.contexts[e].GLctx.canvas),Er.contexts[e]&&Er.contexts[e].GLctx.canvas&&(Er.contexts[e].GLctx.canvas.GLctxObject=void 0),Er.contexts[e]=null},initExtensions:function(e){if(e||(e=Er.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)}))}}},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||(ne.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}},hr=["default","low-power","high-performance"],Ir=[0,"undefined"!=typeof document?document:0,"undefined"!=typeof window?window:0];function mr(e){return"number"==typeof e&&(e=b(e)),e&&"#canvas"!==e?void 0!==Er&&Er.offscreenCanvases[e]?Er.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=Ir[e]||b(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!==Er&&Er.offscreenCanvases.canvas?Er.offscreenCanvases.canvas:n.canvas}function yr(){return Er.currentContext?Er.currentContext.handle:0}function Cr(e){return Er.makeContextCurrent(e)?0:-5}n._emscripten_webgl_get_current_context=yr,n._emscripten_webgl_make_context_current=Cr;var wr={};function _r(){if(!_r.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 wr)void 0===wr[t]?delete e[t]:e[t]=wr[t];var r=[];for(var t in e)r.push("".concat(t,"=").concat(e[t]));_r.strings=r}return _r.strings}var Br=[];function vr(e,t,r,n){for(var o=0;o<e;o++){var i=Hr[r](),a=i&&Er.getNewId(n);i?(i.name=a,n[a]=i):Er.recordError(1282),x[t+4*o>>2]=a}}function Dr(e,t){N[e>>2]=t,N[e+4>>2]=(t-N[e>>2])/4294967296;var r=t>=0?function(e){return N[e>>2]+4294967296*N[e+4>>2]}(e):function(e){return N[e>>2]+4294967296*x[e+4>>2]}(e);r!=t&&I("writeI53ToI64() out of range: serialized JS Number ".concat(t," to Wasm heap as bytes lo=0x").concat(N[e>>2].toString(16),", hi=0x").concat(N[e+4>>2].toString(16),", which deserializes back to ").concat(r," instead!"))}function br(e){var t=T(e)+1,r=Kr(t);return Q(e,r,t),r}function Or(e){return"]"==e.slice(-1)&&e.lastIndexOf("[")}function Qr(e){return 0==(e-=5120)?R:1==e?S:2==e?F:4==e?x:6==e?j:5==e||28922==e||28520==e||30779==e||30782==e?N:k}function Tr(e){return 31-Math.clz32(e.BYTES_PER_ELEMENT)}function Pr(e,t,r,n,o,i){var a=Qr(e),s=Tr(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,Er.unpackAlignment);return a.subarray(o>>s,o+u>>s)}function Mr(e){var t=Hr.currentProgram;if(t){var r=t.uniformLocsById[e];return"number"==typeof r&&(t.uniformLocsById[e]=r=Hr.getUniformLocation(t,t.uniformArrayNamesById[e]+(r>0?"[".concat(r,"]"):""))),r}Er.recordError(1282)}var Rr=[],Sr=[];function Fr(){if(!Fr.called){Fr.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);x[rn()>>2]=60*i,x[tn()>>2]=Number(n!=o);var a=u(t),s=u(r),A=z(a),c=z(s);o<n?(x[en()>>2]=A,x[en()+4>>2]=c):(x[en()>>2]=c,x[en()+4>>2]=A)}function u(e){var t=e.toTimeString().match(/\(([A-Za-z ]+)\)$/);return t?t[1]:"GMT"}}function kr(e){return e%4==0&&(e%100!=0||e%400==0)}function xr(e,t){for(var r=0,n=0;n<=t;r+=e[n++]);return r}var Nr=[31,29,31,30,31,30,31,31,30,31,30,31],jr=[31,28,31,30,31,30,31,31,30,31,30,31];function Ur(e,t){for(var r=new Date(e.getTime());t>0;){var n=kr(r.getFullYear()),o=r.getMonth(),i=(n?Nr:jr)[o];if(!(t>i-r.getDate()))return r.setDate(r.getDate()+t),r;t-=i-r.getDate()+1,r.setDate(1),o<11?r.setMonth(o+1):(r.setMonth(0),r.setFullYear(r.getFullYear()+1))}return r}function Lr(e,t,r,n){var o=x[n+40>>2],i={tm_sec:x[n>>2],tm_min:x[n+4>>2],tm_hour:x[n+8>>2],tm_mday:x[n+12>>2],tm_mon:x[n+16>>2],tm_year:x[n+20>>2],tm_wday:x[n+24>>2],tm_yday:x[n+28>>2],tm_isdst:x[n+32>>2],tm_gmtoff:x[n+36>>2],tm_zone:o?b(o):""},a=b(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=Ur(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+xr(kr(e.tm_year+1900)?Nr:jr,e.tm_mon-1),3)},"%m":function(e){return d(e.tm_mon+1,2)},"%M":function(e){return d(e.tm_min,2)},"%n":function(){return"\n"},"%p":function(e){return e.tm_hour>=0&&e.tm_hour<12?"AM":"PM"},"%S":function(e){return d(e.tm_sec,2)},"%t":function(){return"\t"},"%u":function(e){return e.tm_wday||7},"%U":function(e){var t=new Date(e.tm_year+1900,0,1),r=0===t.getDay()?t:Ur(t,7-t.getDay()),n=new Date(e.tm_year+1900,e.tm_mon,e.tm_mday);if(l(r,n)<0){var o=xr(kr(n.getFullYear())?Nr:jr,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=Ur(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:Ur(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=xr(kr(n.getFullYear())?Nr:jr,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=Vr(a,!1);return m.length>t?0:(I=e,_((h=m).length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),R.set(h,I),m.length-1)}n.requestFullscreen=function(e,t){_e.requestFullscreen(e,t)},n.requestFullScreen=function(){_e.requestFullScreen()},n.requestAnimationFrame=function(e){_e.requestAnimationFrame(e)},n.setCanvasSize=function(e,t,r){_e.setCanvasSize(e,t,r)},n.pauseMainLoop=function(){_e.mainLoop.pause()},n.resumeMainLoop=function(){_e.mainLoop.resume()},n.getUserMedia=function(){_e.getUserMedia()},n.createContext=function(e,t,r,n){return _e.createContext(e,t,r,n)};var Hr,Gr=function(e,t,r,n){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=Ue.nextInode++,this.name=t,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=n};Object.defineProperties(Gr.prototype,{read:{get:function(){return!(365&~this.mode)},set:function(e){e?this.mode|=365:this.mode&=-366}},write:{get:function(){return!(146&~this.mode)},set:function(e){e?this.mode|=146:this.mode&=-147}},isFolder:{get:function(){return Ue.isDir(this.mode)}},isDevice:{get:function(){return Ue.isChrdev(this.mode)}}}),Ue.FSNode=Gr,Ue.staticInit(),n.FS_createPath=Ue.createPath,n.FS_createDataFile=Ue.createDataFile,n.FS_createPreloadedFile=Ue.createPreloadedFile,n.FS_createLazyFile=Ue.createLazyFile,n.FS_createDevice=Ue.createDevice,n.FS_unlink=Ue.unlink,n.count_emval_handles=We,n.get_first_emval=Ve,Ke=n.PureVirtualError=Je(Error,"PureVirtualError"),function(){for(var e=new Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);Ze=e}(),n.getInheritedInstanceCount=$e,n.getLiveInheritedInstances=et,n.flushPendingDeletes=rt,n.setDelayFunction=ot,at=n.BindingError=Je(Error,"BindingError"),wt=n.InternalError=Je(Error,"InternalError"),Rt.prototype.isAliasOf=bt,Rt.prototype.clone=Qt,Rt.prototype.delete=Tt,Rt.prototype.isDeleted=Pt,Rt.prototype.deleteLater=Mt,zt.prototype.getPointee=Ht,zt.prototype.destructor=Gt,zt.prototype.argPackAdvance=8,zt.prototype.readValueFromPointer=mt,zt.prototype.deleteObject=Yt,zt.prototype.fromWireType=Vt,qt=n.UnboundTypeError=Je(Error,"UnboundTypeError");for(var Yr=0;Yr<32;++Yr)Br.push(new Array(Yr));var Xr=new Float32Array(288);for(Yr=0;Yr<288;++Yr)Rr[Yr]=Xr.subarray(0,Yr+1);var Wr=new Int32Array(288);for(Yr=0;Yr<288;++Yr)Sr[Yr]=Wr.subarray(0,Yr+1);function Vr(e,t,r){var n=T(e)+1,o=new Array(n),i=O(e,o,0,o.length);return t&&(o.length=i),o}var zr={HaveOffsetConverter:function(){return"undefined"!=typeof wasmOffsetConverter},__cxa_allocate_exception:function(e){return Kr(e+16)+16},__cxa_atexit:function(e,t){},__cxa_begin_catch:function(e){var t=new be(e),r=t.get_exception_info();return r.get_caught()||r.set_caught(!0),r.set_rethrown(!1),Oe.push(t),function(e){e.add_ref()}(r),t.get_exception_ptr()},__cxa_end_catch:function(){An(0),_(Oe.length>0);var e=Oe.pop();!function(e){if(e.release_ref()&&!e.get_rethrown()){var t=e.get_destructor();t&&Z.get(t)(e.excPtr),Te(e.excPtr)}}(e.get_exception_info()),e.free(),Qe=0},__cxa_find_matching_catch_2:function(){var e=Qe;if(!e)return C(0),0;var t=new De(e).get_type(),r=new be;if(r.set_base_ptr(e),r.set_adjusted_ptr(e),!t)return C(0),0|r.ptr;for(var n=Array.prototype.slice.call(arguments),o=0;o<n.length;o++){var i=n[o];if(0===i||i===t)break;if(cn(i,t,r.get_adjusted_ptr_addr()))return C(i),0|r.ptr}return C(t),0|r.ptr},__cxa_find_matching_catch_3:function(){var e=Qe;if(!e)return C(0),0;var t=new De(e).get_type(),r=new be;if(r.set_base_ptr(e),r.set_adjusted_ptr(e),!t)return C(0),0|r.ptr;for(var n=Array.prototype.slice.call(arguments),o=0;o<n.length;o++){var i=n[o];if(0===i||i===t)break;if(cn(i,t,r.get_adjusted_ptr_addr()))return C(i),0|r.ptr}return C(t),0|r.ptr},__cxa_free_exception:Te,__cxa_rethrow:function(){var e=Oe.pop();e||he("no exception to throw");var t=e.get_exception_info(),r=e.get_base_ptr();throw t.get_rethrown()?e.free():(Oe.push(e),t.set_rethrown(!0),t.set_caught(!1)),Qe=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 De(e).init(t,r),Qe=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 be(e),r=t.get_base_ptr();throw Qe||(Qe=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){Le.varargs=r;try{var n=Le.getStreamFromFD(e);switch(t){case 0:return(o=Le.get())<0?-28:Ue.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=Le.get();return n.flags|=o,0;case 12:return o=Le.get(),F[o+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return Pe(28),-1}}catch(e){return void 0!==Ue&&e instanceof Ue.ErrnoError||he(e),-e.errno}},__sys_ioctl:function(e,t,r){Le.varargs=r;try{var n=Le.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=Le.get();return x[o>>2]=0,0;case 21520:return n.tty?-28:-59;case 21531:return o=Le.get(),Ue.ioctl(n,t,o);default:he("bad ioctl syscall ".concat(t))}}catch(e){return void 0!==Ue&&e instanceof Ue.ErrnoError||he(e),-e.errno}},__sys_mmap2:function(e,t,r,n,o,i){try{return function(e,t,r,n,o,i){var a;i<<=12;var s=!1;if(16&n&&e%65536!=0)return-28;if(32&n){if(!(a=ke(t)))return-48;s=!0}else{var A=Ue.getStream(o);if(!A)return-8;var c=Ue.mmap(A,e,t,i,r,n);a=c.ptr,s=c.allocated}return Le.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!==Ue&&e instanceof Ue.ErrnoError||he(e),-e.errno}},__sys_open:function(e,t,r){Le.varargs=r;try{var n=Le.getStr(e),o=r?Le.get():0;return Ue.open(n,t,o).fd}catch(e){return void 0!==Ue&&e instanceof Ue.ErrnoError||he(e),-e.errno}},__sys_stat64:function(e,t){try{return e=Le.getStr(e),Le.doStat(Ue.stat,e,t)}catch(e){return void 0!==Ue&&e instanceof Ue.ErrnoError||he(e),-e.errno}},_embind_create_inheriting_constructor:function(e,t,r){e=qe(e),t=dt(t,"wrapper"),r=ct(r);var n=[].slice,o=t.registeredClass,i=o.instancePrototype,a=o.baseClass.instancePrototype,s=o.baseClass.constructor,A=Ge(e,(function(){var e=this;o.baseClass.pureVirtualFunctions.forEach((function(t){if(e[t]===a[t])throw new Ke("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&&st("Pass correct 'this' to __construct");var e=s.implement.apply(void 0,[this].concat(n.call(arguments)));lt(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=At(t,r),it.hasOwnProperty(r)?st("Tried to register registered instance: ".concat(r)):it[r]=a},i.__destruct=function(){var e,t;this===i&&st("Pass correct 'this' to __destruct"),lt(this),e=o,t=this.$$.ptr,t=At(e,t),it.hasOwnProperty(t)?delete it[t]:st("Tried to unregister unregistered instance: ".concat(t))},A.prototype=Object.create(i),r)A.prototype[c]=r[c];return ze(A)},_embind_finalize_value_object:function(e){var t=ht[e];delete ht[e];var r=t.rawConstructor,n=t.rawDestructor,o=t.fields;Bt([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)),It(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:mt,destructorFunction:n}]}))},_embind_register_bigint:function(e,t,r,n,o){},_embind_register_bool:function(e,t,r,n,o){var i=vt(r);Dt(e,{name:t=qe(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=R;else if(2===r)n=F;else{if(4!==r)throw new TypeError("Unknown boolean type size: ".concat(t));n=x}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=qe(u),i=Zt(o,i),s&&(s=Zt(a,s)),c&&(c=Zt(A,c)),d=Zt(g,d);var l=He(u);kt(l,(function(){$t("Cannot construct ".concat(u," due to unbound types"),[n])})),Bt([e,t,r],n?[n]:[],(function(t){var r,o;t=t[0],o=n?(r=t.registeredClass).instancePrototype:Rt.prototype;var a=Ge(l,(function(){if(Object.getPrototypeOf(this)!==A)throw new at("Use 'new' to construct ".concat(u));if(void 0===g.constructor_body)throw new at("".concat(u," has no accessible constructor"));var e=g.constructor_body[arguments.length];if(void 0===e)throw new at("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 xt(u,a,A,d,r,i,s,c),f=new zt(u,g,!0,!1,!1),E=new zt("".concat(u,"*"),g,!1,!1,!1),p=new zt("".concat(u," const*"),g,!1,!0,!1);return St[e]={pointerType:E,constPointerType:p},Jt(l,a),[f,E,p]}))},_embind_register_class_class_function:function(e,t,r,n,o,i,a){var s=rr(r,n);t=qe(t),i=Zt(o,i),Bt([],[e],(function(e){e=e[0];var n="".concat(e.name,".").concat(t);function o(){$t("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):(Ft(A,t,n),A[t].overloadTable[r-1]=o),Bt([],s,(function(e){var o=[e[0],null].concat(e.slice(1)),s=tr(n,o,null,i,a);return void 0===A[t].overloadTable?(s.argCount=r-1,A[t]=s):A[t].overloadTable[r-1]=s,[]})),[]}))},_embind_register_class_constructor:function(e,t,r,n,o,i){_(t>0);var a=rr(t,r);o=Zt(n,o),Bt([],[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 at("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(){$t("Cannot construct ".concat(e.name," due to unbound types"),a)},Bt([],a,(function(n){return n.splice(1,0,null),e.registeredClass.constructor_body[t-1]=tr(r,n,null,o,i),[]})),[]}))},_embind_register_class_function:function(e,t,r,n,o,i,a,s){var A=rr(r,n);t=qe(t),i=Zt(o,i),Bt([],[e],(function(e){e=e[0];var n="".concat(e.name,".").concat(t);function o(){$t("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):(Ft(c,t,n),c[t].overloadTable[r-2]=o),Bt([],A,(function(o){var s=tr(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=qe(t),o=Zt(n,o),Bt([],[e],(function(e){e=e[0];var n="".concat(e.name,".").concat(t),u={get:function(){$t("Cannot access ".concat(n," due to unbound types"),[r,a])},enumerable:!0,configurable:!0};return u.set=A?function(){$t("Cannot access ".concat(n," due to unbound types"),[r,a])}:function(e){st("".concat(n," is a read-only property"))},Object.defineProperty(e.registeredClass.instancePrototype,t,u),Bt([],A?[r,a]:[r],(function(r){var a=r[0],u={get:function(){var t=nr(this,e,"".concat(n," getter"));return a.fromWireType(o(i,t))},enumerable:!0};if(A){A=Zt(s,A);var g=r[1];u.set=function(t){var r=nr(this,e,"".concat(n," setter")),o=[];A(c,r,g.toWireType(o,t)),It(o)}}return Object.defineProperty(e.registeredClass.instancePrototype,t,u),[]})),[]}))},_embind_register_emval:function(e,t){Dt(e,{name:t=qe(t),fromWireType:function(e){var t=Xe[e].value;return or(e),t},toWireType:function(e,t){return ze(t)},argPackAdvance:8,readValueFromPointer:mt,destructorFunction:null})},_embind_register_float:function(e,t,r){var n=vt(r);Dt(e,{name:t=qe(t),fromWireType:function(e){return e},toWireType:function(e,t){if("number"!=typeof t&&"boolean"!=typeof t)throw new TypeError('Cannot convert "'.concat(ir(t),'" to ').concat(this.name));return t},argPackAdvance:8,readValueFromPointer:ar(t,n),destructorFunction:null})},_embind_register_function:function(e,t,r,n,o,i){var a=rr(t,r);e=qe(e),o=Zt(n,o),kt(e,(function(){$t("Cannot call ".concat(e," due to unbound types"),a)}),t-1),Bt([],a,(function(r){var n=[r[0],null].concat(r.slice(1));return Jt(e,tr(e,n,null,o,i),t-1),[]}))},_embind_register_integer:function(e,t,r,n,o){t=qe(t),-1===o&&(o=4294967295);var i=vt(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");Dt(e,{name:t,fromWireType:a,toWireType:function(e,r){if("number"!=typeof r&&"boolean"!=typeof r)throw new TypeError('Cannot convert "'.concat(ir(r),'" to ').concat(this.name));if(r<n||r>o)throw new TypeError('Passing a number "'.concat(ir(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:sr(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=N,r=t[e>>=2],o=t[e+1];return new n(M,o,r)}Dt(e,{name:r=qe(r),fromWireType:o,argPackAdvance:8,readValueFromPointer:o},{ignoreDuplicateRegistrations:!0})},_embind_register_std_string:function(e,t){var r="std::string"===(t=qe(t));Dt(e,{name:t,fromWireType:function(e){var t,n=N[e>>2];if(r)for(var o=e+4,i=0;i<=n;++i){var a=e+4+i;if(i==n||0==S[a]){var s=b(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(S[e+4+i]);t=A.join("")}return Jr(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||st("Cannot pass non-string to std::string");var o=(r&&n?function(){return T(t)}:function(){return t.length})(),i=Kr(4+o+1);if(N[i>>2]=o,r&&n)Q(t,i+4,o+1);else if(n)for(var a=0;a<o;++a){var s=t.charCodeAt(a);s>255&&(Jr(i),st("String has UTF-16 code units that do not fit in 8 bits")),S[i+4+a]=s}else for(a=0;a<o;++a)S[i+4+a]=t[a];return null!==e&&e.push(Jr,i),i},argPackAdvance:8,readValueFromPointer:mt,destructorFunction:function(e){Jr(e)}})},_embind_register_std_wstring:function(e,t,r){var n,o,i,a,s;r=qe(r),2===t?(n=H,o=G,a=Y,i=function(){return k},s=1):4===t&&(n=X,o=W,a=V,i=function(){return N},s=2),Dt(e,{name:r,fromWireType:function(e){for(var r,o=N[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 Jr(e),r},toWireType:function(e,n){"string"!=typeof n&&st("Cannot pass non-string to C++ string type ".concat(r));var i=a(n),A=Kr(4+i+t);return N[A>>2]=i>>s,o(n,A+4,i+t),null!==e&&e.push(Jr,A),A},argPackAdvance:8,readValueFromPointer:mt,destructorFunction:function(e){Jr(e)}})},_embind_register_value_object:function(e,t,r,n,o,i){ht[e]={name:qe(t),rawConstructor:Zt(r,n),rawDestructor:Zt(o,i),fields:[]}},_embind_register_value_object_field:function(e,t,r,n,o,i,a,s,A,c){ht[e].fields.push({fieldName:qe(t),getterReturnType:r,getter:Zt(n,o),getterContext:i,setterArgumentType:a,setter:Zt(s,A),setterContext:c})},_embind_register_void:function(e,t){Dt(e,{isVoid:!0,name:t=qe(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(e,t){}})},_emval_call_void_method:function(e,t,r,n){var o,i;(e=cr[e])(t=ct(t),r=void 0===(i=Ar[o=r])?qe(o):i,null,n)},_emval_decref:or,_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]=dt(x[(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=He("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=er(Function,i).apply(null,a);return d=f,l=cr.length,cr.push(d),l},_emval_incref:function(e){e>4&&(Xe[e].refcount+=1)},_emval_take_value:function(e,t){return ze((e=dt(e,"_emval_take_value")).readValueFromPointer(t))},abort:function(){he()},clock_gettime:function(e,t){var r;if(0===e)r=Date.now();else{if(1!==e&&4!==e)return Pe(28),-1;r=me()}return x[t>>2]=r/1e3|0,x[t+4>>2]=r%1e3*1e3*1e3|0,0},dlopen:function(e,t){he("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")},dlsym:function(e,t){he("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(_(Array.isArray(ur)),_(t%16==0),ur.length=0,t>>=2;r=S[e++];){_(100===r||102===r||105===r);var n=r<105;n&&1&t&&t++,ur.push(n?U[t++>>1]:x[t]),++t}return ur}(t,r);return ye.hasOwnProperty(e)||he("No EM_ASM constant found at address ".concat(e)),ye[e].apply(null,n)},emscripten_get_heap_max:function(){return 2147483648},emscripten_memcpy_big:function(e,t,r){S.copyWithin(e,t,t+r)},emscripten_pc_get_function:function(e){he("Cannot use emscripten_pc_get_function without -s USE_OFFSET_CONVERTER")},emscripten_resize_heap:function(e){var t=S.length;_((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(gr(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(),fr(e),lr.last_addr=dr(e[2]),lr.last_stack=e,lr.last_addr},emscripten_stack_unwind_buffer:function(e,t,r){var n;lr.last_addr==e?n=lr.last_stack:("Error"==(n=(new Error).stack.split("\n"))[0]&&n.shift(),fr(n));for(var o=2;n[o]&&dr(n[o])!=e;)++o;for(var i=0;i<r&&n[i+o];++i)x[t+4*i>>2]=dr(n[i+o]);return i},emscripten_thread_sleep:function(e){for(var t=me();me()-t<e;);},emscripten_webgl_create_context:function(e,t){return function(e,t){_(t);var r=t>>2,n=x[r+6],o={alpha:!!x[r+0],depth:!!x[r+1],stencil:!!x[r+2],antialias:!!x[r+3],premultipliedAlpha:!!x[r+4],preserveDrawingBuffer:!!x[r+5],powerPreference:hr[n],failIfMajorPerformanceCaveat:!!x[r+7],majorVersion:x[r+8],minorVersion:x[r+9],enableExtensionsByDefault:x[r+10],explicitSwapControl:x[r+11],proxyContextToMainThread:x[r+12],renderViaOffscreenBackBuffer:x[r+13]},i=mr(e);if(!i)return 0;if(i.offscreenCanvas&&(i=i.offscreenCanvas),o.explicitSwapControl&&(i.transferControlToOffscreen||"undefined"!=typeof OffscreenCanvas&&i instanceof OffscreenCanvas||o.renderViaOffscreenBackBuffer||(o.renderViaOffscreenBackBuffer=!0),i.transferControlToOffscreen)){if(i.controlTransferredOffscreen){if(!Er.offscreenCanvases[i.id])return 0}else Er.offscreenCanvases[i.id]={canvas:i.transferControlToOffscreen(),canvasSharedPtr:Kr(12),id:i.id},i.controlTransferredOffscreen=!0;i=Er.offscreenCanvases[i.id]}return Er.createContext(i,o)}(e,t)},emscripten_webgl_destroy_context:function(e){Er.currentContext==e&&(Er.currentContext=0),Er.deleteContext(e)},emscripten_webgl_get_context_attributes:function(e,t){if(!t)return-5;if(!(e=Er.contexts[e]))return-3;var r=e.GLctx;if(!r)return-3;r=r.getContextAttributes(),x[t>>2]=r.alpha,x[t+4>>2]=r.depth,x[t+8>>2]=r.stencil,x[t+12>>2]=r.antialias,x[t+16>>2]=r.premultipliedAlpha,x[t+20>>2]=r.preserveDrawingBuffer;var n=r.powerPreference&&hr.indexOf(r.powerPreference);return x[t+24>>2]=n,x[t+28>>2]=r.failIfMajorPerformanceCaveat,x[t+32>>2]=e.version,x[t+36>>2]=0,x[t+40>>2]=e.attributes.enableExtensionsByDefault,0},emscripten_webgl_get_current_context:yr,emscripten_webgl_init_context_attributes:function(e){_(e);for(var t=e>>2,r=0;r<14;++r)x[t+r]=0;x[t+0]=x[t+1]=x[t+3]=x[t+4]=x[t+8]=x[t+10]=1},emscripten_webgl_make_context_current:Cr,environ_get:function(e,t){var r=0;return _r().forEach((function(n,o){var i=t+r;x[e+4*o>>2]=i,function(e,t){for(var r=0;r<e.length;++r)_(e.charCodeAt(r)==e.charCodeAt(r)&255),R[0|t++]=e.charCodeAt(r);R[0|t]=0}(n,i),r+=n.length+1})),0},environ_sizes_get:function(e,t){var r=_r();x[e>>2]=r.length;var n=0;return r.forEach((function(e){n+=e.length+1})),x[t>>2]=n,0},exit:function(e){!function(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=Ue.analyzePath("/dev/".concat(e));if(t){var n=t.object.rdev,o=Fe.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.")}();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),fn(e)}(e)},fd_close:function(e){try{var t=Le.getStreamFromFD(e);return Ue.close(t),0}catch(e){return void 0!==Ue&&e instanceof Ue.ErrnoError||he(e),e.errno}},fd_read:function(e,t,r,n){try{var o=Le.getStreamFromFD(e),i=Le.doReadv(o,t,r);return x[n>>2]=i,0}catch(e){return void 0!==Ue&&e instanceof Ue.ErrnoError||he(e),e.errno}},fd_seek:function(e,t,r,n,o){try{var i=Le.getStreamFromFD(e),a=4294967296*r+(t>>>0),s=9007199254740992;return a<=-s||a>=s?-61:(Ue.llseek(i,a,n),ce=[i.position>>>0,(Ae=i.position,+Math.abs(Ae)>=1?Ae>0?(0|Math.min(+Math.floor(Ae/4294967296),4294967295))>>>0:~~+Math.ceil((Ae-+(~~Ae>>>0))/4294967296)>>>0:0)],x[o>>2]=ce[0],x[o+4>>2]=ce[1],i.getdents&&0===a&&0===n&&(i.getdents=null),0)}catch(e){return void 0!==Ue&&e instanceof Ue.ErrnoError||he(e),e.errno}},fd_write:function(e,t,r,n){try{var o=Le.getStreamFromFD(e),i=Le.doWritev(o,t,r);return x[n>>2]=i,0}catch(e){return void 0!==Ue&&e instanceof Ue.ErrnoError||he(e),e.errno}},getTempRet0:function(){return y},getentropy:function e(t,r){e.randomDevice||(e.randomDevice=Re());for(var n=0;n<r;n++)R[t+n|0]=e.randomDevice();return 0},glActiveTexture:function(e){Hr.activeTexture(e)},glAttachShader:function(e,t){Hr.attachShader(Er.programs[e],Er.shaders[t])},glBindAttribLocation:function(e,t,r){Hr.bindAttribLocation(Er.programs[e],t,b(r))},glBindBuffer:function(e,t){34962==e?Hr.currentArrayBufferBinding=t:34963==e&&(Hr.currentElementArrayBufferBinding=t),35051==e?Hr.currentPixelPackBufferBinding=t:35052==e&&(Hr.currentPixelUnpackBufferBinding=t),Hr.bindBuffer(e,Er.buffers[t])},glBindBufferBase:function(e,t,r){Hr.bindBufferBase(e,t,Er.buffers[r])},glBindFramebuffer:function(e,t){Hr.bindFramebuffer(e,t?Er.framebuffers[t]:Er.currentContext.defaultFbo)},glBindTexture:function(e,t){Hr.bindTexture(e,Er.textures[t])},glBindVertexArray:function(e){Hr.bindVertexArray(Er.vaos[e]);var t=Hr.getParameter(34965);Hr.currentElementArrayBufferBinding=t?0|t.name:0},glBufferData:function(e,t,r,n){Er.currentContext.version>=2?r?Hr.bufferData(e,S,n,r,t):Hr.bufferData(e,t,n):Hr.bufferData(e,r?S.subarray(r,r+t):t,n)},glClientWaitSync:function(e,t,r,n){return Hr.clientWaitSync(Er.syncs[e],t,(o=r,_((i=n)===(0|i)),(o>>>0)+4294967296*i));var o,i},glCompileShader:function(e){Hr.compileShader(Er.shaders[e])},glCreateProgram:function(){var e=Er.getNewId(Er.programs),t=Hr.createProgram();return t.name=e,t.maxUniformLength=t.maxAttributeLength=t.maxUniformBlockNameLength=0,t.uniformIdCounter=1,Er.programs[e]=t,e},glCreateShader:function(e){var t=Er.getNewId(Er.shaders);return Er.shaders[t]=Hr.createShader(e),t},glDeleteBuffers:function(e,t){for(var r=0;r<e;r++){var n=x[t+4*r>>2],o=Er.buffers[n];o&&(Hr.deleteBuffer(o),o.name=0,Er.buffers[n]=null,n==Hr.currentArrayBufferBinding&&(Hr.currentArrayBufferBinding=0),n==Hr.currentElementArrayBufferBinding&&(Hr.currentElementArrayBufferBinding=0),n==Hr.currentPixelPackBufferBinding&&(Hr.currentPixelPackBufferBinding=0),n==Hr.currentPixelUnpackBufferBinding&&(Hr.currentPixelUnpackBufferBinding=0))}},glDeleteFramebuffers:function(e,t){for(var r=0;r<e;++r){var n=x[t+4*r>>2],o=Er.framebuffers[n];o&&(Hr.deleteFramebuffer(o),o.name=0,Er.framebuffers[n]=null)}},glDeleteProgram:function(e){if(e){var t=Er.programs[e];t?(Hr.deleteProgram(t),t.name=0,Er.programs[e]=null):Er.recordError(1281)}},glDeleteShader:function(e){if(e){var t=Er.shaders[e];t?(Hr.deleteShader(t),Er.shaders[e]=null):Er.recordError(1281)}},glDeleteSync:function(e){if(e){var t=Er.syncs[e];t?(Hr.deleteSync(t),t.name=0,Er.syncs[e]=null):Er.recordError(1281)}},glDeleteTextures:function(e,t){for(var r=0;r<e;r++){var n=x[t+4*r>>2],o=Er.textures[n];o&&(Hr.deleteTexture(o),o.name=0,Er.textures[n]=null)}},glDeleteVertexArrays:function(e,t){for(var r=0;r<e;r++){var n=x[t+4*r>>2];Hr.deleteVertexArray(Er.vaos[n]),Er.vaos[n]=null}},glDisable:function(e){Hr.disable(e)},glDisableVertexAttribArray:function(e){Er.currentContext.clientBuffers[e].enabled=!1,Hr.disableVertexAttribArray(e)},glDrawArrays:function(e,t,r){Er.preDrawHandleClientVertexAttribBindings(t+r),Hr.drawArrays(e,t,r),Er.postDrawHandleClientVertexAttribBindings()},glDrawBuffers:function(e,t){for(var r=Br[e],n=0;n<e;n++)r[n]=x[t+4*n>>2];Hr.drawBuffers(r)},glEnableVertexAttribArray:function(e){Er.currentContext.clientBuffers[e].enabled=!0,Hr.enableVertexAttribArray(e)},glFenceSync:function(e,t){var r=Hr.fenceSync(e,t);if(r){var n=Er.getNewId(Er.syncs);return r.name=n,Er.syncs[n]=r,n}return 0},glFinish:function(){Hr.finish()},glFlush:function(){Hr.flush()},glFramebufferTexture2D:function(e,t,r,n,o){Hr.framebufferTexture2D(e,t,r,Er.textures[n],o)},glFramebufferTextureLayer:function(e,t,r,n,o){Hr.framebufferTextureLayer(e,t,Er.textures[r],n,o)},glGenBuffers:function(e,t){vr(e,t,"createBuffer",Er.buffers)},glGenFramebuffers:function(e,t){vr(e,t,"createFramebuffer",Er.framebuffers)},glGenTextures:function(e,t){vr(e,t,"createTexture",Er.textures)},glGenVertexArrays:function(e,t){vr(e,t,"createVertexArray",Er.vaos)},glGetAttribLocation:function(e,t){return Hr.getAttribLocation(Er.programs[e],b(t))},glGetError:function(){var e=Hr.getError()||Er.lastError;return Er.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=Hr.getParameter(34467);n=o?o.length:0;break;case 33309:if(Er.currentContext.version<2)return void Er.recordError(1282);n=2*(Hr.getSupportedExtensions()||[]).length;break;case 33307:case 33308:if(Er.currentContext.version<2)return void Er.recordError(1280);n=33307==e?3:0}if(void 0===n){var i=Hr.getParameter(e);switch(E(i)){case"number":n=i;break;case"boolean":n=i?1:0;break;case"string":return void Er.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 Er.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:x[t+4*a>>2]=i[a];break;case 2:j[t+4*a>>2]=i[a];break;case 4:R[t+a|0]=i[a]?1:0}return}try{n=0|i.name}catch(t){return Er.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 Er.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:Dr(t,n);break;case 0:x[t>>2]=n;break;case 2:j[t>>2]=n;break;case 4:R[0|t]=n?1:0}}else Er.recordError(1281)}(e,t,0)},glGetString:function(e){var t=Er.stringCache[e];if(!t){switch(e){case 7939:var r=Hr.getSupportedExtensions()||[];t=br((r=r.concat(r.map((function(e){return"GL_".concat(e)})))).join(" "));break;case 7936:case 7937:case 37445:case 37446:var n=Hr.getParameter(e);n||Er.recordError(1280),t=n&&br(n);break;case 7938:var o=Hr.getParameter(7938);t=br(o=Er.currentContext.version>=2?"OpenGL ES 3.0 (".concat(o,")"):"OpenGL ES 2.0 (".concat(o,")"));break;case 35724:var i=Hr.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=br(i);break;default:Er.recordError(1280)}Er.stringCache[e]=t}return t},glGetUniformBlockIndex:function(e,t){return Hr.getUniformBlockIndex(Er.programs[e],b(t))},glGetUniformLocation:function(e,t){if(t=b(t),e=Er.programs[e]){!function(e){var t,r,n=e.uniformLocsById,o=e.uniformSizeAndIdsByName;if(!n)for(e.uniformLocsById=n={},e.uniformArrayNamesById={},t=0;t<Hr.getProgramParameter(e,35718);++t){var i=Hr.getActiveUniform(e,t),a=i.name,s=i.size,A=Or(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=Or(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]||Hr.getUniformLocation(e,t)))return n}else Er.recordError(1281);var s;return-1},glLinkProgram:function(e){e=Er.programs[e],Hr.linkProgram(e),e.uniformLocsById=0,e.uniformSizeAndIdsByName={}},glPixelStorei:function(e,t){3317==e&&(Er.unpackAlignment=t),Hr.pixelStorei(e,t)},glReadPixels:function(e,t,r,n,o,i,a){if(Er.currentContext.version>=2)if(Hr.currentPixelPackBufferBinding)Hr.readPixels(e,t,r,n,o,i,a);else{var s=Qr(i);Hr.readPixels(e,t,r,n,o,i,s,a>>Tr(s))}else{var A=Pr(i,o,r,n,a);A?Hr.readPixels(e,t,r,n,o,i,A):Er.recordError(1280)}},glShaderSource:function(e,t,r,n){var o=Er.getSource(e,t,r,n);Hr.shaderSource(Er.shaders[e],o)},glTexImage2D:function(e,t,r,n,o,i,a,s,A){if(Er.currentContext.version>=2)if(Hr.currentPixelUnpackBufferBinding)Hr.texImage2D(e,t,r,n,o,i,a,s,A);else if(A){var c=Qr(s);Hr.texImage2D(e,t,r,n,o,i,a,s,c,A>>Tr(c))}else Hr.texImage2D(e,t,r,n,o,i,a,s,null);else Hr.texImage2D(e,t,r,n,o,i,a,s,A?Pr(s,a,n,o,A):null)},glTexParameterfv:function(e,t,r){var n=j[r>>2];Hr.texParameterf(e,t,n)},glTexParameteri:function(e,t,r){Hr.texParameteri(e,t,r)},glTexStorage2D:function(e,t,r,n,o){Hr.texStorage2D(e,t,r,n,o)},glTexStorage3D:function(e,t,r,n,o,i){Hr.texStorage3D(e,t,r,n,o,i)},glTexSubImage2D:function(e,t,r,n,o,i,a,s,A){if(Er.currentContext.version>=2)if(Hr.currentPixelUnpackBufferBinding)Hr.texSubImage2D(e,t,r,n,o,i,a,s,A);else if(A){var c=Qr(s);Hr.texSubImage2D(e,t,r,n,o,i,a,s,c,A>>Tr(c))}else Hr.texSubImage2D(e,t,r,n,o,i,a,s,null);else{var u=null;A&&(u=Pr(s,a,o,i,A)),Hr.texSubImage2D(e,t,r,n,o,i,a,s,u)}},glTexSubImage3D:function(e,t,r,n,o,i,a,s,A,c,u){if(Hr.currentPixelUnpackBufferBinding)Hr.texSubImage3D(e,t,r,n,o,i,a,s,A,c,u);else if(u){var g=Qr(c);Hr.texSubImage3D(e,t,r,n,o,i,a,s,A,c,g,u>>Tr(g))}else Hr.texSubImage3D(e,t,r,n,o,i,a,s,A,c,null)},glUniform1f:function(e,t){Hr.uniform1f(Mr(e),t)},glUniform1i:function(e,t){Hr.uniform1i(Mr(e),t)},glUniform2fv:function(e,t,r){if(Er.currentContext.version>=2)Hr.uniform2fv(Mr(e),j,r>>2,2*t);else{if(t<=144)for(var n=Rr[2*t-1],o=0;o<2*t;o+=2)n[o]=j[r+4*o>>2],n[o+1]=j[r+(4*o+4)>>2];else n=j.subarray(r>>2,r+8*t>>2);Hr.uniform2fv(Mr(e),n)}},glUniform4fv:function(e,t,r){if(Er.currentContext.version>=2)Hr.uniform4fv(Mr(e),j,r>>2,4*t);else{if(t<=72){var n=Rr[4*t-1],o=j;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=j.subarray(r>>2,r+16*t>>2);Hr.uniform4fv(Mr(e),n)}},glUniform4iv:function(e,t,r){if(Er.currentContext.version>=2)Hr.uniform4iv(Mr(e),x,r>>2,4*t);else{if(t<=72)for(var n=Sr[4*t-1],o=0;o<4*t;o+=4)n[o]=x[r+4*o>>2],n[o+1]=x[r+(4*o+4)>>2],n[o+2]=x[r+(4*o+8)>>2],n[o+3]=x[r+(4*o+12)>>2];else n=x.subarray(r>>2,r+16*t>>2);Hr.uniform4iv(Mr(e),n)}},glUniformBlockBinding:function(e,t,r){e=Er.programs[e],Hr.uniformBlockBinding(e,t,r)},glUniformMatrix4fv:function(e,t,r,n){if(Er.currentContext.version>=2)Hr.uniformMatrix4fv(Mr(e),!!r,j,n>>2,16*t);else{if(t<=18){var o=Rr[16*t-1],i=j;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=j.subarray(n>>2,n+64*t>>2);Hr.uniformMatrix4fv(Mr(e),!!r,o)}},glUseProgram:function(e){e=Er.programs[e],Hr.useProgram(e),Hr.currentProgram=e},glVertexAttribPointer:function(e,t,r,n,o,i){var a=Er.currentContext.clientBuffers[e];if(!Hr.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,Hr.vertexAttribPointer(e,t,r,!!n,o,i)},glViewport:function(e,t,r,n){Hr.viewport(e,t,r,n)},gmtime_r:function e(t,r){var n=new Date(1e3*x[t>>2]);x[r>>2]=n.getUTCSeconds(),x[r+4>>2]=n.getUTCMinutes(),x[r+8>>2]=n.getUTCHours(),x[r+12>>2]=n.getUTCDate(),x[r+16>>2]=n.getUTCMonth(),x[r+20>>2]=n.getUTCFullYear()-1900,x[r+24>>2]=n.getUTCDay(),x[r+36>>2]=0,x[r+32>>2]=0;var o=Date.UTC(n.getUTCFullYear(),0,1,0,0,0,0),i=(n.getTime()-o)/864e5|0;return x[r+28>>2]=i,e.GMTString||(e.GMTString=z("GMT")),x[r+40>>2]=e.GMTString,r},invoke_diii:function(e,t,r,n){var o=nn();try{return Z.get(e)(t,r,n)}catch(e){if(on(o),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_i:function(e){var t=nn();try{return Z.get(e)()}catch(e){if(on(t),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_ii:function(e,t){var r=nn();try{return Z.get(e)(t)}catch(e){if(on(r),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_iii:function(e,t,r){var n=nn();try{return Z.get(e)(t,r)}catch(e){if(on(n),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_iiii:function(e,t,r,n){var o=nn();try{return Z.get(e)(t,r,n)}catch(e){if(on(o),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_iiiii:function(e,t,r,n,o){var i=nn();try{return Z.get(e)(t,r,n,o)}catch(e){if(on(i),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_iiiiii:function(e,t,r,n,o,i){var a=nn();try{return Z.get(e)(t,r,n,o,i)}catch(e){if(on(a),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_iiiiiii:function(e,t,r,n,o,i,a){var s=nn();try{return Z.get(e)(t,r,n,o,i,a)}catch(e){if(on(s),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_iiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c){var u=nn();try{return Z.get(e)(t,r,n,o,i,a,s,A,c)}catch(e){if(on(u),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_iiiiiiii:function(e,t,r,n,o,i,a,s){var A=nn();try{return Z.get(e)(t,r,n,o,i,a,s)}catch(e){if(on(A),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_iiiiiiiii:function(e,t,r,n,o,i,a,s,A){var c=nn();try{return Z.get(e)(t,r,n,o,i,a,s,A)}catch(e){if(on(c),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_v:function(e){var t=nn();try{Z.get(e)()}catch(e){if(on(t),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_vdiii:function(e,t,r,n,o){var i=nn();try{Z.get(e)(t,r,n,o)}catch(e){if(on(i),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_vi:function(e,t){var r=nn();try{Z.get(e)(t)}catch(e){if(on(r),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_vididdii:function(e,t,r,n,o,i,a,s){var A=nn();try{Z.get(e)(t,r,n,o,i,a,s)}catch(e){if(on(A),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_vidii:function(e,t,r,n,o){var i=nn();try{Z.get(e)(t,r,n,o)}catch(e){if(on(i),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_vii:function(e,t,r){var n=nn();try{Z.get(e)(t,r)}catch(e){if(on(n),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viid:function(e,t,r,n){var o=nn();try{Z.get(e)(t,r,n)}catch(e){if(on(o),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viidi:function(e,t,r,n,o){var i=nn();try{Z.get(e)(t,r,n,o)}catch(e){if(on(i),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viididii:function(e,t,r,n,o,i,a,s){var A=nn();try{Z.get(e)(t,r,n,o,i,a,s)}catch(e){if(on(A),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viii:function(e,t,r,n){var o=nn();try{Z.get(e)(t,r,n)}catch(e){if(on(o),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiid:function(e,t,r,n,o){var i=nn();try{Z.get(e)(t,r,n,o)}catch(e){if(on(i),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiidd:function(e,t,r,n,o,i){var a=nn();try{Z.get(e)(t,r,n,o,i)}catch(e){if(on(a),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiddi:function(e,t,r,n,o,i,a){var s=nn();try{Z.get(e)(t,r,n,o,i,a)}catch(e){if(on(s),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiidi:function(e,t,r,n,o,i){var a=nn();try{Z.get(e)(t,r,n,o,i)}catch(e){if(on(a),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiii:function(e,t,r,n,o){var i=nn();try{Z.get(e)(t,r,n,o)}catch(e){if(on(i),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiid:function(e,t,r,n,o,i){var a=nn();try{Z.get(e)(t,r,n,o,i)}catch(e){if(on(a),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiidi:function(e,t,r,n,o,i,a){var s=nn();try{Z.get(e)(t,r,n,o,i,a)}catch(e){if(on(s),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiidid:function(e,t,r,n,o,i,a,s){var A=nn();try{Z.get(e)(t,r,n,o,i,a,s)}catch(e){if(on(A),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiidiidiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d,l,f,E){var p=nn();try{Z.get(e)(t,r,n,o,i,a,s,A,c,u,g,d,l,f,E)}catch(e){if(on(p),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiifiifiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d,l,f,E){var p=nn();try{Z.get(e)(t,r,n,o,i,a,s,A,c,u,g,d,l,f,E)}catch(e){if(on(p),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiii:function(e,t,r,n,o,i){var a=nn();try{Z.get(e)(t,r,n,o,i)}catch(e){if(on(a),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiid:function(e,t,r,n,o,i,a){var s=nn();try{Z.get(e)(t,r,n,o,i,a)}catch(e){if(on(s),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiif:function(e,t,r,n,o,i,a){var s=nn();try{Z.get(e)(t,r,n,o,i,a)}catch(e){if(on(s),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiii:function(e,t,r,n,o,i,a){var s=nn();try{Z.get(e)(t,r,n,o,i,a)}catch(e){if(on(s),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiiid:function(e,t,r,n,o,i,a,s){var A=nn();try{Z.get(e)(t,r,n,o,i,a,s)}catch(e){if(on(A),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiiif:function(e,t,r,n,o,i,a,s){var A=nn();try{Z.get(e)(t,r,n,o,i,a,s)}catch(e){if(on(A),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiiii:function(e,t,r,n,o,i,a,s){var A=nn();try{Z.get(e)(t,r,n,o,i,a,s)}catch(e){if(on(A),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c,u){var g=nn();try{Z.get(e)(t,r,n,o,i,a,s,A,c,u)}catch(e){if(on(g),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiiiidiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d){var l=nn();try{Z.get(e)(t,r,n,o,i,a,s,A,c,u,g,d)}catch(e){if(on(l),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiiiifiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d){var l=nn();try{Z.get(e)(t,r,n,o,i,a,s,A,c,u,g,d)}catch(e){if(on(l),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiiiii:function(e,t,r,n,o,i,a,s,A){var c=nn();try{Z.get(e)(t,r,n,o,i,a,s,A)}catch(e){if(on(c),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiiiiidd:function(e,t,r,n,o,i,a,s,A,c,u){var g=nn();try{Z.get(e)(t,r,n,o,i,a,s,A,c,u)}catch(e){if(on(g),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiiiiidf:function(e,t,r,n,o,i,a,s,A,c,u){var g=nn();try{Z.get(e)(t,r,n,o,i,a,s,A,c,u)}catch(e){if(on(g),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiiiiii:function(e,t,r,n,o,i,a,s,A,c){var u=nn();try{Z.get(e)(t,r,n,o,i,a,s,A,c)}catch(e){if(on(u),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiiiiiidd:function(e,t,r,n,o,i,a,s,A,c,u,g){var d=nn();try{Z.get(e)(t,r,n,o,i,a,s,A,c,u,g)}catch(e){if(on(d),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c,u,g,d){var l=nn();try{Z.get(e)(t,r,n,o,i,a,s,A,c,u,g,d)}catch(e){if(on(l),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u){var g=nn();try{Z.get(e)(t,r,n,o,i,a,s,A,c,u)}catch(e){if(on(g),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c,u,g,d,l){var f=nn();try{Z.get(e)(t,r,n,o,i,a,s,A,c,u,g,d,l)}catch(e){if(on(f),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u,g){var d=nn();try{Z.get(e)(t,r,n,o,i,a,s,A,c,u,g)}catch(e){if(on(d),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d){var l=nn();try{Z.get(e)(t,r,n,o,i,a,s,A,c,u,g,d)}catch(e){if(on(l),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d,l){var f=nn();try{Z.get(e)(t,r,n,o,i,a,s,A,c,u,g,d,l)}catch(e){if(on(f),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},llvm_eh_typeid_for:function(e){return e},localtime_r:function(e,t){Fr();var r=new Date(1e3*x[e>>2]);x[t>>2]=r.getSeconds(),x[t+4>>2]=r.getMinutes(),x[t+8>>2]=r.getHours(),x[t+12>>2]=r.getDate(),x[t+16>>2]=r.getMonth(),x[t+20>>2]=r.getFullYear()-1900,x[t+24>>2]=r.getDay();var n=new Date(r.getFullYear(),0,1),o=(r.getTime()-n.getTime())/864e5|0;x[t+28>>2]=o,x[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));x[t+32>>2]=s;var A=x[en()+(s?4:0)>>2];return x[t+40>>2]=A,t},mktime:function(e){Fr();var t=new Date(x[e+20>>2]+1900,x[e+16>>2],x[e+12>>2],x[e+8>>2],x[e+4>>2],x[e>>2],0),r=x[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)x[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))}x[e+24>>2]=t.getDay();var u=(t.getTime()-o.getTime())/864e5|0;return x[e+28>>2]=u,x[e>>2]=t.getSeconds(),x[e+4>>2]=t.getMinutes(),x[e+8>>2]=t.getHours(),x[e+12>>2]=t.getDate(),x[e+16>>2]=t.getMonth(),t.getTime()/1e3|0},proc_exit:function(e){fn(e)},setTempRet0:function(e){C(e)},strftime:Lr,strftime_l:function(e,t,r,n){return Lr(e,t,r,n)}};!function(){var e={env:zr,wasi_snapshot_preview1:zr};function t(e,t){var r,o=e.exports;n.asm=o,_(m=n.asm.memory,"memory not found in wasm exports"),J(m.buffer),_(Z=n.asm.__indirect_function_table,"table not found in wasm exports"),r=n.asm.__wasm_call_ctors,re.unshift(r),pe("wasm-instantiate")}Ee("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(ae,e).then((function(e){_(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=Ie("__wasm_call_ctors");var Jr=n._free=Ie("free"),Kr=n._malloc=Ie("malloc"),Zr=n.___errno_location=Ie("__errno_location");n._fflush=Ie("fflush");var qr=n.___getTypeName=Ie("__getTypeName");n.___embind_register_native_and_builtin_types=Ie("__embind_register_native_and_builtin_types"),n._emscripten_main_thread_process_queued_calls=Ie("emscripten_main_thread_process_queued_calls");var $r=n._emscripten_stack_get_end=function(){return($r=n._emscripten_stack_get_end=n.asm.emscripten_stack_get_end).apply(null,arguments)},en=n.__get_tzname=Ie("_get_tzname"),tn=n.__get_daylight=Ie("_get_daylight"),rn=n.__get_timezone=Ie("_get_timezone"),nn=n.stackSave=Ie("stackSave"),on=n.stackRestore=Ie("stackRestore");n.stackAlloc=Ie("stackAlloc");var an=n._emscripten_stack_init=function(){return(an=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=Ie("saveSetjmp");var sn,An=n._setThrew=Ie("setThrew"),cn=n.___cxa_can_catch=Ie("__cxa_can_catch"),un=n.___cxa_is_pointer_type=Ie("__cxa_is_pointer_type"),gn=n._memalign=Ie("memalign");function dn(e){this.name="ExitStatus",this.message="Program terminated with exit(".concat(e,")"),this.status=e}function ln(e){function r(){sn||(sn=!0,n.calledRun=!0,w||(ee(),_(!ie),ie=!0,n.noFSInit||Ue.init.initialized||Ue.init(),Ue.ignorePermissions=!1,Be(re),t(n),n.onRuntimeInitialized&&n.onRuntimeInitialized(),_(!n._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),function(){if(ee(),n.postRun)for("function"==typeof n.postRun&&(n.postRun=[n.postRun]);n.postRun.length;)e=n.postRun.shift(),oe.unshift(e);var e;Be(oe)}()))}ue>0||(an(),$(),function(){if(n.preRun)for("function"==typeof n.preRun&&(n.preRun=[n.preRun]);n.preRun.length;)e=n.preRun.shift(),te.unshift(e);var e;Be(te)}(),ue>0||(n.setStatus?(n.setStatus("Running..."),setTimeout((function(){setTimeout((function(){n.setStatus("")}),1),r()}),1)):r(),ee()))}function fn(e){s(e,new dn(e))}if(n._emscripten_builtin_malloc=Ie("emscripten_builtin_malloc"),n._emscripten_builtin_free=Ie("emscripten_builtin_free"),n._emscripten_builtin_memalign=Ie("emscripten_builtin_memalign"),n.dynCall_jii=Ie("dynCall_jii"),n.dynCall_viji=Ie("dynCall_viji"),n.dynCall_jjj=Ie("dynCall_jjj"),n.dynCall_iiiijj=Ie("dynCall_iiiijj"),n.dynCall_viijj=Ie("dynCall_viijj"),n.dynCall_viiijjjj=Ie("dynCall_viiijjjj"),n.dynCall_ji=Ie("dynCall_ji"),n.dynCall_vij=Ie("dynCall_vij"),n.dynCall_viijii=Ie("dynCall_viijii"),n.dynCall_vj=Ie("dynCall_vj"),n.dynCall_viij=Ie("dynCall_viij"),n.dynCall_viiiiij=Ie("dynCall_viiiiij"),n.dynCall_iijjiiii=Ie("dynCall_iijjiiii"),n.dynCall_jiji=Ie("dynCall_jiji"),n.dynCall_iiiiij=Ie("dynCall_iiiiij"),n.dynCall_iiiiijj=Ie("dynCall_iiiiijj"),n.dynCall_iiiiiijj=Ie("dynCall_iiiiiijj"),Object.getOwnPropertyDescriptor(n,"intArrayFromString")||(n.intArrayFromString=function(){he("'intArrayFromString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"intArrayToString")||(n.intArrayToString=function(){he("'intArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ccall")||(n.ccall=function(){he("'ccall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"cwrap")||(n.cwrap=function(){he("'cwrap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setValue")||(n.setValue=function(){he("'setValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getValue")||(n.getValue=function(){he("'getValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocate")||(n.allocate=function(){he("'allocate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF8ArrayToString")||(n.UTF8ArrayToString=function(){he("'UTF8ArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF8ToString")||(n.UTF8ToString=function(){he("'UTF8ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF8Array")||(n.stringToUTF8Array=function(){he("'stringToUTF8Array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF8")||(n.stringToUTF8=function(){he("'stringToUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF8")||(n.lengthBytesUTF8=function(){he("'lengthBytesUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackTrace")||(n.stackTrace=function(){he("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPreRun")||(n.addOnPreRun=function(){he("'addOnPreRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnInit")||(n.addOnInit=function(){he("'addOnInit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPreMain")||(n.addOnPreMain=function(){he("'addOnPreMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnExit")||(n.addOnExit=function(){he("'addOnExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPostRun")||(n.addOnPostRun=function(){he("'addOnPostRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeStringToMemory")||(n.writeStringToMemory=function(){he("'writeStringToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeArrayToMemory")||(n.writeArrayToMemory=function(){he("'writeArrayToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeAsciiToMemory")||(n.writeAsciiToMemory=function(){he("'writeAsciiToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.addRunDependency=Ee,n.removeRunDependency=pe,Object.getOwnPropertyDescriptor(n,"FS_createFolder")||(n.FS_createFolder=function(){he("'FS_createFolder' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.FS_createPath=Ue.createPath,n.FS_createDataFile=Ue.createDataFile,n.FS_createPreloadedFile=Ue.createPreloadedFile,n.FS_createLazyFile=Ue.createLazyFile,Object.getOwnPropertyDescriptor(n,"FS_createLink")||(n.FS_createLink=function(){he("'FS_createLink' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.FS_createDevice=Ue.createDevice,n.FS_unlink=Ue.unlink,Object.getOwnPropertyDescriptor(n,"getLEB")||(n.getLEB=function(){he("'getLEB' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFunctionTables")||(n.getFunctionTables=function(){he("'getFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"alignFunctionTables")||(n.alignFunctionTables=function(){he("'alignFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFunctions")||(n.registerFunctions=function(){he("'registerFunctions' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addFunction")||(n.addFunction=function(){he("'addFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"removeFunction")||(n.removeFunction=function(){he("'removeFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFuncWrapper")||(n.getFuncWrapper=function(){he("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"prettyPrint")||(n.prettyPrint=function(){he("'prettyPrint' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCall")||(n.dynCall=function(){he("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getCompilerSetting")||(n.getCompilerSetting=function(){he("'getCompilerSetting' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"print")||(n.print=function(){he("'print' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"printErr")||(n.printErr=function(){he("'printErr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getTempRet0")||(n.getTempRet0=function(){he("'getTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setTempRet0")||(n.setTempRet0=function(){he("'setTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callMain")||(n.callMain=function(){he("'callMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"abort")||(n.abort=function(){he("'abort' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"keepRuntimeAlive")||(n.keepRuntimeAlive=function(){he("'keepRuntimeAlive' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"zeroMemory")||(n.zeroMemory=function(){he("'zeroMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToNewUTF8")||(n.stringToNewUTF8=function(){he("'stringToNewUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setFileTime")||(n.setFileTime=function(){he("'setFileTime' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscripten_realloc_buffer")||(n.emscripten_realloc_buffer=function(){he("'emscripten_realloc_buffer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ENV")||(n.ENV=function(){he("'ENV' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ERRNO_CODES")||(n.ERRNO_CODES=function(){he("'ERRNO_CODES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ERRNO_MESSAGES")||(n.ERRNO_MESSAGES=function(){he("'ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setErrNo")||(n.setErrNo=function(){he("'setErrNo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetPton4")||(n.inetPton4=function(){he("'inetPton4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetNtop4")||(n.inetNtop4=function(){he("'inetNtop4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetPton6")||(n.inetPton6=function(){he("'inetPton6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetNtop6")||(n.inetNtop6=function(){he("'inetNtop6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readSockaddr")||(n.readSockaddr=function(){he("'readSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeSockaddr")||(n.writeSockaddr=function(){he("'writeSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"DNS")||(n.DNS=function(){he("'DNS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getHostByName")||(n.getHostByName=function(){he("'getHostByName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GAI_ERRNO_MESSAGES")||(n.GAI_ERRNO_MESSAGES=function(){he("'GAI_ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Protocols")||(n.Protocols=function(){he("'Protocols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Sockets")||(n.Sockets=function(){he("'Sockets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getRandomDevice")||(n.getRandomDevice=function(){he("'getRandomDevice' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"traverseStack")||(n.traverseStack=function(){he("'traverseStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UNWIND_CACHE")||(n.UNWIND_CACHE=function(){he("'UNWIND_CACHE' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"withBuiltinMalloc")||(n.withBuiltinMalloc=function(){he("'withBuiltinMalloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readAsmConstArgsArray")||(n.readAsmConstArgsArray=function(){he("'readAsmConstArgsArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readAsmConstArgs")||(n.readAsmConstArgs=function(){he("'readAsmConstArgs' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"mainThreadEM_ASM")||(n.mainThreadEM_ASM=function(){he("'mainThreadEM_ASM' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jstoi_q")||(n.jstoi_q=function(){he("'jstoi_q' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jstoi_s")||(n.jstoi_s=function(){he("'jstoi_s' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getExecutableName")||(n.getExecutableName=function(){he("'getExecutableName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"listenOnce")||(n.listenOnce=function(){he("'listenOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"autoResumeAudioContext")||(n.autoResumeAudioContext=function(){he("'autoResumeAudioContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCallLegacy")||(n.dynCallLegacy=function(){he("'dynCallLegacy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getDynCaller")||(n.getDynCaller=function(){he("'getDynCaller' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCall")||(n.dynCall=function(){he("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callRuntimeCallbacks")||(n.callRuntimeCallbacks=function(){he("'callRuntimeCallbacks' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runtimeKeepalivePush")||(n.runtimeKeepalivePush=function(){he("'runtimeKeepalivePush' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runtimeKeepalivePop")||(n.runtimeKeepalivePop=function(){he("'runtimeKeepalivePop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callUserCallback")||(n.callUserCallback=function(){he("'callUserCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"maybeExit")||(n.maybeExit=function(){he("'maybeExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"safeSetTimeout")||(n.safeSetTimeout=function(){he("'safeSetTimeout' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"asmjsMangle")||(n.asmjsMangle=function(){he("'asmjsMangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"asyncLoad")||(n.asyncLoad=function(){he("'asyncLoad' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"alignMemory")||(n.alignMemory=function(){he("'alignMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"mmapAlloc")||(n.mmapAlloc=function(){he("'mmapAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"reallyNegative")||(n.reallyNegative=function(){he("'reallyNegative' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"unSign")||(n.unSign=function(){he("'unSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"reSign")||(n.reSign=function(){he("'reSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"formatString")||(n.formatString=function(){he("'formatString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PATH")||(n.PATH=function(){he("'PATH' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PATH_FS")||(n.PATH_FS=function(){he("'PATH_FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SYSCALLS")||(n.SYSCALLS=function(){he("'SYSCALLS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"syscallMmap2")||(n.syscallMmap2=function(){he("'syscallMmap2' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"syscallMunmap")||(n.syscallMunmap=function(){he("'syscallMunmap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getSocketFromFD")||(n.getSocketFromFD=function(){he("'getSocketFromFD' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getSocketAddress")||(n.getSocketAddress=function(){he("'getSocketAddress' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"JSEvents")||(n.JSEvents=function(){he("'JSEvents' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerKeyEventCallback")||(n.registerKeyEventCallback=function(){he("'registerKeyEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"specialHTMLTargets")||(n.specialHTMLTargets=function(){he("'specialHTMLTargets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"findEventTarget")||(n.findEventTarget=function(){he("'findEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"findCanvasEventTarget")||(n.findCanvasEventTarget=function(){he("'findCanvasEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getBoundingClientRect")||(n.getBoundingClientRect=function(){he("'getBoundingClientRect' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillMouseEventData")||(n.fillMouseEventData=function(){he("'fillMouseEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerMouseEventCallback")||(n.registerMouseEventCallback=function(){he("'registerMouseEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerWheelEventCallback")||(n.registerWheelEventCallback=function(){he("'registerWheelEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerUiEventCallback")||(n.registerUiEventCallback=function(){he("'registerUiEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFocusEventCallback")||(n.registerFocusEventCallback=function(){he("'registerFocusEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillDeviceOrientationEventData")||(n.fillDeviceOrientationEventData=function(){he("'fillDeviceOrientationEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerDeviceOrientationEventCallback")||(n.registerDeviceOrientationEventCallback=function(){he("'registerDeviceOrientationEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillDeviceMotionEventData")||(n.fillDeviceMotionEventData=function(){he("'fillDeviceMotionEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerDeviceMotionEventCallback")||(n.registerDeviceMotionEventCallback=function(){he("'registerDeviceMotionEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"screenOrientation")||(n.screenOrientation=function(){he("'screenOrientation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillOrientationChangeEventData")||(n.fillOrientationChangeEventData=function(){he("'fillOrientationChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerOrientationChangeEventCallback")||(n.registerOrientationChangeEventCallback=function(){he("'registerOrientationChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillFullscreenChangeEventData")||(n.fillFullscreenChangeEventData=function(){he("'fillFullscreenChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFullscreenChangeEventCallback")||(n.registerFullscreenChangeEventCallback=function(){he("'registerFullscreenChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerRestoreOldStyle")||(n.registerRestoreOldStyle=function(){he("'registerRestoreOldStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"hideEverythingExceptGivenElement")||(n.hideEverythingExceptGivenElement=function(){he("'hideEverythingExceptGivenElement' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"restoreHiddenElements")||(n.restoreHiddenElements=function(){he("'restoreHiddenElements' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setLetterbox")||(n.setLetterbox=function(){he("'setLetterbox' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"currentFullscreenStrategy")||(n.currentFullscreenStrategy=function(){he("'currentFullscreenStrategy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"restoreOldWindowedStyle")||(n.restoreOldWindowedStyle=function(){he("'restoreOldWindowedStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"softFullscreenResizeWebGLRenderTarget")||(n.softFullscreenResizeWebGLRenderTarget=function(){he("'softFullscreenResizeWebGLRenderTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"doRequestFullscreen")||(n.doRequestFullscreen=function(){he("'doRequestFullscreen' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillPointerlockChangeEventData")||(n.fillPointerlockChangeEventData=function(){he("'fillPointerlockChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerPointerlockChangeEventCallback")||(n.registerPointerlockChangeEventCallback=function(){he("'registerPointerlockChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerPointerlockErrorEventCallback")||(n.registerPointerlockErrorEventCallback=function(){he("'registerPointerlockErrorEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requestPointerLock")||(n.requestPointerLock=function(){he("'requestPointerLock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillVisibilityChangeEventData")||(n.fillVisibilityChangeEventData=function(){he("'fillVisibilityChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerVisibilityChangeEventCallback")||(n.registerVisibilityChangeEventCallback=function(){he("'registerVisibilityChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerTouchEventCallback")||(n.registerTouchEventCallback=function(){he("'registerTouchEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillGamepadEventData")||(n.fillGamepadEventData=function(){he("'fillGamepadEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerGamepadEventCallback")||(n.registerGamepadEventCallback=function(){he("'registerGamepadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerBeforeUnloadEventCallback")||(n.registerBeforeUnloadEventCallback=function(){he("'registerBeforeUnloadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillBatteryEventData")||(n.fillBatteryEventData=function(){he("'fillBatteryEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"battery")||(n.battery=function(){he("'battery' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerBatteryEventCallback")||(n.registerBatteryEventCallback=function(){he("'registerBatteryEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setCanvasElementSize")||(n.setCanvasElementSize=function(){he("'setCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getCanvasElementSize")||(n.getCanvasElementSize=function(){he("'getCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"polyfillSetImmediate")||(n.polyfillSetImmediate=function(){he("'polyfillSetImmediate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"demangle")||(n.demangle=function(){he("'demangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"demangleAll")||(n.demangleAll=function(){he("'demangleAll' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jsStackTrace")||(n.jsStackTrace=function(){he("'jsStackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackTrace")||(n.stackTrace=function(){he("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getEnvStrings")||(n.getEnvStrings=function(){he("'getEnvStrings' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"checkWasiClock")||(n.checkWasiClock=function(){he("'checkWasiClock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64")||(n.writeI53ToI64=function(){he("'writeI53ToI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64Clamped")||(n.writeI53ToI64Clamped=function(){he("'writeI53ToI64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64Signaling")||(n.writeI53ToI64Signaling=function(){he("'writeI53ToI64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToU64Clamped")||(n.writeI53ToU64Clamped=function(){he("'writeI53ToU64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToU64Signaling")||(n.writeI53ToU64Signaling=function(){he("'writeI53ToU64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readI53FromI64")||(n.readI53FromI64=function(){he("'readI53FromI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readI53FromU64")||(n.readI53FromU64=function(){he("'readI53FromU64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"convertI32PairToI53")||(n.convertI32PairToI53=function(){he("'convertI32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"convertU32PairToI53")||(n.convertU32PairToI53=function(){he("'convertU32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"uncaughtExceptionCount")||(n.uncaughtExceptionCount=function(){he("'uncaughtExceptionCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exceptionLast")||(n.exceptionLast=function(){he("'exceptionLast' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exceptionCaught")||(n.exceptionCaught=function(){he("'exceptionCaught' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ExceptionInfo")||(n.ExceptionInfo=function(){he("'ExceptionInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"CatchInfo")||(n.CatchInfo=function(){he("'CatchInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exception_addRef")||(n.exception_addRef=function(){he("'exception_addRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exception_decRef")||(n.exception_decRef=function(){he("'exception_decRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Browser")||(n.Browser=function(){he("'Browser' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"funcWrappers")||(n.funcWrappers=function(){he("'funcWrappers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFuncWrapper")||(n.getFuncWrapper=function(){he("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setMainLoop")||(n.setMainLoop=function(){he("'setMainLoop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"wget")||(n.wget=function(){he("'wget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"FS")||(n.FS=function(){he("'FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"MEMFS")||(n.MEMFS=function(){he("'MEMFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"TTY")||(n.TTY=function(){he("'TTY' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PIPEFS")||(n.PIPEFS=function(){he("'PIPEFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SOCKFS")||(n.SOCKFS=function(){he("'SOCKFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"_setNetworkCallback")||(n._setNetworkCallback=function(){he("'_setNetworkCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"tempFixedLengthArray")||(n.tempFixedLengthArray=function(){he("'tempFixedLengthArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"miniTempWebGLFloatBuffers")||(n.miniTempWebGLFloatBuffers=function(){he("'miniTempWebGLFloatBuffers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heapObjectForWebGLType")||(n.heapObjectForWebGLType=function(){he("'heapObjectForWebGLType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heapAccessShiftForWebGLHeap")||(n.heapAccessShiftForWebGLHeap=function(){he("'heapAccessShiftForWebGLHeap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.GL=Er,Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGet")||(n.emscriptenWebGLGet=function(){he("'emscriptenWebGLGet' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"computeUnpackAlignedImageSize")||(n.computeUnpackAlignedImageSize=function(){he("'computeUnpackAlignedImageSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetTexPixelData")||(n.emscriptenWebGLGetTexPixelData=function(){he("'emscriptenWebGLGetTexPixelData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetUniform")||(n.emscriptenWebGLGetUniform=function(){he("'emscriptenWebGLGetUniform' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglGetUniformLocation")||(n.webglGetUniformLocation=function(){he("'webglGetUniformLocation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglPrepareUniformLocationsBeforeFirstUse")||(n.webglPrepareUniformLocationsBeforeFirstUse=function(){he("'webglPrepareUniformLocationsBeforeFirstUse' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglGetLeftBracePos")||(n.webglGetLeftBracePos=function(){he("'webglGetLeftBracePos' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetVertexAttrib")||(n.emscriptenWebGLGetVertexAttrib=function(){he("'emscriptenWebGLGetVertexAttrib' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetBufferBinding")||(n.emscriptenWebGLGetBufferBinding=function(){he("'emscriptenWebGLGetBufferBinding' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLValidateMapBufferTarget")||(n.emscriptenWebGLValidateMapBufferTarget=function(){he("'emscriptenWebGLValidateMapBufferTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeGLArray")||(n.writeGLArray=function(){he("'writeGLArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"AL")||(n.AL=function(){he("'AL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_unicode")||(n.SDL_unicode=function(){he("'SDL_unicode' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_ttfContext")||(n.SDL_ttfContext=function(){he("'SDL_ttfContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_audio")||(n.SDL_audio=function(){he("'SDL_audio' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL")||(n.SDL=function(){he("'SDL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_gfx")||(n.SDL_gfx=function(){he("'SDL_gfx' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLUT")||(n.GLUT=function(){he("'GLUT' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"EGL")||(n.EGL=function(){he("'EGL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLFW_Window")||(n.GLFW_Window=function(){he("'GLFW_Window' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLFW")||(n.GLFW=function(){he("'GLFW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLEW")||(n.GLEW=function(){he("'GLEW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"IDBStore")||(n.IDBStore=function(){he("'IDBStore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runAndAbortIfError")||(n.runAndAbortIfError=function(){he("'runAndAbortIfError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_handle_array")||(n.emval_handle_array=function(){he("'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(){he("'emval_free_list' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_symbols")||(n.emval_symbols=function(){he("'emval_symbols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_emval")||(n.init_emval=function(){he("'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(){he("'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(){he("'get_first_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getStringOrSymbol")||(n.getStringOrSymbol=function(){he("'getStringOrSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requireHandle")||(n.requireHandle=function(){he("'requireHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_newers")||(n.emval_newers=function(){he("'emval_newers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"craftEmvalAllocator")||(n.craftEmvalAllocator=function(){he("'craftEmvalAllocator' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_get_global")||(n.emval_get_global=function(){he("'emval_get_global' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_methodCallers")||(n.emval_methodCallers=function(){he("'emval_methodCallers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"InternalError")||(n.InternalError=function(){he("'InternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"BindingError")||(n.BindingError=function(){he("'BindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UnboundTypeError")||(n.UnboundTypeError=function(){he("'UnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PureVirtualError")||(n.PureVirtualError=function(){he("'PureVirtualError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_embind")||(n.init_embind=function(){he("'init_embind' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwInternalError")||(n.throwInternalError=function(){he("'throwInternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwBindingError")||(n.throwBindingError=function(){he("'throwBindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwUnboundTypeError")||(n.throwUnboundTypeError=function(){he("'throwUnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ensureOverloadTable")||(n.ensureOverloadTable=function(){he("'ensureOverloadTable' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exposePublicSymbol")||(n.exposePublicSymbol=function(){he("'exposePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"replacePublicSymbol")||(n.replacePublicSymbol=function(){he("'replacePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"extendError")||(n.extendError=function(){he("'extendError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"createNamedFunction")||(n.createNamedFunction=function(){he("'createNamedFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredInstances")||(n.registeredInstances=function(){he("'registeredInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getBasestPointer")||(n.getBasestPointer=function(){he("'getBasestPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerInheritedInstance")||(n.registerInheritedInstance=function(){he("'registerInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"unregisterInheritedInstance")||(n.unregisterInheritedInstance=function(){he("'unregisterInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getInheritedInstance")||(n.getInheritedInstance=function(){he("'getInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getInheritedInstanceCount")||(n.getInheritedInstanceCount=function(){he("'getInheritedInstanceCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getLiveInheritedInstances")||(n.getLiveInheritedInstances=function(){he("'getLiveInheritedInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredTypes")||(n.registeredTypes=function(){he("'registeredTypes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"awaitingDependencies")||(n.awaitingDependencies=function(){he("'awaitingDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"typeDependencies")||(n.typeDependencies=function(){he("'typeDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredPointers")||(n.registeredPointers=function(){he("'registeredPointers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerType")||(n.registerType=function(){he("'registerType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"whenDependentTypesAreResolved")||(n.whenDependentTypesAreResolved=function(){he("'whenDependentTypesAreResolved' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind_charCodes")||(n.embind_charCodes=function(){he("'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(){he("'embind_init_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readLatin1String")||(n.readLatin1String=function(){he("'readLatin1String' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getTypeName")||(n.getTypeName=function(){he("'getTypeName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heap32VectorToArray")||(n.heap32VectorToArray=function(){he("'heap32VectorToArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requireRegisteredType")||(n.requireRegisteredType=function(){he("'requireRegisteredType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getShiftFromSize")||(n.getShiftFromSize=function(){he("'getShiftFromSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"integerReadValueFromPointer")||(n.integerReadValueFromPointer=function(){he("'integerReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"enumReadValueFromPointer")||(n.enumReadValueFromPointer=function(){he("'enumReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"floatReadValueFromPointer")||(n.floatReadValueFromPointer=function(){he("'floatReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"simpleReadValueFromPointer")||(n.simpleReadValueFromPointer=function(){he("'simpleReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runDestructors")||(n.runDestructors=function(){he("'runDestructors' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"new_")||(n.new_=function(){he("'new_' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"craftInvokerFunction")||(n.craftInvokerFunction=function(){he("'craftInvokerFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind__requireFunction")||(n.embind__requireFunction=function(){he("'embind__requireFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"tupleRegistrations")||(n.tupleRegistrations=function(){he("'tupleRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"structRegistrations")||(n.structRegistrations=function(){he("'structRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"genericPointerToWireType")||(n.genericPointerToWireType=function(){he("'genericPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"constNoSmartPtrRawPointerToWireType")||(n.constNoSmartPtrRawPointerToWireType=function(){he("'constNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"nonConstNoSmartPtrRawPointerToWireType")||(n.nonConstNoSmartPtrRawPointerToWireType=function(){he("'nonConstNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_RegisteredPointer")||(n.init_RegisteredPointer=function(){he("'init_RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer")||(n.RegisteredPointer=function(){he("'RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_getPointee")||(n.RegisteredPointer_getPointee=function(){he("'RegisteredPointer_getPointee' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_destructor")||(n.RegisteredPointer_destructor=function(){he("'RegisteredPointer_destructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_deleteObject")||(n.RegisteredPointer_deleteObject=function(){he("'RegisteredPointer_deleteObject' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_fromWireType")||(n.RegisteredPointer_fromWireType=function(){he("'RegisteredPointer_fromWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runDestructor")||(n.runDestructor=function(){he("'runDestructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"releaseClassHandle")||(n.releaseClassHandle=function(){he("'releaseClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"finalizationGroup")||(n.finalizationGroup=function(){he("'finalizationGroup' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"detachFinalizer_deps")||(n.detachFinalizer_deps=function(){he("'detachFinalizer_deps' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"detachFinalizer")||(n.detachFinalizer=function(){he("'detachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"attachFinalizer")||(n.attachFinalizer=function(){he("'attachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"makeClassHandle")||(n.makeClassHandle=function(){he("'makeClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_ClassHandle")||(n.init_ClassHandle=function(){he("'init_ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle")||(n.ClassHandle=function(){he("'ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_isAliasOf")||(n.ClassHandle_isAliasOf=function(){he("'ClassHandle_isAliasOf' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwInstanceAlreadyDeleted")||(n.throwInstanceAlreadyDeleted=function(){he("'throwInstanceAlreadyDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_clone")||(n.ClassHandle_clone=function(){he("'ClassHandle_clone' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_delete")||(n.ClassHandle_delete=function(){he("'ClassHandle_delete' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"deletionQueue")||(n.deletionQueue=function(){he("'deletionQueue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_isDeleted")||(n.ClassHandle_isDeleted=function(){he("'ClassHandle_isDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_deleteLater")||(n.ClassHandle_deleteLater=function(){he("'ClassHandle_deleteLater' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"flushPendingDeletes")||(n.flushPendingDeletes=function(){he("'flushPendingDeletes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"delayFunction")||(n.delayFunction=function(){he("'delayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setDelayFunction")||(n.setDelayFunction=function(){he("'setDelayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredClass")||(n.RegisteredClass=function(){he("'RegisteredClass' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"shallowCopyInternalPointer")||(n.shallowCopyInternalPointer=function(){he("'shallowCopyInternalPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"downcastPointer")||(n.downcastPointer=function(){he("'downcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"upcastPointer")||(n.upcastPointer=function(){he("'upcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"validateThis")||(n.validateThis=function(){he("'validateThis' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"char_0")||(n.char_0=function(){he("'char_0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"char_9")||(n.char_9=function(){he("'char_9' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"makeLegalFunctionName")||(n.makeLegalFunctionName=function(){he("'makeLegalFunctionName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetIndexed")||(n.emscriptenWebGLGetIndexed=function(){he("'emscriptenWebGLGetIndexed' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"warnOnce")||(n.warnOnce=function(){he("'warnOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackSave")||(n.stackSave=function(){he("'stackSave' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackRestore")||(n.stackRestore=function(){he("'stackRestore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackAlloc")||(n.stackAlloc=function(){he("'stackAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"AsciiToString")||(n.AsciiToString=function(){he("'AsciiToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToAscii")||(n.stringToAscii=function(){he("'stringToAscii' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF16ToString")||(n.UTF16ToString=function(){he("'UTF16ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF16")||(n.stringToUTF16=function(){he("'stringToUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF16")||(n.lengthBytesUTF16=function(){he("'lengthBytesUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF32ToString")||(n.UTF32ToString=function(){he("'UTF32ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF32")||(n.stringToUTF32=function(){he("'stringToUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF32")||(n.lengthBytesUTF32=function(){he("'lengthBytesUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocateUTF8")||(n.allocateUTF8=function(){he("'allocateUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocateUTF8OnStack")||(n.allocateUTF8OnStack=function(){he("'allocateUTF8OnStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.writeStackCookie=$,n.checkStackCookie=ee,Object.getOwnPropertyDescriptor(n,"ALLOC_NORMAL")||Object.defineProperty(n,"ALLOC_NORMAL",{configurable:!0,get:function(){he("'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(){he("'ALLOC_STACK' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),de=function e(){sn||ln(),sn||(de=e)},n.run=ln,n.preInit)for("function"==typeof n.preInit&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.pop()();return ln(),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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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)")}}),b(void 0===o.memoryInitializerPrefixURL,"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),b(void 0===o.pthreadMainPrefixURL,"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),b(void 0===o.cdInitializerPrefixURL,"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),b(void 0===o.filePackagePrefixURL,"Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),b(void 0===o.read,"Module.read option was removed (modify read_ in JS)"),b(void 0===o.readAsync,"Module.readAsync option was removed (modify readAsync in JS)"),b(void 0===o.readBinary,"Module.readBinary option was removed (modify readBinary in JS)"),b(void 0===o.setWindowTitle,"Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),b(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(){Ee("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(){Ee("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(){Ee("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(){Ee("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)")}}),b(!d,"shell environment detected but not enabled at build time. Add 'shell' to `-s ENVIRONMENT` to enable.");var C,w,_=0,B=function(e){_=e};o.wasmBinary&&(C=o.wasmBinary),Object.getOwnPropertyDescriptor(o,"wasmBinary")||Object.defineProperty(o,"wasmBinary",{configurable:!0,get:function(){Ee("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)")}}),o.noExitRuntime,Object.getOwnPropertyDescriptor(o,"noExitRuntime")||Object.defineProperty(o,"noExitRuntime",{configurable:!0,get:function(){Ee("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))&&Ee("no native wasm support detected");var v=!1;function b(e,t){e||Ee("Assertion failed: "+t)}var O="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function Q(e,t,r){for(var n=t+r,o=t;e[o]&&!(o>=n);)++o;if(o-t>16&&e.subarray&&O)return O.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 T(e,t){return e?Q(k,e,t):""}function P(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 M(e,t,r){return b("number"==typeof r,"stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),P(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){b(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(b(t%2==0,"Pointer passed to stringToUTF16 must be aligned to two bytes!"),b("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){b(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(b(t%4==0,"Pointer passed to stringToUTF32 must be aligned to four bytes!"),b("number"==typeof r,"stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),void 0===r&&(r=2147483647),r<4)return 0;for(var n=t,o=n+r-4,i=0;i<e.length;++i){var a=e.charCodeAt(i);if(a>=55296&&a<=57343)a=65536+((1023&a)<<10)|1023&e.charCodeAt(++i);if(j[t>>2]=a,(t+=4)+4>o)break}return j[t>>2]=0,t-n}function 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=tn(t);return r&&P(e,F,r,t),r}function Z(e){S=e,o.HEAP8=F=new Int8Array(e),o.HEAP16=x=new Int16Array(e),o.HEAP32=j=new Int32Array(e),o.HEAPU8=k=new Uint8Array(e),o.HEAPU16=N=new Uint16Array(e),o.HEAPU32=U=new Uint32Array(e),o.HEAPF32=L=new Float32Array(e),o.HEAPF64=H=new Float64Array(e)}var q=5242880;o.TOTAL_STACK&&b(q===o.TOTAL_STACK,"the stack size can no longer be determined at runtime");var $,ee=o.INITIAL_MEMORY||16777216;function te(){var e=on();b(!(3&e)),U[1+(e>>2)]=34821223,U[2+(e>>2)]=2310721022,j[0]=1668509029}function re(){if(!v){var e=on(),t=U[1+(e>>2)],r=U[2+(e>>2)];34821223==t&&2310721022==r||Ee("Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x2135467, but received 0x"+r.toString(16)+" "+t.toString(16)),1668509029!==j[0]&&Ee("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(){Ee("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)")}}),b(ee>=q,"INITIAL_MEMORY should be larger than TOTAL_STACK, was "+ee+"! (TOTAL_STACK="+q+")"),b("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"),b(!o.wasmMemory,"Use of `wasmMemory` detected. Use -s IMPORTED_MEMORY to define wasmMemory externally"),b(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;b(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),b(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),b(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),b(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 Ae=0,ce=null,ue=null,ge={};function de(e){for(var t=e;;){if(!ge[e])return e;e=t+Math.random()}}function le(e){Ae++,o.monitorRunDependencies&&o.monitorRunDependencies(Ae),e?(b(!ge[e]),ge[e]=1,null===ce&&"undefined"!=typeof setInterval&&(ce=setInterval((function(){if(v)return clearInterval(ce),void(ce=null);var e=!1;for(var t in ge)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 fe(e){if(Ae--,o.monitorRunDependencies&&o.monitorRunDependencies(Ae),e?(b(ge[e]),delete ge[e]):m("warning: run dependency removed without ID"),0==Ae&&(null!==ce&&(clearInterval(ce),ce=null),ue)){var t=ue;ue=null,t()}}function Ee(e){o.onAbort&&o.onAbort(e),m(e+=""),v=!0;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 Te(e)}();e=t;var r=new WebAssembly.RuntimeError(e);throw n(r),r}o.preloadedImages={},o.preloadedAudios={};var pe,he,Ie,me;function ye(e){return e.startsWith("data:application/octet-stream;base64,")}function Ce(e){return e.startsWith("file://")}function we(e,t){return function(){var r=e,n=t;return n=o.asm,b(se,"native function `"+r+"` called before runtime initialization"),b(!0,"native function `"+r+"` called after runtime exit (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),n[e]||b(n[e],"exported native function `"+r+"` not found"),n[e].apply(null,arguments)}}function _e(e){try{if(e==pe&&C)return new Uint8Array(C);if(p)return p(e);throw"both async and sync fetching of the wasm failed"}catch(e){Ee(e)}}ye(pe="selfie_segmentation_solution_wasm_bin.wasm")||(he=pe,pe=o.locateFile?o.locateFile(he,h):h+he);var Be,ve={460976:function(){var e=!0;if(e){var t=Br;if("function"!=typeof t)return void("undefined"!=typeof console&&console.error('Expected Emscripten global function "findCanvasEventTarget" not found. WebGL context creation may fail.'));Br=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 De(e,t){if(v)m("user callback triggered after application aborted. Ignoring.");else try{e()}catch(e){if(e instanceof hn)return;if("unwind"!==e)throw e&&"object"===E(e)&&e.stack&&m("exception thrown: "+[e,e.stack]),e}}function be(e,t){return setTimeout((function(){De(e)}),t)}Be=g?function(){var e=process.hrtime();return 1e3*e[0]+e[1]/1e6}:function(){return performance.now()};var Oe={mainLoop:{running:!1,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Oe.mainLoop.scheduler=null,Oe.mainLoop.currentlyRunningMainloop++},resume:function(){Oe.mainLoop.currentlyRunningMainloop++;var e=Oe.mainLoop.timingMode,t=Oe.mainLoop.timingValue,r=Oe.mainLoop.func;Oe.mainLoop.func=null,function(e,t,r,n){b(!Oe.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."),Oe.mainLoop.func=e,Oe.mainLoop.arg=n;var i=Oe.mainLoop.currentlyRunningMainloop;function a(){return!(i<Oe.mainLoop.currentlyRunningMainloop)}Oe.mainLoop.running=!1,Oe.mainLoop.runner=function(){if(!v)if(Oe.mainLoop.queue.length>0){var t=Date.now(),r=Oe.mainLoop.queue.shift();if(r.func(r.arg),Oe.mainLoop.remainingBlockers){var n=Oe.mainLoop.remainingBlockers,i=n%1==0?n-1:Math.floor(n);r.counted?Oe.mainLoop.remainingBlockers=i:(i+=.5,Oe.mainLoop.remainingBlockers=(8*n+i)/9)}if(I('main loop blocker "'+r.name+'" took '+(Date.now()-t)+" ms"),Oe.mainLoop.updateStatus(),!a())return;setTimeout(Oe.mainLoop.runner,0)}else a()&&(Oe.mainLoop.currentFrameNumber=Oe.mainLoop.currentFrameNumber+1|0,1==Oe.mainLoop.timingMode&&Oe.mainLoop.timingValue>1&&Oe.mainLoop.currentFrameNumber%Oe.mainLoop.timingValue!=0?Oe.mainLoop.scheduler():(0==Oe.mainLoop.timingMode&&(Oe.mainLoop.tickStartTime=Be()),yr.newRenderingFrameStarted(),void 0!==yr&&yr.currentContext&&!yr.currentContextIsProxied&&!yr.currentContext.attributes.explicitSwapControl&&yr.currentContext.GLctx.commit&&yr.currentContext.GLctx.commit(),"timeout"===Oe.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!"),Oe.mainLoop.method=""),Oe.mainLoop.runIter(e),re(),a()&&("object"===("undefined"==typeof SDL?"undefined":E(SDL))&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),Oe.mainLoop.scheduler())))}}(r,0,0,Oe.mainLoop.arg),function(e,t){if(Oe.mainLoop.timingMode=e,Oe.mainLoop.timingValue=t,!Oe.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(Oe.mainLoop.running||(Oe.mainLoop.running=!0),0==e)Oe.mainLoop.scheduler=function(){var e=0|Math.max(0,Oe.mainLoop.tickStartTime+t-Be());setTimeout(Oe.mainLoop.runner,e)},Oe.mainLoop.method="timeout";else if(1==e)Oe.mainLoop.scheduler=function(){Oe.requestAnimationFrame(Oe.mainLoop.runner)},Oe.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,"*")}}Oe.mainLoop.scheduler=function(){setImmediate(Oe.mainLoop.runner)},Oe.mainLoop.method="immediate"}}(e,t),Oe.mainLoop.scheduler()},updateStatus:function(){if(o.setStatus){var e=o.statusMessage||"Please wait...",t=Oe.mainLoop.remainingBlockers,r=Oe.mainLoop.expectedBlockers;t?t<r?o.setStatus(e+" ("+(r-t)+"/"+r+")"):o.setStatus(e):o.setStatus("")}},runIter:function(e){if(!v){if(o.preMainLoop)if(!1===o.preMainLoop())return;De(e),o.postMainLoop&&o.postMainLoop()}}},isFullscreen:!1,pointerLock:!1,moduleContextCreatedCallbacks:[],workers:[],init:function(){if(o.preloadPlugins||(o.preloadPlugins=[]),!Oe.initted){Oe.initted=!0;try{new Blob,Oe.hasBlobConstructor=!0}catch(e){Oe.hasBlobConstructor=!1,I("warning: no blob constructor, cannot create blobs with mimetypes")}Oe.BlobBuilder="undefined"!=typeof MozBlobBuilder?MozBlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:Oe.hasBlobConstructor?null:I("warning: no BlobBuilder"),Oe.URLObject="undefined"!=typeof window?window.URL?window.URL:window.webkitURL:void 0,o.noImageDecoding||void 0!==Oe.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(Oe.hasBlobConstructor)try{(i=new Blob([e],{type:Oe.getMimetype(t)})).size!==e.length&&(i=new Blob([new Uint8Array(e).buffer],{type:Oe.getMimetype(t)}))}catch(e){y("Blob constructor present but fails: "+e+"; falling back to blob builder")}if(!i){var a=new Oe.BlobBuilder;a.append(new Uint8Array(e).buffer),i=a.getBlob()}var s=Oe.URLObject.createObjectURL(i);b("string"==typeof s,"createObjectURL must return a url as a string");var A=new Image;A.onload=function(){b(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,Oe.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(!Oe.hasBlobConstructor)return s();try{var A=new Blob([e],{type:Oe.getMimetype(t)})}catch(e){return s()}var c=Oe.URLObject.createObjectURL(A);b("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,be((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){!Oe.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!==yr&&(a=yr.createContext(e,s))&&(i=yr.getContext(a).GLctx)}else i=e.getContext("2d");return i?(r&&(t||b(void 0===Vr,"cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),o.ctx=i,t&&yr.makeContextCurrent(a),o.useWebGL=t,Oe.moduleContextCreatedCallbacks.forEach((function(e){e()})),Oe.init()),i):null},destroyContext:function(e,t,r){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(e,t){Oe.lockPointer=e,Oe.resizeCanvas=t,void 0===Oe.lockPointer&&(Oe.lockPointer=!0),void 0===Oe.resizeCanvas&&(Oe.resizeCanvas=!1);var r=o.canvas;function n(){Oe.isFullscreen=!1;var e=r.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===e?(r.exitFullscreen=Oe.exitFullscreen,Oe.lockPointer&&r.requestPointerLock(),Oe.isFullscreen=!0,Oe.resizeCanvas?Oe.setFullscreenCanvasSize():Oe.updateCanvasDimensions(r)):(e.parentNode.insertBefore(r,e),e.parentNode.removeChild(e),Oe.resizeCanvas?Oe.setWindowedCanvasSize():Oe.updateCanvasDimensions(r)),o.onFullScreen&&o.onFullScreen(Oe.isFullscreen),o.onFullscreen&&o.onFullscreen(Oe.isFullscreen)}Oe.fullscreenHandlersInstalled||(Oe.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(){Ee("Module.requestFullScreen has been replaced by Module.requestFullscreen (without a capital S)")},exitFullscreen:function(){return!!Oe.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===Oe.nextRAF)Oe.nextRAF=t+1e3/60;else for(;t+2>=Oe.nextRAF;)Oe.nextRAF+=1e3/60;var r=Math.max(Oe.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,Oe.fakeRequestAnimationFrame)(e):requestAnimationFrame(e)})),safeSetTimeout:function(e){return be(e)},safeRequestAnimationFrame:function(e){return Oe.requestAnimationFrame((function(){De(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(Oe.pointerLock)"mousemove"!=e.type&&"mozMovementX"in e?Oe.mouseMovementX=Oe.mouseMovementY=0:(Oe.mouseMovementX=Oe.getMovementX(e),Oe.mouseMovementY=Oe.getMovementY(e)),"undefined"!=typeof SDL?(Oe.mouseX=SDL.mouseX+Oe.mouseMovementX,Oe.mouseY=SDL.mouseY+Oe.mouseMovementY):(Oe.mouseX+=Oe.mouseMovementX,Oe.mouseY+=Oe.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(b(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)Oe.lastTouches[s.identifier]=u,Oe.touches[s.identifier]=u;else if("touchend"===e.type||"touchmove"===e.type){var g=Oe.touches[s.identifier];g||(g=u),Oe.lastTouches[s.identifier]=g,Oe.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,Oe.mouseMovementX=d-Oe.mouseX,Oe.mouseMovementY=l-Oe.mouseY,Oe.mouseX=d,Oe.mouseY=l}},resizeListeners:[],updateResizeListeners:function(){var e=o.canvas;Oe.resizeListeners.forEach((function(t){t(e.width,e.height)}))},setCanvasSize:function(e,t,r){var n=o.canvas;Oe.updateCanvasDimensions(n,e,t),r||Oe.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if("undefined"!=typeof SDL){var e=U[SDL.screen>>2];e|=8388608,j[SDL.screen>>2]=e}Oe.updateCanvasDimensions(o.canvas),Oe.updateResizeListeners()},setWindowedCanvasSize:function(){if("undefined"!=typeof SDL){var e=U[SDL.screen>>2];e&=-8388609,j[SDL.screen>>2]=e}Oe.updateCanvasDimensions(o.canvas),Oe.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)}Oe.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 Qe(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(o)}}function Te(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 Pe(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,b(e>0),1===e}}function Me(e){this.free=function(){en(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(En(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 Pe(this.get_base_ptr())},void 0===e?(this.ptr=tn(8),this.set_adjusted_ptr(0)):this.ptr=e}var Re=[];var Se=0;function Fe(e){try{return en(new Pe(e).ptr)}catch(e){m("exception during cxa_free_exception: "+e)}}function ke(e){return j[rn()>>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 Ne(){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(){Ee("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 je={resolve:function(){for(var e="",t=!1,r=arguments.length-1;r>=-1&&!t;r--){var n=r>=0?arguments[r]:Xe.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=je.resolve(e).substr(1),t=je.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("/")}},Ue={ttys:[],init:function(){},shutdown:function(){},register:function(e,t){Ue.ttys[e]={input:[],output:[],ops:t},Xe.registerDevice(e,Ue.stream_ops)},stream_ops:{open:function(e){var t=Ue.ttys[e.node.rdev];if(!t)throw new Xe.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 Xe.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 Xe.ErrnoError(29)}if(void 0===s&&0===i)throw new Xe.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 Xe.ErrnoError(60);try{for(var i=0;i<n;i++)e.tty.ops.put_char(e.tty,t[r+i])}catch(e){throw new Xe.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=qr(t,!0)}return e.input.shift()},put_char:function(e,t){null===t||10===t?(I(Q(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(I(Q(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,t){null===t||10===t?(m(Q(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(m(Q(e.output,0)),e.output=[])}}};function Le(e){e=function(e,t){return b(t,"alignment argument is required"),Math.ceil(e/t)*t}(e,65536);var t=pn(65536,e);return t?(function(e,t){k.fill(0,e,e+t)}(t,e),t):0}var He={ops_table:null,mount:function(e){return He.createNode(null,"/",16895,0)},createNode:function(e,t,r,n){if(Xe.isBlkdev(r)||Xe.isFIFO(r))throw new Xe.ErrnoError(63);He.ops_table||(He.ops_table={dir:{node:{getattr:He.node_ops.getattr,setattr:He.node_ops.setattr,lookup:He.node_ops.lookup,mknod:He.node_ops.mknod,rename:He.node_ops.rename,unlink:He.node_ops.unlink,rmdir:He.node_ops.rmdir,readdir:He.node_ops.readdir,symlink:He.node_ops.symlink},stream:{llseek:He.stream_ops.llseek}},file:{node:{getattr:He.node_ops.getattr,setattr:He.node_ops.setattr},stream:{llseek:He.stream_ops.llseek,read:He.stream_ops.read,write:He.stream_ops.write,allocate:He.stream_ops.allocate,mmap:He.stream_ops.mmap,msync:He.stream_ops.msync}},link:{node:{getattr:He.node_ops.getattr,setattr:He.node_ops.setattr,readlink:He.node_ops.readlink},stream:{}},chrdev:{node:{getattr:He.node_ops.getattr,setattr:He.node_ops.setattr},stream:Xe.chrdev_stream_ops}});var o=Xe.createNode(e,t,r,n);return Xe.isDir(o.mode)?(o.node_ops=He.ops_table.dir.node,o.stream_ops=He.ops_table.dir.stream,o.contents={}):Xe.isFile(o.mode)?(o.node_ops=He.ops_table.file.node,o.stream_ops=He.ops_table.file.stream,o.usedBytes=0,o.contents=null):Xe.isLink(o.mode)?(o.node_ops=He.ops_table.link.node,o.stream_ops=He.ops_table.link.stream):Xe.isChrdev(o.mode)&&(o.node_ops=He.ops_table.chrdev.node,o.stream_ops=He.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=Xe.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,Xe.isDir(e.mode)?t.size=4096:Xe.isFile(e.mode)?t.size=e.usedBytes:Xe.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&&He.resizeFileStorage(e,t.size)},lookup:function(e,t){throw Xe.genericErrors[44]},mknod:function(e,t,r,n){return He.createNode(e,t,r,n)},rename:function(e,t,r){if(Xe.isDir(e.mode)){var n;try{n=Xe.lookupNode(t,r)}catch(e){}if(n)for(var o in n.contents)throw new Xe.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=Xe.lookupNode(e,t);for(var n in r.contents)throw new Xe.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=He.createNode(e,t,41471,0);return n.link=r,n},readlink:function(e){if(!Xe.isLink(e.mode))throw new Xe.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(b(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(b(!(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 b(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(He.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&&Xe.isFile(e.node.mode)&&(n+=e.node.usedBytes),n<0)throw new Xe.ErrnoError(28);return n},allocate:function(e,t,r){He.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 Xe.ErrnoError(28);if(!Xe.isFile(e.node.mode))throw new Xe.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=Le(r)))throw new Xe.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(!Xe.isFile(e.node.mode))throw new Xe.ErrnoError(43);return 2&o||He.stream_ops.write(e,t,0,n,r,!1),0}}};var Ge={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"},Ye={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},Xe={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=je.resolve(Xe.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 Xe.ErrnoError(32);for(var o=xe.normalizeArray(e.split("/").filter((function(e){return!!e})),!1),i=Xe.root,a="/",s=0;s<o.length;s++){var A=s===o.length-1;if(A&&t.parent)break;if(i=Xe.lookupNode(i,o[s]),a=xe.join2(a,o[s]),Xe.isMountpoint(i)&&(!A||A&&t.follow_mount)&&(i=i.mounted.root),!A||t.follow)for(var c=0;Xe.isLink(i.mode);){var u=Xe.readlink(a);if(a=je.resolve(xe.dirname(a),u),i=Xe.lookupPath(a,{recurse_count:t.recurse_count}).node,c++>40)throw new Xe.ErrnoError(32)}}return{path:a,node:i}},getPath:function(e){for(var t;;){if(Xe.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)%Xe.nameTable.length},hashAddNode:function(e){var t=Xe.hashName(e.parent.id,e.name);e.name_next=Xe.nameTable[t],Xe.nameTable[t]=e},hashRemoveNode:function(e){var t=Xe.hashName(e.parent.id,e.name);if(Xe.nameTable[t]===e)Xe.nameTable[t]=e.name_next;else for(var r=Xe.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=Xe.mayLookup(e);if(r)throw new Xe.ErrnoError(r,e);for(var n=Xe.hashName(e.id,t),o=Xe.nameTable[n];o;o=o.name_next){var i=o.name;if(o.parent.id===e.id&&i===t)return o}return Xe.lookup(e,t)},createNode:function(e,t,r,n){b("object"===E(e));var o=new Xe.FSNode(e,t,r,n);return Xe.hashAddNode(o),o},destroyNode:function(e){Xe.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=Xe.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 Xe.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=Xe.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate:function(e,t){try{Xe.lookupNode(e,t);return 20}catch(e){}return Xe.nodePermissions(e,"wx")},mayDelete:function(e,t,r){var n;try{n=Xe.lookupNode(e,t)}catch(e){return e.errno}var o=Xe.nodePermissions(e,"wx");if(o)return o;if(r){if(!Xe.isDir(n.mode))return 54;if(Xe.isRoot(n)||Xe.getPath(n)===Xe.cwd())return 10}else if(Xe.isDir(n.mode))return 31;return 0},mayOpen:function(e,t){return e?Xe.isLink(e.mode)?32:Xe.isDir(e.mode)&&("r"!==Xe.flagsToPermissionString(t)||512&t)?31:Xe.nodePermissions(e,Xe.flagsToPermissionString(t)):44},MAX_OPEN_FDS:4096,nextfd:function(e,t){e=e||0,t=t||Xe.MAX_OPEN_FDS;for(var r=e;r<=t;r++)if(!Xe.streams[r])return r;throw new Xe.ErrnoError(33)},getStream:function(e){return Xe.streams[e]},createStream:function(e,t,r){Xe.FSStream||(Xe.FSStream=function(){},Xe.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 Xe.FSStream;for(var o in e)n[o]=e[o];e=n;var i=Xe.nextfd(t,r);return e.fd=i,Xe.streams[i]=e,e},closeStream:function(e){Xe.streams[e]=null},chrdev_stream_ops:{open:function(e){var t=Xe.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:function(){throw new Xe.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){Xe.devices[e]={stream_ops:t}},getDevice:function(e){return Xe.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),Xe.syncFSRequests++,Xe.syncFSRequests>1&&m("warning: "+Xe.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var r=Xe.getMounts(Xe.root.mount),n=0;function o(e){return b(Xe.syncFSRequests>0),Xe.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&&Xe.root)throw new Xe.ErrnoError(10);if(!o&&!i){var a=Xe.lookupPath(r,{follow_mount:!1});if(r=a.path,n=a.node,Xe.isMountpoint(n))throw new Xe.ErrnoError(10);if(!Xe.isDir(n.mode))throw new Xe.ErrnoError(54)}var s={type:e,opts:t,mountpoint:r,mounts:[]},A=e.mount(s);return A.mount=s,s.root=A,o?Xe.root=A:n&&(n.mounted=s,n.mount&&n.mount.mounts.push(s)),A},unmount:function(e){var t=Xe.lookupPath(e,{follow_mount:!1});if(!Xe.isMountpoint(t.node))throw new Xe.ErrnoError(28);var r=t.node,n=r.mounted,o=Xe.getMounts(n);Object.keys(Xe.nameTable).forEach((function(e){for(var t=Xe.nameTable[e];t;){var r=t.name_next;o.includes(t.mount)&&Xe.destroyNode(t),t=r}})),r.mounted=null;var i=r.mount.mounts.indexOf(n);b(-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=Xe.lookupPath(e,{parent:!0}).node,o=xe.basename(e);if(!o||"."===o||".."===o)throw new Xe.ErrnoError(28);var i=Xe.mayCreate(n,o);if(i)throw new Xe.ErrnoError(i);if(!n.node_ops.mknod)throw new Xe.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,Xe.mknod(e,t,0)},mkdir:function(e,t){return t=void 0!==t?t:511,t&=1023,t|=16384,Xe.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{Xe.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,Xe.mknod(e,t,r)},symlink:function(e,t){if(!je.resolve(e))throw new Xe.ErrnoError(44);var r=Xe.lookupPath(t,{parent:!0}).node;if(!r)throw new Xe.ErrnoError(44);var n=xe.basename(t),o=Xe.mayCreate(r,n);if(o)throw new Xe.ErrnoError(o);if(!r.node_ops.symlink)throw new Xe.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=Xe.lookupPath(e,{parent:!0}).node,n=Xe.lookupPath(t,{parent:!0}).node,!r||!n)throw new Xe.ErrnoError(44);if(r.mount!==n.mount)throw new Xe.ErrnoError(75);var A,c=Xe.lookupNode(r,a),u=je.relative(e,i);if("."!==u.charAt(0))throw new Xe.ErrnoError(28);if("."!==(u=je.relative(t,o)).charAt(0))throw new Xe.ErrnoError(55);try{A=Xe.lookupNode(n,s)}catch(e){}if(c!==A){var g=Xe.isDir(c.mode),d=Xe.mayDelete(r,a,g);if(d)throw new Xe.ErrnoError(d);if(d=A?Xe.mayDelete(n,s,g):Xe.mayCreate(n,s))throw new Xe.ErrnoError(d);if(!r.node_ops.rename)throw new Xe.ErrnoError(63);if(Xe.isMountpoint(c)||A&&Xe.isMountpoint(A))throw new Xe.ErrnoError(10);if(n!==r&&(d=Xe.nodePermissions(r,"w")))throw new Xe.ErrnoError(d);try{Xe.trackingDelegate.willMovePath&&Xe.trackingDelegate.willMovePath(e,t)}catch(r){m("FS.trackingDelegate['willMovePath']('"+e+"', '"+t+"') threw an exception: "+r.message)}Xe.hashRemoveNode(c);try{r.node_ops.rename(c,n,s)}catch(e){throw e}finally{Xe.hashAddNode(c)}try{Xe.trackingDelegate.onMovePath&&Xe.trackingDelegate.onMovePath(e,t)}catch(r){m("FS.trackingDelegate['onMovePath']('"+e+"', '"+t+"') threw an exception: "+r.message)}}},rmdir:function(e){var t=Xe.lookupPath(e,{parent:!0}).node,r=xe.basename(e),n=Xe.lookupNode(t,r),o=Xe.mayDelete(t,r,!0);if(o)throw new Xe.ErrnoError(o);if(!t.node_ops.rmdir)throw new Xe.ErrnoError(63);if(Xe.isMountpoint(n))throw new Xe.ErrnoError(10);try{Xe.trackingDelegate.willDeletePath&&Xe.trackingDelegate.willDeletePath(e)}catch(t){m("FS.trackingDelegate['willDeletePath']('"+e+"') threw an exception: "+t.message)}t.node_ops.rmdir(t,r),Xe.destroyNode(n);try{Xe.trackingDelegate.onDeletePath&&Xe.trackingDelegate.onDeletePath(e)}catch(t){m("FS.trackingDelegate['onDeletePath']('"+e+"') threw an exception: "+t.message)}},readdir:function(e){var t=Xe.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new Xe.ErrnoError(54);return t.node_ops.readdir(t)},unlink:function(e){var t=Xe.lookupPath(e,{parent:!0}).node,r=xe.basename(e),n=Xe.lookupNode(t,r),o=Xe.mayDelete(t,r,!1);if(o)throw new Xe.ErrnoError(o);if(!t.node_ops.unlink)throw new Xe.ErrnoError(63);if(Xe.isMountpoint(n))throw new Xe.ErrnoError(10);try{Xe.trackingDelegate.willDeletePath&&Xe.trackingDelegate.willDeletePath(e)}catch(t){m("FS.trackingDelegate['willDeletePath']('"+e+"') threw an exception: "+t.message)}t.node_ops.unlink(t,r),Xe.destroyNode(n);try{Xe.trackingDelegate.onDeletePath&&Xe.trackingDelegate.onDeletePath(e)}catch(t){m("FS.trackingDelegate['onDeletePath']('"+e+"') threw an exception: "+t.message)}},readlink:function(e){var t=Xe.lookupPath(e).node;if(!t)throw new Xe.ErrnoError(44);if(!t.node_ops.readlink)throw new Xe.ErrnoError(28);return je.resolve(Xe.getPath(t.parent),t.node_ops.readlink(t))},stat:function(e,t){var r=Xe.lookupPath(e,{follow:!t}).node;if(!r)throw new Xe.ErrnoError(44);if(!r.node_ops.getattr)throw new Xe.ErrnoError(63);return r.node_ops.getattr(r)},lstat:function(e){return Xe.stat(e,!0)},chmod:function(e,t,r){var n;"string"==typeof e?n=Xe.lookupPath(e,{follow:!r}).node:n=e;if(!n.node_ops.setattr)throw new Xe.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&t|-4096&n.mode,timestamp:Date.now()})},lchmod:function(e,t){Xe.chmod(e,t,!0)},fchmod:function(e,t){var r=Xe.getStream(e);if(!r)throw new Xe.ErrnoError(8);Xe.chmod(r.node,t)},chown:function(e,t,r,n){var o;"string"==typeof e?o=Xe.lookupPath(e,{follow:!n}).node:o=e;if(!o.node_ops.setattr)throw new Xe.ErrnoError(63);o.node_ops.setattr(o,{timestamp:Date.now()})},lchown:function(e,t,r){Xe.chown(e,t,r,!0)},fchown:function(e,t,r){var n=Xe.getStream(e);if(!n)throw new Xe.ErrnoError(8);Xe.chown(n.node,t,r)},truncate:function(e,t){if(t<0)throw new Xe.ErrnoError(28);var r;"string"==typeof e?r=Xe.lookupPath(e,{follow:!0}).node:r=e;if(!r.node_ops.setattr)throw new Xe.ErrnoError(63);if(Xe.isDir(r.mode))throw new Xe.ErrnoError(31);if(!Xe.isFile(r.mode))throw new Xe.ErrnoError(28);var n=Xe.nodePermissions(r,"w");if(n)throw new Xe.ErrnoError(n);r.node_ops.setattr(r,{size:t,timestamp:Date.now()})},ftruncate:function(e,t){var r=Xe.getStream(e);if(!r)throw new Xe.ErrnoError(8);if(!(2097155&r.flags))throw new Xe.ErrnoError(28);Xe.truncate(r.node,t)},utime:function(e,t,r){var n=Xe.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 Xe.ErrnoError(44);var a;if(r=void 0===r?438:r,r=64&(t="string"==typeof t?Xe.modeStringToFlags(t):t)?4095&r|32768:0,"object"===E(e))a=e;else{e=xe.normalize(e);try{a=Xe.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var s=!1;if(64&t)if(a){if(128&t)throw new Xe.ErrnoError(20)}else a=Xe.mknod(e,r,0),s=!0;if(!a)throw new Xe.ErrnoError(44);if(Xe.isChrdev(a.mode)&&(t&=-513),65536&t&&!Xe.isDir(a.mode))throw new Xe.ErrnoError(54);if(!s){var A=Xe.mayOpen(a,t);if(A)throw new Xe.ErrnoError(A)}512&t&&Xe.truncate(a,0),t&=-131713;var c=Xe.createStream({node:a,path:Xe.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||(Xe.readFiles||(Xe.readFiles={}),e in Xe.readFiles||(Xe.readFiles[e]=1,m("FS.trackingDelegate error on read file: "+e)));try{if(Xe.trackingDelegate.onOpenFile){var u=0;1!=(2097155&t)&&(u|=Xe.tracking.openFlags.READ),2097155&t&&(u|=Xe.tracking.openFlags.WRITE),Xe.trackingDelegate.onOpenFile(e,u)}}catch(t){m("FS.trackingDelegate['onOpenFile']('"+e+"', flags) threw an exception: "+t.message)}return c},close:function(e){if(Xe.isClosed(e))throw new Xe.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{Xe.closeStream(e.fd)}e.fd=null},isClosed:function(e){return null===e.fd},llseek:function(e,t,r){if(Xe.isClosed(e))throw new Xe.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new Xe.ErrnoError(70);if(0!=r&&1!=r&&2!=r)throw new Xe.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 Xe.ErrnoError(28);if(Xe.isClosed(e))throw new Xe.ErrnoError(8);if(1==(2097155&e.flags))throw new Xe.ErrnoError(8);if(Xe.isDir(e.node.mode))throw new Xe.ErrnoError(31);if(!e.stream_ops.read)throw new Xe.ErrnoError(28);var i=void 0!==o;if(i){if(!e.seekable)throw new Xe.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 Xe.ErrnoError(28);if(Xe.isClosed(e))throw new Xe.ErrnoError(8);if(!(2097155&e.flags))throw new Xe.ErrnoError(8);if(Xe.isDir(e.node.mode))throw new Xe.ErrnoError(31);if(!e.stream_ops.write)throw new Xe.ErrnoError(28);e.seekable&&1024&e.flags&&Xe.llseek(e,0,2);var a=void 0!==o;if(a){if(!e.seekable)throw new Xe.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&&Xe.trackingDelegate.onWriteToFile&&Xe.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(Xe.isClosed(e))throw new Xe.ErrnoError(8);if(t<0||r<=0)throw new Xe.ErrnoError(28);if(!(2097155&e.flags))throw new Xe.ErrnoError(8);if(!Xe.isFile(e.node.mode)&&!Xe.isDir(e.node.mode))throw new Xe.ErrnoError(43);if(!e.stream_ops.allocate)throw new Xe.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 Xe.ErrnoError(2);if(1==(2097155&e.flags))throw new Xe.ErrnoError(2);if(!e.stream_ops.mmap)throw new Xe.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 Xe.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=Xe.open(e,t.flags),o=Xe.stat(e).size,i=new Uint8Array(o);return Xe.read(n,i,0,o,0),"utf8"===t.encoding?r=Q(i,0):"binary"===t.encoding&&(r=i),Xe.close(n),r},writeFile:function(e,t,r){(r=r||{}).flags=r.flags||577;var n=Xe.open(e,r.flags,r.mode);if("string"==typeof t){var o=new Uint8Array(R(t)+1),i=P(t,o,0,o.length);Xe.write(n,o,0,i,void 0,r.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");Xe.write(n,t,0,t.byteLength,void 0,r.canOwn)}Xe.close(n)},cwd:function(){return Xe.currentPath},chdir:function(e){var t=Xe.lookupPath(e,{follow:!0});if(null===t.node)throw new Xe.ErrnoError(44);if(!Xe.isDir(t.node.mode))throw new Xe.ErrnoError(54);var r=Xe.nodePermissions(t.node,"x");if(r)throw new Xe.ErrnoError(r);Xe.currentPath=t.path},createDefaultDirectories:function(){Xe.mkdir("/tmp"),Xe.mkdir("/home"),Xe.mkdir("/home/web_user")},createDefaultDevices:function(){Xe.mkdir("/dev"),Xe.registerDevice(Xe.makedev(1,3),{read:function(){return 0},write:function(e,t,r,n,o){return n}}),Xe.mkdev("/dev/null",Xe.makedev(1,3)),Ue.register(Xe.makedev(5,0),Ue.default_tty_ops),Ue.register(Xe.makedev(6,0),Ue.default_tty1_ops),Xe.mkdev("/dev/tty",Xe.makedev(5,0)),Xe.mkdev("/dev/tty1",Xe.makedev(6,0));var e=Ne();Xe.createDevice("/dev","random",e),Xe.createDevice("/dev","urandom",e),Xe.mkdir("/dev/shm"),Xe.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){Xe.mkdir("/proc");var e=Xe.mkdir("/proc/self");Xe.mkdir("/proc/self/fd"),Xe.mount({mount:function(){var t=Xe.createNode(e,"fd",16895,73);return t.node_ops={lookup:function(e,t){var r=+t,n=Xe.getStream(r);if(!n)throw new Xe.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?Xe.createDevice("/dev","stdin",o.stdin):Xe.symlink("/dev/tty","/dev/stdin"),o.stdout?Xe.createDevice("/dev","stdout",null,o.stdout):Xe.symlink("/dev/tty","/dev/stdout"),o.stderr?Xe.createDevice("/dev","stderr",null,o.stderr):Xe.symlink("/dev/tty1","/dev/stderr");var e=Xe.open("/dev/stdin",0),t=Xe.open("/dev/stdout",1),r=Xe.open("/dev/stderr",1);b(0===e.fd,"invalid handle for stdin ("+e.fd+")"),b(1===t.fd,"invalid handle for stdout ("+t.fd+")"),b(2===r.fd,"invalid handle for stderr ("+r.fd+")")},ensureErrnoError:function(){Xe.ErrnoError||(Xe.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){for(var t in this.errno=e,Ye)if(Ye[t]===e){this.code=t;break}},this.setErrno(e),this.message=Ge[e],this.stack&&(Object.defineProperty(this,"stack",{value:(new Error).stack,writable:!0}),this.stack=Te(this.stack))},Xe.ErrnoError.prototype=new Error,Xe.ErrnoError.prototype.constructor=Xe.ErrnoError,[44].forEach((function(e){Xe.genericErrors[e]=new Xe.ErrnoError(e),Xe.genericErrors[e].stack="<generic error, no stack>"})))},staticInit:function(){Xe.ensureErrnoError(),Xe.nameTable=new Array(4096),Xe.mount(He,{},"/"),Xe.createDefaultDirectories(),Xe.createDefaultDevices(),Xe.createSpecialDirectories(),Xe.filesystems={MEMFS:He}},init:function(e,t,r){b(!Xe.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)"),Xe.init.initialized=!0,Xe.ensureErrnoError(),o.stdin=e||o.stdin,o.stdout=t||o.stdout,o.stderr=r||o.stderr,Xe.createStandardStreams()},quit:function(){Xe.init.initialized=!1;var e=o._fflush;e&&e(0);for(var t=0;t<Xe.streams.length;t++){var r=Xe.streams[t];r&&Xe.close(r)}},getMode:function(e,t){var r=0;return e&&(r|=365),t&&(r|=146),r},findObject:function(e,t){var r=Xe.analyzePath(e,t);return r.exists?r.object:null},analyzePath:function(e,t){try{e=(n=Xe.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=Xe.lookupPath(e,{parent:!0});r.parentExists=!0,r.parentPath=n.path,r.parentObject=n.node,r.name=xe.basename(e),n=Xe.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:Xe.getPath(e);for(var o=t.split("/").reverse();o.length;){var i=o.pop();if(i){var a=xe.join2(e,i);try{Xe.mkdir(a)}catch(e){}e=a}}return a},createFile:function(e,t,r,n,o){var i=xe.join2("string"==typeof e?e:Xe.getPath(e),t),a=Xe.getMode(n,o);return Xe.create(i,a)},createDataFile:function(e,t,r,n,o,i){var a=t?xe.join2("string"==typeof e?e:Xe.getPath(e),t):e,s=Xe.getMode(n,o),A=Xe.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}Xe.chmod(A,146|s);var d=Xe.open(A,577);Xe.write(d,r,0,r.length,0,i),Xe.close(d),Xe.chmod(A,s)}return A},createDevice:function(e,t,r,n){var o=xe.join2("string"==typeof e?e:Xe.getPath(e),t),i=Xe.getMode(!!r,!!n);Xe.createDevice.major||(Xe.createDevice.major=64);var a=Xe.makedev(Xe.createDevice.major++,0);return Xe.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 Xe.ErrnoError(29)}if(void 0===A&&0===a)throw new Xe.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 Xe.ErrnoError(29)}return o&&(e.node.timestamp=Date.now()),a}}),Xe.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=qr(l(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new Xe.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||[]):qr(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=Xe.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 Xe.forceLoadFile(A),t.apply(null,arguments)}})),c.read=function(e,t,r,n,o){Xe.forceLoadFile(A);var i=e.node.contents;if(o>=i.length)return 0;var a=Math.min(i.length-o,n);if(b(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){Oe.init();var g=t?je.resolve(xe.join2(e,t)):e,d=de("cp "+g);function l(r){function l(r){u&&u(),A||Xe.createDataFile(e,t,r,n,i,c),a&&a(),fe(d)}var f=!1;o.preloadPlugins.forEach((function(e){f||e.canHandle(g)&&(e.handle(r,g,l,(function(){s&&s(),fe(d)})),f=!0)})),f||l(r)}le(d),"string"==typeof r?function(e,t,r){var n=de("al "+e);f(e,(function(r){b(r,'Loading data file "'+e+'" failed (no arrayBuffer).'),t(new Uint8Array(r)),n&&fe(n)}),(function(t){if(!r)throw'Loading data file "'+e+'" failed.';r()})),n&&le(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=Xe.indexedDB();try{var o=n.open(Xe.DB_NAME(),Xe.DB_VERSION)}catch(e){return r(e)}o.onupgradeneeded=function(){I("creating db"),o.result.createObjectStore(Xe.DB_STORE_NAME)},o.onsuccess=function(){var n=o.result.transaction([Xe.DB_STORE_NAME],"readwrite"),i=n.objectStore(Xe.DB_STORE_NAME),a=0,s=0,A=e.length;function c(){0==s?t():r()}e.forEach((function(e){var t=i.put(Xe.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=Xe.indexedDB();try{var o=n.open(Xe.DB_NAME(),Xe.DB_VERSION)}catch(e){return r(e)}o.onupgradeneeded=r,o.onsuccess=function(){var n=o.result;try{var i=n.transaction([Xe.DB_STORE_NAME],"readonly")}catch(e){return void r(e)}var a=i.objectStore(Xe.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(){Xe.analyzePath(e).exists&&Xe.unlink(e),Xe.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(){Ee("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder:function(){Ee("FS.createFolder has been removed; use FS.mkdir instead")},createLink:function(){Ee("FS.createLink has been removed; use FS.symlink instead")},joinPath:function(){Ee("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc:function(){Ee("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath:function(){Ee("FS.standardizePath has been removed; use PATH.normalize instead")}},We={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt:function(e,t,r){if("/"===t[0])return t;var n;if(-100===e)n=Xe.cwd();else{var o=Xe.getStream(e);if(!o)throw new Xe.ErrnoError(8);n=o.path}if(0==t.length){if(!r)throw new Xe.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(Xe.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,me=[n.size>>>0,(Ie=n.size,+Math.abs(Ie)>=1?Ie>0?(0|Math.min(+Math.floor(Ie/4294967296),4294967295))>>>0:~~+Math.ceil((Ie-+(~~Ie>>>0))/4294967296)>>>0:0)],j[r+40>>2]=me[0],j[r+44>>2]=me[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,me=[n.ino>>>0,(Ie=n.ino,+Math.abs(Ie)>=1?Ie>0?(0|Math.min(+Math.floor(Ie/4294967296),4294967295))>>>0:~~+Math.ceil((Ie-+(~~Ie>>>0))/4294967296)>>>0:0)],j[r+80>>2]=me[0],j[r+84>>2]=me[1],0},doMsync:function(e,t,r,n,o){var i=k.slice(e,e+r);Xe.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)),Xe.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 Xe.mknod(e,t,r),0},doReadlink:function(e,t,r){if(r<=0)return-28;var n=Xe.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=Xe.lookupPath(e,{follow:!0}).node))return-44;var n="";return 4&t&&(n+="r"),2&t&&(n+="w"),1&t&&(n+="x"),n&&Xe.nodePermissions(r,n)?-2:0},doDup:function(e,t,r){var n=Xe.getStream(r);return n&&Xe.close(n),Xe.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=Xe.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=Xe.write(e,F,a,s,n);if(A<0)return-1;o+=A}return o},varargs:void 0,get:function(){return b(null!=We.varargs),We.varargs+=4,j[We.varargs-4>>2]},getStr:function(e){return T(e)},getStreamFromFD:function(e){var t=Xe.getStream(e);if(!t)throw new Xe.ErrnoError(8);return t},get64:function(e,t){return b(e>=0?0===t:-1===t),e}};function Ve(e){if(void 0===e)return"_unknown";var t=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return t>=48&&t<=57?"_"+e:e}function ze(e,t){return e=Ve(e),new Function("body","return function "+e+'() {\n "use strict"; return body.apply(this, arguments);\n};\n')(t)}var Je=[],Ke=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function Ze(){for(var e=0,t=5;t<Ke.length;++t)void 0!==Ke[t]&&++e;return e}function qe(){for(var e=5;e<Ke.length;++e)if(void 0!==Ke[e])return Ke[e];return null}function $e(e){switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var t=Je.length?Je.pop():Ke.length;return Ke[t]={refcount:1,value:e},t}}function et(e,t){var r=ze(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 tt=void 0;var rt=void 0;function nt(e){for(var t="",r=e;k[r];)t+=rt[k[r++]];return t}function ot(){return Object.keys(ut).length}function it(){var e=[];for(var t in ut)ut.hasOwnProperty(t)&&e.push(ut[t]);return e}var at=[];function st(){for(;at.length;){var e=at.pop();e.$$.deleteScheduled=!1,e.delete()}}var At=void 0;function ct(e){At=e,at.length&&At&&At(st)}var ut={},gt=void 0;function dt(e){throw new gt(e)}function lt(e,t){for(void 0===t&&dt("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t}function ft(e){return e||dt("Cannot use deleted val. handle = "+e),Ke[e].value}var Et={};function pt(e){var t=nn(e),r=nt(t);return en(t),r}function ht(e,t){var r=Et[e];return void 0===r&&dt(t+" has unknown type "+pt(e)),r}function It(e){}var mt=!1;function yt(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 Ct(e){return"undefined"==typeof FinalizationGroup?(Ct=function(e){return e},e):(mt=new FinalizationGroup((function(e){for(var t=e.next();!t.done;t=e.next()){var r=t.value;r.ptr?yt(r):console.warn("object already deleted: "+r.ptr)}})),It=function(e){mt.unregister(e.$$)},(Ct=function(e){return mt.register(e,e.$$,e.$$),e})(e))}var wt={};function _t(e){for(;e.length;){var t=e.pop();e.pop()(t)}}function Bt(e){return this.fromWireType(U[e>>2])}var vt={},Dt={},bt=void 0;function Ot(e){throw new bt(e)}function Qt(e,t,r){function n(t){var n=r(t);n.length!==e.length&&Ot("Mismatched type converter count");for(var o=0;o<e.length;++o)Pt(e[o],n[o])}e.forEach((function(e){Dt[e]=t}));var o=new Array(t.length),i=[],a=0;t.forEach((function(e,t){Et.hasOwnProperty(e)?o[t]=Et[e]:(i.push(e),vt.hasOwnProperty(e)||(vt[e]=[]),vt[e].push((function(){o[t]=Et[e],++a===i.length&&n(o)})))})),0===i.length&&n(o)}function Tt(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 Pt(e,t,r){if(r=r||{},!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");var n=t.name;if(e||dt('type "'+n+'" must have a positive integer typeid pointer'),Et.hasOwnProperty(e)){if(r.ignoreDuplicateRegistrations)return;dt("Cannot register type '"+n+"' twice")}if(Et[e]=t,delete Dt[e],vt.hasOwnProperty(e)){var o=vt[e];delete vt[e],o.forEach((function(e){e()}))}}function Mt(e){if(!(this instanceof Nt))return!1;if(!(e instanceof Nt))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 Rt(e){dt(e.$$.ptrType.registeredClass.name+" instance already deleted")}function St(){if(this.$$.ptr||Rt(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e,t=Ct(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 Ft(){this.$$.ptr||Rt(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&dt("Object already scheduled for deletion"),It(this),yt(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function kt(){return!this.$$.ptr}function xt(){return this.$$.ptr||Rt(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&dt("Object already scheduled for deletion"),at.push(this),1===at.length&&At&&At(st),this.$$.deleteScheduled=!0,this}function Nt(){}var jt={};function Ut(e,t,r){if(void 0===e[t].overloadTable){var n=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||dt("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 Lt(e,t,r){o.hasOwnProperty(e)?((void 0===r||void 0!==o[e].overloadTable&&void 0!==o[e].overloadTable[r])&&dt("Cannot register public name '"+e+"' twice"),Ut(o,e,e),o.hasOwnProperty(r)&&dt("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 Ht(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 Gt(e,t,r){for(;t!==r;)t.upcast||dt("Expected null or instance of "+r.name+", got an instance of "+t.name),e=t.upcast(e),t=t.baseClass;return e}function Yt(e,t){if(null===t)return this.isReference&&dt("null is not a valid "+this.name),0;t.$$||dt('Cannot pass "'+ur(t)+'" as a '+this.name),t.$$.ptr||dt("Cannot pass deleted object as a pointer of type "+this.name);var r=t.$$.ptrType.registeredClass;return Gt(t.$$.ptr,r,this.registeredClass)}function Xt(e,t){var r;if(null===t)return this.isReference&&dt("null is not a valid "+this.name),this.isSmartPointer?(r=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,r),r):0;t.$$||dt('Cannot pass "'+ur(t)+'" as a '+this.name),t.$$.ptr||dt("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&t.$$.ptrType.isConst&&dt("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=Gt(t.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===t.$$.smartPtr&&dt("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?r=t.$$.smartPtr:dt("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,$e((function(){o.delete()}))),null!==e&&e.push(this.rawDestructor,r)}break;default:dt("Unsupporting sharing policy")}return r}function Wt(e,t){if(null===t)return this.isReference&&dt("null is not a valid "+this.name),0;t.$$||dt('Cannot pass "'+ur(t)+'" as a '+this.name),t.$$.ptr||dt("Cannot pass deleted object as a pointer of type "+this.name),t.$$.ptrType.isConst&&dt("Cannot convert argument of type "+t.$$.ptrType.name+" to parameter type "+this.name);var r=t.$$.ptrType.registeredClass;return Gt(t.$$.ptr,r,this.registeredClass)}function Vt(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e}function zt(e){this.rawDestructor&&this.rawDestructor(e)}function Jt(e){null!==e&&e.delete()}function Kt(e,t,r){if(t===r)return e;if(void 0===r.baseClass)return null;var n=Kt(e,t,r.baseClass);return null===n?null:r.downcast(n)}function Zt(e,t){return t.ptrType&&t.ptr||Ot("makeClassHandle requires ptr and ptrType"),!!t.smartPtrType!==!!t.smartPtr&&Ot("Both smartPtrType and smartPtr must be specified"),t.count={value:1},Ct(Object.create(e,{$$:{value:t}}))}function qt(e){var t=this.getPointee(e);if(!t)return this.destructor(e),null;var r=function(e,t){return t=lt(e,t),ut[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?Zt(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):Zt(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=Kt(t,this.registeredClass,i.registeredClass);return null===A?o.call(this):this.isSmartPointer?Zt(i.registeredClass.instancePrototype,{ptrType:i,ptr:A,smartPtrType:this,smartPtr:e}):Zt(i.registeredClass.instancePrototype,{ptrType:i,ptr:A})}function $t(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=Xt:n?(this.toWireType=Yt,this.destructorFunction=null):(this.toWireType=Wt,this.destructorFunction=null)}function er(e,t,r){o.hasOwnProperty(e)||Ot("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 tr(e,t,r){return e.includes("j")?function(e,t,r){b("dynCall_"+e in o,"bad function pointer type - no table for sig '"+e+"'"),r&&r.length?b(r.length===e.substring(1).replace(/j/g,"--").length):b(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):(b($.get(t),"missing table entry in dynCall: "+t),$.get(t).apply(null,r))}function rr(e,t){var r=(e=nt(e)).includes("j")?function(e,t){b(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 tr(e,t,r)}}(e,t):$.get(t);return"function"!=typeof r&&dt("unknown function pointer with signature "+e+": "+t),r}var nr=void 0;function or(e,t){var r=[],n={};throw t.forEach((function e(t){n[t]||Et[t]||(Dt[t]?Dt[t].forEach(e):(r.push(t),n[t]=!0))})),new nr(e+": "+r.map(pt).join([", "]))}function ir(e,t){if(!(e instanceof Function))throw new TypeError("new_ called with constructor type "+E(e)+" which is not a function");var r=ze(e.name||"unknownFunctionName",(function(){}));r.prototype=e.prototype;var n=new r,o=e.apply(n,t);return o instanceof Object?o:n}function ar(e,t,r,n,o){var i=t.length;i<2&&dt("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 "+Ve(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=[dt,n,o,_t,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),ir(Function,f).apply(null,E)}function sr(e,t){for(var r=[],n=0;n<e;n++)r.push(j[(t>>2)+n]);return r}function Ar(e,t,r){return e instanceof Object||dt(r+' with invalid "this": '+e),e instanceof t.registeredClass.constructor||dt(r+' incompatible with "this" of type '+e.constructor.name),e.$$.ptr||dt("cannot call emscripten binding method "+r+" on deleted object"),Gt(e.$$.ptr,e.$$.ptrType.registeredClass,t.registeredClass)}function cr(e){e>4&&0==--Ke[e].refcount&&(Ke[e]=void 0,Je.push(e))}function ur(e){if(null===e)return"null";var t=E(e);return"object"===t||"array"===t||"function"===t?e.toString():""+e}function gr(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: "+e)}}function dr(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: "+e)}}var lr={};var fr=[];var Er=[];function pr(e){try{return w.grow(e-S.byteLength+65535>>>16),Z(w.buffer),1}catch(t){m("emscripten_realloc_buffer: Attempted to grow heap from "+S.byteLength+" bytes to "+e+" bytes, but got error: "+t)}}function hr(e){Ee("Cannot use emscripten_generate_pc (needed by __builtin_return_address) without -s USE_OFFSET_CONVERTER")}var Ir={};function mr(e){e.forEach((function(e){var t=hr();t&&(Ir[t]=e)}))}var yr={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){yr.lastError||(yr.lastError=e)},getNewId:function(e){for(var t=yr.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=yr.log2ceilLookup(yr.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=yr.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=Vr.createBuffer(),t.GLctx.bindBuffer(34963,t.tempQuadIndexBuffer);for(var A=yr.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=yr.log2ceilLookup(e),r=yr.currentContext.tempVertexBuffers1[t],n=yr.currentContext.tempVertexBufferCounters1[t];yr.currentContext.tempVertexBufferCounters1[t]=yr.currentContext.tempVertexBufferCounters1[t]+1&yr.numTempVertexBuffersPerSize-1;var o=r[n];if(o)return o;var i=Vr.getParameter(34964);return r[n]=Vr.createBuffer(),Vr.bindBuffer(34962,r[n]),Vr.bufferData(34962,1<<t,35048),Vr.bindBuffer(34962,i),r[n]},getTempIndexBuffer:function(e){var t=yr.log2ceilLookup(e),r=yr.currentContext.tempIndexBuffers[t];if(r)return r;var n=Vr.getParameter(34965);return yr.currentContext.tempIndexBuffers[t]=Vr.createBuffer(),Vr.bindBuffer(34963,yr.currentContext.tempIndexBuffers[t]),Vr.bufferData(34963,1<<t,35048),Vr.bindBuffer(34963,n),yr.currentContext.tempIndexBuffers[t]},newRenderingFrameStarted:function(){if(yr.currentContext){var e=yr.currentContext.tempVertexBuffers1;yr.currentContext.tempVertexBuffers1=yr.currentContext.tempVertexBuffers2,yr.currentContext.tempVertexBuffers2=e,e=yr.currentContext.tempVertexBufferCounters1,yr.currentContext.tempVertexBufferCounters1=yr.currentContext.tempVertexBufferCounters2,yr.currentContext.tempVertexBufferCounters2=e;for(var t=yr.log2ceilLookup(yr.MAX_TEMP_BUFFER_SIZE),r=0;r<=t;++r)yr.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+=T(j[r+4*i>>2],a<0?void 0:a)}return o},calcBufLength:function(e,t,r,n){return r>0?n*r:e*yr.byteSizeByType[t-yr.byteSizeByTypeRoot]*n},usedTempBuffers:[],preDrawHandleClientVertexAttribBindings:function(e){yr.resetBufferBinding=!1;for(var t=0;t<yr.currentContext.maxVertexAttribs;++t){var r=yr.currentContext.clientBuffers[t];if(r.clientside&&r.enabled){yr.resetBufferBinding=!0;var n=yr.calcBufLength(r.size,r.type,r.stride,e),o=yr.getTempVertexBuffer(n);Vr.bindBuffer(34962,o),Vr.bufferSubData(34962,0,k.subarray(r.ptr,r.ptr+n)),r.vertexAttribPointerAdaptor.call(Vr,t,r.size,r.type,r.normalized,r.stride,0)}}},postDrawHandleClientVertexAttribBindings:function(){yr.resetBufferBinding&&Vr.bindBuffer(34962,yr.buffers[Vr.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?yr.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(),yr.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=yr.getNewId(yr.contexts),n={handle:r,attributes:t,version:t.majorVersion,GLctx:e};e.canvas&&(e.canvas.GLctxObject=n),yr.contexts[r]=n,(void 0===t.enableExtensionsByDefault||t.enableExtensionsByDefault)&&yr.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 yr.generateTempBuffers(!1,n),t.renderViaOffscreenBackBuffer&&yr.createOffscreenFramebuffer(n),r},makeContextCurrent:function(e){return yr.currentContext=yr.contexts[e],o.ctx=Vr=yr.currentContext&&yr.currentContext.GLctx,!(e&&!Vr)},getContext:function(e){return yr.contexts[e]},deleteContext:function(e){yr.currentContext===yr.contexts[e]&&(yr.currentContext=null),"object"===E(Cr)&&Cr.removeAllHandlersOnTarget(yr.contexts[e].GLctx.canvas),yr.contexts[e]&&yr.contexts[e].GLctx.canvas&&(yr.contexts[e].GLctx.canvas.GLctxObject=void 0),yr.contexts[e]=null},initExtensions:function(e){if(e||(e=yr.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)}))}}},Cr={inEventHandler:0,removeAllEventListeners:function(){for(var e=Cr.eventHandlers.length-1;e>=0;--e)Cr._removeHandler(e);Cr.eventHandlers=[],Cr.deferredCalls=[]},registerRemoveEventListeners:function(){Cr.removeEventListenersRegistered||(ie.push(Cr.removeAllEventListeners),Cr.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 Cr.deferredCalls){var i=Cr.deferredCalls[o];if(i.targetFunction==e&&n(i.argsList,r))return}Cr.deferredCalls.push({targetFunction:e,precedence:t,argsList:r}),Cr.deferredCalls.sort((function(e,t){return e.precedence<t.precedence}))},removeDeferredCalls:function(e){for(var t=0;t<Cr.deferredCalls.length;++t)Cr.deferredCalls[t].targetFunction==e&&(Cr.deferredCalls.splice(t,1),--t)},canPerformEventHandlerRequests:function(){return Cr.inEventHandler&&Cr.currentEventHandler.allowsDeferredCalls},runDeferredCalls:function(){if(Cr.canPerformEventHandlerRequests())for(var e=0;e<Cr.deferredCalls.length;++e){var t=Cr.deferredCalls[e];Cr.deferredCalls.splice(e,1),--e,t.targetFunction.apply(null,t.argsList)}},eventHandlers:[],removeAllHandlersOnTarget:function(e,t){for(var r=0;r<Cr.eventHandlers.length;++r)Cr.eventHandlers[r].target!=e||t&&t!=Cr.eventHandlers[r].eventTypeString||Cr._removeHandler(r--)},_removeHandler:function(e){var t=Cr.eventHandlers[e];t.target.removeEventListener(t.eventTypeString,t.eventListenerFunc,t.useCapture),Cr.eventHandlers.splice(e,1)},registerOrRemoveHandler:function(e){var t=function(t){++Cr.inEventHandler,Cr.currentEventHandler=e,Cr.runDeferredCalls(),e.handlerFunc(t),Cr.runDeferredCalls(),--Cr.inEventHandler};if(e.callbackfunc)e.eventListenerFunc=t,e.target.addEventListener(e.eventTypeString,t,e.useCapture),Cr.eventHandlers.push(e),Cr.registerRemoveEventListeners();else for(var r=0;r<Cr.eventHandlers.length;++r)Cr.eventHandlers[r].target==e.target&&Cr.eventHandlers[r].eventTypeString==e.eventTypeString&&Cr._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}},wr=["default","low-power","high-performance"],_r=[0,"undefined"!=typeof document?document:0,"undefined"!=typeof window?window:0];function Br(e){return"number"==typeof e&&(e=T(e)),e&&"#canvas"!==e?void 0!==yr&&yr.offscreenCanvases[e]?yr.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=_r[e]||T(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!==yr&&yr.offscreenCanvases.canvas?yr.offscreenCanvases.canvas:o.canvas}function vr(){return yr.currentContext?yr.currentContext.handle:0}function Dr(e){return yr.makeContextCurrent(e)?0:-5}o._emscripten_webgl_get_current_context=vr,o._emscripten_webgl_make_context_current=Dr;var br={};function Or(){if(!Or.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 br)void 0===br[t]?delete e[t]:e[t]=br[t];var r=[];for(var t in e)r.push(t+"="+e[t]);Or.strings=r}return Or.strings}var Qr=[];function Tr(e,t,r,n){for(var o=0;o<e;o++){var i=Vr[r](),a=i&&yr.getNewId(n);i?(i.name=a,n[a]=i):yr.recordError(1282),j[t+4*o>>2]=a}}function Pr(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&&y("writeI53ToI64() out of range: serialized JS Number "+t+" to Wasm heap as bytes lo=0x"+U[e>>2].toString(16)+", hi=0x"+U[e+4>>2].toString(16)+", which deserializes back to "+r+" instead!")}function Mr(e){var t=R(e)+1,r=tn(t);return M(e,r,t),r}function Rr(e){return"]"==e.slice(-1)&&e.lastIndexOf("[")}function Sr(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 Fr(e){return 31-Math.clz32(e.BYTES_PER_ELEMENT)}function kr(e,t,r,n,o,i){var a=Sr(e),s=Fr(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,yr.unpackAlignment);return a.subarray(o>>s,o+u>>s)}function xr(e){var t=Vr.currentProgram;if(t){var r=t.uniformLocsById[e];return"number"==typeof r&&(t.uniformLocsById[e]=r=Vr.getUniformLocation(t,t.uniformArrayNamesById[e]+(r>0?"["+r+"]":""))),r}yr.recordError(1282)}var Nr=[];var jr=[];function Ur(){if(!Ur.called){Ur.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[An()>>2]=60*i,j[sn()>>2]=Number(n!=o);var a=u(t),s=u(r),A=K(a),c=K(s);o<n?(j[an()>>2]=A,j[an()+4>>2]=c):(j[an()>>2]=c,j[an()+4>>2]=A)}function u(e){var t=e.toTimeString().match(/\(([A-Za-z ]+)\)$/);return t?t[1]:"GMT"}}function Lr(e){return e%4==0&&(e%100!=0||e%400==0)}function Hr(e,t){for(var r=0,n=0;n<=t;r+=e[n++]);return r}var Gr=[31,29,31,30,31,30,31,31,30,31,30,31],Yr=[31,28,31,30,31,30,31,31,30,31,30,31];function Xr(e,t){for(var r=new Date(e.getTime());t>0;){var n=Lr(r.getFullYear()),o=r.getMonth(),i=(n?Gr:Yr)[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 Wr(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?T(o):""},a=T(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=Xr(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+Hr(Lr(e.tm_year+1900)?Gr:Yr,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:Xr(t,7-t.getDay()),n=new Date(e.tm_year+1900,e.tm_mon,e.tm_mday);if(l(r,n)<0){var o=Hr(Lr(n.getFullYear())?Gr:Yr,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=Xr(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:Xr(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=Hr(Lr(n.getFullYear())?Gr:Yr,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=qr(a,!1);return m.length>t?0:(I=e,b((h=m).length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),F.set(h,I),m.length-1)}o.requestFullscreen=function(e,t){Oe.requestFullscreen(e,t)},o.requestFullScreen=function(){Oe.requestFullScreen()},o.requestAnimationFrame=function(e){Oe.requestAnimationFrame(e)},o.setCanvasSize=function(e,t,r){Oe.setCanvasSize(e,t,r)},o.pauseMainLoop=function(){Oe.mainLoop.pause()},o.resumeMainLoop=function(){Oe.mainLoop.resume()},o.getUserMedia=function(){Oe.getUserMedia()},o.createContext=function(e,t,r,n){return Oe.createContext(e,t,r,n)};var Vr,zr=function(e,t,r,n){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=Xe.nextInode++,this.name=t,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=n};Object.defineProperties(zr.prototype,{read:{get:function(){return!(365&~this.mode)},set:function(e){e?this.mode|=365:this.mode&=-366}},write:{get:function(){return!(146&~this.mode)},set:function(e){e?this.mode|=146:this.mode&=-147}},isFolder:{get:function(){return Xe.isDir(this.mode)}},isDevice:{get:function(){return Xe.isChrdev(this.mode)}}}),Xe.FSNode=zr,Xe.staticInit(),o.FS_createPath=Xe.createPath,o.FS_createDataFile=Xe.createDataFile,o.FS_createPreloadedFile=Xe.createPreloadedFile,o.FS_createLazyFile=Xe.createLazyFile,o.FS_createDevice=Xe.createDevice,o.FS_unlink=Xe.unlink,o.count_emval_handles=Ze,o.get_first_emval=qe,tt=o.PureVirtualError=et(Error,"PureVirtualError"),function(){for(var e=new Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);rt=e}(),o.getInheritedInstanceCount=ot,o.getLiveInheritedInstances=it,o.flushPendingDeletes=st,o.setDelayFunction=ct,gt=o.BindingError=et(Error,"BindingError"),bt=o.InternalError=et(Error,"InternalError"),Nt.prototype.isAliasOf=Mt,Nt.prototype.clone=St,Nt.prototype.delete=Ft,Nt.prototype.isDeleted=kt,Nt.prototype.deleteLater=xt,$t.prototype.getPointee=Vt,$t.prototype.destructor=zt,$t.prototype.argPackAdvance=8,$t.prototype.readValueFromPointer=Bt,$t.prototype.deleteObject=Jt,$t.prototype.fromWireType=qt,nr=o.UnboundTypeError=et(Error,"UnboundTypeError");for(var Jr=0;Jr<32;++Jr)Qr.push(new Array(Jr));var Kr=new Float32Array(288);for(Jr=0;Jr<288;++Jr)Nr[Jr]=Kr.subarray(0,Jr+1);var Zr=new Int32Array(288);for(Jr=0;Jr<288;++Jr)jr[Jr]=Zr.subarray(0,Jr+1);function qr(e,t,r){var n=R(e)+1,o=new Array(n),i=P(e,o,0,o.length);return t&&(o.length=i),o}var $r={HaveOffsetConverter:function(){return"undefined"!=typeof wasmOffsetConverter},__cxa_allocate_exception:function(e){return tn(e+16)+16},__cxa_atexit:function(e,t){},__cxa_begin_catch:function(e){var t=new Me(e),r=t.get_exception_info();return r.get_caught()||r.set_caught(!0),r.set_rethrown(!1),Re.push(t),function(e){e.add_ref()}(r),t.get_exception_ptr()},__cxa_end_catch:function(){ln(0),b(Re.length>0);var e=Re.pop();!function(e){if(e.release_ref()&&!e.get_rethrown()){var t=e.get_destructor();t&&$.get(t)(e.excPtr),Fe(e.excPtr)}}(e.get_exception_info()),e.free(),Se=0},__cxa_find_matching_catch_2:function(){var e=Se;if(!e)return B(0),0;var t=new Pe(e).get_type(),r=new Me;if(r.set_base_ptr(e),r.set_adjusted_ptr(e),!t)return B(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(fn(i,t,r.get_adjusted_ptr_addr()))return B(i),0|r.ptr}return B(t),0|r.ptr},__cxa_find_matching_catch_3:function(){var e=Se;if(!e)return B(0),0;var t=new Pe(e).get_type(),r=new Me;if(r.set_base_ptr(e),r.set_adjusted_ptr(e),!t)return B(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(fn(i,t,r.get_adjusted_ptr_addr()))return B(i),0|r.ptr}return B(t),0|r.ptr},__cxa_free_exception:Fe,__cxa_rethrow:function(){var e=Re.pop();e||Ee("no exception to throw");var t=e.get_exception_info(),r=e.get_base_ptr();throw t.get_rethrown()?e.free():(Re.push(e),t.set_rethrown(!0),t.set_caught(!1)),Se=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 Pe(e).init(t,r),Se=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 Me(e),r=t.get_base_ptr();throw Se||(Se=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){We.varargs=r;try{var n=We.getStreamFromFD(e);switch(t){case 0:return(o=We.get())<0?-28:Xe.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=We.get();return n.flags|=o,0;case 12:o=We.get();return x[o+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return ke(28),-1}}catch(e){return void 0!==Xe&&e instanceof Xe.ErrnoError||Ee(e),-e.errno}},__sys_ioctl:function(e,t,r){We.varargs=r;try{var n=We.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=We.get();return j[o>>2]=0,0;case 21520:return n.tty?-28:-59;case 21531:o=We.get();return Xe.ioctl(n,t,o);default:Ee("bad ioctl syscall "+t)}}catch(e){return void 0!==Xe&&e instanceof Xe.ErrnoError||Ee(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=Le(t)))return-48;s=!0}else{var A=Xe.getStream(o);if(!A)return-8;var c=Xe.mmap(A,e,t,i,r,n);a=c.ptr,s=c.allocated}return We.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!==Xe&&e instanceof Xe.ErrnoError||Ee(e),-e.errno}},__sys_open:function(e,t,r){We.varargs=r;try{var n=We.getStr(e),o=r?We.get():0;return Xe.open(n,t,o).fd}catch(e){return void 0!==Xe&&e instanceof Xe.ErrnoError||Ee(e),-e.errno}},__sys_stat64:function(e,t){try{return e=We.getStr(e),We.doStat(Xe.stat,e,t)}catch(e){return void 0!==Xe&&e instanceof Xe.ErrnoError||Ee(e),-e.errno}},_embind_create_inheriting_constructor:function(e,t,r){e=nt(e),t=ht(t,"wrapper"),r=ft(r);var n=[].slice,o=t.registeredClass,i=o.instancePrototype,a=o.baseClass.instancePrototype,s=o.baseClass.constructor,A=ze(e,(function(){o.baseClass.pureVirtualFunctions.forEach(function(e){if(this[e]===a[e])throw new tt("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&&dt("Pass correct 'this' to __construct");var e=s.implement.apply(void 0,[this].concat(n.call(arguments)));It(e);var t,r,a,A=e.$$;e.notifyOnDestruction(),A.preservePointerOnDelete=!0,Object.defineProperties(this,{$$:{value:A}}),Ct(this),t=o,r=A.ptr,a=this,r=lt(t,r),ut.hasOwnProperty(r)?dt("Tried to register registered instance: "+r):ut[r]=a},i.__destruct=function(){var e,t;this===i&&dt("Pass correct 'this' to __destruct"),It(this),e=o,t=this.$$.ptr,t=lt(e,t),ut.hasOwnProperty(t)?delete ut[t]:dt("Tried to unregister unregistered instance: "+t)},A.prototype=Object.create(i),r)A.prototype[c]=r[c];return $e(A)},_embind_finalize_value_object:function(e){var t=wt[e];delete wt[e];var r=t.rawConstructor,n=t.rawDestructor,o=t.fields;Qt([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)),_t(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:Bt,destructorFunction:n}]}))},_embind_register_bigint:function(e,t,r,n,o){},_embind_register_bool:function(e,t,r,n,o){var i=Tt(r);Pt(e,{name:t=nt(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: "+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=nt(u),i=rr(o,i),s&&(s=rr(a,s)),c&&(c=rr(A,c)),d=rr(g,d);var l=Ve(u);Lt(l,(function(){or("Cannot construct "+u+" due to unbound types",[n])})),Qt([e,t,r],n?[n]:[],(function(t){var r,o;t=t[0],o=n?(r=t.registeredClass).instancePrototype:Nt.prototype;var a=ze(l,(function(){if(Object.getPrototypeOf(this)!==A)throw new gt("Use 'new' to construct "+u);if(void 0===g.constructor_body)throw new gt(u+" has no accessible constructor");var e=g.constructor_body[arguments.length];if(void 0===e)throw new gt("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 Ht(u,a,A,d,r,i,s,c),f=new $t(u,g,!0,!1,!1),E=new $t(u+"*",g,!1,!1,!1),p=new $t(u+" const*",g,!1,!0,!1);return jt[e]={pointerType:E,constPointerType:p},er(l,a),[f,E,p]}))},_embind_register_class_class_function:function(e,t,r,n,o,i,a){var s=sr(r,n);t=nt(t),i=rr(o,i),Qt([],[e],(function(e){var n=(e=e[0]).name+"."+t;function o(){or("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):(Ut(A,t,n),A[t].overloadTable[r-1]=o),Qt([],s,(function(e){var o=[e[0],null].concat(e.slice(1)),s=ar(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){b(t>0);var a=sr(t,r);o=rr(n,o),Qt([],[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 gt("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(){or("Cannot construct "+e.name+" due to unbound types",a)},Qt([],a,(function(n){return n.splice(1,0,null),e.registeredClass.constructor_body[t-1]=ar(r,n,null,o,i),[]})),[]}))},_embind_register_class_function:function(e,t,r,n,o,i,a,s){var A=sr(r,n);t=nt(t),i=rr(o,i),Qt([],[e],(function(e){var n=(e=e[0]).name+"."+t;function o(){or("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):(Ut(c,t,n),c[t].overloadTable[r-2]=o),Qt([],A,(function(o){var s=ar(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=nt(t),o=rr(n,o),Qt([],[e],(function(e){var n=(e=e[0]).name+"."+t,u={get:function(){or("Cannot access "+n+" due to unbound types",[r,a])},enumerable:!0,configurable:!0};return u.set=A?function(){or("Cannot access "+n+" due to unbound types",[r,a])}:function(e){dt(n+" is a read-only property")},Object.defineProperty(e.registeredClass.instancePrototype,t,u),Qt([],A?[r,a]:[r],(function(r){var a=r[0],u={get:function(){var t=Ar(this,e,n+" getter");return a.fromWireType(o(i,t))},enumerable:!0};if(A){A=rr(s,A);var g=r[1];u.set=function(t){var r=Ar(this,e,n+" setter"),o=[];A(c,r,g.toWireType(o,t)),_t(o)}}return Object.defineProperty(e.registeredClass.instancePrototype,t,u),[]})),[]}))},_embind_register_emval:function(e,t){Pt(e,{name:t=nt(t),fromWireType:function(e){var t=Ke[e].value;return cr(e),t},toWireType:function(e,t){return $e(t)},argPackAdvance:8,readValueFromPointer:Bt,destructorFunction:null})},_embind_register_float:function(e,t,r){var n=Tt(r);Pt(e,{name:t=nt(t),fromWireType:function(e){return e},toWireType:function(e,t){if("number"!=typeof t&&"boolean"!=typeof t)throw new TypeError('Cannot convert "'+ur(t)+'" to '+this.name);return t},argPackAdvance:8,readValueFromPointer:gr(t,n),destructorFunction:null})},_embind_register_function:function(e,t,r,n,o,i){var a=sr(t,r);e=nt(e),o=rr(n,o),Lt(e,(function(){or("Cannot call "+e+" due to unbound types",a)}),t-1),Qt([],a,(function(r){var n=[r[0],null].concat(r.slice(1));return er(e,ar(e,n,null,o,i),t-1),[]}))},_embind_register_integer:function(e,t,r,n,o){t=nt(t),-1===o&&(o=4294967295);var i=Tt(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");Pt(e,{name:t,fromWireType:a,toWireType:function(e,r){if("number"!=typeof r&&"boolean"!=typeof r)throw new TypeError('Cannot convert "'+ur(r)+'" to '+this.name);if(r<n||r>o)throw new TypeError('Passing a number "'+ur(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:dr(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)}Pt(e,{name:r=nt(r),fromWireType:o,argPackAdvance:8,readValueFromPointer:o},{ignoreDuplicateRegistrations:!0})},_embind_register_std_string:function(e,t){var r="std::string"===(t=nt(t));Pt(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=T(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 en(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||dt("Cannot pass non-string to std::string");var o=(r&&n?function(){return R(t)}:function(){return t.length})(),i=tn(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&&(en(i),dt("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(en,i),i},argPackAdvance:8,readValueFromPointer:Bt,destructorFunction:function(e){en(e)}})},_embind_register_std_wstring:function(e,t,r){var n,o,i,a,s;r=nt(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),Pt(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 en(e),r},toWireType:function(e,n){"string"!=typeof n&&dt("Cannot pass non-string to C++ string type "+r);var i=a(n),A=tn(4+i+t);return U[A>>2]=i>>s,o(n,A+4,i+t),null!==e&&e.push(en,A),A},argPackAdvance:8,readValueFromPointer:Bt,destructorFunction:function(e){en(e)}})},_embind_register_value_object:function(e,t,r,n,o,i){wt[e]={name:nt(t),rawConstructor:rr(r,n),rawDestructor:rr(o,i),fields:[]}},_embind_register_value_object_field:function(e,t,r,n,o,i,a,s,A,c){wt[e].fields.push({fieldName:nt(t),getterReturnType:r,getter:rr(n,o),getterContext:i,setterArgumentType:a,setter:rr(s,A),setterContext:c})},_embind_register_void:function(e,t){Pt(e,{isVoid:!0,name:t=nt(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(e,t){}})},_emval_call_void_method:function(e,t,r,n){var o,i;(e=fr[e])(t=ft(t),r=void 0===(i=lr[o=r])?nt(o):i,null,n)},_emval_decref:cr,_emval_get_method_caller:function(e,t){for(var r=function(e,t){for(var r=new Array(e),n=0;n<e;++n)r[n]=ht(j[(t>>2)+n],"parameter "+n);return r}(e,t),n=r[0],o=n.name+"_$"+r.slice(1).map((function(e){return e.name})).join("_")+"$",i=["retType"],a=[n],s="",A=0;A<e-1;++A)s+=(0!==A?", ":"")+"arg"+A,i.push("argType"+A),a.push(r[1+A]);var c="return function "+Ve("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=ir(Function,i).apply(null,a);return g=l,d=fr.length,fr.push(g),d},_emval_incref:function(e){e>4&&(Ke[e].refcount+=1)},_emval_take_value:function(e,t){return $e((e=ht(e,"_emval_take_value")).readValueFromPointer(t))},abort:function(){Ee()},clock_gettime:function(e,t){var r;if(0===e)r=Date.now();else{if(1!==e&&4!==e)return ke(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){Ee("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")},dlsym:function(e,t){Ee("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(b(Array.isArray(Er)),b(t%16==0),Er.length=0,t>>=2;r=k[e++];){b(100===r||102===r||105===r);var n=r<105;n&&1&t&&t++,Er.push(n?H[t++>>1]:j[t]),++t}return Er}(t,r);return ve.hasOwnProperty(e)||Ee("No EM_ASM constant found at address "+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){Ee("Cannot use emscripten_pc_get_function without -s USE_OFFSET_CONVERTER")},emscripten_resize_heap:function(e){var t=k.length;b((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(pr(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(),mr(e),Ir.last_addr=hr(e[2]),Ir.last_stack=e,Ir.last_addr},emscripten_stack_unwind_buffer:function(e,t,r){var n;Ir.last_addr==e?n=Ir.last_stack:("Error"==(n=(new Error).stack.split("\n"))[0]&&n.shift(),mr(n));for(var o=2;n[o]&&hr(n[o])!=e;)++o;for(var i=0;i<r&&n[i+o];++i)j[t+4*i>>2]=hr(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){b(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:wr[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=Br(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(!yr.offscreenCanvases[i.id])return 0}else yr.offscreenCanvases[i.id]={canvas:i.transferControlToOffscreen(),canvasSharedPtr:tn(12),id:i.id},i.controlTransferredOffscreen=!0;i=yr.offscreenCanvases[i.id]}return yr.createContext(i,o)}(e,t)},emscripten_webgl_destroy_context:function(e){yr.currentContext==e&&(yr.currentContext=0),yr.deleteContext(e)},emscripten_webgl_get_context_attributes:function(e,t){if(!t)return-5;if(!(e=yr.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&&wr.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:vr,emscripten_webgl_init_context_attributes:function(e){b(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:Dr,environ_get:function(e,t){var r=0;return Or().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)b(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=Or();j[e>>2]=r.length;var n=0;return r.forEach((function(e){n+=e.length+1})),j[t>>2]=n,0},exit:function(e){!function(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=Xe.analyzePath("/dev/"+e);if(t){var n=t.object.rdev,o=Ue.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.")}();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),mn(e)}(e)},fd_close:function(e){try{var t=We.getStreamFromFD(e);return Xe.close(t),0}catch(e){return void 0!==Xe&&e instanceof Xe.ErrnoError||Ee(e),e.errno}},fd_read:function(e,t,r,n){try{var o=We.getStreamFromFD(e),i=We.doReadv(o,t,r);return j[n>>2]=i,0}catch(e){return void 0!==Xe&&e instanceof Xe.ErrnoError||Ee(e),e.errno}},fd_seek:function(e,t,r,n,o){try{var i=We.getStreamFromFD(e),a=4294967296*r+(t>>>0),s=9007199254740992;return a<=-s||a>=s?-61:(Xe.llseek(i,a,n),me=[i.position>>>0,(Ie=i.position,+Math.abs(Ie)>=1?Ie>0?(0|Math.min(+Math.floor(Ie/4294967296),4294967295))>>>0:~~+Math.ceil((Ie-+(~~Ie>>>0))/4294967296)>>>0:0)],j[o>>2]=me[0],j[o+4>>2]=me[1],i.getdents&&0===a&&0===n&&(i.getdents=null),0)}catch(e){return void 0!==Xe&&e instanceof Xe.ErrnoError||Ee(e),e.errno}},fd_write:function(e,t,r,n){try{var o=We.getStreamFromFD(e),i=We.doWritev(o,t,r);return j[n>>2]=i,0}catch(e){return void 0!==Xe&&e instanceof Xe.ErrnoError||Ee(e),e.errno}},getTempRet0:function(){return _},getentropy:function e(t,r){e.randomDevice||(e.randomDevice=Ne());for(var n=0;n<r;n++)F[t+n|0]=e.randomDevice();return 0},glActiveTexture:function(e){Vr.activeTexture(e)},glAttachShader:function(e,t){Vr.attachShader(yr.programs[e],yr.shaders[t])},glBindAttribLocation:function(e,t,r){Vr.bindAttribLocation(yr.programs[e],t,T(r))},glBindBuffer:function(e,t){34962==e?Vr.currentArrayBufferBinding=t:34963==e&&(Vr.currentElementArrayBufferBinding=t),35051==e?Vr.currentPixelPackBufferBinding=t:35052==e&&(Vr.currentPixelUnpackBufferBinding=t),Vr.bindBuffer(e,yr.buffers[t])},glBindBufferBase:function(e,t,r){Vr.bindBufferBase(e,t,yr.buffers[r])},glBindFramebuffer:function(e,t){Vr.bindFramebuffer(e,t?yr.framebuffers[t]:yr.currentContext.defaultFbo)},glBindTexture:function(e,t){Vr.bindTexture(e,yr.textures[t])},glBindVertexArray:function(e){Vr.bindVertexArray(yr.vaos[e]);var t=Vr.getParameter(34965);Vr.currentElementArrayBufferBinding=t?0|t.name:0},glBufferData:function(e,t,r,n){yr.currentContext.version>=2?r?Vr.bufferData(e,k,n,r,t):Vr.bufferData(e,t,n):Vr.bufferData(e,r?k.subarray(r,r+t):t,n)},glClientWaitSync:function(e,t,r,n){return Vr.clientWaitSync(yr.syncs[e],t,(o=r,b((i=n)===(0|i)),(o>>>0)+4294967296*i));var o,i},glCompileShader:function(e){Vr.compileShader(yr.shaders[e])},glCreateProgram:function(){var e=yr.getNewId(yr.programs),t=Vr.createProgram();return t.name=e,t.maxUniformLength=t.maxAttributeLength=t.maxUniformBlockNameLength=0,t.uniformIdCounter=1,yr.programs[e]=t,e},glCreateShader:function(e){var t=yr.getNewId(yr.shaders);return yr.shaders[t]=Vr.createShader(e),t},glDeleteBuffers:function(e,t){for(var r=0;r<e;r++){var n=j[t+4*r>>2],o=yr.buffers[n];o&&(Vr.deleteBuffer(o),o.name=0,yr.buffers[n]=null,n==Vr.currentArrayBufferBinding&&(Vr.currentArrayBufferBinding=0),n==Vr.currentElementArrayBufferBinding&&(Vr.currentElementArrayBufferBinding=0),n==Vr.currentPixelPackBufferBinding&&(Vr.currentPixelPackBufferBinding=0),n==Vr.currentPixelUnpackBufferBinding&&(Vr.currentPixelUnpackBufferBinding=0))}},glDeleteFramebuffers:function(e,t){for(var r=0;r<e;++r){var n=j[t+4*r>>2],o=yr.framebuffers[n];o&&(Vr.deleteFramebuffer(o),o.name=0,yr.framebuffers[n]=null)}},glDeleteProgram:function(e){if(e){var t=yr.programs[e];t?(Vr.deleteProgram(t),t.name=0,yr.programs[e]=null):yr.recordError(1281)}},glDeleteShader:function(e){if(e){var t=yr.shaders[e];t?(Vr.deleteShader(t),yr.shaders[e]=null):yr.recordError(1281)}},glDeleteSync:function(e){if(e){var t=yr.syncs[e];t?(Vr.deleteSync(t),t.name=0,yr.syncs[e]=null):yr.recordError(1281)}},glDeleteTextures:function(e,t){for(var r=0;r<e;r++){var n=j[t+4*r>>2],o=yr.textures[n];o&&(Vr.deleteTexture(o),o.name=0,yr.textures[n]=null)}},glDeleteVertexArrays:function(e,t){for(var r=0;r<e;r++){var n=j[t+4*r>>2];Vr.deleteVertexArray(yr.vaos[n]),yr.vaos[n]=null}},glDisable:function(e){Vr.disable(e)},glDisableVertexAttribArray:function(e){yr.currentContext.clientBuffers[e].enabled=!1,Vr.disableVertexAttribArray(e)},glDrawArrays:function(e,t,r){yr.preDrawHandleClientVertexAttribBindings(t+r),Vr.drawArrays(e,t,r),yr.postDrawHandleClientVertexAttribBindings()},glDrawBuffers:function(e,t){for(var r=Qr[e],n=0;n<e;n++)r[n]=j[t+4*n>>2];Vr.drawBuffers(r)},glEnableVertexAttribArray:function(e){yr.currentContext.clientBuffers[e].enabled=!0,Vr.enableVertexAttribArray(e)},glFenceSync:function(e,t){var r=Vr.fenceSync(e,t);if(r){var n=yr.getNewId(yr.syncs);return r.name=n,yr.syncs[n]=r,n}return 0},glFinish:function(){Vr.finish()},glFlush:function(){Vr.flush()},glFramebufferTexture2D:function(e,t,r,n,o){Vr.framebufferTexture2D(e,t,r,yr.textures[n],o)},glFramebufferTextureLayer:function(e,t,r,n,o){Vr.framebufferTextureLayer(e,t,yr.textures[r],n,o)},glGenBuffers:function(e,t){Tr(e,t,"createBuffer",yr.buffers)},glGenFramebuffers:function(e,t){Tr(e,t,"createFramebuffer",yr.framebuffers)},glGenTextures:function(e,t){Tr(e,t,"createTexture",yr.textures)},glGenVertexArrays:function(e,t){Tr(e,t,"createVertexArray",yr.vaos)},glGetAttribLocation:function(e,t){return Vr.getAttribLocation(yr.programs[e],T(t))},glGetError:function(){var e=Vr.getError()||yr.lastError;return yr.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=Vr.getParameter(34467);n=o?o.length:0;break;case 33309:if(yr.currentContext.version<2)return void yr.recordError(1282);n=2*(Vr.getSupportedExtensions()||[]).length;break;case 33307:case 33308:if(yr.currentContext.version<2)return void yr.recordError(1280);n=33307==e?3:0}if(void 0===n){var i=Vr.getParameter(e);switch(E(i)){case"number":n=i;break;case"boolean":n=i?1:0;break;case"string":return void yr.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 yr.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 yr.recordError(1280),void m("GL_INVALID_ENUM in glGet"+r+"v: Unknown object returned from WebGL getParameter("+e+")! (error: "+t+")")}}break;default:return yr.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:Pr(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 yr.recordError(1281)}(e,t,0)},glGetString:function(e){var t=yr.stringCache[e];if(!t){switch(e){case 7939:var r=Vr.getSupportedExtensions()||[];t=Mr((r=r.concat(r.map((function(e){return"GL_"+e})))).join(" "));break;case 7936:case 7937:case 37445:case 37446:var n=Vr.getParameter(e);n||yr.recordError(1280),t=n&&Mr(n);break;case 7938:var o=Vr.getParameter(7938);t=Mr(o=yr.currentContext.version>=2?"OpenGL ES 3.0 ("+o+")":"OpenGL ES 2.0 ("+o+")");break;case 35724:var i=Vr.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=Mr(i);break;default:yr.recordError(1280)}yr.stringCache[e]=t}return t},glGetUniformBlockIndex:function(e,t){return Vr.getUniformBlockIndex(yr.programs[e],T(t))},glGetUniformLocation:function(e,t){if(t=T(t),e=yr.programs[e]){!function(e){var t,r,n=e.uniformLocsById,o=e.uniformSizeAndIdsByName;if(!n)for(e.uniformLocsById=n={},e.uniformArrayNamesById={},t=0;t<Vr.getProgramParameter(e,35718);++t){var i=Vr.getActiveUniform(e,t),a=i.name,s=i.size,A=Rr(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=Rr(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]||Vr.getUniformLocation(e,t)))return n}else yr.recordError(1281);var s;return-1},glLinkProgram:function(e){e=yr.programs[e],Vr.linkProgram(e),e.uniformLocsById=0,e.uniformSizeAndIdsByName={}},glPixelStorei:function(e,t){3317==e&&(yr.unpackAlignment=t),Vr.pixelStorei(e,t)},glReadPixels:function(e,t,r,n,o,i,a){if(yr.currentContext.version>=2)if(Vr.currentPixelPackBufferBinding)Vr.readPixels(e,t,r,n,o,i,a);else{var s=Sr(i);Vr.readPixels(e,t,r,n,o,i,s,a>>Fr(s))}else{var A=kr(i,o,r,n,a);A?Vr.readPixels(e,t,r,n,o,i,A):yr.recordError(1280)}},glShaderSource:function(e,t,r,n){var o=yr.getSource(e,t,r,n);Vr.shaderSource(yr.shaders[e],o)},glTexImage2D:function(e,t,r,n,o,i,a,s,A){if(yr.currentContext.version>=2)if(Vr.currentPixelUnpackBufferBinding)Vr.texImage2D(e,t,r,n,o,i,a,s,A);else if(A){var c=Sr(s);Vr.texImage2D(e,t,r,n,o,i,a,s,c,A>>Fr(c))}else Vr.texImage2D(e,t,r,n,o,i,a,s,null);else Vr.texImage2D(e,t,r,n,o,i,a,s,A?kr(s,a,n,o,A):null)},glTexParameterfv:function(e,t,r){var n=L[r>>2];Vr.texParameterf(e,t,n)},glTexParameteri:function(e,t,r){Vr.texParameteri(e,t,r)},glTexStorage2D:function(e,t,r,n,o){Vr.texStorage2D(e,t,r,n,o)},glTexStorage3D:function(e,t,r,n,o,i){Vr.texStorage3D(e,t,r,n,o,i)},glTexSubImage2D:function(e,t,r,n,o,i,a,s,A){if(yr.currentContext.version>=2)if(Vr.currentPixelUnpackBufferBinding)Vr.texSubImage2D(e,t,r,n,o,i,a,s,A);else if(A){var c=Sr(s);Vr.texSubImage2D(e,t,r,n,o,i,a,s,c,A>>Fr(c))}else Vr.texSubImage2D(e,t,r,n,o,i,a,s,null);else{var u=null;A&&(u=kr(s,a,o,i,A)),Vr.texSubImage2D(e,t,r,n,o,i,a,s,u)}},glTexSubImage3D:function(e,t,r,n,o,i,a,s,A,c,u){if(Vr.currentPixelUnpackBufferBinding)Vr.texSubImage3D(e,t,r,n,o,i,a,s,A,c,u);else if(u){var g=Sr(c);Vr.texSubImage3D(e,t,r,n,o,i,a,s,A,c,g,u>>Fr(g))}else Vr.texSubImage3D(e,t,r,n,o,i,a,s,A,c,null)},glUniform1f:function(e,t){Vr.uniform1f(xr(e),t)},glUniform1i:function(e,t){Vr.uniform1i(xr(e),t)},glUniform2fv:function(e,t,r){if(yr.currentContext.version>=2)Vr.uniform2fv(xr(e),L,r>>2,2*t);else{if(t<=144)for(var n=Nr[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);Vr.uniform2fv(xr(e),n)}},glUniform4fv:function(e,t,r){if(yr.currentContext.version>=2)Vr.uniform4fv(xr(e),L,r>>2,4*t);else{if(t<=72){var n=Nr[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);Vr.uniform4fv(xr(e),n)}},glUniform4iv:function(e,t,r){if(yr.currentContext.version>=2)Vr.uniform4iv(xr(e),j,r>>2,4*t);else{if(t<=72)for(var n=jr[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);Vr.uniform4iv(xr(e),n)}},glUniformBlockBinding:function(e,t,r){e=yr.programs[e],Vr.uniformBlockBinding(e,t,r)},glUniformMatrix4fv:function(e,t,r,n){if(yr.currentContext.version>=2)Vr.uniformMatrix4fv(xr(e),!!r,L,n>>2,16*t);else{if(t<=18){var o=Nr[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);Vr.uniformMatrix4fv(xr(e),!!r,o)}},glUseProgram:function(e){e=yr.programs[e],Vr.useProgram(e),Vr.currentProgram=e},glVertexAttribPointer:function(e,t,r,n,o,i){var a=yr.currentContext.clientBuffers[e];if(!Vr.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,Vr.vertexAttribPointer(e,t,r,!!n,o,i)},glViewport:function(e,t,r,n){Vr.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=cn();try{return $.get(e)(t,r,n)}catch(e){if(un(o),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_i:function(e){var t=cn();try{return $.get(e)()}catch(e){if(un(t),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_ii:function(e,t){var r=cn();try{return $.get(e)(t)}catch(e){if(un(r),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_iii:function(e,t,r){var n=cn();try{return $.get(e)(t,r)}catch(e){if(un(n),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_iiii:function(e,t,r,n){var o=cn();try{return $.get(e)(t,r,n)}catch(e){if(un(o),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_iiiii:function(e,t,r,n,o){var i=cn();try{return $.get(e)(t,r,n,o)}catch(e){if(un(i),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_iiiiii:function(e,t,r,n,o,i){var a=cn();try{return $.get(e)(t,r,n,o,i)}catch(e){if(un(a),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_iiiiiii:function(e,t,r,n,o,i,a){var s=cn();try{return $.get(e)(t,r,n,o,i,a)}catch(e){if(un(s),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_iiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c){var u=cn();try{return $.get(e)(t,r,n,o,i,a,s,A,c)}catch(e){if(un(u),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_iiiiiiii:function(e,t,r,n,o,i,a,s){var A=cn();try{return $.get(e)(t,r,n,o,i,a,s)}catch(e){if(un(A),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_iiiiiiiii:function(e,t,r,n,o,i,a,s,A){var c=cn();try{return $.get(e)(t,r,n,o,i,a,s,A)}catch(e){if(un(c),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_v:function(e){var t=cn();try{$.get(e)()}catch(e){if(un(t),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_vdiii:function(e,t,r,n,o){var i=cn();try{$.get(e)(t,r,n,o)}catch(e){if(un(i),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_vi:function(e,t){var r=cn();try{$.get(e)(t)}catch(e){if(un(r),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_vididdii:function(e,t,r,n,o,i,a,s){var A=cn();try{$.get(e)(t,r,n,o,i,a,s)}catch(e){if(un(A),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_vidii:function(e,t,r,n,o){var i=cn();try{$.get(e)(t,r,n,o)}catch(e){if(un(i),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_vii:function(e,t,r){var n=cn();try{$.get(e)(t,r)}catch(e){if(un(n),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viid:function(e,t,r,n){var o=cn();try{$.get(e)(t,r,n)}catch(e){if(un(o),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viidi:function(e,t,r,n,o){var i=cn();try{$.get(e)(t,r,n,o)}catch(e){if(un(i),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viididii:function(e,t,r,n,o,i,a,s){var A=cn();try{$.get(e)(t,r,n,o,i,a,s)}catch(e){if(un(A),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viii:function(e,t,r,n){var o=cn();try{$.get(e)(t,r,n)}catch(e){if(un(o),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiid:function(e,t,r,n,o){var i=cn();try{$.get(e)(t,r,n,o)}catch(e){if(un(i),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiidd:function(e,t,r,n,o,i){var a=cn();try{$.get(e)(t,r,n,o,i)}catch(e){if(un(a),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiddi:function(e,t,r,n,o,i,a){var s=cn();try{$.get(e)(t,r,n,o,i,a)}catch(e){if(un(s),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiidi:function(e,t,r,n,o,i){var a=cn();try{$.get(e)(t,r,n,o,i)}catch(e){if(un(a),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiii:function(e,t,r,n,o){var i=cn();try{$.get(e)(t,r,n,o)}catch(e){if(un(i),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiid:function(e,t,r,n,o,i){var a=cn();try{$.get(e)(t,r,n,o,i)}catch(e){if(un(a),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiidi:function(e,t,r,n,o,i,a){var s=cn();try{$.get(e)(t,r,n,o,i,a)}catch(e){if(un(s),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiidid:function(e,t,r,n,o,i,a,s){var A=cn();try{$.get(e)(t,r,n,o,i,a,s)}catch(e){if(un(A),e!==e+0&&"longjmp"!==e)throw e;ln(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{$.get(e)(t,r,n,o,i,a,s,A,c,u,g,d,l,f,E)}catch(e){if(un(p),e!==e+0&&"longjmp"!==e)throw e;ln(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{$.get(e)(t,r,n,o,i,a,s,A,c,u,g,d,l,f,E)}catch(e){if(un(p),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiii:function(e,t,r,n,o,i){var a=cn();try{$.get(e)(t,r,n,o,i)}catch(e){if(un(a),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiid:function(e,t,r,n,o,i,a){var s=cn();try{$.get(e)(t,r,n,o,i,a)}catch(e){if(un(s),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiif:function(e,t,r,n,o,i,a){var s=cn();try{$.get(e)(t,r,n,o,i,a)}catch(e){if(un(s),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiii:function(e,t,r,n,o,i,a){var s=cn();try{$.get(e)(t,r,n,o,i,a)}catch(e){if(un(s),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiiid:function(e,t,r,n,o,i,a,s){var A=cn();try{$.get(e)(t,r,n,o,i,a,s)}catch(e){if(un(A),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiiif:function(e,t,r,n,o,i,a,s){var A=cn();try{$.get(e)(t,r,n,o,i,a,s)}catch(e){if(un(A),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiiii:function(e,t,r,n,o,i,a,s){var A=cn();try{$.get(e)(t,r,n,o,i,a,s)}catch(e){if(un(A),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c,u){var g=cn();try{$.get(e)(t,r,n,o,i,a,s,A,c,u)}catch(e){if(un(g),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiiiidiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d){var l=cn();try{$.get(e)(t,r,n,o,i,a,s,A,c,u,g,d)}catch(e){if(un(l),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiiiifiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d){var l=cn();try{$.get(e)(t,r,n,o,i,a,s,A,c,u,g,d)}catch(e){if(un(l),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiiiii:function(e,t,r,n,o,i,a,s,A){var c=cn();try{$.get(e)(t,r,n,o,i,a,s,A)}catch(e){if(un(c),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiiiiidd:function(e,t,r,n,o,i,a,s,A,c,u){var g=cn();try{$.get(e)(t,r,n,o,i,a,s,A,c,u)}catch(e){if(un(g),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiiiiidf:function(e,t,r,n,o,i,a,s,A,c,u){var g=cn();try{$.get(e)(t,r,n,o,i,a,s,A,c,u)}catch(e){if(un(g),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiiiiii:function(e,t,r,n,o,i,a,s,A,c){var u=cn();try{$.get(e)(t,r,n,o,i,a,s,A,c)}catch(e){if(un(u),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiiiiiidd:function(e,t,r,n,o,i,a,s,A,c,u,g){var d=cn();try{$.get(e)(t,r,n,o,i,a,s,A,c,u,g)}catch(e){if(un(d),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c,u,g,d){var l=cn();try{$.get(e)(t,r,n,o,i,a,s,A,c,u,g,d)}catch(e){if(un(l),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u){var g=cn();try{$.get(e)(t,r,n,o,i,a,s,A,c,u)}catch(e){if(un(g),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c,u,g,d,l){var f=cn();try{$.get(e)(t,r,n,o,i,a,s,A,c,u,g,d,l)}catch(e){if(un(f),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u,g){var d=cn();try{$.get(e)(t,r,n,o,i,a,s,A,c,u,g)}catch(e){if(un(d),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d){var l=cn();try{$.get(e)(t,r,n,o,i,a,s,A,c,u,g,d)}catch(e){if(un(l),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d,l){var f=cn();try{$.get(e)(t,r,n,o,i,a,s,A,c,u,g,d,l)}catch(e){if(un(f),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},llvm_eh_typeid_for:function(e){return e},localtime_r:function(e,t){Ur();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[an()+(s?4:0)>>2];return j[t+40>>2]=A,t},mktime:function(e){Ur();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){mn(e)},setTempRet0:function(e){B(e)},strftime:Wr,strftime_l:function(e,t,r,n){return Wr(e,t,r,n)}};!function(){var e={env:$r,wasi_snapshot_preview1:$r};function t(e,t){var r,n=e.exports;o.asm=n,b(w=o.asm.memory,"memory not found in wasm exports"),Z(w.buffer),b($=o.asm.__indirect_function_table,"table not found in wasm exports"),r=o.asm.__wasm_call_ctors,oe.unshift(r),fe("wasm-instantiate")}le("wasm-instantiate");var r=o;function i(e){b(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&&!Ce(pe))return fetch(pe,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+pe+"'";return e.arrayBuffer()})).catch((function(){return _e(pe)}));if(f)return new Promise((function(e,t){f(pe,(function(t){e(new Uint8Array(t))}),t)}))}return Promise.resolve().then((function(){return _e(pe)}))}().then((function(t){return WebAssembly.instantiate(t,e)})).then(t,(function(e){m("failed to asynchronously prepare wasm: "+e),Ce(pe)&&m("warning: Loading from a file URI ("+pe+") 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"),Ee(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||ye(pe)||Ce(pe)||"function"!=typeof fetch?a(i):fetch(pe,{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=we("__wasm_call_ctors");var en=o._free=we("free"),tn=o._malloc=we("malloc"),rn=o.___errno_location=we("__errno_location");o._fflush=we("fflush");var nn=o.___getTypeName=we("__getTypeName");o.___embind_register_native_and_builtin_types=we("__embind_register_native_and_builtin_types"),o._emscripten_main_thread_process_queued_calls=we("emscripten_main_thread_process_queued_calls");var on=o._emscripten_stack_get_end=function(){return(on=o._emscripten_stack_get_end=o.asm.emscripten_stack_get_end).apply(null,arguments)},an=o.__get_tzname=we("_get_tzname"),sn=o.__get_daylight=we("_get_daylight"),An=o.__get_timezone=we("_get_timezone"),cn=o.stackSave=we("stackSave"),un=o.stackRestore=we("stackRestore");o.stackAlloc=we("stackAlloc");var gn=o._emscripten_stack_init=function(){return(gn=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=we("saveSetjmp");var dn,ln=o._setThrew=we("setThrew"),fn=o.___cxa_can_catch=we("__cxa_can_catch"),En=o.___cxa_is_pointer_type=we("__cxa_is_pointer_type"),pn=o._memalign=we("memalign");function hn(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function In(e){function t(){dn||(dn=!0,o.calledRun=!0,v||(re(),b(!se),se=!0,o.noFSInit||Xe.init.initialized||Xe.init(),Xe.ignorePermissions=!1,Qe(oe),r(o),o.onRuntimeInitialized&&o.onRuntimeInitialized(),b(!o._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),function(){if(re(),o.postRun)for("function"==typeof o.postRun&&(o.postRun=[o.postRun]);o.postRun.length;)e=o.postRun.shift(),ae.unshift(e);var e;Qe(ae)}()))}Ae>0||(gn(),te(),function(){if(o.preRun)for("function"==typeof o.preRun&&(o.preRun=[o.preRun]);o.preRun.length;)e=o.preRun.shift(),ne.unshift(e);var e;Qe(ne)}(),Ae>0||(o.setStatus?(o.setStatus("Running..."),setTimeout((function(){setTimeout((function(){o.setStatus("")}),1),t()}),1)):t(),re()))}function mn(e){A(e,new hn(e))}if(o._emscripten_builtin_malloc=we("emscripten_builtin_malloc"),o._emscripten_builtin_free=we("emscripten_builtin_free"),o._emscripten_builtin_memalign=we("emscripten_builtin_memalign"),o.dynCall_jii=we("dynCall_jii"),o.dynCall_viji=we("dynCall_viji"),o.dynCall_jjj=we("dynCall_jjj"),o.dynCall_iiiijj=we("dynCall_iiiijj"),o.dynCall_viijj=we("dynCall_viijj"),o.dynCall_viiijjjj=we("dynCall_viiijjjj"),o.dynCall_ji=we("dynCall_ji"),o.dynCall_vij=we("dynCall_vij"),o.dynCall_viijii=we("dynCall_viijii"),o.dynCall_vj=we("dynCall_vj"),o.dynCall_viij=we("dynCall_viij"),o.dynCall_viiiiij=we("dynCall_viiiiij"),o.dynCall_iijjiiii=we("dynCall_iijjiiii"),o.dynCall_jiji=we("dynCall_jiji"),o.dynCall_iiiiij=we("dynCall_iiiiij"),o.dynCall_iiiiijj=we("dynCall_iiiiijj"),o.dynCall_iiiiiijj=we("dynCall_iiiiiijj"),Object.getOwnPropertyDescriptor(o,"intArrayFromString")||(o.intArrayFromString=function(){Ee("'intArrayFromString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"intArrayToString")||(o.intArrayToString=function(){Ee("'intArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ccall")||(o.ccall=function(){Ee("'ccall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"cwrap")||(o.cwrap=function(){Ee("'cwrap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setValue")||(o.setValue=function(){Ee("'setValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getValue")||(o.getValue=function(){Ee("'getValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"allocate")||(o.allocate=function(){Ee("'allocate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"UTF8ArrayToString")||(o.UTF8ArrayToString=function(){Ee("'UTF8ArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"UTF8ToString")||(o.UTF8ToString=function(){Ee("'UTF8ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stringToUTF8Array")||(o.stringToUTF8Array=function(){Ee("'stringToUTF8Array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stringToUTF8")||(o.stringToUTF8=function(){Ee("'stringToUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"lengthBytesUTF8")||(o.lengthBytesUTF8=function(){Ee("'lengthBytesUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stackTrace")||(o.stackTrace=function(){Ee("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"addOnPreRun")||(o.addOnPreRun=function(){Ee("'addOnPreRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"addOnInit")||(o.addOnInit=function(){Ee("'addOnInit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"addOnPreMain")||(o.addOnPreMain=function(){Ee("'addOnPreMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"addOnExit")||(o.addOnExit=function(){Ee("'addOnExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"addOnPostRun")||(o.addOnPostRun=function(){Ee("'addOnPostRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeStringToMemory")||(o.writeStringToMemory=function(){Ee("'writeStringToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeArrayToMemory")||(o.writeArrayToMemory=function(){Ee("'writeArrayToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeAsciiToMemory")||(o.writeAsciiToMemory=function(){Ee("'writeAsciiToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),o.addRunDependency=le,o.removeRunDependency=fe,Object.getOwnPropertyDescriptor(o,"FS_createFolder")||(o.FS_createFolder=function(){Ee("'FS_createFolder' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),o.FS_createPath=Xe.createPath,o.FS_createDataFile=Xe.createDataFile,o.FS_createPreloadedFile=Xe.createPreloadedFile,o.FS_createLazyFile=Xe.createLazyFile,Object.getOwnPropertyDescriptor(o,"FS_createLink")||(o.FS_createLink=function(){Ee("'FS_createLink' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),o.FS_createDevice=Xe.createDevice,o.FS_unlink=Xe.unlink,Object.getOwnPropertyDescriptor(o,"getLEB")||(o.getLEB=function(){Ee("'getLEB' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getFunctionTables")||(o.getFunctionTables=function(){Ee("'getFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"alignFunctionTables")||(o.alignFunctionTables=function(){Ee("'alignFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerFunctions")||(o.registerFunctions=function(){Ee("'registerFunctions' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"addFunction")||(o.addFunction=function(){Ee("'addFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"removeFunction")||(o.removeFunction=function(){Ee("'removeFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getFuncWrapper")||(o.getFuncWrapper=function(){Ee("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"prettyPrint")||(o.prettyPrint=function(){Ee("'prettyPrint' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"dynCall")||(o.dynCall=function(){Ee("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getCompilerSetting")||(o.getCompilerSetting=function(){Ee("'getCompilerSetting' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"print")||(o.print=function(){Ee("'print' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"printErr")||(o.printErr=function(){Ee("'printErr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getTempRet0")||(o.getTempRet0=function(){Ee("'getTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setTempRet0")||(o.setTempRet0=function(){Ee("'setTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"callMain")||(o.callMain=function(){Ee("'callMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"abort")||(o.abort=function(){Ee("'abort' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"keepRuntimeAlive")||(o.keepRuntimeAlive=function(){Ee("'keepRuntimeAlive' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"zeroMemory")||(o.zeroMemory=function(){Ee("'zeroMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stringToNewUTF8")||(o.stringToNewUTF8=function(){Ee("'stringToNewUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setFileTime")||(o.setFileTime=function(){Ee("'setFileTime' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscripten_realloc_buffer")||(o.emscripten_realloc_buffer=function(){Ee("'emscripten_realloc_buffer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ENV")||(o.ENV=function(){Ee("'ENV' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ERRNO_CODES")||(o.ERRNO_CODES=function(){Ee("'ERRNO_CODES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ERRNO_MESSAGES")||(o.ERRNO_MESSAGES=function(){Ee("'ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setErrNo")||(o.setErrNo=function(){Ee("'setErrNo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"inetPton4")||(o.inetPton4=function(){Ee("'inetPton4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"inetNtop4")||(o.inetNtop4=function(){Ee("'inetNtop4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"inetPton6")||(o.inetPton6=function(){Ee("'inetPton6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"inetNtop6")||(o.inetNtop6=function(){Ee("'inetNtop6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"readSockaddr")||(o.readSockaddr=function(){Ee("'readSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeSockaddr")||(o.writeSockaddr=function(){Ee("'writeSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"DNS")||(o.DNS=function(){Ee("'DNS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getHostByName")||(o.getHostByName=function(){Ee("'getHostByName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"GAI_ERRNO_MESSAGES")||(o.GAI_ERRNO_MESSAGES=function(){Ee("'GAI_ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"Protocols")||(o.Protocols=function(){Ee("'Protocols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"Sockets")||(o.Sockets=function(){Ee("'Sockets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getRandomDevice")||(o.getRandomDevice=function(){Ee("'getRandomDevice' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"traverseStack")||(o.traverseStack=function(){Ee("'traverseStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"UNWIND_CACHE")||(o.UNWIND_CACHE=function(){Ee("'UNWIND_CACHE' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"withBuiltinMalloc")||(o.withBuiltinMalloc=function(){Ee("'withBuiltinMalloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"readAsmConstArgsArray")||(o.readAsmConstArgsArray=function(){Ee("'readAsmConstArgsArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"readAsmConstArgs")||(o.readAsmConstArgs=function(){Ee("'readAsmConstArgs' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"mainThreadEM_ASM")||(o.mainThreadEM_ASM=function(){Ee("'mainThreadEM_ASM' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"jstoi_q")||(o.jstoi_q=function(){Ee("'jstoi_q' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"jstoi_s")||(o.jstoi_s=function(){Ee("'jstoi_s' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getExecutableName")||(o.getExecutableName=function(){Ee("'getExecutableName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"listenOnce")||(o.listenOnce=function(){Ee("'listenOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"autoResumeAudioContext")||(o.autoResumeAudioContext=function(){Ee("'autoResumeAudioContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"dynCallLegacy")||(o.dynCallLegacy=function(){Ee("'dynCallLegacy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getDynCaller")||(o.getDynCaller=function(){Ee("'getDynCaller' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"dynCall")||(o.dynCall=function(){Ee("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"callRuntimeCallbacks")||(o.callRuntimeCallbacks=function(){Ee("'callRuntimeCallbacks' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"runtimeKeepalivePush")||(o.runtimeKeepalivePush=function(){Ee("'runtimeKeepalivePush' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"runtimeKeepalivePop")||(o.runtimeKeepalivePop=function(){Ee("'runtimeKeepalivePop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"callUserCallback")||(o.callUserCallback=function(){Ee("'callUserCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"maybeExit")||(o.maybeExit=function(){Ee("'maybeExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"safeSetTimeout")||(o.safeSetTimeout=function(){Ee("'safeSetTimeout' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"asmjsMangle")||(o.asmjsMangle=function(){Ee("'asmjsMangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"asyncLoad")||(o.asyncLoad=function(){Ee("'asyncLoad' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"alignMemory")||(o.alignMemory=function(){Ee("'alignMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"mmapAlloc")||(o.mmapAlloc=function(){Ee("'mmapAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"reallyNegative")||(o.reallyNegative=function(){Ee("'reallyNegative' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"unSign")||(o.unSign=function(){Ee("'unSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"reSign")||(o.reSign=function(){Ee("'reSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"formatString")||(o.formatString=function(){Ee("'formatString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"PATH")||(o.PATH=function(){Ee("'PATH' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"PATH_FS")||(o.PATH_FS=function(){Ee("'PATH_FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SYSCALLS")||(o.SYSCALLS=function(){Ee("'SYSCALLS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"syscallMmap2")||(o.syscallMmap2=function(){Ee("'syscallMmap2' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"syscallMunmap")||(o.syscallMunmap=function(){Ee("'syscallMunmap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getSocketFromFD")||(o.getSocketFromFD=function(){Ee("'getSocketFromFD' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getSocketAddress")||(o.getSocketAddress=function(){Ee("'getSocketAddress' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"JSEvents")||(o.JSEvents=function(){Ee("'JSEvents' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerKeyEventCallback")||(o.registerKeyEventCallback=function(){Ee("'registerKeyEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"specialHTMLTargets")||(o.specialHTMLTargets=function(){Ee("'specialHTMLTargets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"findEventTarget")||(o.findEventTarget=function(){Ee("'findEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"findCanvasEventTarget")||(o.findCanvasEventTarget=function(){Ee("'findCanvasEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getBoundingClientRect")||(o.getBoundingClientRect=function(){Ee("'getBoundingClientRect' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillMouseEventData")||(o.fillMouseEventData=function(){Ee("'fillMouseEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerMouseEventCallback")||(o.registerMouseEventCallback=function(){Ee("'registerMouseEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerWheelEventCallback")||(o.registerWheelEventCallback=function(){Ee("'registerWheelEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerUiEventCallback")||(o.registerUiEventCallback=function(){Ee("'registerUiEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerFocusEventCallback")||(o.registerFocusEventCallback=function(){Ee("'registerFocusEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillDeviceOrientationEventData")||(o.fillDeviceOrientationEventData=function(){Ee("'fillDeviceOrientationEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerDeviceOrientationEventCallback")||(o.registerDeviceOrientationEventCallback=function(){Ee("'registerDeviceOrientationEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillDeviceMotionEventData")||(o.fillDeviceMotionEventData=function(){Ee("'fillDeviceMotionEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerDeviceMotionEventCallback")||(o.registerDeviceMotionEventCallback=function(){Ee("'registerDeviceMotionEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"screenOrientation")||(o.screenOrientation=function(){Ee("'screenOrientation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillOrientationChangeEventData")||(o.fillOrientationChangeEventData=function(){Ee("'fillOrientationChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerOrientationChangeEventCallback")||(o.registerOrientationChangeEventCallback=function(){Ee("'registerOrientationChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillFullscreenChangeEventData")||(o.fillFullscreenChangeEventData=function(){Ee("'fillFullscreenChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerFullscreenChangeEventCallback")||(o.registerFullscreenChangeEventCallback=function(){Ee("'registerFullscreenChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerRestoreOldStyle")||(o.registerRestoreOldStyle=function(){Ee("'registerRestoreOldStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"hideEverythingExceptGivenElement")||(o.hideEverythingExceptGivenElement=function(){Ee("'hideEverythingExceptGivenElement' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"restoreHiddenElements")||(o.restoreHiddenElements=function(){Ee("'restoreHiddenElements' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setLetterbox")||(o.setLetterbox=function(){Ee("'setLetterbox' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"currentFullscreenStrategy")||(o.currentFullscreenStrategy=function(){Ee("'currentFullscreenStrategy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"restoreOldWindowedStyle")||(o.restoreOldWindowedStyle=function(){Ee("'restoreOldWindowedStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"softFullscreenResizeWebGLRenderTarget")||(o.softFullscreenResizeWebGLRenderTarget=function(){Ee("'softFullscreenResizeWebGLRenderTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"doRequestFullscreen")||(o.doRequestFullscreen=function(){Ee("'doRequestFullscreen' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillPointerlockChangeEventData")||(o.fillPointerlockChangeEventData=function(){Ee("'fillPointerlockChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerPointerlockChangeEventCallback")||(o.registerPointerlockChangeEventCallback=function(){Ee("'registerPointerlockChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerPointerlockErrorEventCallback")||(o.registerPointerlockErrorEventCallback=function(){Ee("'registerPointerlockErrorEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"requestPointerLock")||(o.requestPointerLock=function(){Ee("'requestPointerLock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillVisibilityChangeEventData")||(o.fillVisibilityChangeEventData=function(){Ee("'fillVisibilityChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerVisibilityChangeEventCallback")||(o.registerVisibilityChangeEventCallback=function(){Ee("'registerVisibilityChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerTouchEventCallback")||(o.registerTouchEventCallback=function(){Ee("'registerTouchEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillGamepadEventData")||(o.fillGamepadEventData=function(){Ee("'fillGamepadEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerGamepadEventCallback")||(o.registerGamepadEventCallback=function(){Ee("'registerGamepadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerBeforeUnloadEventCallback")||(o.registerBeforeUnloadEventCallback=function(){Ee("'registerBeforeUnloadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillBatteryEventData")||(o.fillBatteryEventData=function(){Ee("'fillBatteryEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"battery")||(o.battery=function(){Ee("'battery' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerBatteryEventCallback")||(o.registerBatteryEventCallback=function(){Ee("'registerBatteryEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setCanvasElementSize")||(o.setCanvasElementSize=function(){Ee("'setCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getCanvasElementSize")||(o.getCanvasElementSize=function(){Ee("'getCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"polyfillSetImmediate")||(o.polyfillSetImmediate=function(){Ee("'polyfillSetImmediate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"demangle")||(o.demangle=function(){Ee("'demangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"demangleAll")||(o.demangleAll=function(){Ee("'demangleAll' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"jsStackTrace")||(o.jsStackTrace=function(){Ee("'jsStackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stackTrace")||(o.stackTrace=function(){Ee("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getEnvStrings")||(o.getEnvStrings=function(){Ee("'getEnvStrings' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"checkWasiClock")||(o.checkWasiClock=function(){Ee("'checkWasiClock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeI53ToI64")||(o.writeI53ToI64=function(){Ee("'writeI53ToI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeI53ToI64Clamped")||(o.writeI53ToI64Clamped=function(){Ee("'writeI53ToI64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeI53ToI64Signaling")||(o.writeI53ToI64Signaling=function(){Ee("'writeI53ToI64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeI53ToU64Clamped")||(o.writeI53ToU64Clamped=function(){Ee("'writeI53ToU64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeI53ToU64Signaling")||(o.writeI53ToU64Signaling=function(){Ee("'writeI53ToU64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"readI53FromI64")||(o.readI53FromI64=function(){Ee("'readI53FromI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"readI53FromU64")||(o.readI53FromU64=function(){Ee("'readI53FromU64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"convertI32PairToI53")||(o.convertI32PairToI53=function(){Ee("'convertI32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"convertU32PairToI53")||(o.convertU32PairToI53=function(){Ee("'convertU32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"uncaughtExceptionCount")||(o.uncaughtExceptionCount=function(){Ee("'uncaughtExceptionCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"exceptionLast")||(o.exceptionLast=function(){Ee("'exceptionLast' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"exceptionCaught")||(o.exceptionCaught=function(){Ee("'exceptionCaught' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ExceptionInfo")||(o.ExceptionInfo=function(){Ee("'ExceptionInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"CatchInfo")||(o.CatchInfo=function(){Ee("'CatchInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"exception_addRef")||(o.exception_addRef=function(){Ee("'exception_addRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"exception_decRef")||(o.exception_decRef=function(){Ee("'exception_decRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"Browser")||(o.Browser=function(){Ee("'Browser' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"funcWrappers")||(o.funcWrappers=function(){Ee("'funcWrappers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getFuncWrapper")||(o.getFuncWrapper=function(){Ee("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setMainLoop")||(o.setMainLoop=function(){Ee("'setMainLoop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"wget")||(o.wget=function(){Ee("'wget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"FS")||(o.FS=function(){Ee("'FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"MEMFS")||(o.MEMFS=function(){Ee("'MEMFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"TTY")||(o.TTY=function(){Ee("'TTY' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"PIPEFS")||(o.PIPEFS=function(){Ee("'PIPEFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SOCKFS")||(o.SOCKFS=function(){Ee("'SOCKFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"_setNetworkCallback")||(o._setNetworkCallback=function(){Ee("'_setNetworkCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"tempFixedLengthArray")||(o.tempFixedLengthArray=function(){Ee("'tempFixedLengthArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"miniTempWebGLFloatBuffers")||(o.miniTempWebGLFloatBuffers=function(){Ee("'miniTempWebGLFloatBuffers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"heapObjectForWebGLType")||(o.heapObjectForWebGLType=function(){Ee("'heapObjectForWebGLType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"heapAccessShiftForWebGLHeap")||(o.heapAccessShiftForWebGLHeap=function(){Ee("'heapAccessShiftForWebGLHeap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),o.GL=yr,Object.getOwnPropertyDescriptor(o,"emscriptenWebGLGet")||(o.emscriptenWebGLGet=function(){Ee("'emscriptenWebGLGet' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"computeUnpackAlignedImageSize")||(o.computeUnpackAlignedImageSize=function(){Ee("'computeUnpackAlignedImageSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscriptenWebGLGetTexPixelData")||(o.emscriptenWebGLGetTexPixelData=function(){Ee("'emscriptenWebGLGetTexPixelData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscriptenWebGLGetUniform")||(o.emscriptenWebGLGetUniform=function(){Ee("'emscriptenWebGLGetUniform' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"webglGetUniformLocation")||(o.webglGetUniformLocation=function(){Ee("'webglGetUniformLocation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"webglPrepareUniformLocationsBeforeFirstUse")||(o.webglPrepareUniformLocationsBeforeFirstUse=function(){Ee("'webglPrepareUniformLocationsBeforeFirstUse' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"webglGetLeftBracePos")||(o.webglGetLeftBracePos=function(){Ee("'webglGetLeftBracePos' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscriptenWebGLGetVertexAttrib")||(o.emscriptenWebGLGetVertexAttrib=function(){Ee("'emscriptenWebGLGetVertexAttrib' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscriptenWebGLGetBufferBinding")||(o.emscriptenWebGLGetBufferBinding=function(){Ee("'emscriptenWebGLGetBufferBinding' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscriptenWebGLValidateMapBufferTarget")||(o.emscriptenWebGLValidateMapBufferTarget=function(){Ee("'emscriptenWebGLValidateMapBufferTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeGLArray")||(o.writeGLArray=function(){Ee("'writeGLArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"AL")||(o.AL=function(){Ee("'AL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SDL_unicode")||(o.SDL_unicode=function(){Ee("'SDL_unicode' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SDL_ttfContext")||(o.SDL_ttfContext=function(){Ee("'SDL_ttfContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SDL_audio")||(o.SDL_audio=function(){Ee("'SDL_audio' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SDL")||(o.SDL=function(){Ee("'SDL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SDL_gfx")||(o.SDL_gfx=function(){Ee("'SDL_gfx' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"GLUT")||(o.GLUT=function(){Ee("'GLUT' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"EGL")||(o.EGL=function(){Ee("'EGL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"GLFW_Window")||(o.GLFW_Window=function(){Ee("'GLFW_Window' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"GLFW")||(o.GLFW=function(){Ee("'GLFW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"GLEW")||(o.GLEW=function(){Ee("'GLEW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"IDBStore")||(o.IDBStore=function(){Ee("'IDBStore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"runAndAbortIfError")||(o.runAndAbortIfError=function(){Ee("'runAndAbortIfError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emval_handle_array")||(o.emval_handle_array=function(){Ee("'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(){Ee("'emval_free_list' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emval_symbols")||(o.emval_symbols=function(){Ee("'emval_symbols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"init_emval")||(o.init_emval=function(){Ee("'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(){Ee("'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(){Ee("'get_first_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getStringOrSymbol")||(o.getStringOrSymbol=function(){Ee("'getStringOrSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"requireHandle")||(o.requireHandle=function(){Ee("'requireHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emval_newers")||(o.emval_newers=function(){Ee("'emval_newers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"craftEmvalAllocator")||(o.craftEmvalAllocator=function(){Ee("'craftEmvalAllocator' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emval_get_global")||(o.emval_get_global=function(){Ee("'emval_get_global' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emval_methodCallers")||(o.emval_methodCallers=function(){Ee("'emval_methodCallers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"InternalError")||(o.InternalError=function(){Ee("'InternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"BindingError")||(o.BindingError=function(){Ee("'BindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"UnboundTypeError")||(o.UnboundTypeError=function(){Ee("'UnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"PureVirtualError")||(o.PureVirtualError=function(){Ee("'PureVirtualError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"init_embind")||(o.init_embind=function(){Ee("'init_embind' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"throwInternalError")||(o.throwInternalError=function(){Ee("'throwInternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"throwBindingError")||(o.throwBindingError=function(){Ee("'throwBindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"throwUnboundTypeError")||(o.throwUnboundTypeError=function(){Ee("'throwUnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ensureOverloadTable")||(o.ensureOverloadTable=function(){Ee("'ensureOverloadTable' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"exposePublicSymbol")||(o.exposePublicSymbol=function(){Ee("'exposePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"replacePublicSymbol")||(o.replacePublicSymbol=function(){Ee("'replacePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"extendError")||(o.extendError=function(){Ee("'extendError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"createNamedFunction")||(o.createNamedFunction=function(){Ee("'createNamedFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registeredInstances")||(o.registeredInstances=function(){Ee("'registeredInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getBasestPointer")||(o.getBasestPointer=function(){Ee("'getBasestPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerInheritedInstance")||(o.registerInheritedInstance=function(){Ee("'registerInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"unregisterInheritedInstance")||(o.unregisterInheritedInstance=function(){Ee("'unregisterInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getInheritedInstance")||(o.getInheritedInstance=function(){Ee("'getInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getInheritedInstanceCount")||(o.getInheritedInstanceCount=function(){Ee("'getInheritedInstanceCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getLiveInheritedInstances")||(o.getLiveInheritedInstances=function(){Ee("'getLiveInheritedInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registeredTypes")||(o.registeredTypes=function(){Ee("'registeredTypes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"awaitingDependencies")||(o.awaitingDependencies=function(){Ee("'awaitingDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"typeDependencies")||(o.typeDependencies=function(){Ee("'typeDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registeredPointers")||(o.registeredPointers=function(){Ee("'registeredPointers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerType")||(o.registerType=function(){Ee("'registerType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"whenDependentTypesAreResolved")||(o.whenDependentTypesAreResolved=function(){Ee("'whenDependentTypesAreResolved' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"embind_charCodes")||(o.embind_charCodes=function(){Ee("'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(){Ee("'embind_init_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"readLatin1String")||(o.readLatin1String=function(){Ee("'readLatin1String' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getTypeName")||(o.getTypeName=function(){Ee("'getTypeName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"heap32VectorToArray")||(o.heap32VectorToArray=function(){Ee("'heap32VectorToArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"requireRegisteredType")||(o.requireRegisteredType=function(){Ee("'requireRegisteredType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getShiftFromSize")||(o.getShiftFromSize=function(){Ee("'getShiftFromSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"integerReadValueFromPointer")||(o.integerReadValueFromPointer=function(){Ee("'integerReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"enumReadValueFromPointer")||(o.enumReadValueFromPointer=function(){Ee("'enumReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"floatReadValueFromPointer")||(o.floatReadValueFromPointer=function(){Ee("'floatReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"simpleReadValueFromPointer")||(o.simpleReadValueFromPointer=function(){Ee("'simpleReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"runDestructors")||(o.runDestructors=function(){Ee("'runDestructors' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"new_")||(o.new_=function(){Ee("'new_' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"craftInvokerFunction")||(o.craftInvokerFunction=function(){Ee("'craftInvokerFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"embind__requireFunction")||(o.embind__requireFunction=function(){Ee("'embind__requireFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"tupleRegistrations")||(o.tupleRegistrations=function(){Ee("'tupleRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"structRegistrations")||(o.structRegistrations=function(){Ee("'structRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"genericPointerToWireType")||(o.genericPointerToWireType=function(){Ee("'genericPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"constNoSmartPtrRawPointerToWireType")||(o.constNoSmartPtrRawPointerToWireType=function(){Ee("'constNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"nonConstNoSmartPtrRawPointerToWireType")||(o.nonConstNoSmartPtrRawPointerToWireType=function(){Ee("'nonConstNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"init_RegisteredPointer")||(o.init_RegisteredPointer=function(){Ee("'init_RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"RegisteredPointer")||(o.RegisteredPointer=function(){Ee("'RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"RegisteredPointer_getPointee")||(o.RegisteredPointer_getPointee=function(){Ee("'RegisteredPointer_getPointee' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"RegisteredPointer_destructor")||(o.RegisteredPointer_destructor=function(){Ee("'RegisteredPointer_destructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"RegisteredPointer_deleteObject")||(o.RegisteredPointer_deleteObject=function(){Ee("'RegisteredPointer_deleteObject' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"RegisteredPointer_fromWireType")||(o.RegisteredPointer_fromWireType=function(){Ee("'RegisteredPointer_fromWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"runDestructor")||(o.runDestructor=function(){Ee("'runDestructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"releaseClassHandle")||(o.releaseClassHandle=function(){Ee("'releaseClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"finalizationGroup")||(o.finalizationGroup=function(){Ee("'finalizationGroup' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"detachFinalizer_deps")||(o.detachFinalizer_deps=function(){Ee("'detachFinalizer_deps' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"detachFinalizer")||(o.detachFinalizer=function(){Ee("'detachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"attachFinalizer")||(o.attachFinalizer=function(){Ee("'attachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"makeClassHandle")||(o.makeClassHandle=function(){Ee("'makeClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"init_ClassHandle")||(o.init_ClassHandle=function(){Ee("'init_ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ClassHandle")||(o.ClassHandle=function(){Ee("'ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ClassHandle_isAliasOf")||(o.ClassHandle_isAliasOf=function(){Ee("'ClassHandle_isAliasOf' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"throwInstanceAlreadyDeleted")||(o.throwInstanceAlreadyDeleted=function(){Ee("'throwInstanceAlreadyDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ClassHandle_clone")||(o.ClassHandle_clone=function(){Ee("'ClassHandle_clone' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ClassHandle_delete")||(o.ClassHandle_delete=function(){Ee("'ClassHandle_delete' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"deletionQueue")||(o.deletionQueue=function(){Ee("'deletionQueue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ClassHandle_isDeleted")||(o.ClassHandle_isDeleted=function(){Ee("'ClassHandle_isDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ClassHandle_deleteLater")||(o.ClassHandle_deleteLater=function(){Ee("'ClassHandle_deleteLater' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"flushPendingDeletes")||(o.flushPendingDeletes=function(){Ee("'flushPendingDeletes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"delayFunction")||(o.delayFunction=function(){Ee("'delayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setDelayFunction")||(o.setDelayFunction=function(){Ee("'setDelayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"RegisteredClass")||(o.RegisteredClass=function(){Ee("'RegisteredClass' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"shallowCopyInternalPointer")||(o.shallowCopyInternalPointer=function(){Ee("'shallowCopyInternalPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"downcastPointer")||(o.downcastPointer=function(){Ee("'downcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"upcastPointer")||(o.upcastPointer=function(){Ee("'upcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"validateThis")||(o.validateThis=function(){Ee("'validateThis' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"char_0")||(o.char_0=function(){Ee("'char_0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"char_9")||(o.char_9=function(){Ee("'char_9' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"makeLegalFunctionName")||(o.makeLegalFunctionName=function(){Ee("'makeLegalFunctionName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscriptenWebGLGetIndexed")||(o.emscriptenWebGLGetIndexed=function(){Ee("'emscriptenWebGLGetIndexed' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"warnOnce")||(o.warnOnce=function(){Ee("'warnOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stackSave")||(o.stackSave=function(){Ee("'stackSave' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stackRestore")||(o.stackRestore=function(){Ee("'stackRestore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stackAlloc")||(o.stackAlloc=function(){Ee("'stackAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"AsciiToString")||(o.AsciiToString=function(){Ee("'AsciiToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stringToAscii")||(o.stringToAscii=function(){Ee("'stringToAscii' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"UTF16ToString")||(o.UTF16ToString=function(){Ee("'UTF16ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stringToUTF16")||(o.stringToUTF16=function(){Ee("'stringToUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"lengthBytesUTF16")||(o.lengthBytesUTF16=function(){Ee("'lengthBytesUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"UTF32ToString")||(o.UTF32ToString=function(){Ee("'UTF32ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stringToUTF32")||(o.stringToUTF32=function(){Ee("'stringToUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"lengthBytesUTF32")||(o.lengthBytesUTF32=function(){Ee("'lengthBytesUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"allocateUTF8")||(o.allocateUTF8=function(){Ee("'allocateUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"allocateUTF8OnStack")||(o.allocateUTF8OnStack=function(){Ee("'allocateUTF8OnStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),o.writeStackCookie=te,o.checkStackCookie=re,Object.getOwnPropertyDescriptor(o,"ALLOC_NORMAL")||Object.defineProperty(o,"ALLOC_NORMAL",{configurable:!0,get:function(){Ee("'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(){Ee("'ALLOC_STACK' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),ue=function e(){dn||In(),dn||(ue=e)},o.run=In,o.preInit)for("function"==typeof o.preInit&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return In(),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]=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////8HcXI2AgggACAAKAIIQYCAgIB4cjYCCCAAIAQgBWogBmoiADYCBCAHQQA6AAwgACACaiAHLQAMOgAAIAdBEGokAA8LECcAC58BAQR/IwBBEGsiBCQAIAQgAjYCDCMAQaABayIDJAAgAyAAIANBngFqIAEbIgU2ApQBIAMgAUEBayIAQQAgACABTRs2ApgBIANBAEGQARAkIgBBfzYCTCAAQR42AiQgAEF/NgJQIAAgAEGfAWo2AiwgACAAQZQBajYCVCAFQQA6AAAgAEHkCiACQR0QTiEGIABBoAFqJAAgBEEQaiQAIAYLBAAgAAuZAgAgAEUEQEEADwsCfwJAIAAEfyABQf8ATQ0BAkBBhNAAKAIAKAIARQRAIAFBgH9xQYC/A0YNAwwBCyABQf8PTQRAIAAgAUE/cUGAAXI6AAEgACABQQZ2QcABcjoAAEECDAQLIAFBgEBxQYDAA0cgAUGAsANPcUUEQCAAIAFBP3FBgAFyOgACIAAgAUEMdkHgAXI6AAAgACABQQZ2QT9xQYABcjoAAUEDDAQLIAFBgIAEa0H//z9NBEAgACABQT9xQYABcjoAAyAAIAFBEnZB8AFyOgAAIAAgAUEGdkE/cUGAAXI6AAIgACABQQx2QT9xQYABcjoAAUEEDAQLC0G42ABBGTYCAEF/BUEBCwwBCyAAIAE6AABBAQsLjBgDE38BfAN+IwBBsARrIgwkACAMQQA2AiwCQCABvSIaQgBTBEBBASEQQZQIIRMgAZoiAb0hGgwBCyAEQYAQcQRAQQEhEEGXCCETDAELQZoIQZUIIARBAXEiEBshEyAQRSEVCwJAIBpCgICAgICAgPj/AINCgICAgICAgPj/AFEEQCAAQSAgAiAQQQNqIgMgBEH//3txEB8gACATIBAQHSAAQcIJQbwLIAVBIHEiBRtB4ApBwAsgBRsgASABYhtBAxAdIABBICACIAMgBEGAwABzEB8gAyACIAIgA0gbIQoMAQsgDEEQaiERAkACfwJAIAEgDEEsahBPIgEgAaAiAUQAAAAAAAAAAGIEQCAMIAwoAiwiBkEBazYCLCAFQSByIg5B4QBHDQEMAwsgBUEgciIOQeEARg0CIAwoAiwhCUEGIAMgA0EASBsMAQsgDCAGQR1rIgk2AiwgAUQAAAAAAACwQaIhAUEGIAMgA0EASBsLIQsgDEEwakGgAkEAIAlBAE4baiINIQcDQCAHAn8gAUQAAAAAAADwQWMgAUQAAAAAAAAAAGZxBEAgAasMAQtBAAsiAzYCACAHQQRqIQcgASADuKFEAAAAAGXNzUGiIgFEAAAAAAAAAABiDQALAkAgCUEATARAIAkhAyAHIQYgDSEIDAELIA0hCCAJIQMDQEEdIAMgA0EdTxshAwJAIAdBBGsiBiAISQ0AIAOtIRxCACEaA0AgBiAaQv////8PgyAGNQIAIByGfCIbIBtCgJTr3AOAIhpCgJTr3AN+fT4CACAGQQRrIgYgCE8NAAsgG0KAlOvcA1QNACAIQQRrIgggGj4CAAsDQCAIIAciBkkEQCAGQQRrIgcoAgBFDQELCyAMIAwoAiwgA2siAzYCLCAGIQcgA0EASg0ACwsgA0EASARAIAtBGWpBCW5BAWohDyAOQeYARiESA0BBCUEAIANrIgMgA0EJTxshCgJAIAYgCE0EQCAIKAIARUECdCEHDAELQYCU69wDIAp2IRRBfyAKdEF/cyEWQQAhAyAIIQcDQCAHIAMgBygCACIXIAp2ajYCACAWIBdxIBRsIQMgB0EEaiIHIAZJDQALIAgoAgBFQQJ0IQcgA0UNACAGIAM2AgAgBkEEaiEGCyAMIAwoAiwgCmoiAzYCLCANIAcgCGoiCCASGyIHIA9BAnRqIAYgBiAHa0ECdSAPShshBiADQQBIDQALC0EAIQMCQCAGIAhNDQAgDSAIa0ECdUEJbCEDQQohByAIKAIAIgpBCkkNAANAIANBAWohAyAKIAdBCmwiB08NAAsLIAsgA0EAIA5B5gBHG2sgDkHnAEYgC0EAR3FrIgcgBiANa0ECdUEJbEEJa0gEQCAMQTBqQYRgQaRiIAlBAEgbaiAHQYDIAGoiCkEJbSIPQQJ0aiEJQQohByAKIA9BCWxrIgpBB0wEQANAIAdBCmwhByAKQQFqIgpBCEcNAAsLAkAgCSgCACISIBIgB24iDyAHbGsiCkUgCUEEaiIUIAZGcQ0AAkAgD0EBcUUEQEQAAAAAAABAQyEBIAdBgJTr3ANHDQEgCCAJTw0BIAlBBGstAABBAXFFDQELRAEAAAAAAEBDIQELRAAAAAAAAOA/RAAAAAAAAPA/RAAAAAAAAPg/IAYgFEYbRAAAAAAAAPg/IAogB0EBdiIURhsgCiAUSRshGQJAIBUNACATLQAAQS1HDQAgGZohGSABmiEBCyAJIBIgCmsiCjYCACABIBmgIAFhDQAgCSAHIApqIgM2AgAgA0GAlOvcA08EQANAIAlBADYCACAIIAlBBGsiCUsEQCAIQQRrIghBADYCAAsgCSAJKAIAQQFqIgM2AgAgA0H/k+vcA0sNAAsLIA0gCGtBAnVBCWwhA0EKIQcgCCgCACIKQQpJDQADQCADQQFqIQMgCiAHQQpsIgdPDQALCyAJQQRqIgcgBiAGIAdLGyEGCwNAIAYiByAITSIKRQRAIAZBBGsiBigCAEUNAQsLAkAgDkHnAEcEQCAEQQhxIQkMAQsgA0F/c0F/IAtBASALGyIGIANKIANBe0pxIgkbIAZqIQtBf0F+IAkbIAVqIQUgBEEIcSIJDQBBdyEGAkAgCg0AIAdBBGsoAgAiDkUNAEEKIQpBACEGIA5BCnANAANAIAYiCUEBaiEGIA4gCkEKbCIKcEUNAAsgCUF/cyEGCyAHIA1rQQJ1QQlsIQogBUFfcUHGAEYEQEEAIQkgCyAGIApqQQlrIgZBACAGQQBKGyIGIAYgC0obIQsMAQtBACEJIAsgAyAKaiAGakEJayIGQQAgBkEAShsiBiAGIAtKGyELC0F/IQogC0H9////B0H+////ByAJIAtyIhIbSg0BIAsgEkEAR2pBAWohDgJAIAVBX3EiFUHGAEYEQCADIA5B/////wdzSg0DIANBACADQQBKGyEGDAELIBEgAyADQR91IgZzIAZrrSARECkiBmtBAUwEQANAIAZBAWsiBkEwOgAAIBEgBmtBAkgNAAsLIAZBAmsiDyAFOgAAIAZBAWtBLUErIANBAEgbOgAAIBEgD2siBiAOQf////8Hc0oNAgsgBiAOaiIDIBBB/////wdzSg0BIABBICACIAMgEGoiAyAEEB8gACATIBAQHSAAQTAgAiADIARBgIAEcxAfAkACQAJAIBVBxgBGBEAgDEEQakEJciEFIA0gCCAIIA1LGyIJIQgDQCAINQIAIAUQKSEGAkAgCCAJRwRAIAYgDEEQak0NAQNAIAZBAWsiBkEwOgAAIAYgDEEQaksNAAsMAQsgBSAGRw0AIAZBAWsiBkEwOgAACyAAIAYgBSAGaxAdIAhBBGoiCCANTQ0ACyASBEAgAEG0EUEBEB0LIAcgCE0NASALQQBMDQEDQCAINQIAIAUQKSIGIAxBEGpLBEADQCAGQQFrIgZBMDoAACAGIAxBEGpLDQALCyAAIAZBCSALIAtBCU4bEB0gC0EJayEGIAhBBGoiCCAHTw0DIAtBCUohGCAGIQsgGA0ACwwCCwJAIAtBAEgNACAHIAhBBGogByAISxshDSAMQRBqQQlyIQUgCCEHA0AgBSAHNQIAIAUQKSIGRgRAIAZBAWsiBkEwOgAACwJAIAcgCEcEQCAGIAxBEGpNDQEDQCAGQQFrIgZBMDoAACAGIAxBEGpLDQALDAELIAAgBkEBEB0gBkEBaiEGIAkgC3JFDQAgAEG0EUEBEB0LIAAgBiAFIAZrIgYgCyAGIAtIGxAdIAsgBmshCyAHQQRqIgcgDU8NASALQQBODQALCyAAQTAgC0ESakESQQAQHyAAIA8gESAPaxAdDAILIAshBgsgAEEwIAZBCWpBCUEAEB8LIABBICACIAMgBEGAwABzEB8gAyACIAIgA0gbIQoMAQsgEyAFQRp0QR91QQlxaiEIAkAgA0ELSw0AQQwgA2shBkQAAAAAAAAwQCEZA0AgGUQAAAAAAAAwQKIhGSAGQQFrIgYNAAsgCC0AAEEtRgRAIBkgAZogGaGgmiEBDAELIAEgGaAgGaEhAQsgESAMKAIsIgYgBkEfdSIGcyAGa60gERApIgZGBEAgBkEBayIGQTA6AAALIBBBAnIhCyAFQSBxIQ0gDCgCLCEHIAZBAmsiCSAFQQ9qOgAAIAZBAWtBLUErIAdBAEgbOgAAIARBCHEhBiAMQRBqIQcDQCAHIgUCfyABmUQAAAAAAADgQWMEQCABqgwBC0GAgICAeAsiB0GAxABqLQAAIA1yOgAAIAEgB7ehRAAAAAAAADBAoiEBAkAgBUEBaiIHIAxBEGprQQFHDQACQCAGDQAgA0EASg0AIAFEAAAAAAAAAABhDQELIAVBLjoAASAFQQJqIQcLIAFEAAAAAAAAAABiDQALQX8hCkH9////ByALIBEgCWsiBmoiDWsgA0gNACAAQSAgAiANIANBAmogByAMQRBqIgdrIgUgBUECayADSBsgBSADGyIKaiIDIAQQHyAAIAggCxAdIABBMCACIAMgBEGAgARzEB8gACAHIAUQHSAAQTAgCiAFa0EAQQAQHyAAIAkgBhAdIABBICACIAMgBEGAwABzEB8gAyACIAIgA0gbIQoLIAxBsARqJAAgCgu8AgACQAJAAkACQAJAAkACQAJAAkACQAJAIAFBCWsOEgAICQoICQECAwQKCQoKCAkFBgcLIAIgAigCACIBQQRqNgIAIAAgASgCADYCAA8LIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASsDADkDAA8LIAAgAiADEQAACw8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAAtzAQZ/IAAoAgAiAywAAEEwayIBQQlLBEBBAA8LA0BBfyEEIAJBzJmz5gBNBEBBfyABIAJBCmwiBWogASAFQf////8Hc0sbIQQLIAAgA0EBaiIFNgIAIAMsAAEhBiAEIQIgBSEDIAZBMGsiAUEKSQ0ACyACC7AUAhV/AX4jAEFAaiIHJAAgByABNgI8IAdBJ2ohFSAHQShqIRACQAJAAkACQANAQQAhBgNAIAEhDCAGIA1B/////wdzSg0CIAYgDWohDQJAAkACQAJAIAEiBi0AACIKBEADQAJAAkAgCkH/AXEiAUUEQCAGIQEMAQsgAUElRw0BIAYhCgNAIAotAAFBJUcEQCAKIQEMAgsgBkEBaiEGIAotAAIhGCAKQQJqIgEhCiAYQSVGDQALCyAGIAxrIgYgDUH/////B3MiFkoNCSAABEAgACAMIAYQHQsgBg0HIAcgATYCPCABQQFqIQZBfyEPAkAgASwAAUEwayIIQQlLDQAgAS0AAkEkRw0AIAFBA2ohBkEBIREgCCEPCyAHIAY2AjxBACELAkAgBiwAACIKQSBrIgFBH0sEQCAGIQgMAQsgBiEIQQEgAXQiAUGJ0QRxRQ0AA0AgByAGQQFqIgg2AjwgASALciELIAYsAAEiCkEgayIBQSBPDQEgCCEGQQEgAXQiAUGJ0QRxDQALCwJAIApBKkYEQAJ/AkAgCCwAAUEwayIBQQlLDQAgCC0AAkEkRw0AAn8gAEUEQCAEIAFBAnRqQQo2AgBBAAwBCyADIAFBA3RqKAIACyEOIAhBA2ohAUEBDAELIBENBiAIQQFqIQEgAEUEQCAHIAE2AjxBACERQQAhDgwDCyACIAIoAgAiBkEEajYCACAGKAIAIQ5BAAshESAHIAE2AjwgDkEATg0BQQAgDmshDiALQYDAAHIhCwwBCyAHQTxqEEwiDkEASA0KIAcoAjwhAQtBACEGQX8hCQJ/QQAgAS0AAEEuRw0AGiABLQABQSpGBEACfwJAIAEsAAJBMGsiCEEJSw0AIAEtAANBJEcNACABQQRqIQECfyAARQRAIAQgCEECdGpBCjYCAEEADAELIAMgCEEDdGooAgALDAELIBENBiABQQJqIQFBACAARQ0AGiACIAIoAgAiCEEEajYCACAIKAIACyEJIAcgATYCPCAJQQBODAELIAcgAUEBajYCPCAHQTxqEEwhCSAHKAI8IQFBAQshEgNAIAYhE0EcIQggASIXLAAAIgZB+wBrQUZJDQsgAUEBaiEBIAYgE0E6bGpB7z9qLQAAIgZBAWtBCEkNAAsgByABNgI8AkAgBkEbRwRAIAZFDQwgD0EATgRAIABFBEAgBCAPQQJ0aiAGNgIADAwLIAcgAyAPQQN0aikDADcDMAwCCyAARQ0IIAdBMGogBiACIAUQSwwBCyAPQQBODQtBACEGIABFDQgLIAAtAABBIHENCyALQf//e3EiCiALIAtBgMAAcRshC0EAIQ9BigghFCAQIQgCQAJAAn8CQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAIBcsAAAiBkFTcSAGIAZBD3FBA0YbIAYgExsiBkHYAGsOIQQWFhYWFhYWFhAWCQYQEBAWBhYWFhYCBQMWFgoWARYWBAALAkAgBkHBAGsOBxAWCxYQEBAACyAGQdMARg0LDBULIAcpAzAhG0GKCAwFC0EAIQYCQAJAAkACQAJAAkACQCATQf8BcQ4IAAECAwQcBQYcCyAHKAIwIA02AgAMGwsgBygCMCANNgIADBoLIAcoAjAgDaw3AwAMGQsgBygCMCANOwEADBgLIAcoAjAgDToAAAwXCyAHKAIwIA02AgAMFgsgBygCMCANrDcDAAwVC0EIIAkgCUEITRshCSALQQhyIQtB+AAhBgsgECEBIAcpAzAiG0IAUgRAIAZBIHEhDANAIAFBAWsiASAbp0EPcUGAxABqLQAAIAxyOgAAIBtCD1YhGSAbQgSIIRsgGQ0ACwsgASEMIAcpAzBQDQMgC0EIcUUNAyAGQQR2QYoIaiEUQQIhDwwDCyAQIQEgBykDMCIbQgBSBEADQCABQQFrIgEgG6dBB3FBMHI6AAAgG0IHViEaIBtCA4ghGyAaDQALCyABIQwgC0EIcUUNAiAJIBAgAWsiAUEBaiABIAlIGyEJDAILIAcpAzAiG0IAUwRAIAdCACAbfSIbNwMwQQEhD0GKCAwBCyALQYAQcQRAQQEhD0GLCAwBC0GMCEGKCCALQQFxIg8bCyEUIBsgEBApIQwLIBIgCUEASHENESALQf//e3EgCyASGyELAkAgBykDMCIbQgBSDQAgCQ0AIBAhDEEAIQkMDgsgCSAbUCAQIAxraiIBIAEgCUgbIQkMDQsgBykDMCEbDAsLAn9B/////wcgCSAJQf////8HTxsiCyIGQQBHIQgCQAJAAkAgBygCMCIBQcIRIAEbIgwiAUEDcUUNACAGRQ0AA0AgAS0AAEUNAiAGQQFrIgZBAEchCCABQQFqIgFBA3FFDQEgBg0ACwsgCEUNAQJAIAEtAABFDQAgBkEESQ0AA0BBgIKECCABKAIAIghrIAhyQYCBgoR4cUGAgYKEeEcNAiABQQRqIQEgBkEEayIGQQNLDQALCyAGRQ0BCwNAIAEgAS0AAEUNAhogAUEBaiEBIAZBAWsiBg0ACwtBAAsiASAMayALIAEbIgEgDGohCCAJQQBOBEAgCiELIAEhCQwMCyAKIQsgASEJIAgtAAANDwwLCyAHKQMwIhtCAFINAUIAIRsMCQsgCQRAIAcoAjAMAgtBACEGIABBICAOQQAgCxAfDAILIAdBADYCDCAHIBs+AgggByAHQQhqIgY2AjBBfyEJIAYLIQpBACEGA0ACQCAKKAIAIgxFDQAgB0EEaiAMEEkiDEEASA0PIAwgCSAGa0sNACAKQQRqIQogBiAMaiIGIAlJDQELC0E9IQggBkEASA0MIABBICAOIAYgCxAfIAZFBEBBACEGDAELQQAhCCAHKAIwIQoDQCAKKAIAIgxFDQEgB0EEaiIJIAwQSSIMIAhqIgggBksNASAAIAkgDBAdIApBBGohCiAGIAhLDQALCyAAQSAgDiAGIAtBgMAAcxAfIA4gBiAGIA5IGyEGDAgLIBIgCUEASHENCUE9IQggACAHKwMwIA4gCSALIAYQSiIGQQBODQcMCgsgBi0AASEKIAZBAWohBgwACwALIAANCSARRQ0DQQEhBgNAIAQgBkECdGooAgAiAARAIAMgBkEDdGogACACIAUQS0EBIQ0gBkEBaiIGQQpHDQEMCwsLQQEhDSAGQQpPDQkDQCAEIAZBAnRqKAIADQEgBkEBaiIGQQpHDQALDAkLQRwhCAwGCyAHIBs8ACdBASEJIBUhDCAKIQsLIAkgCCAMayIKIAkgCkobIgkgD0H/////B3NKDQNBPSEIIA4gCSAPaiIBIAEgDkgbIgYgFkoNBCAAQSAgBiABIAsQHyAAIBQgDxAdIABBMCAGIAEgC0GAgARzEB8gAEEwIAkgCkEAEB8gACAMIAoQHSAAQSAgBiABIAtBgMAAcxAfIAcoAjwhAQwBCwsLQQAhDQwDC0E9IQgLQbjYACAINgIAC0F/IQ0LIAdBQGskACANC78CAQV/IwBB0AFrIgQkACAEIAI2AswBIARBoAFqIgJBAEEoECQaIAQgBCgCzAE2AsgBAkBBACABIARByAFqIARB0ABqIAIgAxBNQQBIBEBBfyEDDAELIAAoAkxBAEghCCAAIAAoAgAiB0FfcTYCAAJ/AkACQCAAKAIwRQRAIABB0AA2AjAgAEEANgIcIABCADcDECAAKAIsIQUgACAENgIsDAELIAAoAhANAQtBfyAAEFANARoLIAAgASAEQcgBaiAEQdAAaiAEQaABaiADEE0LIQIgBQRAIABBAEEAIAAoAiQRAwAaIABBADYCMCAAIAU2AiwgAEEANgIcIAAoAhQhASAAQgA3AxAgAkF/IAEbIQILIAAgACgCACIAIAdBIHFyNgIAQX8gAiAAQSBxGyEDIAgNAAsgBEHQAWokACADC34CAX8BfiAAvSIDQjSIp0H/D3EiAkH/D0cEfCACRQRAIAEgAEQAAAAAAAAAAGEEf0EABSAARAAAAAAAAPBDoiABEE8hACABKAIAQUBqCzYCACAADwsgASACQf4HazYCACADQv////////+HgH+DQoCAgICAgIDwP4S/BSAACwtZAQF/IAAgACgCSCIBQQFrIAFyNgJIIAAoAgAiAUEIcQRAIAAgAUEgcjYCAEF/DwsgAEIANwIEIAAgACgCLCIBNgIcIAAgATYCFCAAIAEgACgCMGo2AhBBAAsCAAvtAwBBjMkAQYgLEBVBpMkAQe4JQQFBABAUQbDJAEGuCUEBQYB/Qf8AEAZByMkAQacJQQFBgH9B/wAQBkG8yQBBpQlBAUEAQf8BEAZB1MkAQbAIQQJBgIB+Qf//ARAGQeDJAEGnCEECQQBB//8DEAZB7MkAQb8IQQRBgICAgHhB/////wcQBkH4yQBBtghBBEEAQX8QBkGEygBBlwpBBEGAgICAeEH/////BxAGQZDKAEGOCkEEQQBBfxAGQZzKAEHPCEKAgICAgICAgIB/Qv///////////wAQVkGoygBBzghCAEJ/EFZBtMoAQcgIQQQQDkHAygBB7QpBCBAOQfAoQbYKEA1ByClBvA8QDUGQKkEEQZwKEAtB3CpBAkHCChALQagrQQRB0QoQC0GUJxATQdArQQBB9w4QAEH4K0EAQd0PEABBoCxBAUGVDxAAQcgsQQJBxAsQAEHwLEEDQeMLEABBmC1BBEGLDBAAQcAtQQVBqAwQAEHoLUEEQYIQEABBkC5BBUGgEBAAQfgrQQBBjg0QAEGgLEEBQe0MEABByCxBAkHQDRAAQfAsQQNBrg0QAEGYLUEEQdYOEABBwC1BBUG0DhAAQbguQQhBkw4QAEHgLkEJQfENEABBiC9BBkHODBAAQbAvQQdBxxAQAAtmAQN/QdgAECxB0ABqIgFB8MsANgIAIAFBnMwANgIAIAAQKiICQQ1qEBwiA0EANgIIIAMgAjYCBCADIAI2AgAgASADQQxqIAAgAkEBahAiNgIEIAFBzMwANgIAIAFB7MwAQRYQFgALqAEBAX8jAEEgayIDJAAgASgCBCIBQQlPBEAgARADCyADIAE2AhAgAigCBCIBQQlPBEAgARADCyADIAE2AhggA0EANgIMAkBB3M4ALQAAQQFxBEBB2M4AKAIAIQEMAQtBA0H8KEEAEAUhAUHczgBBAToAAEHYzgAgATYCAAsgASAAKAIEQfAIIANBDGogA0EQahAEGiADKAIMIgAEQCAAEAELIANBIGokAAv/AwIEfwF8IwBBEGsiBCQAIAQgAjYCCCAEQQA2AgQCQEHEzgAtAABBAXEEQEHAzgAoAgAhAgwBC0ECQZwoQQAQBSECQcTOAEEBOgAAQcDOACACNgIACwJ/IAIgASgCBEGKCSAEQQRqIARBCGoQBCIIRAAAAAAAAPBBYyAIRAAAAAAAAAAAZnEEQCAIqwwBC0EACyEFIAQoAgQhAiAAIAU2AgQgAEGkzwA2AgAgAgRAIAIQAQsjAEEgayICJAAgACgCBCIFQQlPBEAgBRADCyACIAU2AhAgAygCBCADLAALIgUgBUEASCIHGyIFQQRqECwiBiAFNgIAIAZBBGogAygCACADIAcbIAUQIhogAiAGNgIYIAJBADYCDAJAQczOAC0AAEEBcQRAQcjOACgCACEDDAELQQNBpChBABAFIQNBzM4AQQE6AABByM4AIAM2AgALIAMgASgCBEH7CiACQQxqIAJBEGoQBBogAigCDCIDBEAgAxABCyACQSBqJAAgACgCBCIAQQlPBEAgABADCyAEIAA2AgggBEEANgIEAkBBvM4ALQAAQQFxBEBBuM4AKAIAIQAMAQtBAkGMKEEAEAUhAEG8zgBBAToAAEG4zgAgADYCAAsgACABKAIEQZcJIARBBGogBEEIahAEGiAEKAIEIgAEQCAAEAELIARBEGokAAscACAAIAFBCCACpyACQiCIpyADpyADQiCIpxAPC8sDAQJ/QbAmQcQmQeAmQQBB8CZBAUHzJkEAQfMmQQBBrRFB9SZBAhAYQbAmQQJB+CZBnCdBA0EEEBdBCBAcIgBBADYCBCAAQQU2AgBBCBAcIgFBADYCBCABQQY2AgBBsCZB6QhBlCdBnCdBByAAQZQnQaAnQQggARAKQQgQHCIAQQA2AgQgAEEJNgIAQQgQHCIBQQA2AgQgAUEKNgIAQbAmQfQKQZQnQZwnQQcgAEGUJ0GgJ0EIIAEQCkEIEBwiAEEANgIEIABBCzYCAEEIEBwiAUEANgIEIAFBDDYCAEGwJkHXCEGUJ0GcJ0EHIABBlCdBoCdBCCABEApBCBAcIgBBADYCBCAAQQ02AgBBsCZBgAhBB0GwJ0HMJ0EOIABBAEEAEAdBCBAcIgBBADYCBCAAQQ82AgBBsCZB8wlBBkHgJ0H4J0EQIABBAEEAEAdBCBAcIgBBADYCBCAAQRE2AgBBsCZBgApBAkGAKEGIKEESIABBAEEAEAdBCBAcIgBBADYCBCAAQRM2AgBBsCZB5wpBAkGAKEGIKEESIABBAEEAEAdBCBAcIgBBADYCBCAAQRQ2AgBBsCZBwwhBAkGUKEGcJ0EVIABBAEEAEAcLBwAgACgCBAsFAEGzCQsWACAARQRAQQAPCyAAQbzHABAgQQBHCxoAIAAgASgCCCAFEB4EQCABIAIgAyAEEDwLCzcAIAAgASgCCCAFEB4EQCABIAIgAyAEEDwPCyAAKAIIIgAgASACIAMgBCAFIAAoAgAoAhQRCQALpwEAIAAgASgCCCAEEB4EQAJAIAEoAgQgAkcNACABKAIcQQFGDQAgASADNgIcCw8LAkAgACABKAIAIAQQHkUNAAJAIAIgASgCEEcEQCABKAIUIAJHDQELIANBAUcNASABQQE2AiAPCyABIAI2AhQgASADNgIgIAEgASgCKEEBajYCKAJAIAEoAiRBAUcNACABKAIYQQJHDQAgAUEBOgA2CyABQQQ2AiwLC4sCACAAIAEoAgggBBAeBEACQCABKAIEIAJHDQAgASgCHEEBRg0AIAEgAzYCHAsPCwJAIAAgASgCACAEEB4EQAJAIAIgASgCEEcEQCABKAIUIAJHDQELIANBAUcNAiABQQE2AiAPCyABIAM2AiACQCABKAIsQQRGDQAgAUEAOwE0IAAoAggiACABIAIgAkEBIAQgACgCACgCFBEJACABLQA1QQFGBEAgAUEDNgIsIAEtADRFDQEMAwsgAUEENgIsCyABIAI2AhQgASABKAIoQQFqNgIoIAEoAiRBAUcNASABKAIYQQJHDQEgAUEBOgA2DwsgACgCCCIAIAEgAiADIAQgACgCACgCGBEIAAsLbAECfyMAQRBrIgMkACABIAAoAgQiBEEBdWohASAAKAIAIQAgBEEBcQRAIAEoAgAgAGooAgAhAAsgAyACNgIMIANBpM8ANgIIIAEgA0EIaiAAEQAAIAMoAgwiAEEJTwRAIAAQAgsgA0EQaiQAC40FAQR/IwBBQGoiBCQAAkAgAUGYyQBBABAeBEAgAkEANgIAQQEhBQwBCwJAIAAgASAALQAIQRhxBH9BAQUgAUUNASABQYzHABAgIgNFDQEgAy0ACEEYcUEARwsQHiEGCyAGBEBBASEFIAIoAgAiAEUNASACIAAoAgA2AgAMAQsCQCABRQ0AIAFBvMcAECAiBkUNASACKAIAIgEEQCACIAEoAgA2AgALIAYoAggiAyAAKAIIIgFBf3NxQQdxDQEgA0F/cyABcUHgAHENAUEBIQUgACgCDCAGKAIMQQAQHg0BIAAoAgxBjMkAQQAQHgRAIAYoAgwiAEUNAiAAQfDHABAgRSEFDAILIAAoAgwiA0UNAEEAIQUgA0G8xwAQICIBBEAgAC0ACEEBcUUNAgJ/IAYoAgwhAEEAIQICQANAQQAgAEUNAhogAEG8xwAQICIDRQ0BIAMoAgggASgCCEF/c3ENAUEBIAEoAgwgAygCDEEAEB4NAhogAS0ACEEBcUUNASABKAIMIgBFDQEgAEG8xwAQICIBBEAgAygCDCEADAELCyAAQazIABAgIgBFDQAgACADKAIMED0hAgsgAgshBQwCCyADQazIABAgIgEEQCAALQAIQQFxRQ0CIAEgBigCDBA9IQUMAgsgA0HcxgAQICIBRQ0BIAYoAgwiAEUNASAAQdzGABAgIgBFDQEgAigCACEDIARBCGpBAEE4ECQaIAQgA0EARzoAOyAEQX82AhAgBCABNgIMIAQgADYCBCAEQQE2AjQgACAEQQRqIANBASAAKAIAKAIcEQYAIAQoAhwiAEEBRgRAIAIgBCgCFEEAIAMbNgIACyAAQQFGIQUMAQtBACEFCyAEQUBrJAAgBQsxACAAIAEoAghBABAeBEAgASACIAMQPg8LIAAoAggiACABIAIgAyAAKAIAKAIcEQYACxgAIAAgASgCCEEAEB4EQCABIAIgAxA+CwukAQECfyMAQUBqIgMkAAJ/QQEgACABQQAQHg0AGkEAIAFFDQAaQQAgAUHcxgAQICIBRQ0AGiADQQhqQQBBOBAkGiADQQE6ADsgA0F/NgIQIAMgADYCDCADIAE2AgQgA0EBNgI0IAEgA0EEaiACKAIAQQEgASgCACgCHBEGACADKAIcIgBBAUYEQCACIAMoAhQ2AgALIABBAUYLIQQgA0FAayQAIAQLCgAgACABQQAQHgtOAgF/AXwjAEEQayICJAAgAkEANgIMIAEoAgRBpMkAIAJBDGoQCSEDIAIoAgwiAQRAIAEQAQsgACADRAAAAAAAAAAAYjoAOCACQRBqJAALNwEBfyMAQRBrIgIkACACIAEtADg2AgggAEGkyQAgAkEIahAINgIEIABBpM8ANgIAIAJBEGokAAuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGECIaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEECIaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACCwUAEBAAC50BAQJ/IwBBEGsiAiQAQcQAEBwhASAAKAIEIgBBCU8EQCAAEAMLIAIgADYCCCABQZQnIAJBCGoQCDYCBCABQaTPADYCACABQQI2AhwgAUGkzwA2AhggAUECNgIUIAFBpM8ANgIQIAFBAjYCDCABQaTPADYCCCABQQA6ACAgAUKAgICAMDcCPCABQQA7ADcgAUEAOwArIAJBEGokACABC54FAgZ+BH8gASABKAIAQQdqQXhxIgFBEGo2AgAgACELIAEpAwAhAyABKQMIIQcjAEEgayIBJAAgB0L///////8/gyEFAn4gB0IwiEL//wGDIgSnIglBgfgAa0H9D00EQCAFQgSGIANCPIiEIQIgCUGA+ABrrSEEAkAgA0L//////////w+DIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILQgAgAiACQv////////8HViIAGyECIACtIAR8DAELAkAgAyAFhFANACAEQv//AVINACAFQgSGIANCPIiEQoCAgICAgIAEhCECQv8PDAELQv8PIAlB/ocBSw0AGkIAQYD4AEGB+AAgBFAiCBsiCiAJayIAQfAASg0AGiADIQIgBSAFQoCAgICAgMAAhCAIGyIEIQYCQEGAASAAayIIQcAAcQRAIAIgCEFAaq2GIQZCACECDAELIAhFDQAgBiAIrSIFhiACQcAAIAhrrYiEIQYgAiAFhiECCyABIAI3AxAgASAGNwMYAkAgAEHAAHEEQCAEIABBQGqtiCEDQgAhBAwBCyAARQ0AIARBwAAgAGuthiADIACtIgKIhCEDIAQgAoghBAsgASADNwMAIAEgBDcDCCABKQMIQgSGIAEpAwAiA0I8iIQhAgJAIAkgCkcgASkDECABKQMYhEIAUnGtIANC//////////8Pg4QiA0KBgICAgICAgAhaBEAgAkIBfCECDAELIANCgICAgICAgIAIUg0AIAJCAYMgAnwhAgsgAkKAgICAgICACIUgAiACQv////////8HViIAGyECIACtCyEDIAFBIGokACALIAdCgICAgICAgICAf4MgA0I0hoQgAoS/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]),H("CriOS"),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=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(e.sent.auth){e.next=11;break}throw A=this._core.errorModule,c=A.RtcError,g=A.ErrorCodeDictionary,d=this._core.utils.isOverseaSdkAppId(t.sdkAppId)?"https://trtc.io/document/56025":"https://cloud.tencent.com/document/product/647/85386",new c({code:g.NEED_TO_BUY,messageParams:{value:"Virtual Background",url:d}});case 11:return this.preLoadPromise||(this.preLoadPromise=this.preload(this._core.assetsPath)),e.next=14,this.preLoadPromise;case 14:return e.abrupt("return",this.core.room.videoManager.setVirtualBackground({type:n,imageUrl:o,blurLevel:a,onAbort:function(e){var t;l.core.kvStatManager.addEnum({key:Le,value:l.getKVTypeValue(!0,l.isAborted,"ABORT_IN_VIDEO_MANAGER")}),l.isAborted=!0,l.core.clearStarted(l,l.getGroup()),l.stop(),delete l.preLoadPromise,null==(t=l.onAbort)||t.call(l,e)}}).then((function(){l.core.kvStatManager.addEnum({key:Le,value:l.getKVTypeValue(!1,l.isAborted,"NONE")})})).catch((function(){l.core.kvStatManager.addEnum({key:Le,value:l.getKVTypeValue(!0,l.isAborted,"OTHER")})})));case 15: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;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=Math.round((new Date).getTime()/1e3),e.prev=2,e.next=5,i.schedule.getAbilityConfig(r,i.schedule.ScheduleRequestType.TRTC_AUTO_CONF,{sdkAppId:r,userId:n,userSig:o,timestamp:s});case 5:if(A=e.sent,i.log.info("virtual background ability response: ".concat(JSON.stringify(A))),c=A.data,!(null==(a=null==c?void 0:c.trtcAutoConf)?void 0:a.web_ar)){e.next=10;break}return e.abrupt("return",{auth:!0,timestamp:s});case 10:return e.abrupt("return",{auth:!1});case 13:return e.prev=13,e.t0=e.catch(2),i.log.error("virtual background fetch error",e.t0),e.abrupt("return",{auth:!1});case 17:case"end":return e.stop()}}),e,null,[[2,13]])})))).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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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(){he("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)")}}),_(void 0===n.memoryInitializerPrefixURL,"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),_(void 0===n.pthreadMainPrefixURL,"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),_(void 0===n.cdInitializerPrefixURL,"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),_(void 0===n.filePackagePrefixURL,"Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),_(void 0===n.read,"Module.read option was removed (modify read_ in JS)"),_(void 0===n.readAsync,"Module.readAsync option was removed (modify readAsync in JS)"),_(void 0===n.readBinary,"Module.readBinary option was removed (modify readBinary in JS)"),_(void 0===n.setWindowTitle,"Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),_(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(){he("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(){he("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(){he("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(){he("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)")}}),_(!g,"shell environment detected but not enabled at build time. Add 'shell' to `-s ENVIRONMENT` to enable.");var m,y=0,C=function(e){y=e};n.wasmBinary&&n.wasmBinary,Object.getOwnPropertyDescriptor(n,"wasmBinary")||Object.defineProperty(n,"wasmBinary",{configurable:!0,get:function(){he("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)")}}),n.noExitRuntime,Object.getOwnPropertyDescriptor(n,"noExitRuntime")||Object.defineProperty(n,"noExitRuntime",{configurable:!0,get:function(){he("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))&&he("no native wasm support detected");var w=!1;function _(e,t){e||he("Assertion failed: ".concat(t))}var B="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function v(e,t,r){for(var n=t+r,o=t;e[o]&&!(o>=n);)++o;if(o-t>16&&e.subarray&&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 b(e,t){return e?v(S,e,t):""}function O(e,t,r,n){if(!(n>0))return 0;for(var o=r,i=r+n-1,a=0;a<e.length;++a){var s=e.charCodeAt(a);if(s>=55296&&s<=57343&&(s=65536+((1023&s)<<10)|1023&e.charCodeAt(++a)),s<=127){if(r>=i)break;t[r++]=s}else if(s<=2047){if(r+1>=i)break;t[r++]=192|s>>6,t[r++]=128|63&s}else if(s<=65535){if(r+2>=i)break;t[r++]=224|s>>12,t[r++]=128|s>>6&63,t[r++]=128|63&s}else{if(r+3>=i)break;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 Q(e,t,r){return _("number"==typeof r,"stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),O(e,S,t,r)}function T(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 M,R,S,F,k,x,N,j,U,L="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function H(e,t){_(e%2==0,"Pointer passed to UTF16ToString must be aligned to two bytes!");for(var r=e,n=r>>1,o=n+t/2;!(n>=o)&&k[n];)++n;if((r=n<<1)-e>32&&L)return L.decode(S.subarray(e,r));for(var i="",a=0;!(a>=t/2);++a){var s=F[e+2*a>>1];if(0==s)break;i+=String.fromCharCode(s)}return i}function G(e,t,r){if(_(t%2==0,"Pointer passed to stringToUTF16 must be aligned to two bytes!"),_("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);F[t>>1]=a,t+=2}return F[t>>1]=0,t-n}function Y(e){return 2*e.length}function X(e,t){_(e%4==0,"Pointer passed to UTF32ToString must be aligned to four bytes!");for(var r=0,n="";!(r>=t/4);){var o=x[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 W(e,t,r){if(_(t%4==0,"Pointer passed to stringToUTF32 must be aligned to four bytes!"),_("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)),x[t>>2]=a,(t+=4)+4>o)break}return x[t>>2]=0,t-n}function V(e){for(var t=0,r=0;r<e.length;++r){var n=e.charCodeAt(r);n>=55296&&n<=57343&&++r,t+=4}return t}function z(e){var t=T(e)+1,r=Kr(t);return r&&O(e,R,r,t),r}function J(e){M=e,n.HEAP8=R=new Int8Array(e),n.HEAP16=F=new Int16Array(e),n.HEAP32=x=new Int32Array(e),n.HEAPU8=S=new Uint8Array(e),n.HEAPU16=k=new Uint16Array(e),n.HEAPU32=N=new Uint32Array(e),n.HEAPF32=j=new Float32Array(e),n.HEAPF64=U=new Float64Array(e)}var K=5242880;n.TOTAL_STACK&&_(K===n.TOTAL_STACK,"the stack size can no longer be determined at runtime");var Z,q=n.INITIAL_MEMORY||16777216;function $(){var e=$r();_(!(3&e)),N[1+(e>>2)]=34821223,N[2+(e>>2)]=2310721022,x[0]=1668509029}function ee(){if(!w){var e=$r(),t=N[1+(e>>2)],r=N[2+(e>>2)];34821223==t&&2310721022==r||he("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!==x[0]&&he("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(){he("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>=K,"INITIAL_MEMORY should be larger than TOTAL_STACK, was ".concat(q,"! (TOTAL_STACK=").concat(K,")")),_("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"),_(!n.wasmMemory,"Use of `wasmMemory` detected. Use -s IMPORTED_MEMORY to define wasmMemory externally"),_(16777216==q,"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 te=[],re=[],ne=[],oe=[],ie=!1;_(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),_(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),_(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),_(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 ae,se,Ae,ce,ue=0,ge=null,de=null,le={};function fe(e){for(var t=e;;){if(!le[e])return e;e=t+Math.random()}}function Ee(e){ue++,n.monitorRunDependencies&&n.monitorRunDependencies(ue),e?(_(!le[e]),le[e]=1,null===ge&&"undefined"!=typeof setInterval&&(ge=setInterval((function(){if(w)return clearInterval(ge),void(ge=null);var e=!1;for(var t in le)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 pe(e){if(ue--,n.monitorRunDependencies&&n.monitorRunDependencies(ue),e?(_(le[e]),delete le[e]):h("warning: run dependency removed without ID"),0==ue&&(null!==ge&&(clearInterval(ge),ge=null),de)){var t=de;de=null,t()}}function he(e){n.onAbort&&n.onAbort(e),h(e+=""),w=!0;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())),ve(t)));e=o;var i=new WebAssembly.RuntimeError(e);throw r(i),i}function Ie(e,t){return function(){var r=e,o=t;return o=n.asm,_(ie,"native function `".concat(r,"` called before runtime initialization")),_(!0,"native function `".concat(r,"` called after runtime exit (use NO_EXIT_RUNTIME to keep it alive after main() exits)")),o[e]||_(o[e],"exported native function `".concat(r,"` not found")),o[e].apply(null,arguments)}}n.preloadedImages={},n.preloadedAudios={},(ae="selfie_segmentation_solution_simd_wasm_bin.wasm").startsWith("data:application/octet-stream;base64,")||(se=ae,ae=n.locateFile?n.locateFile(se,f):f+se);var me,ye={460656:function(){var e=!0;if(e){var t=mr;if("function"!=typeof t)return void("undefined"!=typeof console&&console.error('Expected Emscripten global function "findCanvasEventTarget" not found. WebGL context creation may fail.'));mr=function(e){if(0==e){if(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 Ce(e,t){if(w)h("user callback triggered after application aborted. Ignoring.");else try{e()}catch(e){if(e instanceof dn)return;if("unwind"!==e)throw e&&"object"===E(e)&&e.stack&&h("exception thrown: ".concat([e,e.stack])),e}}function we(e,t){return setTimeout((function(){Ce(e)}),t)}me=u?function(){var e=process.hrtime();return 1e3*e[0]+e[1]/1e6}:function(){return performance.now()};var _e={mainLoop:{running:!1,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){_e.mainLoop.scheduler=null,_e.mainLoop.currentlyRunningMainloop++},resume:function(){_e.mainLoop.currentlyRunningMainloop++;var e=_e.mainLoop.timingMode,t=_e.mainLoop.timingValue,r=_e.mainLoop.func;_e.mainLoop.func=null,function(e,t,r,o){_(!_e.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."),_e.mainLoop.func=e,_e.mainLoop.arg=o;var i=_e.mainLoop.currentlyRunningMainloop;function a(){return!(i<_e.mainLoop.currentlyRunningMainloop)}_e.mainLoop.running=!1,_e.mainLoop.runner=function(){if(!w)if(_e.mainLoop.queue.length>0){var t=Date.now(),r=_e.mainLoop.queue.shift();if(r.func(r.arg),_e.mainLoop.remainingBlockers){var o=_e.mainLoop.remainingBlockers,i=o%1==0?o-1:Math.floor(o);r.counted?_e.mainLoop.remainingBlockers=i:(i+=.5,_e.mainLoop.remainingBlockers=(8*o+i)/9)}if(p('main loop blocker "'.concat(r.name,'" took ').concat(Date.now()-t," ms")),_e.mainLoop.updateStatus(),!a())return;setTimeout(_e.mainLoop.runner,0)}else a()&&(_e.mainLoop.currentFrameNumber=_e.mainLoop.currentFrameNumber+1|0,1==_e.mainLoop.timingMode&&_e.mainLoop.timingValue>1&&_e.mainLoop.currentFrameNumber%_e.mainLoop.timingValue!=0?_e.mainLoop.scheduler():(0==_e.mainLoop.timingMode&&(_e.mainLoop.tickStartTime=me()),Er.newRenderingFrameStarted(),void 0!==Er&&Er.currentContext&&!Er.currentContextIsProxied&&!Er.currentContext.attributes.explicitSwapControl&&Er.currentContext.GLctx.commit&&Er.currentContext.GLctx.commit(),"timeout"===_e.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!"),_e.mainLoop.method=""),_e.mainLoop.runIter(e),ee(),a()&&("object"===("undefined"==typeof SDL?"undefined":E(SDL))&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),_e.mainLoop.scheduler())))}}(r,0,0,_e.mainLoop.arg),function(e,t){if(_e.mainLoop.timingMode=e,_e.mainLoop.timingValue=t,!_e.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(_e.mainLoop.running||(_e.mainLoop.running=!0),0==e)_e.mainLoop.scheduler=function(){var e=0|Math.max(0,_e.mainLoop.tickStartTime+t-me());setTimeout(_e.mainLoop.runner,e)},_e.mainLoop.method="timeout";else if(1==e)_e.mainLoop.scheduler=function(){_e.requestAnimationFrame(_e.mainLoop.runner)},_e.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,"*")}}_e.mainLoop.scheduler=function(){setImmediate(_e.mainLoop.runner)},_e.mainLoop.method="immediate"}}(e,t),_e.mainLoop.scheduler()},updateStatus:function(){if(n.setStatus){var e=n.statusMessage||"Please wait...",t=_e.mainLoop.remainingBlockers,r=_e.mainLoop.expectedBlockers;t?t<r?n.setStatus("".concat(e," (").concat(r-t,"/").concat(r,")")):n.setStatus(e):n.setStatus("")}},runIter:function(e){if(!w){if(n.preMainLoop&&!1===n.preMainLoop())return;Ce(e),n.postMainLoop&&n.postMainLoop()}}},isFullscreen:!1,pointerLock:!1,moduleContextCreatedCallbacks:[],workers:[],init:function(){if(n.preloadPlugins||(n.preloadPlugins=[]),!_e.initted){_e.initted=!0;try{new Blob,_e.hasBlobConstructor=!0}catch(e){_e.hasBlobConstructor=!1,p("warning: no blob constructor, cannot create blobs with mimetypes")}_e.BlobBuilder="undefined"!=typeof MozBlobBuilder?MozBlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:_e.hasBlobConstructor?null:p("warning: no BlobBuilder"),_e.URLObject="undefined"!=typeof window?window.URL?window.URL:window.webkitURL:void 0,n.noImageDecoding||void 0!==_e.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(_e.hasBlobConstructor)try{(i=new Blob([e],{type:_e.getMimetype(t)})).size!==e.length&&(i=new Blob([new Uint8Array(e).buffer],{type:_e.getMimetype(t)}))}catch(e){I("Blob constructor present but fails: ".concat(e,"; falling back to blob builder"))}if(!i){var a=new _e.BlobBuilder;a.append(new Uint8Array(e).buffer),i=a.getBlob()}var s=_e.URLObject.createObjectURL(i);_("string"==typeof s,"createObjectURL must return a url as a string");var A=new Image;A.onload=function(){_(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,_e.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(!_e.hasBlobConstructor)return s();try{var A=new Blob([e],{type:_e.getMimetype(t)})}catch(e){return s()}var c=_e.URLObject.createObjectURL(A);_("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,we((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!==Er&&(a=Er.createContext(e,s))&&(i=Er.getContext(a).GLctx)}else i=e.getContext("2d");return i?(r&&(t||_(void 0===Hr,"cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),n.ctx=i,t&&Er.makeContextCurrent(a),n.useWebGL=t,_e.moduleContextCreatedCallbacks.forEach((function(e){e()})),_e.init()),i):null},destroyContext:function(e,t,r){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(e,t){_e.lockPointer=e,_e.resizeCanvas=t,void 0===_e.lockPointer&&(_e.lockPointer=!0),void 0===_e.resizeCanvas&&(_e.resizeCanvas=!1);var r=n.canvas;_e.fullscreenHandlersInstalled||(_e.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(){he("Module.requestFullScreen has been replaced by Module.requestFullscreen (without a capital S)")},exitFullscreen:function(){return!!_e.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===_e.nextRAF)_e.nextRAF=t+1e3/60;else for(;t+2>=_e.nextRAF;)_e.nextRAF+=1e3/60;var r=Math.max(_e.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,_e.fakeRequestAnimationFrame)(e):requestAnimationFrame(e)})),safeSetTimeout:function(e){return we(e)},safeRequestAnimationFrame:function(e){return _e.requestAnimationFrame((function(){Ce(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(_e.pointerLock)"mousemove"!=e.type&&"mozMovementX"in e?_e.mouseMovementX=_e.mouseMovementY=0:(_e.mouseMovementX=_e.getMovementX(e),_e.mouseMovementY=_e.getMovementY(e)),"undefined"!=typeof SDL?(_e.mouseX=SDL.mouseX+_e.mouseMovementX,_e.mouseY=SDL.mouseY+_e.mouseMovementY):(_e.mouseX+=_e.mouseMovementX,_e.mouseY+=_e.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(_(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)_e.lastTouches[s.identifier]=u,_e.touches[s.identifier]=u;else if("touchend"===e.type||"touchmove"===e.type){var g=_e.touches[s.identifier];g||(g=u),_e.lastTouches[s.identifier]=g,_e.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,_e.mouseMovementX=d-_e.mouseX,_e.mouseMovementY=l-_e.mouseY,_e.mouseX=d,_e.mouseY=l}},resizeListeners:[],updateResizeListeners:function(){var e=n.canvas;_e.resizeListeners.forEach((function(t){t(e.width,e.height)}))},setCanvasSize:function(e,t,r){var o=n.canvas;_e.updateCanvasDimensions(o,e,t),r||_e.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if("undefined"!=typeof SDL){var e=N[SDL.screen>>2];e|=8388608,x[SDL.screen>>2]=e}_e.updateCanvasDimensions(n.canvas),_e.updateResizeListeners()},setWindowedCanvasSize:function(){if("undefined"!=typeof SDL){var e=N[SDL.screen>>2];e&=-8388609,x[SDL.screen>>2]=e}_e.updateCanvasDimensions(n.canvas),_e.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)}_e.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 Be(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var r=t.func;"number"==typeof r?void 0===t.arg?Z.get(r)():Z.get(r)(t.arg):r(void 0===t.arg?null:t.arg)}else t(n)}}function ve(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 De(e){this.excPtr=e,this.ptr=e-16,this.set_type=function(e){x[this.ptr+4>>2]=e},this.get_type=function(){return x[this.ptr+4>>2]},this.set_destructor=function(e){x[this.ptr+8>>2]=e},this.get_destructor=function(){return x[this.ptr+8>>2]},this.set_refcount=function(e){x[this.ptr>>2]=e},this.set_caught=function(e){e=e?1:0,R[this.ptr+12|0]=e},this.get_caught=function(){return 0!=R[this.ptr+12|0]},this.set_rethrown=function(e){e=e?1:0,R[this.ptr+13|0]=e},this.get_rethrown=function(){return 0!=R[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=x[this.ptr>>2];x[this.ptr>>2]=e+1},this.release_ref=function(){var e=x[this.ptr>>2];return x[this.ptr>>2]=e-1,_(e>0),1===e}}function be(e){this.free=function(){Jr(this.ptr),this.ptr=0},this.set_base_ptr=function(e){x[this.ptr>>2]=e},this.get_base_ptr=function(){return x[this.ptr>>2]},this.set_adjusted_ptr=function(e){x[this.ptr+4>>2]=e},this.get_adjusted_ptr_addr=function(){return this.ptr+4},this.get_adjusted_ptr=function(){return x[this.ptr+4>>2]},this.get_exception_ptr=function(){if(un(this.get_exception_info().get_type()))return x[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 De(this.get_base_ptr())},void 0===e?(this.ptr=Kr(8),this.set_adjusted_ptr(0)):this.ptr=e}var Oe=[],Qe=0;function Te(e){try{return Jr(new De(e).ptr)}catch(e){h("exception during cxa_free_exception: ".concat(e))}}function Pe(e){return x[Zr()>>2]=e,e}var Me={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=Me.normalizeArray(e.split("/").filter((function(e){return!!e})),!t).join("/"))||t||(e="."),e&&r&&(e+="/"),(t?"/":"")+e},dirname:function(e){var t=Me.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=Me.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?e:e.substr(t+1)},extname:function(e){return Me.splitPath(e)[3]},join:function(){var e=Array.prototype.slice.call(arguments,0);return Me.normalize(e.join("/"))},join2:function(e,t){return Me.normalize("".concat(e,"/").concat(t))}};function Re(){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(){he("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 Se={resolve:function(){for(var e="",t=!1,r=arguments.length-1;r>=-1&&!t;r--){var n=r>=0?arguments[r]:Ue.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=Me.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=Se.resolve(e).substr(1),t=Se.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("/")}},Fe={ttys:[],init:function(){},shutdown:function(){},register:function(e,t){Fe.ttys[e]={input:[],output:[],ops:t},Ue.registerDevice(e,Fe.stream_ops)},stream_ops:{open:function(e){var t=Fe.ttys[e.node.rdev];if(!t)throw new Ue.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 Ue.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 Ue.ErrnoError(29)}if(void 0===s&&0===i)throw new Ue.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 Ue.ErrnoError(60);try{for(var i=0;i<n;i++)e.tty.ops.put_char(e.tty,t[r+i])}catch(e){throw new Ue.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=Vr(t,!0)}return e.input.shift()},put_char:function(e,t){null===t||10===t?(p(v(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(p(v(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,t){null===t||10===t?(h(v(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(h(v(e.output,0)),e.output=[])}}};function ke(e){e=function(e,t){return _(t,"alignment argument is required"),Math.ceil(e/t)*t}(e,65536);var t=gn(65536,e);return t?(function(e,t){S.fill(0,e,e+t)}(t,e),t):0}var xe={ops_table:null,mount:function(e){return xe.createNode(null,"/",16895,0)},createNode:function(e,t,r,n){if(Ue.isBlkdev(r)||Ue.isFIFO(r))throw new Ue.ErrnoError(63);xe.ops_table||(xe.ops_table={dir:{node:{getattr:xe.node_ops.getattr,setattr:xe.node_ops.setattr,lookup:xe.node_ops.lookup,mknod:xe.node_ops.mknod,rename:xe.node_ops.rename,unlink:xe.node_ops.unlink,rmdir:xe.node_ops.rmdir,readdir:xe.node_ops.readdir,symlink:xe.node_ops.symlink},stream:{llseek:xe.stream_ops.llseek}},file:{node:{getattr:xe.node_ops.getattr,setattr:xe.node_ops.setattr},stream:{llseek:xe.stream_ops.llseek,read:xe.stream_ops.read,write:xe.stream_ops.write,allocate:xe.stream_ops.allocate,mmap:xe.stream_ops.mmap,msync:xe.stream_ops.msync}},link:{node:{getattr:xe.node_ops.getattr,setattr:xe.node_ops.setattr,readlink:xe.node_ops.readlink},stream:{}},chrdev:{node:{getattr:xe.node_ops.getattr,setattr:xe.node_ops.setattr},stream:Ue.chrdev_stream_ops}});var o=Ue.createNode(e,t,r,n);return Ue.isDir(o.mode)?(o.node_ops=xe.ops_table.dir.node,o.stream_ops=xe.ops_table.dir.stream,o.contents={}):Ue.isFile(o.mode)?(o.node_ops=xe.ops_table.file.node,o.stream_ops=xe.ops_table.file.stream,o.usedBytes=0,o.contents=null):Ue.isLink(o.mode)?(o.node_ops=xe.ops_table.link.node,o.stream_ops=xe.ops_table.link.stream):Ue.isChrdev(o.mode)&&(o.node_ops=xe.ops_table.chrdev.node,o.stream_ops=xe.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=Ue.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,Ue.isDir(e.mode)?t.size=4096:Ue.isFile(e.mode)?t.size=e.usedBytes:Ue.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&&xe.resizeFileStorage(e,t.size)},lookup:function(e,t){throw Ue.genericErrors[44]},mknod:function(e,t,r,n){return xe.createNode(e,t,r,n)},rename:function(e,t,r){if(Ue.isDir(e.mode)){var n;try{n=Ue.lookupNode(t,r)}catch(e){}if(n)for(var o in n.contents)throw new Ue.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=Ue.lookupNode(e,t);for(var n in r.contents)throw new Ue.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=xe.createNode(e,t,41471,0);return n.link=r,n},readlink:function(e){if(!Ue.isLink(e.mode))throw new Ue.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(_(a>=0),a>8&&i.subarray)t.set(i.subarray(o,o+a),r);else for(var s=0;s<a;s++)t[r+s]=i[o+s];return a},write:function(e,t,r,n,o,i){if(_(!(t instanceof ArrayBuffer)),t.buffer===R.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 _(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(xe.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&&Ue.isFile(e.node.mode)&&(n+=e.node.usedBytes),n<0)throw new Ue.ErrnoError(28);return n},allocate:function(e,t,r){xe.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 Ue.ErrnoError(28);if(!Ue.isFile(e.node.mode))throw new Ue.ErrnoError(43);var a,s,A=e.node.contents;if(2&i||A.buffer!==M){if((n>0||n+r<A.length)&&(A=A.subarray?A.subarray(n,n+r):Array.prototype.slice.call(A,n,n+r)),s=!0,!(a=ke(r)))throw new Ue.ErrnoError(48);R.set(A,a)}else s=!1,a=A.byteOffset;return{ptr:a,allocated:s}},msync:function(e,t,r,n,o){if(!Ue.isFile(e.node.mode))throw new Ue.ErrnoError(43);return 2&o||xe.stream_ops.write(e,t,0,n,r,!1),0}}},Ne={0:"Success",1:"Arg list too long",2:"Permission denied",3:"Address already in use",4:"Address not available",5:"Address family not supported by protocol family",6:"No more processes",7:"Socket already connected",8:"Bad file number",9:"Trying to read unreadable message",10:"Mount device busy",11:"Operation canceled",12:"No children",13:"Connection aborted",14:"Connection refused",15:"Connection reset by peer",16:"File locking deadlock error",17:"Destination address required",18:"Math arg out of domain of func",19:"Quota exceeded",20:"File exists",21:"Bad address",22:"File too large",23:"Host is unreachable",24:"Identifier removed",25:"Illegal byte sequence",26:"Connection already in progress",27:"Interrupted system call",28:"Invalid argument",29:"I/O error",30:"Socket is already connected",31:"Is a directory",32:"Too many symbolic links",33:"Too many open files",34:"Too many links",35:"Message too long",36:"Multihop attempted",37:"File or path name too long",38:"Network interface is not configured",39:"Connection reset by network",40:"Network is unreachable",41:"Too many open files in system",42:"No buffer space available",43:"No such device",44:"No such file or directory",45:"Exec format error",46:"No record locks available",47:"The link has been severed",48:"Not enough core",49:"No message of desired type",50:"Protocol not available",51:"No space left on device",52:"Function not implemented",53:"Socket is not connected",54:"Not a directory",55:"Directory not empty",56:"State not recoverable",57:"Socket operation on non-socket",59:"Not a typewriter",60:"No such device or address",61:"Value too large for defined data type",62:"Previous owner died",63:"Not super-user",64:"Broken pipe",65:"Protocol error",66:"Unknown protocol",67:"Protocol wrong type for socket",68:"Math result not representable",69:"Read only file system",70:"Illegal seek",71:"No such process",72:"Stale file handle",73:"Connection timed out",74:"Text file busy",75:"Cross-device link",100:"Device not a stream",101:"Bad font file fmt",102:"Invalid slot",103:"Invalid request code",104:"No anode",105:"Block device required",106:"Channel number out of range",107:"Level 3 halted",108:"Level 3 reset",109:"Link number out of range",110:"Protocol driver not attached",111:"No CSI structure available",112:"Level 2 halted",113:"Invalid exchange",114:"Invalid request descriptor",115:"Exchange full",116:"No data (for no delay io)",117:"Timer expired",118:"Out of streams resources",119:"Machine is not on the network",120:"Package not installed",121:"The object is remote",122:"Advertise error",123:"Srmount error",124:"Communication error on send",125:"Cross mount point (not really error)",126:"Given log. name not unique",127:"f.d. invalid for this operation",128:"Remote address changed",129:"Can access a needed shared lib",130:"Accessing a corrupted shared lib",131:".lib section in a.out corrupted",132:"Attempting to link in too many libs",133:"Attempting to exec a shared library",135:"Streams pipe error",136:"Too many users",137:"Socket type not supported",138:"Not supported",139:"Protocol family not supported",140:"Can't send after socket shutdown",141:"Too many references",142:"Host is down",148:"No medium (in tape drive)",156:"Level 2 not synchronized"},je={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},Ue={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=Se.resolve(Ue.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 Ue.ErrnoError(32);for(var o=Me.normalizeArray(e.split("/").filter((function(e){return!!e})),!1),i=Ue.root,a="/",s=0;s<o.length;s++){var A=s===o.length-1;if(A&&t.parent)break;if(i=Ue.lookupNode(i,o[s]),a=Me.join2(a,o[s]),Ue.isMountpoint(i)&&(!A||A&&t.follow_mount)&&(i=i.mounted.root),!A||t.follow)for(var c=0;Ue.isLink(i.mode);){var u=Ue.readlink(a);if(a=Se.resolve(Me.dirname(a),u),i=Ue.lookupPath(a,{recurse_count:t.recurse_count}).node,c++>40)throw new Ue.ErrnoError(32)}}return{path:a,node:i}},getPath:function(e){for(var t;;){if(Ue.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)%Ue.nameTable.length},hashAddNode:function(e){var t=Ue.hashName(e.parent.id,e.name);e.name_next=Ue.nameTable[t],Ue.nameTable[t]=e},hashRemoveNode:function(e){var t=Ue.hashName(e.parent.id,e.name);if(Ue.nameTable[t]===e)Ue.nameTable[t]=e.name_next;else for(var r=Ue.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=Ue.mayLookup(e);if(r)throw new Ue.ErrnoError(r,e);for(var n=Ue.hashName(e.id,t),o=Ue.nameTable[n];o;o=o.name_next){var i=o.name;if(o.parent.id===e.id&&i===t)return o}return Ue.lookup(e,t)},createNode:function(e,t,r,n){_("object"===E(e));var o=new Ue.FSNode(e,t,r,n);return Ue.hashAddNode(o),o},destroyNode:function(e){Ue.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=Ue.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 Ue.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=Ue.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate:function(e,t){try{return Ue.lookupNode(e,t),20}catch(e){}return Ue.nodePermissions(e,"wx")},mayDelete:function(e,t,r){var n;try{n=Ue.lookupNode(e,t)}catch(e){return e.errno}var o=Ue.nodePermissions(e,"wx");if(o)return o;if(r){if(!Ue.isDir(n.mode))return 54;if(Ue.isRoot(n)||Ue.getPath(n)===Ue.cwd())return 10}else if(Ue.isDir(n.mode))return 31;return 0},mayOpen:function(e,t){return e?Ue.isLink(e.mode)?32:Ue.isDir(e.mode)&&("r"!==Ue.flagsToPermissionString(t)||512&t)?31:Ue.nodePermissions(e,Ue.flagsToPermissionString(t)):44},MAX_OPEN_FDS:4096,nextfd:function(e,t){e=e||0,t=t||Ue.MAX_OPEN_FDS;for(var r=e;r<=t;r++)if(!Ue.streams[r])return r;throw new Ue.ErrnoError(33)},getStream:function(e){return Ue.streams[e]},createStream:function(e,t,r){Ue.FSStream||(Ue.FSStream=function(){},Ue.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 Ue.FSStream;for(var o in e)n[o]=e[o];e=n;var i=Ue.nextfd(t,r);return e.fd=i,Ue.streams[i]=e,e},closeStream:function(e){Ue.streams[e]=null},chrdev_stream_ops:{open:function(e){var t=Ue.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:function(){throw new Ue.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){Ue.devices[e]={stream_ops:t}},getDevice:function(e){return Ue.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),Ue.syncFSRequests++,Ue.syncFSRequests>1&&h("warning: ".concat(Ue.syncFSRequests," FS.syncfs operations in flight at once, probably just doing extra work"));var r=Ue.getMounts(Ue.root.mount),n=0;function o(e){return _(Ue.syncFSRequests>0),Ue.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&&Ue.root)throw new Ue.ErrnoError(10);if(!o&&!i){var a=Ue.lookupPath(r,{follow_mount:!1});if(r=a.path,n=a.node,Ue.isMountpoint(n))throw new Ue.ErrnoError(10);if(!Ue.isDir(n.mode))throw new Ue.ErrnoError(54)}var s={type:e,opts:t,mountpoint:r,mounts:[]},A=e.mount(s);return A.mount=s,s.root=A,o?Ue.root=A:n&&(n.mounted=s,n.mount&&n.mount.mounts.push(s)),A},unmount:function(e){var t=Ue.lookupPath(e,{follow_mount:!1});if(!Ue.isMountpoint(t.node))throw new Ue.ErrnoError(28);var r=t.node,n=r.mounted,o=Ue.getMounts(n);Object.keys(Ue.nameTable).forEach((function(e){for(var t=Ue.nameTable[e];t;){var r=t.name_next;o.includes(t.mount)&&Ue.destroyNode(t),t=r}})),r.mounted=null;var i=r.mount.mounts.indexOf(n);_(-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=Ue.lookupPath(e,{parent:!0}).node,o=Me.basename(e);if(!o||"."===o||".."===o)throw new Ue.ErrnoError(28);var i=Ue.mayCreate(n,o);if(i)throw new Ue.ErrnoError(i);if(!n.node_ops.mknod)throw new Ue.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,Ue.mknod(e,t,0)},mkdir:function(e,t){return t=void 0!==t?t:511,t&=1023,t|=16384,Ue.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{Ue.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,Ue.mknod(e,t,r)},symlink:function(e,t){if(!Se.resolve(e))throw new Ue.ErrnoError(44);var r=Ue.lookupPath(t,{parent:!0}).node;if(!r)throw new Ue.ErrnoError(44);var n=Me.basename(t),o=Ue.mayCreate(r,n);if(o)throw new Ue.ErrnoError(o);if(!r.node_ops.symlink)throw new Ue.ErrnoError(63);return r.node_ops.symlink(r,n,e)},rename:function(e,t){var r,n,o=Me.dirname(e),i=Me.dirname(t),a=Me.basename(e),s=Me.basename(t);if(r=Ue.lookupPath(e,{parent:!0}).node,n=Ue.lookupPath(t,{parent:!0}).node,!r||!n)throw new Ue.ErrnoError(44);if(r.mount!==n.mount)throw new Ue.ErrnoError(75);var A,c=Ue.lookupNode(r,a),u=Se.relative(e,i);if("."!==u.charAt(0))throw new Ue.ErrnoError(28);if("."!==(u=Se.relative(t,o)).charAt(0))throw new Ue.ErrnoError(55);try{A=Ue.lookupNode(n,s)}catch(e){}if(c!==A){var g=Ue.isDir(c.mode),d=Ue.mayDelete(r,a,g);if(d)throw new Ue.ErrnoError(d);if(d=A?Ue.mayDelete(n,s,g):Ue.mayCreate(n,s))throw new Ue.ErrnoError(d);if(!r.node_ops.rename)throw new Ue.ErrnoError(63);if(Ue.isMountpoint(c)||A&&Ue.isMountpoint(A))throw new Ue.ErrnoError(10);if(n!==r&&(d=Ue.nodePermissions(r,"w")))throw new Ue.ErrnoError(d);try{Ue.trackingDelegate.willMovePath&&Ue.trackingDelegate.willMovePath(e,t)}catch(r){h("FS.trackingDelegate['willMovePath']('".concat(e,"', '").concat(t,"') threw an exception: ").concat(r.message))}Ue.hashRemoveNode(c);try{r.node_ops.rename(c,n,s)}catch(e){throw e}finally{Ue.hashAddNode(c)}try{Ue.trackingDelegate.onMovePath&&Ue.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=Ue.lookupPath(e,{parent:!0}).node,r=Me.basename(e),n=Ue.lookupNode(t,r),o=Ue.mayDelete(t,r,!0);if(o)throw new Ue.ErrnoError(o);if(!t.node_ops.rmdir)throw new Ue.ErrnoError(63);if(Ue.isMountpoint(n))throw new Ue.ErrnoError(10);try{Ue.trackingDelegate.willDeletePath&&Ue.trackingDelegate.willDeletePath(e)}catch(t){h("FS.trackingDelegate['willDeletePath']('".concat(e,"') threw an exception: ").concat(t.message))}t.node_ops.rmdir(t,r),Ue.destroyNode(n);try{Ue.trackingDelegate.onDeletePath&&Ue.trackingDelegate.onDeletePath(e)}catch(t){h("FS.trackingDelegate['onDeletePath']('".concat(e,"') threw an exception: ").concat(t.message))}},readdir:function(e){var t=Ue.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new Ue.ErrnoError(54);return t.node_ops.readdir(t)},unlink:function(e){var t=Ue.lookupPath(e,{parent:!0}).node,r=Me.basename(e),n=Ue.lookupNode(t,r),o=Ue.mayDelete(t,r,!1);if(o)throw new Ue.ErrnoError(o);if(!t.node_ops.unlink)throw new Ue.ErrnoError(63);if(Ue.isMountpoint(n))throw new Ue.ErrnoError(10);try{Ue.trackingDelegate.willDeletePath&&Ue.trackingDelegate.willDeletePath(e)}catch(t){h("FS.trackingDelegate['willDeletePath']('".concat(e,"') threw an exception: ").concat(t.message))}t.node_ops.unlink(t,r),Ue.destroyNode(n);try{Ue.trackingDelegate.onDeletePath&&Ue.trackingDelegate.onDeletePath(e)}catch(t){h("FS.trackingDelegate['onDeletePath']('".concat(e,"') threw an exception: ").concat(t.message))}},readlink:function(e){var t=Ue.lookupPath(e).node;if(!t)throw new Ue.ErrnoError(44);if(!t.node_ops.readlink)throw new Ue.ErrnoError(28);return Se.resolve(Ue.getPath(t.parent),t.node_ops.readlink(t))},stat:function(e,t){var r=Ue.lookupPath(e,{follow:!t}).node;if(!r)throw new Ue.ErrnoError(44);if(!r.node_ops.getattr)throw new Ue.ErrnoError(63);return r.node_ops.getattr(r)},lstat:function(e){return Ue.stat(e,!0)},chmod:function(e,t,r){var n;if(!(n="string"==typeof e?Ue.lookupPath(e,{follow:!r}).node:e).node_ops.setattr)throw new Ue.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&t|-4096&n.mode,timestamp:Date.now()})},lchmod:function(e,t){Ue.chmod(e,t,!0)},fchmod:function(e,t){var r=Ue.getStream(e);if(!r)throw new Ue.ErrnoError(8);Ue.chmod(r.node,t)},chown:function(e,t,r,n){var o;if(!(o="string"==typeof e?Ue.lookupPath(e,{follow:!n}).node:e).node_ops.setattr)throw new Ue.ErrnoError(63);o.node_ops.setattr(o,{timestamp:Date.now()})},lchown:function(e,t,r){Ue.chown(e,t,r,!0)},fchown:function(e,t,r){var n=Ue.getStream(e);if(!n)throw new Ue.ErrnoError(8);Ue.chown(n.node,t,r)},truncate:function(e,t){if(t<0)throw new Ue.ErrnoError(28);var r;if(!(r="string"==typeof e?Ue.lookupPath(e,{follow:!0}).node:e).node_ops.setattr)throw new Ue.ErrnoError(63);if(Ue.isDir(r.mode))throw new Ue.ErrnoError(31);if(!Ue.isFile(r.mode))throw new Ue.ErrnoError(28);var n=Ue.nodePermissions(r,"w");if(n)throw new Ue.ErrnoError(n);r.node_ops.setattr(r,{size:t,timestamp:Date.now()})},ftruncate:function(e,t){var r=Ue.getStream(e);if(!r)throw new Ue.ErrnoError(8);if(!(2097155&r.flags))throw new Ue.ErrnoError(28);Ue.truncate(r.node,t)},utime:function(e,t,r){var n=Ue.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 Ue.ErrnoError(44);var a;if(r=void 0===r?438:r,r=64&(t="string"==typeof t?Ue.modeStringToFlags(t):t)?4095&r|32768:0,"object"===E(e))a=e;else{e=Me.normalize(e);try{a=Ue.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var s=!1;if(64&t)if(a){if(128&t)throw new Ue.ErrnoError(20)}else a=Ue.mknod(e,r,0),s=!0;if(!a)throw new Ue.ErrnoError(44);if(Ue.isChrdev(a.mode)&&(t&=-513),65536&t&&!Ue.isDir(a.mode))throw new Ue.ErrnoError(54);if(!s){var A=Ue.mayOpen(a,t);if(A)throw new Ue.ErrnoError(A)}512&t&&Ue.truncate(a,0),t&=-131713;var c=Ue.createStream({node:a,path:Ue.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||(Ue.readFiles||(Ue.readFiles={}),e in Ue.readFiles||(Ue.readFiles[e]=1,h("FS.trackingDelegate error on read file: ".concat(e))));try{if(Ue.trackingDelegate.onOpenFile){var u=0;1!=(2097155&t)&&(u|=Ue.tracking.openFlags.READ),2097155&t&&(u|=Ue.tracking.openFlags.WRITE),Ue.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(Ue.isClosed(e))throw new Ue.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{Ue.closeStream(e.fd)}e.fd=null},isClosed:function(e){return null===e.fd},llseek:function(e,t,r){if(Ue.isClosed(e))throw new Ue.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new Ue.ErrnoError(70);if(0!=r&&1!=r&&2!=r)throw new Ue.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 Ue.ErrnoError(28);if(Ue.isClosed(e))throw new Ue.ErrnoError(8);if(1==(2097155&e.flags))throw new Ue.ErrnoError(8);if(Ue.isDir(e.node.mode))throw new Ue.ErrnoError(31);if(!e.stream_ops.read)throw new Ue.ErrnoError(28);var i=void 0!==o;if(i){if(!e.seekable)throw new Ue.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 Ue.ErrnoError(28);if(Ue.isClosed(e))throw new Ue.ErrnoError(8);if(!(2097155&e.flags))throw new Ue.ErrnoError(8);if(Ue.isDir(e.node.mode))throw new Ue.ErrnoError(31);if(!e.stream_ops.write)throw new Ue.ErrnoError(28);e.seekable&&1024&e.flags&&Ue.llseek(e,0,2);var a=void 0!==o;if(a){if(!e.seekable)throw new Ue.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&&Ue.trackingDelegate.onWriteToFile&&Ue.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(Ue.isClosed(e))throw new Ue.ErrnoError(8);if(t<0||r<=0)throw new Ue.ErrnoError(28);if(!(2097155&e.flags))throw new Ue.ErrnoError(8);if(!Ue.isFile(e.node.mode)&&!Ue.isDir(e.node.mode))throw new Ue.ErrnoError(43);if(!e.stream_ops.allocate)throw new Ue.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 Ue.ErrnoError(2);if(1==(2097155&e.flags))throw new Ue.ErrnoError(2);if(!e.stream_ops.mmap)throw new Ue.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 Ue.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=Ue.open(e,t.flags),o=Ue.stat(e).size,i=new Uint8Array(o);return Ue.read(n,i,0,o,0),"utf8"===t.encoding?r=v(i,0):"binary"===t.encoding&&(r=i),Ue.close(n),r},writeFile:function(e,t,r){(r=r||{}).flags=r.flags||577;var n=Ue.open(e,r.flags,r.mode);if("string"==typeof t){var o=new Uint8Array(T(t)+1),i=O(t,o,0,o.length);Ue.write(n,o,0,i,void 0,r.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");Ue.write(n,t,0,t.byteLength,void 0,r.canOwn)}Ue.close(n)},cwd:function(){return Ue.currentPath},chdir:function(e){var t=Ue.lookupPath(e,{follow:!0});if(null===t.node)throw new Ue.ErrnoError(44);if(!Ue.isDir(t.node.mode))throw new Ue.ErrnoError(54);var r=Ue.nodePermissions(t.node,"x");if(r)throw new Ue.ErrnoError(r);Ue.currentPath=t.path},createDefaultDirectories:function(){Ue.mkdir("/tmp"),Ue.mkdir("/home"),Ue.mkdir("/home/web_user")},createDefaultDevices:function(){Ue.mkdir("/dev"),Ue.registerDevice(Ue.makedev(1,3),{read:function(){return 0},write:function(e,t,r,n,o){return n}}),Ue.mkdev("/dev/null",Ue.makedev(1,3)),Fe.register(Ue.makedev(5,0),Fe.default_tty_ops),Fe.register(Ue.makedev(6,0),Fe.default_tty1_ops),Ue.mkdev("/dev/tty",Ue.makedev(5,0)),Ue.mkdev("/dev/tty1",Ue.makedev(6,0));var e=Re();Ue.createDevice("/dev","random",e),Ue.createDevice("/dev","urandom",e),Ue.mkdir("/dev/shm"),Ue.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){Ue.mkdir("/proc");var e=Ue.mkdir("/proc/self");Ue.mkdir("/proc/self/fd"),Ue.mount({mount:function(){var t=Ue.createNode(e,"fd",16895,73);return t.node_ops={lookup:function(e,t){var r=+t,n=Ue.getStream(r);if(!n)throw new Ue.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?Ue.createDevice("/dev","stdin",n.stdin):Ue.symlink("/dev/tty","/dev/stdin"),n.stdout?Ue.createDevice("/dev","stdout",null,n.stdout):Ue.symlink("/dev/tty","/dev/stdout"),n.stderr?Ue.createDevice("/dev","stderr",null,n.stderr):Ue.symlink("/dev/tty1","/dev/stderr");var e=Ue.open("/dev/stdin",0),t=Ue.open("/dev/stdout",1),r=Ue.open("/dev/stderr",1);_(0===e.fd,"invalid handle for stdin (".concat(e.fd,")")),_(1===t.fd,"invalid handle for stdout (".concat(t.fd,")")),_(2===r.fd,"invalid handle for stderr (".concat(r.fd,")"))},ensureErrnoError:function(){Ue.ErrnoError||(Ue.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){for(var t in this.errno=e,je)if(je[t]===e){this.code=t;break}},this.setErrno(e),this.message=Ne[e],this.stack&&(Object.defineProperty(this,"stack",{value:(new Error).stack,writable:!0}),this.stack=ve(this.stack))},Ue.ErrnoError.prototype=new Error,Ue.ErrnoError.prototype.constructor=Ue.ErrnoError,[44].forEach((function(e){Ue.genericErrors[e]=new Ue.ErrnoError(e),Ue.genericErrors[e].stack="<generic error, no stack>"})))},staticInit:function(){Ue.ensureErrnoError(),Ue.nameTable=new Array(4096),Ue.mount(xe,{},"/"),Ue.createDefaultDirectories(),Ue.createDefaultDevices(),Ue.createSpecialDirectories(),Ue.filesystems={MEMFS:xe}},init:function(e,t,r){_(!Ue.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)"),Ue.init.initialized=!0,Ue.ensureErrnoError(),n.stdin=e||n.stdin,n.stdout=t||n.stdout,n.stderr=r||n.stderr,Ue.createStandardStreams()},quit:function(){Ue.init.initialized=!1;var e=n._fflush;e&&e(0);for(var t=0;t<Ue.streams.length;t++){var r=Ue.streams[t];r&&Ue.close(r)}},getMode:function(e,t){var r=0;return e&&(r|=365),t&&(r|=146),r},findObject:function(e,t){var r=Ue.analyzePath(e,t);return r.exists?r.object:null},analyzePath:function(e,t){try{e=(n=Ue.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=Ue.lookupPath(e,{parent:!0});r.parentExists=!0,r.parentPath=n.path,r.parentObject=n.node,r.name=Me.basename(e),n=Ue.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:Ue.getPath(e);for(var o=t.split("/").reverse();o.length;){var i=o.pop();if(i){var a=Me.join2(e,i);try{Ue.mkdir(a)}catch(e){}e=a}}return a},createFile:function(e,t,r,n,o){var i=Me.join2("string"==typeof e?e:Ue.getPath(e),t),a=Ue.getMode(n,o);return Ue.create(i,a)},createDataFile:function(e,t,r,n,o,i){var a=t?Me.join2("string"==typeof e?e:Ue.getPath(e),t):e,s=Ue.getMode(n,o),A=Ue.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}Ue.chmod(A,146|s);var d=Ue.open(A,577);Ue.write(d,r,0,r.length,0,i),Ue.close(d),Ue.chmod(A,s)}return A},createDevice:function(e,t,r,n){var o=Me.join2("string"==typeof e?e:Ue.getPath(e),t),i=Ue.getMode(!!r,!!n);Ue.createDevice.major||(Ue.createDevice.major=64);var a=Ue.makedev(Ue.createDevice.major++,0);return Ue.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 Ue.ErrnoError(29)}if(void 0===A&&0===a)throw new Ue.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 Ue.ErrnoError(29)}return o&&(e.node.timestamp=Date.now()),a}}),Ue.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=Vr(d(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new Ue.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||[]):Vr(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=Ue.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 Ue.forceLoadFile(A),t.apply(null,arguments)}})),u.read=function(e,t,r,n,o){Ue.forceLoadFile(A);var i=e.node.contents;if(o>=i.length)return 0;var a=Math.min(i.length-o,n);if(_(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){_e.init();var g=t?Se.resolve(Me.join2(e,t)):e,d=fe("cp ".concat(g));function f(r){function l(r){u&&u(),A||Ue.createDataFile(e,t,r,o,i,c),a&&a(),pe(d)}var f=!1;n.preloadPlugins.forEach((function(e){f||e.canHandle(g)&&(e.handle(r,g,l,(function(){s&&s(),pe(d)})),f=!0)})),f||l(r)}Ee(d),"string"==typeof r?function(e,t,r){var n=fe("al ".concat(e));l(e,(function(r){_(r,'Loading data file "'.concat(e,'" failed (no arrayBuffer).')),t(new Uint8Array(r)),n&&pe(n)}),(function(t){if(!r)throw'Loading data file "'.concat(e,'" failed.');r()})),n&&Ee(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=Ue.indexedDB();try{var o=n.open(Ue.DB_NAME(),Ue.DB_VERSION)}catch(e){return r(e)}o.onupgradeneeded=function(){p("creating db"),o.result.createObjectStore(Ue.DB_STORE_NAME)},o.onsuccess=function(){var n=o.result.transaction([Ue.DB_STORE_NAME],"readwrite"),i=n.objectStore(Ue.DB_STORE_NAME),a=0,s=0,A=e.length;function c(){0==s?t():r()}e.forEach((function(e){var t=i.put(Ue.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=Ue.indexedDB();try{var o=n.open(Ue.DB_NAME(),Ue.DB_VERSION)}catch(e){return r(e)}o.onupgradeneeded=r,o.onsuccess=function(){var n=o.result;try{var i=n.transaction([Ue.DB_STORE_NAME],"readonly")}catch(e){return void r(e)}var a=i.objectStore(Ue.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(){Ue.analyzePath(e).exists&&Ue.unlink(e),Ue.createDataFile(Me.dirname(e),Me.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(){he("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder:function(){he("FS.createFolder has been removed; use FS.mkdir instead")},createLink:function(){he("FS.createLink has been removed; use FS.symlink instead")},joinPath:function(){he("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc:function(){he("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath:function(){he("FS.standardizePath has been removed; use PATH.normalize instead")}},Le={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt:function(e,t,r){if("/"===t[0])return t;var n;if(-100===e)n=Ue.cwd();else{var o=Ue.getStream(e);if(!o)throw new Ue.ErrnoError(8);n=o.path}if(0==t.length){if(!r)throw new Ue.ErrnoError(44);return n}return Me.join2(n,t)},doStat:function(e,t,r){try{var n=e(t)}catch(e){if(e&&e.node&&Me.normalize(t)!==Me.normalize(Ue.getPath(e.node)))return-54;throw e}return x[r>>2]=n.dev,x[r+4>>2]=0,x[r+8>>2]=n.ino,x[r+12>>2]=n.mode,x[r+16>>2]=n.nlink,x[r+20>>2]=n.uid,x[r+24>>2]=n.gid,x[r+28>>2]=n.rdev,x[r+32>>2]=0,ce=[n.size>>>0,(Ae=n.size,+Math.abs(Ae)>=1?Ae>0?(0|Math.min(+Math.floor(Ae/4294967296),4294967295))>>>0:~~+Math.ceil((Ae-+(~~Ae>>>0))/4294967296)>>>0:0)],x[r+40>>2]=ce[0],x[r+44>>2]=ce[1],x[r+48>>2]=4096,x[r+52>>2]=n.blocks,x[r+56>>2]=n.atime.getTime()/1e3|0,x[r+60>>2]=0,x[r+64>>2]=n.mtime.getTime()/1e3|0,x[r+68>>2]=0,x[r+72>>2]=n.ctime.getTime()/1e3|0,x[r+76>>2]=0,ce=[n.ino>>>0,(Ae=n.ino,+Math.abs(Ae)>=1?Ae>0?(0|Math.min(+Math.floor(Ae/4294967296),4294967295))>>>0:~~+Math.ceil((Ae-+(~~Ae>>>0))/4294967296)>>>0:0)],x[r+80>>2]=ce[0],x[r+84>>2]=ce[1],0},doMsync:function(e,t,r,n,o){var i=S.slice(e,e+r);Ue.msync(t,i,o,r,n)},doMkdir:function(e,t){return"/"===(e=Me.normalize(e))[e.length-1]&&(e=e.substr(0,e.length-1)),Ue.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 Ue.mknod(e,t,r),0},doReadlink:function(e,t,r){if(r<=0)return-28;var n=Ue.readlink(e),o=Math.min(r,T(n)),i=R[t+o];return Q(n,t,r+1),R[t+o]=i,o},doAccess:function(e,t){if(-8&t)return-28;var r;if(!(r=Ue.lookupPath(e,{follow:!0}).node))return-44;var n="";return 4&t&&(n+="r"),2&t&&(n+="w"),1&t&&(n+="x"),n&&Ue.nodePermissions(r,n)?-2:0},doDup:function(e,t,r){var n=Ue.getStream(r);return n&&Ue.close(n),Ue.open(e,t,0,r,r).fd},doReadv:function(e,t,r,n){for(var o=0,i=0;i<r;i++){var a=x[t+8*i>>2],s=x[t+(8*i+4)>>2],A=Ue.read(e,R,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=x[t+8*i>>2],s=x[t+(8*i+4)>>2],A=Ue.write(e,R,a,s,n);if(A<0)return-1;o+=A}return o},varargs:void 0,get:function(){return _(null!=Le.varargs),Le.varargs+=4,x[Le.varargs-4>>2]},getStr:function(e){return b(e)},getStreamFromFD:function(e){var t=Ue.getStream(e);if(!t)throw new Ue.ErrnoError(8);return t},get64:function(e,t){return _(e>=0?0===t:-1===t),e}};function He(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}function Ge(e,t){return e=He(e),new Function("body","return function ".concat(e,'() {\n "use strict"; return body.apply(this, arguments);\n};\n'))(t)}var Ye=[],Xe=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function We(){for(var e=0,t=5;t<Xe.length;++t)void 0!==Xe[t]&&++e;return e}function Ve(){for(var e=5;e<Xe.length;++e)if(void 0!==Xe[e])return Xe[e];return null}function ze(e){switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var t=Ye.length?Ye.pop():Xe.length;return Xe[t]={refcount:1,value:e},t}}function Je(e,t){var r=Ge(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 Ke=void 0,Ze=void 0;function qe(e){for(var t="",r=e;S[r];)t+=Ze[S[r++]];return t}function $e(){return Object.keys(it).length}function et(){var e=[];for(var t in it)it.hasOwnProperty(t)&&e.push(it[t]);return e}var tt=[];function rt(){for(;tt.length;){var e=tt.pop();e.$$.deleteScheduled=!1,e.delete()}}var nt=void 0;function ot(e){nt=e,tt.length&&nt&&nt(rt)}var it={},at=void 0;function st(e){throw new at(e)}function At(e,t){for(void 0===t&&st("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t}function ct(e){return e||st("Cannot use deleted val. handle = ".concat(e)),Xe[e].value}var ut={};function gt(e){var t=qr(e),r=qe(t);return Jr(t),r}function dt(e,t){var r=ut[e];return void 0===r&&st("".concat(t," has unknown type ").concat(gt(e))),r}function lt(e){}var ft=!1;function Et(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):(ft=new FinalizationGroup((function(e){for(var t=e.next();!t.done;t=e.next()){var r=t.value;r.ptr?Et(r):console.warn("object already deleted: ".concat(r.ptr))}})),lt=function(e){ft.unregister(e.$$)},(pt=function(e){return ft.register(e,e.$$,e.$$),e})(e))}var ht={};function It(e){for(;e.length;){var t=e.pop();e.pop()(t)}}function mt(e){return this.fromWireType(N[e>>2])}var yt={},Ct={},wt=void 0;function _t(e){throw new wt(e)}function Bt(e,t,r){function n(t){var n=r(t);n.length!==e.length&&_t("Mismatched type converter count");for(var o=0;o<e.length;++o)Dt(e[o],n[o])}e.forEach((function(e){Ct[e]=t}));var o=new Array(t.length),i=[],a=0;t.forEach((function(e,t){ut.hasOwnProperty(e)?o[t]=ut[e]:(i.push(e),yt.hasOwnProperty(e)||(yt[e]=[]),yt[e].push((function(){o[t]=ut[e],++a===i.length&&n(o)})))})),0===i.length&&n(o)}function vt(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 Dt(e,t,r){if(r=r||{},!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");var n=t.name;if(e||st('type "'.concat(n,'" must have a positive integer typeid pointer')),ut.hasOwnProperty(e)){if(r.ignoreDuplicateRegistrations)return;st("Cannot register type '".concat(n,"' twice"))}if(ut[e]=t,delete Ct[e],yt.hasOwnProperty(e)){var o=yt[e];delete yt[e],o.forEach((function(e){e()}))}}function bt(e){if(!(this instanceof Rt))return!1;if(!(e instanceof Rt))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 Ot(e){st("".concat(e.$$.ptrType.registeredClass.name," instance already deleted"))}function Qt(){if(this.$$.ptr||Ot(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 Tt(){this.$$.ptr||Ot(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&st("Object already scheduled for deletion"),lt(this),Et(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Pt(){return!this.$$.ptr}function Mt(){return this.$$.ptr||Ot(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&st("Object already scheduled for deletion"),tt.push(this),1===tt.length&&nt&&nt(rt),this.$$.deleteScheduled=!0,this}function Rt(){}var St={};function Ft(e,t,r){if(void 0===e[t].overloadTable){var n=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||st("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 kt(e,t,r){n.hasOwnProperty(e)?((void 0===r||void 0!==n[e].overloadTable&&void 0!==n[e].overloadTable[r])&&st("Cannot register public name '".concat(e,"' twice")),Ft(n,e,e),n.hasOwnProperty(r)&&st("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 xt(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 Nt(e,t,r){for(;t!==r;)t.upcast||st("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 jt(e,t){if(null===t)return this.isReference&&st("null is not a valid ".concat(this.name)),0;t.$$||st('Cannot pass "'.concat(ir(t),'" as a ').concat(this.name)),t.$$.ptr||st("Cannot pass deleted object as a pointer of type ".concat(this.name));var r=t.$$.ptrType.registeredClass;return Nt(t.$$.ptr,r,this.registeredClass)}function Ut(e,t){var r;if(null===t)return this.isReference&&st("null is not a valid ".concat(this.name)),this.isSmartPointer?(r=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,r),r):0;t.$$||st('Cannot pass "'.concat(ir(t),'" as a ').concat(this.name)),t.$$.ptr||st("Cannot pass deleted object as a pointer of type ".concat(this.name)),!this.isConst&&t.$$.ptrType.isConst&&st("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=Nt(t.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===t.$$.smartPtr&&st("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?r=t.$$.smartPtr:st("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,ze((function(){o.delete()}))),null!==e&&e.push(this.rawDestructor,r)}break;default:st("Unsupporting sharing policy")}return r}function Lt(e,t){if(null===t)return this.isReference&&st("null is not a valid ".concat(this.name)),0;t.$$||st('Cannot pass "'.concat(ir(t),'" as a ').concat(this.name)),t.$$.ptr||st("Cannot pass deleted object as a pointer of type ".concat(this.name)),t.$$.ptrType.isConst&&st("Cannot convert argument of type ".concat(t.$$.ptrType.name," to parameter type ").concat(this.name));var r=t.$$.ptrType.registeredClass;return Nt(t.$$.ptr,r,this.registeredClass)}function Ht(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e}function Gt(e){this.rawDestructor&&this.rawDestructor(e)}function Yt(e){null!==e&&e.delete()}function Xt(e,t,r){if(t===r)return e;if(void 0===r.baseClass)return null;var n=Xt(e,t,r.baseClass);return null===n?null:r.downcast(n)}function Wt(e,t){return t.ptrType&&t.ptr||_t("makeClassHandle requires ptr and ptrType"),!!t.smartPtrType!=!!t.smartPtr&&_t("Both smartPtrType and smartPtr must be specified"),t.count={value:1},pt(Object.create(e,{$$:{value:t}}))}function Vt(e){var t=this.getPointee(e);if(!t)return this.destructor(e),null;var r=function(e,t){return t=At(e,t),it[t]}(this.registeredClass,t);if(void 0!==r){if(0===r.$$.count.value)return r.$$.ptr=t,r.$$.smartPtr=e,r.clone();var n=r.clone();return this.destructor(e),n}function o(){return this.isSmartPointer?Wt(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):Wt(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var i,a=this.registeredClass.getActualType(t),s=St[a];if(!s)return o.call(this);i=this.isConst?s.constPointerType:s.pointerType;var A=Xt(t,this.registeredClass,i.registeredClass);return null===A?o.call(this):this.isSmartPointer?Wt(i.registeredClass.instancePrototype,{ptrType:i,ptr:A,smartPtrType:this,smartPtr:e}):Wt(i.registeredClass.instancePrototype,{ptrType:i,ptr:A})}function zt(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=Ut:n?(this.toWireType=jt,this.destructorFunction=null):(this.toWireType=Lt,this.destructorFunction=null)}function Jt(e,t,r){n.hasOwnProperty(e)||_t("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 Kt(e,t,r){return e.includes("j")?function(e,t,r){_("dynCall_".concat(e)in n,"bad function pointer type - no table for sig '".concat(e,"'")),r&&r.length?_(r.length===e.substring(1).replace(/j/g,"--").length):_(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):(_(Z.get(t),"missing table entry in dynCall: ".concat(t)),Z.get(t).apply(null,r))}function Zt(e,t){var r=(e=qe(e)).includes("j")?function(e,t){_(e.includes("j"),"getDynCaller should only be called with i64 sigs");var r=[];return function(){r.length=arguments.length;for(var n=0;n<arguments.length;n++)r[n]=arguments[n];return Kt(e,t,r)}}(e,t):Z.get(t);return"function"!=typeof r&&st("unknown function pointer with signature ".concat(e,": ").concat(t)),r}var qt=void 0;function $t(e,t){var r=[],n={};throw t.forEach((function e(t){n[t]||ut[t]||(Ct[t]?Ct[t].forEach(e):(r.push(t),n[t]=!0))})),new qt("".concat(e,": ").concat(r.map(gt).join([", "])))}function er(e,t){if(!(e instanceof Function))throw new TypeError("new_ called with constructor type ".concat(E(e)," which is not a function"));var r=Ge(e.name||"unknownFunctionName",(function(){}));r.prototype=e.prototype;var n=new r,o=e.apply(n,t);return o instanceof Object?o:n}function tr(e,t,r,n,o){var i=t.length;i<2&&st("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(He(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=[st,n,o,It,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),er(Function,f).apply(null,E)}function rr(e,t){for(var r=[],n=0;n<e;n++)r.push(x[(t>>2)+n]);return r}function nr(e,t,r){return e instanceof Object||st("".concat(r,' with invalid "this": ').concat(e)),e instanceof t.registeredClass.constructor||st("".concat(r,' incompatible with "this" of type ').concat(e.constructor.name)),e.$$.ptr||st("cannot call emscripten binding method ".concat(r," on deleted object")),Nt(e.$$.ptr,e.$$.ptrType.registeredClass,t.registeredClass)}function or(e){e>4&&0==--Xe[e].refcount&&(Xe[e]=void 0,Ye.push(e))}function ir(e){if(null===e)return"null";var t=E(e);return"object"===t||"array"===t||"function"===t?e.toString():"".concat(e)}function ar(e,t){switch(t){case 2:return function(e){return this.fromWireType(j[e>>2])};case 3:return function(e){return this.fromWireType(U[e>>3])};default:throw new TypeError("Unknown float type: ".concat(e))}}function sr(e,t,r){switch(t){case 0:return r?function(e){return R[e]}:function(e){return S[e]};case 1:return r?function(e){return F[e>>1]}:function(e){return k[e>>1]};case 2:return r?function(e){return x[e>>2]}:function(e){return N[e>>2]};default:throw new TypeError("Unknown integer type: ".concat(e))}}var Ar={},cr=[],ur=[];function gr(e){try{return m.grow(e-M.byteLength+65535>>>16),J(m.buffer),1}catch(t){h("emscripten_realloc_buffer: Attempted to grow heap from ".concat(M.byteLength," bytes to ").concat(e," bytes, but got error: ").concat(t))}}function dr(e){he("Cannot use emscripten_generate_pc (needed by __builtin_return_address) without -s USE_OFFSET_CONVERTER")}var lr={};function fr(e){e.forEach((function(e){var t=dr();t&&(lr[t]=e)}))}var Er={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){Er.lastError||(Er.lastError=e)},getNewId:function(e){for(var t=Er.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=Er.log2ceilLookup(Er.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=Er.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=Hr.createBuffer(),t.GLctx.bindBuffer(34963,t.tempQuadIndexBuffer);for(var A=Er.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=Er.log2ceilLookup(e),r=Er.currentContext.tempVertexBuffers1[t],n=Er.currentContext.tempVertexBufferCounters1[t];Er.currentContext.tempVertexBufferCounters1[t]=Er.currentContext.tempVertexBufferCounters1[t]+1&Er.numTempVertexBuffersPerSize-1;var o=r[n];if(o)return o;var i=Hr.getParameter(34964);return r[n]=Hr.createBuffer(),Hr.bindBuffer(34962,r[n]),Hr.bufferData(34962,1<<t,35048),Hr.bindBuffer(34962,i),r[n]},getTempIndexBuffer:function(e){var t=Er.log2ceilLookup(e),r=Er.currentContext.tempIndexBuffers[t];if(r)return r;var n=Hr.getParameter(34965);return Er.currentContext.tempIndexBuffers[t]=Hr.createBuffer(),Hr.bindBuffer(34963,Er.currentContext.tempIndexBuffers[t]),Hr.bufferData(34963,1<<t,35048),Hr.bindBuffer(34963,n),Er.currentContext.tempIndexBuffers[t]},newRenderingFrameStarted:function(){if(Er.currentContext){var e=Er.currentContext.tempVertexBuffers1;Er.currentContext.tempVertexBuffers1=Er.currentContext.tempVertexBuffers2,Er.currentContext.tempVertexBuffers2=e,e=Er.currentContext.tempVertexBufferCounters1,Er.currentContext.tempVertexBufferCounters1=Er.currentContext.tempVertexBufferCounters2,Er.currentContext.tempVertexBufferCounters2=e;for(var t=Er.log2ceilLookup(Er.MAX_TEMP_BUFFER_SIZE),r=0;r<=t;++r)Er.currentContext.tempVertexBufferCounters1[r]=0}},getSource:function(e,t,r,n){for(var o="",i=0;i<t;++i){var a=n?x[n+4*i>>2]:-1;o+=b(x[r+4*i>>2],a<0?void 0:a)}return o},calcBufLength:function(e,t,r,n){return r>0?n*r:e*Er.byteSizeByType[t-Er.byteSizeByTypeRoot]*n},usedTempBuffers:[],preDrawHandleClientVertexAttribBindings:function(e){Er.resetBufferBinding=!1;for(var t=0;t<Er.currentContext.maxVertexAttribs;++t){var r=Er.currentContext.clientBuffers[t];if(r.clientside&&r.enabled){Er.resetBufferBinding=!0;var n=Er.calcBufLength(r.size,r.type,r.stride,e),o=Er.getTempVertexBuffer(n);Hr.bindBuffer(34962,o),Hr.bufferSubData(34962,0,S.subarray(r.ptr,r.ptr+n)),r.vertexAttribPointerAdaptor.call(Hr,t,r.size,r.type,r.normalized,r.stride,0)}}},postDrawHandleClientVertexAttribBindings:function(){Er.resetBufferBinding&&Hr.bindBuffer(34962,Er.buffers[Hr.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?Er.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(),Er.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=Er.getNewId(Er.contexts),n={handle:r,attributes:t,version:t.majorVersion,GLctx:e};e.canvas&&(e.canvas.GLctxObject=n),Er.contexts[r]=n,(void 0===t.enableExtensionsByDefault||t.enableExtensionsByDefault)&&Er.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 Er.generateTempBuffers(!1,n),t.renderViaOffscreenBackBuffer&&Er.createOffscreenFramebuffer(n),r},makeContextCurrent:function(e){return Er.currentContext=Er.contexts[e],n.ctx=Hr=Er.currentContext&&Er.currentContext.GLctx,!(e&&!Hr)},getContext:function(e){return Er.contexts[e]},deleteContext:function(e){Er.currentContext===Er.contexts[e]&&(Er.currentContext=null),"object"===E(pr)&&pr.removeAllHandlersOnTarget(Er.contexts[e].GLctx.canvas),Er.contexts[e]&&Er.contexts[e].GLctx.canvas&&(Er.contexts[e].GLctx.canvas.GLctxObject=void 0),Er.contexts[e]=null},initExtensions:function(e){if(e||(e=Er.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)}))}}},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||(ne.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}},hr=["default","low-power","high-performance"],Ir=[0,"undefined"!=typeof document?document:0,"undefined"!=typeof window?window:0];function mr(e){return"number"==typeof e&&(e=b(e)),e&&"#canvas"!==e?void 0!==Er&&Er.offscreenCanvases[e]?Er.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=Ir[e]||b(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!==Er&&Er.offscreenCanvases.canvas?Er.offscreenCanvases.canvas:n.canvas}function yr(){return Er.currentContext?Er.currentContext.handle:0}function Cr(e){return Er.makeContextCurrent(e)?0:-5}n._emscripten_webgl_get_current_context=yr,n._emscripten_webgl_make_context_current=Cr;var wr={};function _r(){if(!_r.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 wr)void 0===wr[t]?delete e[t]:e[t]=wr[t];var r=[];for(var t in e)r.push("".concat(t,"=").concat(e[t]));_r.strings=r}return _r.strings}var Br=[];function vr(e,t,r,n){for(var o=0;o<e;o++){var i=Hr[r](),a=i&&Er.getNewId(n);i?(i.name=a,n[a]=i):Er.recordError(1282),x[t+4*o>>2]=a}}function Dr(e,t){N[e>>2]=t,N[e+4>>2]=(t-N[e>>2])/4294967296;var r=t>=0?function(e){return N[e>>2]+4294967296*N[e+4>>2]}(e):function(e){return N[e>>2]+4294967296*x[e+4>>2]}(e);r!=t&&I("writeI53ToI64() out of range: serialized JS Number ".concat(t," to Wasm heap as bytes lo=0x").concat(N[e>>2].toString(16),", hi=0x").concat(N[e+4>>2].toString(16),", which deserializes back to ").concat(r," instead!"))}function br(e){var t=T(e)+1,r=Kr(t);return Q(e,r,t),r}function Or(e){return"]"==e.slice(-1)&&e.lastIndexOf("[")}function Qr(e){return 0==(e-=5120)?R:1==e?S:2==e?F:4==e?x:6==e?j:5==e||28922==e||28520==e||30779==e||30782==e?N:k}function Tr(e){return 31-Math.clz32(e.BYTES_PER_ELEMENT)}function Pr(e,t,r,n,o,i){var a=Qr(e),s=Tr(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,Er.unpackAlignment);return a.subarray(o>>s,o+u>>s)}function Mr(e){var t=Hr.currentProgram;if(t){var r=t.uniformLocsById[e];return"number"==typeof r&&(t.uniformLocsById[e]=r=Hr.getUniformLocation(t,t.uniformArrayNamesById[e]+(r>0?"[".concat(r,"]"):""))),r}Er.recordError(1282)}var Rr=[],Sr=[];function Fr(){if(!Fr.called){Fr.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);x[rn()>>2]=60*i,x[tn()>>2]=Number(n!=o);var a=u(t),s=u(r),A=z(a),c=z(s);o<n?(x[en()>>2]=A,x[en()+4>>2]=c):(x[en()>>2]=c,x[en()+4>>2]=A)}function u(e){var t=e.toTimeString().match(/\(([A-Za-z ]+)\)$/);return t?t[1]:"GMT"}}function kr(e){return e%4==0&&(e%100!=0||e%400==0)}function xr(e,t){for(var r=0,n=0;n<=t;r+=e[n++]);return r}var Nr=[31,29,31,30,31,30,31,31,30,31,30,31],jr=[31,28,31,30,31,30,31,31,30,31,30,31];function Ur(e,t){for(var r=new Date(e.getTime());t>0;){var n=kr(r.getFullYear()),o=r.getMonth(),i=(n?Nr:jr)[o];if(!(t>i-r.getDate()))return r.setDate(r.getDate()+t),r;t-=i-r.getDate()+1,r.setDate(1),o<11?r.setMonth(o+1):(r.setMonth(0),r.setFullYear(r.getFullYear()+1))}return r}function Lr(e,t,r,n){var o=x[n+40>>2],i={tm_sec:x[n>>2],tm_min:x[n+4>>2],tm_hour:x[n+8>>2],tm_mday:x[n+12>>2],tm_mon:x[n+16>>2],tm_year:x[n+20>>2],tm_wday:x[n+24>>2],tm_yday:x[n+28>>2],tm_isdst:x[n+32>>2],tm_gmtoff:x[n+36>>2],tm_zone:o?b(o):""},a=b(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=Ur(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+xr(kr(e.tm_year+1900)?Nr:jr,e.tm_mon-1),3)},"%m":function(e){return d(e.tm_mon+1,2)},"%M":function(e){return d(e.tm_min,2)},"%n":function(){return"\n"},"%p":function(e){return e.tm_hour>=0&&e.tm_hour<12?"AM":"PM"},"%S":function(e){return d(e.tm_sec,2)},"%t":function(){return"\t"},"%u":function(e){return e.tm_wday||7},"%U":function(e){var t=new Date(e.tm_year+1900,0,1),r=0===t.getDay()?t:Ur(t,7-t.getDay()),n=new Date(e.tm_year+1900,e.tm_mon,e.tm_mday);if(l(r,n)<0){var o=xr(kr(n.getFullYear())?Nr:jr,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=Ur(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:Ur(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=xr(kr(n.getFullYear())?Nr:jr,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=Vr(a,!1);return m.length>t?0:(I=e,_((h=m).length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),R.set(h,I),m.length-1)}n.requestFullscreen=function(e,t){_e.requestFullscreen(e,t)},n.requestFullScreen=function(){_e.requestFullScreen()},n.requestAnimationFrame=function(e){_e.requestAnimationFrame(e)},n.setCanvasSize=function(e,t,r){_e.setCanvasSize(e,t,r)},n.pauseMainLoop=function(){_e.mainLoop.pause()},n.resumeMainLoop=function(){_e.mainLoop.resume()},n.getUserMedia=function(){_e.getUserMedia()},n.createContext=function(e,t,r,n){return _e.createContext(e,t,r,n)};var Hr,Gr=function(e,t,r,n){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=Ue.nextInode++,this.name=t,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=n};Object.defineProperties(Gr.prototype,{read:{get:function(){return!(365&~this.mode)},set:function(e){e?this.mode|=365:this.mode&=-366}},write:{get:function(){return!(146&~this.mode)},set:function(e){e?this.mode|=146:this.mode&=-147}},isFolder:{get:function(){return Ue.isDir(this.mode)}},isDevice:{get:function(){return Ue.isChrdev(this.mode)}}}),Ue.FSNode=Gr,Ue.staticInit(),n.FS_createPath=Ue.createPath,n.FS_createDataFile=Ue.createDataFile,n.FS_createPreloadedFile=Ue.createPreloadedFile,n.FS_createLazyFile=Ue.createLazyFile,n.FS_createDevice=Ue.createDevice,n.FS_unlink=Ue.unlink,n.count_emval_handles=We,n.get_first_emval=Ve,Ke=n.PureVirtualError=Je(Error,"PureVirtualError"),function(){for(var e=new Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);Ze=e}(),n.getInheritedInstanceCount=$e,n.getLiveInheritedInstances=et,n.flushPendingDeletes=rt,n.setDelayFunction=ot,at=n.BindingError=Je(Error,"BindingError"),wt=n.InternalError=Je(Error,"InternalError"),Rt.prototype.isAliasOf=bt,Rt.prototype.clone=Qt,Rt.prototype.delete=Tt,Rt.prototype.isDeleted=Pt,Rt.prototype.deleteLater=Mt,zt.prototype.getPointee=Ht,zt.prototype.destructor=Gt,zt.prototype.argPackAdvance=8,zt.prototype.readValueFromPointer=mt,zt.prototype.deleteObject=Yt,zt.prototype.fromWireType=Vt,qt=n.UnboundTypeError=Je(Error,"UnboundTypeError");for(var Yr=0;Yr<32;++Yr)Br.push(new Array(Yr));var Xr=new Float32Array(288);for(Yr=0;Yr<288;++Yr)Rr[Yr]=Xr.subarray(0,Yr+1);var Wr=new Int32Array(288);for(Yr=0;Yr<288;++Yr)Sr[Yr]=Wr.subarray(0,Yr+1);function Vr(e,t,r){var n=T(e)+1,o=new Array(n),i=O(e,o,0,o.length);return t&&(o.length=i),o}var zr={HaveOffsetConverter:function(){return"undefined"!=typeof wasmOffsetConverter},__cxa_allocate_exception:function(e){return Kr(e+16)+16},__cxa_atexit:function(e,t){},__cxa_begin_catch:function(e){var t=new be(e),r=t.get_exception_info();return r.get_caught()||r.set_caught(!0),r.set_rethrown(!1),Oe.push(t),function(e){e.add_ref()}(r),t.get_exception_ptr()},__cxa_end_catch:function(){An(0),_(Oe.length>0);var e=Oe.pop();!function(e){if(e.release_ref()&&!e.get_rethrown()){var t=e.get_destructor();t&&Z.get(t)(e.excPtr),Te(e.excPtr)}}(e.get_exception_info()),e.free(),Qe=0},__cxa_find_matching_catch_2:function(){var e=Qe;if(!e)return C(0),0;var t=new De(e).get_type(),r=new be;if(r.set_base_ptr(e),r.set_adjusted_ptr(e),!t)return C(0),0|r.ptr;for(var n=Array.prototype.slice.call(arguments),o=0;o<n.length;o++){var i=n[o];if(0===i||i===t)break;if(cn(i,t,r.get_adjusted_ptr_addr()))return C(i),0|r.ptr}return C(t),0|r.ptr},__cxa_find_matching_catch_3:function(){var e=Qe;if(!e)return C(0),0;var t=new De(e).get_type(),r=new be;if(r.set_base_ptr(e),r.set_adjusted_ptr(e),!t)return C(0),0|r.ptr;for(var n=Array.prototype.slice.call(arguments),o=0;o<n.length;o++){var i=n[o];if(0===i||i===t)break;if(cn(i,t,r.get_adjusted_ptr_addr()))return C(i),0|r.ptr}return C(t),0|r.ptr},__cxa_free_exception:Te,__cxa_rethrow:function(){var e=Oe.pop();e||he("no exception to throw");var t=e.get_exception_info(),r=e.get_base_ptr();throw t.get_rethrown()?e.free():(Oe.push(e),t.set_rethrown(!0),t.set_caught(!1)),Qe=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 De(e).init(t,r),Qe=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 be(e),r=t.get_base_ptr();throw Qe||(Qe=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){Le.varargs=r;try{var n=Le.getStreamFromFD(e);switch(t){case 0:return(o=Le.get())<0?-28:Ue.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=Le.get();return n.flags|=o,0;case 12:return o=Le.get(),F[o+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return Pe(28),-1}}catch(e){return void 0!==Ue&&e instanceof Ue.ErrnoError||he(e),-e.errno}},__sys_ioctl:function(e,t,r){Le.varargs=r;try{var n=Le.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=Le.get();return x[o>>2]=0,0;case 21520:return n.tty?-28:-59;case 21531:return o=Le.get(),Ue.ioctl(n,t,o);default:he("bad ioctl syscall ".concat(t))}}catch(e){return void 0!==Ue&&e instanceof Ue.ErrnoError||he(e),-e.errno}},__sys_mmap2:function(e,t,r,n,o,i){try{return function(e,t,r,n,o,i){var a;i<<=12;var s=!1;if(16&n&&e%65536!=0)return-28;if(32&n){if(!(a=ke(t)))return-48;s=!0}else{var A=Ue.getStream(o);if(!A)return-8;var c=Ue.mmap(A,e,t,i,r,n);a=c.ptr,s=c.allocated}return Le.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!==Ue&&e instanceof Ue.ErrnoError||he(e),-e.errno}},__sys_open:function(e,t,r){Le.varargs=r;try{var n=Le.getStr(e),o=r?Le.get():0;return Ue.open(n,t,o).fd}catch(e){return void 0!==Ue&&e instanceof Ue.ErrnoError||he(e),-e.errno}},__sys_stat64:function(e,t){try{return e=Le.getStr(e),Le.doStat(Ue.stat,e,t)}catch(e){return void 0!==Ue&&e instanceof Ue.ErrnoError||he(e),-e.errno}},_embind_create_inheriting_constructor:function(e,t,r){e=qe(e),t=dt(t,"wrapper"),r=ct(r);var n=[].slice,o=t.registeredClass,i=o.instancePrototype,a=o.baseClass.instancePrototype,s=o.baseClass.constructor,A=Ge(e,(function(){var e=this;o.baseClass.pureVirtualFunctions.forEach((function(t){if(e[t]===a[t])throw new Ke("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&&st("Pass correct 'this' to __construct");var e=s.implement.apply(void 0,[this].concat(n.call(arguments)));lt(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=At(t,r),it.hasOwnProperty(r)?st("Tried to register registered instance: ".concat(r)):it[r]=a},i.__destruct=function(){var e,t;this===i&&st("Pass correct 'this' to __destruct"),lt(this),e=o,t=this.$$.ptr,t=At(e,t),it.hasOwnProperty(t)?delete it[t]:st("Tried to unregister unregistered instance: ".concat(t))},A.prototype=Object.create(i),r)A.prototype[c]=r[c];return ze(A)},_embind_finalize_value_object:function(e){var t=ht[e];delete ht[e];var r=t.rawConstructor,n=t.rawDestructor,o=t.fields;Bt([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)),It(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:mt,destructorFunction:n}]}))},_embind_register_bigint:function(e,t,r,n,o){},_embind_register_bool:function(e,t,r,n,o){var i=vt(r);Dt(e,{name:t=qe(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=R;else if(2===r)n=F;else{if(4!==r)throw new TypeError("Unknown boolean type size: ".concat(t));n=x}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=qe(u),i=Zt(o,i),s&&(s=Zt(a,s)),c&&(c=Zt(A,c)),d=Zt(g,d);var l=He(u);kt(l,(function(){$t("Cannot construct ".concat(u," due to unbound types"),[n])})),Bt([e,t,r],n?[n]:[],(function(t){var r,o;t=t[0],o=n?(r=t.registeredClass).instancePrototype:Rt.prototype;var a=Ge(l,(function(){if(Object.getPrototypeOf(this)!==A)throw new at("Use 'new' to construct ".concat(u));if(void 0===g.constructor_body)throw new at("".concat(u," has no accessible constructor"));var e=g.constructor_body[arguments.length];if(void 0===e)throw new at("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 xt(u,a,A,d,r,i,s,c),f=new zt(u,g,!0,!1,!1),E=new zt("".concat(u,"*"),g,!1,!1,!1),p=new zt("".concat(u," const*"),g,!1,!0,!1);return St[e]={pointerType:E,constPointerType:p},Jt(l,a),[f,E,p]}))},_embind_register_class_class_function:function(e,t,r,n,o,i,a){var s=rr(r,n);t=qe(t),i=Zt(o,i),Bt([],[e],(function(e){e=e[0];var n="".concat(e.name,".").concat(t);function o(){$t("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):(Ft(A,t,n),A[t].overloadTable[r-1]=o),Bt([],s,(function(e){var o=[e[0],null].concat(e.slice(1)),s=tr(n,o,null,i,a);return void 0===A[t].overloadTable?(s.argCount=r-1,A[t]=s):A[t].overloadTable[r-1]=s,[]})),[]}))},_embind_register_class_constructor:function(e,t,r,n,o,i){_(t>0);var a=rr(t,r);o=Zt(n,o),Bt([],[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 at("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(){$t("Cannot construct ".concat(e.name," due to unbound types"),a)},Bt([],a,(function(n){return n.splice(1,0,null),e.registeredClass.constructor_body[t-1]=tr(r,n,null,o,i),[]})),[]}))},_embind_register_class_function:function(e,t,r,n,o,i,a,s){var A=rr(r,n);t=qe(t),i=Zt(o,i),Bt([],[e],(function(e){e=e[0];var n="".concat(e.name,".").concat(t);function o(){$t("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):(Ft(c,t,n),c[t].overloadTable[r-2]=o),Bt([],A,(function(o){var s=tr(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=qe(t),o=Zt(n,o),Bt([],[e],(function(e){e=e[0];var n="".concat(e.name,".").concat(t),u={get:function(){$t("Cannot access ".concat(n," due to unbound types"),[r,a])},enumerable:!0,configurable:!0};return u.set=A?function(){$t("Cannot access ".concat(n," due to unbound types"),[r,a])}:function(e){st("".concat(n," is a read-only property"))},Object.defineProperty(e.registeredClass.instancePrototype,t,u),Bt([],A?[r,a]:[r],(function(r){var a=r[0],u={get:function(){var t=nr(this,e,"".concat(n," getter"));return a.fromWireType(o(i,t))},enumerable:!0};if(A){A=Zt(s,A);var g=r[1];u.set=function(t){var r=nr(this,e,"".concat(n," setter")),o=[];A(c,r,g.toWireType(o,t)),It(o)}}return Object.defineProperty(e.registeredClass.instancePrototype,t,u),[]})),[]}))},_embind_register_emval:function(e,t){Dt(e,{name:t=qe(t),fromWireType:function(e){var t=Xe[e].value;return or(e),t},toWireType:function(e,t){return ze(t)},argPackAdvance:8,readValueFromPointer:mt,destructorFunction:null})},_embind_register_float:function(e,t,r){var n=vt(r);Dt(e,{name:t=qe(t),fromWireType:function(e){return e},toWireType:function(e,t){if("number"!=typeof t&&"boolean"!=typeof t)throw new TypeError('Cannot convert "'.concat(ir(t),'" to ').concat(this.name));return t},argPackAdvance:8,readValueFromPointer:ar(t,n),destructorFunction:null})},_embind_register_function:function(e,t,r,n,o,i){var a=rr(t,r);e=qe(e),o=Zt(n,o),kt(e,(function(){$t("Cannot call ".concat(e," due to unbound types"),a)}),t-1),Bt([],a,(function(r){var n=[r[0],null].concat(r.slice(1));return Jt(e,tr(e,n,null,o,i),t-1),[]}))},_embind_register_integer:function(e,t,r,n,o){t=qe(t),-1===o&&(o=4294967295);var i=vt(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");Dt(e,{name:t,fromWireType:a,toWireType:function(e,r){if("number"!=typeof r&&"boolean"!=typeof r)throw new TypeError('Cannot convert "'.concat(ir(r),'" to ').concat(this.name));if(r<n||r>o)throw new TypeError('Passing a number "'.concat(ir(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:sr(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=N,r=t[e>>=2],o=t[e+1];return new n(M,o,r)}Dt(e,{name:r=qe(r),fromWireType:o,argPackAdvance:8,readValueFromPointer:o},{ignoreDuplicateRegistrations:!0})},_embind_register_std_string:function(e,t){var r="std::string"===(t=qe(t));Dt(e,{name:t,fromWireType:function(e){var t,n=N[e>>2];if(r)for(var o=e+4,i=0;i<=n;++i){var a=e+4+i;if(i==n||0==S[a]){var s=b(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(S[e+4+i]);t=A.join("")}return Jr(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||st("Cannot pass non-string to std::string");var o=(r&&n?function(){return T(t)}:function(){return t.length})(),i=Kr(4+o+1);if(N[i>>2]=o,r&&n)Q(t,i+4,o+1);else if(n)for(var a=0;a<o;++a){var s=t.charCodeAt(a);s>255&&(Jr(i),st("String has UTF-16 code units that do not fit in 8 bits")),S[i+4+a]=s}else for(a=0;a<o;++a)S[i+4+a]=t[a];return null!==e&&e.push(Jr,i),i},argPackAdvance:8,readValueFromPointer:mt,destructorFunction:function(e){Jr(e)}})},_embind_register_std_wstring:function(e,t,r){var n,o,i,a,s;r=qe(r),2===t?(n=H,o=G,a=Y,i=function(){return k},s=1):4===t&&(n=X,o=W,a=V,i=function(){return N},s=2),Dt(e,{name:r,fromWireType:function(e){for(var r,o=N[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 Jr(e),r},toWireType:function(e,n){"string"!=typeof n&&st("Cannot pass non-string to C++ string type ".concat(r));var i=a(n),A=Kr(4+i+t);return N[A>>2]=i>>s,o(n,A+4,i+t),null!==e&&e.push(Jr,A),A},argPackAdvance:8,readValueFromPointer:mt,destructorFunction:function(e){Jr(e)}})},_embind_register_value_object:function(e,t,r,n,o,i){ht[e]={name:qe(t),rawConstructor:Zt(r,n),rawDestructor:Zt(o,i),fields:[]}},_embind_register_value_object_field:function(e,t,r,n,o,i,a,s,A,c){ht[e].fields.push({fieldName:qe(t),getterReturnType:r,getter:Zt(n,o),getterContext:i,setterArgumentType:a,setter:Zt(s,A),setterContext:c})},_embind_register_void:function(e,t){Dt(e,{isVoid:!0,name:t=qe(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(e,t){}})},_emval_call_void_method:function(e,t,r,n){var o,i;(e=cr[e])(t=ct(t),r=void 0===(i=Ar[o=r])?qe(o):i,null,n)},_emval_decref:or,_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]=dt(x[(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=He("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=er(Function,i).apply(null,a);return d=f,l=cr.length,cr.push(d),l},_emval_incref:function(e){e>4&&(Xe[e].refcount+=1)},_emval_take_value:function(e,t){return ze((e=dt(e,"_emval_take_value")).readValueFromPointer(t))},abort:function(){he()},clock_gettime:function(e,t){var r;if(0===e)r=Date.now();else{if(1!==e&&4!==e)return Pe(28),-1;r=me()}return x[t>>2]=r/1e3|0,x[t+4>>2]=r%1e3*1e3*1e3|0,0},dlopen:function(e,t){he("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")},dlsym:function(e,t){he("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(_(Array.isArray(ur)),_(t%16==0),ur.length=0,t>>=2;r=S[e++];){_(100===r||102===r||105===r);var n=r<105;n&&1&t&&t++,ur.push(n?U[t++>>1]:x[t]),++t}return ur}(t,r);return ye.hasOwnProperty(e)||he("No EM_ASM constant found at address ".concat(e)),ye[e].apply(null,n)},emscripten_get_heap_max:function(){return 2147483648},emscripten_memcpy_big:function(e,t,r){S.copyWithin(e,t,t+r)},emscripten_pc_get_function:function(e){he("Cannot use emscripten_pc_get_function without -s USE_OFFSET_CONVERTER")},emscripten_resize_heap:function(e){var t=S.length;_((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(gr(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(),fr(e),lr.last_addr=dr(e[2]),lr.last_stack=e,lr.last_addr},emscripten_stack_unwind_buffer:function(e,t,r){var n;lr.last_addr==e?n=lr.last_stack:("Error"==(n=(new Error).stack.split("\n"))[0]&&n.shift(),fr(n));for(var o=2;n[o]&&dr(n[o])!=e;)++o;for(var i=0;i<r&&n[i+o];++i)x[t+4*i>>2]=dr(n[i+o]);return i},emscripten_thread_sleep:function(e){for(var t=me();me()-t<e;);},emscripten_webgl_create_context:function(e,t){return function(e,t){_(t);var r=t>>2,n=x[r+6],o={alpha:!!x[r+0],depth:!!x[r+1],stencil:!!x[r+2],antialias:!!x[r+3],premultipliedAlpha:!!x[r+4],preserveDrawingBuffer:!!x[r+5],powerPreference:hr[n],failIfMajorPerformanceCaveat:!!x[r+7],majorVersion:x[r+8],minorVersion:x[r+9],enableExtensionsByDefault:x[r+10],explicitSwapControl:x[r+11],proxyContextToMainThread:x[r+12],renderViaOffscreenBackBuffer:x[r+13]},i=mr(e);if(!i)return 0;if(i.offscreenCanvas&&(i=i.offscreenCanvas),o.explicitSwapControl&&(i.transferControlToOffscreen||"undefined"!=typeof OffscreenCanvas&&i instanceof OffscreenCanvas||o.renderViaOffscreenBackBuffer||(o.renderViaOffscreenBackBuffer=!0),i.transferControlToOffscreen)){if(i.controlTransferredOffscreen){if(!Er.offscreenCanvases[i.id])return 0}else Er.offscreenCanvases[i.id]={canvas:i.transferControlToOffscreen(),canvasSharedPtr:Kr(12),id:i.id},i.controlTransferredOffscreen=!0;i=Er.offscreenCanvases[i.id]}return Er.createContext(i,o)}(e,t)},emscripten_webgl_destroy_context:function(e){Er.currentContext==e&&(Er.currentContext=0),Er.deleteContext(e)},emscripten_webgl_get_context_attributes:function(e,t){if(!t)return-5;if(!(e=Er.contexts[e]))return-3;var r=e.GLctx;if(!r)return-3;r=r.getContextAttributes(),x[t>>2]=r.alpha,x[t+4>>2]=r.depth,x[t+8>>2]=r.stencil,x[t+12>>2]=r.antialias,x[t+16>>2]=r.premultipliedAlpha,x[t+20>>2]=r.preserveDrawingBuffer;var n=r.powerPreference&&hr.indexOf(r.powerPreference);return x[t+24>>2]=n,x[t+28>>2]=r.failIfMajorPerformanceCaveat,x[t+32>>2]=e.version,x[t+36>>2]=0,x[t+40>>2]=e.attributes.enableExtensionsByDefault,0},emscripten_webgl_get_current_context:yr,emscripten_webgl_init_context_attributes:function(e){_(e);for(var t=e>>2,r=0;r<14;++r)x[t+r]=0;x[t+0]=x[t+1]=x[t+3]=x[t+4]=x[t+8]=x[t+10]=1},emscripten_webgl_make_context_current:Cr,environ_get:function(e,t){var r=0;return _r().forEach((function(n,o){var i=t+r;x[e+4*o>>2]=i,function(e,t){for(var r=0;r<e.length;++r)_(e.charCodeAt(r)==e.charCodeAt(r)&255),R[0|t++]=e.charCodeAt(r);R[0|t]=0}(n,i),r+=n.length+1})),0},environ_sizes_get:function(e,t){var r=_r();x[e>>2]=r.length;var n=0;return r.forEach((function(e){n+=e.length+1})),x[t>>2]=n,0},exit:function(e){!function(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=Ue.analyzePath("/dev/".concat(e));if(t){var n=t.object.rdev,o=Fe.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.")}();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),fn(e)}(e)},fd_close:function(e){try{var t=Le.getStreamFromFD(e);return Ue.close(t),0}catch(e){return void 0!==Ue&&e instanceof Ue.ErrnoError||he(e),e.errno}},fd_read:function(e,t,r,n){try{var o=Le.getStreamFromFD(e),i=Le.doReadv(o,t,r);return x[n>>2]=i,0}catch(e){return void 0!==Ue&&e instanceof Ue.ErrnoError||he(e),e.errno}},fd_seek:function(e,t,r,n,o){try{var i=Le.getStreamFromFD(e),a=4294967296*r+(t>>>0),s=9007199254740992;return a<=-s||a>=s?-61:(Ue.llseek(i,a,n),ce=[i.position>>>0,(Ae=i.position,+Math.abs(Ae)>=1?Ae>0?(0|Math.min(+Math.floor(Ae/4294967296),4294967295))>>>0:~~+Math.ceil((Ae-+(~~Ae>>>0))/4294967296)>>>0:0)],x[o>>2]=ce[0],x[o+4>>2]=ce[1],i.getdents&&0===a&&0===n&&(i.getdents=null),0)}catch(e){return void 0!==Ue&&e instanceof Ue.ErrnoError||he(e),e.errno}},fd_write:function(e,t,r,n){try{var o=Le.getStreamFromFD(e),i=Le.doWritev(o,t,r);return x[n>>2]=i,0}catch(e){return void 0!==Ue&&e instanceof Ue.ErrnoError||he(e),e.errno}},getTempRet0:function(){return y},getentropy:function e(t,r){e.randomDevice||(e.randomDevice=Re());for(var n=0;n<r;n++)R[t+n|0]=e.randomDevice();return 0},glActiveTexture:function(e){Hr.activeTexture(e)},glAttachShader:function(e,t){Hr.attachShader(Er.programs[e],Er.shaders[t])},glBindAttribLocation:function(e,t,r){Hr.bindAttribLocation(Er.programs[e],t,b(r))},glBindBuffer:function(e,t){34962==e?Hr.currentArrayBufferBinding=t:34963==e&&(Hr.currentElementArrayBufferBinding=t),35051==e?Hr.currentPixelPackBufferBinding=t:35052==e&&(Hr.currentPixelUnpackBufferBinding=t),Hr.bindBuffer(e,Er.buffers[t])},glBindBufferBase:function(e,t,r){Hr.bindBufferBase(e,t,Er.buffers[r])},glBindFramebuffer:function(e,t){Hr.bindFramebuffer(e,t?Er.framebuffers[t]:Er.currentContext.defaultFbo)},glBindTexture:function(e,t){Hr.bindTexture(e,Er.textures[t])},glBindVertexArray:function(e){Hr.bindVertexArray(Er.vaos[e]);var t=Hr.getParameter(34965);Hr.currentElementArrayBufferBinding=t?0|t.name:0},glBufferData:function(e,t,r,n){Er.currentContext.version>=2?r?Hr.bufferData(e,S,n,r,t):Hr.bufferData(e,t,n):Hr.bufferData(e,r?S.subarray(r,r+t):t,n)},glClientWaitSync:function(e,t,r,n){return Hr.clientWaitSync(Er.syncs[e],t,(o=r,_((i=n)===(0|i)),(o>>>0)+4294967296*i));var o,i},glCompileShader:function(e){Hr.compileShader(Er.shaders[e])},glCreateProgram:function(){var e=Er.getNewId(Er.programs),t=Hr.createProgram();return t.name=e,t.maxUniformLength=t.maxAttributeLength=t.maxUniformBlockNameLength=0,t.uniformIdCounter=1,Er.programs[e]=t,e},glCreateShader:function(e){var t=Er.getNewId(Er.shaders);return Er.shaders[t]=Hr.createShader(e),t},glDeleteBuffers:function(e,t){for(var r=0;r<e;r++){var n=x[t+4*r>>2],o=Er.buffers[n];o&&(Hr.deleteBuffer(o),o.name=0,Er.buffers[n]=null,n==Hr.currentArrayBufferBinding&&(Hr.currentArrayBufferBinding=0),n==Hr.currentElementArrayBufferBinding&&(Hr.currentElementArrayBufferBinding=0),n==Hr.currentPixelPackBufferBinding&&(Hr.currentPixelPackBufferBinding=0),n==Hr.currentPixelUnpackBufferBinding&&(Hr.currentPixelUnpackBufferBinding=0))}},glDeleteFramebuffers:function(e,t){for(var r=0;r<e;++r){var n=x[t+4*r>>2],o=Er.framebuffers[n];o&&(Hr.deleteFramebuffer(o),o.name=0,Er.framebuffers[n]=null)}},glDeleteProgram:function(e){if(e){var t=Er.programs[e];t?(Hr.deleteProgram(t),t.name=0,Er.programs[e]=null):Er.recordError(1281)}},glDeleteShader:function(e){if(e){var t=Er.shaders[e];t?(Hr.deleteShader(t),Er.shaders[e]=null):Er.recordError(1281)}},glDeleteSync:function(e){if(e){var t=Er.syncs[e];t?(Hr.deleteSync(t),t.name=0,Er.syncs[e]=null):Er.recordError(1281)}},glDeleteTextures:function(e,t){for(var r=0;r<e;r++){var n=x[t+4*r>>2],o=Er.textures[n];o&&(Hr.deleteTexture(o),o.name=0,Er.textures[n]=null)}},glDeleteVertexArrays:function(e,t){for(var r=0;r<e;r++){var n=x[t+4*r>>2];Hr.deleteVertexArray(Er.vaos[n]),Er.vaos[n]=null}},glDisable:function(e){Hr.disable(e)},glDisableVertexAttribArray:function(e){Er.currentContext.clientBuffers[e].enabled=!1,Hr.disableVertexAttribArray(e)},glDrawArrays:function(e,t,r){Er.preDrawHandleClientVertexAttribBindings(t+r),Hr.drawArrays(e,t,r),Er.postDrawHandleClientVertexAttribBindings()},glDrawBuffers:function(e,t){for(var r=Br[e],n=0;n<e;n++)r[n]=x[t+4*n>>2];Hr.drawBuffers(r)},glEnableVertexAttribArray:function(e){Er.currentContext.clientBuffers[e].enabled=!0,Hr.enableVertexAttribArray(e)},glFenceSync:function(e,t){var r=Hr.fenceSync(e,t);if(r){var n=Er.getNewId(Er.syncs);return r.name=n,Er.syncs[n]=r,n}return 0},glFinish:function(){Hr.finish()},glFlush:function(){Hr.flush()},glFramebufferTexture2D:function(e,t,r,n,o){Hr.framebufferTexture2D(e,t,r,Er.textures[n],o)},glFramebufferTextureLayer:function(e,t,r,n,o){Hr.framebufferTextureLayer(e,t,Er.textures[r],n,o)},glGenBuffers:function(e,t){vr(e,t,"createBuffer",Er.buffers)},glGenFramebuffers:function(e,t){vr(e,t,"createFramebuffer",Er.framebuffers)},glGenTextures:function(e,t){vr(e,t,"createTexture",Er.textures)},glGenVertexArrays:function(e,t){vr(e,t,"createVertexArray",Er.vaos)},glGetAttribLocation:function(e,t){return Hr.getAttribLocation(Er.programs[e],b(t))},glGetError:function(){var e=Hr.getError()||Er.lastError;return Er.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=Hr.getParameter(34467);n=o?o.length:0;break;case 33309:if(Er.currentContext.version<2)return void Er.recordError(1282);n=2*(Hr.getSupportedExtensions()||[]).length;break;case 33307:case 33308:if(Er.currentContext.version<2)return void Er.recordError(1280);n=33307==e?3:0}if(void 0===n){var i=Hr.getParameter(e);switch(E(i)){case"number":n=i;break;case"boolean":n=i?1:0;break;case"string":return void Er.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 Er.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:x[t+4*a>>2]=i[a];break;case 2:j[t+4*a>>2]=i[a];break;case 4:R[t+a|0]=i[a]?1:0}return}try{n=0|i.name}catch(t){return Er.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 Er.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:Dr(t,n);break;case 0:x[t>>2]=n;break;case 2:j[t>>2]=n;break;case 4:R[0|t]=n?1:0}}else Er.recordError(1281)}(e,t,0)},glGetString:function(e){var t=Er.stringCache[e];if(!t){switch(e){case 7939:var r=Hr.getSupportedExtensions()||[];t=br((r=r.concat(r.map((function(e){return"GL_".concat(e)})))).join(" "));break;case 7936:case 7937:case 37445:case 37446:var n=Hr.getParameter(e);n||Er.recordError(1280),t=n&&br(n);break;case 7938:var o=Hr.getParameter(7938);t=br(o=Er.currentContext.version>=2?"OpenGL ES 3.0 (".concat(o,")"):"OpenGL ES 2.0 (".concat(o,")"));break;case 35724:var i=Hr.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=br(i);break;default:Er.recordError(1280)}Er.stringCache[e]=t}return t},glGetUniformBlockIndex:function(e,t){return Hr.getUniformBlockIndex(Er.programs[e],b(t))},glGetUniformLocation:function(e,t){if(t=b(t),e=Er.programs[e]){!function(e){var t,r,n=e.uniformLocsById,o=e.uniformSizeAndIdsByName;if(!n)for(e.uniformLocsById=n={},e.uniformArrayNamesById={},t=0;t<Hr.getProgramParameter(e,35718);++t){var i=Hr.getActiveUniform(e,t),a=i.name,s=i.size,A=Or(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=Or(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]||Hr.getUniformLocation(e,t)))return n}else Er.recordError(1281);var s;return-1},glLinkProgram:function(e){e=Er.programs[e],Hr.linkProgram(e),e.uniformLocsById=0,e.uniformSizeAndIdsByName={}},glPixelStorei:function(e,t){3317==e&&(Er.unpackAlignment=t),Hr.pixelStorei(e,t)},glReadPixels:function(e,t,r,n,o,i,a){if(Er.currentContext.version>=2)if(Hr.currentPixelPackBufferBinding)Hr.readPixels(e,t,r,n,o,i,a);else{var s=Qr(i);Hr.readPixels(e,t,r,n,o,i,s,a>>Tr(s))}else{var A=Pr(i,o,r,n,a);A?Hr.readPixels(e,t,r,n,o,i,A):Er.recordError(1280)}},glShaderSource:function(e,t,r,n){var o=Er.getSource(e,t,r,n);Hr.shaderSource(Er.shaders[e],o)},glTexImage2D:function(e,t,r,n,o,i,a,s,A){if(Er.currentContext.version>=2)if(Hr.currentPixelUnpackBufferBinding)Hr.texImage2D(e,t,r,n,o,i,a,s,A);else if(A){var c=Qr(s);Hr.texImage2D(e,t,r,n,o,i,a,s,c,A>>Tr(c))}else Hr.texImage2D(e,t,r,n,o,i,a,s,null);else Hr.texImage2D(e,t,r,n,o,i,a,s,A?Pr(s,a,n,o,A):null)},glTexParameterfv:function(e,t,r){var n=j[r>>2];Hr.texParameterf(e,t,n)},glTexParameteri:function(e,t,r){Hr.texParameteri(e,t,r)},glTexStorage2D:function(e,t,r,n,o){Hr.texStorage2D(e,t,r,n,o)},glTexStorage3D:function(e,t,r,n,o,i){Hr.texStorage3D(e,t,r,n,o,i)},glTexSubImage2D:function(e,t,r,n,o,i,a,s,A){if(Er.currentContext.version>=2)if(Hr.currentPixelUnpackBufferBinding)Hr.texSubImage2D(e,t,r,n,o,i,a,s,A);else if(A){var c=Qr(s);Hr.texSubImage2D(e,t,r,n,o,i,a,s,c,A>>Tr(c))}else Hr.texSubImage2D(e,t,r,n,o,i,a,s,null);else{var u=null;A&&(u=Pr(s,a,o,i,A)),Hr.texSubImage2D(e,t,r,n,o,i,a,s,u)}},glTexSubImage3D:function(e,t,r,n,o,i,a,s,A,c,u){if(Hr.currentPixelUnpackBufferBinding)Hr.texSubImage3D(e,t,r,n,o,i,a,s,A,c,u);else if(u){var g=Qr(c);Hr.texSubImage3D(e,t,r,n,o,i,a,s,A,c,g,u>>Tr(g))}else Hr.texSubImage3D(e,t,r,n,o,i,a,s,A,c,null)},glUniform1f:function(e,t){Hr.uniform1f(Mr(e),t)},glUniform1i:function(e,t){Hr.uniform1i(Mr(e),t)},glUniform2fv:function(e,t,r){if(Er.currentContext.version>=2)Hr.uniform2fv(Mr(e),j,r>>2,2*t);else{if(t<=144)for(var n=Rr[2*t-1],o=0;o<2*t;o+=2)n[o]=j[r+4*o>>2],n[o+1]=j[r+(4*o+4)>>2];else n=j.subarray(r>>2,r+8*t>>2);Hr.uniform2fv(Mr(e),n)}},glUniform4fv:function(e,t,r){if(Er.currentContext.version>=2)Hr.uniform4fv(Mr(e),j,r>>2,4*t);else{if(t<=72){var n=Rr[4*t-1],o=j;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=j.subarray(r>>2,r+16*t>>2);Hr.uniform4fv(Mr(e),n)}},glUniform4iv:function(e,t,r){if(Er.currentContext.version>=2)Hr.uniform4iv(Mr(e),x,r>>2,4*t);else{if(t<=72)for(var n=Sr[4*t-1],o=0;o<4*t;o+=4)n[o]=x[r+4*o>>2],n[o+1]=x[r+(4*o+4)>>2],n[o+2]=x[r+(4*o+8)>>2],n[o+3]=x[r+(4*o+12)>>2];else n=x.subarray(r>>2,r+16*t>>2);Hr.uniform4iv(Mr(e),n)}},glUniformBlockBinding:function(e,t,r){e=Er.programs[e],Hr.uniformBlockBinding(e,t,r)},glUniformMatrix4fv:function(e,t,r,n){if(Er.currentContext.version>=2)Hr.uniformMatrix4fv(Mr(e),!!r,j,n>>2,16*t);else{if(t<=18){var o=Rr[16*t-1],i=j;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=j.subarray(n>>2,n+64*t>>2);Hr.uniformMatrix4fv(Mr(e),!!r,o)}},glUseProgram:function(e){e=Er.programs[e],Hr.useProgram(e),Hr.currentProgram=e},glVertexAttribPointer:function(e,t,r,n,o,i){var a=Er.currentContext.clientBuffers[e];if(!Hr.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,Hr.vertexAttribPointer(e,t,r,!!n,o,i)},glViewport:function(e,t,r,n){Hr.viewport(e,t,r,n)},gmtime_r:function e(t,r){var n=new Date(1e3*x[t>>2]);x[r>>2]=n.getUTCSeconds(),x[r+4>>2]=n.getUTCMinutes(),x[r+8>>2]=n.getUTCHours(),x[r+12>>2]=n.getUTCDate(),x[r+16>>2]=n.getUTCMonth(),x[r+20>>2]=n.getUTCFullYear()-1900,x[r+24>>2]=n.getUTCDay(),x[r+36>>2]=0,x[r+32>>2]=0;var o=Date.UTC(n.getUTCFullYear(),0,1,0,0,0,0),i=(n.getTime()-o)/864e5|0;return x[r+28>>2]=i,e.GMTString||(e.GMTString=z("GMT")),x[r+40>>2]=e.GMTString,r},invoke_diii:function(e,t,r,n){var o=nn();try{return Z.get(e)(t,r,n)}catch(e){if(on(o),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_i:function(e){var t=nn();try{return Z.get(e)()}catch(e){if(on(t),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_ii:function(e,t){var r=nn();try{return Z.get(e)(t)}catch(e){if(on(r),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_iii:function(e,t,r){var n=nn();try{return Z.get(e)(t,r)}catch(e){if(on(n),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_iiii:function(e,t,r,n){var o=nn();try{return Z.get(e)(t,r,n)}catch(e){if(on(o),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_iiiii:function(e,t,r,n,o){var i=nn();try{return Z.get(e)(t,r,n,o)}catch(e){if(on(i),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_iiiiii:function(e,t,r,n,o,i){var a=nn();try{return Z.get(e)(t,r,n,o,i)}catch(e){if(on(a),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_iiiiiii:function(e,t,r,n,o,i,a){var s=nn();try{return Z.get(e)(t,r,n,o,i,a)}catch(e){if(on(s),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_iiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c){var u=nn();try{return Z.get(e)(t,r,n,o,i,a,s,A,c)}catch(e){if(on(u),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_iiiiiiii:function(e,t,r,n,o,i,a,s){var A=nn();try{return Z.get(e)(t,r,n,o,i,a,s)}catch(e){if(on(A),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_iiiiiiiii:function(e,t,r,n,o,i,a,s,A){var c=nn();try{return Z.get(e)(t,r,n,o,i,a,s,A)}catch(e){if(on(c),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_v:function(e){var t=nn();try{Z.get(e)()}catch(e){if(on(t),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_vdiii:function(e,t,r,n,o){var i=nn();try{Z.get(e)(t,r,n,o)}catch(e){if(on(i),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_vi:function(e,t){var r=nn();try{Z.get(e)(t)}catch(e){if(on(r),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_vididdii:function(e,t,r,n,o,i,a,s){var A=nn();try{Z.get(e)(t,r,n,o,i,a,s)}catch(e){if(on(A),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_vidii:function(e,t,r,n,o){var i=nn();try{Z.get(e)(t,r,n,o)}catch(e){if(on(i),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_vii:function(e,t,r){var n=nn();try{Z.get(e)(t,r)}catch(e){if(on(n),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viid:function(e,t,r,n){var o=nn();try{Z.get(e)(t,r,n)}catch(e){if(on(o),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viidi:function(e,t,r,n,o){var i=nn();try{Z.get(e)(t,r,n,o)}catch(e){if(on(i),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viididii:function(e,t,r,n,o,i,a,s){var A=nn();try{Z.get(e)(t,r,n,o,i,a,s)}catch(e){if(on(A),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viii:function(e,t,r,n){var o=nn();try{Z.get(e)(t,r,n)}catch(e){if(on(o),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiid:function(e,t,r,n,o){var i=nn();try{Z.get(e)(t,r,n,o)}catch(e){if(on(i),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiidd:function(e,t,r,n,o,i){var a=nn();try{Z.get(e)(t,r,n,o,i)}catch(e){if(on(a),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiddi:function(e,t,r,n,o,i,a){var s=nn();try{Z.get(e)(t,r,n,o,i,a)}catch(e){if(on(s),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiidi:function(e,t,r,n,o,i){var a=nn();try{Z.get(e)(t,r,n,o,i)}catch(e){if(on(a),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiii:function(e,t,r,n,o){var i=nn();try{Z.get(e)(t,r,n,o)}catch(e){if(on(i),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiid:function(e,t,r,n,o,i){var a=nn();try{Z.get(e)(t,r,n,o,i)}catch(e){if(on(a),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiidi:function(e,t,r,n,o,i,a){var s=nn();try{Z.get(e)(t,r,n,o,i,a)}catch(e){if(on(s),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiidid:function(e,t,r,n,o,i,a,s){var A=nn();try{Z.get(e)(t,r,n,o,i,a,s)}catch(e){if(on(A),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiidiidiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d,l,f,E){var p=nn();try{Z.get(e)(t,r,n,o,i,a,s,A,c,u,g,d,l,f,E)}catch(e){if(on(p),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiifiifiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d,l,f,E){var p=nn();try{Z.get(e)(t,r,n,o,i,a,s,A,c,u,g,d,l,f,E)}catch(e){if(on(p),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiii:function(e,t,r,n,o,i){var a=nn();try{Z.get(e)(t,r,n,o,i)}catch(e){if(on(a),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiid:function(e,t,r,n,o,i,a){var s=nn();try{Z.get(e)(t,r,n,o,i,a)}catch(e){if(on(s),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiif:function(e,t,r,n,o,i,a){var s=nn();try{Z.get(e)(t,r,n,o,i,a)}catch(e){if(on(s),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiii:function(e,t,r,n,o,i,a){var s=nn();try{Z.get(e)(t,r,n,o,i,a)}catch(e){if(on(s),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiiid:function(e,t,r,n,o,i,a,s){var A=nn();try{Z.get(e)(t,r,n,o,i,a,s)}catch(e){if(on(A),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiiif:function(e,t,r,n,o,i,a,s){var A=nn();try{Z.get(e)(t,r,n,o,i,a,s)}catch(e){if(on(A),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiiii:function(e,t,r,n,o,i,a,s){var A=nn();try{Z.get(e)(t,r,n,o,i,a,s)}catch(e){if(on(A),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c,u){var g=nn();try{Z.get(e)(t,r,n,o,i,a,s,A,c,u)}catch(e){if(on(g),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiiiidiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d){var l=nn();try{Z.get(e)(t,r,n,o,i,a,s,A,c,u,g,d)}catch(e){if(on(l),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiiiifiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d){var l=nn();try{Z.get(e)(t,r,n,o,i,a,s,A,c,u,g,d)}catch(e){if(on(l),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiiiii:function(e,t,r,n,o,i,a,s,A){var c=nn();try{Z.get(e)(t,r,n,o,i,a,s,A)}catch(e){if(on(c),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiiiiidd:function(e,t,r,n,o,i,a,s,A,c,u){var g=nn();try{Z.get(e)(t,r,n,o,i,a,s,A,c,u)}catch(e){if(on(g),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiiiiidf:function(e,t,r,n,o,i,a,s,A,c,u){var g=nn();try{Z.get(e)(t,r,n,o,i,a,s,A,c,u)}catch(e){if(on(g),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiiiiii:function(e,t,r,n,o,i,a,s,A,c){var u=nn();try{Z.get(e)(t,r,n,o,i,a,s,A,c)}catch(e){if(on(u),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiiiiiidd:function(e,t,r,n,o,i,a,s,A,c,u,g){var d=nn();try{Z.get(e)(t,r,n,o,i,a,s,A,c,u,g)}catch(e){if(on(d),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c,u,g,d){var l=nn();try{Z.get(e)(t,r,n,o,i,a,s,A,c,u,g,d)}catch(e){if(on(l),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u){var g=nn();try{Z.get(e)(t,r,n,o,i,a,s,A,c,u)}catch(e){if(on(g),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c,u,g,d,l){var f=nn();try{Z.get(e)(t,r,n,o,i,a,s,A,c,u,g,d,l)}catch(e){if(on(f),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u,g){var d=nn();try{Z.get(e)(t,r,n,o,i,a,s,A,c,u,g)}catch(e){if(on(d),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d){var l=nn();try{Z.get(e)(t,r,n,o,i,a,s,A,c,u,g,d)}catch(e){if(on(l),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},invoke_viiiiiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d,l){var f=nn();try{Z.get(e)(t,r,n,o,i,a,s,A,c,u,g,d,l)}catch(e){if(on(f),e!==e+0&&"longjmp"!==e)throw e;An(1,0)}},llvm_eh_typeid_for:function(e){return e},localtime_r:function(e,t){Fr();var r=new Date(1e3*x[e>>2]);x[t>>2]=r.getSeconds(),x[t+4>>2]=r.getMinutes(),x[t+8>>2]=r.getHours(),x[t+12>>2]=r.getDate(),x[t+16>>2]=r.getMonth(),x[t+20>>2]=r.getFullYear()-1900,x[t+24>>2]=r.getDay();var n=new Date(r.getFullYear(),0,1),o=(r.getTime()-n.getTime())/864e5|0;x[t+28>>2]=o,x[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));x[t+32>>2]=s;var A=x[en()+(s?4:0)>>2];return x[t+40>>2]=A,t},mktime:function(e){Fr();var t=new Date(x[e+20>>2]+1900,x[e+16>>2],x[e+12>>2],x[e+8>>2],x[e+4>>2],x[e>>2],0),r=x[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)x[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))}x[e+24>>2]=t.getDay();var u=(t.getTime()-o.getTime())/864e5|0;return x[e+28>>2]=u,x[e>>2]=t.getSeconds(),x[e+4>>2]=t.getMinutes(),x[e+8>>2]=t.getHours(),x[e+12>>2]=t.getDate(),x[e+16>>2]=t.getMonth(),t.getTime()/1e3|0},proc_exit:function(e){fn(e)},setTempRet0:function(e){C(e)},strftime:Lr,strftime_l:function(e,t,r,n){return Lr(e,t,r,n)}};!function(){var e={env:zr,wasi_snapshot_preview1:zr};function t(e,t){var r,o=e.exports;n.asm=o,_(m=n.asm.memory,"memory not found in wasm exports"),J(m.buffer),_(Z=n.asm.__indirect_function_table,"table not found in wasm exports"),r=n.asm.__wasm_call_ctors,re.unshift(r),pe("wasm-instantiate")}Ee("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(ae,e).then((function(e){_(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=Ie("__wasm_call_ctors");var Jr=n._free=Ie("free"),Kr=n._malloc=Ie("malloc"),Zr=n.___errno_location=Ie("__errno_location");n._fflush=Ie("fflush");var qr=n.___getTypeName=Ie("__getTypeName");n.___embind_register_native_and_builtin_types=Ie("__embind_register_native_and_builtin_types"),n._emscripten_main_thread_process_queued_calls=Ie("emscripten_main_thread_process_queued_calls");var $r=n._emscripten_stack_get_end=function(){return($r=n._emscripten_stack_get_end=n.asm.emscripten_stack_get_end).apply(null,arguments)},en=n.__get_tzname=Ie("_get_tzname"),tn=n.__get_daylight=Ie("_get_daylight"),rn=n.__get_timezone=Ie("_get_timezone"),nn=n.stackSave=Ie("stackSave"),on=n.stackRestore=Ie("stackRestore");n.stackAlloc=Ie("stackAlloc");var an=n._emscripten_stack_init=function(){return(an=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=Ie("saveSetjmp");var sn,An=n._setThrew=Ie("setThrew"),cn=n.___cxa_can_catch=Ie("__cxa_can_catch"),un=n.___cxa_is_pointer_type=Ie("__cxa_is_pointer_type"),gn=n._memalign=Ie("memalign");function dn(e){this.name="ExitStatus",this.message="Program terminated with exit(".concat(e,")"),this.status=e}function ln(e){function r(){sn||(sn=!0,n.calledRun=!0,w||(ee(),_(!ie),ie=!0,n.noFSInit||Ue.init.initialized||Ue.init(),Ue.ignorePermissions=!1,Be(re),t(n),n.onRuntimeInitialized&&n.onRuntimeInitialized(),_(!n._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),function(){if(ee(),n.postRun)for("function"==typeof n.postRun&&(n.postRun=[n.postRun]);n.postRun.length;)e=n.postRun.shift(),oe.unshift(e);var e;Be(oe)}()))}ue>0||(an(),$(),function(){if(n.preRun)for("function"==typeof n.preRun&&(n.preRun=[n.preRun]);n.preRun.length;)e=n.preRun.shift(),te.unshift(e);var e;Be(te)}(),ue>0||(n.setStatus?(n.setStatus("Running..."),setTimeout((function(){setTimeout((function(){n.setStatus("")}),1),r()}),1)):r(),ee()))}function fn(e){s(e,new dn(e))}if(n._emscripten_builtin_malloc=Ie("emscripten_builtin_malloc"),n._emscripten_builtin_free=Ie("emscripten_builtin_free"),n._emscripten_builtin_memalign=Ie("emscripten_builtin_memalign"),n.dynCall_jii=Ie("dynCall_jii"),n.dynCall_viji=Ie("dynCall_viji"),n.dynCall_jjj=Ie("dynCall_jjj"),n.dynCall_iiiijj=Ie("dynCall_iiiijj"),n.dynCall_viijj=Ie("dynCall_viijj"),n.dynCall_viiijjjj=Ie("dynCall_viiijjjj"),n.dynCall_ji=Ie("dynCall_ji"),n.dynCall_vij=Ie("dynCall_vij"),n.dynCall_viijii=Ie("dynCall_viijii"),n.dynCall_vj=Ie("dynCall_vj"),n.dynCall_viij=Ie("dynCall_viij"),n.dynCall_viiiiij=Ie("dynCall_viiiiij"),n.dynCall_iijjiiii=Ie("dynCall_iijjiiii"),n.dynCall_jiji=Ie("dynCall_jiji"),n.dynCall_iiiiij=Ie("dynCall_iiiiij"),n.dynCall_iiiiijj=Ie("dynCall_iiiiijj"),n.dynCall_iiiiiijj=Ie("dynCall_iiiiiijj"),Object.getOwnPropertyDescriptor(n,"intArrayFromString")||(n.intArrayFromString=function(){he("'intArrayFromString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"intArrayToString")||(n.intArrayToString=function(){he("'intArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ccall")||(n.ccall=function(){he("'ccall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"cwrap")||(n.cwrap=function(){he("'cwrap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setValue")||(n.setValue=function(){he("'setValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getValue")||(n.getValue=function(){he("'getValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocate")||(n.allocate=function(){he("'allocate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF8ArrayToString")||(n.UTF8ArrayToString=function(){he("'UTF8ArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF8ToString")||(n.UTF8ToString=function(){he("'UTF8ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF8Array")||(n.stringToUTF8Array=function(){he("'stringToUTF8Array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF8")||(n.stringToUTF8=function(){he("'stringToUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF8")||(n.lengthBytesUTF8=function(){he("'lengthBytesUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackTrace")||(n.stackTrace=function(){he("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPreRun")||(n.addOnPreRun=function(){he("'addOnPreRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnInit")||(n.addOnInit=function(){he("'addOnInit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPreMain")||(n.addOnPreMain=function(){he("'addOnPreMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnExit")||(n.addOnExit=function(){he("'addOnExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPostRun")||(n.addOnPostRun=function(){he("'addOnPostRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeStringToMemory")||(n.writeStringToMemory=function(){he("'writeStringToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeArrayToMemory")||(n.writeArrayToMemory=function(){he("'writeArrayToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeAsciiToMemory")||(n.writeAsciiToMemory=function(){he("'writeAsciiToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.addRunDependency=Ee,n.removeRunDependency=pe,Object.getOwnPropertyDescriptor(n,"FS_createFolder")||(n.FS_createFolder=function(){he("'FS_createFolder' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.FS_createPath=Ue.createPath,n.FS_createDataFile=Ue.createDataFile,n.FS_createPreloadedFile=Ue.createPreloadedFile,n.FS_createLazyFile=Ue.createLazyFile,Object.getOwnPropertyDescriptor(n,"FS_createLink")||(n.FS_createLink=function(){he("'FS_createLink' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.FS_createDevice=Ue.createDevice,n.FS_unlink=Ue.unlink,Object.getOwnPropertyDescriptor(n,"getLEB")||(n.getLEB=function(){he("'getLEB' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFunctionTables")||(n.getFunctionTables=function(){he("'getFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"alignFunctionTables")||(n.alignFunctionTables=function(){he("'alignFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFunctions")||(n.registerFunctions=function(){he("'registerFunctions' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addFunction")||(n.addFunction=function(){he("'addFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"removeFunction")||(n.removeFunction=function(){he("'removeFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFuncWrapper")||(n.getFuncWrapper=function(){he("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"prettyPrint")||(n.prettyPrint=function(){he("'prettyPrint' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCall")||(n.dynCall=function(){he("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getCompilerSetting")||(n.getCompilerSetting=function(){he("'getCompilerSetting' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"print")||(n.print=function(){he("'print' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"printErr")||(n.printErr=function(){he("'printErr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getTempRet0")||(n.getTempRet0=function(){he("'getTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setTempRet0")||(n.setTempRet0=function(){he("'setTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callMain")||(n.callMain=function(){he("'callMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"abort")||(n.abort=function(){he("'abort' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"keepRuntimeAlive")||(n.keepRuntimeAlive=function(){he("'keepRuntimeAlive' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"zeroMemory")||(n.zeroMemory=function(){he("'zeroMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToNewUTF8")||(n.stringToNewUTF8=function(){he("'stringToNewUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setFileTime")||(n.setFileTime=function(){he("'setFileTime' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscripten_realloc_buffer")||(n.emscripten_realloc_buffer=function(){he("'emscripten_realloc_buffer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ENV")||(n.ENV=function(){he("'ENV' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ERRNO_CODES")||(n.ERRNO_CODES=function(){he("'ERRNO_CODES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ERRNO_MESSAGES")||(n.ERRNO_MESSAGES=function(){he("'ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setErrNo")||(n.setErrNo=function(){he("'setErrNo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetPton4")||(n.inetPton4=function(){he("'inetPton4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetNtop4")||(n.inetNtop4=function(){he("'inetNtop4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetPton6")||(n.inetPton6=function(){he("'inetPton6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetNtop6")||(n.inetNtop6=function(){he("'inetNtop6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readSockaddr")||(n.readSockaddr=function(){he("'readSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeSockaddr")||(n.writeSockaddr=function(){he("'writeSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"DNS")||(n.DNS=function(){he("'DNS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getHostByName")||(n.getHostByName=function(){he("'getHostByName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GAI_ERRNO_MESSAGES")||(n.GAI_ERRNO_MESSAGES=function(){he("'GAI_ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Protocols")||(n.Protocols=function(){he("'Protocols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Sockets")||(n.Sockets=function(){he("'Sockets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getRandomDevice")||(n.getRandomDevice=function(){he("'getRandomDevice' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"traverseStack")||(n.traverseStack=function(){he("'traverseStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UNWIND_CACHE")||(n.UNWIND_CACHE=function(){he("'UNWIND_CACHE' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"withBuiltinMalloc")||(n.withBuiltinMalloc=function(){he("'withBuiltinMalloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readAsmConstArgsArray")||(n.readAsmConstArgsArray=function(){he("'readAsmConstArgsArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readAsmConstArgs")||(n.readAsmConstArgs=function(){he("'readAsmConstArgs' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"mainThreadEM_ASM")||(n.mainThreadEM_ASM=function(){he("'mainThreadEM_ASM' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jstoi_q")||(n.jstoi_q=function(){he("'jstoi_q' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jstoi_s")||(n.jstoi_s=function(){he("'jstoi_s' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getExecutableName")||(n.getExecutableName=function(){he("'getExecutableName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"listenOnce")||(n.listenOnce=function(){he("'listenOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"autoResumeAudioContext")||(n.autoResumeAudioContext=function(){he("'autoResumeAudioContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCallLegacy")||(n.dynCallLegacy=function(){he("'dynCallLegacy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getDynCaller")||(n.getDynCaller=function(){he("'getDynCaller' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCall")||(n.dynCall=function(){he("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callRuntimeCallbacks")||(n.callRuntimeCallbacks=function(){he("'callRuntimeCallbacks' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runtimeKeepalivePush")||(n.runtimeKeepalivePush=function(){he("'runtimeKeepalivePush' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runtimeKeepalivePop")||(n.runtimeKeepalivePop=function(){he("'runtimeKeepalivePop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callUserCallback")||(n.callUserCallback=function(){he("'callUserCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"maybeExit")||(n.maybeExit=function(){he("'maybeExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"safeSetTimeout")||(n.safeSetTimeout=function(){he("'safeSetTimeout' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"asmjsMangle")||(n.asmjsMangle=function(){he("'asmjsMangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"asyncLoad")||(n.asyncLoad=function(){he("'asyncLoad' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"alignMemory")||(n.alignMemory=function(){he("'alignMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"mmapAlloc")||(n.mmapAlloc=function(){he("'mmapAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"reallyNegative")||(n.reallyNegative=function(){he("'reallyNegative' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"unSign")||(n.unSign=function(){he("'unSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"reSign")||(n.reSign=function(){he("'reSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"formatString")||(n.formatString=function(){he("'formatString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PATH")||(n.PATH=function(){he("'PATH' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PATH_FS")||(n.PATH_FS=function(){he("'PATH_FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SYSCALLS")||(n.SYSCALLS=function(){he("'SYSCALLS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"syscallMmap2")||(n.syscallMmap2=function(){he("'syscallMmap2' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"syscallMunmap")||(n.syscallMunmap=function(){he("'syscallMunmap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getSocketFromFD")||(n.getSocketFromFD=function(){he("'getSocketFromFD' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getSocketAddress")||(n.getSocketAddress=function(){he("'getSocketAddress' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"JSEvents")||(n.JSEvents=function(){he("'JSEvents' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerKeyEventCallback")||(n.registerKeyEventCallback=function(){he("'registerKeyEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"specialHTMLTargets")||(n.specialHTMLTargets=function(){he("'specialHTMLTargets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"findEventTarget")||(n.findEventTarget=function(){he("'findEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"findCanvasEventTarget")||(n.findCanvasEventTarget=function(){he("'findCanvasEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getBoundingClientRect")||(n.getBoundingClientRect=function(){he("'getBoundingClientRect' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillMouseEventData")||(n.fillMouseEventData=function(){he("'fillMouseEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerMouseEventCallback")||(n.registerMouseEventCallback=function(){he("'registerMouseEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerWheelEventCallback")||(n.registerWheelEventCallback=function(){he("'registerWheelEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerUiEventCallback")||(n.registerUiEventCallback=function(){he("'registerUiEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFocusEventCallback")||(n.registerFocusEventCallback=function(){he("'registerFocusEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillDeviceOrientationEventData")||(n.fillDeviceOrientationEventData=function(){he("'fillDeviceOrientationEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerDeviceOrientationEventCallback")||(n.registerDeviceOrientationEventCallback=function(){he("'registerDeviceOrientationEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillDeviceMotionEventData")||(n.fillDeviceMotionEventData=function(){he("'fillDeviceMotionEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerDeviceMotionEventCallback")||(n.registerDeviceMotionEventCallback=function(){he("'registerDeviceMotionEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"screenOrientation")||(n.screenOrientation=function(){he("'screenOrientation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillOrientationChangeEventData")||(n.fillOrientationChangeEventData=function(){he("'fillOrientationChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerOrientationChangeEventCallback")||(n.registerOrientationChangeEventCallback=function(){he("'registerOrientationChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillFullscreenChangeEventData")||(n.fillFullscreenChangeEventData=function(){he("'fillFullscreenChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFullscreenChangeEventCallback")||(n.registerFullscreenChangeEventCallback=function(){he("'registerFullscreenChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerRestoreOldStyle")||(n.registerRestoreOldStyle=function(){he("'registerRestoreOldStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"hideEverythingExceptGivenElement")||(n.hideEverythingExceptGivenElement=function(){he("'hideEverythingExceptGivenElement' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"restoreHiddenElements")||(n.restoreHiddenElements=function(){he("'restoreHiddenElements' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setLetterbox")||(n.setLetterbox=function(){he("'setLetterbox' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"currentFullscreenStrategy")||(n.currentFullscreenStrategy=function(){he("'currentFullscreenStrategy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"restoreOldWindowedStyle")||(n.restoreOldWindowedStyle=function(){he("'restoreOldWindowedStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"softFullscreenResizeWebGLRenderTarget")||(n.softFullscreenResizeWebGLRenderTarget=function(){he("'softFullscreenResizeWebGLRenderTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"doRequestFullscreen")||(n.doRequestFullscreen=function(){he("'doRequestFullscreen' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillPointerlockChangeEventData")||(n.fillPointerlockChangeEventData=function(){he("'fillPointerlockChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerPointerlockChangeEventCallback")||(n.registerPointerlockChangeEventCallback=function(){he("'registerPointerlockChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerPointerlockErrorEventCallback")||(n.registerPointerlockErrorEventCallback=function(){he("'registerPointerlockErrorEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requestPointerLock")||(n.requestPointerLock=function(){he("'requestPointerLock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillVisibilityChangeEventData")||(n.fillVisibilityChangeEventData=function(){he("'fillVisibilityChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerVisibilityChangeEventCallback")||(n.registerVisibilityChangeEventCallback=function(){he("'registerVisibilityChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerTouchEventCallback")||(n.registerTouchEventCallback=function(){he("'registerTouchEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillGamepadEventData")||(n.fillGamepadEventData=function(){he("'fillGamepadEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerGamepadEventCallback")||(n.registerGamepadEventCallback=function(){he("'registerGamepadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerBeforeUnloadEventCallback")||(n.registerBeforeUnloadEventCallback=function(){he("'registerBeforeUnloadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillBatteryEventData")||(n.fillBatteryEventData=function(){he("'fillBatteryEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"battery")||(n.battery=function(){he("'battery' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerBatteryEventCallback")||(n.registerBatteryEventCallback=function(){he("'registerBatteryEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setCanvasElementSize")||(n.setCanvasElementSize=function(){he("'setCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getCanvasElementSize")||(n.getCanvasElementSize=function(){he("'getCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"polyfillSetImmediate")||(n.polyfillSetImmediate=function(){he("'polyfillSetImmediate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"demangle")||(n.demangle=function(){he("'demangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"demangleAll")||(n.demangleAll=function(){he("'demangleAll' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jsStackTrace")||(n.jsStackTrace=function(){he("'jsStackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackTrace")||(n.stackTrace=function(){he("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getEnvStrings")||(n.getEnvStrings=function(){he("'getEnvStrings' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"checkWasiClock")||(n.checkWasiClock=function(){he("'checkWasiClock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64")||(n.writeI53ToI64=function(){he("'writeI53ToI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64Clamped")||(n.writeI53ToI64Clamped=function(){he("'writeI53ToI64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64Signaling")||(n.writeI53ToI64Signaling=function(){he("'writeI53ToI64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToU64Clamped")||(n.writeI53ToU64Clamped=function(){he("'writeI53ToU64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToU64Signaling")||(n.writeI53ToU64Signaling=function(){he("'writeI53ToU64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readI53FromI64")||(n.readI53FromI64=function(){he("'readI53FromI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readI53FromU64")||(n.readI53FromU64=function(){he("'readI53FromU64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"convertI32PairToI53")||(n.convertI32PairToI53=function(){he("'convertI32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"convertU32PairToI53")||(n.convertU32PairToI53=function(){he("'convertU32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"uncaughtExceptionCount")||(n.uncaughtExceptionCount=function(){he("'uncaughtExceptionCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exceptionLast")||(n.exceptionLast=function(){he("'exceptionLast' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exceptionCaught")||(n.exceptionCaught=function(){he("'exceptionCaught' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ExceptionInfo")||(n.ExceptionInfo=function(){he("'ExceptionInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"CatchInfo")||(n.CatchInfo=function(){he("'CatchInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exception_addRef")||(n.exception_addRef=function(){he("'exception_addRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exception_decRef")||(n.exception_decRef=function(){he("'exception_decRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Browser")||(n.Browser=function(){he("'Browser' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"funcWrappers")||(n.funcWrappers=function(){he("'funcWrappers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFuncWrapper")||(n.getFuncWrapper=function(){he("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setMainLoop")||(n.setMainLoop=function(){he("'setMainLoop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"wget")||(n.wget=function(){he("'wget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"FS")||(n.FS=function(){he("'FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"MEMFS")||(n.MEMFS=function(){he("'MEMFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"TTY")||(n.TTY=function(){he("'TTY' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PIPEFS")||(n.PIPEFS=function(){he("'PIPEFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SOCKFS")||(n.SOCKFS=function(){he("'SOCKFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"_setNetworkCallback")||(n._setNetworkCallback=function(){he("'_setNetworkCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"tempFixedLengthArray")||(n.tempFixedLengthArray=function(){he("'tempFixedLengthArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"miniTempWebGLFloatBuffers")||(n.miniTempWebGLFloatBuffers=function(){he("'miniTempWebGLFloatBuffers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heapObjectForWebGLType")||(n.heapObjectForWebGLType=function(){he("'heapObjectForWebGLType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heapAccessShiftForWebGLHeap")||(n.heapAccessShiftForWebGLHeap=function(){he("'heapAccessShiftForWebGLHeap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.GL=Er,Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGet")||(n.emscriptenWebGLGet=function(){he("'emscriptenWebGLGet' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"computeUnpackAlignedImageSize")||(n.computeUnpackAlignedImageSize=function(){he("'computeUnpackAlignedImageSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetTexPixelData")||(n.emscriptenWebGLGetTexPixelData=function(){he("'emscriptenWebGLGetTexPixelData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetUniform")||(n.emscriptenWebGLGetUniform=function(){he("'emscriptenWebGLGetUniform' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglGetUniformLocation")||(n.webglGetUniformLocation=function(){he("'webglGetUniformLocation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglPrepareUniformLocationsBeforeFirstUse")||(n.webglPrepareUniformLocationsBeforeFirstUse=function(){he("'webglPrepareUniformLocationsBeforeFirstUse' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglGetLeftBracePos")||(n.webglGetLeftBracePos=function(){he("'webglGetLeftBracePos' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetVertexAttrib")||(n.emscriptenWebGLGetVertexAttrib=function(){he("'emscriptenWebGLGetVertexAttrib' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetBufferBinding")||(n.emscriptenWebGLGetBufferBinding=function(){he("'emscriptenWebGLGetBufferBinding' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLValidateMapBufferTarget")||(n.emscriptenWebGLValidateMapBufferTarget=function(){he("'emscriptenWebGLValidateMapBufferTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeGLArray")||(n.writeGLArray=function(){he("'writeGLArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"AL")||(n.AL=function(){he("'AL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_unicode")||(n.SDL_unicode=function(){he("'SDL_unicode' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_ttfContext")||(n.SDL_ttfContext=function(){he("'SDL_ttfContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_audio")||(n.SDL_audio=function(){he("'SDL_audio' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL")||(n.SDL=function(){he("'SDL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_gfx")||(n.SDL_gfx=function(){he("'SDL_gfx' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLUT")||(n.GLUT=function(){he("'GLUT' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"EGL")||(n.EGL=function(){he("'EGL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLFW_Window")||(n.GLFW_Window=function(){he("'GLFW_Window' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLFW")||(n.GLFW=function(){he("'GLFW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLEW")||(n.GLEW=function(){he("'GLEW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"IDBStore")||(n.IDBStore=function(){he("'IDBStore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runAndAbortIfError")||(n.runAndAbortIfError=function(){he("'runAndAbortIfError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_handle_array")||(n.emval_handle_array=function(){he("'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(){he("'emval_free_list' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_symbols")||(n.emval_symbols=function(){he("'emval_symbols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_emval")||(n.init_emval=function(){he("'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(){he("'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(){he("'get_first_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getStringOrSymbol")||(n.getStringOrSymbol=function(){he("'getStringOrSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requireHandle")||(n.requireHandle=function(){he("'requireHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_newers")||(n.emval_newers=function(){he("'emval_newers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"craftEmvalAllocator")||(n.craftEmvalAllocator=function(){he("'craftEmvalAllocator' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_get_global")||(n.emval_get_global=function(){he("'emval_get_global' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_methodCallers")||(n.emval_methodCallers=function(){he("'emval_methodCallers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"InternalError")||(n.InternalError=function(){he("'InternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"BindingError")||(n.BindingError=function(){he("'BindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UnboundTypeError")||(n.UnboundTypeError=function(){he("'UnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PureVirtualError")||(n.PureVirtualError=function(){he("'PureVirtualError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_embind")||(n.init_embind=function(){he("'init_embind' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwInternalError")||(n.throwInternalError=function(){he("'throwInternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwBindingError")||(n.throwBindingError=function(){he("'throwBindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwUnboundTypeError")||(n.throwUnboundTypeError=function(){he("'throwUnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ensureOverloadTable")||(n.ensureOverloadTable=function(){he("'ensureOverloadTable' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exposePublicSymbol")||(n.exposePublicSymbol=function(){he("'exposePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"replacePublicSymbol")||(n.replacePublicSymbol=function(){he("'replacePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"extendError")||(n.extendError=function(){he("'extendError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"createNamedFunction")||(n.createNamedFunction=function(){he("'createNamedFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredInstances")||(n.registeredInstances=function(){he("'registeredInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getBasestPointer")||(n.getBasestPointer=function(){he("'getBasestPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerInheritedInstance")||(n.registerInheritedInstance=function(){he("'registerInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"unregisterInheritedInstance")||(n.unregisterInheritedInstance=function(){he("'unregisterInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getInheritedInstance")||(n.getInheritedInstance=function(){he("'getInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getInheritedInstanceCount")||(n.getInheritedInstanceCount=function(){he("'getInheritedInstanceCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getLiveInheritedInstances")||(n.getLiveInheritedInstances=function(){he("'getLiveInheritedInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredTypes")||(n.registeredTypes=function(){he("'registeredTypes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"awaitingDependencies")||(n.awaitingDependencies=function(){he("'awaitingDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"typeDependencies")||(n.typeDependencies=function(){he("'typeDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredPointers")||(n.registeredPointers=function(){he("'registeredPointers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerType")||(n.registerType=function(){he("'registerType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"whenDependentTypesAreResolved")||(n.whenDependentTypesAreResolved=function(){he("'whenDependentTypesAreResolved' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind_charCodes")||(n.embind_charCodes=function(){he("'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(){he("'embind_init_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readLatin1String")||(n.readLatin1String=function(){he("'readLatin1String' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getTypeName")||(n.getTypeName=function(){he("'getTypeName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heap32VectorToArray")||(n.heap32VectorToArray=function(){he("'heap32VectorToArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requireRegisteredType")||(n.requireRegisteredType=function(){he("'requireRegisteredType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getShiftFromSize")||(n.getShiftFromSize=function(){he("'getShiftFromSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"integerReadValueFromPointer")||(n.integerReadValueFromPointer=function(){he("'integerReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"enumReadValueFromPointer")||(n.enumReadValueFromPointer=function(){he("'enumReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"floatReadValueFromPointer")||(n.floatReadValueFromPointer=function(){he("'floatReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"simpleReadValueFromPointer")||(n.simpleReadValueFromPointer=function(){he("'simpleReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runDestructors")||(n.runDestructors=function(){he("'runDestructors' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"new_")||(n.new_=function(){he("'new_' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"craftInvokerFunction")||(n.craftInvokerFunction=function(){he("'craftInvokerFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind__requireFunction")||(n.embind__requireFunction=function(){he("'embind__requireFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"tupleRegistrations")||(n.tupleRegistrations=function(){he("'tupleRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"structRegistrations")||(n.structRegistrations=function(){he("'structRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"genericPointerToWireType")||(n.genericPointerToWireType=function(){he("'genericPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"constNoSmartPtrRawPointerToWireType")||(n.constNoSmartPtrRawPointerToWireType=function(){he("'constNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"nonConstNoSmartPtrRawPointerToWireType")||(n.nonConstNoSmartPtrRawPointerToWireType=function(){he("'nonConstNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_RegisteredPointer")||(n.init_RegisteredPointer=function(){he("'init_RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer")||(n.RegisteredPointer=function(){he("'RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_getPointee")||(n.RegisteredPointer_getPointee=function(){he("'RegisteredPointer_getPointee' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_destructor")||(n.RegisteredPointer_destructor=function(){he("'RegisteredPointer_destructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_deleteObject")||(n.RegisteredPointer_deleteObject=function(){he("'RegisteredPointer_deleteObject' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_fromWireType")||(n.RegisteredPointer_fromWireType=function(){he("'RegisteredPointer_fromWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runDestructor")||(n.runDestructor=function(){he("'runDestructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"releaseClassHandle")||(n.releaseClassHandle=function(){he("'releaseClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"finalizationGroup")||(n.finalizationGroup=function(){he("'finalizationGroup' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"detachFinalizer_deps")||(n.detachFinalizer_deps=function(){he("'detachFinalizer_deps' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"detachFinalizer")||(n.detachFinalizer=function(){he("'detachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"attachFinalizer")||(n.attachFinalizer=function(){he("'attachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"makeClassHandle")||(n.makeClassHandle=function(){he("'makeClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_ClassHandle")||(n.init_ClassHandle=function(){he("'init_ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle")||(n.ClassHandle=function(){he("'ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_isAliasOf")||(n.ClassHandle_isAliasOf=function(){he("'ClassHandle_isAliasOf' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwInstanceAlreadyDeleted")||(n.throwInstanceAlreadyDeleted=function(){he("'throwInstanceAlreadyDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_clone")||(n.ClassHandle_clone=function(){he("'ClassHandle_clone' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_delete")||(n.ClassHandle_delete=function(){he("'ClassHandle_delete' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"deletionQueue")||(n.deletionQueue=function(){he("'deletionQueue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_isDeleted")||(n.ClassHandle_isDeleted=function(){he("'ClassHandle_isDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_deleteLater")||(n.ClassHandle_deleteLater=function(){he("'ClassHandle_deleteLater' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"flushPendingDeletes")||(n.flushPendingDeletes=function(){he("'flushPendingDeletes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"delayFunction")||(n.delayFunction=function(){he("'delayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setDelayFunction")||(n.setDelayFunction=function(){he("'setDelayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredClass")||(n.RegisteredClass=function(){he("'RegisteredClass' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"shallowCopyInternalPointer")||(n.shallowCopyInternalPointer=function(){he("'shallowCopyInternalPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"downcastPointer")||(n.downcastPointer=function(){he("'downcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"upcastPointer")||(n.upcastPointer=function(){he("'upcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"validateThis")||(n.validateThis=function(){he("'validateThis' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"char_0")||(n.char_0=function(){he("'char_0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"char_9")||(n.char_9=function(){he("'char_9' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"makeLegalFunctionName")||(n.makeLegalFunctionName=function(){he("'makeLegalFunctionName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetIndexed")||(n.emscriptenWebGLGetIndexed=function(){he("'emscriptenWebGLGetIndexed' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"warnOnce")||(n.warnOnce=function(){he("'warnOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackSave")||(n.stackSave=function(){he("'stackSave' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackRestore")||(n.stackRestore=function(){he("'stackRestore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackAlloc")||(n.stackAlloc=function(){he("'stackAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"AsciiToString")||(n.AsciiToString=function(){he("'AsciiToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToAscii")||(n.stringToAscii=function(){he("'stringToAscii' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF16ToString")||(n.UTF16ToString=function(){he("'UTF16ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF16")||(n.stringToUTF16=function(){he("'stringToUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF16")||(n.lengthBytesUTF16=function(){he("'lengthBytesUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF32ToString")||(n.UTF32ToString=function(){he("'UTF32ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF32")||(n.stringToUTF32=function(){he("'stringToUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF32")||(n.lengthBytesUTF32=function(){he("'lengthBytesUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocateUTF8")||(n.allocateUTF8=function(){he("'allocateUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocateUTF8OnStack")||(n.allocateUTF8OnStack=function(){he("'allocateUTF8OnStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.writeStackCookie=$,n.checkStackCookie=ee,Object.getOwnPropertyDescriptor(n,"ALLOC_NORMAL")||Object.defineProperty(n,"ALLOC_NORMAL",{configurable:!0,get:function(){he("'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(){he("'ALLOC_STACK' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),de=function e(){sn||ln(),sn||(de=e)},n.run=ln,n.preInit)for("function"==typeof n.preInit&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.pop()();return ln(),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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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(){Ee("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)")}}),b(void 0===o.memoryInitializerPrefixURL,"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),b(void 0===o.pthreadMainPrefixURL,"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),b(void 0===o.cdInitializerPrefixURL,"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),b(void 0===o.filePackagePrefixURL,"Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),b(void 0===o.read,"Module.read option was removed (modify read_ in JS)"),b(void 0===o.readAsync,"Module.readAsync option was removed (modify readAsync in JS)"),b(void 0===o.readBinary,"Module.readBinary option was removed (modify readBinary in JS)"),b(void 0===o.setWindowTitle,"Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),b(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(){Ee("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(){Ee("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(){Ee("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(){Ee("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)")}}),b(!d,"shell environment detected but not enabled at build time. Add 'shell' to `-s ENVIRONMENT` to enable.");var C,w,_=0,B=function(e){_=e};o.wasmBinary&&(C=o.wasmBinary),Object.getOwnPropertyDescriptor(o,"wasmBinary")||Object.defineProperty(o,"wasmBinary",{configurable:!0,get:function(){Ee("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)")}}),o.noExitRuntime,Object.getOwnPropertyDescriptor(o,"noExitRuntime")||Object.defineProperty(o,"noExitRuntime",{configurable:!0,get:function(){Ee("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))&&Ee("no native wasm support detected");var v=!1;function b(e,t){e||Ee("Assertion failed: "+t)}var O="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function Q(e,t,r){for(var n=t+r,o=t;e[o]&&!(o>=n);)++o;if(o-t>16&&e.subarray&&O)return O.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 T(e,t){return e?Q(k,e,t):""}function P(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 M(e,t,r){return b("number"==typeof r,"stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),P(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){b(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(b(t%2==0,"Pointer passed to stringToUTF16 must be aligned to two bytes!"),b("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){b(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(b(t%4==0,"Pointer passed to stringToUTF32 must be aligned to four bytes!"),b("number"==typeof r,"stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),void 0===r&&(r=2147483647),r<4)return 0;for(var n=t,o=n+r-4,i=0;i<e.length;++i){var a=e.charCodeAt(i);if(a>=55296&&a<=57343)a=65536+((1023&a)<<10)|1023&e.charCodeAt(++i);if(j[t>>2]=a,(t+=4)+4>o)break}return j[t>>2]=0,t-n}function 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=tn(t);return r&&P(e,F,r,t),r}function Z(e){S=e,o.HEAP8=F=new Int8Array(e),o.HEAP16=x=new Int16Array(e),o.HEAP32=j=new Int32Array(e),o.HEAPU8=k=new Uint8Array(e),o.HEAPU16=N=new Uint16Array(e),o.HEAPU32=U=new Uint32Array(e),o.HEAPF32=L=new Float32Array(e),o.HEAPF64=H=new Float64Array(e)}var q=5242880;o.TOTAL_STACK&&b(q===o.TOTAL_STACK,"the stack size can no longer be determined at runtime");var $,ee=o.INITIAL_MEMORY||16777216;function te(){var e=on();b(!(3&e)),U[1+(e>>2)]=34821223,U[2+(e>>2)]=2310721022,j[0]=1668509029}function re(){if(!v){var e=on(),t=U[1+(e>>2)],r=U[2+(e>>2)];34821223==t&&2310721022==r||Ee("Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x2135467, but received 0x"+r.toString(16)+" "+t.toString(16)),1668509029!==j[0]&&Ee("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(){Ee("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)")}}),b(ee>=q,"INITIAL_MEMORY should be larger than TOTAL_STACK, was "+ee+"! (TOTAL_STACK="+q+")"),b("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"),b(!o.wasmMemory,"Use of `wasmMemory` detected. Use -s IMPORTED_MEMORY to define wasmMemory externally"),b(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;b(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),b(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),b(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),b(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 Ae=0,ce=null,ue=null,ge={};function de(e){for(var t=e;;){if(!ge[e])return e;e=t+Math.random()}}function le(e){Ae++,o.monitorRunDependencies&&o.monitorRunDependencies(Ae),e?(b(!ge[e]),ge[e]=1,null===ce&&"undefined"!=typeof setInterval&&(ce=setInterval((function(){if(v)return clearInterval(ce),void(ce=null);var e=!1;for(var t in ge)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 fe(e){if(Ae--,o.monitorRunDependencies&&o.monitorRunDependencies(Ae),e?(b(ge[e]),delete ge[e]):m("warning: run dependency removed without ID"),0==Ae&&(null!==ce&&(clearInterval(ce),ce=null),ue)){var t=ue;ue=null,t()}}function Ee(e){o.onAbort&&o.onAbort(e),m(e+=""),v=!0;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 Te(e)}();e=t;var r=new WebAssembly.RuntimeError(e);throw n(r),r}o.preloadedImages={},o.preloadedAudios={};var pe,he,Ie,me;function ye(e){return e.startsWith("data:application/octet-stream;base64,")}function Ce(e){return e.startsWith("file://")}function we(e,t){return function(){var r=e,n=t;return n=o.asm,b(se,"native function `"+r+"` called before runtime initialization"),b(!0,"native function `"+r+"` called after runtime exit (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),n[e]||b(n[e],"exported native function `"+r+"` not found"),n[e].apply(null,arguments)}}function _e(e){try{if(e==pe&&C)return new Uint8Array(C);if(p)return p(e);throw"both async and sync fetching of the wasm failed"}catch(e){Ee(e)}}ye(pe="selfie_segmentation_solution_wasm_bin.wasm")||(he=pe,pe=o.locateFile?o.locateFile(he,h):h+he);var Be,ve={460976:function(){var e=!0;if(e){var t=Br;if("function"!=typeof t)return void("undefined"!=typeof console&&console.error('Expected Emscripten global function "findCanvasEventTarget" not found. WebGL context creation may fail.'));Br=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 De(e,t){if(v)m("user callback triggered after application aborted. Ignoring.");else try{e()}catch(e){if(e instanceof hn)return;if("unwind"!==e)throw e&&"object"===E(e)&&e.stack&&m("exception thrown: "+[e,e.stack]),e}}function be(e,t){return setTimeout((function(){De(e)}),t)}Be=g?function(){var e=process.hrtime();return 1e3*e[0]+e[1]/1e6}:function(){return performance.now()};var Oe={mainLoop:{running:!1,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Oe.mainLoop.scheduler=null,Oe.mainLoop.currentlyRunningMainloop++},resume:function(){Oe.mainLoop.currentlyRunningMainloop++;var e=Oe.mainLoop.timingMode,t=Oe.mainLoop.timingValue,r=Oe.mainLoop.func;Oe.mainLoop.func=null,function(e,t,r,n){b(!Oe.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."),Oe.mainLoop.func=e,Oe.mainLoop.arg=n;var i=Oe.mainLoop.currentlyRunningMainloop;function a(){return!(i<Oe.mainLoop.currentlyRunningMainloop)}Oe.mainLoop.running=!1,Oe.mainLoop.runner=function(){if(!v)if(Oe.mainLoop.queue.length>0){var t=Date.now(),r=Oe.mainLoop.queue.shift();if(r.func(r.arg),Oe.mainLoop.remainingBlockers){var n=Oe.mainLoop.remainingBlockers,i=n%1==0?n-1:Math.floor(n);r.counted?Oe.mainLoop.remainingBlockers=i:(i+=.5,Oe.mainLoop.remainingBlockers=(8*n+i)/9)}if(I('main loop blocker "'+r.name+'" took '+(Date.now()-t)+" ms"),Oe.mainLoop.updateStatus(),!a())return;setTimeout(Oe.mainLoop.runner,0)}else a()&&(Oe.mainLoop.currentFrameNumber=Oe.mainLoop.currentFrameNumber+1|0,1==Oe.mainLoop.timingMode&&Oe.mainLoop.timingValue>1&&Oe.mainLoop.currentFrameNumber%Oe.mainLoop.timingValue!=0?Oe.mainLoop.scheduler():(0==Oe.mainLoop.timingMode&&(Oe.mainLoop.tickStartTime=Be()),yr.newRenderingFrameStarted(),void 0!==yr&&yr.currentContext&&!yr.currentContextIsProxied&&!yr.currentContext.attributes.explicitSwapControl&&yr.currentContext.GLctx.commit&&yr.currentContext.GLctx.commit(),"timeout"===Oe.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!"),Oe.mainLoop.method=""),Oe.mainLoop.runIter(e),re(),a()&&("object"===("undefined"==typeof SDL?"undefined":E(SDL))&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),Oe.mainLoop.scheduler())))}}(r,0,0,Oe.mainLoop.arg),function(e,t){if(Oe.mainLoop.timingMode=e,Oe.mainLoop.timingValue=t,!Oe.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(Oe.mainLoop.running||(Oe.mainLoop.running=!0),0==e)Oe.mainLoop.scheduler=function(){var e=0|Math.max(0,Oe.mainLoop.tickStartTime+t-Be());setTimeout(Oe.mainLoop.runner,e)},Oe.mainLoop.method="timeout";else if(1==e)Oe.mainLoop.scheduler=function(){Oe.requestAnimationFrame(Oe.mainLoop.runner)},Oe.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,"*")}}Oe.mainLoop.scheduler=function(){setImmediate(Oe.mainLoop.runner)},Oe.mainLoop.method="immediate"}}(e,t),Oe.mainLoop.scheduler()},updateStatus:function(){if(o.setStatus){var e=o.statusMessage||"Please wait...",t=Oe.mainLoop.remainingBlockers,r=Oe.mainLoop.expectedBlockers;t?t<r?o.setStatus(e+" ("+(r-t)+"/"+r+")"):o.setStatus(e):o.setStatus("")}},runIter:function(e){if(!v){if(o.preMainLoop)if(!1===o.preMainLoop())return;De(e),o.postMainLoop&&o.postMainLoop()}}},isFullscreen:!1,pointerLock:!1,moduleContextCreatedCallbacks:[],workers:[],init:function(){if(o.preloadPlugins||(o.preloadPlugins=[]),!Oe.initted){Oe.initted=!0;try{new Blob,Oe.hasBlobConstructor=!0}catch(e){Oe.hasBlobConstructor=!1,I("warning: no blob constructor, cannot create blobs with mimetypes")}Oe.BlobBuilder="undefined"!=typeof MozBlobBuilder?MozBlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:Oe.hasBlobConstructor?null:I("warning: no BlobBuilder"),Oe.URLObject="undefined"!=typeof window?window.URL?window.URL:window.webkitURL:void 0,o.noImageDecoding||void 0!==Oe.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(Oe.hasBlobConstructor)try{(i=new Blob([e],{type:Oe.getMimetype(t)})).size!==e.length&&(i=new Blob([new Uint8Array(e).buffer],{type:Oe.getMimetype(t)}))}catch(e){y("Blob constructor present but fails: "+e+"; falling back to blob builder")}if(!i){var a=new Oe.BlobBuilder;a.append(new Uint8Array(e).buffer),i=a.getBlob()}var s=Oe.URLObject.createObjectURL(i);b("string"==typeof s,"createObjectURL must return a url as a string");var A=new Image;A.onload=function(){b(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,Oe.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(!Oe.hasBlobConstructor)return s();try{var A=new Blob([e],{type:Oe.getMimetype(t)})}catch(e){return s()}var c=Oe.URLObject.createObjectURL(A);b("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,be((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){!Oe.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!==yr&&(a=yr.createContext(e,s))&&(i=yr.getContext(a).GLctx)}else i=e.getContext("2d");return i?(r&&(t||b(void 0===Vr,"cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),o.ctx=i,t&&yr.makeContextCurrent(a),o.useWebGL=t,Oe.moduleContextCreatedCallbacks.forEach((function(e){e()})),Oe.init()),i):null},destroyContext:function(e,t,r){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(e,t){Oe.lockPointer=e,Oe.resizeCanvas=t,void 0===Oe.lockPointer&&(Oe.lockPointer=!0),void 0===Oe.resizeCanvas&&(Oe.resizeCanvas=!1);var r=o.canvas;function n(){Oe.isFullscreen=!1;var e=r.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===e?(r.exitFullscreen=Oe.exitFullscreen,Oe.lockPointer&&r.requestPointerLock(),Oe.isFullscreen=!0,Oe.resizeCanvas?Oe.setFullscreenCanvasSize():Oe.updateCanvasDimensions(r)):(e.parentNode.insertBefore(r,e),e.parentNode.removeChild(e),Oe.resizeCanvas?Oe.setWindowedCanvasSize():Oe.updateCanvasDimensions(r)),o.onFullScreen&&o.onFullScreen(Oe.isFullscreen),o.onFullscreen&&o.onFullscreen(Oe.isFullscreen)}Oe.fullscreenHandlersInstalled||(Oe.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(){Ee("Module.requestFullScreen has been replaced by Module.requestFullscreen (without a capital S)")},exitFullscreen:function(){return!!Oe.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===Oe.nextRAF)Oe.nextRAF=t+1e3/60;else for(;t+2>=Oe.nextRAF;)Oe.nextRAF+=1e3/60;var r=Math.max(Oe.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,Oe.fakeRequestAnimationFrame)(e):requestAnimationFrame(e)})),safeSetTimeout:function(e){return be(e)},safeRequestAnimationFrame:function(e){return Oe.requestAnimationFrame((function(){De(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(Oe.pointerLock)"mousemove"!=e.type&&"mozMovementX"in e?Oe.mouseMovementX=Oe.mouseMovementY=0:(Oe.mouseMovementX=Oe.getMovementX(e),Oe.mouseMovementY=Oe.getMovementY(e)),"undefined"!=typeof SDL?(Oe.mouseX=SDL.mouseX+Oe.mouseMovementX,Oe.mouseY=SDL.mouseY+Oe.mouseMovementY):(Oe.mouseX+=Oe.mouseMovementX,Oe.mouseY+=Oe.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(b(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)Oe.lastTouches[s.identifier]=u,Oe.touches[s.identifier]=u;else if("touchend"===e.type||"touchmove"===e.type){var g=Oe.touches[s.identifier];g||(g=u),Oe.lastTouches[s.identifier]=g,Oe.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,Oe.mouseMovementX=d-Oe.mouseX,Oe.mouseMovementY=l-Oe.mouseY,Oe.mouseX=d,Oe.mouseY=l}},resizeListeners:[],updateResizeListeners:function(){var e=o.canvas;Oe.resizeListeners.forEach((function(t){t(e.width,e.height)}))},setCanvasSize:function(e,t,r){var n=o.canvas;Oe.updateCanvasDimensions(n,e,t),r||Oe.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if("undefined"!=typeof SDL){var e=U[SDL.screen>>2];e|=8388608,j[SDL.screen>>2]=e}Oe.updateCanvasDimensions(o.canvas),Oe.updateResizeListeners()},setWindowedCanvasSize:function(){if("undefined"!=typeof SDL){var e=U[SDL.screen>>2];e&=-8388609,j[SDL.screen>>2]=e}Oe.updateCanvasDimensions(o.canvas),Oe.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)}Oe.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 Qe(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(o)}}function Te(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 Pe(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,b(e>0),1===e}}function Me(e){this.free=function(){en(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(En(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 Pe(this.get_base_ptr())},void 0===e?(this.ptr=tn(8),this.set_adjusted_ptr(0)):this.ptr=e}var Re=[];var Se=0;function Fe(e){try{return en(new Pe(e).ptr)}catch(e){m("exception during cxa_free_exception: "+e)}}function ke(e){return j[rn()>>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 Ne(){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(){Ee("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 je={resolve:function(){for(var e="",t=!1,r=arguments.length-1;r>=-1&&!t;r--){var n=r>=0?arguments[r]:Xe.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=je.resolve(e).substr(1),t=je.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("/")}},Ue={ttys:[],init:function(){},shutdown:function(){},register:function(e,t){Ue.ttys[e]={input:[],output:[],ops:t},Xe.registerDevice(e,Ue.stream_ops)},stream_ops:{open:function(e){var t=Ue.ttys[e.node.rdev];if(!t)throw new Xe.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 Xe.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 Xe.ErrnoError(29)}if(void 0===s&&0===i)throw new Xe.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 Xe.ErrnoError(60);try{for(var i=0;i<n;i++)e.tty.ops.put_char(e.tty,t[r+i])}catch(e){throw new Xe.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=qr(t,!0)}return e.input.shift()},put_char:function(e,t){null===t||10===t?(I(Q(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(I(Q(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,t){null===t||10===t?(m(Q(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(m(Q(e.output,0)),e.output=[])}}};function Le(e){e=function(e,t){return b(t,"alignment argument is required"),Math.ceil(e/t)*t}(e,65536);var t=pn(65536,e);return t?(function(e,t){k.fill(0,e,e+t)}(t,e),t):0}var He={ops_table:null,mount:function(e){return He.createNode(null,"/",16895,0)},createNode:function(e,t,r,n){if(Xe.isBlkdev(r)||Xe.isFIFO(r))throw new Xe.ErrnoError(63);He.ops_table||(He.ops_table={dir:{node:{getattr:He.node_ops.getattr,setattr:He.node_ops.setattr,lookup:He.node_ops.lookup,mknod:He.node_ops.mknod,rename:He.node_ops.rename,unlink:He.node_ops.unlink,rmdir:He.node_ops.rmdir,readdir:He.node_ops.readdir,symlink:He.node_ops.symlink},stream:{llseek:He.stream_ops.llseek}},file:{node:{getattr:He.node_ops.getattr,setattr:He.node_ops.setattr},stream:{llseek:He.stream_ops.llseek,read:He.stream_ops.read,write:He.stream_ops.write,allocate:He.stream_ops.allocate,mmap:He.stream_ops.mmap,msync:He.stream_ops.msync}},link:{node:{getattr:He.node_ops.getattr,setattr:He.node_ops.setattr,readlink:He.node_ops.readlink},stream:{}},chrdev:{node:{getattr:He.node_ops.getattr,setattr:He.node_ops.setattr},stream:Xe.chrdev_stream_ops}});var o=Xe.createNode(e,t,r,n);return Xe.isDir(o.mode)?(o.node_ops=He.ops_table.dir.node,o.stream_ops=He.ops_table.dir.stream,o.contents={}):Xe.isFile(o.mode)?(o.node_ops=He.ops_table.file.node,o.stream_ops=He.ops_table.file.stream,o.usedBytes=0,o.contents=null):Xe.isLink(o.mode)?(o.node_ops=He.ops_table.link.node,o.stream_ops=He.ops_table.link.stream):Xe.isChrdev(o.mode)&&(o.node_ops=He.ops_table.chrdev.node,o.stream_ops=He.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=Xe.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,Xe.isDir(e.mode)?t.size=4096:Xe.isFile(e.mode)?t.size=e.usedBytes:Xe.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&&He.resizeFileStorage(e,t.size)},lookup:function(e,t){throw Xe.genericErrors[44]},mknod:function(e,t,r,n){return He.createNode(e,t,r,n)},rename:function(e,t,r){if(Xe.isDir(e.mode)){var n;try{n=Xe.lookupNode(t,r)}catch(e){}if(n)for(var o in n.contents)throw new Xe.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=Xe.lookupNode(e,t);for(var n in r.contents)throw new Xe.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=He.createNode(e,t,41471,0);return n.link=r,n},readlink:function(e){if(!Xe.isLink(e.mode))throw new Xe.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(b(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(b(!(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 b(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(He.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&&Xe.isFile(e.node.mode)&&(n+=e.node.usedBytes),n<0)throw new Xe.ErrnoError(28);return n},allocate:function(e,t,r){He.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 Xe.ErrnoError(28);if(!Xe.isFile(e.node.mode))throw new Xe.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=Le(r)))throw new Xe.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(!Xe.isFile(e.node.mode))throw new Xe.ErrnoError(43);return 2&o||He.stream_ops.write(e,t,0,n,r,!1),0}}};var Ge={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"},Ye={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},Xe={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=je.resolve(Xe.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 Xe.ErrnoError(32);for(var o=xe.normalizeArray(e.split("/").filter((function(e){return!!e})),!1),i=Xe.root,a="/",s=0;s<o.length;s++){var A=s===o.length-1;if(A&&t.parent)break;if(i=Xe.lookupNode(i,o[s]),a=xe.join2(a,o[s]),Xe.isMountpoint(i)&&(!A||A&&t.follow_mount)&&(i=i.mounted.root),!A||t.follow)for(var c=0;Xe.isLink(i.mode);){var u=Xe.readlink(a);if(a=je.resolve(xe.dirname(a),u),i=Xe.lookupPath(a,{recurse_count:t.recurse_count}).node,c++>40)throw new Xe.ErrnoError(32)}}return{path:a,node:i}},getPath:function(e){for(var t;;){if(Xe.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)%Xe.nameTable.length},hashAddNode:function(e){var t=Xe.hashName(e.parent.id,e.name);e.name_next=Xe.nameTable[t],Xe.nameTable[t]=e},hashRemoveNode:function(e){var t=Xe.hashName(e.parent.id,e.name);if(Xe.nameTable[t]===e)Xe.nameTable[t]=e.name_next;else for(var r=Xe.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=Xe.mayLookup(e);if(r)throw new Xe.ErrnoError(r,e);for(var n=Xe.hashName(e.id,t),o=Xe.nameTable[n];o;o=o.name_next){var i=o.name;if(o.parent.id===e.id&&i===t)return o}return Xe.lookup(e,t)},createNode:function(e,t,r,n){b("object"===E(e));var o=new Xe.FSNode(e,t,r,n);return Xe.hashAddNode(o),o},destroyNode:function(e){Xe.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=Xe.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 Xe.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=Xe.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate:function(e,t){try{Xe.lookupNode(e,t);return 20}catch(e){}return Xe.nodePermissions(e,"wx")},mayDelete:function(e,t,r){var n;try{n=Xe.lookupNode(e,t)}catch(e){return e.errno}var o=Xe.nodePermissions(e,"wx");if(o)return o;if(r){if(!Xe.isDir(n.mode))return 54;if(Xe.isRoot(n)||Xe.getPath(n)===Xe.cwd())return 10}else if(Xe.isDir(n.mode))return 31;return 0},mayOpen:function(e,t){return e?Xe.isLink(e.mode)?32:Xe.isDir(e.mode)&&("r"!==Xe.flagsToPermissionString(t)||512&t)?31:Xe.nodePermissions(e,Xe.flagsToPermissionString(t)):44},MAX_OPEN_FDS:4096,nextfd:function(e,t){e=e||0,t=t||Xe.MAX_OPEN_FDS;for(var r=e;r<=t;r++)if(!Xe.streams[r])return r;throw new Xe.ErrnoError(33)},getStream:function(e){return Xe.streams[e]},createStream:function(e,t,r){Xe.FSStream||(Xe.FSStream=function(){},Xe.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 Xe.FSStream;for(var o in e)n[o]=e[o];e=n;var i=Xe.nextfd(t,r);return e.fd=i,Xe.streams[i]=e,e},closeStream:function(e){Xe.streams[e]=null},chrdev_stream_ops:{open:function(e){var t=Xe.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:function(){throw new Xe.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){Xe.devices[e]={stream_ops:t}},getDevice:function(e){return Xe.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),Xe.syncFSRequests++,Xe.syncFSRequests>1&&m("warning: "+Xe.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var r=Xe.getMounts(Xe.root.mount),n=0;function o(e){return b(Xe.syncFSRequests>0),Xe.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&&Xe.root)throw new Xe.ErrnoError(10);if(!o&&!i){var a=Xe.lookupPath(r,{follow_mount:!1});if(r=a.path,n=a.node,Xe.isMountpoint(n))throw new Xe.ErrnoError(10);if(!Xe.isDir(n.mode))throw new Xe.ErrnoError(54)}var s={type:e,opts:t,mountpoint:r,mounts:[]},A=e.mount(s);return A.mount=s,s.root=A,o?Xe.root=A:n&&(n.mounted=s,n.mount&&n.mount.mounts.push(s)),A},unmount:function(e){var t=Xe.lookupPath(e,{follow_mount:!1});if(!Xe.isMountpoint(t.node))throw new Xe.ErrnoError(28);var r=t.node,n=r.mounted,o=Xe.getMounts(n);Object.keys(Xe.nameTable).forEach((function(e){for(var t=Xe.nameTable[e];t;){var r=t.name_next;o.includes(t.mount)&&Xe.destroyNode(t),t=r}})),r.mounted=null;var i=r.mount.mounts.indexOf(n);b(-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=Xe.lookupPath(e,{parent:!0}).node,o=xe.basename(e);if(!o||"."===o||".."===o)throw new Xe.ErrnoError(28);var i=Xe.mayCreate(n,o);if(i)throw new Xe.ErrnoError(i);if(!n.node_ops.mknod)throw new Xe.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,Xe.mknod(e,t,0)},mkdir:function(e,t){return t=void 0!==t?t:511,t&=1023,t|=16384,Xe.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{Xe.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,Xe.mknod(e,t,r)},symlink:function(e,t){if(!je.resolve(e))throw new Xe.ErrnoError(44);var r=Xe.lookupPath(t,{parent:!0}).node;if(!r)throw new Xe.ErrnoError(44);var n=xe.basename(t),o=Xe.mayCreate(r,n);if(o)throw new Xe.ErrnoError(o);if(!r.node_ops.symlink)throw new Xe.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=Xe.lookupPath(e,{parent:!0}).node,n=Xe.lookupPath(t,{parent:!0}).node,!r||!n)throw new Xe.ErrnoError(44);if(r.mount!==n.mount)throw new Xe.ErrnoError(75);var A,c=Xe.lookupNode(r,a),u=je.relative(e,i);if("."!==u.charAt(0))throw new Xe.ErrnoError(28);if("."!==(u=je.relative(t,o)).charAt(0))throw new Xe.ErrnoError(55);try{A=Xe.lookupNode(n,s)}catch(e){}if(c!==A){var g=Xe.isDir(c.mode),d=Xe.mayDelete(r,a,g);if(d)throw new Xe.ErrnoError(d);if(d=A?Xe.mayDelete(n,s,g):Xe.mayCreate(n,s))throw new Xe.ErrnoError(d);if(!r.node_ops.rename)throw new Xe.ErrnoError(63);if(Xe.isMountpoint(c)||A&&Xe.isMountpoint(A))throw new Xe.ErrnoError(10);if(n!==r&&(d=Xe.nodePermissions(r,"w")))throw new Xe.ErrnoError(d);try{Xe.trackingDelegate.willMovePath&&Xe.trackingDelegate.willMovePath(e,t)}catch(r){m("FS.trackingDelegate['willMovePath']('"+e+"', '"+t+"') threw an exception: "+r.message)}Xe.hashRemoveNode(c);try{r.node_ops.rename(c,n,s)}catch(e){throw e}finally{Xe.hashAddNode(c)}try{Xe.trackingDelegate.onMovePath&&Xe.trackingDelegate.onMovePath(e,t)}catch(r){m("FS.trackingDelegate['onMovePath']('"+e+"', '"+t+"') threw an exception: "+r.message)}}},rmdir:function(e){var t=Xe.lookupPath(e,{parent:!0}).node,r=xe.basename(e),n=Xe.lookupNode(t,r),o=Xe.mayDelete(t,r,!0);if(o)throw new Xe.ErrnoError(o);if(!t.node_ops.rmdir)throw new Xe.ErrnoError(63);if(Xe.isMountpoint(n))throw new Xe.ErrnoError(10);try{Xe.trackingDelegate.willDeletePath&&Xe.trackingDelegate.willDeletePath(e)}catch(t){m("FS.trackingDelegate['willDeletePath']('"+e+"') threw an exception: "+t.message)}t.node_ops.rmdir(t,r),Xe.destroyNode(n);try{Xe.trackingDelegate.onDeletePath&&Xe.trackingDelegate.onDeletePath(e)}catch(t){m("FS.trackingDelegate['onDeletePath']('"+e+"') threw an exception: "+t.message)}},readdir:function(e){var t=Xe.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new Xe.ErrnoError(54);return t.node_ops.readdir(t)},unlink:function(e){var t=Xe.lookupPath(e,{parent:!0}).node,r=xe.basename(e),n=Xe.lookupNode(t,r),o=Xe.mayDelete(t,r,!1);if(o)throw new Xe.ErrnoError(o);if(!t.node_ops.unlink)throw new Xe.ErrnoError(63);if(Xe.isMountpoint(n))throw new Xe.ErrnoError(10);try{Xe.trackingDelegate.willDeletePath&&Xe.trackingDelegate.willDeletePath(e)}catch(t){m("FS.trackingDelegate['willDeletePath']('"+e+"') threw an exception: "+t.message)}t.node_ops.unlink(t,r),Xe.destroyNode(n);try{Xe.trackingDelegate.onDeletePath&&Xe.trackingDelegate.onDeletePath(e)}catch(t){m("FS.trackingDelegate['onDeletePath']('"+e+"') threw an exception: "+t.message)}},readlink:function(e){var t=Xe.lookupPath(e).node;if(!t)throw new Xe.ErrnoError(44);if(!t.node_ops.readlink)throw new Xe.ErrnoError(28);return je.resolve(Xe.getPath(t.parent),t.node_ops.readlink(t))},stat:function(e,t){var r=Xe.lookupPath(e,{follow:!t}).node;if(!r)throw new Xe.ErrnoError(44);if(!r.node_ops.getattr)throw new Xe.ErrnoError(63);return r.node_ops.getattr(r)},lstat:function(e){return Xe.stat(e,!0)},chmod:function(e,t,r){var n;"string"==typeof e?n=Xe.lookupPath(e,{follow:!r}).node:n=e;if(!n.node_ops.setattr)throw new Xe.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&t|-4096&n.mode,timestamp:Date.now()})},lchmod:function(e,t){Xe.chmod(e,t,!0)},fchmod:function(e,t){var r=Xe.getStream(e);if(!r)throw new Xe.ErrnoError(8);Xe.chmod(r.node,t)},chown:function(e,t,r,n){var o;"string"==typeof e?o=Xe.lookupPath(e,{follow:!n}).node:o=e;if(!o.node_ops.setattr)throw new Xe.ErrnoError(63);o.node_ops.setattr(o,{timestamp:Date.now()})},lchown:function(e,t,r){Xe.chown(e,t,r,!0)},fchown:function(e,t,r){var n=Xe.getStream(e);if(!n)throw new Xe.ErrnoError(8);Xe.chown(n.node,t,r)},truncate:function(e,t){if(t<0)throw new Xe.ErrnoError(28);var r;"string"==typeof e?r=Xe.lookupPath(e,{follow:!0}).node:r=e;if(!r.node_ops.setattr)throw new Xe.ErrnoError(63);if(Xe.isDir(r.mode))throw new Xe.ErrnoError(31);if(!Xe.isFile(r.mode))throw new Xe.ErrnoError(28);var n=Xe.nodePermissions(r,"w");if(n)throw new Xe.ErrnoError(n);r.node_ops.setattr(r,{size:t,timestamp:Date.now()})},ftruncate:function(e,t){var r=Xe.getStream(e);if(!r)throw new Xe.ErrnoError(8);if(!(2097155&r.flags))throw new Xe.ErrnoError(28);Xe.truncate(r.node,t)},utime:function(e,t,r){var n=Xe.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 Xe.ErrnoError(44);var a;if(r=void 0===r?438:r,r=64&(t="string"==typeof t?Xe.modeStringToFlags(t):t)?4095&r|32768:0,"object"===E(e))a=e;else{e=xe.normalize(e);try{a=Xe.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var s=!1;if(64&t)if(a){if(128&t)throw new Xe.ErrnoError(20)}else a=Xe.mknod(e,r,0),s=!0;if(!a)throw new Xe.ErrnoError(44);if(Xe.isChrdev(a.mode)&&(t&=-513),65536&t&&!Xe.isDir(a.mode))throw new Xe.ErrnoError(54);if(!s){var A=Xe.mayOpen(a,t);if(A)throw new Xe.ErrnoError(A)}512&t&&Xe.truncate(a,0),t&=-131713;var c=Xe.createStream({node:a,path:Xe.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||(Xe.readFiles||(Xe.readFiles={}),e in Xe.readFiles||(Xe.readFiles[e]=1,m("FS.trackingDelegate error on read file: "+e)));try{if(Xe.trackingDelegate.onOpenFile){var u=0;1!=(2097155&t)&&(u|=Xe.tracking.openFlags.READ),2097155&t&&(u|=Xe.tracking.openFlags.WRITE),Xe.trackingDelegate.onOpenFile(e,u)}}catch(t){m("FS.trackingDelegate['onOpenFile']('"+e+"', flags) threw an exception: "+t.message)}return c},close:function(e){if(Xe.isClosed(e))throw new Xe.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{Xe.closeStream(e.fd)}e.fd=null},isClosed:function(e){return null===e.fd},llseek:function(e,t,r){if(Xe.isClosed(e))throw new Xe.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new Xe.ErrnoError(70);if(0!=r&&1!=r&&2!=r)throw new Xe.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 Xe.ErrnoError(28);if(Xe.isClosed(e))throw new Xe.ErrnoError(8);if(1==(2097155&e.flags))throw new Xe.ErrnoError(8);if(Xe.isDir(e.node.mode))throw new Xe.ErrnoError(31);if(!e.stream_ops.read)throw new Xe.ErrnoError(28);var i=void 0!==o;if(i){if(!e.seekable)throw new Xe.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 Xe.ErrnoError(28);if(Xe.isClosed(e))throw new Xe.ErrnoError(8);if(!(2097155&e.flags))throw new Xe.ErrnoError(8);if(Xe.isDir(e.node.mode))throw new Xe.ErrnoError(31);if(!e.stream_ops.write)throw new Xe.ErrnoError(28);e.seekable&&1024&e.flags&&Xe.llseek(e,0,2);var a=void 0!==o;if(a){if(!e.seekable)throw new Xe.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&&Xe.trackingDelegate.onWriteToFile&&Xe.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(Xe.isClosed(e))throw new Xe.ErrnoError(8);if(t<0||r<=0)throw new Xe.ErrnoError(28);if(!(2097155&e.flags))throw new Xe.ErrnoError(8);if(!Xe.isFile(e.node.mode)&&!Xe.isDir(e.node.mode))throw new Xe.ErrnoError(43);if(!e.stream_ops.allocate)throw new Xe.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 Xe.ErrnoError(2);if(1==(2097155&e.flags))throw new Xe.ErrnoError(2);if(!e.stream_ops.mmap)throw new Xe.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 Xe.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=Xe.open(e,t.flags),o=Xe.stat(e).size,i=new Uint8Array(o);return Xe.read(n,i,0,o,0),"utf8"===t.encoding?r=Q(i,0):"binary"===t.encoding&&(r=i),Xe.close(n),r},writeFile:function(e,t,r){(r=r||{}).flags=r.flags||577;var n=Xe.open(e,r.flags,r.mode);if("string"==typeof t){var o=new Uint8Array(R(t)+1),i=P(t,o,0,o.length);Xe.write(n,o,0,i,void 0,r.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");Xe.write(n,t,0,t.byteLength,void 0,r.canOwn)}Xe.close(n)},cwd:function(){return Xe.currentPath},chdir:function(e){var t=Xe.lookupPath(e,{follow:!0});if(null===t.node)throw new Xe.ErrnoError(44);if(!Xe.isDir(t.node.mode))throw new Xe.ErrnoError(54);var r=Xe.nodePermissions(t.node,"x");if(r)throw new Xe.ErrnoError(r);Xe.currentPath=t.path},createDefaultDirectories:function(){Xe.mkdir("/tmp"),Xe.mkdir("/home"),Xe.mkdir("/home/web_user")},createDefaultDevices:function(){Xe.mkdir("/dev"),Xe.registerDevice(Xe.makedev(1,3),{read:function(){return 0},write:function(e,t,r,n,o){return n}}),Xe.mkdev("/dev/null",Xe.makedev(1,3)),Ue.register(Xe.makedev(5,0),Ue.default_tty_ops),Ue.register(Xe.makedev(6,0),Ue.default_tty1_ops),Xe.mkdev("/dev/tty",Xe.makedev(5,0)),Xe.mkdev("/dev/tty1",Xe.makedev(6,0));var e=Ne();Xe.createDevice("/dev","random",e),Xe.createDevice("/dev","urandom",e),Xe.mkdir("/dev/shm"),Xe.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){Xe.mkdir("/proc");var e=Xe.mkdir("/proc/self");Xe.mkdir("/proc/self/fd"),Xe.mount({mount:function(){var t=Xe.createNode(e,"fd",16895,73);return t.node_ops={lookup:function(e,t){var r=+t,n=Xe.getStream(r);if(!n)throw new Xe.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?Xe.createDevice("/dev","stdin",o.stdin):Xe.symlink("/dev/tty","/dev/stdin"),o.stdout?Xe.createDevice("/dev","stdout",null,o.stdout):Xe.symlink("/dev/tty","/dev/stdout"),o.stderr?Xe.createDevice("/dev","stderr",null,o.stderr):Xe.symlink("/dev/tty1","/dev/stderr");var e=Xe.open("/dev/stdin",0),t=Xe.open("/dev/stdout",1),r=Xe.open("/dev/stderr",1);b(0===e.fd,"invalid handle for stdin ("+e.fd+")"),b(1===t.fd,"invalid handle for stdout ("+t.fd+")"),b(2===r.fd,"invalid handle for stderr ("+r.fd+")")},ensureErrnoError:function(){Xe.ErrnoError||(Xe.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){for(var t in this.errno=e,Ye)if(Ye[t]===e){this.code=t;break}},this.setErrno(e),this.message=Ge[e],this.stack&&(Object.defineProperty(this,"stack",{value:(new Error).stack,writable:!0}),this.stack=Te(this.stack))},Xe.ErrnoError.prototype=new Error,Xe.ErrnoError.prototype.constructor=Xe.ErrnoError,[44].forEach((function(e){Xe.genericErrors[e]=new Xe.ErrnoError(e),Xe.genericErrors[e].stack="<generic error, no stack>"})))},staticInit:function(){Xe.ensureErrnoError(),Xe.nameTable=new Array(4096),Xe.mount(He,{},"/"),Xe.createDefaultDirectories(),Xe.createDefaultDevices(),Xe.createSpecialDirectories(),Xe.filesystems={MEMFS:He}},init:function(e,t,r){b(!Xe.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)"),Xe.init.initialized=!0,Xe.ensureErrnoError(),o.stdin=e||o.stdin,o.stdout=t||o.stdout,o.stderr=r||o.stderr,Xe.createStandardStreams()},quit:function(){Xe.init.initialized=!1;var e=o._fflush;e&&e(0);for(var t=0;t<Xe.streams.length;t++){var r=Xe.streams[t];r&&Xe.close(r)}},getMode:function(e,t){var r=0;return e&&(r|=365),t&&(r|=146),r},findObject:function(e,t){var r=Xe.analyzePath(e,t);return r.exists?r.object:null},analyzePath:function(e,t){try{e=(n=Xe.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=Xe.lookupPath(e,{parent:!0});r.parentExists=!0,r.parentPath=n.path,r.parentObject=n.node,r.name=xe.basename(e),n=Xe.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:Xe.getPath(e);for(var o=t.split("/").reverse();o.length;){var i=o.pop();if(i){var a=xe.join2(e,i);try{Xe.mkdir(a)}catch(e){}e=a}}return a},createFile:function(e,t,r,n,o){var i=xe.join2("string"==typeof e?e:Xe.getPath(e),t),a=Xe.getMode(n,o);return Xe.create(i,a)},createDataFile:function(e,t,r,n,o,i){var a=t?xe.join2("string"==typeof e?e:Xe.getPath(e),t):e,s=Xe.getMode(n,o),A=Xe.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}Xe.chmod(A,146|s);var d=Xe.open(A,577);Xe.write(d,r,0,r.length,0,i),Xe.close(d),Xe.chmod(A,s)}return A},createDevice:function(e,t,r,n){var o=xe.join2("string"==typeof e?e:Xe.getPath(e),t),i=Xe.getMode(!!r,!!n);Xe.createDevice.major||(Xe.createDevice.major=64);var a=Xe.makedev(Xe.createDevice.major++,0);return Xe.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 Xe.ErrnoError(29)}if(void 0===A&&0===a)throw new Xe.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 Xe.ErrnoError(29)}return o&&(e.node.timestamp=Date.now()),a}}),Xe.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=qr(l(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new Xe.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||[]):qr(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=Xe.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 Xe.forceLoadFile(A),t.apply(null,arguments)}})),c.read=function(e,t,r,n,o){Xe.forceLoadFile(A);var i=e.node.contents;if(o>=i.length)return 0;var a=Math.min(i.length-o,n);if(b(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){Oe.init();var g=t?je.resolve(xe.join2(e,t)):e,d=de("cp "+g);function l(r){function l(r){u&&u(),A||Xe.createDataFile(e,t,r,n,i,c),a&&a(),fe(d)}var f=!1;o.preloadPlugins.forEach((function(e){f||e.canHandle(g)&&(e.handle(r,g,l,(function(){s&&s(),fe(d)})),f=!0)})),f||l(r)}le(d),"string"==typeof r?function(e,t,r){var n=de("al "+e);f(e,(function(r){b(r,'Loading data file "'+e+'" failed (no arrayBuffer).'),t(new Uint8Array(r)),n&&fe(n)}),(function(t){if(!r)throw'Loading data file "'+e+'" failed.';r()})),n&&le(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=Xe.indexedDB();try{var o=n.open(Xe.DB_NAME(),Xe.DB_VERSION)}catch(e){return r(e)}o.onupgradeneeded=function(){I("creating db"),o.result.createObjectStore(Xe.DB_STORE_NAME)},o.onsuccess=function(){var n=o.result.transaction([Xe.DB_STORE_NAME],"readwrite"),i=n.objectStore(Xe.DB_STORE_NAME),a=0,s=0,A=e.length;function c(){0==s?t():r()}e.forEach((function(e){var t=i.put(Xe.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=Xe.indexedDB();try{var o=n.open(Xe.DB_NAME(),Xe.DB_VERSION)}catch(e){return r(e)}o.onupgradeneeded=r,o.onsuccess=function(){var n=o.result;try{var i=n.transaction([Xe.DB_STORE_NAME],"readonly")}catch(e){return void r(e)}var a=i.objectStore(Xe.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(){Xe.analyzePath(e).exists&&Xe.unlink(e),Xe.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(){Ee("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder:function(){Ee("FS.createFolder has been removed; use FS.mkdir instead")},createLink:function(){Ee("FS.createLink has been removed; use FS.symlink instead")},joinPath:function(){Ee("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc:function(){Ee("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath:function(){Ee("FS.standardizePath has been removed; use PATH.normalize instead")}},We={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt:function(e,t,r){if("/"===t[0])return t;var n;if(-100===e)n=Xe.cwd();else{var o=Xe.getStream(e);if(!o)throw new Xe.ErrnoError(8);n=o.path}if(0==t.length){if(!r)throw new Xe.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(Xe.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,me=[n.size>>>0,(Ie=n.size,+Math.abs(Ie)>=1?Ie>0?(0|Math.min(+Math.floor(Ie/4294967296),4294967295))>>>0:~~+Math.ceil((Ie-+(~~Ie>>>0))/4294967296)>>>0:0)],j[r+40>>2]=me[0],j[r+44>>2]=me[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,me=[n.ino>>>0,(Ie=n.ino,+Math.abs(Ie)>=1?Ie>0?(0|Math.min(+Math.floor(Ie/4294967296),4294967295))>>>0:~~+Math.ceil((Ie-+(~~Ie>>>0))/4294967296)>>>0:0)],j[r+80>>2]=me[0],j[r+84>>2]=me[1],0},doMsync:function(e,t,r,n,o){var i=k.slice(e,e+r);Xe.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)),Xe.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 Xe.mknod(e,t,r),0},doReadlink:function(e,t,r){if(r<=0)return-28;var n=Xe.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=Xe.lookupPath(e,{follow:!0}).node))return-44;var n="";return 4&t&&(n+="r"),2&t&&(n+="w"),1&t&&(n+="x"),n&&Xe.nodePermissions(r,n)?-2:0},doDup:function(e,t,r){var n=Xe.getStream(r);return n&&Xe.close(n),Xe.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=Xe.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=Xe.write(e,F,a,s,n);if(A<0)return-1;o+=A}return o},varargs:void 0,get:function(){return b(null!=We.varargs),We.varargs+=4,j[We.varargs-4>>2]},getStr:function(e){return T(e)},getStreamFromFD:function(e){var t=Xe.getStream(e);if(!t)throw new Xe.ErrnoError(8);return t},get64:function(e,t){return b(e>=0?0===t:-1===t),e}};function Ve(e){if(void 0===e)return"_unknown";var t=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return t>=48&&t<=57?"_"+e:e}function ze(e,t){return e=Ve(e),new Function("body","return function "+e+'() {\n "use strict"; return body.apply(this, arguments);\n};\n')(t)}var Je=[],Ke=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function Ze(){for(var e=0,t=5;t<Ke.length;++t)void 0!==Ke[t]&&++e;return e}function qe(){for(var e=5;e<Ke.length;++e)if(void 0!==Ke[e])return Ke[e];return null}function $e(e){switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var t=Je.length?Je.pop():Ke.length;return Ke[t]={refcount:1,value:e},t}}function et(e,t){var r=ze(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 tt=void 0;var rt=void 0;function nt(e){for(var t="",r=e;k[r];)t+=rt[k[r++]];return t}function ot(){return Object.keys(ut).length}function it(){var e=[];for(var t in ut)ut.hasOwnProperty(t)&&e.push(ut[t]);return e}var at=[];function st(){for(;at.length;){var e=at.pop();e.$$.deleteScheduled=!1,e.delete()}}var At=void 0;function ct(e){At=e,at.length&&At&&At(st)}var ut={},gt=void 0;function dt(e){throw new gt(e)}function lt(e,t){for(void 0===t&&dt("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t}function ft(e){return e||dt("Cannot use deleted val. handle = "+e),Ke[e].value}var Et={};function pt(e){var t=nn(e),r=nt(t);return en(t),r}function ht(e,t){var r=Et[e];return void 0===r&&dt(t+" has unknown type "+pt(e)),r}function It(e){}var mt=!1;function yt(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 Ct(e){return"undefined"==typeof FinalizationGroup?(Ct=function(e){return e},e):(mt=new FinalizationGroup((function(e){for(var t=e.next();!t.done;t=e.next()){var r=t.value;r.ptr?yt(r):console.warn("object already deleted: "+r.ptr)}})),It=function(e){mt.unregister(e.$$)},(Ct=function(e){return mt.register(e,e.$$,e.$$),e})(e))}var wt={};function _t(e){for(;e.length;){var t=e.pop();e.pop()(t)}}function Bt(e){return this.fromWireType(U[e>>2])}var vt={},Dt={},bt=void 0;function Ot(e){throw new bt(e)}function Qt(e,t,r){function n(t){var n=r(t);n.length!==e.length&&Ot("Mismatched type converter count");for(var o=0;o<e.length;++o)Pt(e[o],n[o])}e.forEach((function(e){Dt[e]=t}));var o=new Array(t.length),i=[],a=0;t.forEach((function(e,t){Et.hasOwnProperty(e)?o[t]=Et[e]:(i.push(e),vt.hasOwnProperty(e)||(vt[e]=[]),vt[e].push((function(){o[t]=Et[e],++a===i.length&&n(o)})))})),0===i.length&&n(o)}function Tt(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 Pt(e,t,r){if(r=r||{},!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");var n=t.name;if(e||dt('type "'+n+'" must have a positive integer typeid pointer'),Et.hasOwnProperty(e)){if(r.ignoreDuplicateRegistrations)return;dt("Cannot register type '"+n+"' twice")}if(Et[e]=t,delete Dt[e],vt.hasOwnProperty(e)){var o=vt[e];delete vt[e],o.forEach((function(e){e()}))}}function Mt(e){if(!(this instanceof Nt))return!1;if(!(e instanceof Nt))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 Rt(e){dt(e.$$.ptrType.registeredClass.name+" instance already deleted")}function St(){if(this.$$.ptr||Rt(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e,t=Ct(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 Ft(){this.$$.ptr||Rt(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&dt("Object already scheduled for deletion"),It(this),yt(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function kt(){return!this.$$.ptr}function xt(){return this.$$.ptr||Rt(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&dt("Object already scheduled for deletion"),at.push(this),1===at.length&&At&&At(st),this.$$.deleteScheduled=!0,this}function Nt(){}var jt={};function Ut(e,t,r){if(void 0===e[t].overloadTable){var n=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||dt("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 Lt(e,t,r){o.hasOwnProperty(e)?((void 0===r||void 0!==o[e].overloadTable&&void 0!==o[e].overloadTable[r])&&dt("Cannot register public name '"+e+"' twice"),Ut(o,e,e),o.hasOwnProperty(r)&&dt("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 Ht(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 Gt(e,t,r){for(;t!==r;)t.upcast||dt("Expected null or instance of "+r.name+", got an instance of "+t.name),e=t.upcast(e),t=t.baseClass;return e}function Yt(e,t){if(null===t)return this.isReference&&dt("null is not a valid "+this.name),0;t.$$||dt('Cannot pass "'+ur(t)+'" as a '+this.name),t.$$.ptr||dt("Cannot pass deleted object as a pointer of type "+this.name);var r=t.$$.ptrType.registeredClass;return Gt(t.$$.ptr,r,this.registeredClass)}function Xt(e,t){var r;if(null===t)return this.isReference&&dt("null is not a valid "+this.name),this.isSmartPointer?(r=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,r),r):0;t.$$||dt('Cannot pass "'+ur(t)+'" as a '+this.name),t.$$.ptr||dt("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&t.$$.ptrType.isConst&&dt("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=Gt(t.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===t.$$.smartPtr&&dt("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?r=t.$$.smartPtr:dt("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,$e((function(){o.delete()}))),null!==e&&e.push(this.rawDestructor,r)}break;default:dt("Unsupporting sharing policy")}return r}function Wt(e,t){if(null===t)return this.isReference&&dt("null is not a valid "+this.name),0;t.$$||dt('Cannot pass "'+ur(t)+'" as a '+this.name),t.$$.ptr||dt("Cannot pass deleted object as a pointer of type "+this.name),t.$$.ptrType.isConst&&dt("Cannot convert argument of type "+t.$$.ptrType.name+" to parameter type "+this.name);var r=t.$$.ptrType.registeredClass;return Gt(t.$$.ptr,r,this.registeredClass)}function Vt(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e}function zt(e){this.rawDestructor&&this.rawDestructor(e)}function Jt(e){null!==e&&e.delete()}function Kt(e,t,r){if(t===r)return e;if(void 0===r.baseClass)return null;var n=Kt(e,t,r.baseClass);return null===n?null:r.downcast(n)}function Zt(e,t){return t.ptrType&&t.ptr||Ot("makeClassHandle requires ptr and ptrType"),!!t.smartPtrType!==!!t.smartPtr&&Ot("Both smartPtrType and smartPtr must be specified"),t.count={value:1},Ct(Object.create(e,{$$:{value:t}}))}function qt(e){var t=this.getPointee(e);if(!t)return this.destructor(e),null;var r=function(e,t){return t=lt(e,t),ut[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?Zt(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):Zt(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=Kt(t,this.registeredClass,i.registeredClass);return null===A?o.call(this):this.isSmartPointer?Zt(i.registeredClass.instancePrototype,{ptrType:i,ptr:A,smartPtrType:this,smartPtr:e}):Zt(i.registeredClass.instancePrototype,{ptrType:i,ptr:A})}function $t(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=Xt:n?(this.toWireType=Yt,this.destructorFunction=null):(this.toWireType=Wt,this.destructorFunction=null)}function er(e,t,r){o.hasOwnProperty(e)||Ot("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 tr(e,t,r){return e.includes("j")?function(e,t,r){b("dynCall_"+e in o,"bad function pointer type - no table for sig '"+e+"'"),r&&r.length?b(r.length===e.substring(1).replace(/j/g,"--").length):b(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):(b($.get(t),"missing table entry in dynCall: "+t),$.get(t).apply(null,r))}function rr(e,t){var r=(e=nt(e)).includes("j")?function(e,t){b(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 tr(e,t,r)}}(e,t):$.get(t);return"function"!=typeof r&&dt("unknown function pointer with signature "+e+": "+t),r}var nr=void 0;function or(e,t){var r=[],n={};throw t.forEach((function e(t){n[t]||Et[t]||(Dt[t]?Dt[t].forEach(e):(r.push(t),n[t]=!0))})),new nr(e+": "+r.map(pt).join([", "]))}function ir(e,t){if(!(e instanceof Function))throw new TypeError("new_ called with constructor type "+E(e)+" which is not a function");var r=ze(e.name||"unknownFunctionName",(function(){}));r.prototype=e.prototype;var n=new r,o=e.apply(n,t);return o instanceof Object?o:n}function ar(e,t,r,n,o){var i=t.length;i<2&&dt("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 "+Ve(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=[dt,n,o,_t,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),ir(Function,f).apply(null,E)}function sr(e,t){for(var r=[],n=0;n<e;n++)r.push(j[(t>>2)+n]);return r}function Ar(e,t,r){return e instanceof Object||dt(r+' with invalid "this": '+e),e instanceof t.registeredClass.constructor||dt(r+' incompatible with "this" of type '+e.constructor.name),e.$$.ptr||dt("cannot call emscripten binding method "+r+" on deleted object"),Gt(e.$$.ptr,e.$$.ptrType.registeredClass,t.registeredClass)}function cr(e){e>4&&0==--Ke[e].refcount&&(Ke[e]=void 0,Je.push(e))}function ur(e){if(null===e)return"null";var t=E(e);return"object"===t||"array"===t||"function"===t?e.toString():""+e}function gr(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: "+e)}}function dr(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: "+e)}}var lr={};var fr=[];var Er=[];function pr(e){try{return w.grow(e-S.byteLength+65535>>>16),Z(w.buffer),1}catch(t){m("emscripten_realloc_buffer: Attempted to grow heap from "+S.byteLength+" bytes to "+e+" bytes, but got error: "+t)}}function hr(e){Ee("Cannot use emscripten_generate_pc (needed by __builtin_return_address) without -s USE_OFFSET_CONVERTER")}var Ir={};function mr(e){e.forEach((function(e){var t=hr();t&&(Ir[t]=e)}))}var yr={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){yr.lastError||(yr.lastError=e)},getNewId:function(e){for(var t=yr.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=yr.log2ceilLookup(yr.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=yr.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=Vr.createBuffer(),t.GLctx.bindBuffer(34963,t.tempQuadIndexBuffer);for(var A=yr.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=yr.log2ceilLookup(e),r=yr.currentContext.tempVertexBuffers1[t],n=yr.currentContext.tempVertexBufferCounters1[t];yr.currentContext.tempVertexBufferCounters1[t]=yr.currentContext.tempVertexBufferCounters1[t]+1&yr.numTempVertexBuffersPerSize-1;var o=r[n];if(o)return o;var i=Vr.getParameter(34964);return r[n]=Vr.createBuffer(),Vr.bindBuffer(34962,r[n]),Vr.bufferData(34962,1<<t,35048),Vr.bindBuffer(34962,i),r[n]},getTempIndexBuffer:function(e){var t=yr.log2ceilLookup(e),r=yr.currentContext.tempIndexBuffers[t];if(r)return r;var n=Vr.getParameter(34965);return yr.currentContext.tempIndexBuffers[t]=Vr.createBuffer(),Vr.bindBuffer(34963,yr.currentContext.tempIndexBuffers[t]),Vr.bufferData(34963,1<<t,35048),Vr.bindBuffer(34963,n),yr.currentContext.tempIndexBuffers[t]},newRenderingFrameStarted:function(){if(yr.currentContext){var e=yr.currentContext.tempVertexBuffers1;yr.currentContext.tempVertexBuffers1=yr.currentContext.tempVertexBuffers2,yr.currentContext.tempVertexBuffers2=e,e=yr.currentContext.tempVertexBufferCounters1,yr.currentContext.tempVertexBufferCounters1=yr.currentContext.tempVertexBufferCounters2,yr.currentContext.tempVertexBufferCounters2=e;for(var t=yr.log2ceilLookup(yr.MAX_TEMP_BUFFER_SIZE),r=0;r<=t;++r)yr.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+=T(j[r+4*i>>2],a<0?void 0:a)}return o},calcBufLength:function(e,t,r,n){return r>0?n*r:e*yr.byteSizeByType[t-yr.byteSizeByTypeRoot]*n},usedTempBuffers:[],preDrawHandleClientVertexAttribBindings:function(e){yr.resetBufferBinding=!1;for(var t=0;t<yr.currentContext.maxVertexAttribs;++t){var r=yr.currentContext.clientBuffers[t];if(r.clientside&&r.enabled){yr.resetBufferBinding=!0;var n=yr.calcBufLength(r.size,r.type,r.stride,e),o=yr.getTempVertexBuffer(n);Vr.bindBuffer(34962,o),Vr.bufferSubData(34962,0,k.subarray(r.ptr,r.ptr+n)),r.vertexAttribPointerAdaptor.call(Vr,t,r.size,r.type,r.normalized,r.stride,0)}}},postDrawHandleClientVertexAttribBindings:function(){yr.resetBufferBinding&&Vr.bindBuffer(34962,yr.buffers[Vr.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?yr.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(),yr.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=yr.getNewId(yr.contexts),n={handle:r,attributes:t,version:t.majorVersion,GLctx:e};e.canvas&&(e.canvas.GLctxObject=n),yr.contexts[r]=n,(void 0===t.enableExtensionsByDefault||t.enableExtensionsByDefault)&&yr.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 yr.generateTempBuffers(!1,n),t.renderViaOffscreenBackBuffer&&yr.createOffscreenFramebuffer(n),r},makeContextCurrent:function(e){return yr.currentContext=yr.contexts[e],o.ctx=Vr=yr.currentContext&&yr.currentContext.GLctx,!(e&&!Vr)},getContext:function(e){return yr.contexts[e]},deleteContext:function(e){yr.currentContext===yr.contexts[e]&&(yr.currentContext=null),"object"===E(Cr)&&Cr.removeAllHandlersOnTarget(yr.contexts[e].GLctx.canvas),yr.contexts[e]&&yr.contexts[e].GLctx.canvas&&(yr.contexts[e].GLctx.canvas.GLctxObject=void 0),yr.contexts[e]=null},initExtensions:function(e){if(e||(e=yr.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)}))}}},Cr={inEventHandler:0,removeAllEventListeners:function(){for(var e=Cr.eventHandlers.length-1;e>=0;--e)Cr._removeHandler(e);Cr.eventHandlers=[],Cr.deferredCalls=[]},registerRemoveEventListeners:function(){Cr.removeEventListenersRegistered||(ie.push(Cr.removeAllEventListeners),Cr.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 Cr.deferredCalls){var i=Cr.deferredCalls[o];if(i.targetFunction==e&&n(i.argsList,r))return}Cr.deferredCalls.push({targetFunction:e,precedence:t,argsList:r}),Cr.deferredCalls.sort((function(e,t){return e.precedence<t.precedence}))},removeDeferredCalls:function(e){for(var t=0;t<Cr.deferredCalls.length;++t)Cr.deferredCalls[t].targetFunction==e&&(Cr.deferredCalls.splice(t,1),--t)},canPerformEventHandlerRequests:function(){return Cr.inEventHandler&&Cr.currentEventHandler.allowsDeferredCalls},runDeferredCalls:function(){if(Cr.canPerformEventHandlerRequests())for(var e=0;e<Cr.deferredCalls.length;++e){var t=Cr.deferredCalls[e];Cr.deferredCalls.splice(e,1),--e,t.targetFunction.apply(null,t.argsList)}},eventHandlers:[],removeAllHandlersOnTarget:function(e,t){for(var r=0;r<Cr.eventHandlers.length;++r)Cr.eventHandlers[r].target!=e||t&&t!=Cr.eventHandlers[r].eventTypeString||Cr._removeHandler(r--)},_removeHandler:function(e){var t=Cr.eventHandlers[e];t.target.removeEventListener(t.eventTypeString,t.eventListenerFunc,t.useCapture),Cr.eventHandlers.splice(e,1)},registerOrRemoveHandler:function(e){var t=function(t){++Cr.inEventHandler,Cr.currentEventHandler=e,Cr.runDeferredCalls(),e.handlerFunc(t),Cr.runDeferredCalls(),--Cr.inEventHandler};if(e.callbackfunc)e.eventListenerFunc=t,e.target.addEventListener(e.eventTypeString,t,e.useCapture),Cr.eventHandlers.push(e),Cr.registerRemoveEventListeners();else for(var r=0;r<Cr.eventHandlers.length;++r)Cr.eventHandlers[r].target==e.target&&Cr.eventHandlers[r].eventTypeString==e.eventTypeString&&Cr._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}},wr=["default","low-power","high-performance"],_r=[0,"undefined"!=typeof document?document:0,"undefined"!=typeof window?window:0];function Br(e){return"number"==typeof e&&(e=T(e)),e&&"#canvas"!==e?void 0!==yr&&yr.offscreenCanvases[e]?yr.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=_r[e]||T(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!==yr&&yr.offscreenCanvases.canvas?yr.offscreenCanvases.canvas:o.canvas}function vr(){return yr.currentContext?yr.currentContext.handle:0}function Dr(e){return yr.makeContextCurrent(e)?0:-5}o._emscripten_webgl_get_current_context=vr,o._emscripten_webgl_make_context_current=Dr;var br={};function Or(){if(!Or.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 br)void 0===br[t]?delete e[t]:e[t]=br[t];var r=[];for(var t in e)r.push(t+"="+e[t]);Or.strings=r}return Or.strings}var Qr=[];function Tr(e,t,r,n){for(var o=0;o<e;o++){var i=Vr[r](),a=i&&yr.getNewId(n);i?(i.name=a,n[a]=i):yr.recordError(1282),j[t+4*o>>2]=a}}function Pr(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&&y("writeI53ToI64() out of range: serialized JS Number "+t+" to Wasm heap as bytes lo=0x"+U[e>>2].toString(16)+", hi=0x"+U[e+4>>2].toString(16)+", which deserializes back to "+r+" instead!")}function Mr(e){var t=R(e)+1,r=tn(t);return M(e,r,t),r}function Rr(e){return"]"==e.slice(-1)&&e.lastIndexOf("[")}function Sr(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 Fr(e){return 31-Math.clz32(e.BYTES_PER_ELEMENT)}function kr(e,t,r,n,o,i){var a=Sr(e),s=Fr(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,yr.unpackAlignment);return a.subarray(o>>s,o+u>>s)}function xr(e){var t=Vr.currentProgram;if(t){var r=t.uniformLocsById[e];return"number"==typeof r&&(t.uniformLocsById[e]=r=Vr.getUniformLocation(t,t.uniformArrayNamesById[e]+(r>0?"["+r+"]":""))),r}yr.recordError(1282)}var Nr=[];var jr=[];function Ur(){if(!Ur.called){Ur.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[An()>>2]=60*i,j[sn()>>2]=Number(n!=o);var a=u(t),s=u(r),A=K(a),c=K(s);o<n?(j[an()>>2]=A,j[an()+4>>2]=c):(j[an()>>2]=c,j[an()+4>>2]=A)}function u(e){var t=e.toTimeString().match(/\(([A-Za-z ]+)\)$/);return t?t[1]:"GMT"}}function Lr(e){return e%4==0&&(e%100!=0||e%400==0)}function Hr(e,t){for(var r=0,n=0;n<=t;r+=e[n++]);return r}var Gr=[31,29,31,30,31,30,31,31,30,31,30,31],Yr=[31,28,31,30,31,30,31,31,30,31,30,31];function Xr(e,t){for(var r=new Date(e.getTime());t>0;){var n=Lr(r.getFullYear()),o=r.getMonth(),i=(n?Gr:Yr)[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 Wr(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?T(o):""},a=T(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=Xr(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+Hr(Lr(e.tm_year+1900)?Gr:Yr,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:Xr(t,7-t.getDay()),n=new Date(e.tm_year+1900,e.tm_mon,e.tm_mday);if(l(r,n)<0){var o=Hr(Lr(n.getFullYear())?Gr:Yr,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=Xr(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:Xr(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=Hr(Lr(n.getFullYear())?Gr:Yr,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=qr(a,!1);return m.length>t?0:(I=e,b((h=m).length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),F.set(h,I),m.length-1)}o.requestFullscreen=function(e,t){Oe.requestFullscreen(e,t)},o.requestFullScreen=function(){Oe.requestFullScreen()},o.requestAnimationFrame=function(e){Oe.requestAnimationFrame(e)},o.setCanvasSize=function(e,t,r){Oe.setCanvasSize(e,t,r)},o.pauseMainLoop=function(){Oe.mainLoop.pause()},o.resumeMainLoop=function(){Oe.mainLoop.resume()},o.getUserMedia=function(){Oe.getUserMedia()},o.createContext=function(e,t,r,n){return Oe.createContext(e,t,r,n)};var Vr,zr=function(e,t,r,n){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=Xe.nextInode++,this.name=t,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=n};Object.defineProperties(zr.prototype,{read:{get:function(){return!(365&~this.mode)},set:function(e){e?this.mode|=365:this.mode&=-366}},write:{get:function(){return!(146&~this.mode)},set:function(e){e?this.mode|=146:this.mode&=-147}},isFolder:{get:function(){return Xe.isDir(this.mode)}},isDevice:{get:function(){return Xe.isChrdev(this.mode)}}}),Xe.FSNode=zr,Xe.staticInit(),o.FS_createPath=Xe.createPath,o.FS_createDataFile=Xe.createDataFile,o.FS_createPreloadedFile=Xe.createPreloadedFile,o.FS_createLazyFile=Xe.createLazyFile,o.FS_createDevice=Xe.createDevice,o.FS_unlink=Xe.unlink,o.count_emval_handles=Ze,o.get_first_emval=qe,tt=o.PureVirtualError=et(Error,"PureVirtualError"),function(){for(var e=new Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);rt=e}(),o.getInheritedInstanceCount=ot,o.getLiveInheritedInstances=it,o.flushPendingDeletes=st,o.setDelayFunction=ct,gt=o.BindingError=et(Error,"BindingError"),bt=o.InternalError=et(Error,"InternalError"),Nt.prototype.isAliasOf=Mt,Nt.prototype.clone=St,Nt.prototype.delete=Ft,Nt.prototype.isDeleted=kt,Nt.prototype.deleteLater=xt,$t.prototype.getPointee=Vt,$t.prototype.destructor=zt,$t.prototype.argPackAdvance=8,$t.prototype.readValueFromPointer=Bt,$t.prototype.deleteObject=Jt,$t.prototype.fromWireType=qt,nr=o.UnboundTypeError=et(Error,"UnboundTypeError");for(var Jr=0;Jr<32;++Jr)Qr.push(new Array(Jr));var Kr=new Float32Array(288);for(Jr=0;Jr<288;++Jr)Nr[Jr]=Kr.subarray(0,Jr+1);var Zr=new Int32Array(288);for(Jr=0;Jr<288;++Jr)jr[Jr]=Zr.subarray(0,Jr+1);function qr(e,t,r){var n=R(e)+1,o=new Array(n),i=P(e,o,0,o.length);return t&&(o.length=i),o}var $r={HaveOffsetConverter:function(){return"undefined"!=typeof wasmOffsetConverter},__cxa_allocate_exception:function(e){return tn(e+16)+16},__cxa_atexit:function(e,t){},__cxa_begin_catch:function(e){var t=new Me(e),r=t.get_exception_info();return r.get_caught()||r.set_caught(!0),r.set_rethrown(!1),Re.push(t),function(e){e.add_ref()}(r),t.get_exception_ptr()},__cxa_end_catch:function(){ln(0),b(Re.length>0);var e=Re.pop();!function(e){if(e.release_ref()&&!e.get_rethrown()){var t=e.get_destructor();t&&$.get(t)(e.excPtr),Fe(e.excPtr)}}(e.get_exception_info()),e.free(),Se=0},__cxa_find_matching_catch_2:function(){var e=Se;if(!e)return B(0),0;var t=new Pe(e).get_type(),r=new Me;if(r.set_base_ptr(e),r.set_adjusted_ptr(e),!t)return B(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(fn(i,t,r.get_adjusted_ptr_addr()))return B(i),0|r.ptr}return B(t),0|r.ptr},__cxa_find_matching_catch_3:function(){var e=Se;if(!e)return B(0),0;var t=new Pe(e).get_type(),r=new Me;if(r.set_base_ptr(e),r.set_adjusted_ptr(e),!t)return B(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(fn(i,t,r.get_adjusted_ptr_addr()))return B(i),0|r.ptr}return B(t),0|r.ptr},__cxa_free_exception:Fe,__cxa_rethrow:function(){var e=Re.pop();e||Ee("no exception to throw");var t=e.get_exception_info(),r=e.get_base_ptr();throw t.get_rethrown()?e.free():(Re.push(e),t.set_rethrown(!0),t.set_caught(!1)),Se=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 Pe(e).init(t,r),Se=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 Me(e),r=t.get_base_ptr();throw Se||(Se=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){We.varargs=r;try{var n=We.getStreamFromFD(e);switch(t){case 0:return(o=We.get())<0?-28:Xe.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=We.get();return n.flags|=o,0;case 12:o=We.get();return x[o+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return ke(28),-1}}catch(e){return void 0!==Xe&&e instanceof Xe.ErrnoError||Ee(e),-e.errno}},__sys_ioctl:function(e,t,r){We.varargs=r;try{var n=We.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=We.get();return j[o>>2]=0,0;case 21520:return n.tty?-28:-59;case 21531:o=We.get();return Xe.ioctl(n,t,o);default:Ee("bad ioctl syscall "+t)}}catch(e){return void 0!==Xe&&e instanceof Xe.ErrnoError||Ee(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=Le(t)))return-48;s=!0}else{var A=Xe.getStream(o);if(!A)return-8;var c=Xe.mmap(A,e,t,i,r,n);a=c.ptr,s=c.allocated}return We.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!==Xe&&e instanceof Xe.ErrnoError||Ee(e),-e.errno}},__sys_open:function(e,t,r){We.varargs=r;try{var n=We.getStr(e),o=r?We.get():0;return Xe.open(n,t,o).fd}catch(e){return void 0!==Xe&&e instanceof Xe.ErrnoError||Ee(e),-e.errno}},__sys_stat64:function(e,t){try{return e=We.getStr(e),We.doStat(Xe.stat,e,t)}catch(e){return void 0!==Xe&&e instanceof Xe.ErrnoError||Ee(e),-e.errno}},_embind_create_inheriting_constructor:function(e,t,r){e=nt(e),t=ht(t,"wrapper"),r=ft(r);var n=[].slice,o=t.registeredClass,i=o.instancePrototype,a=o.baseClass.instancePrototype,s=o.baseClass.constructor,A=ze(e,(function(){o.baseClass.pureVirtualFunctions.forEach(function(e){if(this[e]===a[e])throw new tt("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&&dt("Pass correct 'this' to __construct");var e=s.implement.apply(void 0,[this].concat(n.call(arguments)));It(e);var t,r,a,A=e.$$;e.notifyOnDestruction(),A.preservePointerOnDelete=!0,Object.defineProperties(this,{$$:{value:A}}),Ct(this),t=o,r=A.ptr,a=this,r=lt(t,r),ut.hasOwnProperty(r)?dt("Tried to register registered instance: "+r):ut[r]=a},i.__destruct=function(){var e,t;this===i&&dt("Pass correct 'this' to __destruct"),It(this),e=o,t=this.$$.ptr,t=lt(e,t),ut.hasOwnProperty(t)?delete ut[t]:dt("Tried to unregister unregistered instance: "+t)},A.prototype=Object.create(i),r)A.prototype[c]=r[c];return $e(A)},_embind_finalize_value_object:function(e){var t=wt[e];delete wt[e];var r=t.rawConstructor,n=t.rawDestructor,o=t.fields;Qt([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)),_t(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:Bt,destructorFunction:n}]}))},_embind_register_bigint:function(e,t,r,n,o){},_embind_register_bool:function(e,t,r,n,o){var i=Tt(r);Pt(e,{name:t=nt(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: "+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=nt(u),i=rr(o,i),s&&(s=rr(a,s)),c&&(c=rr(A,c)),d=rr(g,d);var l=Ve(u);Lt(l,(function(){or("Cannot construct "+u+" due to unbound types",[n])})),Qt([e,t,r],n?[n]:[],(function(t){var r,o;t=t[0],o=n?(r=t.registeredClass).instancePrototype:Nt.prototype;var a=ze(l,(function(){if(Object.getPrototypeOf(this)!==A)throw new gt("Use 'new' to construct "+u);if(void 0===g.constructor_body)throw new gt(u+" has no accessible constructor");var e=g.constructor_body[arguments.length];if(void 0===e)throw new gt("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 Ht(u,a,A,d,r,i,s,c),f=new $t(u,g,!0,!1,!1),E=new $t(u+"*",g,!1,!1,!1),p=new $t(u+" const*",g,!1,!0,!1);return jt[e]={pointerType:E,constPointerType:p},er(l,a),[f,E,p]}))},_embind_register_class_class_function:function(e,t,r,n,o,i,a){var s=sr(r,n);t=nt(t),i=rr(o,i),Qt([],[e],(function(e){var n=(e=e[0]).name+"."+t;function o(){or("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):(Ut(A,t,n),A[t].overloadTable[r-1]=o),Qt([],s,(function(e){var o=[e[0],null].concat(e.slice(1)),s=ar(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){b(t>0);var a=sr(t,r);o=rr(n,o),Qt([],[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 gt("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(){or("Cannot construct "+e.name+" due to unbound types",a)},Qt([],a,(function(n){return n.splice(1,0,null),e.registeredClass.constructor_body[t-1]=ar(r,n,null,o,i),[]})),[]}))},_embind_register_class_function:function(e,t,r,n,o,i,a,s){var A=sr(r,n);t=nt(t),i=rr(o,i),Qt([],[e],(function(e){var n=(e=e[0]).name+"."+t;function o(){or("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):(Ut(c,t,n),c[t].overloadTable[r-2]=o),Qt([],A,(function(o){var s=ar(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=nt(t),o=rr(n,o),Qt([],[e],(function(e){var n=(e=e[0]).name+"."+t,u={get:function(){or("Cannot access "+n+" due to unbound types",[r,a])},enumerable:!0,configurable:!0};return u.set=A?function(){or("Cannot access "+n+" due to unbound types",[r,a])}:function(e){dt(n+" is a read-only property")},Object.defineProperty(e.registeredClass.instancePrototype,t,u),Qt([],A?[r,a]:[r],(function(r){var a=r[0],u={get:function(){var t=Ar(this,e,n+" getter");return a.fromWireType(o(i,t))},enumerable:!0};if(A){A=rr(s,A);var g=r[1];u.set=function(t){var r=Ar(this,e,n+" setter"),o=[];A(c,r,g.toWireType(o,t)),_t(o)}}return Object.defineProperty(e.registeredClass.instancePrototype,t,u),[]})),[]}))},_embind_register_emval:function(e,t){Pt(e,{name:t=nt(t),fromWireType:function(e){var t=Ke[e].value;return cr(e),t},toWireType:function(e,t){return $e(t)},argPackAdvance:8,readValueFromPointer:Bt,destructorFunction:null})},_embind_register_float:function(e,t,r){var n=Tt(r);Pt(e,{name:t=nt(t),fromWireType:function(e){return e},toWireType:function(e,t){if("number"!=typeof t&&"boolean"!=typeof t)throw new TypeError('Cannot convert "'+ur(t)+'" to '+this.name);return t},argPackAdvance:8,readValueFromPointer:gr(t,n),destructorFunction:null})},_embind_register_function:function(e,t,r,n,o,i){var a=sr(t,r);e=nt(e),o=rr(n,o),Lt(e,(function(){or("Cannot call "+e+" due to unbound types",a)}),t-1),Qt([],a,(function(r){var n=[r[0],null].concat(r.slice(1));return er(e,ar(e,n,null,o,i),t-1),[]}))},_embind_register_integer:function(e,t,r,n,o){t=nt(t),-1===o&&(o=4294967295);var i=Tt(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");Pt(e,{name:t,fromWireType:a,toWireType:function(e,r){if("number"!=typeof r&&"boolean"!=typeof r)throw new TypeError('Cannot convert "'+ur(r)+'" to '+this.name);if(r<n||r>o)throw new TypeError('Passing a number "'+ur(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:dr(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)}Pt(e,{name:r=nt(r),fromWireType:o,argPackAdvance:8,readValueFromPointer:o},{ignoreDuplicateRegistrations:!0})},_embind_register_std_string:function(e,t){var r="std::string"===(t=nt(t));Pt(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=T(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 en(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||dt("Cannot pass non-string to std::string");var o=(r&&n?function(){return R(t)}:function(){return t.length})(),i=tn(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&&(en(i),dt("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(en,i),i},argPackAdvance:8,readValueFromPointer:Bt,destructorFunction:function(e){en(e)}})},_embind_register_std_wstring:function(e,t,r){var n,o,i,a,s;r=nt(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),Pt(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 en(e),r},toWireType:function(e,n){"string"!=typeof n&&dt("Cannot pass non-string to C++ string type "+r);var i=a(n),A=tn(4+i+t);return U[A>>2]=i>>s,o(n,A+4,i+t),null!==e&&e.push(en,A),A},argPackAdvance:8,readValueFromPointer:Bt,destructorFunction:function(e){en(e)}})},_embind_register_value_object:function(e,t,r,n,o,i){wt[e]={name:nt(t),rawConstructor:rr(r,n),rawDestructor:rr(o,i),fields:[]}},_embind_register_value_object_field:function(e,t,r,n,o,i,a,s,A,c){wt[e].fields.push({fieldName:nt(t),getterReturnType:r,getter:rr(n,o),getterContext:i,setterArgumentType:a,setter:rr(s,A),setterContext:c})},_embind_register_void:function(e,t){Pt(e,{isVoid:!0,name:t=nt(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(e,t){}})},_emval_call_void_method:function(e,t,r,n){var o,i;(e=fr[e])(t=ft(t),r=void 0===(i=lr[o=r])?nt(o):i,null,n)},_emval_decref:cr,_emval_get_method_caller:function(e,t){for(var r=function(e,t){for(var r=new Array(e),n=0;n<e;++n)r[n]=ht(j[(t>>2)+n],"parameter "+n);return r}(e,t),n=r[0],o=n.name+"_$"+r.slice(1).map((function(e){return e.name})).join("_")+"$",i=["retType"],a=[n],s="",A=0;A<e-1;++A)s+=(0!==A?", ":"")+"arg"+A,i.push("argType"+A),a.push(r[1+A]);var c="return function "+Ve("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=ir(Function,i).apply(null,a);return g=l,d=fr.length,fr.push(g),d},_emval_incref:function(e){e>4&&(Ke[e].refcount+=1)},_emval_take_value:function(e,t){return $e((e=ht(e,"_emval_take_value")).readValueFromPointer(t))},abort:function(){Ee()},clock_gettime:function(e,t){var r;if(0===e)r=Date.now();else{if(1!==e&&4!==e)return ke(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){Ee("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")},dlsym:function(e,t){Ee("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(b(Array.isArray(Er)),b(t%16==0),Er.length=0,t>>=2;r=k[e++];){b(100===r||102===r||105===r);var n=r<105;n&&1&t&&t++,Er.push(n?H[t++>>1]:j[t]),++t}return Er}(t,r);return ve.hasOwnProperty(e)||Ee("No EM_ASM constant found at address "+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){Ee("Cannot use emscripten_pc_get_function without -s USE_OFFSET_CONVERTER")},emscripten_resize_heap:function(e){var t=k.length;b((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(pr(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(),mr(e),Ir.last_addr=hr(e[2]),Ir.last_stack=e,Ir.last_addr},emscripten_stack_unwind_buffer:function(e,t,r){var n;Ir.last_addr==e?n=Ir.last_stack:("Error"==(n=(new Error).stack.split("\n"))[0]&&n.shift(),mr(n));for(var o=2;n[o]&&hr(n[o])!=e;)++o;for(var i=0;i<r&&n[i+o];++i)j[t+4*i>>2]=hr(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){b(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:wr[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=Br(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(!yr.offscreenCanvases[i.id])return 0}else yr.offscreenCanvases[i.id]={canvas:i.transferControlToOffscreen(),canvasSharedPtr:tn(12),id:i.id},i.controlTransferredOffscreen=!0;i=yr.offscreenCanvases[i.id]}return yr.createContext(i,o)}(e,t)},emscripten_webgl_destroy_context:function(e){yr.currentContext==e&&(yr.currentContext=0),yr.deleteContext(e)},emscripten_webgl_get_context_attributes:function(e,t){if(!t)return-5;if(!(e=yr.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&&wr.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:vr,emscripten_webgl_init_context_attributes:function(e){b(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:Dr,environ_get:function(e,t){var r=0;return Or().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)b(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=Or();j[e>>2]=r.length;var n=0;return r.forEach((function(e){n+=e.length+1})),j[t>>2]=n,0},exit:function(e){!function(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=Xe.analyzePath("/dev/"+e);if(t){var n=t.object.rdev,o=Ue.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.")}();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),mn(e)}(e)},fd_close:function(e){try{var t=We.getStreamFromFD(e);return Xe.close(t),0}catch(e){return void 0!==Xe&&e instanceof Xe.ErrnoError||Ee(e),e.errno}},fd_read:function(e,t,r,n){try{var o=We.getStreamFromFD(e),i=We.doReadv(o,t,r);return j[n>>2]=i,0}catch(e){return void 0!==Xe&&e instanceof Xe.ErrnoError||Ee(e),e.errno}},fd_seek:function(e,t,r,n,o){try{var i=We.getStreamFromFD(e),a=4294967296*r+(t>>>0),s=9007199254740992;return a<=-s||a>=s?-61:(Xe.llseek(i,a,n),me=[i.position>>>0,(Ie=i.position,+Math.abs(Ie)>=1?Ie>0?(0|Math.min(+Math.floor(Ie/4294967296),4294967295))>>>0:~~+Math.ceil((Ie-+(~~Ie>>>0))/4294967296)>>>0:0)],j[o>>2]=me[0],j[o+4>>2]=me[1],i.getdents&&0===a&&0===n&&(i.getdents=null),0)}catch(e){return void 0!==Xe&&e instanceof Xe.ErrnoError||Ee(e),e.errno}},fd_write:function(e,t,r,n){try{var o=We.getStreamFromFD(e),i=We.doWritev(o,t,r);return j[n>>2]=i,0}catch(e){return void 0!==Xe&&e instanceof Xe.ErrnoError||Ee(e),e.errno}},getTempRet0:function(){return _},getentropy:function e(t,r){e.randomDevice||(e.randomDevice=Ne());for(var n=0;n<r;n++)F[t+n|0]=e.randomDevice();return 0},glActiveTexture:function(e){Vr.activeTexture(e)},glAttachShader:function(e,t){Vr.attachShader(yr.programs[e],yr.shaders[t])},glBindAttribLocation:function(e,t,r){Vr.bindAttribLocation(yr.programs[e],t,T(r))},glBindBuffer:function(e,t){34962==e?Vr.currentArrayBufferBinding=t:34963==e&&(Vr.currentElementArrayBufferBinding=t),35051==e?Vr.currentPixelPackBufferBinding=t:35052==e&&(Vr.currentPixelUnpackBufferBinding=t),Vr.bindBuffer(e,yr.buffers[t])},glBindBufferBase:function(e,t,r){Vr.bindBufferBase(e,t,yr.buffers[r])},glBindFramebuffer:function(e,t){Vr.bindFramebuffer(e,t?yr.framebuffers[t]:yr.currentContext.defaultFbo)},glBindTexture:function(e,t){Vr.bindTexture(e,yr.textures[t])},glBindVertexArray:function(e){Vr.bindVertexArray(yr.vaos[e]);var t=Vr.getParameter(34965);Vr.currentElementArrayBufferBinding=t?0|t.name:0},glBufferData:function(e,t,r,n){yr.currentContext.version>=2?r?Vr.bufferData(e,k,n,r,t):Vr.bufferData(e,t,n):Vr.bufferData(e,r?k.subarray(r,r+t):t,n)},glClientWaitSync:function(e,t,r,n){return Vr.clientWaitSync(yr.syncs[e],t,(o=r,b((i=n)===(0|i)),(o>>>0)+4294967296*i));var o,i},glCompileShader:function(e){Vr.compileShader(yr.shaders[e])},glCreateProgram:function(){var e=yr.getNewId(yr.programs),t=Vr.createProgram();return t.name=e,t.maxUniformLength=t.maxAttributeLength=t.maxUniformBlockNameLength=0,t.uniformIdCounter=1,yr.programs[e]=t,e},glCreateShader:function(e){var t=yr.getNewId(yr.shaders);return yr.shaders[t]=Vr.createShader(e),t},glDeleteBuffers:function(e,t){for(var r=0;r<e;r++){var n=j[t+4*r>>2],o=yr.buffers[n];o&&(Vr.deleteBuffer(o),o.name=0,yr.buffers[n]=null,n==Vr.currentArrayBufferBinding&&(Vr.currentArrayBufferBinding=0),n==Vr.currentElementArrayBufferBinding&&(Vr.currentElementArrayBufferBinding=0),n==Vr.currentPixelPackBufferBinding&&(Vr.currentPixelPackBufferBinding=0),n==Vr.currentPixelUnpackBufferBinding&&(Vr.currentPixelUnpackBufferBinding=0))}},glDeleteFramebuffers:function(e,t){for(var r=0;r<e;++r){var n=j[t+4*r>>2],o=yr.framebuffers[n];o&&(Vr.deleteFramebuffer(o),o.name=0,yr.framebuffers[n]=null)}},glDeleteProgram:function(e){if(e){var t=yr.programs[e];t?(Vr.deleteProgram(t),t.name=0,yr.programs[e]=null):yr.recordError(1281)}},glDeleteShader:function(e){if(e){var t=yr.shaders[e];t?(Vr.deleteShader(t),yr.shaders[e]=null):yr.recordError(1281)}},glDeleteSync:function(e){if(e){var t=yr.syncs[e];t?(Vr.deleteSync(t),t.name=0,yr.syncs[e]=null):yr.recordError(1281)}},glDeleteTextures:function(e,t){for(var r=0;r<e;r++){var n=j[t+4*r>>2],o=yr.textures[n];o&&(Vr.deleteTexture(o),o.name=0,yr.textures[n]=null)}},glDeleteVertexArrays:function(e,t){for(var r=0;r<e;r++){var n=j[t+4*r>>2];Vr.deleteVertexArray(yr.vaos[n]),yr.vaos[n]=null}},glDisable:function(e){Vr.disable(e)},glDisableVertexAttribArray:function(e){yr.currentContext.clientBuffers[e].enabled=!1,Vr.disableVertexAttribArray(e)},glDrawArrays:function(e,t,r){yr.preDrawHandleClientVertexAttribBindings(t+r),Vr.drawArrays(e,t,r),yr.postDrawHandleClientVertexAttribBindings()},glDrawBuffers:function(e,t){for(var r=Qr[e],n=0;n<e;n++)r[n]=j[t+4*n>>2];Vr.drawBuffers(r)},glEnableVertexAttribArray:function(e){yr.currentContext.clientBuffers[e].enabled=!0,Vr.enableVertexAttribArray(e)},glFenceSync:function(e,t){var r=Vr.fenceSync(e,t);if(r){var n=yr.getNewId(yr.syncs);return r.name=n,yr.syncs[n]=r,n}return 0},glFinish:function(){Vr.finish()},glFlush:function(){Vr.flush()},glFramebufferTexture2D:function(e,t,r,n,o){Vr.framebufferTexture2D(e,t,r,yr.textures[n],o)},glFramebufferTextureLayer:function(e,t,r,n,o){Vr.framebufferTextureLayer(e,t,yr.textures[r],n,o)},glGenBuffers:function(e,t){Tr(e,t,"createBuffer",yr.buffers)},glGenFramebuffers:function(e,t){Tr(e,t,"createFramebuffer",yr.framebuffers)},glGenTextures:function(e,t){Tr(e,t,"createTexture",yr.textures)},glGenVertexArrays:function(e,t){Tr(e,t,"createVertexArray",yr.vaos)},glGetAttribLocation:function(e,t){return Vr.getAttribLocation(yr.programs[e],T(t))},glGetError:function(){var e=Vr.getError()||yr.lastError;return yr.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=Vr.getParameter(34467);n=o?o.length:0;break;case 33309:if(yr.currentContext.version<2)return void yr.recordError(1282);n=2*(Vr.getSupportedExtensions()||[]).length;break;case 33307:case 33308:if(yr.currentContext.version<2)return void yr.recordError(1280);n=33307==e?3:0}if(void 0===n){var i=Vr.getParameter(e);switch(E(i)){case"number":n=i;break;case"boolean":n=i?1:0;break;case"string":return void yr.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 yr.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 yr.recordError(1280),void m("GL_INVALID_ENUM in glGet"+r+"v: Unknown object returned from WebGL getParameter("+e+")! (error: "+t+")")}}break;default:return yr.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:Pr(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 yr.recordError(1281)}(e,t,0)},glGetString:function(e){var t=yr.stringCache[e];if(!t){switch(e){case 7939:var r=Vr.getSupportedExtensions()||[];t=Mr((r=r.concat(r.map((function(e){return"GL_"+e})))).join(" "));break;case 7936:case 7937:case 37445:case 37446:var n=Vr.getParameter(e);n||yr.recordError(1280),t=n&&Mr(n);break;case 7938:var o=Vr.getParameter(7938);t=Mr(o=yr.currentContext.version>=2?"OpenGL ES 3.0 ("+o+")":"OpenGL ES 2.0 ("+o+")");break;case 35724:var i=Vr.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=Mr(i);break;default:yr.recordError(1280)}yr.stringCache[e]=t}return t},glGetUniformBlockIndex:function(e,t){return Vr.getUniformBlockIndex(yr.programs[e],T(t))},glGetUniformLocation:function(e,t){if(t=T(t),e=yr.programs[e]){!function(e){var t,r,n=e.uniformLocsById,o=e.uniformSizeAndIdsByName;if(!n)for(e.uniformLocsById=n={},e.uniformArrayNamesById={},t=0;t<Vr.getProgramParameter(e,35718);++t){var i=Vr.getActiveUniform(e,t),a=i.name,s=i.size,A=Rr(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=Rr(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]||Vr.getUniformLocation(e,t)))return n}else yr.recordError(1281);var s;return-1},glLinkProgram:function(e){e=yr.programs[e],Vr.linkProgram(e),e.uniformLocsById=0,e.uniformSizeAndIdsByName={}},glPixelStorei:function(e,t){3317==e&&(yr.unpackAlignment=t),Vr.pixelStorei(e,t)},glReadPixels:function(e,t,r,n,o,i,a){if(yr.currentContext.version>=2)if(Vr.currentPixelPackBufferBinding)Vr.readPixels(e,t,r,n,o,i,a);else{var s=Sr(i);Vr.readPixels(e,t,r,n,o,i,s,a>>Fr(s))}else{var A=kr(i,o,r,n,a);A?Vr.readPixels(e,t,r,n,o,i,A):yr.recordError(1280)}},glShaderSource:function(e,t,r,n){var o=yr.getSource(e,t,r,n);Vr.shaderSource(yr.shaders[e],o)},glTexImage2D:function(e,t,r,n,o,i,a,s,A){if(yr.currentContext.version>=2)if(Vr.currentPixelUnpackBufferBinding)Vr.texImage2D(e,t,r,n,o,i,a,s,A);else if(A){var c=Sr(s);Vr.texImage2D(e,t,r,n,o,i,a,s,c,A>>Fr(c))}else Vr.texImage2D(e,t,r,n,o,i,a,s,null);else Vr.texImage2D(e,t,r,n,o,i,a,s,A?kr(s,a,n,o,A):null)},glTexParameterfv:function(e,t,r){var n=L[r>>2];Vr.texParameterf(e,t,n)},glTexParameteri:function(e,t,r){Vr.texParameteri(e,t,r)},glTexStorage2D:function(e,t,r,n,o){Vr.texStorage2D(e,t,r,n,o)},glTexStorage3D:function(e,t,r,n,o,i){Vr.texStorage3D(e,t,r,n,o,i)},glTexSubImage2D:function(e,t,r,n,o,i,a,s,A){if(yr.currentContext.version>=2)if(Vr.currentPixelUnpackBufferBinding)Vr.texSubImage2D(e,t,r,n,o,i,a,s,A);else if(A){var c=Sr(s);Vr.texSubImage2D(e,t,r,n,o,i,a,s,c,A>>Fr(c))}else Vr.texSubImage2D(e,t,r,n,o,i,a,s,null);else{var u=null;A&&(u=kr(s,a,o,i,A)),Vr.texSubImage2D(e,t,r,n,o,i,a,s,u)}},glTexSubImage3D:function(e,t,r,n,o,i,a,s,A,c,u){if(Vr.currentPixelUnpackBufferBinding)Vr.texSubImage3D(e,t,r,n,o,i,a,s,A,c,u);else if(u){var g=Sr(c);Vr.texSubImage3D(e,t,r,n,o,i,a,s,A,c,g,u>>Fr(g))}else Vr.texSubImage3D(e,t,r,n,o,i,a,s,A,c,null)},glUniform1f:function(e,t){Vr.uniform1f(xr(e),t)},glUniform1i:function(e,t){Vr.uniform1i(xr(e),t)},glUniform2fv:function(e,t,r){if(yr.currentContext.version>=2)Vr.uniform2fv(xr(e),L,r>>2,2*t);else{if(t<=144)for(var n=Nr[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);Vr.uniform2fv(xr(e),n)}},glUniform4fv:function(e,t,r){if(yr.currentContext.version>=2)Vr.uniform4fv(xr(e),L,r>>2,4*t);else{if(t<=72){var n=Nr[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);Vr.uniform4fv(xr(e),n)}},glUniform4iv:function(e,t,r){if(yr.currentContext.version>=2)Vr.uniform4iv(xr(e),j,r>>2,4*t);else{if(t<=72)for(var n=jr[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);Vr.uniform4iv(xr(e),n)}},glUniformBlockBinding:function(e,t,r){e=yr.programs[e],Vr.uniformBlockBinding(e,t,r)},glUniformMatrix4fv:function(e,t,r,n){if(yr.currentContext.version>=2)Vr.uniformMatrix4fv(xr(e),!!r,L,n>>2,16*t);else{if(t<=18){var o=Nr[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);Vr.uniformMatrix4fv(xr(e),!!r,o)}},glUseProgram:function(e){e=yr.programs[e],Vr.useProgram(e),Vr.currentProgram=e},glVertexAttribPointer:function(e,t,r,n,o,i){var a=yr.currentContext.clientBuffers[e];if(!Vr.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,Vr.vertexAttribPointer(e,t,r,!!n,o,i)},glViewport:function(e,t,r,n){Vr.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=cn();try{return $.get(e)(t,r,n)}catch(e){if(un(o),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_i:function(e){var t=cn();try{return $.get(e)()}catch(e){if(un(t),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_ii:function(e,t){var r=cn();try{return $.get(e)(t)}catch(e){if(un(r),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_iii:function(e,t,r){var n=cn();try{return $.get(e)(t,r)}catch(e){if(un(n),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_iiii:function(e,t,r,n){var o=cn();try{return $.get(e)(t,r,n)}catch(e){if(un(o),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_iiiii:function(e,t,r,n,o){var i=cn();try{return $.get(e)(t,r,n,o)}catch(e){if(un(i),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_iiiiii:function(e,t,r,n,o,i){var a=cn();try{return $.get(e)(t,r,n,o,i)}catch(e){if(un(a),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_iiiiiii:function(e,t,r,n,o,i,a){var s=cn();try{return $.get(e)(t,r,n,o,i,a)}catch(e){if(un(s),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_iiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c){var u=cn();try{return $.get(e)(t,r,n,o,i,a,s,A,c)}catch(e){if(un(u),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_iiiiiiii:function(e,t,r,n,o,i,a,s){var A=cn();try{return $.get(e)(t,r,n,o,i,a,s)}catch(e){if(un(A),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_iiiiiiiii:function(e,t,r,n,o,i,a,s,A){var c=cn();try{return $.get(e)(t,r,n,o,i,a,s,A)}catch(e){if(un(c),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_v:function(e){var t=cn();try{$.get(e)()}catch(e){if(un(t),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_vdiii:function(e,t,r,n,o){var i=cn();try{$.get(e)(t,r,n,o)}catch(e){if(un(i),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_vi:function(e,t){var r=cn();try{$.get(e)(t)}catch(e){if(un(r),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_vididdii:function(e,t,r,n,o,i,a,s){var A=cn();try{$.get(e)(t,r,n,o,i,a,s)}catch(e){if(un(A),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_vidii:function(e,t,r,n,o){var i=cn();try{$.get(e)(t,r,n,o)}catch(e){if(un(i),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_vii:function(e,t,r){var n=cn();try{$.get(e)(t,r)}catch(e){if(un(n),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viid:function(e,t,r,n){var o=cn();try{$.get(e)(t,r,n)}catch(e){if(un(o),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viidi:function(e,t,r,n,o){var i=cn();try{$.get(e)(t,r,n,o)}catch(e){if(un(i),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viididii:function(e,t,r,n,o,i,a,s){var A=cn();try{$.get(e)(t,r,n,o,i,a,s)}catch(e){if(un(A),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viii:function(e,t,r,n){var o=cn();try{$.get(e)(t,r,n)}catch(e){if(un(o),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiid:function(e,t,r,n,o){var i=cn();try{$.get(e)(t,r,n,o)}catch(e){if(un(i),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiidd:function(e,t,r,n,o,i){var a=cn();try{$.get(e)(t,r,n,o,i)}catch(e){if(un(a),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiddi:function(e,t,r,n,o,i,a){var s=cn();try{$.get(e)(t,r,n,o,i,a)}catch(e){if(un(s),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiidi:function(e,t,r,n,o,i){var a=cn();try{$.get(e)(t,r,n,o,i)}catch(e){if(un(a),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiii:function(e,t,r,n,o){var i=cn();try{$.get(e)(t,r,n,o)}catch(e){if(un(i),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiid:function(e,t,r,n,o,i){var a=cn();try{$.get(e)(t,r,n,o,i)}catch(e){if(un(a),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiidi:function(e,t,r,n,o,i,a){var s=cn();try{$.get(e)(t,r,n,o,i,a)}catch(e){if(un(s),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiidid:function(e,t,r,n,o,i,a,s){var A=cn();try{$.get(e)(t,r,n,o,i,a,s)}catch(e){if(un(A),e!==e+0&&"longjmp"!==e)throw e;ln(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{$.get(e)(t,r,n,o,i,a,s,A,c,u,g,d,l,f,E)}catch(e){if(un(p),e!==e+0&&"longjmp"!==e)throw e;ln(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{$.get(e)(t,r,n,o,i,a,s,A,c,u,g,d,l,f,E)}catch(e){if(un(p),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiii:function(e,t,r,n,o,i){var a=cn();try{$.get(e)(t,r,n,o,i)}catch(e){if(un(a),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiid:function(e,t,r,n,o,i,a){var s=cn();try{$.get(e)(t,r,n,o,i,a)}catch(e){if(un(s),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiif:function(e,t,r,n,o,i,a){var s=cn();try{$.get(e)(t,r,n,o,i,a)}catch(e){if(un(s),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiii:function(e,t,r,n,o,i,a){var s=cn();try{$.get(e)(t,r,n,o,i,a)}catch(e){if(un(s),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiiid:function(e,t,r,n,o,i,a,s){var A=cn();try{$.get(e)(t,r,n,o,i,a,s)}catch(e){if(un(A),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiiif:function(e,t,r,n,o,i,a,s){var A=cn();try{$.get(e)(t,r,n,o,i,a,s)}catch(e){if(un(A),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiiii:function(e,t,r,n,o,i,a,s){var A=cn();try{$.get(e)(t,r,n,o,i,a,s)}catch(e){if(un(A),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c,u){var g=cn();try{$.get(e)(t,r,n,o,i,a,s,A,c,u)}catch(e){if(un(g),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiiiidiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d){var l=cn();try{$.get(e)(t,r,n,o,i,a,s,A,c,u,g,d)}catch(e){if(un(l),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiiiifiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d){var l=cn();try{$.get(e)(t,r,n,o,i,a,s,A,c,u,g,d)}catch(e){if(un(l),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiiiii:function(e,t,r,n,o,i,a,s,A){var c=cn();try{$.get(e)(t,r,n,o,i,a,s,A)}catch(e){if(un(c),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiiiiidd:function(e,t,r,n,o,i,a,s,A,c,u){var g=cn();try{$.get(e)(t,r,n,o,i,a,s,A,c,u)}catch(e){if(un(g),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiiiiidf:function(e,t,r,n,o,i,a,s,A,c,u){var g=cn();try{$.get(e)(t,r,n,o,i,a,s,A,c,u)}catch(e){if(un(g),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiiiiii:function(e,t,r,n,o,i,a,s,A,c){var u=cn();try{$.get(e)(t,r,n,o,i,a,s,A,c)}catch(e){if(un(u),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiiiiiidd:function(e,t,r,n,o,i,a,s,A,c,u,g){var d=cn();try{$.get(e)(t,r,n,o,i,a,s,A,c,u,g)}catch(e){if(un(d),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c,u,g,d){var l=cn();try{$.get(e)(t,r,n,o,i,a,s,A,c,u,g,d)}catch(e){if(un(l),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u){var g=cn();try{$.get(e)(t,r,n,o,i,a,s,A,c,u)}catch(e){if(un(g),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiiiiiiiddi:function(e,t,r,n,o,i,a,s,A,c,u,g,d,l){var f=cn();try{$.get(e)(t,r,n,o,i,a,s,A,c,u,g,d,l)}catch(e){if(un(f),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u,g){var d=cn();try{$.get(e)(t,r,n,o,i,a,s,A,c,u,g)}catch(e){if(un(d),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d){var l=cn();try{$.get(e)(t,r,n,o,i,a,s,A,c,u,g,d)}catch(e){if(un(l),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},invoke_viiiiiiiiiiiii:function(e,t,r,n,o,i,a,s,A,c,u,g,d,l){var f=cn();try{$.get(e)(t,r,n,o,i,a,s,A,c,u,g,d,l)}catch(e){if(un(f),e!==e+0&&"longjmp"!==e)throw e;ln(1,0)}},llvm_eh_typeid_for:function(e){return e},localtime_r:function(e,t){Ur();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[an()+(s?4:0)>>2];return j[t+40>>2]=A,t},mktime:function(e){Ur();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){mn(e)},setTempRet0:function(e){B(e)},strftime:Wr,strftime_l:function(e,t,r,n){return Wr(e,t,r,n)}};!function(){var e={env:$r,wasi_snapshot_preview1:$r};function t(e,t){var r,n=e.exports;o.asm=n,b(w=o.asm.memory,"memory not found in wasm exports"),Z(w.buffer),b($=o.asm.__indirect_function_table,"table not found in wasm exports"),r=o.asm.__wasm_call_ctors,oe.unshift(r),fe("wasm-instantiate")}le("wasm-instantiate");var r=o;function i(e){b(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&&!Ce(pe))return fetch(pe,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+pe+"'";return e.arrayBuffer()})).catch((function(){return _e(pe)}));if(f)return new Promise((function(e,t){f(pe,(function(t){e(new Uint8Array(t))}),t)}))}return Promise.resolve().then((function(){return _e(pe)}))}().then((function(t){return WebAssembly.instantiate(t,e)})).then(t,(function(e){m("failed to asynchronously prepare wasm: "+e),Ce(pe)&&m("warning: Loading from a file URI ("+pe+") 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"),Ee(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||ye(pe)||Ce(pe)||"function"!=typeof fetch?a(i):fetch(pe,{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=we("__wasm_call_ctors");var en=o._free=we("free"),tn=o._malloc=we("malloc"),rn=o.___errno_location=we("__errno_location");o._fflush=we("fflush");var nn=o.___getTypeName=we("__getTypeName");o.___embind_register_native_and_builtin_types=we("__embind_register_native_and_builtin_types"),o._emscripten_main_thread_process_queued_calls=we("emscripten_main_thread_process_queued_calls");var on=o._emscripten_stack_get_end=function(){return(on=o._emscripten_stack_get_end=o.asm.emscripten_stack_get_end).apply(null,arguments)},an=o.__get_tzname=we("_get_tzname"),sn=o.__get_daylight=we("_get_daylight"),An=o.__get_timezone=we("_get_timezone"),cn=o.stackSave=we("stackSave"),un=o.stackRestore=we("stackRestore");o.stackAlloc=we("stackAlloc");var gn=o._emscripten_stack_init=function(){return(gn=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=we("saveSetjmp");var dn,ln=o._setThrew=we("setThrew"),fn=o.___cxa_can_catch=we("__cxa_can_catch"),En=o.___cxa_is_pointer_type=we("__cxa_is_pointer_type"),pn=o._memalign=we("memalign");function hn(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function In(e){function t(){dn||(dn=!0,o.calledRun=!0,v||(re(),b(!se),se=!0,o.noFSInit||Xe.init.initialized||Xe.init(),Xe.ignorePermissions=!1,Qe(oe),r(o),o.onRuntimeInitialized&&o.onRuntimeInitialized(),b(!o._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),function(){if(re(),o.postRun)for("function"==typeof o.postRun&&(o.postRun=[o.postRun]);o.postRun.length;)e=o.postRun.shift(),ae.unshift(e);var e;Qe(ae)}()))}Ae>0||(gn(),te(),function(){if(o.preRun)for("function"==typeof o.preRun&&(o.preRun=[o.preRun]);o.preRun.length;)e=o.preRun.shift(),ne.unshift(e);var e;Qe(ne)}(),Ae>0||(o.setStatus?(o.setStatus("Running..."),setTimeout((function(){setTimeout((function(){o.setStatus("")}),1),t()}),1)):t(),re()))}function mn(e){A(e,new hn(e))}if(o._emscripten_builtin_malloc=we("emscripten_builtin_malloc"),o._emscripten_builtin_free=we("emscripten_builtin_free"),o._emscripten_builtin_memalign=we("emscripten_builtin_memalign"),o.dynCall_jii=we("dynCall_jii"),o.dynCall_viji=we("dynCall_viji"),o.dynCall_jjj=we("dynCall_jjj"),o.dynCall_iiiijj=we("dynCall_iiiijj"),o.dynCall_viijj=we("dynCall_viijj"),o.dynCall_viiijjjj=we("dynCall_viiijjjj"),o.dynCall_ji=we("dynCall_ji"),o.dynCall_vij=we("dynCall_vij"),o.dynCall_viijii=we("dynCall_viijii"),o.dynCall_vj=we("dynCall_vj"),o.dynCall_viij=we("dynCall_viij"),o.dynCall_viiiiij=we("dynCall_viiiiij"),o.dynCall_iijjiiii=we("dynCall_iijjiiii"),o.dynCall_jiji=we("dynCall_jiji"),o.dynCall_iiiiij=we("dynCall_iiiiij"),o.dynCall_iiiiijj=we("dynCall_iiiiijj"),o.dynCall_iiiiiijj=we("dynCall_iiiiiijj"),Object.getOwnPropertyDescriptor(o,"intArrayFromString")||(o.intArrayFromString=function(){Ee("'intArrayFromString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"intArrayToString")||(o.intArrayToString=function(){Ee("'intArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ccall")||(o.ccall=function(){Ee("'ccall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"cwrap")||(o.cwrap=function(){Ee("'cwrap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setValue")||(o.setValue=function(){Ee("'setValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getValue")||(o.getValue=function(){Ee("'getValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"allocate")||(o.allocate=function(){Ee("'allocate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"UTF8ArrayToString")||(o.UTF8ArrayToString=function(){Ee("'UTF8ArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"UTF8ToString")||(o.UTF8ToString=function(){Ee("'UTF8ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stringToUTF8Array")||(o.stringToUTF8Array=function(){Ee("'stringToUTF8Array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stringToUTF8")||(o.stringToUTF8=function(){Ee("'stringToUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"lengthBytesUTF8")||(o.lengthBytesUTF8=function(){Ee("'lengthBytesUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stackTrace")||(o.stackTrace=function(){Ee("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"addOnPreRun")||(o.addOnPreRun=function(){Ee("'addOnPreRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"addOnInit")||(o.addOnInit=function(){Ee("'addOnInit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"addOnPreMain")||(o.addOnPreMain=function(){Ee("'addOnPreMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"addOnExit")||(o.addOnExit=function(){Ee("'addOnExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"addOnPostRun")||(o.addOnPostRun=function(){Ee("'addOnPostRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeStringToMemory")||(o.writeStringToMemory=function(){Ee("'writeStringToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeArrayToMemory")||(o.writeArrayToMemory=function(){Ee("'writeArrayToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeAsciiToMemory")||(o.writeAsciiToMemory=function(){Ee("'writeAsciiToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),o.addRunDependency=le,o.removeRunDependency=fe,Object.getOwnPropertyDescriptor(o,"FS_createFolder")||(o.FS_createFolder=function(){Ee("'FS_createFolder' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),o.FS_createPath=Xe.createPath,o.FS_createDataFile=Xe.createDataFile,o.FS_createPreloadedFile=Xe.createPreloadedFile,o.FS_createLazyFile=Xe.createLazyFile,Object.getOwnPropertyDescriptor(o,"FS_createLink")||(o.FS_createLink=function(){Ee("'FS_createLink' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),o.FS_createDevice=Xe.createDevice,o.FS_unlink=Xe.unlink,Object.getOwnPropertyDescriptor(o,"getLEB")||(o.getLEB=function(){Ee("'getLEB' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getFunctionTables")||(o.getFunctionTables=function(){Ee("'getFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"alignFunctionTables")||(o.alignFunctionTables=function(){Ee("'alignFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerFunctions")||(o.registerFunctions=function(){Ee("'registerFunctions' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"addFunction")||(o.addFunction=function(){Ee("'addFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"removeFunction")||(o.removeFunction=function(){Ee("'removeFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getFuncWrapper")||(o.getFuncWrapper=function(){Ee("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"prettyPrint")||(o.prettyPrint=function(){Ee("'prettyPrint' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"dynCall")||(o.dynCall=function(){Ee("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getCompilerSetting")||(o.getCompilerSetting=function(){Ee("'getCompilerSetting' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"print")||(o.print=function(){Ee("'print' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"printErr")||(o.printErr=function(){Ee("'printErr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getTempRet0")||(o.getTempRet0=function(){Ee("'getTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setTempRet0")||(o.setTempRet0=function(){Ee("'setTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"callMain")||(o.callMain=function(){Ee("'callMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"abort")||(o.abort=function(){Ee("'abort' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"keepRuntimeAlive")||(o.keepRuntimeAlive=function(){Ee("'keepRuntimeAlive' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"zeroMemory")||(o.zeroMemory=function(){Ee("'zeroMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stringToNewUTF8")||(o.stringToNewUTF8=function(){Ee("'stringToNewUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setFileTime")||(o.setFileTime=function(){Ee("'setFileTime' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscripten_realloc_buffer")||(o.emscripten_realloc_buffer=function(){Ee("'emscripten_realloc_buffer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ENV")||(o.ENV=function(){Ee("'ENV' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ERRNO_CODES")||(o.ERRNO_CODES=function(){Ee("'ERRNO_CODES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ERRNO_MESSAGES")||(o.ERRNO_MESSAGES=function(){Ee("'ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setErrNo")||(o.setErrNo=function(){Ee("'setErrNo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"inetPton4")||(o.inetPton4=function(){Ee("'inetPton4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"inetNtop4")||(o.inetNtop4=function(){Ee("'inetNtop4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"inetPton6")||(o.inetPton6=function(){Ee("'inetPton6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"inetNtop6")||(o.inetNtop6=function(){Ee("'inetNtop6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"readSockaddr")||(o.readSockaddr=function(){Ee("'readSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeSockaddr")||(o.writeSockaddr=function(){Ee("'writeSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"DNS")||(o.DNS=function(){Ee("'DNS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getHostByName")||(o.getHostByName=function(){Ee("'getHostByName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"GAI_ERRNO_MESSAGES")||(o.GAI_ERRNO_MESSAGES=function(){Ee("'GAI_ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"Protocols")||(o.Protocols=function(){Ee("'Protocols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"Sockets")||(o.Sockets=function(){Ee("'Sockets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getRandomDevice")||(o.getRandomDevice=function(){Ee("'getRandomDevice' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"traverseStack")||(o.traverseStack=function(){Ee("'traverseStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"UNWIND_CACHE")||(o.UNWIND_CACHE=function(){Ee("'UNWIND_CACHE' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"withBuiltinMalloc")||(o.withBuiltinMalloc=function(){Ee("'withBuiltinMalloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"readAsmConstArgsArray")||(o.readAsmConstArgsArray=function(){Ee("'readAsmConstArgsArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"readAsmConstArgs")||(o.readAsmConstArgs=function(){Ee("'readAsmConstArgs' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"mainThreadEM_ASM")||(o.mainThreadEM_ASM=function(){Ee("'mainThreadEM_ASM' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"jstoi_q")||(o.jstoi_q=function(){Ee("'jstoi_q' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"jstoi_s")||(o.jstoi_s=function(){Ee("'jstoi_s' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getExecutableName")||(o.getExecutableName=function(){Ee("'getExecutableName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"listenOnce")||(o.listenOnce=function(){Ee("'listenOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"autoResumeAudioContext")||(o.autoResumeAudioContext=function(){Ee("'autoResumeAudioContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"dynCallLegacy")||(o.dynCallLegacy=function(){Ee("'dynCallLegacy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getDynCaller")||(o.getDynCaller=function(){Ee("'getDynCaller' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"dynCall")||(o.dynCall=function(){Ee("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"callRuntimeCallbacks")||(o.callRuntimeCallbacks=function(){Ee("'callRuntimeCallbacks' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"runtimeKeepalivePush")||(o.runtimeKeepalivePush=function(){Ee("'runtimeKeepalivePush' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"runtimeKeepalivePop")||(o.runtimeKeepalivePop=function(){Ee("'runtimeKeepalivePop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"callUserCallback")||(o.callUserCallback=function(){Ee("'callUserCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"maybeExit")||(o.maybeExit=function(){Ee("'maybeExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"safeSetTimeout")||(o.safeSetTimeout=function(){Ee("'safeSetTimeout' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"asmjsMangle")||(o.asmjsMangle=function(){Ee("'asmjsMangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"asyncLoad")||(o.asyncLoad=function(){Ee("'asyncLoad' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"alignMemory")||(o.alignMemory=function(){Ee("'alignMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"mmapAlloc")||(o.mmapAlloc=function(){Ee("'mmapAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"reallyNegative")||(o.reallyNegative=function(){Ee("'reallyNegative' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"unSign")||(o.unSign=function(){Ee("'unSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"reSign")||(o.reSign=function(){Ee("'reSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"formatString")||(o.formatString=function(){Ee("'formatString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"PATH")||(o.PATH=function(){Ee("'PATH' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"PATH_FS")||(o.PATH_FS=function(){Ee("'PATH_FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SYSCALLS")||(o.SYSCALLS=function(){Ee("'SYSCALLS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"syscallMmap2")||(o.syscallMmap2=function(){Ee("'syscallMmap2' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"syscallMunmap")||(o.syscallMunmap=function(){Ee("'syscallMunmap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getSocketFromFD")||(o.getSocketFromFD=function(){Ee("'getSocketFromFD' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getSocketAddress")||(o.getSocketAddress=function(){Ee("'getSocketAddress' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"JSEvents")||(o.JSEvents=function(){Ee("'JSEvents' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerKeyEventCallback")||(o.registerKeyEventCallback=function(){Ee("'registerKeyEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"specialHTMLTargets")||(o.specialHTMLTargets=function(){Ee("'specialHTMLTargets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"findEventTarget")||(o.findEventTarget=function(){Ee("'findEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"findCanvasEventTarget")||(o.findCanvasEventTarget=function(){Ee("'findCanvasEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getBoundingClientRect")||(o.getBoundingClientRect=function(){Ee("'getBoundingClientRect' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillMouseEventData")||(o.fillMouseEventData=function(){Ee("'fillMouseEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerMouseEventCallback")||(o.registerMouseEventCallback=function(){Ee("'registerMouseEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerWheelEventCallback")||(o.registerWheelEventCallback=function(){Ee("'registerWheelEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerUiEventCallback")||(o.registerUiEventCallback=function(){Ee("'registerUiEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerFocusEventCallback")||(o.registerFocusEventCallback=function(){Ee("'registerFocusEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillDeviceOrientationEventData")||(o.fillDeviceOrientationEventData=function(){Ee("'fillDeviceOrientationEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerDeviceOrientationEventCallback")||(o.registerDeviceOrientationEventCallback=function(){Ee("'registerDeviceOrientationEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillDeviceMotionEventData")||(o.fillDeviceMotionEventData=function(){Ee("'fillDeviceMotionEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerDeviceMotionEventCallback")||(o.registerDeviceMotionEventCallback=function(){Ee("'registerDeviceMotionEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"screenOrientation")||(o.screenOrientation=function(){Ee("'screenOrientation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillOrientationChangeEventData")||(o.fillOrientationChangeEventData=function(){Ee("'fillOrientationChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerOrientationChangeEventCallback")||(o.registerOrientationChangeEventCallback=function(){Ee("'registerOrientationChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillFullscreenChangeEventData")||(o.fillFullscreenChangeEventData=function(){Ee("'fillFullscreenChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerFullscreenChangeEventCallback")||(o.registerFullscreenChangeEventCallback=function(){Ee("'registerFullscreenChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerRestoreOldStyle")||(o.registerRestoreOldStyle=function(){Ee("'registerRestoreOldStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"hideEverythingExceptGivenElement")||(o.hideEverythingExceptGivenElement=function(){Ee("'hideEverythingExceptGivenElement' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"restoreHiddenElements")||(o.restoreHiddenElements=function(){Ee("'restoreHiddenElements' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setLetterbox")||(o.setLetterbox=function(){Ee("'setLetterbox' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"currentFullscreenStrategy")||(o.currentFullscreenStrategy=function(){Ee("'currentFullscreenStrategy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"restoreOldWindowedStyle")||(o.restoreOldWindowedStyle=function(){Ee("'restoreOldWindowedStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"softFullscreenResizeWebGLRenderTarget")||(o.softFullscreenResizeWebGLRenderTarget=function(){Ee("'softFullscreenResizeWebGLRenderTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"doRequestFullscreen")||(o.doRequestFullscreen=function(){Ee("'doRequestFullscreen' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillPointerlockChangeEventData")||(o.fillPointerlockChangeEventData=function(){Ee("'fillPointerlockChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerPointerlockChangeEventCallback")||(o.registerPointerlockChangeEventCallback=function(){Ee("'registerPointerlockChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerPointerlockErrorEventCallback")||(o.registerPointerlockErrorEventCallback=function(){Ee("'registerPointerlockErrorEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"requestPointerLock")||(o.requestPointerLock=function(){Ee("'requestPointerLock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillVisibilityChangeEventData")||(o.fillVisibilityChangeEventData=function(){Ee("'fillVisibilityChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerVisibilityChangeEventCallback")||(o.registerVisibilityChangeEventCallback=function(){Ee("'registerVisibilityChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerTouchEventCallback")||(o.registerTouchEventCallback=function(){Ee("'registerTouchEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillGamepadEventData")||(o.fillGamepadEventData=function(){Ee("'fillGamepadEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerGamepadEventCallback")||(o.registerGamepadEventCallback=function(){Ee("'registerGamepadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerBeforeUnloadEventCallback")||(o.registerBeforeUnloadEventCallback=function(){Ee("'registerBeforeUnloadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillBatteryEventData")||(o.fillBatteryEventData=function(){Ee("'fillBatteryEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"battery")||(o.battery=function(){Ee("'battery' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerBatteryEventCallback")||(o.registerBatteryEventCallback=function(){Ee("'registerBatteryEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setCanvasElementSize")||(o.setCanvasElementSize=function(){Ee("'setCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getCanvasElementSize")||(o.getCanvasElementSize=function(){Ee("'getCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"polyfillSetImmediate")||(o.polyfillSetImmediate=function(){Ee("'polyfillSetImmediate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"demangle")||(o.demangle=function(){Ee("'demangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"demangleAll")||(o.demangleAll=function(){Ee("'demangleAll' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"jsStackTrace")||(o.jsStackTrace=function(){Ee("'jsStackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stackTrace")||(o.stackTrace=function(){Ee("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getEnvStrings")||(o.getEnvStrings=function(){Ee("'getEnvStrings' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"checkWasiClock")||(o.checkWasiClock=function(){Ee("'checkWasiClock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeI53ToI64")||(o.writeI53ToI64=function(){Ee("'writeI53ToI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeI53ToI64Clamped")||(o.writeI53ToI64Clamped=function(){Ee("'writeI53ToI64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeI53ToI64Signaling")||(o.writeI53ToI64Signaling=function(){Ee("'writeI53ToI64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeI53ToU64Clamped")||(o.writeI53ToU64Clamped=function(){Ee("'writeI53ToU64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeI53ToU64Signaling")||(o.writeI53ToU64Signaling=function(){Ee("'writeI53ToU64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"readI53FromI64")||(o.readI53FromI64=function(){Ee("'readI53FromI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"readI53FromU64")||(o.readI53FromU64=function(){Ee("'readI53FromU64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"convertI32PairToI53")||(o.convertI32PairToI53=function(){Ee("'convertI32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"convertU32PairToI53")||(o.convertU32PairToI53=function(){Ee("'convertU32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"uncaughtExceptionCount")||(o.uncaughtExceptionCount=function(){Ee("'uncaughtExceptionCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"exceptionLast")||(o.exceptionLast=function(){Ee("'exceptionLast' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"exceptionCaught")||(o.exceptionCaught=function(){Ee("'exceptionCaught' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ExceptionInfo")||(o.ExceptionInfo=function(){Ee("'ExceptionInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"CatchInfo")||(o.CatchInfo=function(){Ee("'CatchInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"exception_addRef")||(o.exception_addRef=function(){Ee("'exception_addRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"exception_decRef")||(o.exception_decRef=function(){Ee("'exception_decRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"Browser")||(o.Browser=function(){Ee("'Browser' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"funcWrappers")||(o.funcWrappers=function(){Ee("'funcWrappers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getFuncWrapper")||(o.getFuncWrapper=function(){Ee("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setMainLoop")||(o.setMainLoop=function(){Ee("'setMainLoop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"wget")||(o.wget=function(){Ee("'wget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"FS")||(o.FS=function(){Ee("'FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"MEMFS")||(o.MEMFS=function(){Ee("'MEMFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"TTY")||(o.TTY=function(){Ee("'TTY' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"PIPEFS")||(o.PIPEFS=function(){Ee("'PIPEFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SOCKFS")||(o.SOCKFS=function(){Ee("'SOCKFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"_setNetworkCallback")||(o._setNetworkCallback=function(){Ee("'_setNetworkCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"tempFixedLengthArray")||(o.tempFixedLengthArray=function(){Ee("'tempFixedLengthArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"miniTempWebGLFloatBuffers")||(o.miniTempWebGLFloatBuffers=function(){Ee("'miniTempWebGLFloatBuffers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"heapObjectForWebGLType")||(o.heapObjectForWebGLType=function(){Ee("'heapObjectForWebGLType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"heapAccessShiftForWebGLHeap")||(o.heapAccessShiftForWebGLHeap=function(){Ee("'heapAccessShiftForWebGLHeap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),o.GL=yr,Object.getOwnPropertyDescriptor(o,"emscriptenWebGLGet")||(o.emscriptenWebGLGet=function(){Ee("'emscriptenWebGLGet' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"computeUnpackAlignedImageSize")||(o.computeUnpackAlignedImageSize=function(){Ee("'computeUnpackAlignedImageSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscriptenWebGLGetTexPixelData")||(o.emscriptenWebGLGetTexPixelData=function(){Ee("'emscriptenWebGLGetTexPixelData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscriptenWebGLGetUniform")||(o.emscriptenWebGLGetUniform=function(){Ee("'emscriptenWebGLGetUniform' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"webglGetUniformLocation")||(o.webglGetUniformLocation=function(){Ee("'webglGetUniformLocation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"webglPrepareUniformLocationsBeforeFirstUse")||(o.webglPrepareUniformLocationsBeforeFirstUse=function(){Ee("'webglPrepareUniformLocationsBeforeFirstUse' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"webglGetLeftBracePos")||(o.webglGetLeftBracePos=function(){Ee("'webglGetLeftBracePos' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscriptenWebGLGetVertexAttrib")||(o.emscriptenWebGLGetVertexAttrib=function(){Ee("'emscriptenWebGLGetVertexAttrib' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscriptenWebGLGetBufferBinding")||(o.emscriptenWebGLGetBufferBinding=function(){Ee("'emscriptenWebGLGetBufferBinding' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscriptenWebGLValidateMapBufferTarget")||(o.emscriptenWebGLValidateMapBufferTarget=function(){Ee("'emscriptenWebGLValidateMapBufferTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeGLArray")||(o.writeGLArray=function(){Ee("'writeGLArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"AL")||(o.AL=function(){Ee("'AL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SDL_unicode")||(o.SDL_unicode=function(){Ee("'SDL_unicode' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SDL_ttfContext")||(o.SDL_ttfContext=function(){Ee("'SDL_ttfContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SDL_audio")||(o.SDL_audio=function(){Ee("'SDL_audio' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SDL")||(o.SDL=function(){Ee("'SDL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SDL_gfx")||(o.SDL_gfx=function(){Ee("'SDL_gfx' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"GLUT")||(o.GLUT=function(){Ee("'GLUT' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"EGL")||(o.EGL=function(){Ee("'EGL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"GLFW_Window")||(o.GLFW_Window=function(){Ee("'GLFW_Window' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"GLFW")||(o.GLFW=function(){Ee("'GLFW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"GLEW")||(o.GLEW=function(){Ee("'GLEW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"IDBStore")||(o.IDBStore=function(){Ee("'IDBStore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"runAndAbortIfError")||(o.runAndAbortIfError=function(){Ee("'runAndAbortIfError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emval_handle_array")||(o.emval_handle_array=function(){Ee("'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(){Ee("'emval_free_list' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emval_symbols")||(o.emval_symbols=function(){Ee("'emval_symbols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"init_emval")||(o.init_emval=function(){Ee("'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(){Ee("'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(){Ee("'get_first_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getStringOrSymbol")||(o.getStringOrSymbol=function(){Ee("'getStringOrSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"requireHandle")||(o.requireHandle=function(){Ee("'requireHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emval_newers")||(o.emval_newers=function(){Ee("'emval_newers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"craftEmvalAllocator")||(o.craftEmvalAllocator=function(){Ee("'craftEmvalAllocator' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emval_get_global")||(o.emval_get_global=function(){Ee("'emval_get_global' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emval_methodCallers")||(o.emval_methodCallers=function(){Ee("'emval_methodCallers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"InternalError")||(o.InternalError=function(){Ee("'InternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"BindingError")||(o.BindingError=function(){Ee("'BindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"UnboundTypeError")||(o.UnboundTypeError=function(){Ee("'UnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"PureVirtualError")||(o.PureVirtualError=function(){Ee("'PureVirtualError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"init_embind")||(o.init_embind=function(){Ee("'init_embind' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"throwInternalError")||(o.throwInternalError=function(){Ee("'throwInternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"throwBindingError")||(o.throwBindingError=function(){Ee("'throwBindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"throwUnboundTypeError")||(o.throwUnboundTypeError=function(){Ee("'throwUnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ensureOverloadTable")||(o.ensureOverloadTable=function(){Ee("'ensureOverloadTable' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"exposePublicSymbol")||(o.exposePublicSymbol=function(){Ee("'exposePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"replacePublicSymbol")||(o.replacePublicSymbol=function(){Ee("'replacePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"extendError")||(o.extendError=function(){Ee("'extendError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"createNamedFunction")||(o.createNamedFunction=function(){Ee("'createNamedFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registeredInstances")||(o.registeredInstances=function(){Ee("'registeredInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getBasestPointer")||(o.getBasestPointer=function(){Ee("'getBasestPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerInheritedInstance")||(o.registerInheritedInstance=function(){Ee("'registerInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"unregisterInheritedInstance")||(o.unregisterInheritedInstance=function(){Ee("'unregisterInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getInheritedInstance")||(o.getInheritedInstance=function(){Ee("'getInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getInheritedInstanceCount")||(o.getInheritedInstanceCount=function(){Ee("'getInheritedInstanceCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getLiveInheritedInstances")||(o.getLiveInheritedInstances=function(){Ee("'getLiveInheritedInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registeredTypes")||(o.registeredTypes=function(){Ee("'registeredTypes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"awaitingDependencies")||(o.awaitingDependencies=function(){Ee("'awaitingDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"typeDependencies")||(o.typeDependencies=function(){Ee("'typeDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registeredPointers")||(o.registeredPointers=function(){Ee("'registeredPointers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerType")||(o.registerType=function(){Ee("'registerType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"whenDependentTypesAreResolved")||(o.whenDependentTypesAreResolved=function(){Ee("'whenDependentTypesAreResolved' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"embind_charCodes")||(o.embind_charCodes=function(){Ee("'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(){Ee("'embind_init_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"readLatin1String")||(o.readLatin1String=function(){Ee("'readLatin1String' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getTypeName")||(o.getTypeName=function(){Ee("'getTypeName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"heap32VectorToArray")||(o.heap32VectorToArray=function(){Ee("'heap32VectorToArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"requireRegisteredType")||(o.requireRegisteredType=function(){Ee("'requireRegisteredType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getShiftFromSize")||(o.getShiftFromSize=function(){Ee("'getShiftFromSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"integerReadValueFromPointer")||(o.integerReadValueFromPointer=function(){Ee("'integerReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"enumReadValueFromPointer")||(o.enumReadValueFromPointer=function(){Ee("'enumReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"floatReadValueFromPointer")||(o.floatReadValueFromPointer=function(){Ee("'floatReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"simpleReadValueFromPointer")||(o.simpleReadValueFromPointer=function(){Ee("'simpleReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"runDestructors")||(o.runDestructors=function(){Ee("'runDestructors' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"new_")||(o.new_=function(){Ee("'new_' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"craftInvokerFunction")||(o.craftInvokerFunction=function(){Ee("'craftInvokerFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"embind__requireFunction")||(o.embind__requireFunction=function(){Ee("'embind__requireFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"tupleRegistrations")||(o.tupleRegistrations=function(){Ee("'tupleRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"structRegistrations")||(o.structRegistrations=function(){Ee("'structRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"genericPointerToWireType")||(o.genericPointerToWireType=function(){Ee("'genericPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"constNoSmartPtrRawPointerToWireType")||(o.constNoSmartPtrRawPointerToWireType=function(){Ee("'constNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"nonConstNoSmartPtrRawPointerToWireType")||(o.nonConstNoSmartPtrRawPointerToWireType=function(){Ee("'nonConstNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"init_RegisteredPointer")||(o.init_RegisteredPointer=function(){Ee("'init_RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"RegisteredPointer")||(o.RegisteredPointer=function(){Ee("'RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"RegisteredPointer_getPointee")||(o.RegisteredPointer_getPointee=function(){Ee("'RegisteredPointer_getPointee' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"RegisteredPointer_destructor")||(o.RegisteredPointer_destructor=function(){Ee("'RegisteredPointer_destructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"RegisteredPointer_deleteObject")||(o.RegisteredPointer_deleteObject=function(){Ee("'RegisteredPointer_deleteObject' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"RegisteredPointer_fromWireType")||(o.RegisteredPointer_fromWireType=function(){Ee("'RegisteredPointer_fromWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"runDestructor")||(o.runDestructor=function(){Ee("'runDestructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"releaseClassHandle")||(o.releaseClassHandle=function(){Ee("'releaseClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"finalizationGroup")||(o.finalizationGroup=function(){Ee("'finalizationGroup' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"detachFinalizer_deps")||(o.detachFinalizer_deps=function(){Ee("'detachFinalizer_deps' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"detachFinalizer")||(o.detachFinalizer=function(){Ee("'detachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"attachFinalizer")||(o.attachFinalizer=function(){Ee("'attachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"makeClassHandle")||(o.makeClassHandle=function(){Ee("'makeClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"init_ClassHandle")||(o.init_ClassHandle=function(){Ee("'init_ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ClassHandle")||(o.ClassHandle=function(){Ee("'ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ClassHandle_isAliasOf")||(o.ClassHandle_isAliasOf=function(){Ee("'ClassHandle_isAliasOf' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"throwInstanceAlreadyDeleted")||(o.throwInstanceAlreadyDeleted=function(){Ee("'throwInstanceAlreadyDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ClassHandle_clone")||(o.ClassHandle_clone=function(){Ee("'ClassHandle_clone' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ClassHandle_delete")||(o.ClassHandle_delete=function(){Ee("'ClassHandle_delete' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"deletionQueue")||(o.deletionQueue=function(){Ee("'deletionQueue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ClassHandle_isDeleted")||(o.ClassHandle_isDeleted=function(){Ee("'ClassHandle_isDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ClassHandle_deleteLater")||(o.ClassHandle_deleteLater=function(){Ee("'ClassHandle_deleteLater' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"flushPendingDeletes")||(o.flushPendingDeletes=function(){Ee("'flushPendingDeletes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"delayFunction")||(o.delayFunction=function(){Ee("'delayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setDelayFunction")||(o.setDelayFunction=function(){Ee("'setDelayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"RegisteredClass")||(o.RegisteredClass=function(){Ee("'RegisteredClass' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"shallowCopyInternalPointer")||(o.shallowCopyInternalPointer=function(){Ee("'shallowCopyInternalPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"downcastPointer")||(o.downcastPointer=function(){Ee("'downcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"upcastPointer")||(o.upcastPointer=function(){Ee("'upcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"validateThis")||(o.validateThis=function(){Ee("'validateThis' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"char_0")||(o.char_0=function(){Ee("'char_0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"char_9")||(o.char_9=function(){Ee("'char_9' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"makeLegalFunctionName")||(o.makeLegalFunctionName=function(){Ee("'makeLegalFunctionName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscriptenWebGLGetIndexed")||(o.emscriptenWebGLGetIndexed=function(){Ee("'emscriptenWebGLGetIndexed' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"warnOnce")||(o.warnOnce=function(){Ee("'warnOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stackSave")||(o.stackSave=function(){Ee("'stackSave' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stackRestore")||(o.stackRestore=function(){Ee("'stackRestore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stackAlloc")||(o.stackAlloc=function(){Ee("'stackAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"AsciiToString")||(o.AsciiToString=function(){Ee("'AsciiToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stringToAscii")||(o.stringToAscii=function(){Ee("'stringToAscii' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"UTF16ToString")||(o.UTF16ToString=function(){Ee("'UTF16ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stringToUTF16")||(o.stringToUTF16=function(){Ee("'stringToUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"lengthBytesUTF16")||(o.lengthBytesUTF16=function(){Ee("'lengthBytesUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"UTF32ToString")||(o.UTF32ToString=function(){Ee("'UTF32ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stringToUTF32")||(o.stringToUTF32=function(){Ee("'stringToUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"lengthBytesUTF32")||(o.lengthBytesUTF32=function(){Ee("'lengthBytesUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"allocateUTF8")||(o.allocateUTF8=function(){Ee("'allocateUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"allocateUTF8OnStack")||(o.allocateUTF8OnStack=function(){Ee("'allocateUTF8OnStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),o.writeStackCookie=te,o.checkStackCookie=re,Object.getOwnPropertyDescriptor(o,"ALLOC_NORMAL")||Object.defineProperty(o,"ALLOC_NORMAL",{configurable:!0,get:function(){Ee("'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(){Ee("'ALLOC_STACK' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),ue=function e(){dn||In(),dn||(ue=e)},o.run=In,o.preInit)for("function"==typeof o.preInit&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return In(),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]=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/////wdxcjYCCCAKIAooAghBgICAgHhyNgIIIAogAjYCACAKIAk2AgQLIAdBEGokACAKDAELECcACyICLQALQQd2BEAgAigCAAwBCyACCyICQfMfIAwQIyACIAxqIgICfyALLQALQQd2BEAgCygCAAwBCyALCyAGECMgAiAGakEBEEMgCEEQaiQAIA0gCkHNIxAaIgIpAgA3AgAgDSACKAIINgIIIAJCADcCACACQQA2AgggBSwAgwFBAEgEQCAFKAJ4EBkLIAUsAJMBQQBIBEAgBSgCiAEQGQsgBSgClAEiBwRAIAUoApgBIgMgByICRwRAA0AgA0EMayICKAIAIggEQCADQQhrIAg2AgAgCBAZCyACIgMgB0cNAAsgBSgClAEhAgsgBSAHNgKYASACEBkLIAVBoAFqJAAgBEEwaiAEKAIgIA0gBCwAKyIDQQBIIgIbIAQoAiQgAyACGxAbGiAELAArQQBODQMgBCgCIBAZDAMLIARBMGpBxyUQGhoMAgsgBEEwakH0JRAaGgwBCyAEQTBqQbAlEBoaCwJAAkAgASgCMCABLAA3IgMgA0EASBsiB0EBaiIIQfj///8HSQRAAkACQCAIQQtPBEAgCEEHckEBaiICEBwhBiAEIAg2AiQgBCAGNgIgIAQgAkGAgICAeHI2AigMAQsgBEEANgIoIARCADcDICAEIAg6ACsgBEEgaiEGIAdFDQELIAYgAUEsaiICKAIAIAIgA0EASBsgBxAyCyAGIAdqQQo7AAAgBEEwaiAEKAIgIARBIGogBCwAKyIDQQBIIgIbIAQoAiQgAyACGxAbGiAELAArQQBIBEAgBCgCIBAZCyABKAIkIAEsACsiAyADQQBIGyIHQQJqIghB+P///wdPDQECQAJAIAhBC08EQCAIQQdyQQFqIgIQHCEGIAQgCDYCJCAEIAY2AiAgBCACQYCAgIB4cjYCKAwBCyAEQQA2AiggBEIANwMgIAQgCDoAKyAEQSBqIQYgB0UNAQsgBiABQSBqIgIoAgAgAiADQQBIGyAHEDILIAYgB2oiAkEAOgACIAJB/RQ7AAAgBEEwaiAEKAIgIARBIGogBCwAKyIDQQBIIgIbIAQoAiQgAyACGxAbGiAELAArQQBIBEAgBCgCIBAZC0GQzQAoAgAiAxAqIgdB+P///wdPDQICQAJAIAdBC08EQCAHQQdyQQFqIgIQHCEGIAQgAkGAgICAeHI2AhwgBCAGNgIUIAQgBzYCGAwBCyAEIAc6AB8gBEEUaiEGIAdFDQELIAYgAyAHEDILIAYgB2pBADoAACAEQSBqIAFBsZYCIARBFGoQVSAEKAIkIQcgBEEANgIkIAQoAiAhAwJAIAEoAhQiAkEITQRAIAEgBzYCFCABIAM2AhAMAQsgAhACIAQoAiQhAiABIAc2AhQgASADNgIQIAJBCUkNACACEAIgBEEANgIkCyAELAAfQQBIBEAgBCgCFBAZCwJAIAQsADtBAE4EQCAEIAQoAjg2AhAgBCAEKQIwNwMIDAELIARBCGohAyAEKAIwIQcgBCgCNCEGIwBBEGsiCCQAAkACQAJAIAZBC0kEQCADIgIgAi0AC0GAAXEgBkH/AHFyOgALIAIgAi0AC0H/AHE6AAsMAQsgBkH3////B0sNASAIQQhqIAZBC08EfyAGQQhqQXhxIgIgAkEBayICIAJBC0YbBUEKC0EBahAwIAgoAgwaIAMgCCgCCCICNgIAIAMgAygCCEGAgICAeHEgCCgCDEH/////B3FyNgIIIAMgAygCCEGAgICAeHI2AgggAyAGNgIECyACIAcgBkEBahAjIAhBEGokAAwBCxAnAAsLIARBIGogAUGwlgIgBEEIahBVIAQoAiQhByAEQQA2AiQgBCgCICEDAkAgASgCDCICQQhNBEAgASAHNgIMIAEgAzYCCAwBCyACEAIgBCgCJCECIAEgBzYCDCABIAM2AgggAkEJSQ0AIAIQAiAEQQA2AiQLIAQsABNBAEgEQCAEKAIIEBkLIARBADYCIAJAQdTOAC0AAEEBcQRAQdDOACgCACEGDAELQQFB+ChBABAFIQZB1M4AQQE6AABB0M4AIAY2AgALAn8gBiABKAIEQeAJIARBIGpBABAEIg5EAAAAAAAA8EFjIA5EAAAAAAAAAABmcQRAIA6rDAELQQALIQMgBCgCICICBEAgAhABCyABKAIcIgJBCU8EQCACEAILIAEgAzYCHCABQaTPADYCGCABIAFBGGoiAiABQRBqEFQgASACIAFBCGoQVCABKAIcIgJBCU8EQCACEAMLIAQgAjYCICAEQQA2AjwCQEG8zgAtAABBAXEEQEG4zgAoAgAhBgwBC0ECQYwoQQAQBSEGQbzOAEEBOgAAQbjOACAGNgIACyAGIAEoAgRBxgkgBEE8aiAEQSBqEAQaIAQoAjwiAgRAIAIQAQsgACABKAIcIgE2AgQgAEGkzwA2AgAgAUEJTwRAIAEQAwsgBCwAO0EASARAIAQoAjAQGQsgBEFAayQADwsQOAALEDgACxA4AAuIAwECfyMAQRBrIgIkACAAKAIUIgFBCU8EQCABEAMLIAIgATYCCCACQQA2AgQCQEG8zgAtAABBAXEEQEG4zgAoAgAhAQwBC0ECQYwoQQAQBSEBQbzOAEEBOgAAQbjOACABNgIACyABIAAoAgRB/QggAkEEaiACQQhqEAQaIAIoAgQiAQRAIAEQAQsgACgCDCIBQQlPBEAgARADCyACIAE2AgggAkEANgIEAkBBvM4ALQAAQQFxBEBBuM4AKAIAIQEMAQtBAkGMKEEAEAUhAUG8zgBBAToAAEG4zgAgATYCAAsgASAAKAIEQf0IIAJBBGogAkEIahAEGiACKAIEIgEEQCABEAELIAAoAhwiAUEJTwRAIAEQAwsgAiABNgIIIAJBADYCBAJAQbzOAC0AAEEBcQRAQbjOACgCACEBDAELQQJBjChBABAFIQFBvM4AQQE6AABBuM4AIAE2AgALIAEgACgCBEHSCSACQQRqIAJBCGoQBBogAigCBCIABEAgABABCyACQRBqJAALBQBBsCYLNQEBfyABIAAoAgQiAkEBdWohASAAKAIAIQAgASACQQFxBH8gASgCACAAaigCAAUgAAsRAgALLwACfyAALAArQQBIBEAgAEEANgIkIAAoAiAMAQsgAEEAOgArIABBIGoLQQA6AAALPQEBfyABIAAoAgQiBkEBdWohASAAKAIAIQAgASACIAMgBCAFIAZBAXEEfyABKAIAIABqKAIABSAACxENAAuGCQEEfyMAQRBrIggkACMAQYACayIFJAAgBUHEAGoiBiABECEgBSAGQe4RECYiBigCCDYCWCAFIAYpAgA3A1AgBkIANwIAIAZBADYCCCAFIAVB0ABqQYQUEBoiBigCCDYCaCAFIAYpAgA3A2AgBkIANwIAIAZBADYCCCAFQThqIgYgAhAhIAUgBUHgAGogBSgCOCAGIAUsAEMiBkEASCIHGyAFKAI8IAYgBxsQGyIGKAIINgJ4IAUgBikCADcDcCAGQgA3AgAgBkEANgIIIAUgBUHwAGpByREQGiIGKAIINgKIASAFIAYpAgA3A4ABIAZCADcCACAGQQA2AgggBUEsaiIGIAEgA6AQISAFIAVBgAFqIAUoAiwgBiAFLAA3IgZBAEgiBxsgBSgCMCAGIAcbEBsiBigCCDYCmAEgBSAGKQIANwOQASAGQgA3AgAgBkEANgIIIAUgBUGQAWpBhBQQGiIGKAIINgKoASAFIAYpAgA3A6ABIAZCADcCACAGQQA2AgggBUEgaiIGIAIgBKAQISAFIAVBoAFqIAUoAiAgBiAFLAArIgZBAEgiBxsgBSgCJCAGIAcbEBsiBigCCDYCuAEgBSAGKQIANwOwASAGQgA3AgAgBkEANgIIIAUgBUGwAWpB3RIQGiIGKAIINgLIASAFIAYpAgA3A8ABIAZCADcCACAGQQA2AgggBUEUaiIGIAMQISAFIAVBwAFqIAUoAhQgBiAFLAAfIgZBAEgiBxsgBSgCGCAGIAcbEBsiBigCCDYC2AEgBSAGKQIANwPQASAGQgA3AgAgBkEANgIIIAUgBUHQAWpBuxIQGiIGKAIINgLoASAFIAYpAgA3A+ABIAZCADcCACAGQQA2AgggBUEIaiIGIAQQISAFIAVB4AFqIAUoAgggBiAFLAATIgZBAEgiBxsgBSgCDCAGIAcbEBsiBigCCDYC+AEgBSAGKQIANwPwASAGQgA3AgAgBkEANgIIIAggBUHwAWpB5hsQGiIGKQIANwIEIAggBigCCDYCDCAGQgA3AgAgBkEANgIIIAUsAPsBQQBIBEAgBSgC8AEQGQsgBSwAE0EASARAIAUoAggQGQsgBSwA6wFBAEgEQCAFKALgARAZCyAFLADbAUEASARAIAUoAtABEBkLIAUsAB9BAEgEQCAFKAIUEBkLIAUsAMsBQQBIBEAgBSgCwAEQGQsgBSwAuwFBAEgEQCAFKAKwARAZCyAFLAArQQBIBEAgBSgCIBAZCyAFLACrAUEASARAIAUoAqABEBkLIAUsAJsBQQBIBEAgBSgCkAEQGQsgBSwAN0EASARAIAUoAiwQGQsgBSwAiwFBAEgEQCAFKAKAARAZCyAFLAB7QQBIBEAgBSgCcBAZCyAFLABDQQBIBEAgBSgCOBAZCyAFLABrQQBIBEAgBSgCYBAZCyAFLABbQQBIBEAgBSgCUBAZCyAFLABPQQBIBEAgBSgCRBAZCyAFQYACaiQAIAAsACtBAEgEQCAAKAIgEBkLIAAgCCkCBDcCICAAIAgoAgw2AiggCEEQaiQACz8BAX8gASAAKAIEIgdBAXVqIQEgACgCACEAIAEgAiADIAQgBSAGIAdBAXEEfyABKAIAIABqKAIABSAACxEOAAvBGwIHfwF8IwBBQGoiCSQAIAkgBTkDICAJIAQ5AxggCSADOQMQIAkgAjkDCCAJIAE5AwAjAEEQayIGJAAgBiAJNgIMQZjNAEGWJSAJQQAQThogBkEQaiQAIwBBgARrIgYkACAJQTRqIgtBADoAACALQQA6AAsCQCABRAAAAAAAAAAAZEUNACAGQQA6APADIAZBADoA+wMgBkEAOgDkAyAGQQA6AO8DIAZCgICAgISAgIDAADcD2AMgBkKAgICAhICAgEA3A9ADIAZCgICAgIyAgIDAADcDyAMgBkKAgICAjICAgEA3A8ADIAZCgICAhISAgMDAADcDuAMgBkKAgICEhICAwEA3A7ADIAZCgICAhIyAgMDAADcDqAMgBkKAgICEjICAwEA3A6ADIAZCgICAhgw3A5gDIAZCgICAhgQ3A5ADIAZCgICAgICAgODAADcDiAMgBkKAgICAgICA4EA3A4ADIAZCgICAiIyAgNBANwP4AiAGQoCAgIiMgIDQwAA3A/ACIAZCgICAiISAgNDAADcD6AIgBkKAgICIhICA0EA3A+ACIAZCgICAhYyAgIBBNwPYAiAGQoCAgIWMgICAwQA3A9ACIAZCgICAhYSAgIDBADcDyAIgBkKAgICFhICAgEE3A8ACIAZCgICAiQQ3A7gCIAZCgICAiQw3A7ACIAZCgICAgICAgJDBADcDqAIgBkKAgICAgICAkEE3A6ACRAAAAAAAAABAIASjIQQgAUSamZmZmZnpv6JEAAAAAAAA8D+gIQ0DQCAGQbABaiIIIAcQLyAGIAhBqwsQJiIIKAIINgLIASAGIAgpAgA3A8ABIAhCADcCACAIQQA2AgggBiAGQcABakHWFRAaIggoAgg2AtgBIAYgCCkCADcD0AEgCEIANwIAIAhBADYCCCAGQaABaiIIIAZBoAJqIAdBA3RqIgoqAgAQLiAGIAZB0AFqIAYoAqABIAggBiwAqwEiCEEASCIMGyAGKAKkASAIIAwbEBsiCCgCCDYC6AEgBiAIKQIANwPgASAIQgA3AgAgCEEANgIIIAYgBkHgAWpB2xsQGiIIKAIINgL4ASAGIAgpAgA3A/ABIAhCADcCACAIQQA2AgggBkGQAWoiCCAKKgIEEC4gBiAGQfABaiAGKAKQASAIIAYsAJsBIghBAEgiChsgBigClAEgCCAKGxAbIggoAgg2AogCIAYgCCkCADcDgAIgCEIANwIAIAhBADYCCCAGIAZBgAJqQaoREBoiCCgCCDYCmAIgBiAIKQIANwOQAiAIQgA3AgAgCEEANgIIIAZB5ANqIAYoApACIAZBkAJqIAYsAJsCIghBAEgiChsgBigClAIgCCAKGxAbGiAGLACbAkEASARAIAYoApACEBkLIAYsAIsCQQBIBEAgBigCgAIQGQsgBiwAmwFBAEgEQCAGKAKQARAZCyAGLAD7AUEASARAIAYoAvABEBkLIAYsAOsBQQBIBEAgBigC4AEQGQsgBiwAqwFBAEgEQCAGKAKgARAZCyAGLADbAUEASARAIAYoAtABEBkLIAYsAMsBQQBIBEAgBigCwAEQGQsgBiwAuwFBAEgEQCAGKAKwARAZCyAGQdABaiIIIAcQLyAGIAhBjQsQJiIIKAIINgLoASAGIAgpAgA3A+ABIAhCADcCACAIQQA2AgggBiAGQeABakHeGxAaIggoAgg2AvgBIAYgCCkCADcD8AEgCEIANwIAIAhBADYCCCAGQcABaiIIQwAAAEBDAABAQEMAAIA/IAdBE0sbIAdBDGtBCEkbEC4gBiAGQfABaiAGKALAASAIIAYsAMsBIghBAEgiChsgBigCxAEgCCAKGxAbIggoAgg2AogCIAYgCCkCADcDgAIgCEIANwIAIAhBADYCCCAGIAZBgAJqQfkVEBoiCCgCCDYCmAIgBiAIKQIANwOQAiAIQgA3AgAgCEEANgIIIAZB8ANqIAYoApACIAZBkAJqIAYsAJsCIghBAEgiChsgBigClAIgCCAKGxAbGiAGLACbAkEASARAIAYoApACEBkLIAYsAIsCQQBIBEAgBigCgAIQGQsgBiwAywFBAEgEQCAGKALAARAZCyAGLAD7AUEASARAIAYoAvABEBkLIAYsAOsBQQBIBEAgBigC4AEQGQsgBiwA2wFBAEgEQCAGKALQARAZCyAHQQFqIgdBGEcNAAsgBkE0aiIHIAQQISAGIAdBvBUQJiIHKAIINgJIIAYgBykCADcDQCAHQgA3AgAgB0EANgIIIAYgBkFAa0G4ERAaIgcoAgg2AlggBiAHKQIANwNQIAdCADcCACAHQQA2AgggBkEoaiIHRAAAAAAAAABAIAWjECEgBiAGQdAAaiAGKAIoIAcgBiwAMyIHQQBIIggbIAYoAiwgByAIGxAbIgcoAgg2AmggBiAHKQIANwNgIAdCADcCACAHQQA2AgggBiAGQeAAakG0HBAaIgcoAgg2AnggBiAHKQIANwNwIAdCADcCACAHQQA2AgggBiAGQfAAaiAGKALkAyAGQeQDaiAGLADvAyIHQQBIIggbIAYoAugDIAcgCBsQGyIHKAIINgKIASAGIAcpAgA3A4ABIAdCADcCACAHQQA2AgggBiAGQYABakHcHBAaIgcoAgg2ApgBIAYgBykCADcDkAEgB0IANwIAIAdBADYCCCAGIAZBkAFqIAYoAvADIAZB8ANqIAYsAPsDIgdBAEgiCBsgBigC9AMgByAIGxAbIgcoAgg2AqgBIAYgBykCADcDoAEgB0IANwIAIAdBADYCCCAGIAZBoAFqQfoZEBoiBygCCDYCuAEgBiAHKQIANwOwASAHQgA3AgAgB0EANgIIIAZBHGoiByANECEgBiAGQbABaiAGKAIcIAcgBiwAJyIHQQBIIggbIAYoAiAgByAIGxAbIgcoAgg2AsgBIAYgBykCADcDwAEgB0IANwIAIAdBADYCCCAGIAZBwAFqQaoUEBoiBygCCDYC2AEgBiAHKQIANwPQASAHQgA3AgAgB0EANgIIIAZBEGoiByABRDMzMzMzM+O/okQAAAAAAADwP6AQISAGIAZB0AFqIAYoAhAgByAGLAAbIgdBAEgiCBsgBigCFCAHIAgbEBsiBygCCDYC6AEgBiAHKQIANwPgASAHQgA3AgAgB0EANgIIIAYgBkHgAWpB/BUQGiIHKAIINgL4ASAGIAcpAgA3A/ABIAdCADcCACAHQQA2AgggBkEEaiIHIAEQISAGIAZB8AFqIAYoAgQgByAGLAAPIgdBAEgiCBsgBigCCCAHIAgbEBsiBygCCDYCiAIgBiAHKQIANwOAAiAHQgA3AgAgB0EANgIIIAYgBkGAAmpBrRwQGiIHKAIINgKYAiAGIAcpAgA3A5ACIAdCADcCACAHQQA2AgggCyAGKAKQAiAGQZACaiAGLACbAiIHQQBIIggbIAYoApQCIAcgCBsQGxogBiwAmwJBAEgEQCAGKAKQAhAZCyAGLACLAkEASARAIAYoAoACEBkLIAYsAA9BAEgEQCAGKAIEEBkLIAYsAPsBQQBIBEAgBigC8AEQGQsgBiwA6wFBAEgEQCAGKALgARAZCyAGLAAbQQBIBEAgBigCEBAZCyAGLADbAUEASARAIAYoAtABEBkLIAYsAMsBQQBIBEAgBigCwAEQGQsgBiwAJ0EASARAIAYoAhwQGQsgBiwAuwFBAEgEQCAGKAKwARAZCyAGLACrAUEASARAIAYoAqABEBkLIAYsAJsBQQBIBEAgBigCkAEQGQsgBiwAiwFBAEgEQCAGKAKAARAZCyAGLAB7QQBIBEAgBigCcBAZCyAGLABrQQBIBEAgBigCYBAZCyAGLAAzQQBIBEAgBigCKBAZCyAGLABbQQBIBEAgBigCUBAZCyAGLABLQQBIBEAgBigCQBAZCyAGLAA/QQBIBEAgBigCNBAZCyAGLADvA0EASARAIAYoAuQDEBkLIAYsAPsDQQBODQAgBigC8AMQGQsCQCADRAAAAAAAAAAAZEUNACAGQeQDaiIHIANEzczMzMzM3D+iRJqZmZmZmbk/oBAhIAYgB0GjGBAmIgcoAgg2AvgDIAYgBykCADcD8AMgB0IANwIAIAdBADYCCCAGIAZB8ANqQcUjEBoiBygCCDYCqAIgBiAHKQIANwOgAiAHQgA3AgAgB0EANgIIIAsgBigCoAIgBkGgAmogBiwAqwIiB0EASCIIGyAGKAKkAiAHIAgbEBsaIAYsAKsCQQBIBEAgBigCoAIQGQsgBiwA+wNBAEgEQCAGKALwAxAZCyAGLADvA0EATg0AIAYoAuQDEBkLAkAgAkQAAAAAAAAAAGRFDQAgBkHkA2oiByACRLgehetRuL4/ohAhIAYgB0GUFBAmIgcoAgg2AvgDIAYgBykCADcD8AMgB0IANwIAIAdBADYCCCAGIAZB8ANqQaQmEBoiBygCCDYCqAIgBiAHKQIANwOgAiAHQgA3AgAgB0EANgIIIAsgBigCoAIgBkGgAmogBiwAqwIiB0EASCILGyAGKAKkAiAHIAsbEBsaIAYsAKsCQQBIBEAgBigCoAIQGQsgBiwA+wNBAEgEQCAGKALwAxAZCyAGLADvA0EATg0AIAYoAuQDEBkLIAZBgARqJAAgACwAN0EASARAIAAoAiwQGQsgACAJKQI0NwIsIAAgCSgCPDYCNCAJQUBrJAALYAIBfwF8IwBBEGsiAiQAIAJBADYCDCABKAIEQezJACACQQxqEAkhAyACKAIMIgEEQCABEAELIAACfyADmUQAAAAAAADgQWMEQCADqgwBC0GAgICAeAs2AkAgAkEQaiQACzcBAX8jAEEQayICJAAgAiABKAJANgIIIABB7MkAIAJBCGoQCDYCBCAAQaTPADYCACACQRBqJAALYAIBfwF8IwBBEGsiAiQAIAJBADYCDCABKAIEQezJACACQQxqEAkhAyACKAIMIgEEQCABEAELIAACfyADmUQAAAAAAADgQWMEQCADqgwBC0GAgICAeAs2AjwgAkEQaiQACyIBAX4gASACrSADrUIghoQgBCAAEQwAIgVCIIinJAEgBacLNwEBfyMAQRBrIgIkACACIAEoAjw2AgggAEHsyQAgAkEIahAINgIEIABBpM8ANgIAIAJBEGokAAsLvUQWAEGACAukH3NldEJlYXV0eQAtKyAgIDBYMHgALTBYKzBYIDBYLTB4KzB4IDB4AHVuc2lnbmVkIHNob3J0AHVuc2lnbmVkIGludABpbml0AGZsb2F0AHVpbnQ2NF90AGJsdXJSYWRpdXMAdmVjdG9yAG1pcnJvcgBhdHRhY2hTaGFkZXIAZGVsZXRlU2hhZGVyAGNyZWF0ZVNoYWRlcgBjb21waWxlU2hhZGVyAHVuc2lnbmVkIGNoYXIAc3RkOjpleGNlcHRpb24AbmFuAGxpbmtQcm9ncmFtAGRlbGV0ZVByb2dyYW0AY3JlYXRlUHJvZ3JhbQBib29sAHNldFdhdGVyTWFyawBzdG9wV2F0ZXJNYXJrAHVuc2lnbmVkIGxvbmcAc3RkOjp3c3RyaW5nAGJhc2ljX3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBpbmYAJWYAY2xvc2UAZG91YmxlAHZiTW9kZQBzaGFkZXJTb3VyY2UAdm9pZABzYW1wbGVDb2xvciArPSB0ZXh0dXJlKGZyYW1lLCBibHVyQ29vcmRpbmF0ZXNbAE5BTgBJTkYAZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2hvcnQ+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]),H("CriOS"),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]}}(),navigator.userAgentData.getHighEntropyValues(["architecture","bitness","model","platformVersion","fullVersionList"]);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=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(e.sent.auth){e.next=11;break}throw A=this._core.errorModule,c=A.RtcError,g=A.ErrorCodeDictionary,d=this._core.utils.isOverseaSdkAppId(t.sdkAppId)?"https://trtc.io/document/56025":"https://cloud.tencent.com/document/product/647/85386",new c({code:g.NEED_TO_BUY,messageParams:{value:"Virtual Background",url:d}});case 11:return this.preLoadPromise||(this.preLoadPromise=this.preload(this._core.assetsPath)),e.next=14,this.preLoadPromise;case 14:return e.abrupt("return",this.core.room.videoManager.setVirtualBackground({type:n,imageUrl:o,blurLevel:a,onAbort:function(e){var t;l.core.kvStatManager.addEnum({key:Le,value:l.getKVTypeValue(!0,l.isAborted,"ABORT_IN_VIDEO_MANAGER")}),l.isAborted=!0,l.core.clearStarted(l,l.getGroup()),l.stop(),delete l.preLoadPromise,null==(t=l.onAbort)||t.call(l,e)}}).then((function(){l.core.kvStatManager.addEnum({key:Le,value:l.getKVTypeValue(!1,l.isAborted,"NONE")})})).catch((function(){l.core.kvStatManager.addEnum({key:Le,value:l.getKVTypeValue(!0,l.isAborted,"OTHER")})})));case 15: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}));