dilithium-crystals-js 1.0.4 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # dilithium-crystals-js
2
2
 
3
- dilithium-crystals-js is a JavaScript implementation of the Dilithium post-quantum cryptographic signature scheme. This package provides a unified API for both Node.js and browser environments, offering robust quantum-resistant digital signatures.
3
+ dilithium-crystals-js is a JavaScript implementation of the Dilithium post-quantum cryptographic signature scheme. This package provides a unified API for both Node.js and browser environments, offering robust quantum-resistant digital signatures. It includes TypeScript declarations (.d.ts files) for improved IDE support, type checking, and autocompletion.
4
4
 
5
5
  ## Features
6
6
 
@@ -55,10 +55,15 @@ Dilithium.then((dilithium) => {
55
55
  For browser environments, include the minified script in your HTML
56
56
 
57
57
  ```javascript
58
- <script src="path/to/dilithium.min.js"></script>;
58
+ import { createDilithium } from "./node_modules/dilithium-crystals-js/dist/dilithium.min.js";
59
+
60
+ async function main() {
61
+ let dilithium = await createDilithium();
62
+
63
+ console.log("Dilithium initialized:", dilithium);
59
64
 
60
- Dilithium.then((dilithium) => {
61
65
  // Generate keys
66
+
62
67
  const kind = 2; // Dilithium2
63
68
  const { publicKey, privateKey } = dilithium.generateKeys(kind);
64
69
 
@@ -78,9 +83,13 @@ Dilithium.then((dilithium) => {
78
83
  "Verification result:",
79
84
  verificationResult.result === 0 ? "Valid" : "Invalid"
80
85
  );
81
- });
86
+ }
87
+
88
+ main();
82
89
  ```
83
90
 
91
+ Note: Make sure to properly configure your build process to handle ES6 modules and to include the WASM file in your public directory.
92
+
84
93
  ## API Reference
85
94
 
86
95
  ### `dilithium.generateKeys(kind, seed?)`
@@ -0,0 +1,34 @@
1
+ // Re-export everything from common.d.ts
2
+
3
+ import {
4
+ DilithiumParams,
5
+ KeyPair,
6
+ SignatureResult,
7
+ VerificationResult,
8
+ } from "../src/common";
9
+
10
+ export * from "../src/common";
11
+
12
+ // Define the DilithiumInterface
13
+ export interface DilithiumInterface {
14
+ generateKeys: (kind: number, seed?: Uint8Array) => KeyPair;
15
+ sign: (
16
+ message: Uint8Array,
17
+ privateKey: Uint8Array,
18
+ kind: number
19
+ ) => SignatureResult;
20
+ verify: (
21
+ signature: Uint8Array,
22
+ message: Uint8Array,
23
+ publicKey: Uint8Array,
24
+ kind: number
25
+ ) => VerificationResult;
26
+ DILITHIUM_PARAMS: DilithiumParams[];
27
+ }
28
+
29
+ // Export the createDilithium function
30
+ export function createDilithium(): Promise<DilithiumInterface>;
31
+
32
+ // If you have any browser-specific types or functions, define and export them here
33
+ // For example:
34
+ export function fetchWasm(): Promise<ArrayBuffer>;
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Dilithium=t():e.Dilithium=t()}(this,(()=>(()=>{var e={944:(e,t,r)=>{var o,n=(o=(o="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0)||"/index.js",function(e){var t,n,i=void 0!==(e=e||{})?e:{};i.ready=new Promise((function(e,r){t=e,n=r})),Object.getOwnPropertyDescriptor(i.ready,"_malloc")||(Object.defineProperty(i.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(i.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(i.ready,"_free")||(Object.defineProperty(i.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(i.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(i.ready,"_SHA3_256")||(Object.defineProperty(i.ready,"_SHA3_256",{configurable:!0,get:function(){Ee("You are getting _SHA3_256 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(i.ready,"_SHA3_256",{configurable:!0,set:function(){Ee("You are setting _SHA3_256 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(i.ready,"_randombytes")||(Object.defineProperty(i.ready,"_randombytes",{configurable:!0,get:function(){Ee("You are getting _randombytes on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(i.ready,"_randombytes",{configurable:!0,set:function(){Ee("You are setting _randombytes on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(i.ready,"_dilithium_keygen")||(Object.defineProperty(i.ready,"_dilithium_keygen",{configurable:!0,get:function(){Ee("You are getting _dilithium_keygen on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(i.ready,"_dilithium_keygen",{configurable:!0,set:function(){Ee("You are setting _dilithium_keygen on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(i.ready,"_dilithium_sign")||(Object.defineProperty(i.ready,"_dilithium_sign",{configurable:!0,get:function(){Ee("You are getting _dilithium_sign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(i.ready,"_dilithium_sign",{configurable:!0,set:function(){Ee("You are setting _dilithium_sign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(i.ready,"_dilithium_verify")||(Object.defineProperty(i.ready,"_dilithium_verify",{configurable:!0,get:function(){Ee("You are getting _dilithium_verify on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(i.ready,"_dilithium_verify",{configurable:!0,set:function(){Ee("You are setting _dilithium_verify on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(i.ready,"___stdio_exit")||(Object.defineProperty(i.ready,"___stdio_exit",{configurable:!0,get:function(){Ee("You are getting ___stdio_exit on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(i.ready,"___stdio_exit",{configurable:!0,set:function(){Ee("You are setting ___stdio_exit on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(i.ready,"onRuntimeInitialized")||(Object.defineProperty(i.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(i.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 a=Object.assign({},i),s=[],d="object"==typeof window,c="function"==typeof importScripts,l="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,p=!d&&!l&&!c;if(i.ENVIRONMENT)throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -s ENVIRONMENT=web or -s ENVIRONMENT=node)");var E,u,f,h,O,m,g="";if(l){if("object"!=typeof process)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?)");g=c?r(507).dirname(g)+"/":"//",m=()=>{O||(h=r(175),O=r(507))},E=function(e,t){return m(),e=O.normalize(e),h.readFileSync(e,t?void 0:"utf8")},f=e=>{var t=E(e,!0);return t.buffer||(t=new Uint8Array(t)),I(t.buffer),t},u=(e,t,r)=>{m(),e=O.normalize(e),h.readFile(e,(function(e,o){e?r(e):t(o.buffer)}))},process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),s=process.argv.slice(2),process.on("uncaughtException",(function(e){if(!(e instanceof Ke))throw e})),process.on("unhandledRejection",(function(e){throw e})),i.inspect=function(){return"[Emscripten Module object]"}}else if(p){if("object"==typeof process||"object"==typeof window||"function"==typeof importScripts)throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");"undefined"!=typeof read&&(E=function(e){return read(e)}),f=function(e){let t;return"function"==typeof readbuffer?new Uint8Array(readbuffer(e)):(t=read(e,"binary"),I("object"==typeof t),t)},u=function(e,t,r){setTimeout((()=>t(f(e))),0)},"undefined"!=typeof scriptArgs?s=scriptArgs:void 0!==arguments&&(s=arguments),"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print)}else{if(!d&&!c)throw new Error("environment detection error");if(c?g=self.location.href:"undefined"!=typeof document&&document.currentScript&&(g=document.currentScript.src),o&&(g=o),g=0!==g.indexOf("blob:")?g.substr(0,g.replace(/[?#].*/,"").lastIndexOf("/")+1):"","object"!=typeof window&&"function"!=typeof importScripts)throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");E=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},c&&(f=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),u=(e,t,r)=>{var o=new XMLHttpRequest;o.open("GET",e,!0),o.responseType="arraybuffer",o.onload=()=>{200==o.status||0==o.status&&o.response?t(o.response):r()},o.onerror=r,o.send(null)}}var w,T=i.print||console.log.bind(console),y=i.printErr||console.warn.bind(console);function _(e){_.shown||(_.shown={}),_.shown[e]||(_.shown[e]=1,y(e))}Object.assign(i,a),a=null,i.arguments&&(s=i.arguments),Object.getOwnPropertyDescriptor(i,"arguments")||Object.defineProperty(i,"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)")}}),i.thisProgram&&i.thisProgram,Object.getOwnPropertyDescriptor(i,"thisProgram")||Object.defineProperty(i,"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)")}}),i.quit&&i.quit,Object.getOwnPropertyDescriptor(i,"quit")||Object.defineProperty(i,"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)")}}),I(void 0===i.memoryInitializerPrefixURL,"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),I(void 0===i.pthreadMainPrefixURL,"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),I(void 0===i.cdInitializerPrefixURL,"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),I(void 0===i.filePackagePrefixURL,"Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),I(void 0===i.read,"Module.read option was removed (modify read_ in JS)"),I(void 0===i.readAsync,"Module.readAsync option was removed (modify readAsync in JS)"),I(void 0===i.readBinary,"Module.readBinary option was removed (modify readBinary in JS)"),I(void 0===i.setWindowTitle,"Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),I(void 0===i.TOTAL_MEMORY,"Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"),Object.getOwnPropertyDescriptor(i,"read")||Object.defineProperty(i,"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(i,"readAsync")||Object.defineProperty(i,"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(i,"readBinary")||Object.defineProperty(i,"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(i,"setWindowTitle")||Object.defineProperty(i,"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)")}}),I(!p,"shell environment detected but not enabled at build time. Add 'shell' to `-s ENVIRONMENT` to enable."),i.wasmBinary&&(w=i.wasmBinary),Object.getOwnPropertyDescriptor(i,"wasmBinary")||Object.defineProperty(i,"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)")}});var D;i.noExitRuntime;function b(e,t,r="i8",o){if("*"===r.charAt(r.length-1)&&(r="i32"),o)switch(r){case"i1":case"i8":U[0|e]=t;break;case"i16":x[e>>1]=t;break;case"i32":C[e>>2]=t;break;case"i64":L[e>>3]=BigInt(t);break;case"float":H[e>>2]=t;break;case"double":X[e>>3]=t;break;default:Ee("invalid type for setValue: "+r)}else switch(r){case"i1":case"i8":M(0|e,0|t,1);break;case"i16":M(0|e,0|t,2);break;case"i32":M(0|e,0|t,4);break;case"i64":M(0|e,0|t,8);break;case"float":R(0|e,Math.fround(t),4);break;case"double":R(0|e,+t,8);break;default:Ee("invalid type for setValue: "+r)}}function v(e,t="i8",r){if("*"===t.charAt(t.length-1)&&(t="i32"),r)switch(t){case"i1":case"i8":return U[0|e];case"i16":return x[e>>1];case"i32":return C[e>>2];case"i64":return Number(L[e>>3]);case"float":return H[e>>2];case"double":return Number(X[e>>3]);default:Ee("invalid type for getValue: "+t)}else switch(t){case"i1":case"i8":return 0|S(0|e,1,0);case"i16":return 0|S(0|e,2,0);case"i32":return 0|S(0|e,4,0);case"i64":return 0|S(0|e,8,0);case"float":return Math.fround(A(0|e,4,0));case"double":return+A(0|e,8,0);default:Ee("invalid type for getValue: "+t)}return null}function P(e,t){switch(e){case 1:return"i8";case 2:return"i16";case 4:return t?"float":"i32";case 8:return t?"double":"i64";default:I(0)}}function M(e,t,r,o){if(e<=0&&Ee("segmentation fault storing "+r+" bytes to address "+e),e%r!=0&&Ee("alignment error storing to address "+e+", which was expected to be aligned to a multiple of "+r),oe&&!ne){var n=Le()>>>0;e+r>n&&Ee("segmentation fault, exceeded the top of the available dynamic heap when storing "+r+" bytes to address "+e+". DYNAMICTOP="+n),I(n>=Qe()),I(n<=U.length)}return b(e,t,P(r,o),1),t}function R(e,t,r){return M(e,t,r,!0)}function S(e,t,r,o){if(e<=0&&Ee("segmentation fault loading "+t+" bytes from address "+e),e%t!=0&&Ee("alignment error loading from address "+e+", which was expected to be aligned to a multiple of "+t),oe&&!ne){var n=Le()>>>0;e+t>n&&Ee("segmentation fault, exceeded the top of the available dynamic heap when loading "+t+" bytes from address "+e+". DYNAMICTOP="+n),I(n>=Qe()),I(n<=U.length)}var i,a,s=P(t,o),d=v(e,s,1);return r&&(i=d,a=parseInt(s.substr(1),10),d=i>=0?i:a<=32?2*Math.abs(1<<a-1)+i:Math.pow(2,a)+i),d}function A(e,t,r){return S(e,t,r,!0)}Object.getOwnPropertyDescriptor(i,"noExitRuntime")||Object.defineProperty(i,"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"!=typeof WebAssembly&&Ee("no native wasm support detected");var F=!1;function I(e,t){e||Ee("Assertion failed"+(t?": "+t:""))}function k(e,t,r,o,n){var a={string:function(e){var t=0;if(null!=e&&0!==e){var r=1+(e.length<<2);W(e,t=We(r),r)}return t},array:function(e){var t=We(e.length);return function(e,t){I(e.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),U.set(e,t)}(e,t),t}},s=function(e){var t=i["_"+e];return I(t,"Cannot call unknown function "+e+", make sure it is exported"),t}(e),d=[],c=0;if(I("array"!==t,'Return type should not be "array".'),o)for(var l=0;l<o.length;l++){var p=a[r[l]];p?(0===c&&(c=Ye()),d[l]=p(o[l])):d[l]=o[l]}var E=s.apply(null,d);return E=function(e){return 0!==c&&ze(c),function(e){return"string"===t?Y(e):"boolean"===t?Boolean(e):e}(e)}(E)}var N,U,j,x,C,H,L,X,Q="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function B(e,t,r){for(var o=t+r,n=t;e[n]&&!(n>=o);)++n;if(n-t>16&&e.subarray&&Q)return Q.decode(e.subarray(t,n));for(var i="";t<n;){var a=e[t++];if(128&a){var s=63&e[t++];if(192!=(224&a)){var d=63&e[t++];if(224==(240&a)?a=(15&a)<<12|s<<6|d:(240!=(248&a)&&_("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|d<<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 Y(e,t){return e?B(j,e,t):""}function z(e,t,r,o){if(!(o>0))return 0;for(var n=r,i=r+o-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>1114111&&_("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-0x10FFFF)."),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-n}function W(e,t,r){return I("number"==typeof r,"stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),z(e,j,t,r)}function K(e){for(var t=0,r=0;r<e.length;++r){var o=e.charCodeAt(r);o>=55296&&o<=57343&&(o=65536+((1023&o)<<10)|1023&e.charCodeAt(++r)),o<=127?++t:t+=o<=2047?2:o<=65535?3:4}return t}function V(e){N=e,i.HEAP8=U=new Int8Array(e),i.HEAP16=x=new Int16Array(e),i.HEAP32=C=new Int32Array(e),i.HEAPU8=j=new Uint8Array(e),i.HEAPU16=new Uint16Array(e),i.HEAPU32=new Uint32Array(e),i.HEAPF32=H=new Float32Array(e),i.HEAPF64=X=new Float64Array(e),i.HEAP64=L=new BigInt64Array(e),i.HEAPU64=new BigUint64Array(e)}"undefined"!=typeof TextDecoder&&new TextDecoder("utf-16le");var G=5242880;i.TOTAL_STACK&&I(G===i.TOTAL_STACK,"the stack size can no longer be determined at runtime");var q,Z=i.INITIAL_MEMORY||16777216;function J(){var e=Be();I(!(3&e)),M(e+4|0,34821223,4),M(e+8|0,-1984246274,4)}function $(){if(!F){var e=Be(),t=S(e+4|0,4,1)>>>0,r=S(e+8|0,4,1)>>>0;34821223==t&&2310721022==r||Ee("Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x2135467, but received 0x"+r.toString(16)+" 0x"+t.toString(16))}}Object.getOwnPropertyDescriptor(i,"INITIAL_MEMORY")||Object.defineProperty(i,"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)")}}),I(Z>=G,"INITIAL_MEMORY should be larger than TOTAL_STACK, was "+Z+"! (TOTAL_STACK="+G+")"),I("undefined"!=typeof Int32Array&&"undefined"!=typeof Float64Array&&null!=Int32Array.prototype.subarray&&null!=Int32Array.prototype.set,"JS engine does not provide full typed array support"),I(!i.wasmMemory,"Use of `wasmMemory` detected. Use -s IMPORTED_MEMORY to define wasmMemory externally"),I(16777216==Z,"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 ee=[],te=[],re=[],oe=!1,ne=!1;I(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),I(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),I(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),I(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 ie=0,ae=null,se=null,de={};function ce(e){for(var t=e;;){if(!de[e])return e;e=t+Math.random()}}function le(e){ie++,i.monitorRunDependencies&&i.monitorRunDependencies(ie),e?(I(!de[e]),de[e]=1,null===ae&&"undefined"!=typeof setInterval&&(ae=setInterval((function(){if(F)return clearInterval(ae),void(ae=null);var e=!1;for(var t in de)e||(e=!0,y("still waiting on run dependencies:")),y("dependency: "+t);e&&y("(end of list)")}),1e4))):y("warning: run dependency added without ID")}function pe(e){if(ie--,i.monitorRunDependencies&&i.monitorRunDependencies(ie),e?(I(de[e]),delete de[e]):y("warning: run dependency removed without ID"),0==ie&&(null!==ae&&(clearInterval(ae),ae=null),se)){var t=se;se=null,t()}}function Ee(e){i.onAbort&&i.onAbort(e),y(e="Aborted("+e+")"),F=!0;var t=new WebAssembly.RuntimeError(e);throw n(t),t}i.preloadedImages={},i.preloadedAudios={};var ue,fe,he="data:application/octet-stream;base64,";function Oe(e){return e.startsWith(he)}function me(e){return e.startsWith("file://")}function ge(e,t){return function(){var r=e,o=t;return t||(o=i.asm),I(oe,"native function `"+r+"` called before runtime initialization"),I(!ne,"native function `"+r+"` called after runtime exit (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),o[e]||I(o[e],"exported native function `"+r+"` not found"),o[e].apply(null,arguments)}}function we(e){try{if(e==ue&&w)return new Uint8Array(w);if(f)return f(e);throw"both async and sync fetching of the wasm failed"}catch(e){Ee(e)}}function Te(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var r=t.func;"number"==typeof r?void 0===t.arg?De(r)():De(r)(t.arg):r(void 0===t.arg?null:t.arg)}else t(i)}}function ye(e){return e.replace(/\b_Z[\w\d_]+/g,(function(e){var t,r=(t=e,_("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),t);return e===r?e:r+" ["+e+"]"}))}Oe(ue="dilithium.wasm")||(fe=ue,ue=i.locateFile?i.locateFile(fe,g):g+fe);var _e=[];function De(e){var t=_e[e];return t||(e>=_e.length&&(_e.length=e+1),_e[e]=t=q.get(e)),I(q.get(e)==t,"JavaScript-side Wasm function table mirror is out of date!"),t}var be={splitPath:function(e){return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1)},normalizeArray:function(e,t){for(var r=0,o=e.length-1;o>=0;o--){var n=e[o];"."===n?e.splice(o,1):".."===n?(e.splice(o,1),r++):r&&(e.splice(o,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=be.normalizeArray(e.split("/").filter((function(e){return!!e})),!t).join("/"))||t||(e="."),e&&r&&(e+="/"),(t?"/":"")+e},dirname:function(e){var t=be.splitPath(e),r=t[0],o=t[1];return r||o?(o&&(o=o.substr(0,o.length-1)),r+o):"."},basename:function(e){if("/"===e)return"/";var t=(e=(e=be.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?e:e.substr(t+1)},extname:function(e){return be.splitPath(e)[3]},join:function(){var e=Array.prototype.slice.call(arguments,0);return be.normalize(e.join("/"))},join2:function(e,t){return be.normalize(e+"/"+t)}},ve={resolve:function(){for(var e="",t=!1,r=arguments.length-1;r>=-1&&!t;r--){var o=r>=0?arguments[r]:Ae.cwd();if("string"!=typeof o)throw new TypeError("Arguments to path.resolve must be strings");if(!o)return"";e=o+"/"+e,t="/"===o.charAt(0)}return(t?"/":"")+(e=be.normalizeArray(e.split("/").filter((function(e){return!!e})),!t).join("/"))||"."},relative:function(e,t){function r(e){for(var t=0;t<e.length&&""===e[t];t++);for(var r=e.length-1;r>=0&&""===e[r];r--);return t>r?[]:e.slice(t,r-t+1)}e=ve.resolve(e).substr(1),t=ve.resolve(t).substr(1);for(var o=r(e.split("/")),n=r(t.split("/")),i=Math.min(o.length,n.length),a=i,s=0;s<i;s++)if(o[s]!==n[s]){a=s;break}var d=[];for(s=a;s<o.length;s++)d.push("..");return(d=d.concat(n.slice(a))).join("/")}},Pe={ttys:[],init:function(){},shutdown:function(){},register:function(e,t){Pe.ttys[e]={input:[],output:[],ops:t},Ae.registerDevice(e,Pe.stream_ops)},stream_ops:{open:function(e){var t=Pe.ttys[e.node.rdev];if(!t)throw new Ae.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,o,n){if(!e.tty||!e.tty.ops.get_char)throw new Ae.ErrnoError(60);for(var i=0,a=0;a<o;a++){var s;try{s=e.tty.ops.get_char(e.tty)}catch(e){throw new Ae.ErrnoError(29)}if(void 0===s&&0===i)throw new Ae.ErrnoError(6);if(null==s)break;i++,t[r+a]=s}return i&&(e.node.timestamp=Date.now()),i},write:function(e,t,r,o,n){if(!e.tty||!e.tty.ops.put_char)throw new Ae.ErrnoError(60);try{for(var i=0;i<o;i++)e.tty.ops.put_char(e.tty,t[r+i])}catch(e){throw new Ae.ErrnoError(29)}return o&&(e.node.timestamp=Date.now()),i}},default_tty_ops:{get_char:function(e){if(!e.input.length){var t=null;if(l){var r=Buffer.alloc(256),o=0;try{o=h.readSync(process.stdin.fd,r,0,256,-1)}catch(e){if(!e.toString().includes("EOF"))throw e;o=0}t=o>0?r.slice(0,o).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=je(t,!0)}return e.input.shift()},put_char:function(e,t){null===t||10===t?(T(B(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(T(B(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,t){null===t||10===t?(y(B(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(y(B(e.output,0)),e.output=[])}}},Me={ops_table:null,mount:function(e){return Me.createNode(null,"/",16895,0)},createNode:function(e,t,r,o){if(Ae.isBlkdev(r)||Ae.isFIFO(r))throw new Ae.ErrnoError(63);Me.ops_table||(Me.ops_table={dir:{node:{getattr:Me.node_ops.getattr,setattr:Me.node_ops.setattr,lookup:Me.node_ops.lookup,mknod:Me.node_ops.mknod,rename:Me.node_ops.rename,unlink:Me.node_ops.unlink,rmdir:Me.node_ops.rmdir,readdir:Me.node_ops.readdir,symlink:Me.node_ops.symlink},stream:{llseek:Me.stream_ops.llseek}},file:{node:{getattr:Me.node_ops.getattr,setattr:Me.node_ops.setattr},stream:{llseek:Me.stream_ops.llseek,read:Me.stream_ops.read,write:Me.stream_ops.write,allocate:Me.stream_ops.allocate,mmap:Me.stream_ops.mmap,msync:Me.stream_ops.msync}},link:{node:{getattr:Me.node_ops.getattr,setattr:Me.node_ops.setattr,readlink:Me.node_ops.readlink},stream:{}},chrdev:{node:{getattr:Me.node_ops.getattr,setattr:Me.node_ops.setattr},stream:Ae.chrdev_stream_ops}});var n=Ae.createNode(e,t,r,o);return Ae.isDir(n.mode)?(n.node_ops=Me.ops_table.dir.node,n.stream_ops=Me.ops_table.dir.stream,n.contents={}):Ae.isFile(n.mode)?(n.node_ops=Me.ops_table.file.node,n.stream_ops=Me.ops_table.file.stream,n.usedBytes=0,n.contents=null):Ae.isLink(n.mode)?(n.node_ops=Me.ops_table.link.node,n.stream_ops=Me.ops_table.link.stream):Ae.isChrdev(n.mode)&&(n.node_ops=Me.ops_table.chrdev.node,n.stream_ops=Me.ops_table.chrdev.stream),n.timestamp=Date.now(),e&&(e.contents[t]=n,e.timestamp=n.timestamp),n},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 o=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(o.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=Ae.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,Ae.isDir(e.mode)?t.size=4096:Ae.isFile(e.mode)?t.size=e.usedBytes:Ae.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&&Me.resizeFileStorage(e,t.size)},lookup:function(e,t){throw Ae.genericErrors[44]},mknod:function(e,t,r,o){return Me.createNode(e,t,r,o)},rename:function(e,t,r){if(Ae.isDir(e.mode)){var o;try{o=Ae.lookupNode(t,r)}catch(e){}if(o)for(var n in o.contents)throw new Ae.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=Ae.lookupNode(e,t);for(var o in r.contents)throw new Ae.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 o=Me.createNode(e,t,41471,0);return o.link=r,o},readlink:function(e){if(!Ae.isLink(e.mode))throw new Ae.ErrnoError(28);return e.link}},stream_ops:{read:function(e,t,r,o,n){var i=e.node.contents;if(n>=e.node.usedBytes)return 0;var a=Math.min(e.node.usedBytes-n,o);if(I(a>=0),a>8&&i.subarray)t.set(i.subarray(n,n+a),r);else for(var s=0;s<a;s++)t[r+s]=i[n+s];return a},write:function(e,t,r,o,n,i){if(I(!(t instanceof ArrayBuffer)),t.buffer===U.buffer&&(i=!1),!o)return 0;var a=e.node;if(a.timestamp=Date.now(),t.subarray&&(!a.contents||a.contents.subarray)){if(i)return I(0===n,"canOwn must imply no weird position inside the file"),a.contents=t.subarray(r,r+o),a.usedBytes=o,o;if(0===a.usedBytes&&0===n)return a.contents=t.slice(r,r+o),a.usedBytes=o,o;if(n+o<=a.usedBytes)return a.contents.set(t.subarray(r,r+o),n),o}if(Me.expandFileStorage(a,n+o),a.contents.subarray&&t.subarray)a.contents.set(t.subarray(r,r+o),n);else for(var s=0;s<o;s++)a.contents[n+s]=t[r+s];return a.usedBytes=Math.max(a.usedBytes,n+o),o},llseek:function(e,t,r){var o=t;if(1===r?o+=e.position:2===r&&Ae.isFile(e.node.mode)&&(o+=e.node.usedBytes),o<0)throw new Ae.ErrnoError(28);return o},allocate:function(e,t,r){Me.expandFileStorage(e.node,t+r),e.node.usedBytes=Math.max(e.node.usedBytes,t+r)},mmap:function(e,t,r,o,n,i){if(0!==t)throw new Ae.ErrnoError(28);if(!Ae.isFile(e.node.mode))throw new Ae.ErrnoError(43);var a,s,d=e.node.contents;if(2&i||d.buffer!==N){if((o>0||o+r<d.length)&&(d=d.subarray?d.subarray(o,o+r):Array.prototype.slice.call(d,o,o+r)),s=!0,!(a=void Ee("internal error: mmapAlloc called but `emscripten_builtin_memalign` native symbol not exported")))throw new Ae.ErrnoError(48);U.set(d,a)}else s=!1,a=d.byteOffset;return{ptr:a,allocated:s}},msync:function(e,t,r,o,n){if(!Ae.isFile(e.node.mode))throw new Ae.ErrnoError(43);return 2&n||Me.stream_ops.write(e,t,0,o,r,!1),0}}},Re={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"},Se={},Ae={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(e,t={})=>{if(!(e=ve.resolve(Ae.cwd(),e)))return{path:"",node:null};var r={follow_mount:!0,recurse_count:0};for(var o in r)void 0===t[o]&&(t[o]=r[o]);if(t.recurse_count>8)throw new Ae.ErrnoError(32);for(var n=be.normalizeArray(e.split("/").filter((e=>!!e)),!1),i=Ae.root,a="/",s=0;s<n.length;s++){var d=s===n.length-1;if(d&&t.parent)break;if(i=Ae.lookupNode(i,n[s]),a=be.join2(a,n[s]),Ae.isMountpoint(i)&&(!d||d&&t.follow_mount)&&(i=i.mounted.root),!d||t.follow)for(var c=0;Ae.isLink(i.mode);){var l=Ae.readlink(a);if(a=ve.resolve(be.dirname(a),l),i=Ae.lookupPath(a,{recurse_count:t.recurse_count}).node,c++>40)throw new Ae.ErrnoError(32)}}return{path:a,node:i}},getPath:e=>{for(var t;;){if(Ae.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:(e,t)=>{for(var r=0,o=0;o<t.length;o++)r=(r<<5)-r+t.charCodeAt(o)|0;return(e+r>>>0)%Ae.nameTable.length},hashAddNode:e=>{var t=Ae.hashName(e.parent.id,e.name);e.name_next=Ae.nameTable[t],Ae.nameTable[t]=e},hashRemoveNode:e=>{var t=Ae.hashName(e.parent.id,e.name);if(Ae.nameTable[t]===e)Ae.nameTable[t]=e.name_next;else for(var r=Ae.nameTable[t];r;){if(r.name_next===e){r.name_next=e.name_next;break}r=r.name_next}},lookupNode:(e,t)=>{var r=Ae.mayLookup(e);if(r)throw new Ae.ErrnoError(r,e);for(var o=Ae.hashName(e.id,t),n=Ae.nameTable[o];n;n=n.name_next){var i=n.name;if(n.parent.id===e.id&&i===t)return n}return Ae.lookup(e,t)},createNode:(e,t,r,o)=>{I("object"==typeof e);var n=new Ae.FSNode(e,t,r,o);return Ae.hashAddNode(n),n},destroyNode:e=>{Ae.hashRemoveNode(e)},isRoot:e=>e===e.parent,isMountpoint:e=>!!e.mounted,isFile:e=>32768==(61440&e),isDir:e=>16384==(61440&e),isLink:e=>40960==(61440&e),isChrdev:e=>8192==(61440&e),isBlkdev:e=>24576==(61440&e),isFIFO:e=>4096==(61440&e),isSocket:e=>!(49152&~e),flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:e=>{var t=Ae.flagModes[e];if(void 0===t)throw new Error("Unknown file open mode: "+e);return t},flagsToPermissionString:e=>{var t=["r","w","rw"][3&e];return 512&e&&(t+="w"),t},nodePermissions:(e,t)=>Ae.ignorePermissions||(!t.includes("r")||292&e.mode)&&(!t.includes("w")||146&e.mode)&&(!t.includes("x")||73&e.mode)?0:2,mayLookup:e=>{var t=Ae.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate:(e,t)=>{try{return Ae.lookupNode(e,t),20}catch(e){}return Ae.nodePermissions(e,"wx")},mayDelete:(e,t,r)=>{var o;try{o=Ae.lookupNode(e,t)}catch(e){return e.errno}var n=Ae.nodePermissions(e,"wx");if(n)return n;if(r){if(!Ae.isDir(o.mode))return 54;if(Ae.isRoot(o)||Ae.getPath(o)===Ae.cwd())return 10}else if(Ae.isDir(o.mode))return 31;return 0},mayOpen:(e,t)=>e?Ae.isLink(e.mode)?32:Ae.isDir(e.mode)&&("r"!==Ae.flagsToPermissionString(t)||512&t)?31:Ae.nodePermissions(e,Ae.flagsToPermissionString(t)):44,MAX_OPEN_FDS:4096,nextfd:(e=0,t=Ae.MAX_OPEN_FDS)=>{for(var r=e;r<=t;r++)if(!Ae.streams[r])return r;throw new Ae.ErrnoError(33)},getStream:e=>Ae.streams[e],createStream:(e,t,r)=>{Ae.FSStream||(Ae.FSStream=function(){},Ae.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}}}),e=Object.assign(new Ae.FSStream,e);var o=Ae.nextfd(t,r);return e.fd=o,Ae.streams[o]=e,e},closeStream:e=>{Ae.streams[e]=null},chrdev_stream_ops:{open:e=>{var t=Ae.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:()=>{throw new Ae.ErrnoError(70)}},major:e=>e>>8,minor:e=>255&e,makedev:(e,t)=>e<<8|t,registerDevice:(e,t)=>{Ae.devices[e]={stream_ops:t}},getDevice:e=>Ae.devices[e],getMounts:e=>{for(var t=[],r=[e];r.length;){var o=r.pop();t.push(o),r.push.apply(r,o.mounts)}return t},syncfs:(e,t)=>{"function"==typeof e&&(t=e,e=!1),Ae.syncFSRequests++,Ae.syncFSRequests>1&&y("warning: "+Ae.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var r=Ae.getMounts(Ae.root.mount),o=0;function n(e){return I(Ae.syncFSRequests>0),Ae.syncFSRequests--,t(e)}function i(e){if(e)return i.errored?void 0:(i.errored=!0,n(e));++o>=r.length&&n(null)}r.forEach((t=>{if(!t.type.syncfs)return i(null);t.type.syncfs(t,e,i)}))},mount:(e,t,r)=>{if("string"==typeof e)throw e;var o,n="/"===r,i=!r;if(n&&Ae.root)throw new Ae.ErrnoError(10);if(!n&&!i){var a=Ae.lookupPath(r,{follow_mount:!1});if(r=a.path,o=a.node,Ae.isMountpoint(o))throw new Ae.ErrnoError(10);if(!Ae.isDir(o.mode))throw new Ae.ErrnoError(54)}var s={type:e,opts:t,mountpoint:r,mounts:[]},d=e.mount(s);return d.mount=s,s.root=d,n?Ae.root=d:o&&(o.mounted=s,o.mount&&o.mount.mounts.push(s)),d},unmount:e=>{var t=Ae.lookupPath(e,{follow_mount:!1});if(!Ae.isMountpoint(t.node))throw new Ae.ErrnoError(28);var r=t.node,o=r.mounted,n=Ae.getMounts(o);Object.keys(Ae.nameTable).forEach((e=>{for(var t=Ae.nameTable[e];t;){var r=t.name_next;n.includes(t.mount)&&Ae.destroyNode(t),t=r}})),r.mounted=null;var i=r.mount.mounts.indexOf(o);I(-1!==i),r.mount.mounts.splice(i,1)},lookup:(e,t)=>e.node_ops.lookup(e,t),mknod:(e,t,r)=>{var o=Ae.lookupPath(e,{parent:!0}).node,n=be.basename(e);if(!n||"."===n||".."===n)throw new Ae.ErrnoError(28);var i=Ae.mayCreate(o,n);if(i)throw new Ae.ErrnoError(i);if(!o.node_ops.mknod)throw new Ae.ErrnoError(63);return o.node_ops.mknod(o,n,t,r)},create:(e,t)=>(t=void 0!==t?t:438,t&=4095,t|=32768,Ae.mknod(e,t,0)),mkdir:(e,t)=>(t=void 0!==t?t:511,t&=1023,t|=16384,Ae.mknod(e,t,0)),mkdirTree:(e,t)=>{for(var r=e.split("/"),o="",n=0;n<r.length;++n)if(r[n]){o+="/"+r[n];try{Ae.mkdir(o,t)}catch(e){if(20!=e.errno)throw e}}},mkdev:(e,t,r)=>(void 0===r&&(r=t,t=438),t|=8192,Ae.mknod(e,t,r)),symlink:(e,t)=>{if(!ve.resolve(e))throw new Ae.ErrnoError(44);var r=Ae.lookupPath(t,{parent:!0}).node;if(!r)throw new Ae.ErrnoError(44);var o=be.basename(t),n=Ae.mayCreate(r,o);if(n)throw new Ae.ErrnoError(n);if(!r.node_ops.symlink)throw new Ae.ErrnoError(63);return r.node_ops.symlink(r,o,e)},rename:(e,t)=>{var r,o,n=be.dirname(e),i=be.dirname(t),a=be.basename(e),s=be.basename(t);if(r=Ae.lookupPath(e,{parent:!0}).node,o=Ae.lookupPath(t,{parent:!0}).node,!r||!o)throw new Ae.ErrnoError(44);if(r.mount!==o.mount)throw new Ae.ErrnoError(75);var d,c=Ae.lookupNode(r,a),l=ve.relative(e,i);if("."!==l.charAt(0))throw new Ae.ErrnoError(28);if("."!==(l=ve.relative(t,n)).charAt(0))throw new Ae.ErrnoError(55);try{d=Ae.lookupNode(o,s)}catch(e){}if(c!==d){var p=Ae.isDir(c.mode),E=Ae.mayDelete(r,a,p);if(E)throw new Ae.ErrnoError(E);if(E=d?Ae.mayDelete(o,s,p):Ae.mayCreate(o,s))throw new Ae.ErrnoError(E);if(!r.node_ops.rename)throw new Ae.ErrnoError(63);if(Ae.isMountpoint(c)||d&&Ae.isMountpoint(d))throw new Ae.ErrnoError(10);if(o!==r&&(E=Ae.nodePermissions(r,"w")))throw new Ae.ErrnoError(E);Ae.hashRemoveNode(c);try{r.node_ops.rename(c,o,s)}catch(e){throw e}finally{Ae.hashAddNode(c)}}},rmdir:e=>{var t=Ae.lookupPath(e,{parent:!0}).node,r=be.basename(e),o=Ae.lookupNode(t,r),n=Ae.mayDelete(t,r,!0);if(n)throw new Ae.ErrnoError(n);if(!t.node_ops.rmdir)throw new Ae.ErrnoError(63);if(Ae.isMountpoint(o))throw new Ae.ErrnoError(10);t.node_ops.rmdir(t,r),Ae.destroyNode(o)},readdir:e=>{var t=Ae.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new Ae.ErrnoError(54);return t.node_ops.readdir(t)},unlink:e=>{var t=Ae.lookupPath(e,{parent:!0}).node;if(!t)throw new Ae.ErrnoError(44);var r=be.basename(e),o=Ae.lookupNode(t,r),n=Ae.mayDelete(t,r,!1);if(n)throw new Ae.ErrnoError(n);if(!t.node_ops.unlink)throw new Ae.ErrnoError(63);if(Ae.isMountpoint(o))throw new Ae.ErrnoError(10);t.node_ops.unlink(t,r),Ae.destroyNode(o)},readlink:e=>{var t=Ae.lookupPath(e).node;if(!t)throw new Ae.ErrnoError(44);if(!t.node_ops.readlink)throw new Ae.ErrnoError(28);return ve.resolve(Ae.getPath(t.parent),t.node_ops.readlink(t))},stat:(e,t)=>{var r=Ae.lookupPath(e,{follow:!t}).node;if(!r)throw new Ae.ErrnoError(44);if(!r.node_ops.getattr)throw new Ae.ErrnoError(63);return r.node_ops.getattr(r)},lstat:e=>Ae.stat(e,!0),chmod:(e,t,r)=>{var o;if(!(o="string"==typeof e?Ae.lookupPath(e,{follow:!r}).node:e).node_ops.setattr)throw new Ae.ErrnoError(63);o.node_ops.setattr(o,{mode:4095&t|-4096&o.mode,timestamp:Date.now()})},lchmod:(e,t)=>{Ae.chmod(e,t,!0)},fchmod:(e,t)=>{var r=Ae.getStream(e);if(!r)throw new Ae.ErrnoError(8);Ae.chmod(r.node,t)},chown:(e,t,r,o)=>{var n;if(!(n="string"==typeof e?Ae.lookupPath(e,{follow:!o}).node:e).node_ops.setattr)throw new Ae.ErrnoError(63);n.node_ops.setattr(n,{timestamp:Date.now()})},lchown:(e,t,r)=>{Ae.chown(e,t,r,!0)},fchown:(e,t,r)=>{var o=Ae.getStream(e);if(!o)throw new Ae.ErrnoError(8);Ae.chown(o.node,t,r)},truncate:(e,t)=>{if(t<0)throw new Ae.ErrnoError(28);var r;if(!(r="string"==typeof e?Ae.lookupPath(e,{follow:!0}).node:e).node_ops.setattr)throw new Ae.ErrnoError(63);if(Ae.isDir(r.mode))throw new Ae.ErrnoError(31);if(!Ae.isFile(r.mode))throw new Ae.ErrnoError(28);var o=Ae.nodePermissions(r,"w");if(o)throw new Ae.ErrnoError(o);r.node_ops.setattr(r,{size:t,timestamp:Date.now()})},ftruncate:(e,t)=>{var r=Ae.getStream(e);if(!r)throw new Ae.ErrnoError(8);if(!(2097155&r.flags))throw new Ae.ErrnoError(28);Ae.truncate(r.node,t)},utime:(e,t,r)=>{var o=Ae.lookupPath(e,{follow:!0}).node;o.node_ops.setattr(o,{timestamp:Math.max(t,r)})},open:(e,t,r,o,n)=>{if(""===e)throw new Ae.ErrnoError(44);var a;if(r=void 0===r?438:r,r=64&(t="string"==typeof t?Ae.modeStringToFlags(t):t)?4095&r|32768:0,"object"==typeof e)a=e;else{e=be.normalize(e);try{a=Ae.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var s=!1;if(64&t)if(a){if(128&t)throw new Ae.ErrnoError(20)}else a=Ae.mknod(e,r,0),s=!0;if(!a)throw new Ae.ErrnoError(44);if(Ae.isChrdev(a.mode)&&(t&=-513),65536&t&&!Ae.isDir(a.mode))throw new Ae.ErrnoError(54);if(!s){var d=Ae.mayOpen(a,t);if(d)throw new Ae.ErrnoError(d)}512&t&&Ae.truncate(a,0),t&=-131713;var c=Ae.createStream({node:a,path:Ae.getPath(a),flags:t,seekable:!0,position:0,stream_ops:a.stream_ops,ungotten:[],error:!1},o,n);return c.stream_ops.open&&c.stream_ops.open(c),!i.logReadFiles||1&t||(Ae.readFiles||(Ae.readFiles={}),e in Ae.readFiles||(Ae.readFiles[e]=1)),c},close:e=>{if(Ae.isClosed(e))throw new Ae.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{Ae.closeStream(e.fd)}e.fd=null},isClosed:e=>null===e.fd,llseek:(e,t,r)=>{if(Ae.isClosed(e))throw new Ae.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new Ae.ErrnoError(70);if(0!=r&&1!=r&&2!=r)throw new Ae.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,r),e.ungotten=[],e.position},read:(e,t,r,o,n)=>{if(o<0||n<0)throw new Ae.ErrnoError(28);if(Ae.isClosed(e))throw new Ae.ErrnoError(8);if(1==(2097155&e.flags))throw new Ae.ErrnoError(8);if(Ae.isDir(e.node.mode))throw new Ae.ErrnoError(31);if(!e.stream_ops.read)throw new Ae.ErrnoError(28);var i=void 0!==n;if(i){if(!e.seekable)throw new Ae.ErrnoError(70)}else n=e.position;var a=e.stream_ops.read(e,t,r,o,n);return i||(e.position+=a),a},write:(e,t,r,o,n,i)=>{if(o<0||n<0)throw new Ae.ErrnoError(28);if(Ae.isClosed(e))throw new Ae.ErrnoError(8);if(!(2097155&e.flags))throw new Ae.ErrnoError(8);if(Ae.isDir(e.node.mode))throw new Ae.ErrnoError(31);if(!e.stream_ops.write)throw new Ae.ErrnoError(28);e.seekable&&1024&e.flags&&Ae.llseek(e,0,2);var a=void 0!==n;if(a){if(!e.seekable)throw new Ae.ErrnoError(70)}else n=e.position;var s=e.stream_ops.write(e,t,r,o,n,i);return a||(e.position+=s),s},allocate:(e,t,r)=>{if(Ae.isClosed(e))throw new Ae.ErrnoError(8);if(t<0||r<=0)throw new Ae.ErrnoError(28);if(!(2097155&e.flags))throw new Ae.ErrnoError(8);if(!Ae.isFile(e.node.mode)&&!Ae.isDir(e.node.mode))throw new Ae.ErrnoError(43);if(!e.stream_ops.allocate)throw new Ae.ErrnoError(138);e.stream_ops.allocate(e,t,r)},mmap:(e,t,r,o,n,i)=>{if(2&n&&!(2&i)&&2!=(2097155&e.flags))throw new Ae.ErrnoError(2);if(1==(2097155&e.flags))throw new Ae.ErrnoError(2);if(!e.stream_ops.mmap)throw new Ae.ErrnoError(43);return e.stream_ops.mmap(e,t,r,o,n,i)},msync:(e,t,r,o,n)=>e&&e.stream_ops.msync?e.stream_ops.msync(e,t,r,o,n):0,munmap:e=>0,ioctl:(e,t,r)=>{if(!e.stream_ops.ioctl)throw new Ae.ErrnoError(59);return e.stream_ops.ioctl(e,t,r)},readFile:(e,t={})=>{if(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,o=Ae.open(e,t.flags),n=Ae.stat(e).size,i=new Uint8Array(n);return Ae.read(o,i,0,n,0),"utf8"===t.encoding?r=B(i,0):"binary"===t.encoding&&(r=i),Ae.close(o),r},writeFile:(e,t,r={})=>{r.flags=r.flags||577;var o=Ae.open(e,r.flags,r.mode);if("string"==typeof t){var n=new Uint8Array(K(t)+1),i=z(t,n,0,n.length);Ae.write(o,n,0,i,void 0,r.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");Ae.write(o,t,0,t.byteLength,void 0,r.canOwn)}Ae.close(o)},cwd:()=>Ae.currentPath,chdir:e=>{var t=Ae.lookupPath(e,{follow:!0});if(null===t.node)throw new Ae.ErrnoError(44);if(!Ae.isDir(t.node.mode))throw new Ae.ErrnoError(54);var r=Ae.nodePermissions(t.node,"x");if(r)throw new Ae.ErrnoError(r);Ae.currentPath=t.path},createDefaultDirectories:()=>{Ae.mkdir("/tmp"),Ae.mkdir("/home"),Ae.mkdir("/home/web_user")},createDefaultDevices:()=>{Ae.mkdir("/dev"),Ae.registerDevice(Ae.makedev(1,3),{read:()=>0,write:(e,t,r,o,n)=>o}),Ae.mkdev("/dev/null",Ae.makedev(1,3)),Pe.register(Ae.makedev(5,0),Pe.default_tty_ops),Pe.register(Ae.makedev(6,0),Pe.default_tty1_ops),Ae.mkdev("/dev/tty",Ae.makedev(5,0)),Ae.mkdev("/dev/tty1",Ae.makedev(6,0));var e=function(){if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var e=new Uint8Array(1);return function(){return crypto.getRandomValues(e),e[0]}}if(l)try{var t=r(349);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 } };")}}();Ae.createDevice("/dev","random",e),Ae.createDevice("/dev","urandom",e),Ae.mkdir("/dev/shm"),Ae.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{Ae.mkdir("/proc");var e=Ae.mkdir("/proc/self");Ae.mkdir("/proc/self/fd"),Ae.mount({mount:()=>{var t=Ae.createNode(e,"fd",16895,73);return t.node_ops={lookup:(e,t)=>{var r=+t,o=Ae.getStream(r);if(!o)throw new Ae.ErrnoError(8);var n={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>o.path}};return n.parent=n,n}},t}},{},"/proc/self/fd")},createStandardStreams:()=>{i.stdin?Ae.createDevice("/dev","stdin",i.stdin):Ae.symlink("/dev/tty","/dev/stdin"),i.stdout?Ae.createDevice("/dev","stdout",null,i.stdout):Ae.symlink("/dev/tty","/dev/stdout"),i.stderr?Ae.createDevice("/dev","stderr",null,i.stderr):Ae.symlink("/dev/tty1","/dev/stderr");var e=Ae.open("/dev/stdin",0),t=Ae.open("/dev/stdout",1),r=Ae.open("/dev/stderr",1);I(0===e.fd,"invalid handle for stdin ("+e.fd+")"),I(1===t.fd,"invalid handle for stdout ("+t.fd+")"),I(2===r.fd,"invalid handle for stderr ("+r.fd+")")},ensureErrnoError:()=>{Ae.ErrnoError||(Ae.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){for(var t in this.errno=e,Se)if(Se[t]===e){this.code=t;break}},this.setErrno(e),this.message=Re[e],this.stack&&(Object.defineProperty(this,"stack",{value:(new Error).stack,writable:!0}),this.stack=ye(this.stack))},Ae.ErrnoError.prototype=new Error,Ae.ErrnoError.prototype.constructor=Ae.ErrnoError,[44].forEach((e=>{Ae.genericErrors[e]=new Ae.ErrnoError(e),Ae.genericErrors[e].stack="<generic error, no stack>"})))},staticInit:()=>{Ae.ensureErrnoError(),Ae.nameTable=new Array(4096),Ae.mount(Me,{},"/"),Ae.createDefaultDirectories(),Ae.createDefaultDevices(),Ae.createSpecialDirectories(),Ae.filesystems={MEMFS:Me}},init:(e,t,r)=>{I(!Ae.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)"),Ae.init.initialized=!0,Ae.ensureErrnoError(),i.stdin=e||i.stdin,i.stdout=t||i.stdout,i.stderr=r||i.stderr,Ae.createStandardStreams()},quit:()=>{Ae.init.initialized=!1,He();for(var e=0;e<Ae.streams.length;e++){var t=Ae.streams[e];t&&Ae.close(t)}},getMode:(e,t)=>{var r=0;return e&&(r|=365),t&&(r|=146),r},findObject:(e,t)=>{var r=Ae.analyzePath(e,t);return r.exists?r.object:null},analyzePath:(e,t)=>{try{e=(o=Ae.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 o=Ae.lookupPath(e,{parent:!0});r.parentExists=!0,r.parentPath=o.path,r.parentObject=o.node,r.name=be.basename(e),o=Ae.lookupPath(e,{follow:!t}),r.exists=!0,r.path=o.path,r.object=o.node,r.name=o.node.name,r.isRoot="/"===o.path}catch(e){r.error=e.errno}return r},createPath:(e,t,r,o)=>{e="string"==typeof e?e:Ae.getPath(e);for(var n=t.split("/").reverse();n.length;){var i=n.pop();if(i){var a=be.join2(e,i);try{Ae.mkdir(a)}catch(e){}e=a}}return a},createFile:(e,t,r,o,n)=>{var i=be.join2("string"==typeof e?e:Ae.getPath(e),t),a=Ae.getMode(o,n);return Ae.create(i,a)},createDataFile:(e,t,r,o,n,i)=>{var a=t;e&&(e="string"==typeof e?e:Ae.getPath(e),a=t?be.join2(e,t):e);var s=Ae.getMode(o,n),d=Ae.create(a,s);if(r){if("string"==typeof r){for(var c=new Array(r.length),l=0,p=r.length;l<p;++l)c[l]=r.charCodeAt(l);r=c}Ae.chmod(d,146|s);var E=Ae.open(d,577);Ae.write(E,r,0,r.length,0,i),Ae.close(E),Ae.chmod(d,s)}return d},createDevice:(e,t,r,o)=>{var n=be.join2("string"==typeof e?e:Ae.getPath(e),t),i=Ae.getMode(!!r,!!o);Ae.createDevice.major||(Ae.createDevice.major=64);var a=Ae.makedev(Ae.createDevice.major++,0);return Ae.registerDevice(a,{open:e=>{e.seekable=!1},close:e=>{o&&o.buffer&&o.buffer.length&&o(10)},read:(e,t,o,n,i)=>{for(var a=0,s=0;s<n;s++){var d;try{d=r()}catch(e){throw new Ae.ErrnoError(29)}if(void 0===d&&0===a)throw new Ae.ErrnoError(6);if(null==d)break;a++,t[o+s]=d}return a&&(e.node.timestamp=Date.now()),a},write:(e,t,r,n,i)=>{for(var a=0;a<n;a++)try{o(t[r+a])}catch(e){throw new Ae.ErrnoError(29)}return n&&(e.node.timestamp=Date.now()),a}}),Ae.mkdev(n,i,a)},forceLoadFile:e=>{if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!E)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=je(E(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new Ae.ErrnoError(29)}},createLazyFile:(e,t,r,o,n)=>{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,o=Number(e.getResponseHeader("Content-length")),n=(t=e.getResponseHeader("Accept-Ranges"))&&"bytes"===t,i=(t=e.getResponseHeader("Content-Encoding"))&&"gzip"===t,a=1048576;n||(a=o);var s=this;s.setDataGetter((e=>{var t=e*a,n=(e+1)*a-1;if(n=Math.min(n,o-1),void 0===s.chunks[e]&&(s.chunks[e]=((e,t)=>{if(e>t)throw new Error("invalid range ("+e+", "+t+") or no bytes requested!");if(t>o-1)throw new Error("only "+o+" bytes available! programmer error!");var n=new XMLHttpRequest;if(n.open("GET",r,!1),o!==a&&n.setRequestHeader("Range","bytes="+e+"-"+t),n.responseType="arraybuffer",n.overrideMimeType&&n.overrideMimeType("text/plain; charset=x-user-defined"),n.send(null),!(n.status>=200&&n.status<300||304===n.status))throw new Error("Couldn't load "+r+". Status: "+n.status);return void 0!==n.response?new Uint8Array(n.response||[]):je(n.responseText||"",!0)})(t,n)),void 0===s.chunks[e])throw new Error("doXHR failed!");return s.chunks[e]})),!i&&o||(a=o=1,o=this.getter(0).length,a=o,T("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=o,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 d=Ae.createFile(e,t,s,o,n);s.contents?d.contents=s.contents:s.url&&(d.contents=null,d.url=s.url),Object.defineProperties(d,{usedBytes:{get:function(){return this.contents.length}}});var l={};return Object.keys(d.stream_ops).forEach((e=>{var t=d.stream_ops[e];l[e]=function(){return Ae.forceLoadFile(d),t.apply(null,arguments)}})),l.read=(e,t,r,o,n)=>{Ae.forceLoadFile(d);var i=e.node.contents;if(n>=i.length)return 0;var a=Math.min(i.length-n,o);if(I(a>=0),i.slice)for(var s=0;s<a;s++)t[r+s]=i[n+s];else for(s=0;s<a;s++)t[r+s]=i.get(n+s);return a},d.stream_ops=l,d},createPreloadedFile:(e,t,r,o,n,i,a,s,d,c)=>{var l=t?ve.resolve(be.join2(e,t)):e,p=ce("cp "+l);function E(r){function E(r){c&&c(),s||Ae.createDataFile(e,t,r,o,n,d),i&&i(),pe(p)}Browser.handledByPreloadPlugin(r,l,E,(()=>{a&&a(),pe(p)}))||E(r)}le(p),"string"==typeof r?function(e,t,r,o){var n=o?"":ce("al "+e);u(e,(function(r){I(r,'Loading data file "'+e+'" failed (no arrayBuffer).'),t(new Uint8Array(r)),n&&pe(n)}),(function(t){if(!r)throw'Loading data file "'+e+'" failed.';r()})),n&&le(n)}(r,(e=>E(e)),a):E(r)},indexedDB:()=>window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB,DB_NAME:()=>"EM_FS_"+window.location.pathname,DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(e,t,r)=>{t=t||(()=>{}),r=r||(()=>{});var o=Ae.indexedDB();try{var n=o.open(Ae.DB_NAME(),Ae.DB_VERSION)}catch(e){return r(e)}n.onupgradeneeded=()=>{T("creating db"),n.result.createObjectStore(Ae.DB_STORE_NAME)},n.onsuccess=()=>{var o=n.result.transaction([Ae.DB_STORE_NAME],"readwrite"),i=o.objectStore(Ae.DB_STORE_NAME),a=0,s=0,d=e.length;function c(){0==s?t():r()}e.forEach((e=>{var t=i.put(Ae.analyzePath(e).object.contents,e);t.onsuccess=()=>{++a+s==d&&c()},t.onerror=()=>{s++,a+s==d&&c()}})),o.onerror=r},n.onerror=r},loadFilesFromDB:(e,t,r)=>{t=t||(()=>{}),r=r||(()=>{});var o=Ae.indexedDB();try{var n=o.open(Ae.DB_NAME(),Ae.DB_VERSION)}catch(e){return r(e)}n.onupgradeneeded=r,n.onsuccess=()=>{var o=n.result;try{var i=o.transaction([Ae.DB_STORE_NAME],"readonly")}catch(e){return void r(e)}var a=i.objectStore(Ae.DB_STORE_NAME),s=0,d=0,c=e.length;function l(){0==d?t():r()}e.forEach((e=>{var t=a.get(e);t.onsuccess=()=>{Ae.analyzePath(e).exists&&Ae.unlink(e),Ae.createDataFile(be.dirname(e),be.basename(e),t.result,!0,!0,!0),++s+d==c&&l()},t.onerror=()=>{d++,s+d==c&&l()}})),i.onerror=r},n.onerror=r},absolutePath:()=>{Ee("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder:()=>{Ee("FS.createFolder has been removed; use FS.mkdir instead")},createLink:()=>{Ee("FS.createLink has been removed; use FS.symlink instead")},joinPath:()=>{Ee("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc:()=>{Ee("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath:()=>{Ee("FS.standardizePath has been removed; use PATH.normalize instead")}},Fe={DEFAULT_POLLMASK:5,calculateAt:function(e,t,r){if("/"===t[0])return t;var o;if(-100===e)o=Ae.cwd();else{var n=Ae.getStream(e);if(!n)throw new Ae.ErrnoError(8);o=n.path}if(0==t.length){if(!r)throw new Ae.ErrnoError(44);return o}return be.join2(o,t)},doStat:function(e,t,r){try{var o=e(t)}catch(e){if(e&&e.node&&be.normalize(t)!==be.normalize(Ae.getPath(e.node)))return-54;throw e}return M(0|r,0|o.dev,4),M(r+4|0,0,4),M(r+8|0,0|o.ino,4),M(r+12|0,0|o.mode,4),M(r+16|0,0|o.nlink,4),M(r+20|0,0|o.uid,4),M(r+24|0,0|o.gid,4),M(r+28|0,0|o.rdev,4),M(r+32|0,0,4),M(r+40|0,0|o.size,8),M(r+48|0,4096,4),M(r+52|0,0|o.blocks,4),M(r+56|0,o.atime.getTime()/1e3|0,4),M(r+60|0,0,4),M(r+64|0,o.mtime.getTime()/1e3|0,4),M(r+68|0,0,4),M(r+72|0,o.ctime.getTime()/1e3|0,4),M(r+76|0,0,4),M(r+80|0,0|o.ino,8),0},doMsync:function(e,t,r,o,n){var i=j.slice(e,e+r);Ae.msync(t,i,n,r,o)},doMkdir:function(e,t){return"/"===(e=be.normalize(e))[e.length-1]&&(e=e.substr(0,e.length-1)),Ae.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 Ae.mknod(e,t,r),0},doReadlink:function(e,t,r){if(r<=0)return-28;var o=Ae.readlink(e),n=Math.min(r,K(o)),i=S(t+n,1,0);return W(o,t,r+1),M(t+n,i,1),n},doAccess:function(e,t){if(-8&t)return-28;var r=Ae.lookupPath(e,{follow:!0}).node;if(!r)return-44;var o="";return 4&t&&(o+="r"),2&t&&(o+="w"),1&t&&(o+="x"),o&&Ae.nodePermissions(r,o)?-2:0},doDup:function(e,t,r){var o=Ae.getStream(r);return o&&Ae.close(o),Ae.open(e,t,0,r,r).fd},doReadv:function(e,t,r,o){for(var n=0,i=0;i<r;i++){var a=0|S(t+8*i|0,4,0),s=0|S(t+(8*i+4)|0,4,0),d=Ae.read(e,U,a,s,o);if(d<0)return-1;if(n+=d,d<s)break}return n},doWritev:function(e,t,r,o){for(var n=0,i=0;i<r;i++){var a=0|S(t+8*i|0,4,0),s=0|S(t+(8*i+4)|0,4,0),d=Ae.write(e,U,a,s,o);if(d<0)return-1;n+=d}return n},varargs:void 0,get:function(){return I(null!=Fe.varargs),Fe.varargs+=4,0|S(Fe.varargs-4|0,4,0)},getStr:function(e){return Y(e)},getStreamFromFD:function(e){var t=Ae.getStream(e);if(!t)throw new Ae.ErrnoError(8);return t},get64:function(e,t){return I(e>=0?0===t:-1===t),e}};function Ie(e){try{return D.grow(e-N.byteLength+65535>>>16),V(D.buffer),1}catch(t){y("emscripten_realloc_buffer: Attempted to grow heap from "+N.byteLength+" bytes to "+e+" bytes, but got error: "+t)}}var ke=function(e,t,r,o){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=Ae.nextInode++,this.name=t,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=o},Ne=365,Ue=146;function je(e,t,r){var o=r>0?r:K(e)+1,n=new Array(o),i=z(e,n,0,n.length);return t&&(n.length=i),n}Object.defineProperties(ke.prototype,{read:{get:function(){return(this.mode&Ne)===Ne},set:function(e){e?this.mode|=Ne:this.mode&=-366}},write:{get:function(){return(this.mode&Ue)===Ue},set:function(e){e?this.mode|=Ue:this.mode&=-147}},isFolder:{get:function(){return Ae.isDir(this.mode)}},isDevice:{get:function(){return Ae.isChrdev(this.mode)}}}),Ae.FSNode=ke,Ae.staticInit(),Se={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};var xe,Ce={__assert_fail:function(e,t,r,o){Ee("Assertion failed: "+Y(e)+", at: "+[t?Y(t):"unknown filename",r,o?Y(o):"unknown function"])},__syscall_open:function(e,t,r){Fe.varargs=r;try{var o=Fe.getStr(e),n=r?Fe.get():0;return Ae.open(o,t,n).fd}catch(e){if(void 0===Ae||!(e instanceof Ae.ErrnoError))throw e;return-e.errno}},alignfault:function(){Ee("alignment fault")},emscripten_memcpy_big:function(e,t,r){j.copyWithin(e,t,t+r)},emscripten_resize_heap:function(e){var t=j.length;I((e>>>=0)>t);var r,o,n=2147483648;if(e>n)return y("Cannot enlarge memory, asked to go up to "+e+" bytes, but the limit is "+n+" 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(n,((r=Math.max(e,a))%(o=65536)>0&&(r+=o-r%o),r));if(Ie(s))return!0}return y("Failed to grow the heap from "+t+" bytes to "+s+" bytes, not enough memory!"),!1},fd_read:function(e,t,r,o){try{var n=Fe.getStreamFromFD(e);return M(0|o,0|Fe.doReadv(n,t,r),4),0}catch(e){if(void 0===Ae||!(e instanceof Ae.ErrnoError))throw e;return e.errno}},fd_write:function(e,t,r,o){try{var n=Fe.getStreamFromFD(e);return M(0|o,0|Fe.doWritev(n,t,r),4),0}catch(e){if(void 0===Ae||!(e instanceof Ae.ErrnoError))throw e;return e.errno}},segfault:function(){Ee("segmentation fault")}},He=(function(){var e={env:Ce,wasi_snapshot_preview1:Ce};function t(e,t){var r,o=e.exports;i.asm=o,I(D=i.asm.memory,"memory not found in wasm exports"),V(D.buffer),I(q=i.asm.__indirect_function_table,"table not found in wasm exports"),r=i.asm.__wasm_call_ctors,te.unshift(r),pe("wasm-instantiate")}le("wasm-instantiate");var r=i;function o(e){I(i===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(!w&&(d||c)){if("function"==typeof fetch&&!me(ue))return fetch(ue,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+ue+"'";return e.arrayBuffer()})).catch((function(){return we(ue)}));if(u)return new Promise((function(e,t){u(ue,(function(t){e(new Uint8Array(t))}),t)}))}return Promise.resolve().then((function(){return we(ue)}))}().then((function(t){return WebAssembly.instantiate(t,e)})).then((function(e){return e})).then(t,(function(e){y("failed to asynchronously prepare wasm: "+e),me(ue)&&y("warning: Loading from a file URI ("+ue+") 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(i.instantiateWasm)try{return i.instantiateWasm(e,t)}catch(e){return y("Module.instantiateWasm callback failed with error: "+e),!1}(w||"function"!=typeof WebAssembly.instantiateStreaming||Oe(ue)||me(ue)||"function"!=typeof fetch?a(o):fetch(ue,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,e).then(o,(function(e){return y("wasm streaming compile failed: "+e),y("falling back to ArrayBuffer instantiation"),a(o)}))}))).catch(n)}(),i.___wasm_call_ctors=ge("__wasm_call_ctors"),i._dilithium_keygen=ge("dilithium_keygen"),i._malloc=ge("malloc"),i._free=ge("free"),i._dilithium_sign=ge("dilithium_sign"),i._dilithium_verify=ge("dilithium_verify"),i._SHA3_256=ge("SHA3_256"),i._randombytes=ge("randombytes"),i.___errno_location=ge("__errno_location"),i.___stdio_exit=ge("__stdio_exit")),Le=i._sbrk=ge("sbrk"),Xe=(i._emscripten_get_sbrk_ptr=ge("emscripten_get_sbrk_ptr"),i._emscripten_stack_init=function(){return(Xe=i._emscripten_stack_init=i.asm.emscripten_stack_init).apply(null,arguments)}),Qe=(i._emscripten_stack_get_free=function(){return(i._emscripten_stack_get_free=i.asm.emscripten_stack_get_free).apply(null,arguments)},i._emscripten_stack_get_base=function(){return(Qe=i._emscripten_stack_get_base=i.asm.emscripten_stack_get_base).apply(null,arguments)}),Be=i._emscripten_stack_get_end=function(){return(Be=i._emscripten_stack_get_end=i.asm.emscripten_stack_get_end).apply(null,arguments)},Ye=i.stackSave=ge("stackSave"),ze=i.stackRestore=ge("stackRestore"),We=i.stackAlloc=ge("stackAlloc");function Ke(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function Ve(e){function r(){xe||(xe=!0,i.calledRun=!0,F||($(),I(!oe),oe=!0,i.noFSInit||Ae.init.initialized||Ae.init(),Ae.ignorePermissions=!1,Pe.init(),Te(te),t(i),i.onRuntimeInitialized&&i.onRuntimeInitialized(),I(!i._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),function(){if($(),i.postRun)for("function"==typeof i.postRun&&(i.postRun=[i.postRun]);i.postRun.length;)e=i.postRun.shift(),re.unshift(e);var e;Te(re)}()))}e=e||s,ie>0||(Xe(),J(),function(){if(i.preRun)for("function"==typeof i.preRun&&(i.preRun=[i.preRun]);i.preRun.length;)e=i.preRun.shift(),ee.unshift(e);var e;Te(ee)}(),ie>0||(i.setStatus?(i.setStatus("Running..."),setTimeout((function(){setTimeout((function(){i.setStatus("")}),1),r()}),1)):r(),$()))}if(Object.getOwnPropertyDescriptor(i,"intArrayFromString")||(i.intArrayFromString=()=>Ee("'intArrayFromString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"intArrayToString")||(i.intArrayToString=()=>Ee("'intArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),i.ccall=k,i.cwrap=function(e,t,r,o){return function(){return k(e,t,r,arguments)}},i.setValue=b,i.getValue=v,Object.getOwnPropertyDescriptor(i,"allocate")||(i.allocate=()=>Ee("'allocate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"UTF8ArrayToString")||(i.UTF8ArrayToString=()=>Ee("'UTF8ArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"UTF8ToString")||(i.UTF8ToString=()=>Ee("'UTF8ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"stringToUTF8Array")||(i.stringToUTF8Array=()=>Ee("'stringToUTF8Array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"stringToUTF8")||(i.stringToUTF8=()=>Ee("'stringToUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"lengthBytesUTF8")||(i.lengthBytesUTF8=()=>Ee("'lengthBytesUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"stackTrace")||(i.stackTrace=()=>Ee("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"addOnPreRun")||(i.addOnPreRun=()=>Ee("'addOnPreRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"addOnInit")||(i.addOnInit=()=>Ee("'addOnInit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"addOnPreMain")||(i.addOnPreMain=()=>Ee("'addOnPreMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"addOnExit")||(i.addOnExit=()=>Ee("'addOnExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"addOnPostRun")||(i.addOnPostRun=()=>Ee("'addOnPostRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"writeStringToMemory")||(i.writeStringToMemory=()=>Ee("'writeStringToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"writeArrayToMemory")||(i.writeArrayToMemory=()=>Ee("'writeArrayToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"writeAsciiToMemory")||(i.writeAsciiToMemory=()=>Ee("'writeAsciiToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"addRunDependency")||(i.addRunDependency=()=>Ee("'addRunDependency' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")),Object.getOwnPropertyDescriptor(i,"removeRunDependency")||(i.removeRunDependency=()=>Ee("'removeRunDependency' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")),Object.getOwnPropertyDescriptor(i,"FS_createFolder")||(i.FS_createFolder=()=>Ee("'FS_createFolder' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"FS_createPath")||(i.FS_createPath=()=>Ee("'FS_createPath' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")),Object.getOwnPropertyDescriptor(i,"FS_createDataFile")||(i.FS_createDataFile=()=>Ee("'FS_createDataFile' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")),Object.getOwnPropertyDescriptor(i,"FS_createPreloadedFile")||(i.FS_createPreloadedFile=()=>Ee("'FS_createPreloadedFile' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")),Object.getOwnPropertyDescriptor(i,"FS_createLazyFile")||(i.FS_createLazyFile=()=>Ee("'FS_createLazyFile' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")),Object.getOwnPropertyDescriptor(i,"FS_createLink")||(i.FS_createLink=()=>Ee("'FS_createLink' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"FS_createDevice")||(i.FS_createDevice=()=>Ee("'FS_createDevice' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")),Object.getOwnPropertyDescriptor(i,"FS_unlink")||(i.FS_unlink=()=>Ee("'FS_unlink' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")),Object.getOwnPropertyDescriptor(i,"getLEB")||(i.getLEB=()=>Ee("'getLEB' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"getFunctionTables")||(i.getFunctionTables=()=>Ee("'getFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"alignFunctionTables")||(i.alignFunctionTables=()=>Ee("'alignFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"registerFunctions")||(i.registerFunctions=()=>Ee("'registerFunctions' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"addFunction")||(i.addFunction=()=>Ee("'addFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"removeFunction")||(i.removeFunction=()=>Ee("'removeFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"getFuncWrapper")||(i.getFuncWrapper=()=>Ee("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"prettyPrint")||(i.prettyPrint=()=>Ee("'prettyPrint' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"dynCall")||(i.dynCall=()=>Ee("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"getCompilerSetting")||(i.getCompilerSetting=()=>Ee("'getCompilerSetting' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"print")||(i.print=()=>Ee("'print' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"printErr")||(i.printErr=()=>Ee("'printErr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"getTempRet0")||(i.getTempRet0=()=>Ee("'getTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"setTempRet0")||(i.setTempRet0=()=>Ee("'setTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"callMain")||(i.callMain=()=>Ee("'callMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"abort")||(i.abort=()=>Ee("'abort' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"keepRuntimeAlive")||(i.keepRuntimeAlive=()=>Ee("'keepRuntimeAlive' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"zeroMemory")||(i.zeroMemory=()=>Ee("'zeroMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"stringToNewUTF8")||(i.stringToNewUTF8=()=>Ee("'stringToNewUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"emscripten_realloc_buffer")||(i.emscripten_realloc_buffer=()=>Ee("'emscripten_realloc_buffer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"ENV")||(i.ENV=()=>Ee("'ENV' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"withStackSave")||(i.withStackSave=()=>Ee("'withStackSave' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"ERRNO_CODES")||(i.ERRNO_CODES=()=>Ee("'ERRNO_CODES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"ERRNO_MESSAGES")||(i.ERRNO_MESSAGES=()=>Ee("'ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"setErrNo")||(i.setErrNo=()=>Ee("'setErrNo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"inetPton4")||(i.inetPton4=()=>Ee("'inetPton4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"inetNtop4")||(i.inetNtop4=()=>Ee("'inetNtop4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"inetPton6")||(i.inetPton6=()=>Ee("'inetPton6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"inetNtop6")||(i.inetNtop6=()=>Ee("'inetNtop6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"readSockaddr")||(i.readSockaddr=()=>Ee("'readSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"writeSockaddr")||(i.writeSockaddr=()=>Ee("'writeSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"DNS")||(i.DNS=()=>Ee("'DNS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"getHostByName")||(i.getHostByName=()=>Ee("'getHostByName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"Protocols")||(i.Protocols=()=>Ee("'Protocols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"Sockets")||(i.Sockets=()=>Ee("'Sockets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"getRandomDevice")||(i.getRandomDevice=()=>Ee("'getRandomDevice' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"traverseStack")||(i.traverseStack=()=>Ee("'traverseStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"convertFrameToPC")||(i.convertFrameToPC=()=>Ee("'convertFrameToPC' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"UNWIND_CACHE")||(i.UNWIND_CACHE=()=>Ee("'UNWIND_CACHE' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"saveInUnwindCache")||(i.saveInUnwindCache=()=>Ee("'saveInUnwindCache' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"convertPCtoSourceLocation")||(i.convertPCtoSourceLocation=()=>Ee("'convertPCtoSourceLocation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"readAsmConstArgsArray")||(i.readAsmConstArgsArray=()=>Ee("'readAsmConstArgsArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"readAsmConstArgs")||(i.readAsmConstArgs=()=>Ee("'readAsmConstArgs' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"mainThreadEM_ASM")||(i.mainThreadEM_ASM=()=>Ee("'mainThreadEM_ASM' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"jstoi_q")||(i.jstoi_q=()=>Ee("'jstoi_q' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"jstoi_s")||(i.jstoi_s=()=>Ee("'jstoi_s' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"getExecutableName")||(i.getExecutableName=()=>Ee("'getExecutableName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"listenOnce")||(i.listenOnce=()=>Ee("'listenOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"autoResumeAudioContext")||(i.autoResumeAudioContext=()=>Ee("'autoResumeAudioContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"dynCall")||(i.dynCall=()=>Ee("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"callRuntimeCallbacks")||(i.callRuntimeCallbacks=()=>Ee("'callRuntimeCallbacks' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"wasmTableMirror")||(i.wasmTableMirror=()=>Ee("'wasmTableMirror' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"setWasmTableEntry")||(i.setWasmTableEntry=()=>Ee("'setWasmTableEntry' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"getWasmTableEntry")||(i.getWasmTableEntry=()=>Ee("'getWasmTableEntry' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"handleException")||(i.handleException=()=>Ee("'handleException' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"runtimeKeepalivePush")||(i.runtimeKeepalivePush=()=>Ee("'runtimeKeepalivePush' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"runtimeKeepalivePop")||(i.runtimeKeepalivePop=()=>Ee("'runtimeKeepalivePop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"callUserCallback")||(i.callUserCallback=()=>Ee("'callUserCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"maybeExit")||(i.maybeExit=()=>Ee("'maybeExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"safeSetTimeout")||(i.safeSetTimeout=()=>Ee("'safeSetTimeout' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"asmjsMangle")||(i.asmjsMangle=()=>Ee("'asmjsMangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"asyncLoad")||(i.asyncLoad=()=>Ee("'asyncLoad' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"alignMemory")||(i.alignMemory=()=>Ee("'alignMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"mmapAlloc")||(i.mmapAlloc=()=>Ee("'mmapAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"reallyNegative")||(i.reallyNegative=()=>Ee("'reallyNegative' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"unSign")||(i.unSign=()=>Ee("'unSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"reSign")||(i.reSign=()=>Ee("'reSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"formatString")||(i.formatString=()=>Ee("'formatString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"PATH")||(i.PATH=()=>Ee("'PATH' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"PATH_FS")||(i.PATH_FS=()=>Ee("'PATH_FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"SYSCALLS")||(i.SYSCALLS=()=>Ee("'SYSCALLS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"getSocketFromFD")||(i.getSocketFromFD=()=>Ee("'getSocketFromFD' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"getSocketAddress")||(i.getSocketAddress=()=>Ee("'getSocketAddress' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"JSEvents")||(i.JSEvents=()=>Ee("'JSEvents' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"registerKeyEventCallback")||(i.registerKeyEventCallback=()=>Ee("'registerKeyEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"specialHTMLTargets")||(i.specialHTMLTargets=()=>Ee("'specialHTMLTargets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"maybeCStringToJsString")||(i.maybeCStringToJsString=()=>Ee("'maybeCStringToJsString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"findEventTarget")||(i.findEventTarget=()=>Ee("'findEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"findCanvasEventTarget")||(i.findCanvasEventTarget=()=>Ee("'findCanvasEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"getBoundingClientRect")||(i.getBoundingClientRect=()=>Ee("'getBoundingClientRect' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"fillMouseEventData")||(i.fillMouseEventData=()=>Ee("'fillMouseEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"registerMouseEventCallback")||(i.registerMouseEventCallback=()=>Ee("'registerMouseEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"registerWheelEventCallback")||(i.registerWheelEventCallback=()=>Ee("'registerWheelEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"registerUiEventCallback")||(i.registerUiEventCallback=()=>Ee("'registerUiEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"registerFocusEventCallback")||(i.registerFocusEventCallback=()=>Ee("'registerFocusEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"fillDeviceOrientationEventData")||(i.fillDeviceOrientationEventData=()=>Ee("'fillDeviceOrientationEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"registerDeviceOrientationEventCallback")||(i.registerDeviceOrientationEventCallback=()=>Ee("'registerDeviceOrientationEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"fillDeviceMotionEventData")||(i.fillDeviceMotionEventData=()=>Ee("'fillDeviceMotionEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"registerDeviceMotionEventCallback")||(i.registerDeviceMotionEventCallback=()=>Ee("'registerDeviceMotionEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"screenOrientation")||(i.screenOrientation=()=>Ee("'screenOrientation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"fillOrientationChangeEventData")||(i.fillOrientationChangeEventData=()=>Ee("'fillOrientationChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"registerOrientationChangeEventCallback")||(i.registerOrientationChangeEventCallback=()=>Ee("'registerOrientationChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"fillFullscreenChangeEventData")||(i.fillFullscreenChangeEventData=()=>Ee("'fillFullscreenChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"registerFullscreenChangeEventCallback")||(i.registerFullscreenChangeEventCallback=()=>Ee("'registerFullscreenChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"registerRestoreOldStyle")||(i.registerRestoreOldStyle=()=>Ee("'registerRestoreOldStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"hideEverythingExceptGivenElement")||(i.hideEverythingExceptGivenElement=()=>Ee("'hideEverythingExceptGivenElement' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"restoreHiddenElements")||(i.restoreHiddenElements=()=>Ee("'restoreHiddenElements' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"setLetterbox")||(i.setLetterbox=()=>Ee("'setLetterbox' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"currentFullscreenStrategy")||(i.currentFullscreenStrategy=()=>Ee("'currentFullscreenStrategy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"restoreOldWindowedStyle")||(i.restoreOldWindowedStyle=()=>Ee("'restoreOldWindowedStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"softFullscreenResizeWebGLRenderTarget")||(i.softFullscreenResizeWebGLRenderTarget=()=>Ee("'softFullscreenResizeWebGLRenderTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"doRequestFullscreen")||(i.doRequestFullscreen=()=>Ee("'doRequestFullscreen' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"fillPointerlockChangeEventData")||(i.fillPointerlockChangeEventData=()=>Ee("'fillPointerlockChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"registerPointerlockChangeEventCallback")||(i.registerPointerlockChangeEventCallback=()=>Ee("'registerPointerlockChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"registerPointerlockErrorEventCallback")||(i.registerPointerlockErrorEventCallback=()=>Ee("'registerPointerlockErrorEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"requestPointerLock")||(i.requestPointerLock=()=>Ee("'requestPointerLock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"fillVisibilityChangeEventData")||(i.fillVisibilityChangeEventData=()=>Ee("'fillVisibilityChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"registerVisibilityChangeEventCallback")||(i.registerVisibilityChangeEventCallback=()=>Ee("'registerVisibilityChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"registerTouchEventCallback")||(i.registerTouchEventCallback=()=>Ee("'registerTouchEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"fillGamepadEventData")||(i.fillGamepadEventData=()=>Ee("'fillGamepadEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"registerGamepadEventCallback")||(i.registerGamepadEventCallback=()=>Ee("'registerGamepadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"registerBeforeUnloadEventCallback")||(i.registerBeforeUnloadEventCallback=()=>Ee("'registerBeforeUnloadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"fillBatteryEventData")||(i.fillBatteryEventData=()=>Ee("'fillBatteryEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"battery")||(i.battery=()=>Ee("'battery' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"registerBatteryEventCallback")||(i.registerBatteryEventCallback=()=>Ee("'registerBatteryEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"setCanvasElementSize")||(i.setCanvasElementSize=()=>Ee("'setCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"getCanvasElementSize")||(i.getCanvasElementSize=()=>Ee("'getCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"demangle")||(i.demangle=()=>Ee("'demangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"demangleAll")||(i.demangleAll=()=>Ee("'demangleAll' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"jsStackTrace")||(i.jsStackTrace=()=>Ee("'jsStackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"stackTrace")||(i.stackTrace=()=>Ee("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"getEnvStrings")||(i.getEnvStrings=()=>Ee("'getEnvStrings' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"checkWasiClock")||(i.checkWasiClock=()=>Ee("'checkWasiClock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"writeI53ToI64")||(i.writeI53ToI64=()=>Ee("'writeI53ToI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"writeI53ToI64Clamped")||(i.writeI53ToI64Clamped=()=>Ee("'writeI53ToI64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"writeI53ToI64Signaling")||(i.writeI53ToI64Signaling=()=>Ee("'writeI53ToI64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"writeI53ToU64Clamped")||(i.writeI53ToU64Clamped=()=>Ee("'writeI53ToU64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"writeI53ToU64Signaling")||(i.writeI53ToU64Signaling=()=>Ee("'writeI53ToU64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"readI53FromI64")||(i.readI53FromI64=()=>Ee("'readI53FromI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"readI53FromU64")||(i.readI53FromU64=()=>Ee("'readI53FromU64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"convertI32PairToI53")||(i.convertI32PairToI53=()=>Ee("'convertI32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"convertU32PairToI53")||(i.convertU32PairToI53=()=>Ee("'convertU32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"setImmediateWrapped")||(i.setImmediateWrapped=()=>Ee("'setImmediateWrapped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"clearImmediateWrapped")||(i.clearImmediateWrapped=()=>Ee("'clearImmediateWrapped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"polyfillSetImmediate")||(i.polyfillSetImmediate=()=>Ee("'polyfillSetImmediate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"Browser")||(i.Browser=()=>Ee("'Browser' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"funcWrappers")||(i.funcWrappers=()=>Ee("'funcWrappers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"getFuncWrapper")||(i.getFuncWrapper=()=>Ee("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"setMainLoop")||(i.setMainLoop=()=>Ee("'setMainLoop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"wget")||(i.wget=()=>Ee("'wget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"FS")||(i.FS=()=>Ee("'FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"MEMFS")||(i.MEMFS=()=>Ee("'MEMFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"TTY")||(i.TTY=()=>Ee("'TTY' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"PIPEFS")||(i.PIPEFS=()=>Ee("'PIPEFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"SOCKFS")||(i.SOCKFS=()=>Ee("'SOCKFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"_setNetworkCallback")||(i._setNetworkCallback=()=>Ee("'_setNetworkCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"warnOnce")||(i.warnOnce=()=>Ee("'warnOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"stackSave")||(i.stackSave=()=>Ee("'stackSave' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"stackRestore")||(i.stackRestore=()=>Ee("'stackRestore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"stackAlloc")||(i.stackAlloc=()=>Ee("'stackAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"AsciiToString")||(i.AsciiToString=()=>Ee("'AsciiToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"stringToAscii")||(i.stringToAscii=()=>Ee("'stringToAscii' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"UTF16ToString")||(i.UTF16ToString=()=>Ee("'UTF16ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"stringToUTF16")||(i.stringToUTF16=()=>Ee("'stringToUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"lengthBytesUTF16")||(i.lengthBytesUTF16=()=>Ee("'lengthBytesUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"UTF32ToString")||(i.UTF32ToString=()=>Ee("'UTF32ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"stringToUTF32")||(i.stringToUTF32=()=>Ee("'stringToUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"lengthBytesUTF32")||(i.lengthBytesUTF32=()=>Ee("'lengthBytesUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"allocateUTF8")||(i.allocateUTF8=()=>Ee("'allocateUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"allocateUTF8OnStack")||(i.allocateUTF8OnStack=()=>Ee("'allocateUTF8OnStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),i.writeStackCookie=J,i.checkStackCookie=$,Object.getOwnPropertyDescriptor(i,"ALLOC_NORMAL")||Object.defineProperty(i,"ALLOC_NORMAL",{configurable:!0,get:function(){Ee("'ALLOC_NORMAL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),Object.getOwnPropertyDescriptor(i,"ALLOC_STACK")||Object.defineProperty(i,"ALLOC_STACK",{configurable:!0,get:function(){Ee("'ALLOC_STACK' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),se=function e(){xe||Ve(),xe||(se=e)},i.run=Ve,i.preInit)for("function"==typeof i.preInit&&(i.preInit=[i.preInit]);i.preInit.length>0;)i.preInit.pop()();return Ve(),e.ready});e.exports=n},727:e=>{const t=[{CRYPTO_PUBLICKEYBYTES:896,CRYPTO_SECRETKEYBYTES:2096,CRYPTO_BYTES:1387},{CRYPTO_PUBLICKEYBYTES:1184,CRYPTO_SECRETKEYBYTES:2800,CRYPTO_BYTES:2044},{CRYPTO_PUBLICKEYBYTES:1472,CRYPTO_SECRETKEYBYTES:3504,CRYPTO_BYTES:2701},{CRYPTO_PUBLICKEYBYTES:1760,CRYPTO_SECRETKEYBYTES:3856,CRYPTO_BYTES:3366}];e.exports={DILITHIUM_PARAMS:t,generateKeys:function(e,r,o){if(r<0||r>3)return-1;const n=o?o.length:0,i=o?e._malloc(n):0;o&&e.HEAPU8.set(new Uint8Array(o),i);const a=t[r].CRYPTO_SECRETKEYBYTES,s=t[r].CRYPTO_PUBLICKEYBYTES,d=e._malloc(s),c=e._malloc(a),l=e.ccall("dilithium_keygen","number",["number","number","number","number","number"],[d,c,r,i,n]);let p,E;return 0===l&&(p=new Uint8Array(e.HEAPU8.subarray(d,d+s)),E=new Uint8Array(e.HEAPU8.subarray(c,c+a))),i&&e._free(i),e._free(d),e._free(c),{result:l,publicKey:p,privateKey:E}},sign:function(e,r,o,n){if(n<0||n>3)throw new Error("Invalid Dilithium kind");const i=t[n],a=i.CRYPTO_BYTES,s=r.length,d=e._malloc(s);e.HEAPU8.set(new Uint8Array(r),d);const c=o.length;if(c!==i.CRYPTO_SECRETKEYBYTES)throw new Error(`Invalid private key size. Expected: ${i.CRYPTO_SECRETKEYBYTES}, Provided: ${c}`);const l=e._malloc(c);e.HEAPU8.set(new Uint8Array(o),l);const p=a+s,E=e._malloc(p),u=e._malloc(4);e.setValue(u,p,"i32");const f=e.ccall("dilithium_sign","number",["number","number","number","number","number","number","number"],[E,u,d,s,l,c,n]),h=e.getValue(u,"i32"),O=new Uint8Array(e.HEAPU8.buffer,E,h),m=new Uint8Array(O);return e._free(d),e._free(l),e._free(E),e._free(u),{result:f,signature:m,signatureLength:h}},verify:function(e,r,o,n,i){console.log("inside verify for kind",i);const a=t[i],s=a.CRYPTO_BYTES+o.length,d=a.CRYPTO_PUBLICKEYBYTES;if(console.log("inside verify expectedPublicKeySize",d),r.length!==s)throw new Error(`Invalid signature size. Expected ${s}, got ${r.length}`);if(n.length!==d)throw new Error(`Invalid public key size. Expected ${d}, got ${n.length}`);const c=e._malloc(s),l=e._malloc(o.length),p=e._malloc(d);e.HEAPU8.set(new Uint8Array(r),c),e.HEAPU8.set(new Uint8Array(o),l),e.HEAPU8.set(new Uint8Array(n),p);try{return{result:e.ccall("dilithium_verify","number",["number","number","number","bigint","number","number","number"],[c,s,l,BigInt(o.length),p,d,i]),signatureLength:r.length,expectedSignatureSize:s,messageLength:o.length,publicKeyLength:n.length,expectedPublicKeySize:d,kind:i}}finally{e._free(c),e._free(l),e._free(p)}}}},349:()=>{},175:()=>{},507:()=>{}},t={};function r(o){var n=t[o];if(void 0!==n)return n.exports;var i=t[o]={exports:{}};return e[o](i,i.exports,r),i.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};return(()=>{"use strict";r.r(o),r.d(o,{createDilithium:()=>i});var e=r(944),t=r.n(e),n=r(727);const i=()=>async function(){console.log("fetching wasm from /node_modules/dilithium-js/dilithium.wasm");const e=await fetch("/node_modules/dilithium-js/dilithium.wasm");return await e.arrayBuffer()}().then((e=>t()({wasmBinary:e,locateFile:e=>e.endsWith(".wasm")?"/node_modules/dilithium-js/dilithium.wasm":e}))).then((e=>({generateKeys:(t,r)=>(0,n.generateKeys)(e,t,r),sign:(t,r,o)=>(0,n.sign)(e,t,r,o),verify:(t,r,o,i)=>(0,n.verify)(e,t,r,o,i),DILITHIUM_PARAMS:n.DILITHIUM_PARAMS})))})(),o})()));
1
+ var e={944:(e,t,r)=>{var o,n=(o=(o="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0)||"/index.js",function(e){var t,n,i=void 0!==(e=e||{})?e:{};i.ready=new Promise((function(e,r){t=e,n=r})),Object.getOwnPropertyDescriptor(i.ready,"_malloc")||(Object.defineProperty(i.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(i.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(i.ready,"_free")||(Object.defineProperty(i.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(i.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(i.ready,"_SHA3_256")||(Object.defineProperty(i.ready,"_SHA3_256",{configurable:!0,get:function(){Ee("You are getting _SHA3_256 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(i.ready,"_SHA3_256",{configurable:!0,set:function(){Ee("You are setting _SHA3_256 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(i.ready,"_randombytes")||(Object.defineProperty(i.ready,"_randombytes",{configurable:!0,get:function(){Ee("You are getting _randombytes on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(i.ready,"_randombytes",{configurable:!0,set:function(){Ee("You are setting _randombytes on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(i.ready,"_dilithium_keygen")||(Object.defineProperty(i.ready,"_dilithium_keygen",{configurable:!0,get:function(){Ee("You are getting _dilithium_keygen on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(i.ready,"_dilithium_keygen",{configurable:!0,set:function(){Ee("You are setting _dilithium_keygen on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(i.ready,"_dilithium_sign")||(Object.defineProperty(i.ready,"_dilithium_sign",{configurable:!0,get:function(){Ee("You are getting _dilithium_sign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(i.ready,"_dilithium_sign",{configurable:!0,set:function(){Ee("You are setting _dilithium_sign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(i.ready,"_dilithium_verify")||(Object.defineProperty(i.ready,"_dilithium_verify",{configurable:!0,get:function(){Ee("You are getting _dilithium_verify on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(i.ready,"_dilithium_verify",{configurable:!0,set:function(){Ee("You are setting _dilithium_verify on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(i.ready,"___stdio_exit")||(Object.defineProperty(i.ready,"___stdio_exit",{configurable:!0,get:function(){Ee("You are getting ___stdio_exit on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(i.ready,"___stdio_exit",{configurable:!0,set:function(){Ee("You are setting ___stdio_exit on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(i.ready,"onRuntimeInitialized")||(Object.defineProperty(i.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(i.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 a=Object.assign({},i),s=[],d="object"==typeof window,c="function"==typeof importScripts,l="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,p=!d&&!l&&!c;if(i.ENVIRONMENT)throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -s ENVIRONMENT=web or -s ENVIRONMENT=node)");var E,u,f,h,O,m,g="";if(l){if("object"!=typeof process)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?)");g=c?r(507).dirname(g)+"/":"//",m=()=>{O||(h=r(175),O=r(507))},E=function(e,t){return m(),e=O.normalize(e),h.readFileSync(e,t?void 0:"utf8")},f=e=>{var t=E(e,!0);return t.buffer||(t=new Uint8Array(t)),I(t.buffer),t},u=(e,t,r)=>{m(),e=O.normalize(e),h.readFile(e,(function(e,o){e?r(e):t(o.buffer)}))},process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),s=process.argv.slice(2),process.on("uncaughtException",(function(e){if(!(e instanceof Ke))throw e})),process.on("unhandledRejection",(function(e){throw e})),i.inspect=function(){return"[Emscripten Module object]"}}else if(p){if("object"==typeof process||"object"==typeof window||"function"==typeof importScripts)throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");"undefined"!=typeof read&&(E=function(e){return read(e)}),f=function(e){let t;return"function"==typeof readbuffer?new Uint8Array(readbuffer(e)):(t=read(e,"binary"),I("object"==typeof t),t)},u=function(e,t,r){setTimeout((()=>t(f(e))),0)},"undefined"!=typeof scriptArgs?s=scriptArgs:void 0!==arguments&&(s=arguments),"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print)}else{if(!d&&!c)throw new Error("environment detection error");if(c?g=self.location.href:"undefined"!=typeof document&&document.currentScript&&(g=document.currentScript.src),o&&(g=o),g=0!==g.indexOf("blob:")?g.substr(0,g.replace(/[?#].*/,"").lastIndexOf("/")+1):"","object"!=typeof window&&"function"!=typeof importScripts)throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");E=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},c&&(f=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),u=(e,t,r)=>{var o=new XMLHttpRequest;o.open("GET",e,!0),o.responseType="arraybuffer",o.onload=()=>{200==o.status||0==o.status&&o.response?t(o.response):r()},o.onerror=r,o.send(null)}}var w,T=i.print||console.log.bind(console),y=i.printErr||console.warn.bind(console);function _(e){_.shown||(_.shown={}),_.shown[e]||(_.shown[e]=1,y(e))}Object.assign(i,a),a=null,i.arguments&&(s=i.arguments),Object.getOwnPropertyDescriptor(i,"arguments")||Object.defineProperty(i,"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)")}}),i.thisProgram&&i.thisProgram,Object.getOwnPropertyDescriptor(i,"thisProgram")||Object.defineProperty(i,"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)")}}),i.quit&&i.quit,Object.getOwnPropertyDescriptor(i,"quit")||Object.defineProperty(i,"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)")}}),I(void 0===i.memoryInitializerPrefixURL,"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),I(void 0===i.pthreadMainPrefixURL,"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),I(void 0===i.cdInitializerPrefixURL,"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),I(void 0===i.filePackagePrefixURL,"Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),I(void 0===i.read,"Module.read option was removed (modify read_ in JS)"),I(void 0===i.readAsync,"Module.readAsync option was removed (modify readAsync in JS)"),I(void 0===i.readBinary,"Module.readBinary option was removed (modify readBinary in JS)"),I(void 0===i.setWindowTitle,"Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),I(void 0===i.TOTAL_MEMORY,"Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"),Object.getOwnPropertyDescriptor(i,"read")||Object.defineProperty(i,"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(i,"readAsync")||Object.defineProperty(i,"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(i,"readBinary")||Object.defineProperty(i,"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(i,"setWindowTitle")||Object.defineProperty(i,"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)")}}),I(!p,"shell environment detected but not enabled at build time. Add 'shell' to `-s ENVIRONMENT` to enable."),i.wasmBinary&&(w=i.wasmBinary),Object.getOwnPropertyDescriptor(i,"wasmBinary")||Object.defineProperty(i,"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)")}});var D;i.noExitRuntime;function b(e,t,r="i8",o){if("*"===r.charAt(r.length-1)&&(r="i32"),o)switch(r){case"i1":case"i8":U[0|e]=t;break;case"i16":x[e>>1]=t;break;case"i32":C[e>>2]=t;break;case"i64":L[e>>3]=BigInt(t);break;case"float":H[e>>2]=t;break;case"double":X[e>>3]=t;break;default:Ee("invalid type for setValue: "+r)}else switch(r){case"i1":case"i8":M(0|e,0|t,1);break;case"i16":M(0|e,0|t,2);break;case"i32":M(0|e,0|t,4);break;case"i64":M(0|e,0|t,8);break;case"float":R(0|e,Math.fround(t),4);break;case"double":R(0|e,+t,8);break;default:Ee("invalid type for setValue: "+r)}}function v(e,t="i8",r){if("*"===t.charAt(t.length-1)&&(t="i32"),r)switch(t){case"i1":case"i8":return U[0|e];case"i16":return x[e>>1];case"i32":return C[e>>2];case"i64":return Number(L[e>>3]);case"float":return H[e>>2];case"double":return Number(X[e>>3]);default:Ee("invalid type for getValue: "+t)}else switch(t){case"i1":case"i8":return 0|S(0|e,1,0);case"i16":return 0|S(0|e,2,0);case"i32":return 0|S(0|e,4,0);case"i64":return 0|S(0|e,8,0);case"float":return Math.fround(A(0|e,4,0));case"double":return+A(0|e,8,0);default:Ee("invalid type for getValue: "+t)}return null}function P(e,t){switch(e){case 1:return"i8";case 2:return"i16";case 4:return t?"float":"i32";case 8:return t?"double":"i64";default:I(0)}}function M(e,t,r,o){if(e<=0&&Ee("segmentation fault storing "+r+" bytes to address "+e),e%r!=0&&Ee("alignment error storing to address "+e+", which was expected to be aligned to a multiple of "+r),oe&&!ne){var n=Le()>>>0;e+r>n&&Ee("segmentation fault, exceeded the top of the available dynamic heap when storing "+r+" bytes to address "+e+". DYNAMICTOP="+n),I(n>=Qe()),I(n<=U.length)}return b(e,t,P(r,o),1),t}function R(e,t,r){return M(e,t,r,!0)}function S(e,t,r,o){if(e<=0&&Ee("segmentation fault loading "+t+" bytes from address "+e),e%t!=0&&Ee("alignment error loading from address "+e+", which was expected to be aligned to a multiple of "+t),oe&&!ne){var n=Le()>>>0;e+t>n&&Ee("segmentation fault, exceeded the top of the available dynamic heap when loading "+t+" bytes from address "+e+". DYNAMICTOP="+n),I(n>=Qe()),I(n<=U.length)}var i,a,s=P(t,o),d=v(e,s,1);return r&&(i=d,a=parseInt(s.substr(1),10),d=i>=0?i:a<=32?2*Math.abs(1<<a-1)+i:Math.pow(2,a)+i),d}function A(e,t,r){return S(e,t,r,!0)}Object.getOwnPropertyDescriptor(i,"noExitRuntime")||Object.defineProperty(i,"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"!=typeof WebAssembly&&Ee("no native wasm support detected");var F=!1;function I(e,t){e||Ee("Assertion failed"+(t?": "+t:""))}function k(e,t,r,o,n){var a={string:function(e){var t=0;if(null!=e&&0!==e){var r=1+(e.length<<2);W(e,t=We(r),r)}return t},array:function(e){var t=We(e.length);return function(e,t){I(e.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),U.set(e,t)}(e,t),t}},s=function(e){var t=i["_"+e];return I(t,"Cannot call unknown function "+e+", make sure it is exported"),t}(e),d=[],c=0;if(I("array"!==t,'Return type should not be "array".'),o)for(var l=0;l<o.length;l++){var p=a[r[l]];p?(0===c&&(c=Ye()),d[l]=p(o[l])):d[l]=o[l]}var E=s.apply(null,d);return E=function(e){return 0!==c&&ze(c),function(e){return"string"===t?Y(e):"boolean"===t?Boolean(e):e}(e)}(E)}var N,U,j,x,C,H,L,X,Q="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function B(e,t,r){for(var o=t+r,n=t;e[n]&&!(n>=o);)++n;if(n-t>16&&e.subarray&&Q)return Q.decode(e.subarray(t,n));for(var i="";t<n;){var a=e[t++];if(128&a){var s=63&e[t++];if(192!=(224&a)){var d=63&e[t++];if(224==(240&a)?a=(15&a)<<12|s<<6|d:(240!=(248&a)&&_("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|d<<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 Y(e,t){return e?B(j,e,t):""}function z(e,t,r,o){if(!(o>0))return 0;for(var n=r,i=r+o-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>1114111&&_("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-0x10FFFF)."),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-n}function W(e,t,r){return I("number"==typeof r,"stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),z(e,j,t,r)}function K(e){for(var t=0,r=0;r<e.length;++r){var o=e.charCodeAt(r);o>=55296&&o<=57343&&(o=65536+((1023&o)<<10)|1023&e.charCodeAt(++r)),o<=127?++t:t+=o<=2047?2:o<=65535?3:4}return t}function V(e){N=e,i.HEAP8=U=new Int8Array(e),i.HEAP16=x=new Int16Array(e),i.HEAP32=C=new Int32Array(e),i.HEAPU8=j=new Uint8Array(e),i.HEAPU16=new Uint16Array(e),i.HEAPU32=new Uint32Array(e),i.HEAPF32=H=new Float32Array(e),i.HEAPF64=X=new Float64Array(e),i.HEAP64=L=new BigInt64Array(e),i.HEAPU64=new BigUint64Array(e)}"undefined"!=typeof TextDecoder&&new TextDecoder("utf-16le");var G=5242880;i.TOTAL_STACK&&I(G===i.TOTAL_STACK,"the stack size can no longer be determined at runtime");var q,Z=i.INITIAL_MEMORY||16777216;function J(){var e=Be();I(!(3&e)),M(e+4|0,34821223,4),M(e+8|0,-1984246274,4)}function $(){if(!F){var e=Be(),t=S(e+4|0,4,1)>>>0,r=S(e+8|0,4,1)>>>0;34821223==t&&2310721022==r||Ee("Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x2135467, but received 0x"+r.toString(16)+" 0x"+t.toString(16))}}Object.getOwnPropertyDescriptor(i,"INITIAL_MEMORY")||Object.defineProperty(i,"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)")}}),I(Z>=G,"INITIAL_MEMORY should be larger than TOTAL_STACK, was "+Z+"! (TOTAL_STACK="+G+")"),I("undefined"!=typeof Int32Array&&"undefined"!=typeof Float64Array&&null!=Int32Array.prototype.subarray&&null!=Int32Array.prototype.set,"JS engine does not provide full typed array support"),I(!i.wasmMemory,"Use of `wasmMemory` detected. Use -s IMPORTED_MEMORY to define wasmMemory externally"),I(16777216==Z,"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 ee=[],te=[],re=[],oe=!1,ne=!1;I(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),I(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),I(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),I(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 ie=0,ae=null,se=null,de={};function ce(e){for(var t=e;;){if(!de[e])return e;e=t+Math.random()}}function le(e){ie++,i.monitorRunDependencies&&i.monitorRunDependencies(ie),e?(I(!de[e]),de[e]=1,null===ae&&"undefined"!=typeof setInterval&&(ae=setInterval((function(){if(F)return clearInterval(ae),void(ae=null);var e=!1;for(var t in de)e||(e=!0,y("still waiting on run dependencies:")),y("dependency: "+t);e&&y("(end of list)")}),1e4))):y("warning: run dependency added without ID")}function pe(e){if(ie--,i.monitorRunDependencies&&i.monitorRunDependencies(ie),e?(I(de[e]),delete de[e]):y("warning: run dependency removed without ID"),0==ie&&(null!==ae&&(clearInterval(ae),ae=null),se)){var t=se;se=null,t()}}function Ee(e){i.onAbort&&i.onAbort(e),y(e="Aborted("+e+")"),F=!0;var t=new WebAssembly.RuntimeError(e);throw n(t),t}i.preloadedImages={},i.preloadedAudios={};var ue,fe,he="data:application/octet-stream;base64,";function Oe(e){return e.startsWith(he)}function me(e){return e.startsWith("file://")}function ge(e,t){return function(){var r=e,o=t;return t||(o=i.asm),I(oe,"native function `"+r+"` called before runtime initialization"),I(!ne,"native function `"+r+"` called after runtime exit (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),o[e]||I(o[e],"exported native function `"+r+"` not found"),o[e].apply(null,arguments)}}function we(e){try{if(e==ue&&w)return new Uint8Array(w);if(f)return f(e);throw"both async and sync fetching of the wasm failed"}catch(e){Ee(e)}}function Te(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var r=t.func;"number"==typeof r?void 0===t.arg?De(r)():De(r)(t.arg):r(void 0===t.arg?null:t.arg)}else t(i)}}function ye(e){return e.replace(/\b_Z[\w\d_]+/g,(function(e){var t,r=(t=e,_("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),t);return e===r?e:r+" ["+e+"]"}))}Oe(ue="dilithium.wasm")||(fe=ue,ue=i.locateFile?i.locateFile(fe,g):g+fe);var _e=[];function De(e){var t=_e[e];return t||(e>=_e.length&&(_e.length=e+1),_e[e]=t=q.get(e)),I(q.get(e)==t,"JavaScript-side Wasm function table mirror is out of date!"),t}var be={splitPath:function(e){return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1)},normalizeArray:function(e,t){for(var r=0,o=e.length-1;o>=0;o--){var n=e[o];"."===n?e.splice(o,1):".."===n?(e.splice(o,1),r++):r&&(e.splice(o,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=be.normalizeArray(e.split("/").filter((function(e){return!!e})),!t).join("/"))||t||(e="."),e&&r&&(e+="/"),(t?"/":"")+e},dirname:function(e){var t=be.splitPath(e),r=t[0],o=t[1];return r||o?(o&&(o=o.substr(0,o.length-1)),r+o):"."},basename:function(e){if("/"===e)return"/";var t=(e=(e=be.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?e:e.substr(t+1)},extname:function(e){return be.splitPath(e)[3]},join:function(){var e=Array.prototype.slice.call(arguments,0);return be.normalize(e.join("/"))},join2:function(e,t){return be.normalize(e+"/"+t)}},ve={resolve:function(){for(var e="",t=!1,r=arguments.length-1;r>=-1&&!t;r--){var o=r>=0?arguments[r]:Ae.cwd();if("string"!=typeof o)throw new TypeError("Arguments to path.resolve must be strings");if(!o)return"";e=o+"/"+e,t="/"===o.charAt(0)}return(t?"/":"")+(e=be.normalizeArray(e.split("/").filter((function(e){return!!e})),!t).join("/"))||"."},relative:function(e,t){function r(e){for(var t=0;t<e.length&&""===e[t];t++);for(var r=e.length-1;r>=0&&""===e[r];r--);return t>r?[]:e.slice(t,r-t+1)}e=ve.resolve(e).substr(1),t=ve.resolve(t).substr(1);for(var o=r(e.split("/")),n=r(t.split("/")),i=Math.min(o.length,n.length),a=i,s=0;s<i;s++)if(o[s]!==n[s]){a=s;break}var d=[];for(s=a;s<o.length;s++)d.push("..");return(d=d.concat(n.slice(a))).join("/")}},Pe={ttys:[],init:function(){},shutdown:function(){},register:function(e,t){Pe.ttys[e]={input:[],output:[],ops:t},Ae.registerDevice(e,Pe.stream_ops)},stream_ops:{open:function(e){var t=Pe.ttys[e.node.rdev];if(!t)throw new Ae.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,o,n){if(!e.tty||!e.tty.ops.get_char)throw new Ae.ErrnoError(60);for(var i=0,a=0;a<o;a++){var s;try{s=e.tty.ops.get_char(e.tty)}catch(e){throw new Ae.ErrnoError(29)}if(void 0===s&&0===i)throw new Ae.ErrnoError(6);if(null==s)break;i++,t[r+a]=s}return i&&(e.node.timestamp=Date.now()),i},write:function(e,t,r,o,n){if(!e.tty||!e.tty.ops.put_char)throw new Ae.ErrnoError(60);try{for(var i=0;i<o;i++)e.tty.ops.put_char(e.tty,t[r+i])}catch(e){throw new Ae.ErrnoError(29)}return o&&(e.node.timestamp=Date.now()),i}},default_tty_ops:{get_char:function(e){if(!e.input.length){var t=null;if(l){var r=Buffer.alloc(256),o=0;try{o=h.readSync(process.stdin.fd,r,0,256,-1)}catch(e){if(!e.toString().includes("EOF"))throw e;o=0}t=o>0?r.slice(0,o).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=je(t,!0)}return e.input.shift()},put_char:function(e,t){null===t||10===t?(T(B(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(T(B(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,t){null===t||10===t?(y(B(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(y(B(e.output,0)),e.output=[])}}},Me={ops_table:null,mount:function(e){return Me.createNode(null,"/",16895,0)},createNode:function(e,t,r,o){if(Ae.isBlkdev(r)||Ae.isFIFO(r))throw new Ae.ErrnoError(63);Me.ops_table||(Me.ops_table={dir:{node:{getattr:Me.node_ops.getattr,setattr:Me.node_ops.setattr,lookup:Me.node_ops.lookup,mknod:Me.node_ops.mknod,rename:Me.node_ops.rename,unlink:Me.node_ops.unlink,rmdir:Me.node_ops.rmdir,readdir:Me.node_ops.readdir,symlink:Me.node_ops.symlink},stream:{llseek:Me.stream_ops.llseek}},file:{node:{getattr:Me.node_ops.getattr,setattr:Me.node_ops.setattr},stream:{llseek:Me.stream_ops.llseek,read:Me.stream_ops.read,write:Me.stream_ops.write,allocate:Me.stream_ops.allocate,mmap:Me.stream_ops.mmap,msync:Me.stream_ops.msync}},link:{node:{getattr:Me.node_ops.getattr,setattr:Me.node_ops.setattr,readlink:Me.node_ops.readlink},stream:{}},chrdev:{node:{getattr:Me.node_ops.getattr,setattr:Me.node_ops.setattr},stream:Ae.chrdev_stream_ops}});var n=Ae.createNode(e,t,r,o);return Ae.isDir(n.mode)?(n.node_ops=Me.ops_table.dir.node,n.stream_ops=Me.ops_table.dir.stream,n.contents={}):Ae.isFile(n.mode)?(n.node_ops=Me.ops_table.file.node,n.stream_ops=Me.ops_table.file.stream,n.usedBytes=0,n.contents=null):Ae.isLink(n.mode)?(n.node_ops=Me.ops_table.link.node,n.stream_ops=Me.ops_table.link.stream):Ae.isChrdev(n.mode)&&(n.node_ops=Me.ops_table.chrdev.node,n.stream_ops=Me.ops_table.chrdev.stream),n.timestamp=Date.now(),e&&(e.contents[t]=n,e.timestamp=n.timestamp),n},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 o=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(o.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=Ae.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,Ae.isDir(e.mode)?t.size=4096:Ae.isFile(e.mode)?t.size=e.usedBytes:Ae.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&&Me.resizeFileStorage(e,t.size)},lookup:function(e,t){throw Ae.genericErrors[44]},mknod:function(e,t,r,o){return Me.createNode(e,t,r,o)},rename:function(e,t,r){if(Ae.isDir(e.mode)){var o;try{o=Ae.lookupNode(t,r)}catch(e){}if(o)for(var n in o.contents)throw new Ae.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=Ae.lookupNode(e,t);for(var o in r.contents)throw new Ae.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 o=Me.createNode(e,t,41471,0);return o.link=r,o},readlink:function(e){if(!Ae.isLink(e.mode))throw new Ae.ErrnoError(28);return e.link}},stream_ops:{read:function(e,t,r,o,n){var i=e.node.contents;if(n>=e.node.usedBytes)return 0;var a=Math.min(e.node.usedBytes-n,o);if(I(a>=0),a>8&&i.subarray)t.set(i.subarray(n,n+a),r);else for(var s=0;s<a;s++)t[r+s]=i[n+s];return a},write:function(e,t,r,o,n,i){if(I(!(t instanceof ArrayBuffer)),t.buffer===U.buffer&&(i=!1),!o)return 0;var a=e.node;if(a.timestamp=Date.now(),t.subarray&&(!a.contents||a.contents.subarray)){if(i)return I(0===n,"canOwn must imply no weird position inside the file"),a.contents=t.subarray(r,r+o),a.usedBytes=o,o;if(0===a.usedBytes&&0===n)return a.contents=t.slice(r,r+o),a.usedBytes=o,o;if(n+o<=a.usedBytes)return a.contents.set(t.subarray(r,r+o),n),o}if(Me.expandFileStorage(a,n+o),a.contents.subarray&&t.subarray)a.contents.set(t.subarray(r,r+o),n);else for(var s=0;s<o;s++)a.contents[n+s]=t[r+s];return a.usedBytes=Math.max(a.usedBytes,n+o),o},llseek:function(e,t,r){var o=t;if(1===r?o+=e.position:2===r&&Ae.isFile(e.node.mode)&&(o+=e.node.usedBytes),o<0)throw new Ae.ErrnoError(28);return o},allocate:function(e,t,r){Me.expandFileStorage(e.node,t+r),e.node.usedBytes=Math.max(e.node.usedBytes,t+r)},mmap:function(e,t,r,o,n,i){if(0!==t)throw new Ae.ErrnoError(28);if(!Ae.isFile(e.node.mode))throw new Ae.ErrnoError(43);var a,s,d=e.node.contents;if(2&i||d.buffer!==N){if((o>0||o+r<d.length)&&(d=d.subarray?d.subarray(o,o+r):Array.prototype.slice.call(d,o,o+r)),s=!0,!(a=void Ee("internal error: mmapAlloc called but `emscripten_builtin_memalign` native symbol not exported")))throw new Ae.ErrnoError(48);U.set(d,a)}else s=!1,a=d.byteOffset;return{ptr:a,allocated:s}},msync:function(e,t,r,o,n){if(!Ae.isFile(e.node.mode))throw new Ae.ErrnoError(43);return 2&n||Me.stream_ops.write(e,t,0,o,r,!1),0}}},Re={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"},Se={},Ae={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(e,t={})=>{if(!(e=ve.resolve(Ae.cwd(),e)))return{path:"",node:null};var r={follow_mount:!0,recurse_count:0};for(var o in r)void 0===t[o]&&(t[o]=r[o]);if(t.recurse_count>8)throw new Ae.ErrnoError(32);for(var n=be.normalizeArray(e.split("/").filter((e=>!!e)),!1),i=Ae.root,a="/",s=0;s<n.length;s++){var d=s===n.length-1;if(d&&t.parent)break;if(i=Ae.lookupNode(i,n[s]),a=be.join2(a,n[s]),Ae.isMountpoint(i)&&(!d||d&&t.follow_mount)&&(i=i.mounted.root),!d||t.follow)for(var c=0;Ae.isLink(i.mode);){var l=Ae.readlink(a);if(a=ve.resolve(be.dirname(a),l),i=Ae.lookupPath(a,{recurse_count:t.recurse_count}).node,c++>40)throw new Ae.ErrnoError(32)}}return{path:a,node:i}},getPath:e=>{for(var t;;){if(Ae.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:(e,t)=>{for(var r=0,o=0;o<t.length;o++)r=(r<<5)-r+t.charCodeAt(o)|0;return(e+r>>>0)%Ae.nameTable.length},hashAddNode:e=>{var t=Ae.hashName(e.parent.id,e.name);e.name_next=Ae.nameTable[t],Ae.nameTable[t]=e},hashRemoveNode:e=>{var t=Ae.hashName(e.parent.id,e.name);if(Ae.nameTable[t]===e)Ae.nameTable[t]=e.name_next;else for(var r=Ae.nameTable[t];r;){if(r.name_next===e){r.name_next=e.name_next;break}r=r.name_next}},lookupNode:(e,t)=>{var r=Ae.mayLookup(e);if(r)throw new Ae.ErrnoError(r,e);for(var o=Ae.hashName(e.id,t),n=Ae.nameTable[o];n;n=n.name_next){var i=n.name;if(n.parent.id===e.id&&i===t)return n}return Ae.lookup(e,t)},createNode:(e,t,r,o)=>{I("object"==typeof e);var n=new Ae.FSNode(e,t,r,o);return Ae.hashAddNode(n),n},destroyNode:e=>{Ae.hashRemoveNode(e)},isRoot:e=>e===e.parent,isMountpoint:e=>!!e.mounted,isFile:e=>32768==(61440&e),isDir:e=>16384==(61440&e),isLink:e=>40960==(61440&e),isChrdev:e=>8192==(61440&e),isBlkdev:e=>24576==(61440&e),isFIFO:e=>4096==(61440&e),isSocket:e=>!(49152&~e),flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:e=>{var t=Ae.flagModes[e];if(void 0===t)throw new Error("Unknown file open mode: "+e);return t},flagsToPermissionString:e=>{var t=["r","w","rw"][3&e];return 512&e&&(t+="w"),t},nodePermissions:(e,t)=>Ae.ignorePermissions||(!t.includes("r")||292&e.mode)&&(!t.includes("w")||146&e.mode)&&(!t.includes("x")||73&e.mode)?0:2,mayLookup:e=>{var t=Ae.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate:(e,t)=>{try{return Ae.lookupNode(e,t),20}catch(e){}return Ae.nodePermissions(e,"wx")},mayDelete:(e,t,r)=>{var o;try{o=Ae.lookupNode(e,t)}catch(e){return e.errno}var n=Ae.nodePermissions(e,"wx");if(n)return n;if(r){if(!Ae.isDir(o.mode))return 54;if(Ae.isRoot(o)||Ae.getPath(o)===Ae.cwd())return 10}else if(Ae.isDir(o.mode))return 31;return 0},mayOpen:(e,t)=>e?Ae.isLink(e.mode)?32:Ae.isDir(e.mode)&&("r"!==Ae.flagsToPermissionString(t)||512&t)?31:Ae.nodePermissions(e,Ae.flagsToPermissionString(t)):44,MAX_OPEN_FDS:4096,nextfd:(e=0,t=Ae.MAX_OPEN_FDS)=>{for(var r=e;r<=t;r++)if(!Ae.streams[r])return r;throw new Ae.ErrnoError(33)},getStream:e=>Ae.streams[e],createStream:(e,t,r)=>{Ae.FSStream||(Ae.FSStream=function(){},Ae.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}}}),e=Object.assign(new Ae.FSStream,e);var o=Ae.nextfd(t,r);return e.fd=o,Ae.streams[o]=e,e},closeStream:e=>{Ae.streams[e]=null},chrdev_stream_ops:{open:e=>{var t=Ae.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:()=>{throw new Ae.ErrnoError(70)}},major:e=>e>>8,minor:e=>255&e,makedev:(e,t)=>e<<8|t,registerDevice:(e,t)=>{Ae.devices[e]={stream_ops:t}},getDevice:e=>Ae.devices[e],getMounts:e=>{for(var t=[],r=[e];r.length;){var o=r.pop();t.push(o),r.push.apply(r,o.mounts)}return t},syncfs:(e,t)=>{"function"==typeof e&&(t=e,e=!1),Ae.syncFSRequests++,Ae.syncFSRequests>1&&y("warning: "+Ae.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var r=Ae.getMounts(Ae.root.mount),o=0;function n(e){return I(Ae.syncFSRequests>0),Ae.syncFSRequests--,t(e)}function i(e){if(e)return i.errored?void 0:(i.errored=!0,n(e));++o>=r.length&&n(null)}r.forEach((t=>{if(!t.type.syncfs)return i(null);t.type.syncfs(t,e,i)}))},mount:(e,t,r)=>{if("string"==typeof e)throw e;var o,n="/"===r,i=!r;if(n&&Ae.root)throw new Ae.ErrnoError(10);if(!n&&!i){var a=Ae.lookupPath(r,{follow_mount:!1});if(r=a.path,o=a.node,Ae.isMountpoint(o))throw new Ae.ErrnoError(10);if(!Ae.isDir(o.mode))throw new Ae.ErrnoError(54)}var s={type:e,opts:t,mountpoint:r,mounts:[]},d=e.mount(s);return d.mount=s,s.root=d,n?Ae.root=d:o&&(o.mounted=s,o.mount&&o.mount.mounts.push(s)),d},unmount:e=>{var t=Ae.lookupPath(e,{follow_mount:!1});if(!Ae.isMountpoint(t.node))throw new Ae.ErrnoError(28);var r=t.node,o=r.mounted,n=Ae.getMounts(o);Object.keys(Ae.nameTable).forEach((e=>{for(var t=Ae.nameTable[e];t;){var r=t.name_next;n.includes(t.mount)&&Ae.destroyNode(t),t=r}})),r.mounted=null;var i=r.mount.mounts.indexOf(o);I(-1!==i),r.mount.mounts.splice(i,1)},lookup:(e,t)=>e.node_ops.lookup(e,t),mknod:(e,t,r)=>{var o=Ae.lookupPath(e,{parent:!0}).node,n=be.basename(e);if(!n||"."===n||".."===n)throw new Ae.ErrnoError(28);var i=Ae.mayCreate(o,n);if(i)throw new Ae.ErrnoError(i);if(!o.node_ops.mknod)throw new Ae.ErrnoError(63);return o.node_ops.mknod(o,n,t,r)},create:(e,t)=>(t=void 0!==t?t:438,t&=4095,t|=32768,Ae.mknod(e,t,0)),mkdir:(e,t)=>(t=void 0!==t?t:511,t&=1023,t|=16384,Ae.mknod(e,t,0)),mkdirTree:(e,t)=>{for(var r=e.split("/"),o="",n=0;n<r.length;++n)if(r[n]){o+="/"+r[n];try{Ae.mkdir(o,t)}catch(e){if(20!=e.errno)throw e}}},mkdev:(e,t,r)=>(void 0===r&&(r=t,t=438),t|=8192,Ae.mknod(e,t,r)),symlink:(e,t)=>{if(!ve.resolve(e))throw new Ae.ErrnoError(44);var r=Ae.lookupPath(t,{parent:!0}).node;if(!r)throw new Ae.ErrnoError(44);var o=be.basename(t),n=Ae.mayCreate(r,o);if(n)throw new Ae.ErrnoError(n);if(!r.node_ops.symlink)throw new Ae.ErrnoError(63);return r.node_ops.symlink(r,o,e)},rename:(e,t)=>{var r,o,n=be.dirname(e),i=be.dirname(t),a=be.basename(e),s=be.basename(t);if(r=Ae.lookupPath(e,{parent:!0}).node,o=Ae.lookupPath(t,{parent:!0}).node,!r||!o)throw new Ae.ErrnoError(44);if(r.mount!==o.mount)throw new Ae.ErrnoError(75);var d,c=Ae.lookupNode(r,a),l=ve.relative(e,i);if("."!==l.charAt(0))throw new Ae.ErrnoError(28);if("."!==(l=ve.relative(t,n)).charAt(0))throw new Ae.ErrnoError(55);try{d=Ae.lookupNode(o,s)}catch(e){}if(c!==d){var p=Ae.isDir(c.mode),E=Ae.mayDelete(r,a,p);if(E)throw new Ae.ErrnoError(E);if(E=d?Ae.mayDelete(o,s,p):Ae.mayCreate(o,s))throw new Ae.ErrnoError(E);if(!r.node_ops.rename)throw new Ae.ErrnoError(63);if(Ae.isMountpoint(c)||d&&Ae.isMountpoint(d))throw new Ae.ErrnoError(10);if(o!==r&&(E=Ae.nodePermissions(r,"w")))throw new Ae.ErrnoError(E);Ae.hashRemoveNode(c);try{r.node_ops.rename(c,o,s)}catch(e){throw e}finally{Ae.hashAddNode(c)}}},rmdir:e=>{var t=Ae.lookupPath(e,{parent:!0}).node,r=be.basename(e),o=Ae.lookupNode(t,r),n=Ae.mayDelete(t,r,!0);if(n)throw new Ae.ErrnoError(n);if(!t.node_ops.rmdir)throw new Ae.ErrnoError(63);if(Ae.isMountpoint(o))throw new Ae.ErrnoError(10);t.node_ops.rmdir(t,r),Ae.destroyNode(o)},readdir:e=>{var t=Ae.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new Ae.ErrnoError(54);return t.node_ops.readdir(t)},unlink:e=>{var t=Ae.lookupPath(e,{parent:!0}).node;if(!t)throw new Ae.ErrnoError(44);var r=be.basename(e),o=Ae.lookupNode(t,r),n=Ae.mayDelete(t,r,!1);if(n)throw new Ae.ErrnoError(n);if(!t.node_ops.unlink)throw new Ae.ErrnoError(63);if(Ae.isMountpoint(o))throw new Ae.ErrnoError(10);t.node_ops.unlink(t,r),Ae.destroyNode(o)},readlink:e=>{var t=Ae.lookupPath(e).node;if(!t)throw new Ae.ErrnoError(44);if(!t.node_ops.readlink)throw new Ae.ErrnoError(28);return ve.resolve(Ae.getPath(t.parent),t.node_ops.readlink(t))},stat:(e,t)=>{var r=Ae.lookupPath(e,{follow:!t}).node;if(!r)throw new Ae.ErrnoError(44);if(!r.node_ops.getattr)throw new Ae.ErrnoError(63);return r.node_ops.getattr(r)},lstat:e=>Ae.stat(e,!0),chmod:(e,t,r)=>{var o;if(!(o="string"==typeof e?Ae.lookupPath(e,{follow:!r}).node:e).node_ops.setattr)throw new Ae.ErrnoError(63);o.node_ops.setattr(o,{mode:4095&t|-4096&o.mode,timestamp:Date.now()})},lchmod:(e,t)=>{Ae.chmod(e,t,!0)},fchmod:(e,t)=>{var r=Ae.getStream(e);if(!r)throw new Ae.ErrnoError(8);Ae.chmod(r.node,t)},chown:(e,t,r,o)=>{var n;if(!(n="string"==typeof e?Ae.lookupPath(e,{follow:!o}).node:e).node_ops.setattr)throw new Ae.ErrnoError(63);n.node_ops.setattr(n,{timestamp:Date.now()})},lchown:(e,t,r)=>{Ae.chown(e,t,r,!0)},fchown:(e,t,r)=>{var o=Ae.getStream(e);if(!o)throw new Ae.ErrnoError(8);Ae.chown(o.node,t,r)},truncate:(e,t)=>{if(t<0)throw new Ae.ErrnoError(28);var r;if(!(r="string"==typeof e?Ae.lookupPath(e,{follow:!0}).node:e).node_ops.setattr)throw new Ae.ErrnoError(63);if(Ae.isDir(r.mode))throw new Ae.ErrnoError(31);if(!Ae.isFile(r.mode))throw new Ae.ErrnoError(28);var o=Ae.nodePermissions(r,"w");if(o)throw new Ae.ErrnoError(o);r.node_ops.setattr(r,{size:t,timestamp:Date.now()})},ftruncate:(e,t)=>{var r=Ae.getStream(e);if(!r)throw new Ae.ErrnoError(8);if(!(2097155&r.flags))throw new Ae.ErrnoError(28);Ae.truncate(r.node,t)},utime:(e,t,r)=>{var o=Ae.lookupPath(e,{follow:!0}).node;o.node_ops.setattr(o,{timestamp:Math.max(t,r)})},open:(e,t,r,o,n)=>{if(""===e)throw new Ae.ErrnoError(44);var a;if(r=void 0===r?438:r,r=64&(t="string"==typeof t?Ae.modeStringToFlags(t):t)?4095&r|32768:0,"object"==typeof e)a=e;else{e=be.normalize(e);try{a=Ae.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var s=!1;if(64&t)if(a){if(128&t)throw new Ae.ErrnoError(20)}else a=Ae.mknod(e,r,0),s=!0;if(!a)throw new Ae.ErrnoError(44);if(Ae.isChrdev(a.mode)&&(t&=-513),65536&t&&!Ae.isDir(a.mode))throw new Ae.ErrnoError(54);if(!s){var d=Ae.mayOpen(a,t);if(d)throw new Ae.ErrnoError(d)}512&t&&Ae.truncate(a,0),t&=-131713;var c=Ae.createStream({node:a,path:Ae.getPath(a),flags:t,seekable:!0,position:0,stream_ops:a.stream_ops,ungotten:[],error:!1},o,n);return c.stream_ops.open&&c.stream_ops.open(c),!i.logReadFiles||1&t||(Ae.readFiles||(Ae.readFiles={}),e in Ae.readFiles||(Ae.readFiles[e]=1)),c},close:e=>{if(Ae.isClosed(e))throw new Ae.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{Ae.closeStream(e.fd)}e.fd=null},isClosed:e=>null===e.fd,llseek:(e,t,r)=>{if(Ae.isClosed(e))throw new Ae.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new Ae.ErrnoError(70);if(0!=r&&1!=r&&2!=r)throw new Ae.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,r),e.ungotten=[],e.position},read:(e,t,r,o,n)=>{if(o<0||n<0)throw new Ae.ErrnoError(28);if(Ae.isClosed(e))throw new Ae.ErrnoError(8);if(1==(2097155&e.flags))throw new Ae.ErrnoError(8);if(Ae.isDir(e.node.mode))throw new Ae.ErrnoError(31);if(!e.stream_ops.read)throw new Ae.ErrnoError(28);var i=void 0!==n;if(i){if(!e.seekable)throw new Ae.ErrnoError(70)}else n=e.position;var a=e.stream_ops.read(e,t,r,o,n);return i||(e.position+=a),a},write:(e,t,r,o,n,i)=>{if(o<0||n<0)throw new Ae.ErrnoError(28);if(Ae.isClosed(e))throw new Ae.ErrnoError(8);if(!(2097155&e.flags))throw new Ae.ErrnoError(8);if(Ae.isDir(e.node.mode))throw new Ae.ErrnoError(31);if(!e.stream_ops.write)throw new Ae.ErrnoError(28);e.seekable&&1024&e.flags&&Ae.llseek(e,0,2);var a=void 0!==n;if(a){if(!e.seekable)throw new Ae.ErrnoError(70)}else n=e.position;var s=e.stream_ops.write(e,t,r,o,n,i);return a||(e.position+=s),s},allocate:(e,t,r)=>{if(Ae.isClosed(e))throw new Ae.ErrnoError(8);if(t<0||r<=0)throw new Ae.ErrnoError(28);if(!(2097155&e.flags))throw new Ae.ErrnoError(8);if(!Ae.isFile(e.node.mode)&&!Ae.isDir(e.node.mode))throw new Ae.ErrnoError(43);if(!e.stream_ops.allocate)throw new Ae.ErrnoError(138);e.stream_ops.allocate(e,t,r)},mmap:(e,t,r,o,n,i)=>{if(2&n&&!(2&i)&&2!=(2097155&e.flags))throw new Ae.ErrnoError(2);if(1==(2097155&e.flags))throw new Ae.ErrnoError(2);if(!e.stream_ops.mmap)throw new Ae.ErrnoError(43);return e.stream_ops.mmap(e,t,r,o,n,i)},msync:(e,t,r,o,n)=>e&&e.stream_ops.msync?e.stream_ops.msync(e,t,r,o,n):0,munmap:e=>0,ioctl:(e,t,r)=>{if(!e.stream_ops.ioctl)throw new Ae.ErrnoError(59);return e.stream_ops.ioctl(e,t,r)},readFile:(e,t={})=>{if(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,o=Ae.open(e,t.flags),n=Ae.stat(e).size,i=new Uint8Array(n);return Ae.read(o,i,0,n,0),"utf8"===t.encoding?r=B(i,0):"binary"===t.encoding&&(r=i),Ae.close(o),r},writeFile:(e,t,r={})=>{r.flags=r.flags||577;var o=Ae.open(e,r.flags,r.mode);if("string"==typeof t){var n=new Uint8Array(K(t)+1),i=z(t,n,0,n.length);Ae.write(o,n,0,i,void 0,r.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");Ae.write(o,t,0,t.byteLength,void 0,r.canOwn)}Ae.close(o)},cwd:()=>Ae.currentPath,chdir:e=>{var t=Ae.lookupPath(e,{follow:!0});if(null===t.node)throw new Ae.ErrnoError(44);if(!Ae.isDir(t.node.mode))throw new Ae.ErrnoError(54);var r=Ae.nodePermissions(t.node,"x");if(r)throw new Ae.ErrnoError(r);Ae.currentPath=t.path},createDefaultDirectories:()=>{Ae.mkdir("/tmp"),Ae.mkdir("/home"),Ae.mkdir("/home/web_user")},createDefaultDevices:()=>{Ae.mkdir("/dev"),Ae.registerDevice(Ae.makedev(1,3),{read:()=>0,write:(e,t,r,o,n)=>o}),Ae.mkdev("/dev/null",Ae.makedev(1,3)),Pe.register(Ae.makedev(5,0),Pe.default_tty_ops),Pe.register(Ae.makedev(6,0),Pe.default_tty1_ops),Ae.mkdev("/dev/tty",Ae.makedev(5,0)),Ae.mkdev("/dev/tty1",Ae.makedev(6,0));var e=function(){if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var e=new Uint8Array(1);return function(){return crypto.getRandomValues(e),e[0]}}if(l)try{var t=r(349);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 } };")}}();Ae.createDevice("/dev","random",e),Ae.createDevice("/dev","urandom",e),Ae.mkdir("/dev/shm"),Ae.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{Ae.mkdir("/proc");var e=Ae.mkdir("/proc/self");Ae.mkdir("/proc/self/fd"),Ae.mount({mount:()=>{var t=Ae.createNode(e,"fd",16895,73);return t.node_ops={lookup:(e,t)=>{var r=+t,o=Ae.getStream(r);if(!o)throw new Ae.ErrnoError(8);var n={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>o.path}};return n.parent=n,n}},t}},{},"/proc/self/fd")},createStandardStreams:()=>{i.stdin?Ae.createDevice("/dev","stdin",i.stdin):Ae.symlink("/dev/tty","/dev/stdin"),i.stdout?Ae.createDevice("/dev","stdout",null,i.stdout):Ae.symlink("/dev/tty","/dev/stdout"),i.stderr?Ae.createDevice("/dev","stderr",null,i.stderr):Ae.symlink("/dev/tty1","/dev/stderr");var e=Ae.open("/dev/stdin",0),t=Ae.open("/dev/stdout",1),r=Ae.open("/dev/stderr",1);I(0===e.fd,"invalid handle for stdin ("+e.fd+")"),I(1===t.fd,"invalid handle for stdout ("+t.fd+")"),I(2===r.fd,"invalid handle for stderr ("+r.fd+")")},ensureErrnoError:()=>{Ae.ErrnoError||(Ae.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){for(var t in this.errno=e,Se)if(Se[t]===e){this.code=t;break}},this.setErrno(e),this.message=Re[e],this.stack&&(Object.defineProperty(this,"stack",{value:(new Error).stack,writable:!0}),this.stack=ye(this.stack))},Ae.ErrnoError.prototype=new Error,Ae.ErrnoError.prototype.constructor=Ae.ErrnoError,[44].forEach((e=>{Ae.genericErrors[e]=new Ae.ErrnoError(e),Ae.genericErrors[e].stack="<generic error, no stack>"})))},staticInit:()=>{Ae.ensureErrnoError(),Ae.nameTable=new Array(4096),Ae.mount(Me,{},"/"),Ae.createDefaultDirectories(),Ae.createDefaultDevices(),Ae.createSpecialDirectories(),Ae.filesystems={MEMFS:Me}},init:(e,t,r)=>{I(!Ae.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)"),Ae.init.initialized=!0,Ae.ensureErrnoError(),i.stdin=e||i.stdin,i.stdout=t||i.stdout,i.stderr=r||i.stderr,Ae.createStandardStreams()},quit:()=>{Ae.init.initialized=!1,He();for(var e=0;e<Ae.streams.length;e++){var t=Ae.streams[e];t&&Ae.close(t)}},getMode:(e,t)=>{var r=0;return e&&(r|=365),t&&(r|=146),r},findObject:(e,t)=>{var r=Ae.analyzePath(e,t);return r.exists?r.object:null},analyzePath:(e,t)=>{try{e=(o=Ae.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 o=Ae.lookupPath(e,{parent:!0});r.parentExists=!0,r.parentPath=o.path,r.parentObject=o.node,r.name=be.basename(e),o=Ae.lookupPath(e,{follow:!t}),r.exists=!0,r.path=o.path,r.object=o.node,r.name=o.node.name,r.isRoot="/"===o.path}catch(e){r.error=e.errno}return r},createPath:(e,t,r,o)=>{e="string"==typeof e?e:Ae.getPath(e);for(var n=t.split("/").reverse();n.length;){var i=n.pop();if(i){var a=be.join2(e,i);try{Ae.mkdir(a)}catch(e){}e=a}}return a},createFile:(e,t,r,o,n)=>{var i=be.join2("string"==typeof e?e:Ae.getPath(e),t),a=Ae.getMode(o,n);return Ae.create(i,a)},createDataFile:(e,t,r,o,n,i)=>{var a=t;e&&(e="string"==typeof e?e:Ae.getPath(e),a=t?be.join2(e,t):e);var s=Ae.getMode(o,n),d=Ae.create(a,s);if(r){if("string"==typeof r){for(var c=new Array(r.length),l=0,p=r.length;l<p;++l)c[l]=r.charCodeAt(l);r=c}Ae.chmod(d,146|s);var E=Ae.open(d,577);Ae.write(E,r,0,r.length,0,i),Ae.close(E),Ae.chmod(d,s)}return d},createDevice:(e,t,r,o)=>{var n=be.join2("string"==typeof e?e:Ae.getPath(e),t),i=Ae.getMode(!!r,!!o);Ae.createDevice.major||(Ae.createDevice.major=64);var a=Ae.makedev(Ae.createDevice.major++,0);return Ae.registerDevice(a,{open:e=>{e.seekable=!1},close:e=>{o&&o.buffer&&o.buffer.length&&o(10)},read:(e,t,o,n,i)=>{for(var a=0,s=0;s<n;s++){var d;try{d=r()}catch(e){throw new Ae.ErrnoError(29)}if(void 0===d&&0===a)throw new Ae.ErrnoError(6);if(null==d)break;a++,t[o+s]=d}return a&&(e.node.timestamp=Date.now()),a},write:(e,t,r,n,i)=>{for(var a=0;a<n;a++)try{o(t[r+a])}catch(e){throw new Ae.ErrnoError(29)}return n&&(e.node.timestamp=Date.now()),a}}),Ae.mkdev(n,i,a)},forceLoadFile:e=>{if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!E)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=je(E(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new Ae.ErrnoError(29)}},createLazyFile:(e,t,r,o,n)=>{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,o=Number(e.getResponseHeader("Content-length")),n=(t=e.getResponseHeader("Accept-Ranges"))&&"bytes"===t,i=(t=e.getResponseHeader("Content-Encoding"))&&"gzip"===t,a=1048576;n||(a=o);var s=this;s.setDataGetter((e=>{var t=e*a,n=(e+1)*a-1;if(n=Math.min(n,o-1),void 0===s.chunks[e]&&(s.chunks[e]=((e,t)=>{if(e>t)throw new Error("invalid range ("+e+", "+t+") or no bytes requested!");if(t>o-1)throw new Error("only "+o+" bytes available! programmer error!");var n=new XMLHttpRequest;if(n.open("GET",r,!1),o!==a&&n.setRequestHeader("Range","bytes="+e+"-"+t),n.responseType="arraybuffer",n.overrideMimeType&&n.overrideMimeType("text/plain; charset=x-user-defined"),n.send(null),!(n.status>=200&&n.status<300||304===n.status))throw new Error("Couldn't load "+r+". Status: "+n.status);return void 0!==n.response?new Uint8Array(n.response||[]):je(n.responseText||"",!0)})(t,n)),void 0===s.chunks[e])throw new Error("doXHR failed!");return s.chunks[e]})),!i&&o||(a=o=1,o=this.getter(0).length,a=o,T("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=o,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 d=Ae.createFile(e,t,s,o,n);s.contents?d.contents=s.contents:s.url&&(d.contents=null,d.url=s.url),Object.defineProperties(d,{usedBytes:{get:function(){return this.contents.length}}});var l={};return Object.keys(d.stream_ops).forEach((e=>{var t=d.stream_ops[e];l[e]=function(){return Ae.forceLoadFile(d),t.apply(null,arguments)}})),l.read=(e,t,r,o,n)=>{Ae.forceLoadFile(d);var i=e.node.contents;if(n>=i.length)return 0;var a=Math.min(i.length-n,o);if(I(a>=0),i.slice)for(var s=0;s<a;s++)t[r+s]=i[n+s];else for(s=0;s<a;s++)t[r+s]=i.get(n+s);return a},d.stream_ops=l,d},createPreloadedFile:(e,t,r,o,n,i,a,s,d,c)=>{var l=t?ve.resolve(be.join2(e,t)):e,p=ce("cp "+l);function E(r){function E(r){c&&c(),s||Ae.createDataFile(e,t,r,o,n,d),i&&i(),pe(p)}Browser.handledByPreloadPlugin(r,l,E,(()=>{a&&a(),pe(p)}))||E(r)}le(p),"string"==typeof r?function(e,t,r,o){var n=o?"":ce("al "+e);u(e,(function(r){I(r,'Loading data file "'+e+'" failed (no arrayBuffer).'),t(new Uint8Array(r)),n&&pe(n)}),(function(t){if(!r)throw'Loading data file "'+e+'" failed.';r()})),n&&le(n)}(r,(e=>E(e)),a):E(r)},indexedDB:()=>window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB,DB_NAME:()=>"EM_FS_"+window.location.pathname,DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(e,t,r)=>{t=t||(()=>{}),r=r||(()=>{});var o=Ae.indexedDB();try{var n=o.open(Ae.DB_NAME(),Ae.DB_VERSION)}catch(e){return r(e)}n.onupgradeneeded=()=>{T("creating db"),n.result.createObjectStore(Ae.DB_STORE_NAME)},n.onsuccess=()=>{var o=n.result.transaction([Ae.DB_STORE_NAME],"readwrite"),i=o.objectStore(Ae.DB_STORE_NAME),a=0,s=0,d=e.length;function c(){0==s?t():r()}e.forEach((e=>{var t=i.put(Ae.analyzePath(e).object.contents,e);t.onsuccess=()=>{++a+s==d&&c()},t.onerror=()=>{s++,a+s==d&&c()}})),o.onerror=r},n.onerror=r},loadFilesFromDB:(e,t,r)=>{t=t||(()=>{}),r=r||(()=>{});var o=Ae.indexedDB();try{var n=o.open(Ae.DB_NAME(),Ae.DB_VERSION)}catch(e){return r(e)}n.onupgradeneeded=r,n.onsuccess=()=>{var o=n.result;try{var i=o.transaction([Ae.DB_STORE_NAME],"readonly")}catch(e){return void r(e)}var a=i.objectStore(Ae.DB_STORE_NAME),s=0,d=0,c=e.length;function l(){0==d?t():r()}e.forEach((e=>{var t=a.get(e);t.onsuccess=()=>{Ae.analyzePath(e).exists&&Ae.unlink(e),Ae.createDataFile(be.dirname(e),be.basename(e),t.result,!0,!0,!0),++s+d==c&&l()},t.onerror=()=>{d++,s+d==c&&l()}})),i.onerror=r},n.onerror=r},absolutePath:()=>{Ee("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder:()=>{Ee("FS.createFolder has been removed; use FS.mkdir instead")},createLink:()=>{Ee("FS.createLink has been removed; use FS.symlink instead")},joinPath:()=>{Ee("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc:()=>{Ee("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath:()=>{Ee("FS.standardizePath has been removed; use PATH.normalize instead")}},Fe={DEFAULT_POLLMASK:5,calculateAt:function(e,t,r){if("/"===t[0])return t;var o;if(-100===e)o=Ae.cwd();else{var n=Ae.getStream(e);if(!n)throw new Ae.ErrnoError(8);o=n.path}if(0==t.length){if(!r)throw new Ae.ErrnoError(44);return o}return be.join2(o,t)},doStat:function(e,t,r){try{var o=e(t)}catch(e){if(e&&e.node&&be.normalize(t)!==be.normalize(Ae.getPath(e.node)))return-54;throw e}return M(0|r,0|o.dev,4),M(r+4|0,0,4),M(r+8|0,0|o.ino,4),M(r+12|0,0|o.mode,4),M(r+16|0,0|o.nlink,4),M(r+20|0,0|o.uid,4),M(r+24|0,0|o.gid,4),M(r+28|0,0|o.rdev,4),M(r+32|0,0,4),M(r+40|0,0|o.size,8),M(r+48|0,4096,4),M(r+52|0,0|o.blocks,4),M(r+56|0,o.atime.getTime()/1e3|0,4),M(r+60|0,0,4),M(r+64|0,o.mtime.getTime()/1e3|0,4),M(r+68|0,0,4),M(r+72|0,o.ctime.getTime()/1e3|0,4),M(r+76|0,0,4),M(r+80|0,0|o.ino,8),0},doMsync:function(e,t,r,o,n){var i=j.slice(e,e+r);Ae.msync(t,i,n,r,o)},doMkdir:function(e,t){return"/"===(e=be.normalize(e))[e.length-1]&&(e=e.substr(0,e.length-1)),Ae.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 Ae.mknod(e,t,r),0},doReadlink:function(e,t,r){if(r<=0)return-28;var o=Ae.readlink(e),n=Math.min(r,K(o)),i=S(t+n,1,0);return W(o,t,r+1),M(t+n,i,1),n},doAccess:function(e,t){if(-8&t)return-28;var r=Ae.lookupPath(e,{follow:!0}).node;if(!r)return-44;var o="";return 4&t&&(o+="r"),2&t&&(o+="w"),1&t&&(o+="x"),o&&Ae.nodePermissions(r,o)?-2:0},doDup:function(e,t,r){var o=Ae.getStream(r);return o&&Ae.close(o),Ae.open(e,t,0,r,r).fd},doReadv:function(e,t,r,o){for(var n=0,i=0;i<r;i++){var a=0|S(t+8*i|0,4,0),s=0|S(t+(8*i+4)|0,4,0),d=Ae.read(e,U,a,s,o);if(d<0)return-1;if(n+=d,d<s)break}return n},doWritev:function(e,t,r,o){for(var n=0,i=0;i<r;i++){var a=0|S(t+8*i|0,4,0),s=0|S(t+(8*i+4)|0,4,0),d=Ae.write(e,U,a,s,o);if(d<0)return-1;n+=d}return n},varargs:void 0,get:function(){return I(null!=Fe.varargs),Fe.varargs+=4,0|S(Fe.varargs-4|0,4,0)},getStr:function(e){return Y(e)},getStreamFromFD:function(e){var t=Ae.getStream(e);if(!t)throw new Ae.ErrnoError(8);return t},get64:function(e,t){return I(e>=0?0===t:-1===t),e}};function Ie(e){try{return D.grow(e-N.byteLength+65535>>>16),V(D.buffer),1}catch(t){y("emscripten_realloc_buffer: Attempted to grow heap from "+N.byteLength+" bytes to "+e+" bytes, but got error: "+t)}}var ke=function(e,t,r,o){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=Ae.nextInode++,this.name=t,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=o},Ne=365,Ue=146;function je(e,t,r){var o=r>0?r:K(e)+1,n=new Array(o),i=z(e,n,0,n.length);return t&&(n.length=i),n}Object.defineProperties(ke.prototype,{read:{get:function(){return(this.mode&Ne)===Ne},set:function(e){e?this.mode|=Ne:this.mode&=-366}},write:{get:function(){return(this.mode&Ue)===Ue},set:function(e){e?this.mode|=Ue:this.mode&=-147}},isFolder:{get:function(){return Ae.isDir(this.mode)}},isDevice:{get:function(){return Ae.isChrdev(this.mode)}}}),Ae.FSNode=ke,Ae.staticInit(),Se={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};var xe,Ce={__assert_fail:function(e,t,r,o){Ee("Assertion failed: "+Y(e)+", at: "+[t?Y(t):"unknown filename",r,o?Y(o):"unknown function"])},__syscall_open:function(e,t,r){Fe.varargs=r;try{var o=Fe.getStr(e),n=r?Fe.get():0;return Ae.open(o,t,n).fd}catch(e){if(void 0===Ae||!(e instanceof Ae.ErrnoError))throw e;return-e.errno}},alignfault:function(){Ee("alignment fault")},emscripten_memcpy_big:function(e,t,r){j.copyWithin(e,t,t+r)},emscripten_resize_heap:function(e){var t=j.length;I((e>>>=0)>t);var r,o,n=2147483648;if(e>n)return y("Cannot enlarge memory, asked to go up to "+e+" bytes, but the limit is "+n+" 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(n,((r=Math.max(e,a))%(o=65536)>0&&(r+=o-r%o),r));if(Ie(s))return!0}return y("Failed to grow the heap from "+t+" bytes to "+s+" bytes, not enough memory!"),!1},fd_read:function(e,t,r,o){try{var n=Fe.getStreamFromFD(e);return M(0|o,0|Fe.doReadv(n,t,r),4),0}catch(e){if(void 0===Ae||!(e instanceof Ae.ErrnoError))throw e;return e.errno}},fd_write:function(e,t,r,o){try{var n=Fe.getStreamFromFD(e);return M(0|o,0|Fe.doWritev(n,t,r),4),0}catch(e){if(void 0===Ae||!(e instanceof Ae.ErrnoError))throw e;return e.errno}},segfault:function(){Ee("segmentation fault")}},He=(function(){var e={env:Ce,wasi_snapshot_preview1:Ce};function t(e,t){var r,o=e.exports;i.asm=o,I(D=i.asm.memory,"memory not found in wasm exports"),V(D.buffer),I(q=i.asm.__indirect_function_table,"table not found in wasm exports"),r=i.asm.__wasm_call_ctors,te.unshift(r),pe("wasm-instantiate")}le("wasm-instantiate");var r=i;function o(e){I(i===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(!w&&(d||c)){if("function"==typeof fetch&&!me(ue))return fetch(ue,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+ue+"'";return e.arrayBuffer()})).catch((function(){return we(ue)}));if(u)return new Promise((function(e,t){u(ue,(function(t){e(new Uint8Array(t))}),t)}))}return Promise.resolve().then((function(){return we(ue)}))}().then((function(t){return WebAssembly.instantiate(t,e)})).then((function(e){return e})).then(t,(function(e){y("failed to asynchronously prepare wasm: "+e),me(ue)&&y("warning: Loading from a file URI ("+ue+") 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(i.instantiateWasm)try{return i.instantiateWasm(e,t)}catch(e){return y("Module.instantiateWasm callback failed with error: "+e),!1}(w||"function"!=typeof WebAssembly.instantiateStreaming||Oe(ue)||me(ue)||"function"!=typeof fetch?a(o):fetch(ue,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,e).then(o,(function(e){return y("wasm streaming compile failed: "+e),y("falling back to ArrayBuffer instantiation"),a(o)}))}))).catch(n)}(),i.___wasm_call_ctors=ge("__wasm_call_ctors"),i._dilithium_keygen=ge("dilithium_keygen"),i._malloc=ge("malloc"),i._free=ge("free"),i._dilithium_sign=ge("dilithium_sign"),i._dilithium_verify=ge("dilithium_verify"),i._SHA3_256=ge("SHA3_256"),i._randombytes=ge("randombytes"),i.___errno_location=ge("__errno_location"),i.___stdio_exit=ge("__stdio_exit")),Le=i._sbrk=ge("sbrk"),Xe=(i._emscripten_get_sbrk_ptr=ge("emscripten_get_sbrk_ptr"),i._emscripten_stack_init=function(){return(Xe=i._emscripten_stack_init=i.asm.emscripten_stack_init).apply(null,arguments)}),Qe=(i._emscripten_stack_get_free=function(){return(i._emscripten_stack_get_free=i.asm.emscripten_stack_get_free).apply(null,arguments)},i._emscripten_stack_get_base=function(){return(Qe=i._emscripten_stack_get_base=i.asm.emscripten_stack_get_base).apply(null,arguments)}),Be=i._emscripten_stack_get_end=function(){return(Be=i._emscripten_stack_get_end=i.asm.emscripten_stack_get_end).apply(null,arguments)},Ye=i.stackSave=ge("stackSave"),ze=i.stackRestore=ge("stackRestore"),We=i.stackAlloc=ge("stackAlloc");function Ke(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function Ve(e){function r(){xe||(xe=!0,i.calledRun=!0,F||($(),I(!oe),oe=!0,i.noFSInit||Ae.init.initialized||Ae.init(),Ae.ignorePermissions=!1,Pe.init(),Te(te),t(i),i.onRuntimeInitialized&&i.onRuntimeInitialized(),I(!i._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),function(){if($(),i.postRun)for("function"==typeof i.postRun&&(i.postRun=[i.postRun]);i.postRun.length;)e=i.postRun.shift(),re.unshift(e);var e;Te(re)}()))}e=e||s,ie>0||(Xe(),J(),function(){if(i.preRun)for("function"==typeof i.preRun&&(i.preRun=[i.preRun]);i.preRun.length;)e=i.preRun.shift(),ee.unshift(e);var e;Te(ee)}(),ie>0||(i.setStatus?(i.setStatus("Running..."),setTimeout((function(){setTimeout((function(){i.setStatus("")}),1),r()}),1)):r(),$()))}if(Object.getOwnPropertyDescriptor(i,"intArrayFromString")||(i.intArrayFromString=()=>Ee("'intArrayFromString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"intArrayToString")||(i.intArrayToString=()=>Ee("'intArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),i.ccall=k,i.cwrap=function(e,t,r,o){return function(){return k(e,t,r,arguments)}},i.setValue=b,i.getValue=v,Object.getOwnPropertyDescriptor(i,"allocate")||(i.allocate=()=>Ee("'allocate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"UTF8ArrayToString")||(i.UTF8ArrayToString=()=>Ee("'UTF8ArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"UTF8ToString")||(i.UTF8ToString=()=>Ee("'UTF8ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"stringToUTF8Array")||(i.stringToUTF8Array=()=>Ee("'stringToUTF8Array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"stringToUTF8")||(i.stringToUTF8=()=>Ee("'stringToUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"lengthBytesUTF8")||(i.lengthBytesUTF8=()=>Ee("'lengthBytesUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"stackTrace")||(i.stackTrace=()=>Ee("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"addOnPreRun")||(i.addOnPreRun=()=>Ee("'addOnPreRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"addOnInit")||(i.addOnInit=()=>Ee("'addOnInit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"addOnPreMain")||(i.addOnPreMain=()=>Ee("'addOnPreMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"addOnExit")||(i.addOnExit=()=>Ee("'addOnExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"addOnPostRun")||(i.addOnPostRun=()=>Ee("'addOnPostRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"writeStringToMemory")||(i.writeStringToMemory=()=>Ee("'writeStringToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"writeArrayToMemory")||(i.writeArrayToMemory=()=>Ee("'writeArrayToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"writeAsciiToMemory")||(i.writeAsciiToMemory=()=>Ee("'writeAsciiToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"addRunDependency")||(i.addRunDependency=()=>Ee("'addRunDependency' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")),Object.getOwnPropertyDescriptor(i,"removeRunDependency")||(i.removeRunDependency=()=>Ee("'removeRunDependency' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")),Object.getOwnPropertyDescriptor(i,"FS_createFolder")||(i.FS_createFolder=()=>Ee("'FS_createFolder' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"FS_createPath")||(i.FS_createPath=()=>Ee("'FS_createPath' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")),Object.getOwnPropertyDescriptor(i,"FS_createDataFile")||(i.FS_createDataFile=()=>Ee("'FS_createDataFile' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")),Object.getOwnPropertyDescriptor(i,"FS_createPreloadedFile")||(i.FS_createPreloadedFile=()=>Ee("'FS_createPreloadedFile' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")),Object.getOwnPropertyDescriptor(i,"FS_createLazyFile")||(i.FS_createLazyFile=()=>Ee("'FS_createLazyFile' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")),Object.getOwnPropertyDescriptor(i,"FS_createLink")||(i.FS_createLink=()=>Ee("'FS_createLink' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"FS_createDevice")||(i.FS_createDevice=()=>Ee("'FS_createDevice' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")),Object.getOwnPropertyDescriptor(i,"FS_unlink")||(i.FS_unlink=()=>Ee("'FS_unlink' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")),Object.getOwnPropertyDescriptor(i,"getLEB")||(i.getLEB=()=>Ee("'getLEB' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"getFunctionTables")||(i.getFunctionTables=()=>Ee("'getFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"alignFunctionTables")||(i.alignFunctionTables=()=>Ee("'alignFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"registerFunctions")||(i.registerFunctions=()=>Ee("'registerFunctions' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"addFunction")||(i.addFunction=()=>Ee("'addFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"removeFunction")||(i.removeFunction=()=>Ee("'removeFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"getFuncWrapper")||(i.getFuncWrapper=()=>Ee("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"prettyPrint")||(i.prettyPrint=()=>Ee("'prettyPrint' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"dynCall")||(i.dynCall=()=>Ee("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"getCompilerSetting")||(i.getCompilerSetting=()=>Ee("'getCompilerSetting' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"print")||(i.print=()=>Ee("'print' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"printErr")||(i.printErr=()=>Ee("'printErr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"getTempRet0")||(i.getTempRet0=()=>Ee("'getTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"setTempRet0")||(i.setTempRet0=()=>Ee("'setTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"callMain")||(i.callMain=()=>Ee("'callMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"abort")||(i.abort=()=>Ee("'abort' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"keepRuntimeAlive")||(i.keepRuntimeAlive=()=>Ee("'keepRuntimeAlive' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"zeroMemory")||(i.zeroMemory=()=>Ee("'zeroMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"stringToNewUTF8")||(i.stringToNewUTF8=()=>Ee("'stringToNewUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"emscripten_realloc_buffer")||(i.emscripten_realloc_buffer=()=>Ee("'emscripten_realloc_buffer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"ENV")||(i.ENV=()=>Ee("'ENV' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"withStackSave")||(i.withStackSave=()=>Ee("'withStackSave' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"ERRNO_CODES")||(i.ERRNO_CODES=()=>Ee("'ERRNO_CODES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"ERRNO_MESSAGES")||(i.ERRNO_MESSAGES=()=>Ee("'ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"setErrNo")||(i.setErrNo=()=>Ee("'setErrNo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"inetPton4")||(i.inetPton4=()=>Ee("'inetPton4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"inetNtop4")||(i.inetNtop4=()=>Ee("'inetNtop4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"inetPton6")||(i.inetPton6=()=>Ee("'inetPton6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"inetNtop6")||(i.inetNtop6=()=>Ee("'inetNtop6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"readSockaddr")||(i.readSockaddr=()=>Ee("'readSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"writeSockaddr")||(i.writeSockaddr=()=>Ee("'writeSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"DNS")||(i.DNS=()=>Ee("'DNS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"getHostByName")||(i.getHostByName=()=>Ee("'getHostByName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"Protocols")||(i.Protocols=()=>Ee("'Protocols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"Sockets")||(i.Sockets=()=>Ee("'Sockets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"getRandomDevice")||(i.getRandomDevice=()=>Ee("'getRandomDevice' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"traverseStack")||(i.traverseStack=()=>Ee("'traverseStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"convertFrameToPC")||(i.convertFrameToPC=()=>Ee("'convertFrameToPC' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"UNWIND_CACHE")||(i.UNWIND_CACHE=()=>Ee("'UNWIND_CACHE' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"saveInUnwindCache")||(i.saveInUnwindCache=()=>Ee("'saveInUnwindCache' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"convertPCtoSourceLocation")||(i.convertPCtoSourceLocation=()=>Ee("'convertPCtoSourceLocation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"readAsmConstArgsArray")||(i.readAsmConstArgsArray=()=>Ee("'readAsmConstArgsArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"readAsmConstArgs")||(i.readAsmConstArgs=()=>Ee("'readAsmConstArgs' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"mainThreadEM_ASM")||(i.mainThreadEM_ASM=()=>Ee("'mainThreadEM_ASM' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"jstoi_q")||(i.jstoi_q=()=>Ee("'jstoi_q' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"jstoi_s")||(i.jstoi_s=()=>Ee("'jstoi_s' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"getExecutableName")||(i.getExecutableName=()=>Ee("'getExecutableName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"listenOnce")||(i.listenOnce=()=>Ee("'listenOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"autoResumeAudioContext")||(i.autoResumeAudioContext=()=>Ee("'autoResumeAudioContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"dynCall")||(i.dynCall=()=>Ee("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"callRuntimeCallbacks")||(i.callRuntimeCallbacks=()=>Ee("'callRuntimeCallbacks' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"wasmTableMirror")||(i.wasmTableMirror=()=>Ee("'wasmTableMirror' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"setWasmTableEntry")||(i.setWasmTableEntry=()=>Ee("'setWasmTableEntry' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"getWasmTableEntry")||(i.getWasmTableEntry=()=>Ee("'getWasmTableEntry' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"handleException")||(i.handleException=()=>Ee("'handleException' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"runtimeKeepalivePush")||(i.runtimeKeepalivePush=()=>Ee("'runtimeKeepalivePush' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"runtimeKeepalivePop")||(i.runtimeKeepalivePop=()=>Ee("'runtimeKeepalivePop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"callUserCallback")||(i.callUserCallback=()=>Ee("'callUserCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"maybeExit")||(i.maybeExit=()=>Ee("'maybeExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"safeSetTimeout")||(i.safeSetTimeout=()=>Ee("'safeSetTimeout' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"asmjsMangle")||(i.asmjsMangle=()=>Ee("'asmjsMangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"asyncLoad")||(i.asyncLoad=()=>Ee("'asyncLoad' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"alignMemory")||(i.alignMemory=()=>Ee("'alignMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"mmapAlloc")||(i.mmapAlloc=()=>Ee("'mmapAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"reallyNegative")||(i.reallyNegative=()=>Ee("'reallyNegative' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"unSign")||(i.unSign=()=>Ee("'unSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"reSign")||(i.reSign=()=>Ee("'reSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"formatString")||(i.formatString=()=>Ee("'formatString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"PATH")||(i.PATH=()=>Ee("'PATH' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"PATH_FS")||(i.PATH_FS=()=>Ee("'PATH_FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"SYSCALLS")||(i.SYSCALLS=()=>Ee("'SYSCALLS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"getSocketFromFD")||(i.getSocketFromFD=()=>Ee("'getSocketFromFD' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"getSocketAddress")||(i.getSocketAddress=()=>Ee("'getSocketAddress' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"JSEvents")||(i.JSEvents=()=>Ee("'JSEvents' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"registerKeyEventCallback")||(i.registerKeyEventCallback=()=>Ee("'registerKeyEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"specialHTMLTargets")||(i.specialHTMLTargets=()=>Ee("'specialHTMLTargets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"maybeCStringToJsString")||(i.maybeCStringToJsString=()=>Ee("'maybeCStringToJsString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"findEventTarget")||(i.findEventTarget=()=>Ee("'findEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"findCanvasEventTarget")||(i.findCanvasEventTarget=()=>Ee("'findCanvasEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"getBoundingClientRect")||(i.getBoundingClientRect=()=>Ee("'getBoundingClientRect' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"fillMouseEventData")||(i.fillMouseEventData=()=>Ee("'fillMouseEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"registerMouseEventCallback")||(i.registerMouseEventCallback=()=>Ee("'registerMouseEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"registerWheelEventCallback")||(i.registerWheelEventCallback=()=>Ee("'registerWheelEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"registerUiEventCallback")||(i.registerUiEventCallback=()=>Ee("'registerUiEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"registerFocusEventCallback")||(i.registerFocusEventCallback=()=>Ee("'registerFocusEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"fillDeviceOrientationEventData")||(i.fillDeviceOrientationEventData=()=>Ee("'fillDeviceOrientationEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"registerDeviceOrientationEventCallback")||(i.registerDeviceOrientationEventCallback=()=>Ee("'registerDeviceOrientationEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"fillDeviceMotionEventData")||(i.fillDeviceMotionEventData=()=>Ee("'fillDeviceMotionEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"registerDeviceMotionEventCallback")||(i.registerDeviceMotionEventCallback=()=>Ee("'registerDeviceMotionEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"screenOrientation")||(i.screenOrientation=()=>Ee("'screenOrientation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"fillOrientationChangeEventData")||(i.fillOrientationChangeEventData=()=>Ee("'fillOrientationChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"registerOrientationChangeEventCallback")||(i.registerOrientationChangeEventCallback=()=>Ee("'registerOrientationChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"fillFullscreenChangeEventData")||(i.fillFullscreenChangeEventData=()=>Ee("'fillFullscreenChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"registerFullscreenChangeEventCallback")||(i.registerFullscreenChangeEventCallback=()=>Ee("'registerFullscreenChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"registerRestoreOldStyle")||(i.registerRestoreOldStyle=()=>Ee("'registerRestoreOldStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"hideEverythingExceptGivenElement")||(i.hideEverythingExceptGivenElement=()=>Ee("'hideEverythingExceptGivenElement' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"restoreHiddenElements")||(i.restoreHiddenElements=()=>Ee("'restoreHiddenElements' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"setLetterbox")||(i.setLetterbox=()=>Ee("'setLetterbox' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"currentFullscreenStrategy")||(i.currentFullscreenStrategy=()=>Ee("'currentFullscreenStrategy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"restoreOldWindowedStyle")||(i.restoreOldWindowedStyle=()=>Ee("'restoreOldWindowedStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"softFullscreenResizeWebGLRenderTarget")||(i.softFullscreenResizeWebGLRenderTarget=()=>Ee("'softFullscreenResizeWebGLRenderTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"doRequestFullscreen")||(i.doRequestFullscreen=()=>Ee("'doRequestFullscreen' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"fillPointerlockChangeEventData")||(i.fillPointerlockChangeEventData=()=>Ee("'fillPointerlockChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"registerPointerlockChangeEventCallback")||(i.registerPointerlockChangeEventCallback=()=>Ee("'registerPointerlockChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"registerPointerlockErrorEventCallback")||(i.registerPointerlockErrorEventCallback=()=>Ee("'registerPointerlockErrorEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"requestPointerLock")||(i.requestPointerLock=()=>Ee("'requestPointerLock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"fillVisibilityChangeEventData")||(i.fillVisibilityChangeEventData=()=>Ee("'fillVisibilityChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"registerVisibilityChangeEventCallback")||(i.registerVisibilityChangeEventCallback=()=>Ee("'registerVisibilityChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"registerTouchEventCallback")||(i.registerTouchEventCallback=()=>Ee("'registerTouchEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"fillGamepadEventData")||(i.fillGamepadEventData=()=>Ee("'fillGamepadEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"registerGamepadEventCallback")||(i.registerGamepadEventCallback=()=>Ee("'registerGamepadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"registerBeforeUnloadEventCallback")||(i.registerBeforeUnloadEventCallback=()=>Ee("'registerBeforeUnloadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"fillBatteryEventData")||(i.fillBatteryEventData=()=>Ee("'fillBatteryEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"battery")||(i.battery=()=>Ee("'battery' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"registerBatteryEventCallback")||(i.registerBatteryEventCallback=()=>Ee("'registerBatteryEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"setCanvasElementSize")||(i.setCanvasElementSize=()=>Ee("'setCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"getCanvasElementSize")||(i.getCanvasElementSize=()=>Ee("'getCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"demangle")||(i.demangle=()=>Ee("'demangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"demangleAll")||(i.demangleAll=()=>Ee("'demangleAll' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"jsStackTrace")||(i.jsStackTrace=()=>Ee("'jsStackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"stackTrace")||(i.stackTrace=()=>Ee("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"getEnvStrings")||(i.getEnvStrings=()=>Ee("'getEnvStrings' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"checkWasiClock")||(i.checkWasiClock=()=>Ee("'checkWasiClock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"writeI53ToI64")||(i.writeI53ToI64=()=>Ee("'writeI53ToI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"writeI53ToI64Clamped")||(i.writeI53ToI64Clamped=()=>Ee("'writeI53ToI64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"writeI53ToI64Signaling")||(i.writeI53ToI64Signaling=()=>Ee("'writeI53ToI64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"writeI53ToU64Clamped")||(i.writeI53ToU64Clamped=()=>Ee("'writeI53ToU64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"writeI53ToU64Signaling")||(i.writeI53ToU64Signaling=()=>Ee("'writeI53ToU64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"readI53FromI64")||(i.readI53FromI64=()=>Ee("'readI53FromI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"readI53FromU64")||(i.readI53FromU64=()=>Ee("'readI53FromU64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"convertI32PairToI53")||(i.convertI32PairToI53=()=>Ee("'convertI32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"convertU32PairToI53")||(i.convertU32PairToI53=()=>Ee("'convertU32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"setImmediateWrapped")||(i.setImmediateWrapped=()=>Ee("'setImmediateWrapped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"clearImmediateWrapped")||(i.clearImmediateWrapped=()=>Ee("'clearImmediateWrapped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"polyfillSetImmediate")||(i.polyfillSetImmediate=()=>Ee("'polyfillSetImmediate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"Browser")||(i.Browser=()=>Ee("'Browser' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"funcWrappers")||(i.funcWrappers=()=>Ee("'funcWrappers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"getFuncWrapper")||(i.getFuncWrapper=()=>Ee("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"setMainLoop")||(i.setMainLoop=()=>Ee("'setMainLoop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"wget")||(i.wget=()=>Ee("'wget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"FS")||(i.FS=()=>Ee("'FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"MEMFS")||(i.MEMFS=()=>Ee("'MEMFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"TTY")||(i.TTY=()=>Ee("'TTY' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"PIPEFS")||(i.PIPEFS=()=>Ee("'PIPEFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"SOCKFS")||(i.SOCKFS=()=>Ee("'SOCKFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"_setNetworkCallback")||(i._setNetworkCallback=()=>Ee("'_setNetworkCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"warnOnce")||(i.warnOnce=()=>Ee("'warnOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"stackSave")||(i.stackSave=()=>Ee("'stackSave' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"stackRestore")||(i.stackRestore=()=>Ee("'stackRestore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"stackAlloc")||(i.stackAlloc=()=>Ee("'stackAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"AsciiToString")||(i.AsciiToString=()=>Ee("'AsciiToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"stringToAscii")||(i.stringToAscii=()=>Ee("'stringToAscii' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"UTF16ToString")||(i.UTF16ToString=()=>Ee("'UTF16ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"stringToUTF16")||(i.stringToUTF16=()=>Ee("'stringToUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"lengthBytesUTF16")||(i.lengthBytesUTF16=()=>Ee("'lengthBytesUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"UTF32ToString")||(i.UTF32ToString=()=>Ee("'UTF32ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"stringToUTF32")||(i.stringToUTF32=()=>Ee("'stringToUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"lengthBytesUTF32")||(i.lengthBytesUTF32=()=>Ee("'lengthBytesUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"allocateUTF8")||(i.allocateUTF8=()=>Ee("'allocateUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),Object.getOwnPropertyDescriptor(i,"allocateUTF8OnStack")||(i.allocateUTF8OnStack=()=>Ee("'allocateUTF8OnStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")),i.writeStackCookie=J,i.checkStackCookie=$,Object.getOwnPropertyDescriptor(i,"ALLOC_NORMAL")||Object.defineProperty(i,"ALLOC_NORMAL",{configurable:!0,get:function(){Ee("'ALLOC_NORMAL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),Object.getOwnPropertyDescriptor(i,"ALLOC_STACK")||Object.defineProperty(i,"ALLOC_STACK",{configurable:!0,get:function(){Ee("'ALLOC_STACK' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),se=function e(){xe||Ve(),xe||(se=e)},i.run=Ve,i.preInit)for("function"==typeof i.preInit&&(i.preInit=[i.preInit]);i.preInit.length>0;)i.preInit.pop()();return Ve(),e.ready});e.exports=n},727:e=>{const t=[{CRYPTO_PUBLICKEYBYTES:896,CRYPTO_SECRETKEYBYTES:2096,CRYPTO_BYTES:1387},{CRYPTO_PUBLICKEYBYTES:1184,CRYPTO_SECRETKEYBYTES:2800,CRYPTO_BYTES:2044},{CRYPTO_PUBLICKEYBYTES:1472,CRYPTO_SECRETKEYBYTES:3504,CRYPTO_BYTES:2701},{CRYPTO_PUBLICKEYBYTES:1760,CRYPTO_SECRETKEYBYTES:3856,CRYPTO_BYTES:3366}];e.exports={DILITHIUM_PARAMS:t,generateKeys:function(e,r,o){if(r<0||r>3)return-1;const n=o?o.length:0,i=o?e._malloc(n):0;o&&e.HEAPU8.set(new Uint8Array(o),i);const a=t[r].CRYPTO_SECRETKEYBYTES,s=t[r].CRYPTO_PUBLICKEYBYTES,d=e._malloc(s),c=e._malloc(a),l=e.ccall("dilithium_keygen","number",["number","number","number","number","number"],[d,c,r,i,n]);let p,E;return 0===l&&(p=new Uint8Array(e.HEAPU8.subarray(d,d+s)),E=new Uint8Array(e.HEAPU8.subarray(c,c+a))),i&&e._free(i),e._free(d),e._free(c),{result:l,publicKey:p,privateKey:E}},sign:function(e,r,o,n){if(n<0||n>3)throw new Error("Invalid Dilithium kind");const i=t[n],a=i.CRYPTO_BYTES,s=r.length,d=e._malloc(s);e.HEAPU8.set(new Uint8Array(r),d);const c=o.length;if(c!==i.CRYPTO_SECRETKEYBYTES)throw new Error(`Invalid private key size. Expected: ${i.CRYPTO_SECRETKEYBYTES}, Provided: ${c}`);const l=e._malloc(c);e.HEAPU8.set(new Uint8Array(o),l);const p=a+s,E=e._malloc(p),u=e._malloc(4);e.setValue(u,p,"i32");const f=e.ccall("dilithium_sign","number",["number","number","number","number","number","number","number"],[E,u,d,s,l,c,n]),h=e.getValue(u,"i32"),O=new Uint8Array(e.HEAPU8.buffer,E,h),m=new Uint8Array(O);return e._free(d),e._free(l),e._free(E),e._free(u),{result:f,signature:m,signatureLength:h}},verify:function(e,r,o,n,i){const a=t[i],s=a.CRYPTO_BYTES+o.length,d=a.CRYPTO_PUBLICKEYBYTES;if(r.length!==s)throw new Error(`Invalid signature size. Expected ${s}, got ${r.length}`);if(n.length!==d)throw new Error(`Invalid public key size. Expected ${d}, got ${n.length}`);const c=e._malloc(s),l=e._malloc(o.length),p=e._malloc(d);e.HEAPU8.set(new Uint8Array(r),c),e.HEAPU8.set(new Uint8Array(o),l),e.HEAPU8.set(new Uint8Array(n),p);try{return{result:e.ccall("dilithium_verify","number",["number","number","number","bigint","number","number","number"],[c,s,l,BigInt(o.length),p,d,i]),signatureLength:r.length,expectedSignatureSize:s,messageLength:o.length,publicKeyLength:n.length,expectedPublicKeySize:d,kind:i}}finally{e._free(c),e._free(l),e._free(p)}}}},349:()=>{},175:()=>{},507:()=>{}},t={};function r(o){var n=t[o];if(void 0!==n)return n.exports;var i=t[o]={exports:{}};return e[o](i,i.exports,r),i.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var o={};r.d(o,{G:()=>s});var n=r(944),i=r.n(n),a=r(727);const s=()=>async function(){console.log("fetching wasm from /node_modules/dilithium-crystals-js/dilithium.wasm");const e=await fetch("/node_modules/dilithium-crystals-js/dilithium.wasm");return await e.arrayBuffer()}().then((e=>i()({wasmBinary:e,locateFile:e=>e.endsWith(".wasm")?"/node_modules/dilithium-crystals-js/dilithium.wasm":e}))).then((e=>({generateKeys:(t,r)=>(0,a.generateKeys)(e,t,r),sign:(t,r,o)=>(0,a.sign)(e,t,r,o),verify:(t,r,o,n)=>(0,a.verify)(e,t,r,o,n),DILITHIUM_PARAMS:a.DILITHIUM_PARAMS})));var d=o.G;export{d as createDilithium};
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "dilithium-crystals-js",
3
- "version": "1.0.4",
3
+ "version": "1.1.0",
4
4
  "main": "src/node/index.js",
5
5
  "browser": "dist/dilithium.min.js",
6
6
  "files": [
7
- "src",
7
+ "src/**/*.js",
8
+ "src/**/*.d.ts",
8
9
  "dist",
9
10
  "dilithium.wasm",
10
11
  "dilithium.js"
@@ -0,0 +1,10 @@
1
+ import { DilithiumParams, KeyPair, SignatureResult, VerificationResult } from '../common';
2
+
3
+ interface DilithiumInterface {
4
+ generateKeys: (kind: number, seed?: Uint8Array) => KeyPair;
5
+ sign: (message: Uint8Array, privateKey: Uint8Array, kind: number) => SignatureResult;
6
+ verify: (signature: Uint8Array, message: Uint8Array, publicKey: Uint8Array, kind: number) => VerificationResult;
7
+ DILITHIUM_PARAMS: DilithiumParams[];
8
+ }
9
+
10
+ export function createDilithium(): Promise<DilithiumInterface>;
@@ -0,0 +1,59 @@
1
+ export interface DilithiumParams {
2
+ CRYPTO_PUBLICKEYBYTES: number;
3
+ CRYPTO_SECRETKEYBYTES: number;
4
+ CRYPTO_BYTES: number;
5
+ }
6
+
7
+ export const DILITHIUM_PARAMS: DilithiumParams[];
8
+
9
+ export interface KeyPair {
10
+ result: number;
11
+ publicKey?: Uint8Array;
12
+ privateKey?: Uint8Array;
13
+ }
14
+
15
+ export interface SignatureResult {
16
+ result: number;
17
+ signature: Uint8Array;
18
+ signatureLength: number;
19
+ }
20
+
21
+ export interface VerificationResult {
22
+ result: number;
23
+ signatureLength: number;
24
+ expectedSignatureSize: number;
25
+ messageLength: number;
26
+ publicKeyLength: number;
27
+ expectedPublicKeySize: number;
28
+ kind: number;
29
+ }
30
+
31
+ export interface DilithiumModule {
32
+ _malloc(size: number): number;
33
+ _free(ptr: number): void;
34
+ HEAPU8: Uint8Array;
35
+ ccall(ident: string, returnType: string, argTypes: string[], args: any[]): any;
36
+ setValue(ptr: number, value: number, type: string): void;
37
+ getValue(ptr: number, type: string): number;
38
+ }
39
+
40
+ export function generateKeys(
41
+ dilithium: DilithiumModule,
42
+ kind: number,
43
+ seed?: Uint8Array
44
+ ): KeyPair;
45
+
46
+ export function sign(
47
+ dilithium: DilithiumModule,
48
+ message: Uint8Array,
49
+ privateKey: Uint8Array,
50
+ kind: number
51
+ ): SignatureResult;
52
+
53
+ export function verify(
54
+ dilithium: DilithiumModule,
55
+ signature: Uint8Array,
56
+ message: Uint8Array,
57
+ publicKey: Uint8Array,
58
+ kind: number
59
+ ): VerificationResult;
@@ -0,0 +1,25 @@
1
+ import {
2
+ DilithiumParams,
3
+ KeyPair,
4
+ SignatureResult,
5
+ VerificationResult,
6
+ } from "../common";
7
+
8
+ declare const dilithiumModule: Promise<{
9
+ generateKeys: (kind: number, seed?: Uint8Array) => KeyPair;
10
+ sign: (
11
+ message: Uint8Array,
12
+ privateKey: Uint8Array,
13
+ kind: number
14
+ ) => SignatureResult;
15
+ verify: (
16
+ signature: Uint8Array,
17
+ message: Uint8Array,
18
+ publicKey: Uint8Array,
19
+ kind: number
20
+ ) => VerificationResult;
21
+ DILITHIUM_PARAMS: DilithiumParams[];
22
+ HEAP8: Int8Array;
23
+ }>;
24
+
25
+ export = dilithiumModule;