@microblink/blinkid-in-browser-sdk
Version:
A simple ID scanning library for WebAssembly-enabled browsers.
127 lines (123 loc) • 72.4 kB
JavaScript
var BlinkIDWasmSDK = (function() {
var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;
return (
function(BlinkIDWasmSDK) {
BlinkIDWasmSDK = BlinkIDWasmSDK || {};
var g;g||(g=typeof BlinkIDWasmSDK !== 'undefined' ? BlinkIDWasmSDK : {});var aa,ba;g.ready=new Promise(function(a,b){aa=a;ba=b});g.cc||(g.cc=0);g.cc++;
(function(a){function b(m,p,n){var q=new XMLHttpRequest;q.open("GET",m,!0);q.responseType="arraybuffer";q.onprogress=function(v){var k=p;v.total&&(k=v.total);if(v.loaded){q.Gc?g.zb[m].loaded=v.loaded:(q.Gc=!0,g.zb||(g.zb={}),g.zb[m]={loaded:v.loaded,total:k});var u=k=v=0,x;for(x in g.zb){var y=g.zb[x];v+=y.total;k+=y.loaded;u++}v=Math.ceil(v*g.cc/u);g.setStatus&&g.setStatus("Downloading data... ("+k+"/"+v+")")}else!g.zb&&g.setStatus&&g.setStatus("Downloading data...")};q.onerror=function(){throw Error("NetworkError for: "+
m);};q.onload=function(){if(200==q.status||304==q.status||206==q.status||0==q.status&&q.response)n(q.response);else throw Error(q.statusText+" : "+q.responseURL);};q.send(null)}function c(m){console.error("package error:",m)}function d(){function m(v,k,u){this.start=v;this.end=k;this.audio=u}function p(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);m.prototype.Kc=v;v=a.files;for(var k=
0;k<v.length;++k)m.prototype.mc[v[k].filename].onload();g.removeRunDependency("datafile_../../resources/basic/BlinkIDWasmSDK.data")}g.FS_createPath("/","microblink",!0,!0);m.prototype={mc:{},open:function(v,k){this.name=k;this.mc[k]=this;g.addRunDependency("fp "+this.name)},send:function(){},onload:function(){this.finish(this.Kc.subarray(this.start,this.end))},finish:function(v){g.FS_createDataFile(this.name,null,v,!0,!0,!0);g.removeRunDependency("fp "+this.name);this.mc[this.name]=null}};for(var n=
a.files,q=0;q<n.length;++q)(new m(n[q].start,n[q].end,n[q].audio)).open("GET",n[q].filename);g.addRunDependency("datafile_../../resources/basic/BlinkIDWasmSDK.data");g.zc||(g.zc={});g.zc["../../resources/basic/BlinkIDWasmSDK.data"]={Cd:!1};l?(p(l),l=null):h=p}if("object"===typeof window)window.encodeURIComponent(window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/");else if("undefined"!==typeof location)encodeURIComponent(location.pathname.toString().substring(0,
location.pathname.toString().lastIndexOf("/"))+"/");else throw"using preloaded data can only be done on a web page or in a web worker";"function"!==typeof g.locateFilePackage||g.locateFile||(g.locateFile=g.locateFilePackage,r("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)"));var e=g.locateFile?g.locateFile("BlinkIDWasmSDK.data",""):"BlinkIDWasmSDK.data",f=a.remote_package_size,h=null,l=g.getPreloadedPackage?g.getPreloadedPackage(e,
f):null;l||b(e,f,function(m){h?(h(m),h=null):l=m},c);g.calledRun?d():(g.preRun||(g.preRun=[]),g.preRun.push(d))})({files:[{filename:"/microblink/ccc_lookup_table.zzip",start:0,end:20469,audio:0},{filename:"/microblink/BlinkID_MoireClassifier_malaysia_6.0.0.strop",start:20469,end:28023,audio:0},{filename:"/microblink/BlinkID_RotationClassifier_general_6.1.0.strop",start:28023,end:55929,audio:0},{filename:"/microblink/face_detector_model.zzip",start:55929,end:152787,audio:0},{filename:"/microblink/BlinkID_Segmentator_general_6.12.0.strop",
start:152787,end:1935691,audio:0},{filename:"/microblink/BlinkID_MonochromeClassifier_general_6.0.0.strop",start:1935691,end:1943181,audio:0},{filename:"/microblink/BlinkID_BlurClassifier_general_6.2.0.strop",start:1943181,end:1947599,audio:0},{filename:"/microblink/BlinkID_Detector_general_6.6.0.strop",start:1947599,end:2237727,audio:0},{filename:"/microblink/BlinkID_Classifier_general_6.12.0.strop",start:2237727,end:2498209,audio:0},{filename:"/microblink/BlinkID_Ocr_general_6.11.0.strop",start:2498209,
end:2805597,audio:0},{filename:"/microblink/BlinkID_Ocr_mrz_6.4.0.strop",start:2805597,end:3176733,audio:0},{filename:"/microblink/BlinkID_Analyzer_general_6.5.0.strop",start:3176733,end:3194783,audio:0}],remote_package_size:3194783,package_uuid:"4dcb7861-688c-44b1-8d9e-205d9f8db9ca"});var crypto={getRandomValues:function(a){for(var b=0;b<a.length;b++)a[b]=256*Math.random()|0}},ca={},da;for(da in g)g.hasOwnProperty(da)&&(ca[da]=g[da]);var ea="./this.program";function fa(a,b){throw b;}
var ha=!1,ia=!1;ha="object"===typeof window;ia="function"===typeof importScripts;var ja="",ka,ma;
if(ha||ia)ia?ja=self.location.href:"undefined"!==typeof document&&document.currentScript&&(ja=document.currentScript.src),_scriptDir&&(ja=_scriptDir),ja=0!==ja.indexOf("blob:")?ja.substr(0,ja.lastIndexOf("/")+1):"",ka=function(a){var b=new XMLHttpRequest;b.open("GET",a,!1);b.send(null);return b.responseText},ia&&(ma=function(a){var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)});
var na=g.print||console.log.bind(console),r=g.printErr||console.warn.bind(console);for(da in ca)ca.hasOwnProperty(da)&&(g[da]=ca[da]);ca=null;g.thisProgram&&(ea=g.thisProgram);g.quit&&(fa=g.quit);var oa=0,pa;g.wasmBinary&&(pa=g.wasmBinary);var noExitRuntime;g.noExitRuntime&&(noExitRuntime=g.noExitRuntime);"object"!==typeof WebAssembly&&t("no native wasm support detected");var qa,ra=!1,sa="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0;
function ta(a,b,c){var d=b+c;for(c=b;a[c]&&!(c>=d);)++c;if(16<c-b&&a.subarray&&sa)return sa.decode(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 z(a,b){return a?ta(A,a,b):""}
function C(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 l=a.charCodeAt(++f);h=65536+((h&1023)<<10)|l&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 ua(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 va="undefined"!==typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function wa(a,b){var c=a>>1;for(var d=c+b/2;!(c>=d)&&D[c];)++c;c<<=1;if(32<c-a&&va)return va.decode(A.subarray(a,c));c="";for(d=0;!(d>=b/2);++d){var e=xa[a+2*d>>1];if(0==e)break;c+=String.fromCharCode(e)}return c}
function ya(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)xa[b>>1]=a.charCodeAt(e),b+=2;xa[b>>1]=0;return b-d}function za(a){return 2*a.length}function Aa(a,b){for(var c=0,d="";!(c>=b/4);){var e=E[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 Ba(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}E[b>>2]=f;b+=4;if(b+4>c)break}E[b>>2]=0;return b-d}function Ca(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 Da(a){var b=ua(a)+1,c=Ea(b);c&&C(a,F,c,b);return c}var Fa,F,A,xa,D,E,H,Ga,Ha;
function Ia(){var a=qa.buffer;Fa=a;g.HEAP8=F=new Int8Array(a);g.HEAP16=xa=new Int16Array(a);g.HEAP32=E=new Int32Array(a);g.HEAPU8=A=new Uint8Array(a);g.HEAPU16=D=new Uint16Array(a);g.HEAPU32=H=new Uint32Array(a);g.HEAPF32=Ga=new Float32Array(a);g.HEAPF64=Ha=new Float64Array(a)}var I,Ja=[],Ka=[],La=[],Ma=[];Ka.push({Qc:function(){Na()}});function Oa(){var a=g.preRun.shift();Ja.unshift(a)}var Pa=0,Qa=null,Ra=null;function Sa(){Pa++;g.monitorRunDependencies&&g.monitorRunDependencies(Pa)}
function Ta(){Pa--;g.monitorRunDependencies&&g.monitorRunDependencies(Pa);if(0==Pa&&(null!==Qa&&(clearInterval(Qa),Qa=null),Ra)){var a=Ra;Ra=null;a()}}g.preloadedImages={};g.preloadedAudios={};function t(a){if(g.onAbort)g.onAbort(a);a+="";r(a);ra=!0;a=new WebAssembly.RuntimeError("abort("+a+"). Build with -s ASSERTIONS=1 for more info.");ba(a);throw a;}
function Ua(){var a=Va;return String.prototype.startsWith?a.startsWith("data:application/octet-stream;base64,"):0===a.indexOf("data:application/octet-stream;base64,")}var Va="BlinkIDWasmSDK.wasm";if(!Ua()){var Wa=Va;Va=g.locateFile?g.locateFile(Wa,ja):ja+Wa}function Xa(){var a=Va;try{if(a==Va&&pa)return new Uint8Array(pa);if(ma)return ma(a);throw"both async and sync fetching of the wasm failed";}catch(b){t(b)}}
function Ya(){return pa||!ha&&!ia||"function"!==typeof fetch?Promise.resolve().then(function(){return Xa()}):fetch(Va,{credentials:"same-origin"}).then(function(a){if(!a.ok)throw"failed to load wasm binary file at '"+Va+"'";return a.arrayBuffer()}).catch(function(){return Xa()})}
var K,Za,$a={1804:function(a,b){a=z(a);b=z(b);throw Error(a+b);},1917:function(a,b,c,d){a=z(a);b=z(b);c=z(c);d=z(d);throw Error(a+b+c+d);},2138:function(a){a=z(a);throw Error("Failed to reconfigure RecognizerRunner due to following error: "+a);},2303:function(a,b){a=z(a);b=z(b);console.log(a+b)},2519:function(a){throw Error(z(a));},8127:function(){throw Error("Unable to perform that operation while recognizer is in use!");}};
function ab(a){for(;0<a.length;){var b=a.shift();if("function"==typeof b)b(g);else{var c=b.Qc;"number"===typeof c?void 0===b.bc?I.get(c)():I.get(c)(b.bc):c(void 0===b.bc?null:b.bc)}}}var bb;bb=function(){return performance.now()};function cb(a,b){if(0===a)a=Date.now();else if(1===a||4===a)a=bb();else return-1;E[b>>2]=a/1E3|0;E[b+4>>2]=a%1E3*1E6|0;return 0}
function db(a){this.eb=a-16;this.rd=function(b){E[this.eb+8>>2]=b};this.od=function(b){E[this.eb+0>>2]=b};this.pd=function(){E[this.eb+4>>2]=0};this.nd=function(){F[this.eb+12>>0]=0};this.qd=function(){F[this.eb+13>>0]=0};this.wc=function(b,c){this.rd(b);this.od(c);this.pd();this.nd();this.qd()}}var eb=0;
function fb(){function a(h){return(h=h.toTimeString().match(/\(([A-Za-z ]+)\)$/))?h[1]:"GMT"}if(!gb){gb=!0;var b=(new Date).getFullYear(),c=new Date(b,0,1),d=new Date(b,6,1);b=c.getTimezoneOffset();var e=d.getTimezoneOffset(),f=Math.max(b,e);E[hb()>>2]=60*f;E[ib()>>2]=Number(b!=e);c=a(c);d=a(d);c=Da(c);d=Da(d);e<b?(E[jb()>>2]=c,E[jb()+4>>2]=d):(E[jb()>>2]=d,E[jb()+4>>2]=c)}}var gb;
function kb(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 lb(a){var b="/"===a.charAt(0),c="/"===a.substr(-1);(a=kb(a.split("/").filter(function(d){return!!d}),!b).join("/"))||b||(a=".");a&&c&&(a+="/");return(b?"/":"")+a}
function mb(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 nb(a){if("/"===a)return"/";a=lb(a);a=a.replace(/\/$/,"");var b=a.lastIndexOf("/");return-1===b?a:a.substr(b+1)}
function ob(){if("object"===typeof crypto&&"function"===typeof crypto.getRandomValues){var a=new Uint8Array(1);return function(){crypto.getRandomValues(a);return a[0]}}return function(){t("randomDevice")}}
function pb(){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=kb(a.split("/").filter(function(d){return!!d}),!b).join("/");return(b?"/":"")+a||"."}var qb=[];function rb(a,b){qb[a]={input:[],kb:[],Eb:b};sb(a,tb)}
var tb={open:function(a){var b=qb[a.node.Ib];if(!b)throw new L(43);a.hb=b;a.seekable=!1},close:function(a){a.hb.Eb.flush(a.hb)},flush:function(a){a.hb.Eb.flush(a.hb)},read:function(a,b,c,d){if(!a.hb||!a.hb.Eb.vc)throw new L(60);for(var e=0,f=0;f<d;f++){try{var h=a.hb.Eb.vc(a.hb)}catch(l){throw new L(29);}if(void 0===h&&0===e)throw new L(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.hb||!a.hb.Eb.ic)throw new L(60);try{for(var e=
0;e<d;e++)a.hb.Eb.ic(a.hb,b[c+e])}catch(f){throw new L(29);}d&&(a.node.timestamp=Date.now());return e}},vb={vc: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=ub(b,!0)}return a.input.shift()},ic:function(a,b){null===b||10===b?(na(ta(a.kb,0)),a.kb=[]):0!=b&&a.kb.push(b)},flush:function(a){a.kb&&0<a.kb.length&&
(na(ta(a.kb,0)),a.kb=[])}},wb={ic:function(a,b){null===b||10===b?(r(ta(a.kb,0)),a.kb=[]):0!=b&&a.kb.push(b)},flush:function(a){a.kb&&0<a.kb.length&&(r(ta(a.kb,0)),a.kb=[])}},M={ub:null,vb:function(){return M.createNode(null,"/",16895,0)},createNode:function(a,b,c,d){if(24576===(c&61440)||4096===(c&61440))throw new L(63);M.ub||(M.ub={dir:{node:{tb:M.bb.tb,nb:M.bb.nb,Gb:M.bb.Gb,Sb:M.bb.Sb,Dc:M.bb.Dc,$b:M.bb.$b,Vb:M.bb.Vb,Cc:M.bb.Cc,Wb:M.bb.Wb},stream:{yb:M.cb.yb}},file:{node:{tb:M.bb.tb,nb:M.bb.nb},
stream:{yb:M.cb.yb,read:M.cb.read,write:M.cb.write,nc:M.cb.nc,Tb:M.cb.Tb,Ub:M.cb.Ub}},link:{node:{tb:M.bb.tb,nb:M.bb.nb,Jb:M.bb.Jb},stream:{}},pc:{node:{tb:M.bb.tb,nb:M.bb.nb},stream:xb}});c=yb(a,b,c,d);N(c.mode)?(c.bb=M.ub.dir.node,c.cb=M.ub.dir.stream,c.ab={}):32768===(c.mode&61440)?(c.bb=M.ub.file.node,c.cb=M.ub.file.stream,c.gb=0,c.ab=null):40960===(c.mode&61440)?(c.bb=M.ub.link.node,c.cb=M.ub.link.stream):8192===(c.mode&61440)&&(c.bb=M.ub.pc.node,c.cb=M.ub.pc.stream);c.timestamp=Date.now();a&&
(a.ab[b]=c,a.timestamp=c.timestamp);return c},Dd:function(a){if(a.ab&&a.ab.subarray){for(var b=[],c=0;c<a.gb;++c)b.push(a.ab[c]);return b}return a.ab},Ed:function(a){return a.ab?a.ab.subarray?a.ab.subarray(0,a.gb):new Uint8Array(a.ab):new Uint8Array(0)},sc:function(a,b){var c=a.ab?a.ab.length:0;c>=b||(b=Math.max(b,c*(1048576>c?2:1.125)>>>0),0!=c&&(b=Math.max(b,256)),c=a.ab,a.ab=new Uint8Array(b),0<a.gb&&a.ab.set(c.subarray(0,a.gb),0))},kd:function(a,b){if(a.gb!=b)if(0==b)a.ab=null,a.gb=0;else{if(!a.ab||
a.ab.subarray){var c=a.ab;a.ab=new Uint8Array(b);c&&a.ab.set(c.subarray(0,Math.min(b,a.gb)))}else if(a.ab||(a.ab=[]),a.ab.length>b)a.ab.length=b;else for(;a.ab.length<b;)a.ab.push(0);a.gb=b}},bb:{tb:function(a){var b={};b.Nc=8192===(a.mode&61440)?a.id:1;b.ec=a.id;b.mode=a.mode;b.ed=1;b.uid=0;b.Vc=0;b.Ib=a.Ib;b.size=N(a.mode)?4096:32768===(a.mode&61440)?a.gb:40960===(a.mode&61440)?a.link.length:0;b.Hc=new Date(a.timestamp);b.dd=new Date(a.timestamp);b.Mc=new Date(a.timestamp);b.Ic=4096;b.Jc=Math.ceil(b.size/
b.Ic);return b},nb:function(a,b){void 0!==b.mode&&(a.mode=b.mode);void 0!==b.timestamp&&(a.timestamp=b.timestamp);void 0!==b.size&&M.kd(a,b.size)},Gb:function(){throw zb[44];},Sb:function(a,b,c,d){return M.createNode(a,b,c,d)},Dc:function(a,b,c){if(N(a.mode)){try{var d=Ab(b,c)}catch(f){}if(d)for(var e in d.ab)throw new L(55);}delete a.parent.ab[a.name];a.parent.timestamp=Date.now();a.name=c;b.ab[c]=a;b.timestamp=a.parent.timestamp;a.parent=b},$b:function(a,b){delete a.ab[b];a.timestamp=Date.now()},
Vb:function(a,b){var c=Ab(a,b),d;for(d in c.ab)throw new L(55);delete a.ab[b];a.timestamp=Date.now()},Cc:function(a){var b=[".",".."],c;for(c in a.ab)a.ab.hasOwnProperty(c)&&b.push(c);return b},Wb:function(a,b,c){a=M.createNode(a,b,41471,0);a.link=c;return a},Jb:function(a){if(40960!==(a.mode&61440))throw new L(28);return a.link}},cb:{read:function(a,b,c,d,e){var f=a.node.ab;if(e>=a.node.gb)return 0;a=Math.min(a.node.gb-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===F.buffer&&(f=!1);if(!d)return 0;a=a.node;a.timestamp=Date.now();if(b.subarray&&(!a.ab||a.ab.subarray)){if(f)return a.ab=b.subarray(c,c+d),a.gb=d;if(0===a.gb&&0===e)return a.ab=b.slice(c,c+d),a.gb=d;if(e+d<=a.gb)return a.ab.set(b.subarray(c,c+d),e),d}M.sc(a,e+d);if(a.ab.subarray&&b.subarray)a.ab.set(b.subarray(c,c+d),e);else for(f=0;f<d;f++)a.ab[e+f]=b[c+f];a.gb=Math.max(a.gb,e+d);return d},yb:function(a,b,c){1===c?b+=a.position:2===c&&32768===
(a.node.mode&61440)&&(b+=a.node.gb);if(0>b)throw new L(28);return b},nc:function(a,b,c){M.sc(a.node,b+c);a.node.gb=Math.max(a.node.gb,b+c)},Tb:function(a,b,c,d,e,f){if(0!==b)throw new L(28);if(32768!==(a.node.mode&61440))throw new L(43);a=a.node.ab;if(f&2||a.buffer!==Fa){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=16384*Math.ceil(c/16384);for(b=Ea(f);c<f;)F[b+c++]=0;c=b;if(!c)throw new L(48);F.set(a,c)}else d=!1,c=a.byteOffset;return{eb:c,ac:d}},
Ub:function(a,b,c,d,e){if(32768!==(a.node.mode&61440))throw new L(43);if(e&2)return 0;M.cb.write(a,b,0,d,c,!1);return 0}}},Bb=null,Cb={},Db=[],Eb=1,Fb=null,Gb=!0,O={},L=null,zb={};
function Hb(a,b){a=pb("/",a);b=b||{};if(!a)return{path:"",node:null};var c={uc:!0,kc:0},d;for(d in c)void 0===b[d]&&(b[d]=c[d]);if(8<b.kc)throw new L(32);a=kb(a.split("/").filter(function(h){return!!h}),!1);var e=Bb;c="/";for(d=0;d<a.length;d++){var f=d===a.length-1;if(f&&b.parent)break;e=Ab(e,a[d]);c=lb(c+"/"+a[d]);e.Cb&&(!f||f&&b.uc)&&(e=e.Cb.root);if(!f||b.Ob)for(f=0;40960===(e.mode&61440);)if(e=Ib(c),c=pb(mb(c),e),e=Hb(c,{kc:b.kc}).node,40<f++)throw new L(32);}return{path:c,node:e}}
function Jb(a){for(var b;;){if(a===a.parent)return a=a.vb.yc,b?"/"!==a[a.length-1]?a+"/"+b:a+b:a;b=b?a.name+"/"+b:a.name;a=a.parent}}function Kb(a,b){for(var c=0,d=0;d<b.length;d++)c=(c<<5)-c+b.charCodeAt(d)|0;return(a+c>>>0)%Fb.length}function Lb(a){var b=Kb(a.parent.id,a.name);if(Fb[b]===a)Fb[b]=a.Db;else for(b=Fb[b];b;){if(b.Db===a){b.Db=a.Db;break}b=b.Db}}
function Ab(a,b){var c;if(c=(c=Mb(a,"x"))?c:a.bb.Gb?0:2)throw new L(c,a);for(c=Fb[Kb(a.id,b)];c;c=c.Db){var d=c.name;if(c.parent.id===a.id&&d===b)return c}return a.bb.Gb(a,b)}function yb(a,b,c,d){a=new Nb(a,b,c,d);b=Kb(a.parent.id,a.name);a.Db=Fb[b];return Fb[b]=a}function N(a){return 16384===(a&61440)}var Ob={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090};function Pb(a){var b=["r","w","rw"][a&3];a&512&&(b+="w");return b}
function Mb(a,b){if(Gb)return 0;if(-1===b.indexOf("r")||a.mode&292){if(-1!==b.indexOf("w")&&!(a.mode&146)||-1!==b.indexOf("x")&&!(a.mode&73))return 2}else return 2;return 0}function Qb(a,b){try{return Ab(a,b),20}catch(c){}return Mb(a,"wx")}function Rb(a,b,c){try{var d=Ab(a,b)}catch(e){return e.jb}if(a=Mb(a,"wx"))return a;if(c){if(!N(d.mode))return 54;if(d===d.parent||"/"===Jb(d))return 10}else if(N(d.mode))return 31;return 0}
function Sb(a){var b=4096;for(a=a||0;a<=b;a++)if(!Db[a])return a;throw new L(33);}function Tb(a,b){Ub||(Ub=function(){},Ub.prototype={object:{get:function(){return this.node},set:function(e){this.node=e}}});var c=new Ub,d;for(d in a)c[d]=a[d];a=c;b=Sb(b);a.sb=b;return Db[b]=a}var xb={open:function(a){a.cb=Cb[a.node.Ib].cb;a.cb.open&&a.cb.open(a)},yb:function(){throw new L(70);}};function sb(a,b){Cb[a]={cb:b}}
function Vb(a,b){var c="/"===b,d=!b;if(c&&Bb)throw new L(10);if(!c&&!d){var e=Hb(b,{uc:!1});b=e.path;e=e.node;if(e.Cb)throw new L(10);if(!N(e.mode))throw new L(54);}b={type:a,Gd:{},yc:b,cd:[]};a=a.vb(b);a.vb=b;b.root=a;c?Bb=a:e&&(e.Cb=b,e.vb&&e.vb.cd.push(b))}function Wb(a,b,c){var d=Hb(a,{parent:!0}).node;a=nb(a);if(!a||"."===a||".."===a)throw new L(28);var e=Qb(d,a);if(e)throw new L(e);if(!d.bb.Sb)throw new L(63);return d.bb.Sb(d,a,b,c)}function Xb(a){return Wb(a,16895,0)}
function Yb(a,b,c){"undefined"===typeof c&&(c=b,b=438);return Wb(a,b|8192,c)}function Zb(a,b){if(!pb(a))throw new L(44);var c=Hb(b,{parent:!0}).node;if(!c)throw new L(44);b=nb(b);var d=Qb(c,b);if(d)throw new L(d);if(!c.bb.Wb)throw new L(63);c.bb.Wb(c,b,a)}
function $b(a){var b=Hb(a,{parent:!0}).node,c=nb(a),d=Ab(b,c),e=Rb(b,c,!1);if(e)throw new L(e);if(!b.bb.$b)throw new L(63);if(d.Cb)throw new L(10);try{O.willDeletePath&&O.willDeletePath(a)}catch(f){r("FS.trackingDelegate['willDeletePath']('"+a+"') threw an exception: "+f.message)}b.bb.$b(b,c);Lb(d);try{if(O.onDeletePath)O.onDeletePath(a)}catch(f){r("FS.trackingDelegate['onDeletePath']('"+a+"') threw an exception: "+f.message)}}
function Ib(a){a=Hb(a).node;if(!a)throw new L(44);if(!a.bb.Jb)throw new L(28);return pb(Jb(a.parent),a.bb.Jb(a))}function ac(a,b){a="string"===typeof a?Hb(a,{Ob:!0}).node:a;if(!a.bb.nb)throw new L(63);a.bb.nb(a,{mode:b&4095|a.mode&-4096,timestamp:Date.now()})}
function bc(a,b,c,d){if(""===a)throw new L(44);if("string"===typeof b){var e=Ob[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=lb(a);try{f=Hb(a,{Ob:!(b&131072)}).node}catch(h){}}e=!1;if(b&64)if(f){if(b&128)throw new L(20);}else f=Wb(a,c,0),e=!0;if(!f)throw new L(44);8192===(f.mode&61440)&&(b&=-513);if(b&65536&&!N(f.mode))throw new L(54);if(!e&&(c=f?40960===(f.mode&61440)?32:N(f.mode)&&
("r"!==Pb(b)||b&512)?31:Mb(f,Pb(b)):44))throw new L(c);if(b&512){c=f;c="string"===typeof c?Hb(c,{Ob:!0}).node:c;if(!c.bb.nb)throw new L(63);if(N(c.mode))throw new L(31);if(32768!==(c.mode&61440))throw new L(28);if(e=Mb(c,"w"))throw new L(e);c.bb.nb(c,{size:0,timestamp:Date.now()})}b&=-131713;d=Tb({node:f,path:Jb(f),flags:b,seekable:!0,position:0,cb:f.cb,Ad:[],error:!1},d);d.cb.open&&d.cb.open(d);!g.logReadFiles||b&1||(cc||(cc={}),a in cc||(cc[a]=1,r("FS.trackingDelegate error on read file: "+a)));
try{O.onOpenFile&&(f=0,1!==(b&2097155)&&(f|=1),0!==(b&2097155)&&(f|=2),O.onOpenFile(a,f))}catch(h){r("FS.trackingDelegate['onOpenFile']('"+a+"', flags) threw an exception: "+h.message)}return d}function dc(a){if(null===a.sb)throw new L(8);a.dc&&(a.dc=null);try{a.cb.close&&a.cb.close(a)}catch(b){throw b;}finally{Db[a.sb]=null}a.sb=null}function ec(a,b,c){if(null===a.sb)throw new L(8);if(!a.seekable||!a.cb.yb)throw new L(70);if(0!=c&&1!=c&&2!=c)throw new L(28);a.position=a.cb.yb(a,b,c);a.Ad=[]}
function fc(a,b,c,d,e,f){if(0>d||0>e)throw new L(28);if(null===a.sb)throw new L(8);if(0===(a.flags&2097155))throw new L(8);if(N(a.node.mode))throw new L(31);if(!a.cb.write)throw new L(28);a.seekable&&a.flags&1024&&ec(a,0,2);var h="undefined"!==typeof e;if(!h)e=a.position;else if(!a.seekable)throw new L(70);b=a.cb.write(a,b,c,d,e,f);h||(a.position+=b);try{if(a.path&&O.onWriteToFile)O.onWriteToFile(a.path)}catch(l){r("FS.trackingDelegate['onWriteToFile']('"+a.path+"') threw an exception: "+l.message)}return b}
function gc(){L||(L=function(a,b){this.node=b;this.md=function(c){this.jb=c};this.md(a);this.message="FS error"},L.prototype=Error(),L.prototype.constructor=L,[44].forEach(function(a){zb[a]=new L(a);zb[a].stack="<generic error, no stack>"}))}var hc;function ic(a,b){var c=0;a&&(c|=365);b&&(c|=146);return c}function jc(a,b){a="string"===typeof a?a:Jb(a);for(b=b.split("/").reverse();b.length;){var c=b.pop();if(c){var d=lb(a+"/"+c);try{Xb(d)}catch(e){}a=d}}return d}
function kc(a,b,c,d){a=lb(("string"===typeof a?a:Jb(a))+"/"+b);c=ic(c,d);return Wb(a,(void 0!==c?c:438)&4095|32768,0)}function lc(a,b,c,d,e,f){a=b?lb(("string"===typeof a?a:Jb(a))+"/"+b):a;d=ic(d,e);e=Wb(a,(void 0!==d?d:438)&4095|32768,0);if(c){if("string"===typeof c){a=Array(c.length);b=0;for(var h=c.length;b<h;++b)a[b]=c.charCodeAt(b);c=a}ac(e,d|146);a=bc(e,577);fc(a,c,0,c.length,0,f);dc(a);ac(e,d)}return e}
function mc(a,b,c,d){a=lb(("string"===typeof a?a:Jb(a))+"/"+b);b=ic(!!c,!!d);mc.xc||(mc.xc=64);var e=mc.xc++<<8|0;sb(e,{open:function(f){f.seekable=!1},close:function(){d&&d.buffer&&d.buffer.length&&d(10)},read:function(f,h,l,m){for(var p=0,n=0;n<m;n++){try{var q=c()}catch(v){throw new L(29);}if(void 0===q&&0===p)throw new L(6);if(null===q||void 0===q)break;p++;h[l+n]=q}p&&(f.node.timestamp=Date.now());return p},write:function(f,h,l,m){for(var p=0;p<m;p++)try{d(h[l+p])}catch(n){throw new L(29);}m&&
(f.node.timestamp=Date.now());return p}});return Yb(a,b,e)}function nc(a){if(!(a.Yc||a.Zc||a.link||a.ab)){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(ka)try{a.ab=ub(ka(a.url),!0),a.gb=a.ab.length}catch(b){throw new L(29);}else throw Error("Cannot load without read() or XMLHttpRequest.");}}
function oc(a,b,c,d,e){function f(){this.hc=!1;this.Nb=[]}f.prototype.get=function(n){if(!(n>this.length-1||0>n)){var q=n%this.qc;return this.Pb(n/this.qc|0)[q]}};f.prototype.ld=function(n){this.Pb=n};f.prototype.oc=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 q=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=q);var x=this;x.ld(function(y){var J=y*u,G=(y+1)*u-1;G=Math.min(G,q-1);if("undefined"===typeof x.Nb[y]){var la=x.Nb;if(J>G)throw Error("invalid range ("+J+", "+G+") or no bytes requested!");if(G>q-1)throw Error("only "+q+" bytes available! programmer error!");var w=new XMLHttpRequest;w.open("GET",c,!1);q!==u&&w.setRequestHeader("Range","bytes="+J+"-"+G);"undefined"!=typeof Uint8Array&&(w.responseType="arraybuffer");w.overrideMimeType&&
w.overrideMimeType("text/plain; charset=x-user-defined");w.send(null);if(!(200<=w.status&&300>w.status||304===w.status))throw Error("Couldn't load "+c+". Status: "+w.status);J=void 0!==w.response?new Uint8Array(w.response||[]):ub(w.responseText||"",!0);la[y]=J}if("undefined"===typeof x.Nb[y])throw Error("doXHR failed!");return x.Nb[y]});if(n||!q)u=q=1,u=q=this.Pb(0).length,na("LazyFiles on gzip forces download of the whole file when length is accessed");this.Fc=q;this.Ec=u;this.hc=!0};if("undefined"!==
typeof XMLHttpRequest){if(!ia)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.hc||this.oc();return this.Fc}},qc:{get:function(){this.hc||this.oc();return this.Ec}}});var l=void 0}else l=c,h=void 0;var m=kc(a,b,d,e);h?m.ab=h:l&&(m.ab=null,m.url=l);Object.defineProperties(m,{gb:{get:function(){return this.ab.length}}});var p={};Object.keys(m.cb).forEach(function(n){var q=
m.cb[n];p[n]=function(){nc(m);return q.apply(null,arguments)}});p.read=function(n,q,v,k,u){nc(m);n=n.node.ab;if(u>=n.length)return 0;k=Math.min(n.length-u,k);if(n.slice)for(var x=0;x<k;x++)q[v+x]=n[u+x];else for(x=0;x<k;x++)q[v+x]=n.get(u+x);return k};m.cb=p;return m}
function pc(a,b,c,d,e,f,h,l,m,p){function n(k){function u(y){p&&p();l||lc(a,b,y,d,e,m);f&&f();Ta(v)}var x=!1;g.preloadPlugins.forEach(function(y){!x&&y.canHandle(q)&&(y.handle(k,q,u,function(){h&&h();Ta(v)}),x=!0)});x||u(k)}qc.wc();var q=b?pb(lb(a+"/"+b)):a,v="cp "+q;Sa(v);"string"==typeof c?qc.Bd(c,function(k){n(k)},h):n(c)}var Q={},Ub,cc,rc={};
function sc(a,b){try{var c=Hb(a,{Ob:!0}).node;if(!c)throw new L(44);if(!c.bb.tb)throw new L(63);var d=c.bb.tb(c)}catch(e){if(e&&e.node&&lb(a)!==lb(Jb(e.node)))return-54;throw e;}E[b>>2]=d.Nc;E[b+4>>2]=0;E[b+8>>2]=d.ec;E[b+12>>2]=d.mode;E[b+16>>2]=d.ed;E[b+20>>2]=d.uid;E[b+24>>2]=d.Vc;E[b+28>>2]=d.Ib;E[b+32>>2]=0;Za=[d.size>>>0,(K=d.size,1<=+Math.abs(K)?0<K?(Math.min(+Math.floor(K/4294967296),4294967295)|0)>>>0:~~+Math.ceil((K-+(~~K>>>0))/4294967296)>>>0:0)];E[b+40>>2]=Za[0];E[b+44>>2]=Za[1];E[b+48>>
2]=4096;E[b+52>>2]=d.Jc;E[b+56>>2]=d.Hc.getTime()/1E3|0;E[b+60>>2]=0;E[b+64>>2]=d.dd.getTime()/1E3|0;E[b+68>>2]=0;E[b+72>>2]=d.Mc.getTime()/1E3|0;E[b+76>>2]=0;Za=[d.ec>>>0,(K=d.ec,1<=+Math.abs(K)?0<K?(Math.min(+Math.floor(K/4294967296),4294967295)|0)>>>0:~~+Math.ceil((K-+(~~K>>>0))/4294967296)>>>0:0)];E[b+80>>2]=Za[0];E[b+84>>2]=Za[1];return 0}var tc=void 0;function uc(){tc+=4;return E[tc-4>>2]}function vc(a){a=Db[a];if(!a)throw new L(8);return a}var wc={};
function xc(a){for(;a.length;){var b=a.pop();a.pop()(b)}}function yc(a){return this.fromWireType(H[a>>2])}var zc={},Ac={},Bc={};function Cc(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 Dc(a,b){a=Cc(a);return(new Function("body","return function "+a+'() {\n "use strict"; return body.apply(this, arguments);\n};\n'))(b)}
function Ec(a){var b=Error,c=Dc(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 Fc=void 0;function Gc(a){throw new Fc(a);}
function Hc(a,b,c){function d(l){l=c(l);l.length!==a.length&&Gc("Mismatched type converter count");for(var m=0;m<a.length;++m)Ic(a[m],l[m])}a.forEach(function(l){Bc[l]=b});var e=Array(b.length),f=[],h=0;b.forEach(function(l,m){Ac.hasOwnProperty(l)?e[m]=Ac[l]:(f.push(l),zc.hasOwnProperty(l)||(zc[l]=[]),zc[l].push(function(){e[m]=Ac[l];++h;h===f.length&&d(e)}))});0===f.length&&d(e)}
function Jc(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 Kc=void 0;function R(a){for(var b="";A[a];)b+=Kc[A[a++]];return b}var Lc=void 0;function S(a){throw new Lc(a);}
function Ic(a,b,c){c=c||{};if(!("argPackAdvance"in b))throw new TypeError("registerType registeredInstance requires argPackAdvance");var d=b.name;a||S('type "'+d+'" must have a positive integer typeid pointer');if(Ac.hasOwnProperty(a)){if(c.Wc)return;S("Cannot register type '"+d+"' twice")}Ac[a]=b;delete Bc[a];zc.hasOwnProperty(a)&&(b=zc[a],delete zc[a],b.forEach(function(e){e()}))}function Mc(a){return{count:a.count,Ab:a.Ab,Hb:a.Hb,eb:a.eb,ib:a.ib,ob:a.ob,pb:a.pb}}
function Nc(a){S(a.$a.ib.fb.name+" instance already deleted")}var Oc=!1;function Pc(){}function Qc(a){--a.count.value;0===a.count.value&&(a.ob?a.pb.wb(a.ob):a.ib.fb.wb(a.eb))}
function Rc(a){if("undefined"===typeof FinalizationGroup)return Rc=function(b){return b},a;Oc=new FinalizationGroup(function(b){for(var c=b.next();!c.done;c=b.next())c=c.value,c.eb?Qc(c):console.warn("object already deleted: "+c.eb)});Rc=function(b){Oc.register(b,b.$a,b.$a);return b};Pc=function(b){Oc.unregister(b.$a)};return Rc(a)}var Sc=void 0,Tc=[];function Uc(){for(;Tc.length;){var a=Tc.pop();a.$a.Ab=!1;a["delete"]()}}function Vc(){}var Wc={};
function Xc(a,b,c){if(void 0===a[b].lb){var d=a[b];a[b]=function(){a[b].lb.hasOwnProperty(arguments.length)||S("Function '"+c+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+a[b].lb+")!");return a[b].lb[arguments.length].apply(this,arguments)};a[b].lb=[];a[b].lb[d.Mb]=d}}
function Yc(a,b,c){g.hasOwnProperty(a)?((void 0===c||void 0!==g[a].lb&&void 0!==g[a].lb[c])&&S("Cannot register public name '"+a+"' twice"),Xc(g,a,a),g.hasOwnProperty(c)&&S("Cannot register multiple overloads of a function with the same number of arguments ("+c+")!"),g[a].lb[c]=b):(g[a]=b,void 0!==c&&(g[a].Fd=c))}function Zc(a,b,c,d,e,f,h,l){this.name=a;this.constructor=b;this.Bb=c;this.wb=d;this.qb=e;this.Rc=f;this.Lb=h;this.Oc=l;this.hd=[]}
function $c(a,b,c){for(;b!==c;)b.Lb||S("Expected null or instance of "+c.name+", got an instance of "+b.name),a=b.Lb(a),b=b.qb;return a}function ad(a,b){if(null===b)return this.fc&&S("null is not a valid "+this.name),0;b.$a||S('Cannot pass "'+bd(b)+'" as a '+this.name);b.$a.eb||S("Cannot pass deleted object as a pointer of type "+this.name);return $c(b.$a.eb,b.$a.ib.fb,this.fb)}
function cd(a,b){if(null===b){this.fc&&S("null is not a valid "+this.name);if(this.Rb){var c=this.jc();null!==a&&a.push(this.wb,c);return c}return 0}b.$a||S('Cannot pass "'+bd(b)+'" as a '+this.name);b.$a.eb||S("Cannot pass deleted object as a pointer of type "+this.name);!this.Qb&&b.$a.ib.Qb&&S("Cannot convert argument of type "+(b.$a.pb?b.$a.pb.name:b.$a.ib.name)+" to parameter type "+this.name);c=$c(b.$a.eb,b.$a.ib.fb,this.fb);if(this.Rb)switch(void 0===b.$a.ob&&S("Passing raw pointer to smart pointer is illegal"),
this.vd){case 0:b.$a.pb===this?c=b.$a.ob:S("Cannot convert argument of type "+(b.$a.pb?b.$a.pb.name:b.$a.ib.name)+" to parameter type "+this.name);break;case 1:c=b.$a.ob;break;case 2:if(b.$a.pb===this)c=b.$a.ob;else{var d=b.clone();c=this.jd(c,T(function(){d["delete"]()}));null!==a&&a.push(this.wb,c)}break;default:S("Unsupporting sharing policy")}return c}
function dd(a,b){if(null===b)return this.fc&&S("null is not a valid "+this.name),0;b.$a||S('Cannot pass "'+bd(b)+'" as a '+this.name);b.$a.eb||S("Cannot pass deleted object as a pointer of type "+this.name);b.$a.ib.Qb&&S("Cannot convert argument of type "+b.$a.ib.name+" to parameter type "+this.name);return $c(b.$a.eb,b.$a.ib.fb,this.fb)}function ed(a,b,c){if(b===c)return a;if(void 0===c.qb)return null;a=ed(a,b,c.qb);return null===a?null:c.Oc(a)}var fd={};
function gd(a,b){for(void 0===b&&S("ptr should not be undefined");a.qb;)b=a.Lb(b),a=a.qb;return fd[b]}function hd(a,b){b.ib&&b.eb||Gc("makeClassHandle requires ptr and ptrType");!!b.pb!==!!b.ob&&Gc("Both smartPtrType and smartPtr must be specified");b.count={value:1};return Rc(Object.create(a,{$a:{value:b}}))}
function id(a,b,c,d){this.name=a;this.fb=b;this.fc=c;this.Qb=d;this.Rb=!1;this.wb=this.jd=this.jc=this.Bc=this.vd=this.fd=void 0;void 0!==b.qb?this.toWireType=cd:(this.toWireType=d?ad:dd,this.rb=null)}function jd(a,b,c){g.hasOwnProperty(a)||Gc("Replacing nonexistant public symbol");void 0!==g[a].lb&&void 0!==c?g[a].lb[c]=b:(g[a]=b,g[a].Mb=c)}
function kd(a,b){0<=a.indexOf("j")||t("Assertion failed: getDynCaller should only be called with i64 sigs");var c=[];return function(){c.length=arguments.length;for(var d=0;d<arguments.length;d++)c[d]=arguments[d];return-1!=a.indexOf("j")?c&&c.length?g["dynCall_"+a].apply(null,[b].concat(c)):g["dynCall_"+a].call(null,b):I.get(b).apply(null,c)}}function ld(a,b){a=R(a);var c=-1!=a.indexOf("j")?kd(a,b):I.get(b);"function"!==typeof c&&S("unknown function pointer with signature "+a+": "+b);return c}
var md=void 0;function nd(a){a=od(a);var b=R(a);pd(a);return b}function qd(a,b){function c(f){e[f]||Ac[f]||(Bc[f]?Bc[f].forEach(c):(d.push(f),e[f]=!0))}var d=[],e={};b.forEach(c);throw new md(a+": "+d.map(nd).join([", "]));}function rd(a,b){for(var c=[],d=0;d<a;d++)c.push(E[(b>>2)+d]);return c}
function sd(a){var b=Function;if(!(b instanceof Function))throw new TypeError("new_ called with constructor type "+typeof b+" which is not a function");var c=Dc(b.name||"unknownFunctionName",function(){});c.prototype=b.prototype;c=new c;a=b.apply(c,a);return a instanceof Object?a:c}
function td(a,b,c,d,e){var f=b.length;2>f&&S("argTypes array size mismatch! Must at least get return value and 'this' types!");var h=null!==b[1]&&null!==c,l=!1;for(c=1;c<b.length;++c)if(null!==b[c]&&void 0===b[c].rb){l=!0;break}var m="void"!==b[0].name,p="",n="";for(c=0;c<f-2;++c)p+=(0!==c?", ":"")+"arg"+c,n+=(0!==c?", ":"")+"arg"+c+"Wired";a="return function "+Cc(a)+"("+p+") {\nif (arguments.length !== "+(f-2)+") {\nthrowBindingError('function "+a+" called with ' + arguments.length + ' arguments, expected "+
(f-2)+" args!');\n}\n";l&&(a+="var destructors = [];\n");var q=l?"destructors":"null";p="throwBindingError invoker fn runDestructors retType classParam".split(" ");d=[S,d,e,xc,b[0],b[1]];h&&(a+="var thisWired = classParam.toWireType("+q+", this);\n");for(c=0;c<f-2;++c)a+="var arg"+c+"Wired = argType"+c+".toWireType("+q+", arg"+c+"); // "+b[c+2].name+"\n",p.push("argType"+c),d.push(b[c+2]);h&&(n="thisWired"+(0<n.length?", ":"")+n);a+=(m?"var rv = ":"")+"invoker(fn"+(0<n.length?", ":"")+n+");\n";if(l)a+=
"runDestructors(destructors);\n";else for(c=h?1:2;c<b.length;++c)f=1===c?"thisWired":"arg"+(c-2)+"Wired",null!==b[c].rb&&(a+=f+"_dtor("+f+"); // "+b[c].name+"\n",p.push(f+"_dtor"),d.push(b[c].rb));m&&(a+="var ret = retType.fromWireType(rv);\nreturn ret;\n");p.push(a+"}\n");return sd(p).apply(null,d)}var ud=[],V=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function vd(a){4<a&&0===--V[a].lc&&(V[a]=void 0,ud.push(a))}
function T(a){switch(a){case void 0:return 1;case null:return 2;case !0:return 3;case !1:return 4;default:var b=ud.length?ud.pop():V.length;V[b]={lc:1,value:a};return b}}function bd(a){if(null===a)return"null";var b=typeof a;return"object"===b||"array"===b||"function"===b?a.toString():""+a}function wd(a,b){switch(b){case 2:return function(c){return this.fromWireType(Ga[c>>2])};case 3:return function(c){return this.fromWireType(Ha[c>>3])};default:throw new TypeError("Unknown float type: "+a);}}
function xd(a,b,c){switch(b){case 0:return c?function(d){return F[d]}:function(d){return A[d]};case 1:return c?function(d){return xa[d>>1]}:function(d){return D[d>>1]};case 2:return c?function(d){return E[d>>2]}:function(d){return H[d>>2]};default:throw new TypeError("Unknown integer type: "+a);}}function W(a){a||S("Cannot use deleted val. handle = "+a);return V[a].value}function yd(a,b){var c=Ac[a];void 0===c&&S(b+" has unknown type "+nd(a));return c}
function zd(a,b){for(var c=Array(a),d=0;d<a;++d)c[d]=yd(E[(b>>2)+d],"parameter "+d);return c}var Ad={};function Bd(a){var b=Ad[a];return void 0===b?R(a):b}var Cd=[];function Dd(){return"object"===typeof globalThis?globalThis:Function("return this")()}function Ed(a){var b=Cd.length;Cd.push(a);return b}var Fd={};function Gd(){return!ia}g._emscripten_is_main_browser_thread=Gd;var Hd=[];function X(a,b){H[a>>2]=b;H[a+4>>2]=b/4294967296|0}var Id;
function Jd(a,b,c,d,e){function f(B){var U=0,P=0;B&&(P=w.response?w.response.byteLength:0,U=Ea(P),A.set(new Uint8Array(w.response),U));H[a+12>>2]=U;X(a+16,P)}var h=H[a+8>>2];if(h){var l=z(h),m=a+112,p=z(m);p||(p="GET");var n=H[m+52>>2],q=H[m+56>>2],v=!!H[m+60>>2],k=H[m+68>>2],u=H[m+72>>2];h=H[m+76>>2];var x=H[m+80>>2],y=H[m+84>>2];m=H[m+88>>2];var J=!!(n&1),G=!!(n&2);n=!!(n&64);k=k?z(k):void 0;u=u?z(u):void 0;var la=x?z(x):void 0,w=new XMLHttpRequest;w.withCredentials=v;w.open(p,l,!n,k,u);n||(w.timeout=
q);w.Id=l;w.responseType="arraybuffer";x&&w.overrideMimeType(la);if(h)for(;;){p=H[h>>2];if(!p)break;l=H[h+4>>2];if(!l)break;h+=8;p=z(p);l=z(l);w.setRequestHeader(p,l)}Hd.push(w);H[a+0>>2]=Hd.length;h=y&&m?A.slice(y,y+m):null;w.onload=function(B){f(J&&!G);var U=w.response?w.response.byteLength:0;X(a+24,0);U&&X(a+32,U);D[a+40>>1]=w.readyState;D[a+42>>1]=w.status;w.statusText&&C(w.statusText,A,a+44,64);200<=w.status&&300>w.status?b&&b(a,w,B):c&&c(a,w,B)};w.onerror=function(B){f(J);var U=w.status;X(a+
24,0);X(a+32,w.response?w.response.byteLength:0);D[a+40>>1]=w.readyState;D[a+42>>1]=U;c&&c(a,w,B)};w.ontimeout=function(B){c&&c(a,w,B)};w.onprogress=function(B){var U=J&&G&&w.response?w.response.byteLength:0,P=0;J&&G&&(P=Ea(U),A.set(new Uint8Array(w.response),P));H[a+12>>2]=P;X(a+16,U);X(a+24,B.loaded-U);X(a+32,B.total);D[a+40>>1]=w.readyState;3<=w.readyState&&0===w.status&&0<B.loaded&&(w.status=200);D[a+42>>1]=w.status;w.statusText&&C(w.statusText,A,a+44,64);d&&d(a,w,B);P&&pd(P)};w.onreadystatechange=
function(B){D[a+40>>1]=w.readyState;2<=w.readyState&&(D[a+42>>1]=w.status);e&&e(a,w,B)};try{w.send(h)}catch(B){c&&c(a,w,B)}}else c(a,0,"no url specified!")}
function Kd(a,b,c,d){var e=Id;if(e){var f=H[a+112+64>>2];f||(f=H[a+8>>2]);var h=z(f);try{var l=e.transaction(["FILES"],"readwrite").objectStore("FILES").put(b,h);l.onsuccess=function(){D[a+40>>1]=4;D[a+42>>1]=200;C("OK",A,a+44,64);c(a,0,h)};l.onerror=function(m){D[a+40>>1]=4;D[a+42>>1]=413;C("Payload Too Large",A,a+44,64);d(a,0,m)}}catch(m){d(a,0,m)}}else d(a,0,"IndexedDB not available!")}
function Ld(a,b,c){var d=Id;if(d){var e=H[a+112+64>>2];e||(e=H[a+8>>2]);e=z(e);try{var f=d.transaction(["FILES"],"readonly").objectStore("FILES").get(e);f.onsuccess=function(h){if(h.target.result){h=h.target.result;var l=h.byteLength||h.length,m=Ea(l);A.set(new Uint8Array(h),m);H[a+12>>2]=m;X(a+16,l);X(a+24,0);X(a+32,l);D[a+40>>1]=4;D[a+42>>1]=200;C("OK",A,a+44,64);b(a,0,h)}else D[a+40>>1]=4,D[a+42>>1]=404,C("Not Found",A,a+44,64),c(a,0,"no data")};f.onerror=function(h){D[a+40>>1]=4;D[a+42>>1]=404;
C("Not Found",A,a+44,64);c(a,0,h)}}catch(h){c(a,0,h)}}else c(a,0,"IndexedDB not available!")}
function Md(a,b,c){var d=Id;if(d){var e=H[a+112+64>>2];e||(e=H[a+8>>2]);e=z(e);try{var f=d.transaction(["FILES"],"readwrite").objectStore("FILES").delete(e);f.onsuccess=function(h){h=h.target.result;H[a+12>>2]=0;X(a+16,0);X(a+24,0);X(a+32,0);D[a+40>>1]=4;D[a+42>>1]=200;C("OK",A,a+44,64);b(a,0,h)};f.onerror=function(h){D[a+40>>1]=4;D[a+42>>1]=404;C("Not Found",A,a+44,64);c(a,0,h)}}catch(h){c(a,0,h)}}else c(a,0,"IndexedDB not available!")}var Nd={};
function Od(){if(!Pd){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",_:ea||"./this.program"},b;for(b in Nd)a[b]=Nd[b];var c=[];for(b in a)c.push(b+"="+a[b]);Pd=c}return Pd}var Pd;function Qd(a,b){Qd.Ac||(Qd.Ac=ob());for(var c=0;c<b;c++)F[a+c>>0]=Qd.Ac();return 0}function Rd(a){return 0===a%4&&(0!==a%100||0===a%400)}
function Sd(a,b){for(var c=0,d=0;d<=b;c+=a[d++]);return c}var Td=[31,29,31,30,31,30,31,31,30,31,30,31],Ud=[31,28,31,30,31,30,31,31,30,31,30,31];function Vd(a,b){for(a=new Date(a.getTime());0<b;){var c=a.getMonth(),d=(Rd(a.getFullYear())?Td:Ud)[c];if(b>d-a.getDate())b-=d-a.getDate()+1,a.setDate(1),11>c?a.setMonth(c+1):(a.setMonth(0),a.setFullYear(a.getFullYear()+1));else{a.setDate(a.getDate()+b);break}}return a}
function Wd(a,b,c,d){function e(k,u,x){for(k="number"===typeof k?k.toString():k||"";k.length<u;)k=x[0]+k;return k}function f(k,u){return e(k,u,"0")}function h(k,u){function x(J){return 0>J?-1:0<J?1:0}var y;0===(y=x(k.getFullYear()-u.getFullYear()))&&0===(y=x(k.getMonth()-u.getMonth()))&&(y=x(k.getDate()-u.getDate()));return y}function l(k){switch(k.getDay()){case 0:return new Date(k.getFullYear()-1,11,29);case 1:return k;case 2:return new Date(k.getFullYear(),0,3);case 3:return new Date(k.getFullYear(),
0,2);case 4:return new Date(k.getFullYear(),0,1);case 5:return new Date(k.getFullYear()-1,11,31);case 6:return new Date(k.getFullYear()-1,11,30)}}function m(k){k=Vd(new Date(k.mb+1900,0,1),k.Zb);var u=new Date(k.getFullYear()+1,0,4),x=l(new Date(k.getFullYear(),0,4));u=l(u);return 0>=h(x,k)?0>=h(u,k)?k.getFullYear()+1:k.getFullYear():k.getFullYear()-1}var p=E[d+40>>2];d={yd:E[d>>2],xd:E[d+4>>2],Xb:E[d+8>>2],Kb:E[d+12>>2],Fb:E[d+16>>2],mb:E[d+20>>2],Yb:E[d+24>>2],Zb:E[d+28>>2],Hd:E[d+32>>2],wd:E[d+
36>>2],zd:p?z(p):""};c=z(c);p={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var n in p)c=c.replace(new RegExp(n,"g"),p[n]);var q="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),
v="January February March April May June July August September October November December".split(" ");p={"%a":function(k){return q[k.Yb].substring(0,3)},"%A":function(k){return q[k.Yb]},"%b":function(k){return v[k.Fb].substring(0,3)},"%B":function(k){return v[k.Fb]},"%C":function(k){return f((k.mb+1900)/100|0,2)},"%d":function(k){return f(k.Kb,2)},"%e":function(k){return e(k.Kb,2," ")},"%g":function(k){return m(k).toString().substring(2)},"%G":function(k){return m(k)},"%H":function(k){return f(k.Xb,
2)},"%I":function(k){k=k.Xb;0==k?k=12:12<k&&(k-=12);return f(k,2)},"%j":function(k){return f(k.Kb+Sd(Rd(k.mb+1900)?Td:Ud,k.Fb-1),3)},"%m":function(k){return f(k.Fb+1,2)},"%M":function(k){return f(k.xd,2)},"%n":function(){return"\n"},"%p":function(k){return 0<=k.Xb&&12>k.Xb?"AM":"PM"},"%S":function(k){return f(k.yd,2)},"%t":function(){return"\t"},"%u":function(k){return k.Yb||7},"%U":function(k){var u=new Date(k.mb+1900,0,1),x=0===u.getDay()?u:Vd(u,7-u.getDay());k=new Date(k.mb+1900,k.Fb,k.Kb);return 0>
h(x,k)?f(Math.ceil((31-x.getDate()+(Sd(Rd(k.getFullYear())?Td:Ud,k.getMonth()-1)-31)+k.getDate())/7),2):0===h(x,u)?"01":"00"},"%V":function(k){var u=new Date(k.mb+1901,0,4),x=l(new Date(k.mb+1900,0,4));u=l(u);var y=Vd(new Date(k.mb+1900,0,1),k.Zb);return 0>h(y,x)?"53":0>=h(u,y)?"01":f(Math.ceil((x.getFullYear()<k.mb+1900?k.Zb+32-x.getDate():k.Zb+1-x.getDate())/7),2)},"%w":function(k){return k.Yb},"%W":function(k){var u=new Date(k.mb,0,1),x=1===u.getDay()?u:Vd(u,0===u.getDay()?1:7-u.getDay()+1);k=
new Date(k.mb+1900,k.Fb,k.Kb);return 0>h(x,k)?f(Math.ceil((31-x.getDate()+(Sd(Rd(k.getFullYear())?Td:Ud,k.getMonth()-1)-31)+k.getDate())/7),2):0===h(x,u)?"01":"00"},"%y":function(k){return(k.mb+1900).toString().substring(2)},"%Y":function(k){return k.mb+1900},"%z":function(k){k=k.wd;var u=0<=k;k=Math.abs(k)/60;return(u?"+":"-")+String("0000"+(k/60*100+k%60)).slice(-4)},"%Z":function(k){return k.zd},"%%":function(){return"%"}};for(n in p)0<=c.indexOf(n)&&(c=c.replace(new RegExp(n,"g"),p[n](d)));n=
ub(c,!1);if(n.length>b)return 0;F.set(n,a);return n.length-1}var Xd=[];function Nb(a,b,c,d){a||(a=this);this.parent=a;this.vb=a.vb;this.Cb=null;this.id=Eb++;this.name=b;this.mode=c;this.bb={};this.cb={};this.Ib=d}
Object.defineProperties(Nb.prototype,{read:{get:function(){return 365===(this.mode&365)},set:function(a){a?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146===(this.mode&146)},set:function(a){a?this.mode|=146:this.mode&=-147}},Zc:{get:function(){return N(this.mode)}},Yc:{get:function(){return 8192===(this.mode&61440)}}});gc();Fb=Array(4096);Vb(M,"/");Xb("/tmp");Xb("/home");Xb("/home/web_user");
(function(){Xb("/dev");sb(259,{read:function(){return 0},write:function(b,c,d,e){return e}});Yb("/dev/null",259);rb(1280,vb);rb(1536,wb);Yb("/dev/tty",1280);Yb("/dev/tty1",1536);var a=ob();mc("/dev","random",a);mc("/dev","urandom",a);Xb("/dev/shm");Xb("/dev/shm/tmp")})();
(function(){Xb("/proc");var a=Xb("/proc/self");Xb("/proc/self/fd");Vb({vb:function(){var b=yb(a,"fd",16895,73);b.bb={Gb:function(c,d){var e=Db[+d];if(!e)throw new L(8);c={parent:null,vb:{yc:"fake"},bb:{Jb:function(){return e.path}}};return c.parent=c}};return b}},"/proc/self/fd")})();var qc;g.FS_createPath=jc;g.FS_createDataFile=lc;g.FS_createPreloadedFile=pc;g.FS_createLazyFile=oc;g.FS_createDevice=mc;g.FS_unlink=$b;Fc=g.InternalError=Ec("InternalError");
for(var Yd=Array(256),Zd=0;256>Zd;++Zd)Yd[Zd]=String.fromCharCode(Zd);Kc=Yd;Lc=g.BindingError=Ec("BindingError");Vc.prototype.isAliasOf=function(a){if(!(this instanceof Vc&&a instanceof Vc))return!1;var b=this.$a.ib.fb,c=this.$a.eb,d=a.$a.ib.fb;for(a=a.$a.eb;b.qb;)c=b.Lb(c),b=b.qb;for(;d.qb;)a=d.Lb(a),d=d.qb;return b===d&&c===a};
Vc.prototype.clone=function(){this.$a.eb||Nc(this);if(this.$a.Hb)return this.$a.count.value+=1,this;var a=Rc(Object.create(Object.getPrototypeOf(this),{$a:{value:Mc(this.$a)}}));a.$a.count.value+=1;a.$a.Ab=!1;return a};Vc.prototype["delete"]=function(){this.$a.eb||Nc(this);this.$a.Ab&&!this.$a.Hb&&S("Object already scheduled for deletion");Pc(this);Qc(this.$a);this.$a.Hb||(this.$a.ob=void 0,this.$a.eb=void 0)};Vc.prototype.isDeleted=function(){return!this.$a.eb};
Vc.prototype.deleteLater=function(){this.$a.eb||Nc(this);this.$a.Ab&&!this.$a.Hb&&S("Object already scheduled for deletion");Tc.push(this);1===Tc.length&&Sc&&Sc(Uc);this.$a.Ab=!0;return this};id.prototype.Sc=function(a){this.Bc&&(a=this.Bc(a));return a};id.prototype.rc=function(a){this.wb&&this.wb(a)};id.prototype.argPackAdvance=8;id.prototype.readValueFromPointer=yc;id.prototype.deleteObject=function(a){if(null!==a)a["delete"]()};
id.prototype.fromWireType=function(a){function b(){return this.Rb?hd(this.fb.Bb,{ib:this.fd,eb:c,pb:this,ob:a}):hd(this.fb.Bb,{ib:this,eb:a})}var c=this.Sc(a);if(!c)return this.rc(a),null;var d=gd(this.fb,c);if(void 0!==d){if(0===d.$a.count.value)return d.$a.eb=c,d.$a.ob=a,d.clone();d=d.clone();this.rc(a);return d}d=this.fb.Rc(c);d=Wc[d];if(!d)return b.call(this);d=this.Qb?d.Lc:d.pointerType;var e=ed(c,this.fb,d.fb);return null===e?b.call(this):this.Rb?hd(d.fb.Bb,{ib:d,eb:e,pb:this,ob:a}):hd(d.fb.Bb,
{ib:d,eb:e})};g.getInheritedInstanceCount=function(){return Object.keys(fd).length};g.getLiveInheritedInstances=function(){var a=[],b;for(b in fd)fd.hasOwnProperty(b)&&a.push(fd[b]);return a};g.flushPendingDeletes=Uc;g.setDelayFunction=function(a){Sc=a;Tc.length&&Sc&&Sc(Uc)};md=g.UnboundTypeError=Ec("UnboundTypeError");g.count_emval_handles=function(){for(var a=0,b=5;b<V.length;++b)void 0!==V[b]&&++a;return a};g.get_first_emval=function(){for(var a=5;a<V.length;++a)if(void 0!==V[a])return V[a];return null};
(function(a,b){try{var c=indexedDB.open("emscripten_filesystem",1)}catch(d){b(d);return}c.onupgradeneeded=function(d){d=d.target.result;d.objectStoreNames.contains("FILES")&&d.deleteObjectStore("FILES");d.createObjectStore("FILES")};c.onsuccess=function(d){a(d.target.result)};c.onerror=function(d){b(d)}})(function(a){Id=a;Ta("library_fetch_init")},function(){Id=!1;Ta("library_fetch_init")});"undefined"!==typeof ENVIRONMENT_IS_FETCH_WORKER&&ENVIRONMENT_IS_FETCH_WORKER||Sa("library_fetch_init");
function ub(a,b){var c=Array(ua(a)+1);a=C(a,c,0,c.length);b&&(c.length=a);return c}
var ne={oa:function(a,b){return cb(a,b)},C:function(a){return Ea(a+16)+16},B:function(a,b,c){(new db(a)).wc(b,c);eb++;throw a;},ga:function(a,b){fb();a=new Date(1E3*E[a>>2]);E[b>>2]=a.getSeconds();E[b+4>>2]=a.getMinutes();E[b+8>>2]=a.getHours();E[b+12>>2]=a.getDate();E[b+16>>2]=a.getMonth();E[b+20>>2]