node-seal
Version:
Homomorphic Encryption for TypeScript or JavaScript using Microsoft SEAL
1 lines • 1.45 MB
JavaScript
async function A(A={}){var I,g=A,C="./this.program",B=import.meta.url;try{new URL(".",B)}catch{}I=A=>{var I=new XMLHttpRequest;return I.open("GET",A,!1),I.responseType="arraybuffer",I.send(null),new Uint8Array(I.response)};var Q,E,D,i,w,o,F,N,G,y,h,R,U,S,K,M=console.error.bind(console),s=!1,a=!1;function Y(){var A=w.buffer;o=new Int8Array(A),N=new Int16Array(A),F=new Uint8Array(A),G=new Uint16Array(A),y=new Int32Array(A),h=new Uint32Array(A),R=new Float32Array(A),U=new Float64Array(A),S=new BigInt64Array(A),K=new BigUint64Array(A)}var k,J=0,c=null;function L(A){throw g.onAbort?.(A),M(A="Aborted("+A+")"),s=!0,A=new WebAssembly.RuntimeError(A+". Build with -sASSERTIONS for more info."),i?.(A),A}async function H(A){var g=k;try{var C=await async function(A){if(!ArrayBuffer.isView(A))if(A==k&&Q)A=new Uint8Array(Q);else{if(!I)throw"both async and sync fetching of the wasm failed";A=I(A)}return A}(g);return await WebAssembly.instantiate(C,A)}catch(A){M(`failed to asynchronously prepare wasm: ${A}`),L(A)}}class q{name="ExitStatus";constructor(A){this.message=`Program terminated with exit(${A})`,this.status=A}}var t=A=>{for(;0<A.length;)A.shift()(g)},r=[],d=[],f=()=>{var A=g.preRun.shift();d.push(A)},n=!0;class W{constructor(A){this.V=A-24}}var p=A=>{A>>>=0;for(var I="";;){var g=F[A++>>>0];if(!g)return I;I+=String.fromCharCode(g)}},x={},T={},V={},l=class extends Error{constructor(A){super(A),this.name="BindingError"}},Z=A=>{throw new l(A)};function e(A,I,g={}){return function(A,I,g={}){var C=I.name;if(!A)throw new l(`type "${C}" must have a positive integer typeid pointer`);if(T.hasOwnProperty(A)){if(g.wa)return;throw new l(`Cannot register type '${C}' twice`)}T[A]=I,delete V[A],x.hasOwnProperty(A)&&(I=x[A],delete x[A],I.forEach((A=>A())))}(A,I,g)}var P=(A,I,g)=>{switch(I){case 1:return g?A=>o[A>>>0]:A=>F[A>>>0];case 2:return g?A=>N[A>>>1>>>0]:A=>G[A>>>1>>>0];case 4:return g?A=>y[A>>>2>>>0]:A=>h[A>>>2>>>0];case 8:return g?A=>S[A>>>3>>>0]:A=>K[A>>>3>>>0];default:throw new TypeError(`invalid integer width (${I}): ${A}`)}},b=A=>{throw new l(A.T.X.U.name+" instance already deleted")},X=!1,O=()=>{},m=A=>"undefined"==typeof FinalizationRegistry?(m=A=>A,A):(X=new FinalizationRegistry((A=>{--(A=A.T).count.value,0===A.count.value&&(A.Z?A.ca.fa(A.Z):A.X.U.fa(A.V))})),O=A=>{X.unregister(A)},(m=A=>{var I=A.T;return I.Z&&X.register(A,{T:I},A),A})(A));function j(){}var z=(A,I)=>Object.defineProperty(I,"name",{value:A}),v={},u=(A,I,g)=>{if(void 0===A[I].Y){var C=A[I];A[I]=function(...C){if(!A[I].Y.hasOwnProperty(C.length))throw new l(`Function '${g}' called with an invalid number of arguments (${C.length}) - expects one of (${A[I].Y})!`);return A[I].Y[C.length].apply(this,C)},A[I].Y=[],A[I].Y[C.ga]=C}},$=(A,I,C)=>{if(g.hasOwnProperty(A)){if(void 0===C||void 0!==g[A].Y&&void 0!==g[A].Y[C])throw new l(`Cannot register public name '${A}' twice`);if(u(g,A,A),g[A].Y.hasOwnProperty(C))throw new l(`Cannot register multiple overloads of a function with the same number of arguments (${C})!`);g[A].Y[C]=I}else g[A]=I,g[A].ga=C};function _(A,I,g,C,B,Q,E,D){this.name=A,this.constructor=I,this.ea=g,this.fa=C,this.aa=B,this.ua=Q,this.ka=E,this.ta=D,this.ya=[]}var AA=(A,I,g)=>{for(;I!==g;){if(!I.ka)throw new l(`Expected null or instance of ${g.name}, got an instance of ${I.name}`);A=I.ka(A),I=I.aa}return A},IA=A=>{if(null===A)return"null";var I=typeof A;return"object"===I||"array"===I||"function"===I?A.toString():""+A};function gA(A,I){if(null===I){if(this.oa)throw new l(`null is not a valid ${this.name}`);return 0}if(!I.T)throw new l(`Cannot pass "${IA(I)}" as a ${this.name}`);if(!I.T.V)throw new l(`Cannot pass deleted object as a pointer of type ${this.name}`);return AA(I.T.V,I.T.X.U,this.U)}function CA(A,I){if(null===I){if(this.oa)throw new l(`null is not a valid ${this.name}`);if(this.na){var g=this.za();return null!==A&&A.push(this.fa,g),g}return 0}if(!I||!I.T)throw new l(`Cannot pass "${IA(I)}" as a ${this.name}`);if(!I.T.V)throw new l(`Cannot pass deleted object as a pointer of type ${this.name}`);if(!this.ma&&I.T.X.ma)throw new l(`Cannot convert argument of type ${I.T.ca?I.T.ca.name:I.T.X.name} to parameter type ${this.name}`);if(g=AA(I.T.V,I.T.X.U,this.U),this.na){if(void 0===I.T.Z)throw new l("Passing raw pointer to smart pointer is illegal");switch(this.Ba){case 0:if(I.T.ca!==this)throw new l(`Cannot convert argument of type ${I.T.ca?I.T.ca.name:I.T.X.name} to parameter type ${this.name}`);g=I.T.Z;break;case 1:g=I.T.Z;break;case 2:if(I.T.ca===this)g=I.T.Z;else{var C=I.clone();g=this.Aa(g,dA((()=>C.delete()))),null!==A&&A.push(this.fa,g)}break;default:throw new l("Unsupporting sharing policy")}}return g}function BA(A,I){if(null===I){if(this.oa)throw new l(`null is not a valid ${this.name}`);return 0}if(!I.T)throw new l(`Cannot pass "${IA(I)}" as a ${this.name}`);if(!I.T.V)throw new l(`Cannot pass deleted object as a pointer of type ${this.name}`);if(I.T.X.ma)throw new l(`Cannot convert argument of type ${I.T.X.name} to parameter type ${this.name}`);return AA(I.T.V,I.T.X.U,this.U)}function QA(A){return this.W(h[A>>>2>>>0])}var EA=(A,I,g)=>I===g?A:void 0===g.aa||null===(A=EA(A,I,g.aa))?null:g.ta(A),DA={},iA=class extends Error{constructor(A){super(A),this.name="InternalError"}},wA=(A,I)=>{if(!I.X||!I.V)throw new iA("makeClassHandle requires ptr and ptrType");if(!!I.ca!=!!I.Z)throw new iA("Both smartPtrType and smartPtr must be specified");return I.count={value:1},m(Object.create(A,{T:{value:I,writable:!0}}))};function oA(A,I,g,C,B,Q,E,D,i,w,o){this.name=A,this.U=I,this.oa=g,this.ma=C,this.na=B,this.xa=Q,this.Ba=E,this.ra=D,this.za=i,this.Aa=w,this.fa=o,B||void 0!==I.aa?this.$=CA:(this.$=C?gA:BA,this.ba=null)}var FA,NA=(A,I,C)=>{if(!g.hasOwnProperty(A))throw new iA("Replacing nonexistent public symbol");void 0!==g[A].Y&&void 0!==C?g[A].Y[C]=I:(g[A]=I,g[A].ga=C)},GA=[],yA=A=>{var I=GA[A];return I||(GA[A]=I=FA.get(A)),I},hA=(A,I)=>(...g)=>((A,I,g=[])=>(I=yA(I)(...g),"p"==A[0]?I>>>0:I))(A,I,g),RA=(A,I)=>{var g=(A=p(A)).includes("p")?hA(A,I):yA(I);if("function"!=typeof g)throw new l(`unknown function pointer with signature ${A}: ${I}`);return g};class UA extends Error{}var SA=A=>{A=wI(A);var I=p(A);return NI(A),I},KA=(A,I)=>{var g=[],C={};throw I.forEach((function A(I){C[I]||T[I]||(V[I]?V[I].forEach(A):(g.push(I),C[I]=!0))})),new UA(`${A}: `+g.map(SA).join([", "]))},MA=(A,I,g)=>{function C(I){if((I=g(I)).length!==A.length)throw new iA("Mismatched type converter count");for(var C=0;C<A.length;++C)e(A[C],I[C])}A.forEach((A=>V[A]=I));var B=Array(I.length),Q=[],E=0;I.forEach(((A,I)=>{T.hasOwnProperty(A)?B[I]=T[A]:(Q.push(A),x.hasOwnProperty(A)||(x[A]=[]),x[A].push((()=>{B[I]=T[A],++E===Q.length&&C(B)})))})),0===Q.length&&C(B)},sA=A=>{for(;A.length;){var I=A.pop();A.pop()(I)}};function aA(A){for(var I=1;I<A.length;++I)if(null!==A[I]&&void 0===A[I].ba)return!0;return!1}function YA(A,I,g,C,B,Q){var E=I.length;if(2>E)throw new l("argTypes array size mismatch! Must at least get return value and 'this' types!");var D=null!==I[1]&&null!==g,i=aA(I);g=!I[0].qa;var w=I[0],o=I[1];for(C=[A,Z,C,B,sA,w.W.bind(w),o?.$.bind(o)],B=2;B<E;++B)w=I[B],C.push(w.$.bind(w));if(!i)for(B=D?1:2;B<I.length;++B)null!==I[B].ba&&C.push(I[B].ba);for(i=aA(I),B=I.length-2,o=[],w=["fn"],D&&w.push("thisWired"),E=0;E<B;++E)o.push(`arg${E}`),w.push(`arg${E}Wired`);o=o.join(","),w=w.join(","),o=`return function (${o}) {\n`,i&&(o+="var destructors = [];\n");var F=i?"destructors":"null",N="humanName throwBindingError invoker fn runDestructors fromRetWire toClassParamWire".split(" ");for(D&&(o+=`var thisWired = toClassParamWire(${F}, this);\n`),E=0;E<B;++E){var G=`toArg${E}Wire`;o+=`var arg${E}Wired = ${G}(${F}, arg${E});\n`,N.push(G)}if(o+=(g||Q?"var rv = ":"")+`invoker(${w});\n`,i)o+="runDestructors(destructors);\n";else for(E=D?1:2;E<I.length;++E)Q=1===E?"thisWired":"arg"+(E-2)+"Wired",null!==I[E].ba&&(o+=`${Q}_dtor(${Q});\n`,N.push(`${Q}_dtor`));return g&&(o+="var ret = fromRetWire(rv);\nreturn ret;\n"),I=new Function(N,o+"}\n")(...C),z(A,I)}var kA=(A,I)=>{for(var g=[],C=0;C<A;C++)g.push(h[I+4*C>>>2>>>0]);return g},JA=A=>{const I=(A=A.trim()).indexOf("(");return-1===I?A:A.slice(0,I)},cA=(A,I,g)=>{if(!(A instanceof Object))throw new l(`${g} with invalid "this": ${A}`);if(!(A instanceof I.U.constructor))throw new l(`${g} incompatible with "this" of type ${A.constructor.name}`);if(!A.T.V)throw new l(`cannot call emscripten binding method ${g} on deleted object`);return AA(A.T.V,A.T.X.U,I.U)},LA=[],HA=[0,1,,1,null,1,!0,1,!1,1];function qA(A){9<(A>>>=0)&&0==--HA[A+1]&&(HA[A]=void 0,LA.push(A))}for(var tA,rA=A=>{if(!A)throw new l(`Cannot use deleted val. handle = ${A}`);return HA[A]},dA=A=>{switch(A){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:const I=LA.pop()||HA.length;return HA[I]=A,HA[I+1]=1,I}},fA={name:"emscripten::val",W:A=>{var I=rA(A);return qA(A),I},$:(A,I)=>dA(I),da:QA,ba:null},nA=(A,I,g)=>{switch(I){case 1:return g?function(A){return this.W(o[A>>>0])}:function(A){return this.W(F[A>>>0])};case 2:return g?function(A){return this.W(N[A>>>1>>>0])}:function(A){return this.W(G[A>>>1>>>0])};case 4:return g?function(A){return this.W(y[A>>>2>>>0])}:function(A){return this.W(h[A>>>2>>>0])};default:throw new TypeError(`invalid integer width (${I}): ${A}`)}},WA=(A,I)=>{var g=T[A];if(void 0===g)throw A=`${I} has unknown type ${SA(A)}`,new l(A);return g},pA=(A,I)=>{switch(I){case 4:return function(A){return this.W(R[A>>>2>>>0])};case 8:return function(A){return this.W(U[A>>>3>>>0])};default:throw new TypeError(`invalid float width (${I}): ${A}`)}},xA=Object.assign({optional:!0},fA),TA=(A,I,g)=>{var C=F;if(!(0<g))return 0;var B=I>>>=0;g=I+g-1;for(var Q=0;Q<A.length;++Q){var E=A.codePointAt(Q);if(127>=E){if(I>=g)break;C[I++>>>0]=E}else if(2047>=E){if(I+1>=g)break;C[I++>>>0]=192|E>>6,C[I++>>>0]=128|63&E}else if(65535>=E){if(I+2>=g)break;C[I++>>>0]=224|E>>12,C[I++>>>0]=128|E>>6&63,C[I++>>>0]=128|63&E}else{if(I+3>=g)break;C[I++>>>0]=240|E>>18,C[I++>>>0]=128|E>>12&63,C[I++>>>0]=128|E>>6&63,C[I++>>>0]=128|63&E,Q++}}return C[I>>>0]=0,I-B},VA=A=>{for(var I=0,g=0;g<A.length;++g){var C=A.charCodeAt(g);127>=C?I++:2047>=C?I+=2:55296<=C&&57343>=C?(I+=4,++g):I+=3}return I},lA="undefined"!=typeof TextDecoder?new TextDecoder:void 0,ZA=(A,I,g,C)=>{if(g=I+g,C)return g;for(;A[I]&&!(I>=g);)++I;return I},eA="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0,PA=(A,I,g)=>{if(16<(I=ZA(G,A>>>=1,I/2,g))-A&&eA)return eA.decode(G.subarray(A>>>0,I>>>0));for(g="";A<I;++A)g+=String.fromCharCode(G[A>>>0]);return g},bA=(A,I,g)=>{if(g??=2147483647,2>g)return 0;var C=I;g=(g-=2)<2*A.length?g/2:A.length;for(var B=0;B<g;++B)N[I>>>1>>>0]=A.charCodeAt(B),I+=2;return N[I>>>1>>>0]=0,I-C},XA=A=>2*A.length,OA=(A,I,g)=>{var C="";A>>>=2;for(var B=0;!(B>=I/4);B++){var Q=h[A+B>>>0];if(!Q&&!g)break;C+=String.fromCodePoint(Q)}return C},mA=(A,I,g)=>{if(I>>>=0,g??=2147483647,4>g)return 0;var C=I;g=C+g-4;for(var B=0;B<A.length;++B){var Q=A.codePointAt(B);if(65535<Q&&B++,y[I>>>2>>>0]=Q,(I+=4)+4>g)break}return y[I>>>2>>>0]=0,I-C},jA=A=>{for(var I=0,g=0;g<A.length;++g)65535<A.codePointAt(g)&&g++,I+=4;return I},zA=0,vA=[],uA=(A,I,g)=>{var C=[];return A=A(C,g),C.length&&(h[I>>>2>>>0]=dA(C)),A},$A={},_A=A=>{var I=$A[A];return void 0===I?p(A):I},AI={},II=A=>{if(!(A instanceof q||"unwind"==A))throw A},gI=A=>{throw E=A,n||0<zA||(g.onExit?.(A),s=!0),new q(A)},CI={},BI=()=>{if(!tA){var A,I={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.language||"C").replace("-","_")+".UTF-8",_:C||"./this.program"};for(A in CI)void 0===CI[A]?delete I[A]:I[A]=CI[A];var g=[];for(A in I)g.push(`${A}=${I[A]}`);tA=g}return tA},QI=A=>{(QI=A=>crypto.getRandomValues(A))(A)},EI=new Uint8Array(123),DI=25;0<=DI;--DI)EI[48+DI]=52+DI,EI[65+DI]=DI,EI[97+DI]=26+DI;EI[43]=62,EI[47]=63,(()=>{let A=j.prototype;Object.assign(A,{isAliasOf:function(A){if(!(this instanceof j&&A instanceof j))return!1;var I=this.T.X.U,g=this.T.V;A.T=A.T;var C=A.T.X.U;for(A=A.T.V;I.aa;)g=I.ka(g),I=I.aa;for(;C.aa;)A=C.ka(A),C=C.aa;return I===C&&g===A},clone:function(){if(this.T.V||b(this),this.T.ja)return this.T.count.value+=1,this;var A=m,I=Object,g=I.create,C=Object.getPrototypeOf(this),B=this.T;return(A=A(g.call(I,C,{T:{value:{count:B.count,ia:B.ia,ja:B.ja,V:B.V,X:B.X,Z:B.Z,ca:B.ca}}}))).T.count.value+=1,A.T.ia=!1,A},delete(){if(this.T.V||b(this),this.T.ia&&!this.T.ja)throw new l("Object already scheduled for deletion");O(this);var A=this.T;--A.count.value,0===A.count.value&&(A.Z?A.ca.fa(A.Z):A.X.U.fa(A.V)),this.T.ja||(this.T.Z=void 0,this.T.V=void 0)},isDeleted:function(){return!this.T.V},deleteLater:function(){if(this.T.V||b(this),this.T.ia&&!this.T.ja)throw new l("Object already scheduled for deletion");return this.T.ia=!0,this}});const I=Symbol.dispose;I&&(A[I]=A.delete)})(),Object.assign(oA.prototype,{va(A){return this.ra&&(A=this.ra(A)),A},pa(A){this.fa?.(A)},da:QA,W:function(A){function I(){return this.na?wA(this.U.ea,{X:this.xa,V:g,ca:this,Z:A}):wA(this.U.ea,{X:this,V:A})}var g=this.va(A);if(!g)return this.pa(A),null;var C=((A,I)=>{if(void 0===I)throw new l("ptr should not be undefined");for(;A.aa;)I=A.ka(I),A=A.aa;return DA[I]})(this.U,g);if(void 0!==C)return 0===C.T.count.value?(C.T.V=g,C.T.Z=A,C.clone()):(C=C.clone(),this.pa(A),C);if(C=this.U.ua(g),!(C=v[C]))return I.call(this);C=this.ma?C.sa:C.pointerType;var B=EA(g,this.U,C.U);return null===B?I.call(this):this.na?wA(C.U.ea,{X:C,V:B,ca:this,Z:A}):wA(C.U.ea,{X:C,V:B})}}),g.noExitRuntime&&(n=g.noExitRuntime),g.printErr&&(M=g.printErr),g.wasmBinary&&(Q=g.wasmBinary),g.thisProgram&&(C=g.thisProgram);var iI,wI,oI,FI,NI,GI={a:function(A,I,g){var C=new W(A>>>=0);throw h[C.V+16>>>2>>>0]=0,h[C.V+4>>>2>>>0]=I>>>0,h[C.V+8>>>2>>>0]=g>>>0,A},K:()=>L(""),v:function(A,I,g,C,B){A>>>=0,g>>>=0,I=p(I>>>0);let Q=A=>A;if(C=0n===C){const A=8*g;Q=I=>BigInt.asUintN(A,I),B=Q(B)}e(A,{name:I,W:Q,$:(A,I)=>("number"==typeof I&&(I=BigInt(I)),I),da:P(I,g,!C),ba:null})},H:function(A,I,g,C){e(A>>>0,{name:I=p(I>>>0),W:function(A){return!!A},$:function(A,I){return I?g:C},da:function(A){return this.W(F[A>>>0])},ba:null})},g:function(A,I,g,C,B,Q,E,D,i,w,o,F,N){A>>>=0,I>>>=0,g>>>=0,C>>>=0,Q>>>=0,E>>>=0,D>>>=0,i>>>=0,w>>>=0,F>>>=0,N>>>=0,o=p(o>>>=0),Q=RA(B>>>0,Q),D&&=RA(E,D),w&&=RA(i,w),N=RA(F,N);var G=(A=>{var I=(A=A.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return 48<=I&&57>=I?`_${A}`:A})(o);$(G,(function(){KA(`Cannot construct ${o} due to unbound types`,[C])})),MA([A,I,g],C?[C]:[],(I=>{if(I=I[0],C)var g=I.U,B=g.ea;else B=j.prototype;I=z(o,(function(...A){if(Object.getPrototypeOf(this)!==E)throw new l(`Use 'new' to construct ${o}`);if(void 0===F.ha)throw new l(`${o} has no accessible constructor`);var I=F.ha[A.length];if(void 0===I)throw new l(`Tried to invoke ctor of ${o} with invalid number of parameters (${A.length}) - expected (${Object.keys(F.ha).toString()}) parameters instead!`);return I.apply(this,A)}));var E=Object.create(B,{constructor:{value:I}});I.prototype=E;var i,F=new _(o,I,E,N,g,Q,D,w);F.aa&&((i=F.aa).la??(i.la=[]),F.aa.la.push(F));return g=new oA(o,F,!0,!1,!1),i=new oA(o+"*",F,!1,!1,!1),B=new oA(o+" const*",F,!1,!0,!1),v[A]={pointerType:i,sa:B},NA(G,I),[g,i,B]}))},q:function(A,I,g,C,B,Q,E,D){A>>>=0,I>>>=0,B>>>=0,Q>>>=0,E>>>=0;var i=kA(g,C>>>0);I=p(I),I=JA(I),Q=RA(B,Q),MA([],[A],(A=>{function C(){KA(`Cannot call ${B} due to unbound types`,i)}var B=`${(A=A[0]).name}.${I}`;I.startsWith("@@")&&(I=Symbol[I.substring(2)]);var w=A.U.constructor;return void 0===w[I]?(C.ga=g-1,w[I]=C):(u(w,I,B),w[I].Y[g-1]=C),MA([],i,(C=>{if(C=YA(B,[C[0],null].concat(C.slice(1)),null,Q,E,D),void 0===w[I].Y?(C.ga=g-1,w[I]=C):w[I].Y[g-1]=C,A.U.la)for(const g of A.U.la)g.constructor.hasOwnProperty(I)||(g.constructor[I]=C);return[]})),[]}))},w:function(A,I,g,C,B,Q,E,D){A>>>=0,g>>>=0,C>>>=0,Q>>>=0,E>>>=0,D>>>=0,I=p(I>>>=0),Q=RA(B>>>0,Q),MA([],[A],(A=>{var B=`${(A=A[0]).name}.${I}`,i={get(){KA(`Cannot access ${B} due to unbound types`,[g])},enumerable:!0,configurable:!0};return i.set=D?()=>{KA(`Cannot access ${B} due to unbound types`,[g])}:()=>{throw new l(`${B} is a read-only property`)},Object.defineProperty(A.U.constructor,I,i),MA([],[g],(g=>{g=g[0];var B={get:()=>g.W(Q(C)),enumerable:!0};return D&&(D=RA(E,D),B.set=A=>{var I=[];D(C,g.$(I,A)),sA(I)}),Object.defineProperty(A.U.constructor,I,B),[]})),[]}))},h:function(A,I,g,C,B,Q){A>>>=0,C>>>=0,B>>>=0,Q>>>=0;var E=kA(I,g>>>0);B=RA(C,B),MA([],[A],(A=>{var g=`constructor ${(A=A[0]).name}`;if(void 0===A.U.ha&&(A.U.ha=[]),void 0!==A.U.ha[I-1])throw new l(`Cannot register multiple constructors with identical number of parameters (${I-1}) for class '${A.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return A.U.ha[I-1]=()=>{KA(`Cannot construct ${A.name} due to unbound types`,E)},MA([],E,(C=>(C.splice(1,0,null),A.U.ha[I-1]=YA(g,C,null,B,Q),[]))),[]}))},b:function(A,I,g,C,B,Q,E,D,i){A>>>=0,I>>>=0,B>>>=0,Q>>>=0,E>>>=0;var w=kA(g,C>>>0);I=p(I),I=JA(I),Q=RA(B,Q),MA([],[A],(A=>{function C(){KA(`Cannot call ${B} due to unbound types`,w)}var B=`${(A=A[0]).name}.${I}`;I.startsWith("@@")&&(I=Symbol[I.substring(2)]),D&&A.U.ya.push(I);var o=A.U.ea,F=o[I];return void 0===F||void 0===F.Y&&F.className!==A.name&&F.ga===g-2?(C.ga=g-2,C.className=A.name,o[I]=C):(u(o,I,B),o[I].Y[g-2]=C),MA([],w,(C=>(C=YA(B,C,A,Q,E,i),void 0===o[I].Y?(C.ga=g-2,o[I]=C):o[I].Y[g-2]=C,[]))),[]}))},r:function(A,I,g,C,B,Q,E,D,i,w){A>>>=0,g>>>=0,B>>>=0,Q>>>=0,E>>>=0,D>>>=0,i>>>=0,w>>>=0,I=p(I>>>=0),B=RA(C>>>0,B),MA([],[A],(A=>{var C=`${(A=A[0]).name}.${I}`,o={get(){KA(`Cannot access ${C} due to unbound types`,[g,E])},enumerable:!0,configurable:!0};return o.set=i?()=>KA(`Cannot access ${C} due to unbound types`,[g,E]):()=>{throw new l(C+" is a read-only property")},Object.defineProperty(A.U.ea,I,o),MA([],i?[g,E]:[g],(g=>{var E=g[0],o={get(){var I=cA(this,A,C+" getter");return E.W(B(Q,I))},enumerable:!0};if(i){i=RA(D,i);var F=g[1];o.set=function(I){var g=cA(this,A,C+" setter"),B=[];i(w,g,F.$(B,I)),sA(B)}}return Object.defineProperty(A.U.ea,I,o),[]})),[]}))},F:function(A){return e(A>>>0,fA)},t:function(A,I,g,C){function B(){}I=p(I>>>0),B.values={},e(A>>>0,{name:I,constructor:B,W:function(A){return this.constructor.values[A]},$:(A,I)=>I.value,da:nA(I,g>>>0,C),ba:null}),$(I,B)},n:function(A,I,g){I>>>=0;var C=WA(A>>>0,"enum");I=p(I),A=C.constructor,C=Object.create(C.constructor.prototype,{value:{value:g},constructor:{value:z(`${C.name}_${I}`,(function(){}))}}),A.values[g]=C,A[I]=C},u:function(A,I,g){e(A>>>0,{name:I=p(I>>>0),W:A=>A,$:(A,I)=>I,da:pA(I,g>>>0),ba:null})},m:function(A,I,g,C,B,Q,E){A>>>=0,C>>>=0,B>>>=0,Q>>>=0;var D=kA(I,g>>>0);A=p(A),A=JA(A),B=RA(C,B),$(A,(function(){KA(`Cannot call ${A} due to unbound types`,D)}),I-1),MA([],D,(g=>(NA(A,YA(A,[g[0],null].concat(g.slice(1)),null,B,Q,E),I-1),[])))},p:function(A,I,g,C,B){A>>>=0,g>>>=0,I=p(I>>>0);let Q=A=>A;if(0===C){var E=32-8*g;Q=A=>A<<E>>>E,B=Q(B)}e(A,{name:I,W:Q,$:(A,I)=>I,da:P(I,g,0!==C),ba:null})},l:function(A,I,g){function C(A){return new B(o.buffer,h[A+4>>>2>>>0],h[A>>>2>>>0])}var B=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][I];e(A>>>0,{name:g=p(g>>>0),W:C,da:C},{wa:!0})},o:function(A){e(A>>>0,xA)},G:function(A,I){e(A>>>0,{name:I=p(I>>>0),W(A){var I=(I=A+4>>>0)?((A=0,I)=>{var g=F;if(16<(I=ZA(g,A>>>=0,I,!0))-A&&g.buffer&&lA)return lA.decode(g.subarray(A,I));for(var C="";A<I;){var B=g[A++];if(128&B){var Q=63&g[A++];if(192==(224&B))C+=String.fromCharCode((31&B)<<6|Q);else{var E=63&g[A++];65536>(B=224==(240&B)?(15&B)<<12|Q<<6|E:(7&B)<<18|Q<<12|E<<6|63&g[A++])?C+=String.fromCharCode(B):(B-=65536,C+=String.fromCharCode(55296|B>>10,56320|1023&B))}}else C+=String.fromCharCode(B)}return C})(I,h[A>>>2>>>0]):"";return NI(A),I},$(A,I){I instanceof ArrayBuffer&&(I=new Uint8Array(I));var g="string"==typeof I;if(!(g||ArrayBuffer.isView(I)&&1==I.BYTES_PER_ELEMENT))throw new l("Cannot pass non-string to std::string");var C=g?VA(I):I.length,B=FI(4+C+1),Q=B+4;return h[B>>>2>>>0]=C,g?TA(I,Q,C+1):F.set(I,Q>>>0),null!==A&&A.push(NI,B),B},da:QA,ba(A){NI(A)}})},s:function(A,I,g){if(I>>>=0,g=p(g>>>=0),2===I)var C=PA,B=bA,Q=XA;else C=OA,B=mA,Q=jA;e(A>>>0,{name:g,W:A=>{var g=C(A+4,h[A>>>2>>>0]*I,!0);return NI(A),g},$:(A,C)=>{if("string"!=typeof C)throw new l(`Cannot pass non-string to C++ string type ${g}`);var E=Q(C),D=FI(4+E+I);return h[D>>>2>>>0]=E/I,B(C,D+4,E+I),null!==A&&A.push(NI,D),D},da:QA,ba(A){NI(A)}})},I:function(A,I){e(A>>>0,{qa:!0,name:I=p(I>>>0),W:()=>{},$:()=>{}})},B:()=>{n=!1,zA=0},c:function(A,I,g){var[C,...B]=((A,I)=>{for(var g=Array(A),C=0;C<A;++C)g[C]=WA(h[I+4*C>>>2>>>0],`parameter ${C}`);return g})(A,I>>>0);I=C.$.bind(C);var Q=B.map((A=>A.da.bind(A)));A--;var E={toValue:rA};switch(A=Q.map(((A,I)=>{var g=`argFromPtr${I}`;return E[g]=A,`${g}(args${I?"+"+8*I:""})`})),g){case 0:var D="toValue(handle)";break;case 2:D="new (toValue(handle))";break;case 3:D="";break;case 1:E.getStringOrSymbol=_A,D="toValue(handle)[getStringOrSymbol(methodName)]"}return D+=`(${A})`,C.qa||(E.toReturnWire=I,E.emval_returnValue=uA,D=`return emval_returnValue(toReturnWire, destructorsRef, ${D})`),D=`return function (handle, methodName, destructorsRef, args) {\n ${D}\n }`,g=new Function(Object.keys(E),D)(...Object.values(E)),D=`methodCaller<(${B.map((A=>A.name))}) => ${C.name}>`,(A=>{var I=vA.length;return vA.push(A),I})(z(D,g))},f:qA,j:function(A,I){return I>>>=0,A=rA(A>>>0),I=rA(I),dA(A[I])},i:function(A){9<(A>>>=0)&&(HA[A+1]+=1)},e:function(A,I,g,C,B){return vA[A>>>0](I>>>0,g>>>0,C>>>0,B>>>0)},D:function(){return dA([])},k:function(A){return dA(_A(A>>>0))},d:function(A){var I=rA(A>>>=0);sA(I),qA(A)},C:(A,I)=>{if(AI[A]&&(clearTimeout(AI[A].id),delete AI[A]),!I)return 0;var g=setTimeout((()=>{delete AI[A],(A=>{if(!s)try{if(A(),!(n||0<zA))try{E=A=E,gI(A)}catch(A){II(A)}}catch(A){II(A)}})((()=>oI(A,performance.now())))}),I);return AI[A]={id:g,Ca:I},0},y:function(A,I,g,C){g>>>=0,C>>>=0;var B=(new Date).getFullYear(),Q=new Date(B,0,1).getTimezoneOffset();B=new Date(B,6,1).getTimezoneOffset(),h[A>>>0>>>2>>>0]=60*Math.max(Q,B),y[I>>>0>>>2>>>0]=Number(Q!=B),A=(I=A=>{var I=Math.abs(A);return`UTC${0<=A?"-":"+"}${String(Math.floor(I/60)).padStart(2,"0")}${String(I%60).padStart(2,"0")}`})(Q),I=I(B),B<Q?(TA(A,g,17),TA(I,C,17)):(TA(A,C,17),TA(I,g,17))},J:function(A){A>>>=0;var I=F.length;if(4294901760<A)return!1;for(var g=1;4>=g;g*=2){var C=I*(1+.2/g);C=Math.min(C,A+100663296);A:{C=(Math.min(4294901760,65536*Math.ceil(Math.max(A,C)/65536))-w.buffer.byteLength+65535)/65536|0;try{w.grow(C),Y();var B=1;break A}catch(A){}B=void 0}if(B)return!0}return!1},z:function(A,I){A>>>=0,I>>>=0;var g,C=0,B=0;for(g of BI()){var Q=I+C;h[A+B>>>2>>>0]=Q,C+=TA(g,Q,1/0)+1,B+=4}return 0},E:function(A,I){A>>>=0,I>>>=0;var g=BI();for(var C of(h[A>>>2>>>0]=g.length,A=0,g))A+=VA(C)+1;return h[I>>>2>>>0]=A,0},A:gI,x:function(A,I){return A>>>=0,QI(F.subarray(A>>>0,A+(I>>>0)>>>0)),0}},yI=await async function(){function A(A){return yI=A.exports,yI=function(){var A=yI;A=Object.assign({},A);var I=A=>I=>A(I)>>>0;return A.O=I(A.O),A.Q=I(A.Q),A._emscripten_stack_alloc=I(A._emscripten_stack_alloc),A.emscripten_stack_get_current=(A=>()=>A()>>>0)(A.emscripten_stack_get_current),A}(),w=yI.L,Y(),FA=yI.S,A=yI,g._main=iI=A.N,wI=A.O,oI=A.P,FI=A.Q,NI=A.R,J--,g.monitorRunDependencies?.(J),0==J&&c&&(A=c,c=null,A()),yI}J++,g.monitorRunDependencies?.(J);var I={a:GI};return g.instantiateWasm?new Promise((C=>{g.instantiateWasm(I,((I,g)=>{C(A(I))}))})):(k??=(A=>{for(var I,g,C=0,B=0,Q=A.length,E=new Uint8Array((3*Q>>2)-("="==A[Q-2])-("="==A[Q-1]));C<Q;C+=4,B+=3)I=EI[A.charCodeAt(C+1)],g=EI[A.charCodeAt(C+2)],E[B]=EI[A.charCodeAt(C)]<<2|I>>4,E[B+1]=I<<4|g>>2,E[B+2]=g<<6|EI[A.charCodeAt(C+3)];return E})("AGFzbQEAAAABkgVPYAF/AGACf38AYAF/AX9gA39/fwBgAn9/AX9gBH9/f38Bf2ADf39/AX9gBH9/f38AYAV/f39/fwF/YAV/f39/fwBgBn9/f39/fwF/YAN/f34AYAZ/f39/f38AYAh/f39/f39/fwF/YAd/f39/f39/AGAAAGAFf39+f38AYAd/f39/f39/AX9gAAF/YAJ/fgBgBX9+fn5+AGALf39/f39/f39/f38Bf2AKf39/f39/f39/fwBgBX9/f39+AX9gCH9/f39/f39/AGAEf35+fwBgAX8BfmACf38BfmAGf39/f35+AX9gBX9/f398AX9gAn9/AXxgBH9/f38BfmAEf39/fAF/YAJ/fABgAXwBfGACfH8BfGAFf39/fn4Bf2AEf39/fgF/YAx/f39/f39/f39/f38Bf2AKf39/f39/f39/fwF/YA9/f39/f39/f39/f39/f38AYAN/f38BfGACf34Bf2AEf39/fgBgB39/f39/fn4Bf2AFf398f38AYAV/f39/fwF8YA1/f39/f39/f39/f39/AGAJf39/f39/f39/AGAFf39/fn4AYAJ/fAF/YAN/fn8AYAV/fn9/fwBgBX98fHx8AGADfn5/AX9gA39/fwF+YAR+fn5+AX9gBH9/f34BfmACfn8Bf2ADfHx/AXxgAnx8AXxgA39/fgF/YAV/f35/fwF/YAN+fn8BfmACfn4BfGAJf39/f39/f39/AX9gDn9/f39/f39/f39/f39/AX9gD39/f39/f39/f39/f39/fwF/YAd/f35/f39/AGACfn4BfmADf39/AX1gBH9+fn4AYAJ+fgF9YAJ8fwF/YAN+fn4Bf2AEf35/fwBgBn9/f3x/fwBgBH9/f3wAYAN/f3wAAt8BJQFhAWEAAwFhAWIAFgFhAWMABgFhAWQAAAFhAWUALgFhAWYAAAFhAWcALwFhAWgADAFhAWkAAAFhAWoABAFhAWsAAgFhAWwAAwFhAW0AGAFhAW4AAwFhAW8AAQFhAXAACQFhAXEAMAFhAXIAFgFhAXMAAwFhAXQABwFhAXUAAwFhAXYAMQFhAXcAGAFhAXgABAFhAXkABwFhAXoABAFhAUEAAAFhAUIADwFhAUMAMgFhAUQAEgFhAUUABAFhAUYAAAFhAUcAAQFhAUgABwFhAUkAAQFhAUoAAgFhAUsADwO0C7IL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