@webarkit/ar-nft
Version:
WebAR Javscript library for markerless AR
1 lines • 749 kB
JavaScript
var A={571(A){var I;A.exports=((I=function(){function A(A){return C.appendChild(A.dom),A}function g(A){for(var I=0;I<C.children.length;I++)C.children[I].style.display=I===A?"block":"none";B=A}var B=0,C=document.createElement("div");C.style.cssText="position:fixed;top:0;left:0;cursor:pointer;opacity:0.9;z-index:10000",C.addEventListener("click",(function(A){A.preventDefault(),g(++B%C.children.length)}),!1);var Q=(performance||Date).now(),E=Q,i=0,o=A(new I.Panel("FPS","#0ff","#002")),D=A(new I.Panel("MS","#0f0","#020"));if(self.performance&&self.performance.memory)var a=A(new I.Panel("MB","#f08","#201"));return g(0),{REVISION:16,dom:C,addPanel:A,showPanel:g,begin:function(){Q=(performance||Date).now()},end:function(){i++;var A=(performance||Date).now();if(D.update(A-Q,200),A>E+1e3&&(o.update(1e3*i/(A-E),100),E=A,i=0,a)){var I=performance.memory;a.update(I.usedJSHeapSize/1048576,I.jsHeapSizeLimit/1048576)}return A},update:function(){Q=this.end()},domElement:C,setMode:g}}).Panel=function(A,I,g){var B=1/0,C=0,Q=Math.round,E=Q(window.devicePixelRatio||1),i=80*E,o=48*E,D=3*E,a=2*E,s=3*E,t=15*E,w=74*E,e=30*E,G=document.createElement("canvas");G.width=i,G.height=o,G.style.cssText="width:80px;height:48px";var h=G.getContext("2d");return h.font="bold "+9*E+"px Helvetica,Arial,sans-serif",h.textBaseline="top",h.fillStyle=g,h.fillRect(0,0,i,o),h.fillStyle=I,h.fillText(A,D,a),h.fillRect(s,t,w,e),h.fillStyle=g,h.globalAlpha=.9,h.fillRect(s,t,w,e),{dom:G,update:function(o,F){B=Math.min(B,o),C=Math.max(C,o),h.fillStyle=g,h.globalAlpha=1,h.fillRect(0,0,i,t),h.fillStyle=I,h.fillText(Q(o)+" "+A+" ("+Q(B)+"-"+Q(C)+")",D,a),h.drawImage(G,s+E,t,w-E,e,s,t,w-E,e),h.fillRect(s+w-E,t,E,e),h.fillStyle=g,h.globalAlpha=.9,h.fillRect(s+w-E,t,E,Q((1-o/F)*e))}}},I)},512(A){A.exports=function(A,I,g,B){var C=self||window;try{try{var Q;try{Q=new C.Blob([A])}catch(I){(Q=new(C.BlobBuilder||C.WebKitBlobBuilder||C.MozBlobBuilder||C.MSBlobBuilder)).append(A),Q=Q.getBlob()}var E=C.URL||C.webkitURL,i=E.createObjectURL(Q),o=new C[I](i,g);return E.revokeObjectURL(i),o}catch(B){return new C[I]("data:application/javascript,".concat(encodeURIComponent(A)),g)}}catch(A){if(!B)throw Error("Inline worker is not supported");return new C[I](B,g)}}}},I={};function g(B){var C=I[B];if(void 0!==C)return C.exports;var Q=I[B]={exports:{}};return A[B].call(Q.exports,Q,Q.exports,g),Q.exports}g.n=A=>{var I=A&&A.__esModule?()=>A.default:()=>A;return g.d(I,{a:I}),I},g.d=(A,I)=>{for(var B in I)g.o(I,B)&&!g.o(A,B)&&Object.defineProperty(A,B,{enumerable:!0,get:I[B]})},g.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(A){if("object"==typeof window)return window}}(),g.o=(A,I)=>Object.prototype.hasOwnProperty.call(A,I);class B{static createContainer(A){if(A.container.create){const A=document.createElement("div");A.id="app";const I=document.createElement("canvas");I.id="canvas";const g=document.createElement("video");g.id="video",g.setAttribute("autoplay",""),g.setAttribute("muted",""),g.setAttribute("playsinline",""),A.appendChild(g),A.appendChild(I);const B=document.getElementById("loading");return document.body.insertBefore(A,B),{container:A,canvas:I,video:g}}return{container:document.getElementById(A.container.containerName),canvas:document.getElementById(A.container.canvasName),video:document.getElementById("video")}}static createStats(A,I){if(A&&I.stats.createHtml){const A=document.createElement("div");A.id="stats",A.className="ui stats";const I=document.createElement("div");I.id="stats1",I.className="stats-item";const g=document.createElement("p");g.className="stats-item-title",g.innerText="Main",I.appendChild(g),A.appendChild(I);const B=document.createElement("div");B.id="stats2",B.className="stats-item";const C=document.createElement("p");C.className="stats-item-title",C.innerText="Worker",B.appendChild(C),A.appendChild(B);const Q=document.getElementById("loading");return document.body.insertBefore(A,Q),A}}static createLoading(A){if(A.loading.create){const I=document.createElement("div");I.id="loading";const g=document.createElement("img");g.src=A.loading.logo.src,g.alt=A.loading.logo.alt;const B=document.createElement("span");return B.setAttribute("class","loading-text"),B.innerText=A.loading.loadingMessage,I.appendChild(g),I.appendChild(B),document.body.insertBefore(I,document.body.firstChild),I}}}var C=g(571),Q=g.n(C);class E{canvas_process;context_process;_video;_facing;vw;vh;w;h;pw;ph;ox;oy;target;targetFrameRate=60;imageDataCache;_frame;lastCache=0;constructor(A){this.canvas_process=document.createElement("canvas"),this.context_process=this.canvas_process.getContext("2d",{alpha:!1,willReadFrequently:!0}),this._video=A,this.target=window||g.g,this._frame=0}get facing(){return this._facing}get height(){return this.vh}get width(){return this.vw}get video(){return this._video}get frame(){return this._frame}get canvasProcess(){return this.canvas_process}get contextProcess(){return this.context_process}getFrame(){return this._frame}getImage(){const A=Date.now();if(A-this.lastCache>1e3/this.targetFrameRate){this.context_process.drawImage(this.video,0,0,this.vw,this.vh,this.ox,this.oy,this.w,this.h);const I=this.context_process.getImageData(0,0,this.pw,this.ph);null==this.imageDataCache?this.imageDataCache=I.data:this.imageDataCache.set(I.data),this.lastCache=A,this._frame++}return new ImageData(this.imageDataCache.slice(),this.pw,this.ph)}get image(){const A=Date.now();if(A-this.lastCache>1e3/this.targetFrameRate){this.context_process.drawImage(this.video,0,0,this.vw,this.vh,this.ox,this.oy,this.w,this.h);const I=this.context_process.getImageData(0,0,this.pw,this.ph);null==this.imageDataCache?this.imageDataCache=I.data:this.imageDataCache.set(I.data),this.lastCache=A,this._frame++}return new ImageData(this.imageDataCache.slice(),this.pw,this.ph)}prepareImage(){this.vw=this._video.videoWidth,this.vh=this._video.videoHeight;const A=320/Math.max(this.vw,this.vh/3*4);this.w=Math.floor(this.vw*A),this.h=Math.floor(this.vh*A),this.pw=Math.floor(Math.max(this.w,this.h/3*4)),this.ph=Math.floor(Math.max(this.h,this.w/4*3)),this.ox=Math.floor((this.pw-this.w)/2),this.oy=Math.floor((this.ph-this.h)/2),this.canvas_process.width=this.pw,this.canvas_process.height=this.ph,this.context_process.fillStyle="black",this.context_process.fillRect(0,0,this.pw,this.ph)}async initialize(A){if(this._facing=A.facingMode||"environment",null!=A.targetFrameRate&&(this.targetFrameRate=A.targetFrameRate),!navigator.mediaDevices||!navigator.mediaDevices.getUserMedia)return Promise.reject("Sorry, Your device does not support this experience.");try{const I={audio:!1,video:{facingMode:this._facing,width:{min:A.width.min,max:A.width.max}}};if(navigator.mediaDevices.enumerateDevices){const A=await navigator.mediaDevices.enumerateDevices(),g=[];let B=0;A.forEach((function(A){"videoinput"==A.kind&&(g[B++]=A.deviceId)})),g.length>1&&(I.video.deviceId={exact:g[g.length-1]})}return this._video.srcObject=await navigator.mediaDevices.getUserMedia(I),this._video=await new Promise((A=>{this._video.onloadedmetadata=()=>A(this._video)})),this.prepareImage(),!0}catch(A){return Promise.reject(A)}}destroy(){const A=this._video;this.target.addEventListener("stopVideoStreaming",(function(){const I=A.srcObject;if(console.log("stop streaming"),null!=I){I.getTracks().forEach((function(A){A.stop()})),A.srcObject=null;let g=document.getElementById("app");null!=g&&g.remove()}}))}}function i(A,I){const g=320/Math.max(A,I/3*4),B=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)?window.outerWidth/A:1;let C=A*g,Q=I*g;return[A*B,I*B,Math.max(C,Q/3*4),Math.max(Q,C/4*3),C,Q]}async function o(A){try{const I=await fetch(A);if(!I.ok)throw new Error("HTTP error, status = "+I.status);return await I.json()}catch(A){return Promise.reject(A)}}var D=g(512),a=g.n(D);function s(){return a()('var A={274(A){var I;Object("undefined"!=typeof self?self:this),I=()=>(()=>{var A={172(A){A.exports=function(A,I){this.v=A,this.k=I},A.exports.__esModule=!0,A.exports.default=A.exports},993(A,I,g){var B=g(546);function C(){var I,g,Q="function"==typeof Symbol?Symbol:{},E=Q.iterator||"@@iterator",i=Q.toStringTag||"@@toStringTag";function o(A,C,Q,E){var i=C&&C.prototype instanceof a?C:a,o=Object.create(i.prototype);return B(o,"_invoke",function(A,B,C){var Q,E,i,o=0,a=C||[],w=!1,s={p:0,n:0,v:I,a:t,f:t.bind(I,4),d:function(A,g){return Q=A,E=0,i=I,s.n=g,D}};function t(A,B){for(E=A,i=B,g=0;!w&&o&&!C&&g<a.length;g++){var C,Q=a[g],t=s.p,G=Q[2];A>3?(C=G===B)&&(i=Q[(E=Q[4])?5:(E=3,3)],Q[4]=Q[5]=I):Q[0]<=t&&((C=A<2&&t<Q[1])?(E=0,s.v=B,s.n=Q[1]):t<G&&(C=A<3||Q[0]>B||B>G)&&(Q[4]=A,Q[5]=B,s.n=G,E=0))}if(C||A>1)return D;throw w=!0,B}return function(C,a,G){if(o>1)throw TypeError("Generator is already running");for(w&&1===a&&t(a,G),E=a,i=G;(g=E<2?I:i)||!w;){Q||(E?E<3?(E>1&&(s.n=-1),t(E,i)):s.n=i:s.v=i);try{if(o=2,Q){if(E||(C="next"),g=Q[C]){if(!(g=g.call(Q,i)))throw TypeError("iterator result is not an object");if(!g.done)return g;i=g.value,E<2&&(E=0)}else 1===E&&(g=Q.return)&&g.call(Q),E<2&&(i=TypeError("The iterator does not provide a \'"+C+"\' method"),E=1);Q=I}else if((g=(w=s.n<0)?i:A.call(B,s))!==D)break}catch(A){Q=I,E=1,i=A}finally{o=1}}return{value:g,done:w}}}(A,Q,E),!0),o}var D={};function a(){}function w(){}function s(){}g=Object.getPrototypeOf;var t=[][E]?g(g([][E]())):(B(g={},E,(function(){return this})),g),G=s.prototype=a.prototype=Object.create(t);function F(A){return Object.setPrototypeOf?Object.setPrototypeOf(A,s):(A.__proto__=s,B(A,i,"GeneratorFunction")),A.prototype=Object.create(G),A}return w.prototype=s,B(G,"constructor",s),B(s,"constructor",w),w.displayName="GeneratorFunction",B(s,i,"GeneratorFunction"),B(G),B(G,i,"Generator"),B(G,E,(function(){return this})),B(G,"toString",(function(){return"[object Generator]"})),(A.exports=C=function(){return{w:o,m:F}},A.exports.__esModule=!0,A.exports.default=A.exports)()}A.exports=C,A.exports.__esModule=!0,A.exports.default=A.exports},869(A,I,g){var B=g(887);A.exports=function(A,I,g,C,Q){var E=B(A,I,g,C,Q);return E.next().then((function(A){return A.done?A.value:E.next()}))},A.exports.__esModule=!0,A.exports.default=A.exports},887(A,I,g){var B=g(993),C=g(791);A.exports=function(A,I,g,Q,E){return new C(B().w(A,I,g,Q),E||Promise)},A.exports.__esModule=!0,A.exports.default=A.exports},791(A,I,g){var B=g(172),C=g(546);A.exports=function A(I,g){function Q(A,C,E,i){try{var o=I[A](C),D=o.value;return D instanceof B?g.resolve(D.v).then((function(A){Q("next",A,E,i)}),(function(A){Q("throw",A,E,i)})):g.resolve(D).then((function(A){o.value=A,E(o)}),(function(A){return Q("throw",A,E,i)}))}catch(A){i(A)}}var E;this.next||(C(A.prototype),C(A.prototype,"function"==typeof Symbol&&Symbol.asyncIterator||"@asyncIterator",(function(){return this}))),C(this,"_invoke",(function(A,I,B){function C(){return new g((function(I,g){Q(A,B,I,g)}))}return E=E?E.then(C,C):C()}),!0)},A.exports.__esModule=!0,A.exports.default=A.exports},546(A){function I(g,B,C,Q){var E=Object.defineProperty;try{E({},"",{})}catch(g){E=0}A.exports=I=function(A,g,B,C){function Q(g,B){I(A,g,(function(A){return this._invoke(g,B,A)}))}g?E?E(A,g,{value:B,enumerable:!C,configurable:!C,writable:!C}):A[g]=B:(Q("next",0),Q("throw",1),Q("return",2))},A.exports.__esModule=!0,A.exports.default=A.exports,I(g,B,C,Q)}A.exports=I,A.exports.__esModule=!0,A.exports.default=A.exports},373(A){A.exports=function(A){var I=Object(A),g=[];for(var B in I)g.unshift(B);return function A(){for(;g.length;)if((B=g.pop())in I)return A.value=B,A.done=!1,A;return A.done=!0,A}},A.exports.__esModule=!0,A.exports.default=A.exports},633(A,I,g){var B=g(172),C=g(993),Q=g(869),E=g(887),i=g(791),o=g(373),D=g(579);function a(){var I=C(),g=I.m(a),w=(Object.getPrototypeOf?Object.getPrototypeOf(g):g.__proto__).constructor;function s(A){var I="function"==typeof A&&A.constructor;return!!I&&(I===w||"GeneratorFunction"===(I.displayName||I.name))}var t={throw:1,return:2,break:3,continue:3};function G(A){var I,g;return function(B){I||(I={stop:function(){return g(B.a,2)},catch:function(){return B.v},abrupt:function(A,I){return g(B.a,t[A],I)},delegateYield:function(A,C,Q){return I.resultName=C,g(B.d,D(A),Q)},finish:function(A){return g(B.f,A)}},g=function(A,g,C){B.p=I.prev,B.n=I.next;try{return A(g,C)}finally{I.next=B.n}}),I.resultName&&(I[I.resultName]=B.v,I.resultName=void 0),I.sent=B.v,I.next=B.n;try{return A.call(this,I)}finally{B.p=I.prev,B.n=I.next}}}return(A.exports=a=function(){return{wrap:function(A,g,B,C){return I.w(G(A),g,B,C&&C.reverse())},isGeneratorFunction:s,mark:I.m,awrap:function(A,I){return new B(A,I)},AsyncIterator:i,async:function(A,I,g,B,C){return(s(I)?E:Q)(G(A),I,g,B,C)},keys:o,values:D}},A.exports.__esModule=!0,A.exports.default=A.exports)()}A.exports=a,A.exports.__esModule=!0,A.exports.default=A.exports},579(A,I,g){var B=g(738).default;A.exports=function(A){if(null!=A){var I=A["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],g=0;if(I)return I.call(A);if("function"==typeof A.next)return A;if(!isNaN(A.length))return{next:function(){return A&&g>=A.length&&(A=void 0),{value:A&&A[g++],done:!A}}}}throw new TypeError(B(A)+" is not iterable")},A.exports.__esModule=!0,A.exports.default=A.exports},738(A){function I(g){return A.exports=I="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(A){return typeof A}:function(A){return A&&"function"==typeof Symbol&&A.constructor===Symbol&&A!==Symbol.prototype?"symbol":typeof A},A.exports.__esModule=!0,A.exports.default=A.exports,I(g)}A.exports=I,A.exports.__esModule=!0,A.exports.default=A.exports},756(A,I,g){var B=g(633)();A.exports=B;try{regeneratorRuntime=B}catch(A){"object"==typeof globalThis?globalThis.regeneratorRuntime=B:Function("r","regeneratorRuntime = r")(B)}}},I={};function g(B){var C=I[B];if(void 0!==C)return C.exports;var Q=I[B]={exports:{}};return A[B](Q,Q.exports,g),Q.exports}g.n=A=>{var I=A&&A.__esModule?()=>A.default:()=>A;return g.d(I,{a:I}),I},g.d=(A,I)=>{for(var B in I)g.o(I,B)&&!g.o(A,B)&&Object.defineProperty(A,B,{enumerable:!0,get:I[B]})},g.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(A){if("object"==typeof window)return window}}(),g.o=(A,I)=>Object.prototype.hasOwnProperty.call(A,I),g.r=A=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(A,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(A,"__esModule",{value:!0})};var B={};return(()=>{g.r(B),g.d(B,{ARControllerNFT:()=>qI,ARToolkitNFT:()=>dI});var A={};function I(A,I,g,B,C,Q,E){try{var i=A[Q](E),o=i.value}catch(A){return void g(A)}i.done?I(o):Promise.resolve(o).then(B,C)}function C(A){return function(){var g=this,B=arguments;return new Promise((function(C,Q){var E=A.apply(g,B);function i(A){I(E,C,Q,i,o,"next",A)}function o(A){I(E,C,Q,i,o,"throw",A)}i(void 0)}))}}function Q(A,I){if(!(A instanceof I))throw new TypeError("Cannot call a class as a function")}function E(A){return E="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(A){return typeof A}:function(A){return A&&"function"==typeof Symbol&&A.constructor===Symbol&&A!==Symbol.prototype?"symbol":typeof A},E(A)}function i(A){var I=function(A){if("object"!=E(A)||!A)return A;var I=A[Symbol.toPrimitive];if(void 0!==I){var g=I.call(A,"string");if("object"!=E(g))return g;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(A)}(A);return"symbol"==E(I)?I:I+""}function o(A,I){for(var g=0;g<I.length;g++){var B=I[g];B.enumerable=B.enumerable||!1,B.configurable=!0,"value"in B&&(B.writable=!0),Object.defineProperty(A,i(B.key),B)}}function D(A,I,g){return I&&o(A.prototype,I),g&&o(A,g),Object.defineProperty(A,"prototype",{writable:!1}),A}function a(A,I,g){return(I=i(I))in A?Object.defineProperty(A,I,{value:g,enumerable:!0,configurable:!0,writable:!0}):A[I]=g,A}g.r(A),g.d(A,{hasBrowserEnv:()=>kA,hasStandardBrowserEnv:()=>MA,hasStandardBrowserWebWorkerEnv:()=>KA,navigator:()=>nA,origin:()=>JA});var w=g(756),s=g.n(w);const t=async function(A={}){var I,g=A,B="./this.program";try{new URL(".","file:///C:/Users/perda/kalwalt-github/webarkit-org/jsartoolkitNFT/build/artoolkitNFT_ES6_wasm.simd.js").href}catch{}I=async A=>{var I=await fetch(A,{credentials:"same-origin"});if(I.ok)return I.arrayBuffer();throw new Error(I.status+" : "+I.url)};var C,Q,E,i,o,D,a,w,s,t,G,F,h,R,e=console.log.bind(console),r=console.error.bind(console),y=!1,S=!1;function N(){var A=MI.buffer;i=new Int8Array(A),D=new Int16Array(A),o=new Uint8Array(A),a=new Uint16Array(A),w=new Int32Array(A),s=new Uint32Array(A),t=new Float32Array(A),G=new Float64Array(A),F=new BigInt64Array(A),h=new BigUint64Array(A)}function U(A){g.onAbort?.(A),r(A="Aborted("+A+")"),y=!0,A+=". Build with -sASSERTIONS for more info.";var I=new WebAssembly.RuntimeError(A);throw E?.(I),I}class c{name="ExitStatus";constructor(A){this.message=`Program terminated with exit(${A})`,this.status=A}}var k=A=>{for(;A.length>0;)A.shift()(g)},n=[],M=A=>n.push(A),K=[],J=A=>K.push(A),Y=!0,L=A=>kI(A),l=()=>nI();class H{constructor(A){this.excPtr=A,this.ptr=A-24}set_type(A){s[this.ptr+4>>2]=A}get_type(){return s[this.ptr+4>>2]}set_destructor(A){s[this.ptr+8>>2]=A}get_destructor(){return s[this.ptr+8>>2]}set_caught(A){A=A?1:0,i[this.ptr+12]=A}get_caught(){return 0!=i[this.ptr+12]}set_rethrown(A){A=A?1:0,i[this.ptr+13]=A}get_rethrown(){return 0!=i[this.ptr+13]}init(A,I){this.set_adjusted_ptr(0),this.set_type(A),this.set_destructor(I)}set_adjusted_ptr(A){s[this.ptr+16>>2]=A}get_adjusted_ptr(){return s[this.ptr+16>>2]}}var d=()=>{var A=w[+gA.varargs>>2];return gA.varargs+=4,A},q=d,b={isAbs:A=>"/"===A.charAt(0),splitPath:A=>/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/.exec(A).slice(1),normalizeArray:(A,I)=>{for(var g=0,B=A.length-1;B>=0;B--){var C=A[B];"."===C?A.splice(B,1):".."===C?(A.splice(B,1),g++):g&&(A.splice(B,1),g--)}if(I)for(;g;g--)A.unshift("..");return A},normalize:A=>{var I=b.isAbs(A),g="/"===A.slice(-1);return(A=b.normalizeArray(A.split("/").filter((A=>!!A)),!I).join("/"))||I||(A="."),A&&g&&(A+="/"),(I?"/":"")+A},dirname:A=>{var I=b.splitPath(A),g=I[0],B=I[1];return g||B?(B&&(B=B.slice(0,-1)),g+B):"."},basename:A=>A&&A.match(/([^\\/]+|\\/)\\/*$/)[1],join:(...A)=>b.normalize(A.join("/")),join2:(A,I)=>b.normalize(A+"/"+I)},f=A=>{(f=A=>crypto.getRandomValues(A))(A)},m={resolve:(...A)=>{for(var I="",g=!1,B=A.length-1;B>=-1&&!g;B--){var C=B>=0?A[B]:AA.cwd();if("string"!=typeof C)throw new TypeError("Arguments to path.resolve must be strings");if(!C)return"";I=C+"/"+I,g=b.isAbs(C)}return(g?"/":"")+(I=b.normalizeArray(I.split("/").filter((A=>!!A)),!g).join("/"))||"."},relative:(A,I)=>{function g(A){for(var I=0;I<A.length&&""===A[I];I++);for(var g=A.length-1;g>=0&&""===A[g];g--);return I>g?[]:A.slice(I,g-I+1)}A=m.resolve(A).slice(1),I=m.resolve(I).slice(1);for(var B=g(A.split("/")),C=g(I.split("/")),Q=Math.min(B.length,C.length),E=Q,i=0;i<Q;i++)if(B[i]!==C[i]){E=i;break}var o=[];for(i=E;i<B.length;i++)o.push("..");return(o=o.concat(C.slice(E))).join("/")}},u=new TextDecoder,W=(A,I,g,B)=>{var C=I+g;if(B)return C;for(;A[I]&&!(I>=C);)++I;return I},p=(A,I=0,g,B)=>{var C=W(A,I,g,B);return u.decode(A.buffer?A.subarray(I,C):new Uint8Array(A.slice(I,C)))},Z=[],V=A=>{for(var I=0,g=0;g<A.length;++g){var B=A.charCodeAt(g);B<=127?I++:B<=2047?I+=2:B>=55296&&B<=57343?(I+=4,++g):I+=3}return I},O=(A,I,g,B)=>{if(!(B>0))return 0;for(var C=g,Q=g+B-1,E=0;E<A.length;++E){var i=A.codePointAt(E);if(i<=127){if(g>=Q)break;I[g++]=i}else if(i<=2047){if(g+1>=Q)break;I[g++]=192|i>>6,I[g++]=128|63&i}else if(i<=65535){if(g+2>=Q)break;I[g++]=224|i>>12,I[g++]=128|i>>6&63,I[g++]=128|63&i}else{if(g+3>=Q)break;I[g++]=240|i>>18,I[g++]=128|i>>12&63,I[g++]=128|i>>6&63,I[g++]=128|63&i,E++}}return I[g]=0,g-C},x=(A,I,g)=>{var B=g>0?g:V(A)+1,C=new Array(B),Q=O(A,C,0,C.length);return I&&(C.length=Q),C},T={ttys:[],init(){},shutdown(){},register(A,I){T.ttys[A]={input:[],output:[],ops:I},AA.registerDevice(A,T.stream_ops)},stream_ops:{open(A){var I=T.ttys[A.node.rdev];if(!I)throw new AA.ErrnoError(43);A.tty=I,A.seekable=!1},close(A){A.tty.ops.fsync(A.tty)},fsync(A){A.tty.ops.fsync(A.tty)},read(A,I,g,B,C){if(!A.tty||!A.tty.ops.get_char)throw new AA.ErrnoError(60);for(var Q=0,E=0;E<B;E++){var i;try{i=A.tty.ops.get_char(A.tty)}catch(A){throw new AA.ErrnoError(29)}if(void 0===i&&0===Q)throw new AA.ErrnoError(6);if(null==i)break;Q++,I[g+E]=i}return Q&&(A.node.atime=Date.now()),Q},write(A,I,g,B,C){if(!A.tty||!A.tty.ops.put_char)throw new AA.ErrnoError(60);try{for(var Q=0;Q<B;Q++)A.tty.ops.put_char(A.tty,I[g+Q])}catch(A){throw new AA.ErrnoError(29)}return B&&(A.node.mtime=A.node.ctime=Date.now()),Q}},default_tty_ops:{get_char:A=>(()=>{if(!Z.length){var A=null;if(globalThis.window?.prompt&&null!==(A=window.prompt("Input: "))&&(A+="\\n"),!A)return null;Z=x(A,!0)}return Z.shift()})(),put_char(A,I){null===I||10===I?(e(p(A.output)),A.output=[]):0!=I&&A.output.push(I)},fsync(A){A.output?.length>0&&(e(p(A.output)),A.output=[])},ioctl_tcgets:A=>({c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}),ioctl_tcsets:(A,I,g)=>0,ioctl_tiocgwinsz:A=>[24,80]},default_tty1_ops:{put_char(A,I){null===I||10===I?(r(p(A.output)),A.output=[]):0!=I&&A.output.push(I)},fsync(A){A.output?.length>0&&(r(p(A.output)),A.output=[])}}},X=A=>{U()},j={ops_table:null,mount:A=>j.createNode(null,"/",16895,0),createNode(A,I,g,B){if(AA.isBlkdev(g)||AA.isFIFO(g))throw new AA.ErrnoError(63);j.ops_table||={dir:{node:{getattr:j.node_ops.getattr,setattr:j.node_ops.setattr,lookup:j.node_ops.lookup,mknod:j.node_ops.mknod,rename:j.node_ops.rename,unlink:j.node_ops.unlink,rmdir:j.node_ops.rmdir,readdir:j.node_ops.readdir,symlink:j.node_ops.symlink},stream:{llseek:j.stream_ops.llseek}},file:{node:{getattr:j.node_ops.getattr,setattr:j.node_ops.setattr},stream:{llseek:j.stream_ops.llseek,read:j.stream_ops.read,write:j.stream_ops.write,mmap:j.stream_ops.mmap,msync:j.stream_ops.msync}},link:{node:{getattr:j.node_ops.getattr,setattr:j.node_ops.setattr,readlink:j.node_ops.readlink},stream:{}},chrdev:{node:{getattr:j.node_ops.getattr,setattr:j.node_ops.setattr},stream:AA.chrdev_stream_ops}};var C=AA.createNode(A,I,g,B);return AA.isDir(C.mode)?(C.node_ops=j.ops_table.dir.node,C.stream_ops=j.ops_table.dir.stream,C.contents={}):AA.isFile(C.mode)?(C.node_ops=j.ops_table.file.node,C.stream_ops=j.ops_table.file.stream,C.usedBytes=0,C.contents=null):AA.isLink(C.mode)?(C.node_ops=j.ops_table.link.node,C.stream_ops=j.ops_table.link.stream):AA.isChrdev(C.mode)&&(C.node_ops=j.ops_table.chrdev.node,C.stream_ops=j.ops_table.chrdev.stream),C.atime=C.mtime=C.ctime=Date.now(),A&&(A.contents[I]=C,A.atime=A.mtime=A.ctime=C.atime),C},getFileDataAsTypedArray:A=>A.contents?A.contents.subarray?A.contents.subarray(0,A.usedBytes):new Uint8Array(A.contents):new Uint8Array(0),expandFileStorage(A,I){var g=A.contents?A.contents.length:0;if(!(g>=I)){I=Math.max(I,g*(g<1048576?2:1.125)>>>0),0!=g&&(I=Math.max(I,256));var B=A.contents;A.contents=new Uint8Array(I),A.usedBytes>0&&A.contents.set(B.subarray(0,A.usedBytes),0)}},resizeFileStorage(A,I){if(A.usedBytes!=I)if(0==I)A.contents=null,A.usedBytes=0;else{var g=A.contents;A.contents=new Uint8Array(I),g&&A.contents.set(g.subarray(0,Math.min(I,A.usedBytes))),A.usedBytes=I}},node_ops:{getattr(A){var I={};return I.dev=AA.isChrdev(A.mode)?A.id:1,I.ino=A.id,I.mode=A.mode,I.nlink=1,I.uid=0,I.gid=0,I.rdev=A.rdev,AA.isDir(A.mode)?I.size=4096:AA.isFile(A.mode)?I.size=A.usedBytes:AA.isLink(A.mode)?I.size=A.link.length:I.size=0,I.atime=new Date(A.atime),I.mtime=new Date(A.mtime),I.ctime=new Date(A.ctime),I.blksize=4096,I.blocks=Math.ceil(I.size/I.blksize),I},setattr(A,I){for(const g of["mode","atime","mtime","ctime"])null!=I[g]&&(A[g]=I[g]);void 0!==I.size&&j.resizeFileStorage(A,I.size)},lookup(A,I){throw j.doesNotExistError||(j.doesNotExistError=new AA.ErrnoError(44),j.doesNotExistError.stack="<generic error, no stack>"),j.doesNotExistError},mknod:(A,I,g,B)=>j.createNode(A,I,g,B),rename(A,I,g){var B;try{B=AA.lookupNode(I,g)}catch(A){}if(B){if(AA.isDir(A.mode))for(var C in B.contents)throw new AA.ErrnoError(55);AA.hashRemoveNode(B)}delete A.parent.contents[A.name],I.contents[g]=A,A.name=g,I.ctime=I.mtime=A.parent.ctime=A.parent.mtime=Date.now()},unlink(A,I){delete A.contents[I],A.ctime=A.mtime=Date.now()},rmdir(A,I){var g=AA.lookupNode(A,I);for(var B in g.contents)throw new AA.ErrnoError(55);delete A.contents[I],A.ctime=A.mtime=Date.now()},readdir:A=>[".","..",...Object.keys(A.contents)],symlink(A,I,g){var B=j.createNode(A,I,41471,0);return B.link=g,B},readlink(A){if(!AA.isLink(A.mode))throw new AA.ErrnoError(28);return A.link}},stream_ops:{read(A,I,g,B,C){var Q=A.node.contents;if(C>=A.node.usedBytes)return 0;var E=Math.min(A.node.usedBytes-C,B);if(E>8&&Q.subarray)I.set(Q.subarray(C,C+E),g);else for(var i=0;i<E;i++)I[g+i]=Q[C+i];return E},write(A,I,g,B,C,Q){if(I.buffer===i.buffer&&(Q=!1),!B)return 0;var E=A.node;if(E.mtime=E.ctime=Date.now(),I.subarray&&(!E.contents||E.contents.subarray)){if(Q)return E.contents=I.subarray(g,g+B),E.usedBytes=B,B;if(0===E.usedBytes&&0===C)return E.contents=I.slice(g,g+B),E.usedBytes=B,B;if(C+B<=E.usedBytes)return E.contents.set(I.subarray(g,g+B),C),B}if(j.expandFileStorage(E,C+B),E.contents.subarray&&I.subarray)E.contents.set(I.subarray(g,g+B),C);else for(var o=0;o<B;o++)E.contents[C+o]=I[g+o];return E.usedBytes=Math.max(E.usedBytes,C+B),B},llseek(A,I,g){var B=I;if(1===g?B+=A.position:2===g&&AA.isFile(A.node.mode)&&(B+=A.node.usedBytes),B<0)throw new AA.ErrnoError(28);return B},mmap(A,I,g,B,C){if(!AA.isFile(A.node.mode))throw new AA.ErrnoError(43);var Q,E,o=A.node.contents;if(2&C||!o||o.buffer!==i.buffer){if(E=!0,!(Q=X()))throw new AA.ErrnoError(48);o&&((g>0||g+I<o.length)&&(o=o.subarray?o.subarray(g,g+I):Array.prototype.slice.call(o,g,g+I)),i.set(o,Q))}else E=!1,Q=o.byteOffset;return{ptr:Q,allocated:E}},msync:(A,I,g,B,C)=>(j.stream_ops.write(A,I,0,B,g,!1),0)}},v=(A,I)=>{var g=0;return A&&(g|=365),I&&(g|=146),g},P=0,z=null,_=[],$=async(A,B,C,Q,E,i,o,D)=>{var a=B?m.resolve(b.join2(A,B)):A;P++,g.monitorRunDependencies?.(P);try{var w=C;"string"==typeof C&&(w=await(async A=>{var g=await I(A);return new Uint8Array(g)})(C)),w=await(async(A,I)=>{for(var g of("undefined"!=typeof Browser&&Browser.init(),_))if(g.canHandle(I))return g.handle(A,I);return A})(w,a),D?.(),i||((...A)=>{AA.createDataFile(...A)})(A,B,w,Q,E,o)}finally{(()=>{if(P--,g.monitorRunDependencies?.(P),0==P&&z){var A=z;z=null,A()}})()}},AA={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class{name="ErrnoError";constructor(A){this.errno=A}},FSStream:class{shared={};get object(){return this.node}set object(A){this.node=A}get isRead(){return 1!=(2097155&this.flags)}get isWrite(){return!!(2097155&this.flags)}get isAppend(){return 1024&this.flags}get flags(){return this.shared.flags}set flags(A){this.shared.flags=A}get position(){return this.shared.position}set position(A){this.shared.position=A}},FSNode:class{node_ops={};stream_ops={};readMode=365;writeMode=146;mounted=null;constructor(A,I,g,B){A||(A=this),this.parent=A,this.mount=A.mount,this.id=AA.nextInode++,this.name=I,this.mode=g,this.rdev=B,this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(A){A?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(A){A?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return AA.isDir(this.mode)}get isDevice(){return AA.isChrdev(this.mode)}},lookupPath(A,I={}){if(!A)throw new AA.ErrnoError(44);I.follow_mount??=!0,b.isAbs(A)||(A=AA.cwd()+"/"+A);A:for(var g=0;g<40;g++){for(var B=A.split("/").filter((A=>!!A)),C=AA.root,Q="/",E=0;E<B.length;E++){var i=E===B.length-1;if(i&&I.parent)break;if("."!==B[E])if(".."!==B[E]){Q=b.join2(Q,B[E]);try{C=AA.lookupNode(C,B[E])}catch(A){if(44===A?.errno&&i&&I.noent_okay)return{path:Q};throw A}if(!AA.isMountpoint(C)||i&&!I.follow_mount||(C=C.mounted.root),AA.isLink(C.mode)&&(!i||I.follow)){if(!C.node_ops.readlink)throw new AA.ErrnoError(52);var o=C.node_ops.readlink(C);b.isAbs(o)||(o=b.dirname(Q)+"/"+o),A=o+"/"+B.slice(E+1).join("/");continue A}}else{if(Q=b.dirname(Q),AA.isRoot(C)){A=Q+"/"+B.slice(E+1).join("/"),g--;continue A}C=C.parent}}return{path:Q,node:C}}throw new AA.ErrnoError(32)},getPath(A){for(var I;;){if(AA.isRoot(A)){var g=A.mount.mountpoint;return I?"/"!==g[g.length-1]?`${g}/${I}`:g+I:g}I=I?`${A.name}/${I}`:A.name,A=A.parent}},hashName(A,I){for(var g=0,B=0;B<I.length;B++)g=(g<<5)-g+I.charCodeAt(B)|0;return(A+g>>>0)%AA.nameTable.length},hashAddNode(A){var I=AA.hashName(A.parent.id,A.name);A.name_next=AA.nameTable[I],AA.nameTable[I]=A},hashRemoveNode(A){var I=AA.hashName(A.parent.id,A.name);if(AA.nameTable[I]===A)AA.nameTable[I]=A.name_next;else for(var g=AA.nameTable[I];g;){if(g.name_next===A){g.name_next=A.name_next;break}g=g.name_next}},lookupNode(A,I){var g=AA.mayLookup(A);if(g)throw new AA.ErrnoError(g);for(var B=AA.hashName(A.id,I),C=AA.nameTable[B];C;C=C.name_next){var Q=C.name;if(C.parent.id===A.id&&Q===I)return C}return AA.lookup(A,I)},createNode(A,I,g,B){var C=new AA.FSNode(A,I,g,B);return AA.hashAddNode(C),C},destroyNode(A){AA.hashRemoveNode(A)},isRoot:A=>A===A.parent,isMountpoint:A=>!!A.mounted,isFile:A=>32768==(61440&A),isDir:A=>16384==(61440&A),isLink:A=>40960==(61440&A),isChrdev:A=>8192==(61440&A),isBlkdev:A=>24576==(61440&A),isFIFO:A=>4096==(61440&A),isSocket:A=>!(49152&~A),flagsToPermissionString(A){var I=["r","w","rw"][3&A];return 512&A&&(I+="w"),I},nodePermissions:(A,I)=>AA.ignorePermissions||(!I.includes("r")||292&A.mode)&&(!I.includes("w")||146&A.mode)&&(!I.includes("x")||73&A.mode)?0:2,mayLookup:A=>AA.isDir(A.mode)?AA.nodePermissions(A,"x")||(A.node_ops.lookup?0:2):54,mayCreate(A,I){if(!AA.isDir(A.mode))return 54;try{return AA.lookupNode(A,I),20}catch(A){}return AA.nodePermissions(A,"wx")},mayDelete(A,I,g){var B;try{B=AA.lookupNode(A,I)}catch(A){return A.errno}var C=AA.nodePermissions(A,"wx");if(C)return C;if(g){if(!AA.isDir(B.mode))return 54;if(AA.isRoot(B)||AA.getPath(B)===AA.cwd())return 10}else if(AA.isDir(B.mode))return 31;return 0},mayOpen:(A,I)=>A?AA.isLink(A.mode)?32:AA.isDir(A.mode)&&("r"!==AA.flagsToPermissionString(I)||576&I)?31:AA.nodePermissions(A,AA.flagsToPermissionString(I)):44,checkOpExists(A,I){if(!A)throw new AA.ErrnoError(I);return A},MAX_OPEN_FDS:4096,nextfd(){for(var A=0;A<=AA.MAX_OPEN_FDS;A++)if(!AA.streams[A])return A;throw new AA.ErrnoError(33)},getStreamChecked(A){var I=AA.getStream(A);if(!I)throw new AA.ErrnoError(8);return I},getStream:A=>AA.streams[A],createStream:(A,I=-1)=>(A=Object.assign(new AA.FSStream,A),-1==I&&(I=AA.nextfd()),A.fd=I,AA.streams[I]=A,A),closeStream(A){AA.streams[A]=null},dupStream(A,I=-1){var g=AA.createStream(A,I);return g.stream_ops?.dup?.(g),g},doSetAttr(A,I,g){var B=A?.stream_ops.setattr,C=B?A:I;B??=I.node_ops.setattr,AA.checkOpExists(B,63),B(C,g)},chrdev_stream_ops:{open(A){var I=AA.getDevice(A.node.rdev);A.stream_ops=I.stream_ops,A.stream_ops.open?.(A)},llseek(){throw new AA.ErrnoError(70)}},major:A=>A>>8,minor:A=>255&A,makedev:(A,I)=>A<<8|I,registerDevice(A,I){AA.devices[A]={stream_ops:I}},getDevice:A=>AA.devices[A],getMounts(A){for(var I=[],g=[A];g.length;){var B=g.pop();I.push(B),g.push(...B.mounts)}return I},syncfs(A,I){"function"==typeof A&&(I=A,A=!1),AA.syncFSRequests++,AA.syncFSRequests>1&&r(`warning: ${AA.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var g=AA.getMounts(AA.root.mount),B=0;function C(A){return AA.syncFSRequests--,I(A)}function Q(A){if(A)return Q.errored?void 0:(Q.errored=!0,C(A));++B>=g.length&&C(null)}g.forEach((I=>{if(!I.type.syncfs)return Q(null);I.type.syncfs(I,A,Q)}))},mount(A,I,g){var B,C="/"===g,Q=!g;if(C&&AA.root)throw new AA.ErrnoError(10);if(!C&&!Q){var E=AA.lookupPath(g,{follow_mount:!1});if(g=E.path,B=E.node,AA.isMountpoint(B))throw new AA.ErrnoError(10);if(!AA.isDir(B.mode))throw new AA.ErrnoError(54)}var i={type:A,opts:I,mountpoint:g,mounts:[]},o=A.mount(i);return o.mount=i,i.root=o,C?AA.root=o:B&&(B.mounted=i,B.mount&&B.mount.mounts.push(i)),o},unmount(A){var I=AA.lookupPath(A,{follow_mount:!1});if(!AA.isMountpoint(I.node))throw new AA.ErrnoError(28);var g=I.node,B=g.mounted,C=AA.getMounts(B);Object.keys(AA.nameTable).forEach((A=>{for(var I=AA.nameTable[A];I;){var g=I.name_next;C.includes(I.mount)&&AA.destroyNode(I),I=g}})),g.mounted=null;var Q=g.mount.mounts.indexOf(B);g.mount.mounts.splice(Q,1)},lookup:(A,I)=>A.node_ops.lookup(A,I),mknod(A,I,g){var B=AA.lookupPath(A,{parent:!0}).node,C=b.basename(A);if(!C)throw new AA.ErrnoError(28);if("."===C||".."===C)throw new AA.ErrnoError(20);var Q=AA.mayCreate(B,C);if(Q)throw new AA.ErrnoError(Q);if(!B.node_ops.mknod)throw new AA.ErrnoError(63);return B.node_ops.mknod(B,C,I,g)},statfs:A=>AA.statfsNode(AA.lookupPath(A,{follow:!0}).node),statfsStream:A=>AA.statfsNode(A.node),statfsNode(A){var I={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:AA.nextInode,ffree:AA.nextInode-1,fsid:42,flags:2,namelen:255};return A.node_ops.statfs&&Object.assign(I,A.node_ops.statfs(A.mount.opts.root)),I},create:(A,I=438)=>(I&=4095,I|=32768,AA.mknod(A,I,0)),mkdir:(A,I=511)=>(I&=1023,I|=16384,AA.mknod(A,I,0)),mkdirTree(A,I){var g=A.split("/"),B="";for(var C of g)if(C){(B||b.isAbs(A))&&(B+="/"),B+=C;try{AA.mkdir(B,I)}catch(A){if(20!=A.errno)throw A}}},mkdev:(A,I,g)=>(void 0===g&&(g=I,I=438),I|=8192,AA.mknod(A,I,g)),symlink(A,I){if(!m.resolve(A))throw new AA.ErrnoError(44);var g=AA.lookupPath(I,{parent:!0}).node;if(!g)throw new AA.ErrnoError(44);var B=b.basename(I),C=AA.mayCreate(g,B);if(C)throw new AA.ErrnoError(C);if(!g.node_ops.symlink)throw new AA.ErrnoError(63);return g.node_ops.symlink(g,B,A)},rename(A,I){var g,B,C=b.dirname(A),Q=b.dirname(I),E=b.basename(A),i=b.basename(I);if(g=AA.lookupPath(A,{parent:!0}).node,B=AA.lookupPath(I,{parent:!0}).node,!g||!B)throw new AA.ErrnoError(44);if(g.mount!==B.mount)throw new AA.ErrnoError(75);var o,D=AA.lookupNode(g,E),a=m.relative(A,Q);if("."!==a.charAt(0))throw new AA.ErrnoError(28);if("."!==(a=m.relative(I,C)).charAt(0))throw new AA.ErrnoError(55);try{o=AA.lookupNode(B,i)}catch(A){}if(D!==o){var w=AA.isDir(D.mode),s=AA.mayDelete(g,E,w);if(s)throw new AA.ErrnoError(s);if(s=o?AA.mayDelete(B,i,w):AA.mayCreate(B,i))throw new AA.ErrnoError(s);if(!g.node_ops.rename)throw new AA.ErrnoError(63);if(AA.isMountpoint(D)||o&&AA.isMountpoint(o))throw new AA.ErrnoError(10);if(B!==g&&(s=AA.nodePermissions(g,"w")))throw new AA.ErrnoError(s);AA.hashRemoveNode(D);try{g.node_ops.rename(D,B,i),D.parent=B}catch(A){throw A}finally{AA.hashAddNode(D)}}},rmdir(A){var I=AA.lookupPath(A,{parent:!0}).node,g=b.basename(A),B=AA.lookupNode(I,g),C=AA.mayDelete(I,g,!0);if(C)throw new AA.ErrnoError(C);if(!I.node_ops.rmdir)throw new AA.ErrnoError(63);if(AA.isMountpoint(B))throw new AA.ErrnoError(10);I.node_ops.rmdir(I,g),AA.destroyNode(B)},readdir(A){var I=AA.lookupPath(A,{follow:!0}).node;return AA.checkOpExists(I.node_ops.readdir,54)(I)},unlink(A){var I=AA.lookupPath(A,{parent:!0}).node;if(!I)throw new AA.ErrnoError(44);var g=b.basename(A),B=AA.lookupNode(I,g),C=AA.mayDelete(I,g,!1);if(C)throw new AA.ErrnoError(C);if(!I.node_ops.unlink)throw new AA.ErrnoError(63);if(AA.isMountpoint(B))throw new AA.ErrnoError(10);I.node_ops.unlink(I,g),AA.destroyNode(B)},readlink(A){var I=AA.lookupPath(A).node;if(!I)throw new AA.ErrnoError(44);if(!I.node_ops.readlink)throw new AA.ErrnoError(28);return I.node_ops.readlink(I)},stat(A,I){var g=AA.lookupPath(A,{follow:!I}).node;return AA.checkOpExists(g.node_ops.getattr,63)(g)},fstat(A){var I=AA.getStreamChecked(A),g=I.node,B=I.stream_ops.getattr,C=B?I:g;return B??=g.node_ops.getattr,AA.checkOpExists(B,63),B(C)},lstat:A=>AA.stat(A,!0),doChmod(A,I,g,B){AA.doSetAttr(A,I,{mode:4095&g|-4096&I.mode,ctime:Date.now(),dontFollow:B})},chmod(A,I,g){var B;B="string"==typeof A?AA.lookupPath(A,{follow:!g}).node:A,AA.doChmod(null,B,I,g)},lchmod(A,I){AA.chmod(A,I,!0)},fchmod(A,I){var g=AA.getStreamChecked(A);AA.doChmod(g,g.node,I,!1)},doChown(A,I,g){AA.doSetAttr(A,I,{timestamp:Date.now(),dontFollow:g})},chown(A,I,g,B){var C;C="string"==typeof A?AA.lookupPath(A,{follow:!B}).node:A,AA.doChown(null,C,B)},lchown(A,I,g){AA.chown(A,I,g,!0)},fchown(A,I,g){var B=AA.getStreamChecked(A);AA.doChown(B,B.node,!1)},doTruncate(A,I,g){if(AA.isDir(I.mode))throw new AA.ErrnoError(31);if(!AA.isFile(I.mode))throw new AA.ErrnoError(28);var B=AA.nodePermissions(I,"w");if(B)throw new AA.ErrnoError(B);AA.doSetAttr(A,I,{size:g,timestamp:Date.now()})},truncate(A,I){if(I<0)throw new AA.ErrnoError(28);var g;g="string"==typeof A?AA.lookupPath(A,{follow:!0}).node:A,AA.doTruncate(null,g,I)},ftruncate(A,I){var g=AA.getStreamChecked(A);if(I<0||!(2097155&g.flags))throw new AA.ErrnoError(28);AA.doTruncate(g,g.node,I)},utime(A,I,g){var B=AA.lookupPath(A,{follow:!0}).node;AA.checkOpExists(B.node_ops.setattr,63)(B,{atime:I,mtime:g})},open(A,I,B=438){if(""===A)throw new AA.ErrnoError(44);var C,Q;if(B=64&(I="string"==typeof I?(A=>{var I={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[A];if(void 0===I)throw new Error(`Unknown file open mode: ${A}`);return I})(I):I)?4095&B|32768:0,"object"==typeof A)C=A;else{Q=A.endsWith("/");var E=AA.lookupPath(A,{follow:!(131072&I),noent_okay:!0});C=E.node,A=E.path}var i=!1;if(64&I)if(C){if(128&I)throw new AA.ErrnoError(20)}else{if(Q)throw new AA.ErrnoError(31);C=AA.mknod(A,511|B,0),i=!0}if(!C)throw new AA.ErrnoError(44);if(AA.isChrdev(C.mode)&&(I&=-513),65536&I&&!AA.isDir(C.mode))throw new AA.ErrnoError(54);if(!i){var o=AA.mayOpen(C,I);if(o)throw new AA.ErrnoError(o)}512&I&&!i&&AA.truncate(C,0),I&=-131713;var D=AA.createStream({node:C,path:AA.getPath(C),flags:I,seekable:!0,position:0,stream_ops:C.stream_ops,ungotten:[],error:!1});return D.stream_ops.open&&D.stream_ops.open(D),i&&AA.chmod(C,511&B),!g.logReadFiles||1&I||A in AA.readFiles||(AA.readFiles[A]=1),D},close(A){if(AA.isClosed(A))throw new AA.ErrnoError(8);A.getdents&&(A.getdents=null);try{A.stream_ops.close&&A.stream_ops.close(A)}catch(A){throw A}finally{AA.closeStream(A.fd)}A.fd=null},isClosed:A=>null===A.fd,llseek(A,I,g){if(AA.isClosed(A))throw new AA.ErrnoError(8);if(!A.seekable||!A.stream_ops.llseek)throw new AA.ErrnoError(70);if(0!=g&&1!=g&&2!=g)throw new AA.ErrnoError(28);return A.position=A.stream_ops.llseek(A,I,g),A.ungotten=[],A.position},read(A,I,g,B,C){if(B<0||C<0)throw new AA.ErrnoError(28);if(AA.isClosed(A))throw new AA.ErrnoError(8);if(1==(2097155&A.flags))throw new AA.ErrnoError(8);if(AA.isDir(A.node.mode))throw new AA.ErrnoError(31);if(!A.stream_ops.read)throw new AA.ErrnoError(28);var Q=void 0!==C;if(Q){if(!A.seekable)throw new AA.ErrnoError(70)}else C=A.position;var E=A.stream_ops.read(A,I,g,B,C);return Q||(A.position+=E),E},write(A,I,g,B,C,Q){if(B<0||C<0)throw new AA.ErrnoError(28);if(AA.isClosed(A))throw new AA.ErrnoError(8);if(!(2097155&A.flags))throw new AA.ErrnoError(8);if(AA.isDir(A.node.mode))throw new AA.ErrnoError(31);if(!A.stream_ops.write)throw new AA.ErrnoError(28);A.seekable&&1024&A.flags&&AA.llseek(A,0,2);var E=void 0!==C;if(E){if(!A.seekable)throw new AA.ErrnoError(70)}else C=A.position;var i=A.stream_ops.write(A,I,g,B,C,Q);return E||(A.position+=i),i},mmap(A,I,g,B,C){if(2&B&&!(2&C)&&2!=(2097155&A.flags))throw new AA.ErrnoError(2);if(1==(2097155&A.flags))throw new AA.ErrnoError(2);if(!A.stream_ops.mmap)throw new AA.ErrnoError(43);if(!I)throw new AA.ErrnoError(28);return A.stream_ops.mmap(A,I,g,B,C)},msync:(A,I,g,B,C)=>A.stream_ops.msync?A.stream_ops.msync(A,I,g,B,C):0,ioctl(A,I,g){if(!A.stream_ops.ioctl)throw new AA.ErrnoError(59);return A.stream_ops.ioctl(A,I,g)},readFile(A,I={}){I.flags=I.flags||0,I.encoding=I.encoding||"binary","utf8"!==I.encoding&&"binary"!==I.encoding&&U(`Invalid encoding type "${I.encoding}"`);var g=AA.open(A,I.flags),B=AA.stat(A).size,C=new Uint8Array(B);return AA.read(g,C,0,B,0),"utf8"===I.encoding&&(C=p(C)),AA.close(g),C},writeFile(A,I,g={}){g.flags=g.flags||577;var B=AA.open(A,g.flags,g.mode);"string"==typeof I&&(I=new Uint8Array(x(I,!0))),ArrayBuffer.isView(I)?AA.write(B,I,0,I.byteLength,void 0,g.canOwn):U("Unsupported data type"),AA.close(B)},cwd:()=>AA.currentPath,chdir(A){var I=AA.lookupPath(A,{follow:!0});if(null===I.node)throw new AA.ErrnoError(44);if(!AA.isDir(I.node.mode))throw new AA.ErrnoError(54);var g=AA.nodePermissions(I.node,"x");if(g)throw new AA.ErrnoError(g);AA.currentPath=I.path},createDefaultDirectories(){AA.mkdir("/tmp"),AA.mkdir("/home"),AA.mkdir("/home/web_user")},createDefaultDevices(){AA.mkdir("/dev"),AA.registerDevice(AA.makedev(1,3),{read:()=>0,write:(A,I,g,B,C)=>B,llseek:()=>0}),AA.mkdev("/dev/null",AA.makedev(1,3)),T.register(AA.makedev(5,0),T.default_tty_ops),T.register(AA.makedev(6,0),T.default_tty1_ops),AA.mkdev("/dev/tty",AA.makedev(5,0)),AA.mkdev("/dev/tty1",AA.makedev(6,0));var A=new Uint8Array(1024),I=0,g=()=>(0===I&&(f(A),I=A.byteLength),A[--I]);AA.createDevice("/dev","random",g),AA.createDevice("/dev","urandom",g),AA.mkdir("/dev/shm"),AA.mkdir("/dev/shm/tmp")},createSpecialDirectories(){AA.mkdir("/proc");var A=AA.mkdir("/proc/self");AA.mkdir("/proc/self/fd"),AA.mount({mount(){var I=AA.createNode(A,"fd",16895,73);return I.stream_ops={llseek:j.stream_ops.llseek},I.node_ops={lookup(A,I){var g=+I,B=AA.getStreamChecked(g),C={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>B.path},id:g+1};return C.parent=C,C},readdir:()=>Array.from(AA.streams.entries()).filter((([A,I])=>I)).map((([A,I])=>A.toString()))},I}},{},"/proc/self/fd")},createStandardStreams(A,I,g){A?AA.createDevice("/dev","stdin",A):AA.symlink("/dev/tty","/dev/stdin"),I?AA.createDevice("/dev","stdout",null,I):AA.symlink("/dev/tty","/dev/stdout"),g?AA.createDevice("/dev","stderr",null,g):AA.symlink("/dev/tty1","/dev/stderr"),AA.open("/dev/stdin",0),AA.open("/dev/stdout",1),AA.open("/dev/stderr",1)},staticInit(){AA.nameTable=new Array(4096),AA.mount(j,{},"/"),AA.createDefaultDirectories(),AA.createDefaultDevices(),AA.createSpecialDirectories(),AA.filesystems={MEMFS:j}},init(A,I,B){AA.initialized=!0,A??=g.stdin,I??=g.stdout,B??=g.stderr,AA.createStandardStreams(A,I,B)},quit(){for(var A of(AA.initialized=!1,AA.streams))A&&AA.close(A)},findObject(A,I){var g=AA.analyzePath(A,I);return g.exists?g.object:null},analyzePath(A,I){try{A=(B=AA.lookupPath(A,{follow:!I})).path}catch(A){}var g={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var B=AA.lookupPath(A,{parent:!0});g.parentExists=!0,g.parentPath=B.path,g.parentObject=B.node,g.name=b.basename(A),B=AA.lookupPath(A,{follow:!I}),g.exists=!0,g.path=B.path,g.object=B.node,g.name=B.node.name,g.isRoot="/"===B.path}catch(A){g.error=A.errno}return g},createPath(A,I,g,B){A="string"==typeof A?A:AA.getPath(A);for(var C=I.split("/").reverse();C.length;){var Q=C.pop();if(Q){var E=b.join2(A,Q);try{AA.mkdir(E)}catch(A){if(20!=A.errno)throw A}A=E}}return E},createFile(A,I,g,B,C){var Q=b.join2("string"==typeof A?A:AA.getPath(A),I),E=v(B,C);return AA.create(Q,E)},createDataFile(A,I,g,B,C,Q){var E=I;A&&(A="string"==typeof A?A:AA.getPath(A),E=I?b.join2(A,I):A);var i=v(B,C),o=AA.create(E,i);if(g){if("string"==typeof g){for(var D=new Array(g.length),a=0,w=g.length;a<w;++a)D[a]=g.charCodeAt(a);g=D}AA.chmod(o,146|i);var s=AA.open(o,577);AA.write(s,g,0,g.length,0,Q),AA.close(s),AA.chmod(o,i)}},createDevice(A,I,g,B){var C=b.join2("string"==typeof A?A:AA.getPath(A),I),Q=v(!!g,!!B);AA.createDevice.major??=64;var E=AA.makedev(AA.createDevice.major++,0);return AA.registerDevice(E,{open(A){A.seekable=!1},close(A){B?.buffer?.length&&B(10)},read(A,I,B,C,Q){for(var E=0,i=0;i<C;i++){var o;try{o=g()}catch(A){throw new AA.ErrnoError(29)}if(void 0===o&&0===E)throw new AA.ErrnoError(6);if(null==o)break;E++,I[B+i]=o}return E&&(A.node.atime=Date.now()),E},write(A,I,g,C,Q){for(var E=0;E<C;E++)try{B(I[g+E])}catch(A){throw new AA.ErrnoError(29)}return C&&(A.node.mtime=A.node.ctime=Date.now()),E}}),AA.mkdev(C,Q,E)},forceLoadFile(A){if(A.isDevice||A.isFolder||A.link||A.contents)return!0;if(globalThis.XMLHttpRequest)U("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.");else try{A.contents=(void 0)(A.url)}catch(A){throw new AA.ErrnoError(29)}},createLazyFile(A,I,g,B,C){class Q{lengthKnown=!1;chunks=[];get(A){if(!(A>this.length-1||A<0)){var I=A%this.chunkSize,g=A/this.chunkSize|0;return this.getter(g)[I]}}setDataGetter(A){this.getter=A}cacheLength(){var A=new XMLHttpRequest;A.open("HEAD",g,!1),A.send(null),A.status>=200&&A.status<300||304===A.status||U("Couldn\'t load "+g+". Status: "+A.status);var I,B=Number(A.getResponseHeader("Content-length")),C=(I=A.getResponseHeader("Accept-Ranges"))&&"bytes"===I,Q=(I=A.getResponseHeader("Content-Encoding"))&&"gzip"===I,E=1048576;C||(E=B);var i=this;i.setDataGetter((A=>{var I=A*E,C=(A+1)*E-1;return C=Math.min(C,B-1),void 0===i.chunks[A]&&(i.chunks[A]=((A,I)=>{A>I&&U("invalid range ("+A+", "+I+") or no bytes requested!"),I>B-1&&U("only "+B+" bytes available! programmer error!");var C=new XMLHttpRequest;return C.open("GET",g,!1),B!==E&&C.setRequestHeader("Range","bytes="+A+"-"+I),C.responseType="arraybuffer",C.overrideMimeType&&C.overrideMimeType("text/plain; charset=x-user-defined"),C.send(null),C.status>=200&&C.status<300||304===C.status||U("Couldn\'t load "+g+". Status: "+C.status),void 0!==C.response?new Uint8Array(C.response||[]):x(C.responseText||"",!0)})(I,C)),void 0===i.chunks[A]&&U("doXHR failed!"),i.chunks[A]})),!Q&&B||(E=B=1,B=this.getter(0).length,E=B,e("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=B,this._chunkSize=E,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(globalThis.XMLHttpRequest){U("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc");var E={isDevice:!1,contents:new Q}}else E={isDevice:!1,url:g};var o=AA.createFile(A,I,E,B,C);E.contents?o.contents=E.contents:E.url&&(o.contents=null,o.url=E.url),Object.defineProperties(o,{usedBytes:{get:function(){return this.contents.length}}});var D={};function a(A,I,g,B,C){var Q=A.node.contents;if(C>=Q.length)return 0;var E=Math.min(Q.length-C,B);if(Q.slice)for(var i=0;i<E;i++)I[g+i]=Q[C+i];else for(i=0;i<E;i++)I[g+i]=Q.get(C+i);return E}return Object.keys(o.stream_ops).forEach((A=>{var I=o.stream_ops[A];D[A]=(...A)=>(AA.forceLoadFile(o),I(...A))})),D.read=(A,I,g,B,C)=>(AA.forceLoadFile(o),a(A,I,g,B,C)),D.mmap=(A,I,g,B,C)=>{AA.forceLoadFile(o);var Q=X();if(!Q)throw new AA.ErrnoError(48);return a(A,i,Q,I,g),{ptr:Q,allocated:!0}},o.stream_ops=D,o}},IA=(A,I,g)=>{if(!A)return"";var B=W(o,A,I,g);return u.decode(o.subarray(A,B))},gA={DEFAULT_POLLMASK:5,calculateAt(A,I,g){if(b.isAbs(I))return I;var B;if(B=-100===A?AA.cwd():gA.getStreamFromFD(A).path,0==I.length){if(!g)throw new AA.ErrnoError(44);return B}return B+"/"+I},writeStat(A,I){s[A>>2]=I.dev,s[A+4>>2]=I.mode,s[A+8>>2]=I.nlink,s[A+12>>2]=I.uid,s[A+16>>2]=I.gid,s[A+20>>2]=I.rdev,F[A+24>>3]=BigInt(I.size),w[A+32>>2]=4096,w[A+36>>2]=I.blocks;var g=I.atime.getTime(),B=I.mtime.getTime(),C=I.ctime.getTime();return F[A+40>>3]=BigInt(Math.floor(g/1e3)),s[A+48>>2]=g%1e3*1e3*1e3,F[A+56>>3]=BigInt(Math.floor(B/1e3)),s[A+64>>2]=B%1e3*1e3*1e3,F[A+72>>3]=BigInt(Math.floor(C/1e3)),s[A+80>>2]=C%1e3*1e3*1e3,F[A+88>>3]=BigInt(I.ino),0},writeStatFs(A,I){s[A+4>>2]=I.bsize,s[A+60>>2]=I.bsize,F[A+8>>3]=BigInt(I.blocks),F[A+16>>3]=BigInt(I.bfree),F[A+24>>3]=BigInt(I.bavail),F[A+32>>3]=BigInt(I.files),F[A+40>>3]=BigInt(I.ffree),s[A+48>>2]=I.fsid,s[A+64>>2]=I.flags,s[A+56>>2]=I.namelen},doMsync(A,I,g,B,C){if(!AA.isFile(I.node.mode))throw new AA.ErrnoError(43);if(2&B)return 0;var Q=o.slice(A,A+g);AA.msync(I,Q,C,g,B)},getStreamFromFD:A=>AA.getStreamChecked(A),varargs:void 0,getStr:A=>IA(A)},BA={},CA=A=>{for(;A.length;){var I=A.pop();A.pop()(I)}};function QA(A){return this.fromWireType(s[A>>2])}var EA={},iA={},oA={},DA=class extends Error{constructor(A){super(A),this.name="InternalError"}},aA=A=>{throw new DA(A)},wA=(A,I,g)=>{function B(I){var B=g(I);B.length!==A.length&&aA("Mismatched type converter count");for(var C=0;C<A.length;++C)FA(A[C],B[C])}A.forEach((A=>oA[A]=I));var C=new Array(I.length),Q=[],E=0;I.forEach(((A,I)=>{iA.hasOwnProperty(A)?C[I]=iA[A]:(Q.push(A),EA.hasOwnProperty(A)||(EA[A]=[]),EA[A].push((()=>{C[I]=iA[A],++E===Q.length&&B(C)})))})),0===Q.length&&B(C)},sA=A=>{for(var I="";;){var g=o[A++];if(!g)return I;I+=String.fromCharCode(g)}},tA=class extends Error{constructor(A){super(A),this.name="BindingError"}},GA=A=>{throw new tA(A)};function FA(A,I,g={}){return function(A,I,g={}){var B=I.name;if(A||GA(`type "${B}" must have a positive integer typeid pointer`),iA.hasOwnProperty(A)){if(g.ignoreDuplicateRegistrations)return;GA(`Cannot register type \'${B}\' twice`)}if(iA[A]=I,delete oA[A],EA.hasOwnProperty(A)){var C=EA[A];delete EA[A],C.forEach((A=>A()))}}(A,I,g)}var hA=(A,I,g)=>{switch(I){case 1:return g?A=>i[A]:A=>o[A];case 2:return g?A=>D[A>>1]:A=>a[A>>1];case 4:return g?A=>w[A>>2]:A=>s[A>>2];case 8:return g?A=>F[A>>3]:A=>h[A>>3];default:throw new TypeError(`invalid integer width (${I}): ${A}`)}},RA=A=>{GA(A.$$.ptrType.registeredClass.name+" instance already deleted")},eA=!1,rA=A=>{},yA=A=>{A.count.value-=1,0===A.count.value&&(A=>{A.smartPtr?A.smartPtrType.rawDestructor(A.smartPtr):A.ptrType.registeredClass.rawDestructor(A.ptr)})(A)},SA=A=>globalThis.FinalizationRegistry?(eA=new FinalizationRegistry((A=>{yA(A.$$)})),SA=A=>{var I=A.$$;if(I.smartPtr){var g={$$:I};eA.register(A,g,A)}return A},rA=A=>eA.unregister(A),SA