@microblink/blinkid-imagecapture-in-browser-sdk
Version:
A smart image capturing library for WebAssembly-enabled browsers.
127 lines (123 loc) • 74.3 kB
JavaScript
var BlinkIDImageCaptureWasmSDK = (() => {
var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;
return (
function(BlinkIDImageCaptureWasmSDK) {
BlinkIDImageCaptureWasmSDK = BlinkIDImageCaptureWasmSDK || {};
function aa(){g.buffer!=q&&ba(g.buffer);return ca}function t(){g.buffer!=q&&ba(g.buffer);return da}function ea(){g.buffer!=q&&ba(g.buffer);return fa}function y(){g.buffer!=q&&ba(g.buffer);return ha}function z(){g.buffer!=q&&ba(g.buffer);return ia}function B(){g.buffer!=q&&ba(g.buffer);return ja}function ka(){g.buffer!=q&&ba(g.buffer);return la}var D;D||(D=typeof BlinkIDImageCaptureWasmSDK !== 'undefined' ? BlinkIDImageCaptureWasmSDK : {});var ma,na;D.ready=new Promise(function(a,b){ma=a;na=b});D.kc||(D.kc=0);D.kc++;
D.ENVIRONMENT_IS_PTHREAD||function(a){function b(l,r,n){var p=new XMLHttpRequest;p.open("GET",l,!0);p.responseType="arraybuffer";p.onprogress=function(v){var k=r;v.total&&(k=v.total);if(v.loaded){p.Tc?D.Hb[l].loaded=v.loaded:(p.Tc=!0,D.Hb||(D.Hb={}),D.Hb[l]={loaded:v.loaded,total:k});var u=k=v=0,w;for(w in D.Hb){var A=D.Hb[w];v+=A.total;k+=A.loaded;u++}v=Math.ceil(v*D.kc/u);D.setStatus&&D.setStatus("Downloading data... ("+k+"/"+v+")")}else!D.Hb&&D.setStatus&&D.setStatus("Downloading data...")};p.onerror=
function(){throw Error("NetworkError for: "+l);};p.onload=function(){if(200==p.status||304==p.status||206==p.status||0==p.status&&p.response)n(p.response);else throw Error(p.statusText+" : "+p.responseURL);};p.send(null)}function c(l){console.error("package error:",l)}function d(){function l(v,k,u){this.start=v;this.end=k;this.audio=u}function r(v){if(!v)throw"Loading data file failed."+Error().stack;if(!(v instanceof ArrayBuffer))throw"bad input to processPackageData"+Error().stack;v=new Uint8Array(v);
l.prototype.Zc=v;v=a.files;for(var k=0;k<v.length;++k)l.prototype.vc[v[k].filename].onload();D.removeRunDependency("datafile_/opt/jenkins/root/E0/core-webassembly-sdks/SDKs/BlinkIDImageCapture/resources/advanced-threads/BlinkIDImageCaptureWasmSDK.data")}D.FS_createPath("/","microblink",!0,!0);l.prototype={vc:{},open:function(v,k){this.name=k;this.vc[k]=this;D.addRunDependency("fp "+this.name)},send:function(){},onload:function(){this.finish(this.Zc.subarray(this.start,this.end))},finish:function(v){D.FS_createDataFile(this.name,
null,v,!0,!0,!0);D.removeRunDependency("fp "+this.name);this.vc[this.name]=null}};for(var n=a.files,p=0;p<n.length;++p)(new l(n[p].start,n[p].end,n[p].audio||0)).open("GET",n[p].filename);D.addRunDependency("datafile_/opt/jenkins/root/E0/core-webassembly-sdks/SDKs/BlinkIDImageCapture/resources/advanced-threads/BlinkIDImageCaptureWasmSDK.data");D.Jc||(D.Jc={});D.Jc["/opt/jenkins/root/E0/core-webassembly-sdks/SDKs/BlinkIDImageCapture/resources/advanced-threads/BlinkIDImageCaptureWasmSDK.data"]={Vd:!1};
m?(r(m),m=null):h=r}"object"===typeof window?window.encodeURIComponent(window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/"):"undefined"===typeof process&&"undefined"!==typeof location&&encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/");"function"!==typeof D.locateFilePackage||D.locateFile||(D.locateFile=D.locateFilePackage,E("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)"));
var e=D.locateFile?D.locateFile("BlinkIDImageCaptureWasmSDK.data",""):"BlinkIDImageCaptureWasmSDK.data",f=a.remote_package_size,h=null,m=D.getPreloadedPackage?D.getPreloadedPackage(e,f):null;m||b(e,f,function(l){h?(h(l),h=null):m=l},c);D.calledRun?d():(D.preRun||(D.preRun=[]),D.preRun.push(d))}({files:[{filename:"/microblink/Model_82ae7b860c6b4cb8249534e0004901bc46dee18fd3adbe535809abeefbf4fd88.strop",start:0,end:4718316},{filename:"/microblink/Model_36d8e94f4cb46097bd6b7385f2aa91fcdee1a5fefeec59e56d1b9e82c94b00a7.strop",
start:4718316,end:5088144},{filename:"/microblink/Model_faf688599c7e261a2a7404730f69ed029115bb0d3e7a3657731d88e701720efe.strop",start:5088144,end:5104882},{filename:"/microblink/Model_b452fd3cd4037080cfcb4c423dba5bc58c8ceafc28427fdf9c5778fb353f088e.strop",start:5104882,end:5111732},{filename:"/microblink/Model_8326c5065a6d8451d6d004db73babf4a4a9f502c68643a14934cc098d04bf44f.strop",start:5111732,end:5528836},{filename:"/microblink/Model_e4f1f62f68ec44b71ecad3fb3f3b48fe3790beb5ab325611e17d63af06e9f644.strop",
start:5528836,end:5585350},{filename:"/microblink/Model_473ac5f5e256623c0a6b282698c1f1b033b9fb5359e6aa142e9fb4a4022afe4e.strop",start:5585350,end:5592232},{filename:"/microblink/Model_250e3cb8bb8603d4798b31c1fb8be2ca1f79b1c969eded62e916932dad3ff3f1.strop",start:5592232,end:6308266},{filename:"/microblink/Model_2880751121560047e6dc571bc8ff4683aeb863886f7c0789234594ceb1e23577.strop",start:6308266,end:6312204},{filename:"/microblink/Model_ed586fd6ca47c8eebb513c4ffaaacc2c54e92162b145062d7022519fba0911de.strop",
start:6312204,end:7025436}],remote_package_size:7025436,package_uuid:"2ab5b78c-4404-42cb-9753-152c78f90c22"});D.onAbort=function(a){E("Aborted with message: "+a);E("Stacktrace: "+oa())};var crypto={getRandomValues:function(a){for(var b=0;b<a.length;b++)a[b]=256*Math.random()|0}},pa;pa=D.allowedThreads&&0<D.allowedThreads?D.allowedThreads-1:navigator.hardwareConcurrency-1;var qa=0,ra;0<pa&&(D.threadWorkersReadyPromise=new Promise(function(a){ra=a}));D.preRun||(D.preRun=[]);
D.preRun.push(function(a){function b(){qa++;qa==pa&&ra()}var c=a.PThread.pc;a.PThread.pc=function(d){c(d,b)}});var sa=Object.assign({},D),ta="./this.program",ua=(a,b)=>{throw b;},va="object"==typeof window,wa="function"==typeof importScripts,xa="object"==typeof process&&"object"==typeof process.Td&&"string"==typeof process.Td.node,F=D.ENVIRONMENT_IS_PTHREAD||!1,ya="";function za(a){return D.locateFile?D.locateFile(a,ya):ya+a}var Aa,Ba,Ca;
if(va||wa)wa?ya=self.location.href:"undefined"!=typeof document&&document.currentScript&&(ya=document.currentScript.src),_scriptDir&&(ya=_scriptDir),ya=0!==ya.indexOf("blob:")?ya.substr(0,ya.replace(/[?#].*/,"").lastIndexOf("/")+1):"",Aa=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.send(null);return b.responseText},wa&&(Ca=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),Ba=(a,b,c)=>{var d=new XMLHttpRequest;d.open("GET",
a,!0);d.responseType="arraybuffer";d.onload=()=>{200==d.status||0==d.status&&d.response?b(d.response):c()};d.onerror=c;d.send(null)};var Da=D.print||console.log.bind(console),E=D.printErr||console.warn.bind(console);Object.assign(D,sa);sa=null;D.thisProgram&&(ta=D.thisProgram);D.quit&&(ua=D.quit);var Ea,Fa=0,Ga;D.wasmBinary&&(Ga=D.wasmBinary);var noExitRuntime=D.noExitRuntime||!0;"object"!=typeof WebAssembly&&Ha("no native wasm support detected");
var g,Ia,Ja=!1,Ka="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;
function La(a,b,c){var d=b+c;for(c=b;a[c]&&!(c>=d);)++c;if(16<c-b&&a.buffer&&Ka)return Ka.decode(a.buffer instanceof SharedArrayBuffer?a.slice(b,c):a.subarray(b,c));for(d="";b<c;){var e=a[b++];if(e&128){var f=a[b++]&63;if(192==(e&224))d+=String.fromCharCode((e&31)<<6|f);else{var h=a[b++]&63;e=224==(e&240)?(e&15)<<12|f<<6|h:(e&7)<<18|f<<12|h<<6|a[b++]&63;65536>e?d+=String.fromCharCode(e):(e-=65536,d+=String.fromCharCode(55296|e>>10,56320|e&1023))}}else d+=String.fromCharCode(e)}return d}
function G(a,b){return a?La(t(),a,b):""}function Ma(a,b,c,d){if(!(0<d))return 0;var e=c;d=c+d-1;for(var f=0;f<a.length;++f){var h=a.charCodeAt(f);if(55296<=h&&57343>=h){var m=a.charCodeAt(++f);h=65536+((h&1023)<<10)|m&1023}if(127>=h){if(c>=d)break;b[c++]=h}else{if(2047>=h){if(c+1>=d)break;b[c++]=192|h>>6}else{if(65535>=h){if(c+2>=d)break;b[c++]=224|h>>12}else{if(c+3>=d)break;b[c++]=240|h>>18;b[c++]=128|h>>12&63}b[c++]=128|h>>6&63}b[c++]=128|h&63}}b[c]=0;return c-e}
function K(a,b,c){Ma(a,t(),b,c)}function Na(a){for(var b=0,c=0;c<a.length;++c){var d=a.charCodeAt(c);55296<=d&&57343>=d&&(d=65536+((d&1023)<<10)|a.charCodeAt(++c)&1023);127>=d?++b:b=2047>=d?b+2:65535>=d?b+3:b+4}return b}var Oa="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;
function Pa(a,b){var c=a>>1;for(var d=c+b/2;!(c>=d)&&y()[c];)++c;c<<=1;if(32<c-a&&Oa)return Oa.decode(t().slice(a,c));c="";for(d=0;!(d>=b/2);++d){var e=ea()[a+2*d>>1];if(0==e)break;c+=String.fromCharCode(e)}return c}function Qa(a,b,c){void 0===c&&(c=2147483647);if(2>c)return 0;c-=2;var d=b;c=c<2*a.length?c/2:a.length;for(var e=0;e<c;++e){var f=a.charCodeAt(e);ea()[b>>1]=f;b+=2}ea()[b>>1]=0;return b-d}function Ra(a){return 2*a.length}
function Sa(a,b){for(var c=0,d="";!(c>=b/4);){var e=z()[a+4*c>>2];if(0==e)break;++c;65536<=e?(e-=65536,d+=String.fromCharCode(55296|e>>10,56320|e&1023)):d+=String.fromCharCode(e)}return d}function Ta(a,b,c){void 0===c&&(c=2147483647);if(4>c)return 0;var d=b;c=d+c-4;for(var e=0;e<a.length;++e){var f=a.charCodeAt(e);if(55296<=f&&57343>=f){var h=a.charCodeAt(++e);f=65536+((f&1023)<<10)|h&1023}z()[b>>2]=f;b+=4;if(b+4>c)break}z()[b>>2]=0;return b-d}
function Ua(a){for(var b=0,c=0;c<a.length;++c){var d=a.charCodeAt(c);55296<=d&&57343>=d&&++c;b+=4}return b}function Va(a){var b=Na(a)+1,c=Xa(b);c&&Ma(a,aa(),c,b);return c}function Ya(a,b){aa().set(a,b)}var q,ca,da,fa,ha,ia,ja,Za,la;F&&(q=D.buffer);
function ba(a){q=a;D.HEAP8=ca=new Int8Array(a);D.HEAP16=fa=new Int16Array(a);D.HEAP32=ia=new Int32Array(a);D.HEAPU8=da=new Uint8Array(a);D.HEAPU16=ha=new Uint16Array(a);D.HEAPU32=ja=new Uint32Array(a);D.HEAPF32=Za=new Float32Array(a);D.HEAPF64=la=new Float64Array(a)}var $a=D.INITIAL_MEMORY||209715200;
if(F)g=D.wasmMemory,q=D.buffer;else if(D.wasmMemory)g=D.wasmMemory;else if(g=new WebAssembly.Memory({initial:$a/65536,maximum:12800,shared:!0}),!(g.buffer instanceof SharedArrayBuffer))throw E("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),xa&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),
Error("bad memory");g&&(q=g.buffer);$a=q.byteLength;ba(q);var ab,bb=[],cb=[],db=[];function eb(){F||(D.noFSInit||fb||(fb=!0,gb(),D.stdin=D.stdin,D.stdout=D.stdout,D.stderr=D.stderr,D.stdin?hb("/dev","stdin",D.stdin):ib("/dev/tty","/dev/stdin"),D.stdout?hb("/dev","stdout",null,D.stdout):ib("/dev/tty","/dev/stdout"),D.stderr?hb("/dev","stderr",null,D.stderr):ib("/dev/tty1","/dev/stderr"),jb("/dev/stdin",0),jb("/dev/stdout",1),jb("/dev/stderr",1)),kb=!1,lb(cb))}
function mb(){var a=D.preRun.shift();bb.unshift(a)}var nb=0,ob=null,pb=null;function qb(){nb++;D.monitorRunDependencies&&D.monitorRunDependencies(nb)}function rb(){nb--;D.monitorRunDependencies&&D.monitorRunDependencies(nb);if(0==nb&&(null!==ob&&(clearInterval(ob),ob=null),pb)){var a=pb;pb=null;a()}}D.preloadedImages={};D.preloadedAudios={};
function Ha(a){if(F)postMessage({cmd:"onAbort",arg:a});else if(D.onAbort)D.onAbort(a);a="Aborted("+a+")";E(a);Ja=!0;a=new WebAssembly.RuntimeError(a+". Build with -s ASSERTIONS=1 for more info.");na(a);throw a;}function sb(){return tb.startsWith("data:application/octet-stream;base64,")}var tb;tb="BlinkIDImageCaptureWasmSDK.wasm";sb()||(tb=za(tb));
function ub(){var a=tb;try{if(a==tb&&Ga)return new Uint8Array(Ga);if(Ca)return Ca(a);throw"both async and sync fetching of the wasm failed";}catch(b){Ha(b)}}function vb(){return Ga||!va&&!wa||"function"!=typeof fetch?Promise.resolve().then(function(){return ub()}):fetch(tb,{credentials:"same-origin"}).then(function(a){if(!a.ok)throw"failed to load wasm binary file at '"+tb+"'";return a.arrayBuffer()}).catch(function(){return ub()})}
var L,wb,xb={376335:function(a){a=G(a);throw Error("Failed to reconfigure RecognizerRunner due to following error: "+a);},376471:function(a,b,c,d){a=G(a);b=G(b);c=G(c);d=G(d);throw Error(a+b+c+d);},376687:function(a,b){a=G(a);b=G(b);throw Error(a+b);},376797:function(a,b){a=G(a);b=G(b);console.log(a+b)},376895:function(a){throw Error(G(a));},376938:function(){throw Error("Unable to perform that operation while recognizer is in use!");}};
function lb(a){for(;0<a.length;){var b=a.shift();if("function"==typeof b)b(D);else{var c=b.Wd;"number"==typeof c?void 0===b.Nb?M(c)():M(c)(b.Nb):c(void 0===b.Nb?null:b.Nb)}}}function yb(a){var b=zb();a=a();Ab(b);return a}function Bb(a){return a.replace(/\b_Z[\w\d_]+/g,function(b){return b===b?b:b+" ["+b+"]"})}function Cb(a){var b=N.xb[a];b&&(z()[a>>2]=0,N.Oc(b.worker))}
function Db(a){var b=N.jd();if(!b)return 6;N.Ub.push(b);var c=N.xb[a.qc]={worker:b,wc:a.qc};b.Mb=c;var d={cmd:"run",start_routine:a.Ld,arg:a.Nb,threadInfoStruct:a.qc};b.Tb=()=>{d.time=performance.now();b.postMessage(d,a.Rd)};b.loaded&&(b.Tb(),delete b.Tb);return 0}function Eb(a){a instanceof Fb||"unwind"==a||ua(1,a)}
var N={Cb:[],Ub:[],fc:[],pd:function(){F&&N.qd()},Zd:function(){},qd:function(){N.receiveObjectTransfer=N.Bd;N.threadInit=N.Qc;N.setExitStatus=N.Gd;noExitRuntime=!1},xb:{},Gd:function(){},Md:function(){for(var a in N.xb){var b=N.xb[a];b&&b.worker&&N.Oc(b.worker)}for(a=0;a<N.Cb.length;++a)N.Cb[a].terminate();N.Cb=[]},Oc:function(a){N.Dd(function(){delete N.xb[a.Mb.wc];N.Cb.push(a);N.Ub.splice(N.Ub.indexOf(a),1);Gb(a.Mb.wc);a.Mb=void 0})},Dd:function(a){z()[Hb>>2]=0;try{a()}finally{z()[Hb>>2]=1}},Bd:function(){},
Qc:function(){for(var a in N.fc)if(N.fc.hasOwnProperty(a))N.fc[a]()},pc:function(a,b){a.onmessage=c=>{c=c.data;var d=c.cmd;a.Mb&&(N.cd=a.Mb.wc);if(c.targetThread&&c.targetThread!=Ib()){var e=N.xb[c.be];e?e.worker.postMessage(c,c.transferList):E('Internal error! Worker sent a message "'+d+'" to target pthread '+c.targetThread+", but that thread no longer exists!")}else if("processProxyingQueue"===d)Jb(c.queue),Atomics.sub(z(),c.queue>>2,1);else if("spawnThread"===d)Db(c);else if("cleanupThread"===
d)Cb(c.thread);else if("killThread"===d)c=c.thread,z()[c>>2]=0,d=N.xb[c],delete N.xb[c],d.worker.terminate(),Gb(c),N.Ub.splice(N.Ub.indexOf(d.worker),1),d.worker.Mb=void 0;else if("cancelThread"===d)N.xb[c.thread].worker.postMessage({cmd:"cancel"});else if("loaded"===d)a.loaded=!0,b&&b(a),a.Tb&&(a.Tb(),delete a.Tb);else if("print"===d)Da("Thread "+c.threadId+": "+c.text);else if("printErr"===d)E("Thread "+c.threadId+": "+c.text);else if("alert"===d)alert("Thread "+c.threadId+": "+c.text);else if("setimmediate"===
c.target)a.postMessage(c);else if("onAbort"===d){if(D.onAbort)D.onAbort(c.arg)}else d&&E("worker sent an unknown command "+d);N.cd=void 0};a.onerror=c=>{E("worker sent an error! "+c.filename+":"+c.lineno+": "+c.message);throw c;};a.postMessage({cmd:"load",urlOrBlob:D.mainScriptUrlOrBlob||_scriptDir,wasmMemory:g,wasmModule:Ia})},Uc:function(){var a=za("BlinkIDImageCaptureWasmSDK.worker.js");N.Cb.push(new Worker(a))},jd:function(){0==N.Cb.length&&(N.Uc(),N.pc(N.Cb[0]));return N.Cb.pop()}};
D.establishStackSpace=function(){var a=Ib(),b=z()[a+44>>2];a=z()[a+48>>2];Kb(b,b-a);Ab(b)};function Lb(a){if(F)return O(1,0,a);try{Mb(a)}catch(b){Eb(b)}}var Nb=[];function M(a){var b=Nb[a];b||(a>=Nb.length&&(Nb.length=a+1),Nb[a]=b=ab.get(a));return b}D.invokeEntryPoint=function(a,b){return M(a)(b)};
function oa(){a:{var a=Error();if(!a.stack){try{throw Error();}catch(b){a=b}if(!a.stack){a="(no stack trace available)";break a}}a=a.stack.toString()}D.extraStackTrace&&(a+="\n"+D.extraStackTrace());return Bb(a)}function Ob(a,b,c,d){return F?O(2,1,a,b,c,d):Pb(a,b,c,d)}
function Pb(a,b,c,d){if("undefined"==typeof SharedArrayBuffer)return E("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var e=[];if(F&&0===e.length)return Ob(a,b,c,d);a={Ld:c,qc:a,Nb:d,Rd:e};return F?(a.Ud="spawnThread",postMessage(a,e),0):Db(a)}function Qb(a,b){for(var c=0,d=a.length-1;0<=d;d--){var e=a[d];"."===e?a.splice(d,1):".."===e?(a.splice(d,1),c++):c&&(a.splice(d,1),c--)}if(b)for(;c;c--)a.unshift("..");return a}
function Rb(a){var b="/"===a.charAt(0),c="/"===a.substr(-1);(a=Qb(a.split("/").filter(function(d){return!!d}),!b).join("/"))||b||(a=".");a&&c&&(a+="/");return(b?"/":"")+a}function Sb(a){var b=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(a).slice(1);a=b[0];b=b[1];if(!a&&!b)return".";b&&(b=b.substr(0,b.length-1));return a+b}function Tb(a){if("/"===a)return"/";a=Rb(a);a=a.replace(/\/$/,"");var b=a.lastIndexOf("/");return-1===b?a:a.substr(b+1)}
function Ub(){if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var a=new Uint8Array(1);return function(){crypto.getRandomValues(a);return a[0]}}return function(){Ha("randomDevice")}}
function Vb(){for(var a="",b=!1,c=arguments.length-1;-1<=c&&!b;c--){b=0<=c?arguments[c]:"/";if("string"!=typeof b)throw new TypeError("Arguments to path.resolve must be strings");if(!b)return"";a=b+"/"+a;b="/"===b.charAt(0)}a=Qb(a.split("/").filter(function(d){return!!d}),!b).join("/");return(b?"/":"")+a||"."}var Wb=[];function Xb(a,b){Wb[a]={input:[],ob:[],Lb:b};Yb(a,Zb)}
var Zb={open:function(a){var b=Wb[a.node.Rb];if(!b)throw new P(43);a.mb=b;a.seekable=!1},close:function(a){a.mb.Lb.flush(a.mb)},flush:function(a){a.mb.Lb.flush(a.mb)},read:function(a,b,c,d){if(!a.mb||!a.mb.Lb.Gc)throw new P(60);for(var e=0,f=0;f<d;f++){try{var h=a.mb.Lb.Gc(a.mb)}catch(m){throw new P(29);}if(void 0===h&&0===e)throw new P(6);if(null===h||void 0===h)break;e++;b[c+f]=h}e&&(a.node.timestamp=Date.now());return e},write:function(a,b,c,d){if(!a.mb||!a.mb.Lb.rc)throw new P(60);try{for(var e=
0;e<d;e++)a.mb.Lb.rc(a.mb,b[c+e])}catch(f){throw new P(29);}d&&(a.node.timestamp=Date.now());return e}},ac={Gc:function(a){if(!a.input.length){var b=null;"undefined"!=typeof window&&"function"==typeof window.prompt?(b=window.prompt("Input: "),null!==b&&(b+="\n")):"function"==typeof readline&&(b=readline(),null!==b&&(b+="\n"));if(!b)return null;a.input=$b(b,!0)}return a.input.shift()},rc:function(a,b){null===b||10===b?(Da(La(a.ob,0)),a.ob=[]):0!=b&&a.ob.push(b)},flush:function(a){a.ob&&0<a.ob.length&&
(Da(La(a.ob,0)),a.ob=[])}},bc={rc:function(a,b){null===b||10===b?(E(La(a.ob,0)),a.ob=[]):0!=b&&a.ob.push(b)},flush:function(a){a.ob&&0<a.ob.length&&(E(La(a.ob,0)),a.ob=[])}},Q={wb:null,zb:function(){return Q.createNode(null,"/",16895,0)},createNode:function(a,b,c,d){if(24576===(c&61440)||4096===(c&61440))throw new P(63);Q.wb||(Q.wb={dir:{node:{vb:Q.gb.vb,rb:Q.gb.rb,Ob:Q.gb.Ob,bc:Q.gb.bc,Nc:Q.gb.Nc,jc:Q.gb.jc,Pc:Q.gb.Pc,Mc:Q.gb.Mc,ec:Q.gb.ec},stream:{Eb:Q.hb.Eb}},file:{node:{vb:Q.gb.vb,rb:Q.gb.rb},
stream:{Eb:Q.hb.Eb,read:Q.hb.read,write:Q.hb.write,yc:Q.hb.yc,cc:Q.hb.cc,dc:Q.hb.dc}},link:{node:{vb:Q.gb.vb,rb:Q.gb.rb,Sb:Q.gb.Sb},stream:{}},Ac:{node:{vb:Q.gb.vb,rb:Q.gb.rb},stream:cc}});c=dc(a,b,c,d);16384===(c.mode&61440)?(c.gb=Q.wb.dir.node,c.hb=Q.wb.dir.stream,c.fb={}):32768===(c.mode&61440)?(c.gb=Q.wb.file.node,c.hb=Q.wb.file.stream,c.kb=0,c.fb=null):40960===(c.mode&61440)?(c.gb=Q.wb.link.node,c.hb=Q.wb.link.stream):8192===(c.mode&61440)&&(c.gb=Q.wb.Ac.node,c.hb=Q.wb.Ac.stream);c.timestamp=
Date.now();a&&(a.fb[b]=c,a.timestamp=c.timestamp);return c},Xd:function(a){return a.fb?a.fb.subarray?a.fb.subarray(0,a.kb):new Uint8Array(a.fb):new Uint8Array(0)},Dc:function(a,b){var c=a.fb?a.fb.length:0;c>=b||(b=Math.max(b,c*(1048576>c?2:1.125)>>>0),0!=c&&(b=Math.max(b,256)),c=a.fb,a.fb=new Uint8Array(b),0<a.kb&&a.fb.set(c.subarray(0,a.kb),0))},Cd:function(a,b){if(a.kb!=b)if(0==b)a.fb=null,a.kb=0;else{var c=a.fb;a.fb=new Uint8Array(b);c&&a.fb.set(c.subarray(0,Math.min(b,a.kb)));a.kb=b}},gb:{vb:function(a){var b=
{};b.ed=8192===(a.mode&61440)?a.id:1;b.mc=a.id;b.mode=a.mode;b.xd=1;b.uid=0;b.nd=0;b.Rb=a.Rb;b.size=16384===(a.mode&61440)?4096:32768===(a.mode&61440)?a.kb:40960===(a.mode&61440)?a.link.length:0;b.Wc=new Date(a.timestamp);b.wd=new Date(a.timestamp);b.bd=new Date(a.timestamp);b.Xc=4096;b.Yc=Math.ceil(b.size/b.Xc);return b},rb:function(a,b){void 0!==b.mode&&(a.mode=b.mode);void 0!==b.timestamp&&(a.timestamp=b.timestamp);void 0!==b.size&&Q.Cd(a,b.size)},Ob:function(){throw ec[44];},bc:function(a,b,c,
d){return Q.createNode(a,b,c,d)},Nc:function(a,b,c){if(16384===(a.mode&61440)){try{var d=fc(b,c)}catch(f){}if(d)for(var e in d.fb)throw new P(55);}delete a.parent.fb[a.name];a.parent.timestamp=Date.now();a.name=c;b.fb[c]=a;b.timestamp=a.parent.timestamp;a.parent=b},jc:function(a,b){delete a.fb[b];a.timestamp=Date.now()},Pc:function(a,b){var c=fc(a,b),d;for(d in c.fb)throw new P(55);delete a.fb[b];a.timestamp=Date.now()},Mc:function(a){var b=[".",".."],c;for(c in a.fb)a.fb.hasOwnProperty(c)&&b.push(c);
return b},ec:function(a,b,c){a=Q.createNode(a,b,41471,0);a.link=c;return a},Sb:function(a){if(40960!==(a.mode&61440))throw new P(28);return a.link}},hb:{read:function(a,b,c,d,e){var f=a.node.fb;if(e>=a.node.kb)return 0;a=Math.min(a.node.kb-e,d);if(8<a&&f.subarray)b.set(f.subarray(e,e+a),c);else for(d=0;d<a;d++)b[c+d]=f[e+d];return a},write:function(a,b,c,d,e,f){b.buffer===aa().buffer&&(f=!1);if(!d)return 0;a=a.node;a.timestamp=Date.now();if(b.subarray&&(!a.fb||a.fb.subarray)){if(f)return a.fb=b.subarray(c,
c+d),a.kb=d;if(0===a.kb&&0===e)return a.fb=b.slice(c,c+d),a.kb=d;if(e+d<=a.kb)return a.fb.set(b.subarray(c,c+d),e),d}Q.Dc(a,e+d);if(a.fb.subarray&&b.subarray)a.fb.set(b.subarray(c,c+d),e);else for(f=0;f<d;f++)a.fb[e+f]=b[c+f];a.kb=Math.max(a.kb,e+d);return d},Eb:function(a,b,c){1===c?b+=a.position:2===c&&32768===(a.node.mode&61440)&&(b+=a.node.kb);if(0>b)throw new P(28);return b},yc:function(a,b,c){Q.Dc(a.node,b+c);a.node.kb=Math.max(a.node.kb,b+c)},cc:function(a,b,c,d,e,f){if(0!==b)throw new P(28);
if(32768!==(a.node.mode&61440))throw new P(43);a=a.node.fb;if(f&2||a.buffer!==q){if(0<d||d+c<a.length)a=a.subarray?a.subarray(d,d+c):Array.prototype.slice.call(a,d,d+c);d=!0;f=65536*Math.ceil(c/65536);(c=gc(65536,f))?t().fill(0,c,c+f):c=0;if(!c)throw new P(48);aa().set(a,c)}else d=!1,c=a.byteOffset;return{jb:c,Vc:d}},dc:function(a,b,c,d,e){if(32768!==(a.node.mode&61440))throw new P(43);if(e&2)return 0;Q.hb.write(a,b,0,d,c,!1);return 0}}};
function hc(a,b,c){var d="al "+a;Ba(a,function(e){e||Ha('Loading data file "'+a+'" failed (no arrayBuffer).');b(new Uint8Array(e));d&&rb(d)},function(){if(c)c();else throw'Loading data file "'+a+'" failed.';});d&&qb(d)}
var ic=null,jc={},kc=[],lc=1,mc=null,kb=!0,P=null,ec={},oc=(a,b={})=>{a=Vb("/",a);if(!a)return{path:"",node:null};b=Object.assign({Fc:!0,tc:0},b);if(8<b.tc)throw new P(32);a=Qb(a.split("/").filter(h=>!!h),!1);for(var c=ic,d="/",e=0;e<a.length;e++){var f=e===a.length-1;if(f&&b.parent)break;c=fc(c,a[e]);d=Rb(d+"/"+a[e]);c.Pb&&(!f||f&&b.Fc)&&(c=c.Pb.root);if(!f||b.Yb)for(f=0;40960===(c.mode&61440);)if(c=nc(d),d=Vb(Sb(d),c),c=oc(d,{tc:b.tc+1}).node,40<f++)throw new P(32);}return{path:d,node:c}},pc=a=>
{for(var b;;){if(a===a.parent)return a=a.zb.Ic,b?"/"!==a[a.length-1]?a+"/"+b:a+b:a;b=b?a.name+"/"+b:a.name;a=a.parent}},qc=(a,b)=>{for(var c=0,d=0;d<b.length;d++)c=(c<<5)-c+b.charCodeAt(d)|0;return(a+c>>>0)%mc.length},fc=(a,b)=>{var c;if(c=(c=rc(a,"x"))?c:a.gb.Ob?0:2)throw new P(c,a);for(c=mc[qc(a.id,b)];c;c=c.Kb){var d=c.name;if(c.parent.id===a.id&&d===b)return c}return a.gb.Ob(a,b)},dc=(a,b,c,d)=>{a=new sc(a,b,c,d);b=qc(a.parent.id,a.name);a.Kb=mc[b];return mc[b]=a},tc={r:0,"r+":2,w:577,"w+":578,
a:1089,"a+":1090},uc=a=>{var b=["r","w","rw"][a&3];a&512&&(b+="w");return b},rc=(a,b)=>{if(kb)return 0;if(!b.includes("r")||a.mode&292){if(b.includes("w")&&!(a.mode&146)||b.includes("x")&&!(a.mode&73))return 2}else return 2;return 0},vc=(a,b)=>{try{return fc(a,b),20}catch(c){}return rc(a,"wx")},wc=(a=0,b=4096)=>{for(;a<=b;a++)if(!kc[a])return a;throw new P(33);},yc=(a,b)=>{xc||(xc=function(){},xc.prototype={object:{get:function(){return this.node},set:function(c){this.node=c}}});a=Object.assign(new xc,
a);b=wc(b,void 0);a.Bb=b;return kc[b]=a},cc={open:a=>{a.hb=jc[a.node.Rb].hb;a.hb.open&&a.hb.open(a)},Eb:()=>{throw new P(70);}},Yb=(a,b)=>{jc[a]={hb:b}},zc=(a,b)=>{var c="/"===b,d=!b;if(c&&ic)throw new P(10);if(!c&&!d){var e=oc(b,{Fc:!1});b=e.path;e=e.node;if(e.Pb)throw new P(10);if(16384!==(e.mode&61440))throw new P(54);}b={type:a,ae:{},Ic:b,vd:[]};a=a.zb(b);a.zb=b;b.root=a;c?ic=a:e&&(e.Pb=b,e.zb&&e.zb.vd.push(b))},R=(a,b,c)=>{var d=oc(a,{parent:!0}).node;a=Tb(a);if(!a||"."===a||".."===a)throw new P(28);
var e=vc(d,a);if(e)throw new P(e);if(!d.gb.bc)throw new P(63);return d.gb.bc(d,a,b,c)},Ac=(a,b,c)=>{"undefined"==typeof c&&(c=b,b=438);return R(a,b|8192,c)},ib=(a,b)=>{if(!Vb(a))throw new P(44);var c=oc(b,{parent:!0}).node;if(!c)throw new P(44);b=Tb(b);var d=vc(c,b);if(d)throw new P(d);if(!c.gb.ec)throw new P(63);c.gb.ec(c,b,a)},Bc=a=>{var b=oc(a,{parent:!0}).node;if(!b)throw new P(44);var c=Tb(a);a=fc(b,c);a:{try{var d=fc(b,c)}catch(f){d=f.nb;break a}var e=rc(b,"wx");d=e?e:16384===(d.mode&61440)?
31:0}if(d)throw new P(d);if(!b.gb.jc)throw new P(63);if(a.Pb)throw new P(10);b.gb.jc(b,c);b=qc(a.parent.id,a.name);if(mc[b]===a)mc[b]=a.Kb;else for(b=mc[b];b;){if(b.Kb===a){b.Kb=a.Kb;break}b=b.Kb}},nc=a=>{a=oc(a).node;if(!a)throw new P(44);if(!a.gb.Sb)throw new P(28);return Vb(pc(a.parent),a.gb.Sb(a))},Cc=(a,b)=>{a=oc(a,{Yb:!b}).node;if(!a)throw new P(44);if(!a.gb.vb)throw new P(63);return a.gb.vb(a)},Dc=a=>Cc(a,!0),Ec=(a,b)=>{a="string"==typeof a?oc(a,{Yb:!0}).node:a;if(!a.gb.rb)throw new P(63);
a.gb.rb(a,{mode:b&4095|a.mode&-4096,timestamp:Date.now()})},jb=(a,b,c,d)=>{if(""===a)throw new P(44);if("string"==typeof b){var e=tc[b];if("undefined"==typeof e)throw Error("Unknown file open mode: "+b);b=e}c=b&64?("undefined"==typeof c?438:c)&4095|32768:0;if("object"==typeof a)var f=a;else{a=Rb(a);try{f=oc(a,{Yb:!(b&131072)}).node}catch(h){}}e=!1;if(b&64)if(f){if(b&128)throw new P(20);}else f=R(a,c,0),e=!0;if(!f)throw new P(44);8192===(f.mode&61440)&&(b&=-513);if(b&65536&&16384!==(f.mode&61440))throw new P(54);
if(!e&&(c=f?40960===(f.mode&61440)?32:16384===(f.mode&61440)&&("r"!==uc(b)||b&512)?31:rc(f,uc(b)):44))throw new P(c);if(b&512){c=f;c="string"==typeof c?oc(c,{Yb:!0}).node:c;if(!c.gb.rb)throw new P(63);if(16384===(c.mode&61440))throw new P(31);if(32768!==(c.mode&61440))throw new P(28);if(e=rc(c,"w"))throw new P(e);c.gb.rb(c,{size:0,timestamp:Date.now()})}b&=-131713;d=yc({node:f,path:pc(f),flags:b,seekable:!0,position:0,hb:f.hb,Sd:[],error:!1},d);d.hb.open&&d.hb.open(d);!D.logReadFiles||b&1||(Fc||(Fc=
{}),a in Fc||(Fc[a]=1));return d},Gc=a=>{if(null===a.Bb)throw new P(8);a.lc&&(a.lc=null);try{a.hb.close&&a.hb.close(a)}catch(b){throw b;}finally{kc[a.Bb]=null}a.Bb=null},Hc=(a,b,c)=>{if(null===a.Bb)throw new P(8);if(!a.seekable||!a.hb.Eb)throw new P(70);if(0!=c&&1!=c&&2!=c)throw new P(28);a.position=a.hb.Eb(a,b,c);a.Sd=[]},Ic=(a,b,c,d,e,f)=>{if(0>d||0>e)throw new P(28);if(null===a.Bb)throw new P(8);if(0===(a.flags&2097155))throw new P(8);if(16384===(a.node.mode&61440))throw new P(31);if(!a.hb.write)throw new P(28);
a.seekable&&a.flags&1024&&Hc(a,0,2);var h="undefined"!=typeof e;if(!h)e=a.position;else if(!a.seekable)throw new P(70);b=a.hb.write(a,b,c,d,e,f);h||(a.position+=b);return b},gb=()=>{P||(P=function(a,b){this.node=b;this.Fd=function(c){this.nb=c};this.Fd(a);this.message="FS error"},P.prototype=Error(),P.prototype.constructor=P,[44].forEach(a=>{ec[a]=new P(a);ec[a].stack="<generic error, no stack>"}))},fb,Jc=(a,b)=>{var c=0;a&&(c|=365);b&&(c|=146);return c},Kc=(a,b)=>{a="string"==typeof a?a:pc(a);for(b=
b.split("/").reverse();b.length;){var c=b.pop();if(c){var d=Rb(a+"/"+c);try{R(d,16895,0)}catch(e){}a=d}}return d},Lc=(a,b,c,d)=>{a=Rb(("string"==typeof a?a:pc(a))+"/"+b);c=Jc(c,d);return R(a,(void 0!==c?c:438)&4095|32768,0)},Mc=(a,b,c,d,e,f)=>{var h=b;a&&(a="string"==typeof a?a:pc(a),h=b?Rb(a+"/"+b):a);a=Jc(d,e);h=R(h,(void 0!==a?a:438)&4095|32768,0);if(c){if("string"==typeof c){b=Array(c.length);d=0;for(e=c.length;d<e;++d)b[d]=c.charCodeAt(d);c=b}Ec(h,a|146);b=jb(h,577);Ic(b,c,0,c.length,0,f);Gc(b);
Ec(h,a)}return h},hb=(a,b,c,d)=>{a=Rb(("string"==typeof a?a:pc(a))+"/"+b);b=Jc(!!c,!!d);hb.Hc||(hb.Hc=64);var e=hb.Hc++<<8|0;Yb(e,{open:f=>{f.seekable=!1},close:()=>{d&&d.buffer&&d.buffer.length&&d(10)},read:(f,h,m,l)=>{for(var r=0,n=0;n<l;n++){try{var p=c()}catch(v){throw new P(29);}if(void 0===p&&0===r)throw new P(6);if(null===p||void 0===p)break;r++;h[m+n]=p}r&&(f.node.timestamp=Date.now());return r},write:(f,h,m,l)=>{for(var r=0;r<l;r++)try{d(h[m+r])}catch(n){throw new P(29);}l&&(f.node.timestamp=
Date.now());return r}});return Ac(a,b,e)},Nc=a=>{if(!(a.sd||a.td||a.link||a.fb)){if("undefined"!=typeof XMLHttpRequest)throw 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(Aa)try{a.fb=$b(Aa(a.url),!0),a.kb=a.fb.length}catch(b){throw new P(29);}else throw Error("Cannot load without read() or XMLHttpRequest.");}},Oc=(a,b,c,d,e)=>{function f(){this.oc=
!1;this.Xb=[]}f.prototype.get=function(n){if(!(n>this.length-1||0>n)){var p=n%this.Bc;return this.Zb(n/this.Bc|0)[p]}};f.prototype.Ed=function(n){this.Zb=n};f.prototype.zc=function(){var n=new XMLHttpRequest;n.open("HEAD",c,!1);n.send(null);if(!(200<=n.status&&300>n.status||304===n.status))throw Error("Couldn't load "+c+". Status: "+n.status);var p=Number(n.getResponseHeader("Content-length")),v,k=(v=n.getResponseHeader("Accept-Ranges"))&&"bytes"===v;n=(v=n.getResponseHeader("Content-Encoding"))&&
"gzip"===v;var u=1048576;k||(u=p);var w=this;w.Ed(A=>{var H=A*u,I=(A+1)*u-1;I=Math.min(I,p-1);if("undefined"==typeof w.Xb[A]){var x=w.Xb;if(H>I)throw Error("invalid range ("+H+", "+I+") or no bytes requested!");if(I>p-1)throw Error("only "+p+" bytes available! programmer error!");var C=new XMLHttpRequest;C.open("GET",c,!1);p!==u&&C.setRequestHeader("Range","bytes="+H+"-"+I);C.responseType="arraybuffer";C.overrideMimeType&&C.overrideMimeType("text/plain; charset=x-user-defined");C.send(null);if(!(200<=
C.status&&300>C.status||304===C.status))throw Error("Couldn't load "+c+". Status: "+C.status);H=void 0!==C.response?new Uint8Array(C.response||[]):$b(C.responseText||"",!0);x[A]=H}if("undefined"==typeof w.Xb[A])throw Error("doXHR failed!");return w.Xb[A]});if(n||!p)u=p=1,u=p=this.Zb(0).length,Da("LazyFiles on gzip forces download of the whole file when length is accessed");this.Sc=p;this.Rc=u;this.oc=!0};if("undefined"!=typeof XMLHttpRequest){if(!wa)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";
var h=new f;Object.defineProperties(h,{length:{get:function(){this.oc||this.zc();return this.Sc}},Bc:{get:function(){this.oc||this.zc();return this.Rc}}});var m=void 0}else m=c,h=void 0;var l=Lc(a,b,d,e);h?l.fb=h:m&&(l.fb=null,l.url=m);Object.defineProperties(l,{kb:{get:function(){return this.fb.length}}});var r={};Object.keys(l.hb).forEach(n=>{var p=l.hb[n];r[n]=function(){Nc(l);return p.apply(null,arguments)}});r.read=(n,p,v,k,u)=>{Nc(l);n=n.node.fb;if(u>=n.length)return 0;k=Math.min(n.length-u,
k);if(n.slice)for(var w=0;w<k;w++)p[v+w]=n[u+w];else for(w=0;w<k;w++)p[v+w]=n.get(u+w);return k};l.hb=r;return l},Qc=(a,b,c,d,e,f,h,m,l,r)=>{function n(k){function u(w){r&&r();m||Mc(a,b,w,d,e,l);f&&f();rb(v)}Pc.Yd(k,p,u,()=>{h&&h();rb(v)})||u(k)}var p=b?Vb(Rb(a+"/"+b)):a,v="cp "+p;qb(v);"string"==typeof c?hc(c,k=>n(k),h):n(c)},S={},xc,Fc;
function Rc(a,b,c){if("/"===b[0])return b;if(-100===a)a="/";else{a=kc[a];if(!a)throw new P(8);a=a.path}if(0==b.length){if(!c)throw new P(44);return a}return Rb(a+"/"+b)}
function Sc(a,b,c){try{var d=a(b)}catch(e){if(e&&e.node&&Rb(b)!==Rb(pc(e.node)))return-54;throw e;}z()[c>>2]=d.ed;z()[c+4>>2]=0;z()[c+8>>2]=d.mc;z()[c+12>>2]=d.mode;z()[c+16>>2]=d.xd;z()[c+20>>2]=d.uid;z()[c+24>>2]=d.nd;z()[c+28>>2]=d.Rb;z()[c+32>>2]=0;wb=[d.size>>>0,(L=d.size,1<=+Math.abs(L)?0<L?(Math.min(+Math.floor(L/4294967296),4294967295)|0)>>>0:~~+Math.ceil((L-+(~~L>>>0))/4294967296)>>>0:0)];z()[c+40>>2]=wb[0];z()[c+44>>2]=wb[1];z()[c+48>>2]=4096;z()[c+52>>2]=d.Yc;z()[c+56>>2]=d.Wc.getTime()/
1E3|0;z()[c+60>>2]=0;z()[c+64>>2]=d.wd.getTime()/1E3|0;z()[c+68>>2]=0;z()[c+72>>2]=d.bd.getTime()/1E3|0;z()[c+76>>2]=0;wb=[d.mc>>>0,(L=d.mc,1<=+Math.abs(L)?0<L?(Math.min(+Math.floor(L/4294967296),4294967295)|0)>>>0:~~+Math.ceil((L-+(~~L>>>0))/4294967296)>>>0:0)];z()[c+80>>2]=wb[0];z()[c+84>>2]=wb[1];return 0}var Tc=void 0;function Uc(){Tc+=4;return z()[Tc-4>>2]}function Vc(a){a=kc[a];if(!a)throw new P(8);return a}
function Wc(a,b,c){if(F)return O(3,1,a,b,c);Tc=c;try{var d=Vc(a);switch(b){case 0:var e=Uc();return 0>e?-28:jb(d.path,d.flags,0,e).Bb;case 1:case 2:return 0;case 3:return d.flags;case 4:return e=Uc(),d.flags|=e,0;case 5:return e=Uc(),ea()[e+0>>1]=2,0;case 6:case 7:return 0;case 16:case 8:return-28;case 9:return-1;default:return-28}}catch(f){if("undefined"==typeof S||!(f instanceof P))throw f;return-f.nb}}
function Xc(a,b){if(F)return O(4,1,a,b);try{var c=Vc(a);return Sc(Cc,c.path,b)}catch(d){if("undefined"==typeof S||!(d instanceof P))throw d;return-d.nb}}
function Yc(a,b,c){if(F)return O(5,1,a,b,c);Tc=c;try{var d=Vc(a);switch(b){case 21509:case 21505:return d.mb?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return d.mb?0:-59;case 21519:if(!d.mb)return-59;var e=Uc();return z()[e>>2]=0;case 21520:return d.mb?-28:-59;case 21531:a=e=Uc();if(!d.hb.rd)throw new P(59);return d.hb.rd(d,b,a);case 21523:return d.mb?0:-59;case 21524:return d.mb?0:-59;default:Ha("bad ioctl syscall "+b)}}catch(f){if("undefined"==typeof S||!(f instanceof
P))throw f;return-f.nb}}function Zc(a,b,c,d){if(F)return O(7,1,a,b,c,d);try{b=G(b);var e=d&256;b=Rc(a,b,d&4096);return Sc(e?Dc:Cc,b,c)}catch(f){if("undefined"==typeof S||!(f instanceof P))throw f;return-f.nb}}function $c(a,b,c,d){if(F)return O(8,1,a,b,c,d);Tc=d;try{b=G(b);b=Rc(a,b);var e=d?Uc():0;return jb(b,c,e).Bb}catch(f){if("undefined"==typeof S||!(f instanceof P))throw f;return-f.nb}}
function ad(a,b){if(F)return O(9,1,a,b);try{return a=G(a),Sc(Cc,a,b)}catch(c){if("undefined"==typeof S||!(c instanceof P))throw c;return-c.nb}}var bd={};function cd(a){for(;a.length;){var b=a.pop();a.pop()(b)}}function dd(a){return this.fromWireType(B()[a>>2])}var ed={},fd={},gd={};function hd(a){if(void 0===a)return"_unknown";a=a.replace(/[^a-zA-Z0-9_]/g,"$");var b=a.charCodeAt(0);return 48<=b&&57>=b?"_"+a:a}function jd(a,b){a=hd(a);return function(){null;return b.apply(this,arguments)}}
function kd(a){var b=Error,c=jd(a,function(d){this.name=a;this.message=d;d=Error(d).stack;void 0!==d&&(this.stack=this.toString()+"\n"+d.replace(/^Error(:[^\n]*)?\n/,""))});c.prototype=Object.create(b.prototype);c.prototype.constructor=c;c.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message};return c}var ld=void 0;function md(a){throw new ld(a);}
function nd(a,b,c){function d(m){m=c(m);m.length!==a.length&&md("Mismatched type converter count");for(var l=0;l<a.length;++l)od(a[l],m[l])}a.forEach(function(m){gd[m]=b});var e=Array(b.length),f=[],h=0;b.forEach((m,l)=>{fd.hasOwnProperty(m)?e[l]=fd[m]:(f.push(m),ed.hasOwnProperty(m)||(ed[m]=[]),ed[m].push(()=>{e[l]=fd[m];++h;h===f.length&&d(e)}))});0===f.length&&d(e)}
function pd(a){switch(a){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+a);}}var qd=void 0;function T(a){for(var b="";t()[a];)b+=qd[t()[a++]];return b}var rd=void 0;function U(a){throw new rd(a);}
function od(a,b,c={}){if(!("argPackAdvance"in b))throw new TypeError("registerType registeredInstance requires argPackAdvance");var d=b.name;a||U('type "'+d+'" must have a positive integer typeid pointer');if(fd.hasOwnProperty(a)){if(c.od)return;U("Cannot register type '"+d+"' twice")}fd[a]=b;delete gd[a];ed.hasOwnProperty(a)&&(b=ed[a],delete ed[a],b.forEach(e=>e()))}function sd(a){U(a.eb.lb.ib.name+" instance already deleted")}var td=!1;function ud(){}
function vd(a){--a.count.value;0===a.count.value&&(a.qb?a.sb.Ab(a.qb):a.lb.ib.Ab(a.jb))}function wd(a,b,c){if(b===c)return a;if(void 0===c.tb)return null;a=wd(a,b,c.tb);return null===a?null:c.fd(a)}var xd={},yd=[];function zd(){for(;yd.length;){var a=yd.pop();a.eb.Ib=!1;a["delete"]()}}var Ad=void 0,Bd={};function Cd(a,b){for(void 0===b&&U("ptr should not be undefined");a.tb;)b=a.Vb(b),a=a.tb;return Bd[b]}
function Dd(a,b){b.lb&&b.jb||md("makeClassHandle requires ptr and ptrType");!!b.sb!==!!b.qb&&md("Both smartPtrType and smartPtr must be specified");b.count={value:1};return Ed(Object.create(a,{eb:{value:b}}))}function Ed(a){if("undefined"===typeof FinalizationRegistry)return Ed=b=>b,a;td=new FinalizationRegistry(b=>{vd(b.eb)});Ed=b=>{var c=b.eb;c.qb&&td.register(b,{eb:c},b);return b};ud=b=>{td.unregister(b)};return Ed(a)}function Fd(){}
function Gd(a,b,c){if(void 0===a[b].pb){var d=a[b];a[b]=function(){a[b].pb.hasOwnProperty(arguments.length)||U("Function '"+c+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+a[b].pb+")!");return a[b].pb[arguments.length].apply(this,arguments)};a[b].pb=[];a[b].pb[d.Wb]=d}}
function Hd(a,b,c){D.hasOwnProperty(a)?((void 0===c||void 0!==D[a].pb&&void 0!==D[a].pb[c])&&U("Cannot register public name '"+a+"' twice"),Gd(D,a,a),D.hasOwnProperty(c)&&U("Cannot register multiple overloads of a function with the same number of arguments ("+c+")!"),D[a].pb[c]=b):(D[a]=b,void 0!==c&&(D[a].$d=c))}function Id(a,b,c,d,e,f,h,m){this.name=a;this.constructor=b;this.Jb=c;this.Ab=d;this.tb=e;this.hd=f;this.Vb=h;this.fd=m;this.zd=[]}
function Jd(a,b,c){for(;b!==c;)b.Vb||U("Expected null or instance of "+c.name+", got an instance of "+b.name),a=b.Vb(a),b=b.tb;return a}function Kd(a,b){if(null===b)return this.nc&&U("null is not a valid "+this.name),0;b.eb||U('Cannot pass "'+Ld(b)+'" as a '+this.name);b.eb.jb||U("Cannot pass deleted object as a pointer of type "+this.name);return Jd(b.eb.jb,b.eb.lb.ib,this.ib)}
function Md(a,b){if(null===b){this.nc&&U("null is not a valid "+this.name);if(this.ac){var c=this.sc();null!==a&&a.push(this.Ab,c);return c}return 0}b.eb||U('Cannot pass "'+Ld(b)+'" as a '+this.name);b.eb.jb||U("Cannot pass deleted object as a pointer of type "+this.name);!this.$b&&b.eb.lb.$b&&U("Cannot convert argument of type "+(b.eb.sb?b.eb.sb.name:b.eb.lb.name)+" to parameter type "+this.name);c=Jd(b.eb.jb,b.eb.lb.ib,this.ib);if(this.ac)switch(void 0===b.eb.qb&&U("Passing raw pointer to smart pointer is illegal"),
this.Kd){case 0:b.eb.sb===this?c=b.eb.qb:U("Cannot convert argument of type "+(b.eb.sb?b.eb.sb.name:b.eb.lb.name)+" to parameter type "+this.name);break;case 1:c=b.eb.qb;break;case 2:if(b.eb.sb===this)c=b.eb.qb;else{var d=b.clone();c=this.Ad(c,W(function(){d["delete"]()}));null!==a&&a.push(this.Ab,c)}break;default:U("Unsupporting sharing policy")}return c}
function Nd(a,b){if(null===b)return this.nc&&U("null is not a valid "+this.name),0;b.eb||U('Cannot pass "'+Ld(b)+'" as a '+this.name);b.eb.jb||U("Cannot pass deleted object as a pointer of type "+this.name);b.eb.lb.$b&&U("Cannot convert argument of type "+b.eb.lb.name+" to parameter type "+this.name);return Jd(b.eb.jb,b.eb.lb.ib,this.ib)}
function Od(a,b,c,d){this.name=a;this.ib=b;this.nc=c;this.$b=d;this.ac=!1;this.Ab=this.Ad=this.sc=this.Lc=this.Kd=this.yd=void 0;void 0!==b.tb?this.toWireType=Md:(this.toWireType=d?Kd:Nd,this.ub=null)}function Pd(a,b,c){D.hasOwnProperty(a)||md("Replacing nonexistant public symbol");void 0!==D[a].pb&&void 0!==c?D[a].pb[c]=b:(D[a]=b,D[a].Wb=c)}
function Qd(a,b){var c=[];return function(){c.length=0;Object.assign(c,arguments);if(a.includes("j")){var d=D["dynCall_"+a];d=c&&c.length?d.apply(null,[b].concat(c)):d.call(null,b)}else d=M(b).apply(null,c);return d}}function Rd(a,b){a=T(a);var c=a.includes("j")?Qd(a,b):M(b);"function"!=typeof c&&U("unknown function pointer with signature "+a+": "+b);return c}var Sd=void 0;function Td(a){a=Ud(a);var b=T(a);Vd(a);return b}
function Wd(a,b){function c(f){e[f]||fd[f]||(gd[f]?gd[f].forEach(c):(d.push(f),e[f]=!0))}var d=[],e={};b.forEach(c);throw new Sd(a+": "+d.map(Td).join([", "]));}function Xd(a,b){for(var c=[],d=0;d<a;d++)c.push(z()[(b>>2)+d]);return c}
function Yd(a,b,c,d,e){var f=b.length;2>f&&U("argTypes array size mismatch! Must at least get return value and 'this' types!");var h=null!==b[1]&&null!==c,m=!1;for(c=1;c<b.length;++c)if(null!==b[c]&&void 0===b[c].ub){m=!0;break}var l="void"!==b[0].name,r=f-2,n=Array(r),p=[],v=[];return function(){arguments.length!==r&&U("function "+a+" called with "+arguments.length+" arguments, expected "+r+" args!");v.length=0;p.length=h?2:1;p[0]=e;if(h){var k=b[1].toWireType(v,this);p[1]=k}for(var u=0;u<r;++u)n[u]=
b[u+2].toWireType(v,arguments[u]),p.push(n[u]);u=d.apply(null,p);if(m)cd(v);else for(var w=h?1:2;w<b.length;w++){var A=1===w?k:n[w-2];null!==b[w].ub&&b[w].ub(A)}k=l?b[0].fromWireType(u):void 0;return k}}var Zd=[],X=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function $d(a){4<a&&0===--X[a].uc&&(X[a]=void 0,Zd.push(a))}
var Y=a=>{a||U("Cannot use deleted val. handle = "+a);return X[a].value},W=a=>{switch(a){case void 0:return 1;case null:return 2;case !0:return 3;case !1:return 4;default:var b=Zd.length?Zd.pop():X.length;X[b]={uc:1,value:a};return b}};function Ld(a){if(null===a)return"null";var b=typeof a;return"object"===b||"array"===b||"function"===b?a.toString():""+a}
function ae(a,b){switch(b){case 2:return function(c){var d=this.fromWireType;g.buffer!=q&&ba(g.buffer);return d.call(this,Za[c>>2])};case 3:return function(c){return this.fromWireType(ka()[c>>3])};default:throw new TypeError("Unknown float type: "+a);}}
function be(a,b,c){switch(b){case 0:return c?function(d){return aa()[d]}:function(d){return t()[d]};case 1:return c?function(d){return ea()[d>>1]}:function(d){return y()[d>>1]};case 2:return c?function(d){return z()[d>>2]}:function(d){return B()[d>>2]};default:throw new TypeError("Unknown integer type: "+a);}}function ce(a,b){var c=fd[a];void 0===c&&U(b+" has unknown type "+Td(a));return c}function de(a,b){for(var c=Array(a),d=0;d<a;++d)c[d]=ce(z()[(b>>2)+d],"parameter "+d);return c}var ee={};
function fe(a){var b=ee[a];return void 0===b?T(a):b}var ge=[];
function he(){function a(b){b.$$$embind_global$$$=b;var c="object"==typeof $$$embind_global$$$&&b.$$$embind_global$$$==b;c||delete b.$$$embind_global$$$;return c}if("object"==typeof globalThis)return globalThis;if("object"==typeof $$$embind_global$$$)return $$$embind_global$$$;"object"==typeof global&&a(global)?$$$embind_global$$$=global:"object"==typeof self&&a(self)&&($$$embind_global$$$=self);if("object"==typeof $$$embind_global$$$)return $$$embind_global$$$;throw Error("unable to get global object.");
}function ie(a){var b=ge.length;ge.push(a);return b}var je=[];function ke(a){var b=Array(a+1);return function(c,d,e){b[0]=c;for(var f=0;f<a;++f){var h=ce(z()[(d>>2)+f],"parameter "+f);b[f+1]=h.readValueFromPointer(e);e+=h.argPackAdvance}c=new (c.bind.apply(c,b));return W(c)}}var le={};
function me(a,b,c,d,e,f,h,m){if(F)return O(10,1,a,b,c,d,e,f,h,m);try{var l=kc[e];if(!l)return-8;if(0!==(c&2)&&0===(d&2)&&2!==(l.flags&2097155))throw new P(2);if(1===(l.flags&2097155))throw new P(2);if(!l.hb.cc)throw new P(43);var r=l.hb.cc(l,a,b,f,c,d);var n=r.jb;z()[h>>2]=r.Vc;return n}catch(p){if("undefined"==typeof S||!(p instanceof P))throw p;return-p.nb}}
function ne(a,b,c,d,e,f){if(F)return O(11,1,a,b,c,d,e,f);try{var h=kc[e];if(h&&c&2){var m=t().slice(a,a+b);h&&h.hb.dc&&h.hb.dc(h,m,f,b,d)}}catch(l){if("undefined"==typeof S||!(l instanceof P))throw l;return-l.nb}}
function oe(a,b,c){function d(r){return(r=r.toTimeString().match(/\(([A-Za-z ]+)\)$/))?r[1]:"GMT"}if(F)return O(12,1,a,b,c);var e=(new Date).getFullYear(),f=new Date(e,0,1),h=new Date(e,6,1);e=f.getTimezoneOffset();var m=h.getTimezoneOffset(),l=Math.max(e,m);z()[a>>2]=60*l;z()[b>>2]=Number(e!=m);a=d(f);b=d(h);a=Va(a);b=Va(b);m<e?(z()[c>>2]=a,z()[c+4>>2]=b):(z()[c>>2]=b,z()[c+4>>2]=a)}function pe(a,b,c){pe.$c||(pe.$c=!0,oe(a,b,c))}var qe=[],re;
re=F?()=>performance.now()-D.__performance_now_clock_drift:()=>performance.now();function O(a,b){var c=arguments.length-2,d=arguments;return yb(function(){for(var e=se(8*c),f=e>>3,h=0;h<c;h++){var m=d[2+h];ka()[f+h]=m}return te(a,c,e,b)})}var ue=[],ve=[];function Z(a,b){B()[a>>2]=b;B()[a+4>>2]=b/4294967296|0}
function we(a,b){try{var c=indexedDB.open("emscripten_filesystem",1)}catch(d){b(d);return}c.onupgradeneeded=d=>{d=d.target.result;d.objectStoreNames.contains("FILES")&&d.deleteObjectStore("FILES");d.createObjectStore("FILES")};c.onsuccess=d=>a(d.target.result);c.onerror=d=>b(d)}var xe;
function ye(a,b,c,d,e){function f(C){var V=0,J=0;C&&(J=x.response?x.response.byteLength:0,V=Xa(J),t().set(new Uint8Array(x.response),V));B()[a+12>>2]=V;Z(a+16,J)}var h=B()[a+8>>2];if(h){var m=G(h),l=a+112,r=G(l);r||(r="GET");B();var n=B()[l+52>>2],p=B()[l+56>>2],v=!!B()[l+60>>2];B();var k=B()[l+68>>2],u=B()[l+72>>2],w=B()[l+76>>2],A=B()[l+80>>2];h=B()[l+84>>2];l=B()[l+88>>2];var H=!!(n&1),I=!!(n&2);n=!!(n&64);k=k?G(k):void 0;u=u?G(u):void 0;var x=new XMLHttpRequest;x.withCredentials=v;x.open(r,m,
!n,k,u);n||(x.timeout=p);x.de=m;x.responseType="arraybuffer";A&&(m=G(A),x.overrideMimeType(m));if(w)for(;;){r=B()[w>>2];if(!r)break;m=B()[w+4>>2];if(!m)break;w+=8;r=G(r);m=G(m);x.setRequestHeader(r,m)}ve.push(x);w=ve.length;B()[a+0>>2]=w;h=h&&l?t().slice(h,h+l):null;x.onload=C=>{f(H&&!I);var V=x.response?x.response.byteLength:0;Z(a+24,0);V&&Z(a+32,V);y()[a+40>>1]=x.readyState;y()[a+42>>1]=x.status;x.statusText&&K(x.statusText,a+44,64);200<=x.status&&300>x.status?b&&b(a,x,C):c&&c(a,x,C)};x.onerror=
C=>{f(H);var V=x.status;Z(a+24,0);Z(a+32,x.response?x.response.byteLength:0);y()[a+40>>1]=x.readyState;y()[a+42>>1]=V;c&&c(a,x,C)};x.ontimeout=C=>{c&&c(a,x,C)};x.onprogress=C=>{var V=H&&I&&x.response?x.response.byteLength:0,J=0;H&&I&&(J=Xa(V),t().set(new Uint8Array(x.response),J));B()[a+12>>2]=J;Z(a+16,V);Z(a+24,C.loaded-V);Z(a+32,C.total);y()[a+40>>1]=x.readyState;3<=x.readyState&&0===x.status&&0<C.loaded&&(x.status=200);y()[a+42>>1]=x.status;x.statusText&&K(x.statusText,a+44,64);d&&d(a,x,C);J&&
Vd(J)};x.onreadystatechange=C=>{y()[a+40>>1]=x.readyState;2<=x.readyState&&(y()[a+42>>1]=x.status);e&&e(a,x,C)};try{x.send(h)}catch(C){c&&c(a,x,C)}}else c(a,0,"no url specified!")}function ze(a,b){if(!Ja)if(b)a();else try{a()}catch(c){Eb(c)}}
function Ae(a,b,c,d){var e=xe;if(e){var f=a+112;(f=B()[f+64>>2])||(f=B()[a+8>>2]);var h=G(f);try{var m=e.transaction(["FILES"],"readwrite").objectStore("FILES").put(b,h);m.onsuccess=()=>{y()[a+40>>1]=4;y()[a+42>>1]=200;K("OK",a+44,64);c(a,0,h)};m.onerror=l=>{y()[a+40>>1]=4;y()[a+42>>1]=413;K("Payload Too Large",a+44,64);d(a,0,l)}}catch(l){d(a,0,l)}}else d(a,0,"IndexedDB not available!")}
function Be(a,b,c){var d=xe;if(d){var e=a+112;(e=B()[e+64>>2])||(e=B()[a+8>>2]);e=G(e);try{var f=d.transaction(["FILES"],"readonly").objectStore("FILES").get(e);f.onsuccess=h=>{if(h.target.result){h=h.target.result;var m=h.byteLength||h.length,l=Xa(m);t().set(new Uint8Array(h),l);B()[a+12>>2]=l;Z(a+16,m);Z(a+24,0);Z(a+32,m);y()[a+40>>1]=4;y()[a+42>>1]=200;K("OK",a+44,64);b(a,0,h)}else y()[a+40>>1]=4,y()[a+42>>1]=404,K("Not Found",a+44,64),c(a,0,"no data")};f.onerror=h=>{y()[a+40>>1]=4;y()[a+42>>1]=
404;K("Not Found",a+44,64);c(a,0,h)}}catch(h){c(a,0,h)}}else c(a,0,"IndexedDB not available!")}
function Ce(a,b,c){var d=xe;if(d){var e=a+112;(e=B()[e+64>>2])||(e=B()[a+8>>2]);e=G(e);try{var f=d.transaction(["FILES"],"readwrite").objectStore("FILES").delete(e);f.onsuccess=h=>{h=h.target.result;B()[a+12>>2]=0;Z(a+16,0);Z(a+24,0);Z(a+32,0);y()[a+40>>1]=4;y()[a+42>>1]=200;K("OK",a+44,64);b(a,0,h)};f.onerror=h=>{y()[a+40>>1]=4;y()[a+42>>1]=404;K("Not Found",a+44,64);c(a,0,h)}}catch(h){c(a,0,h)}}else c(a,0,"IndexedDB not available!")}var De={};
function Ee(){if(!Fe){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:ta||"./this.program"},b;for(b in De)void 0===De[b]?delete a[b]:a[b]=De[b];var c=[];for(b in a)c.push(b+"="+a[b]);Fe=c}return Fe}var Fe;
function Ge(a,b){if(F)return O(13,1,a,b);var c=0;Ee().forEach(function(d,e){var f=b+c;e=z()[a+4*e>>2]=f;for(f=0;f<d.length;++f)aa()[e++>>0]=d.charCodeAt(f);aa()[e>>0]=0;c+=d.length+1});return 0}function He(a,b){if(F)return O(14,1,a,b);var c=Ee();z()[a>>2]=c.length;var d=0;c.forEach(function(e){d+=e.length+1});z()[b>>2]=d;return 0}function Ie(a){if(F)return O(15,1,a);try{var b=Vc(a);Gc(b);return 0}catch(c){if("undefined"==typeof S||!(c instanceof P))throw c;return c.nb}}
function Je(a,b,c,d){if(F)return O(16,1,a,b,c,d);try{a:{for(var e=Vc(a),f=a=0;f<c;f++){var h=z()[b+8*f>>2],m=z()[b+(8*f+4)>>2],l=e,r=aa(),n=h,p=m,v=void 0;if(0>p||0>v)throw new P(28);if(null===l.Bb)throw new P(8);if(1===(l.flags&2097155))throw new P(8);if(16384===(l.node.mode&61440))throw new P(31);if(!l.hb.read)throw new P(28);var k="undefined"!=typeof v;if(!k)v=l.position;else if(!l.seekable)throw new P(70);var u=l.hb.read(l,r,n,p,v);k||(l.position+=u);var w=u;if(0>w){var A=-1;break a}a+=w;if(w<
m)break}A=a}z()[d>>2]=A;return 0}catch(H){if("undefined"==typeof S||!(H instanceof P))throw H;return H.nb}}
function Ke(a,b,c,d,e){if(F)return O(17,1,a,b,c,d,e);try{var f=Vc(a);a=4294967296*c+(b>>>0);if(-9007199254740992>=a||9007199254740992<=a)return-61;Hc(f,a,d);wb=[f.position>>>0,(L=f.position,1<=+Math.abs(L)?0<L?(Math.min(+Math.floor(L/4294967296),4294967295)|0)>>>0:~~+Math.ceil((L-+(~~L>>>0))/4294967296)>>>0:0)];z()[e>>2]=wb[0];z()[e+4>>2]=wb[1];f.lc&&0===a&&0===d&&(f.lc=null);return 0}catch(h){if("undefined"==typeof S||!(h instanceof P))throw h;return h.nb}}
function Le(a,b,c,d){if(F)return O(18,1,a,b,c,d);try{a:{for(var e=Vc(a),f=a=0;f<c;f++){var h=z()[b+8*f>>2],m=z()[b+(8*f+4)>>2],l=Ic(e,aa(),h,m,void 0);if(0>l){var r=-1;break a}a+=l}r=a}z()[d>>2]=r;return 0}catch(n){if("undefined"==typeof S||!(n instanceof P))throw n;return n.nb}}function Me(a,b){Me.Kc||(Me.Kc=Ub());for(var c=0;c<b;c++)aa()[a+c>>0]=Me.Kc();return 0}function Ne(a){return 0===a%4&&(0!==a%10