trtc-sdk-v5 5.5.2 → 5.5.3-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "trtc-sdk-v5",
3
- "version": "5.5.2",
3
+ "version": "5.5.3-beta.3",
4
4
  "description": "Tencent Cloud RTC SDK for Web",
5
5
  "main": "trtc.js",
6
6
  "types": "index.d.ts",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rtc-plugin/cdn-streaming",
3
- "version": "5.5.2",
3
+ "version": "5.5.1",
4
4
  "description": "TRTC Web SDK 5.x CDN streaming plugin",
5
5
  "main": "./cdn-streaming.esm.js",
6
6
  "author": "longyuqi <longyuqi@tencent.com>",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rtc-plugin/beauty",
3
- "version": "5.5.2",
3
+ "version": "5.5.1",
4
4
  "description": "TRTC Web SDK 5.x beauty plugin",
5
5
  "main": "./beauty.esm.js",
6
6
  "author": "longyuqi <longyuqi@tencent.com>",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rtc-plugin/virtual-background",
3
- "version": "5.5.2",
3
+ "version": "5.5.1",
4
4
  "description": "TRTC Web SDK 5.x virtual background plugin",
5
5
  "main": "./virtual-background.esm.js",
6
6
  "author": "longyuqi <longyuqi@tencent.com>",
@@ -28,4 +28,4 @@ return ret;
28
28
  `);return e[0]=="Error"&&e.shift(),Wo(e),sr.last_addr=Bn(e[2]),sr.last_stack=e,sr.last_addr}function sA(e,t,r){let o;sr.last_addr==e?o=sr.last_stack:(o=new Error().stack.split(`
29
29
  `),o[0]=="Error"&&o.shift(),Wo(o));let i=2;for(;o[i]&&Bn(o[i])!=e;)++i;for(var A=0;A<r&&o[A+i];++A)m[t+A*4>>2]=Bn(o[A+i]);return A}function aA(e){let t=rt();for(;rt()-t<e;);}function cA(e){let t=e.getExtension("ANGLE_instanced_arrays");if(t)return e.vertexAttribDivisor=function(r,o){t.vertexAttribDivisorANGLE(r,o)},e.drawArraysInstanced=function(r,o,i,A){t.drawArraysInstancedANGLE(r,o,i,A)},e.drawElementsInstanced=function(r,o,i,A,s){t.drawElementsInstancedANGLE(r,o,i,A,s)},1}function gA(e){let t=e.getExtension("OES_vertex_array_object");if(t)return e.createVertexArray=function(){return t.createVertexArrayOES()},e.deleteVertexArray=function(r){t.deleteVertexArrayOES(r)},e.bindVertexArray=function(r){t.bindVertexArrayOES(r)},e.isVertexArray=function(r){return t.isVertexArrayOES(r)},1}function lA(e){let t=e.getExtension("WEBGL_draw_buffers");if(t)return e.drawBuffers=function(r,o){t.drawBuffersWEBGL(r,o)},1}function uA(e){return!!(e.dibvbi=e.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"))}function dA(e){return!!(e.mdibvbi=e.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"))}function fA(e){return!!(e.multiDrawWebgl=e.getExtension("WEBGL_multi_draw"))}var p={counter:1,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],byteSizeByTypeRoot:5120,byteSizeByType:[1,1,2,2,4,4,4,2,3,4,8],stringCache:{},stringiCache:{},unpackAlignment:4,recordError:function(t){p.lastError||(p.lastError=t)},getNewId(e){let t=p.counter++;for(let r=e.length;r<t;r++)e[r]=null;return t},MAX_TEMP_BUFFER_SIZE:2097152,numTempVertexBuffersPerSize:64,log2ceilLookup(e){return 32-Math.clz32(e===0?0:e-1)},generateTempBuffers(e,t){let r=p.log2ceilLookup(p.MAX_TEMP_BUFFER_SIZE);t.tempVertexBufferCounters1=[],t.tempVertexBufferCounters2=[],t.tempVertexBufferCounters1.length=t.tempVertexBufferCounters2.length=r+1,t.tempVertexBuffers1=[],t.tempVertexBuffers2=[],t.tempVertexBuffers1.length=t.tempVertexBuffers2.length=r+1,t.tempIndexBuffers=[],t.tempIndexBuffers.length=r+1;for(var o=0;o<=r;++o){t.tempIndexBuffers[o]=null,t.tempVertexBufferCounters1[o]=t.tempVertexBufferCounters2[o]=0;let i=p.numTempVertexBuffersPerSize;t.tempVertexBuffers1[o]=[],t.tempVertexBuffers2[o]=[];let A=t.tempVertexBuffers1[o],s=t.tempVertexBuffers2[o];A.length=s.length=i;for(let c=0;c<i;++c)A[c]=s[c]=null}if(e){t.tempQuadIndexBuffer=w.createBuffer(),t.GLctx.bindBuffer(34963,t.tempQuadIndexBuffer);let i=p.MAX_TEMP_BUFFER_SIZE>>1,A=new Uint16Array(i);var o=0;let c=0;for(;A[o++]=c,!(o>=i||(A[o++]=c+1,o>=i)||(A[o++]=c+2,o>=i)||(A[o++]=c,o>=i)||(A[o++]=c+2,o>=i)||(A[o++]=c+3,o>=i));)c+=4;t.GLctx.bufferData(34963,A,35044),t.GLctx.bindBuffer(34963,null)}},getTempVertexBuffer:function(t){let r=p.log2ceilLookup(t),o=p.currentContext.tempVertexBuffers1[r],i=p.currentContext.tempVertexBufferCounters1[r];p.currentContext.tempVertexBufferCounters1[r]=p.currentContext.tempVertexBufferCounters1[r]+1&p.numTempVertexBuffersPerSize-1;let A=o[i];if(A)return A;let s=w.getParameter(34964);return o[i]=w.createBuffer(),w.bindBuffer(34962,o[i]),w.bufferData(34962,1<<r,35048),w.bindBuffer(34962,s),o[i]},getTempIndexBuffer:function(t){let r=p.log2ceilLookup(t),o=p.currentContext.tempIndexBuffers[r];if(o)return o;let i=w.getParameter(34965);return p.currentContext.tempIndexBuffers[r]=w.createBuffer(),w.bindBuffer(34963,p.currentContext.tempIndexBuffers[r]),w.bufferData(34963,1<<r,35048),w.bindBuffer(34963,i),p.currentContext.tempIndexBuffers[r]},newRenderingFrameStarted:function(){if(!p.currentContext)return;let t=p.currentContext.tempVertexBuffers1;p.currentContext.tempVertexBuffers1=p.currentContext.tempVertexBuffers2,p.currentContext.tempVertexBuffers2=t,t=p.currentContext.tempVertexBufferCounters1,p.currentContext.tempVertexBufferCounters1=p.currentContext.tempVertexBufferCounters2,p.currentContext.tempVertexBufferCounters2=t;let r=p.log2ceilLookup(p.MAX_TEMP_BUFFER_SIZE);for(let o=0;o<=r;++o)p.currentContext.tempVertexBufferCounters1[o]=0},getSource(e,t,r,o){let i="";for(let A=0;A<t;++A){let s=o?m[o+A*4>>2]:-1;i+=Pe(m[r+A*4>>2],s<0?void 0:s)}return i},calcBufLength:function(t,r,o,i){if(o>0)return i*o;let A=p.byteSizeByType[r-p.byteSizeByTypeRoot];return t*A*i},usedTempBuffers:[],preDrawHandleClientVertexAttribBindings:function(t){p.resetBufferBinding=!1;for(let r=0;r<p.currentContext.maxVertexAttribs;++r){let o=p.currentContext.clientBuffers[r];if(!o.clientside||!o.enabled)continue;p.resetBufferBinding=!0;let i=p.calcBufLength(o.size,o.type,o.stride,t),A=p.getTempVertexBuffer(i);w.bindBuffer(34962,A),w.bufferSubData(34962,0,ce.subarray(o.ptr,o.ptr+i)),o.vertexAttribPointerAdaptor.call(w,r,o.size,o.type,o.normalized,o.stride,0)}},postDrawHandleClientVertexAttribBindings:function(){p.resetBufferBinding&&w.bindBuffer(34962,p.buffers[w.currentArrayBufferBinding])},createContext(e,t){t.renderViaOffscreenBackBuffer&&(t.preserveDrawingBuffer=!0),e.getContextSafariWebGL2Fixed||(e.getContextSafariWebGL2Fixed=e.getContext,e.getContext=function(i,A){let s=e.getContextSafariWebGL2Fixed(i,A);return i=="webgl"==s instanceof WebGLRenderingContext?s:null});let r=t.majorVersion>1?e.getContext("webgl2",t):e.getContext("webgl",t);return r?p.registerContext(r,t):0},enableOffscreenFramebufferAttributes(e){e.renderViaOffscreenBackBuffer=!0,e.preserveDrawingBuffer=!0},createOffscreenFramebuffer(e){let t=e.GLctx,r=t.createFramebuffer();if(t.bindFramebuffer(36160,r),e.defaultFbo=r,e.defaultFboForbidBlitFramebuffer=!1,t.getContextAttributes().antialias)e.defaultFboForbidBlitFramebuffer=!0;else{let C=navigator.userAgent.toLowerCase().match(/firefox\/(\d\d)/);if(C!=null){let h=C[1];e.defaultFboForbidBlitFramebuffer=h<67}}e.defaultColorTarget=t.createTexture(),e.defaultDepthTarget=t.createRenderbuffer(),p.resizeOffscreenFramebuffer(e),t.bindTexture(3553,e.defaultColorTarget),t.texParameteri(3553,10241,9728),t.texParameteri(3553,10240,9728),t.texParameteri(3553,10242,33071),t.texParameteri(3553,10243,33071),t.texImage2D(3553,0,6408,t.canvas.width,t.canvas.height,0,6408,5121,null),t.framebufferTexture2D(36160,36064,3553,e.defaultColorTarget,0),t.bindTexture(3553,null);let o=t.createRenderbuffer();t.bindRenderbuffer(36161,e.defaultDepthTarget),t.renderbufferStorage(36161,33189,t.canvas.width,t.canvas.height),t.framebufferRenderbuffer(36160,36096,36161,e.defaultDepthTarget),t.bindRenderbuffer(36161,null);let i=[-1,-1,-1,1,1,-1,1,1],A=t.createBuffer();t.bindBuffer(34962,A),t.bufferData(34962,new Float32Array(i),35044),t.bindBuffer(34962,null),e.blitVB=A;let s="attribute vec2 pos;varying lowp vec2 tex;void main() { tex = pos * 0.5 + vec2(0.5,0.5); gl_Position = vec4(pos, 0.0, 1.0); }",c=t.createShader(35633);t.shaderSource(c,s),t.compileShader(c);let d="varying lowp vec2 tex;uniform sampler2D sampler;void main() { gl_FragColor = texture2D(sampler, tex); }",E=t.createShader(35632);t.shaderSource(E,d),t.compileShader(E);let I=t.createProgram();t.attachShader(I,c),t.attachShader(I,E),t.linkProgram(I),e.blitProgram=I,e.blitPosLoc=t.getAttribLocation(I,"pos"),t.useProgram(I),t.uniform1i(t.getUniformLocation(I,"sampler"),0),t.useProgram(null),e.defaultVao=void 0,t.createVertexArray&&(e.defaultVao=t.createVertexArray(),t.bindVertexArray(e.defaultVao),t.enableVertexAttribArray(e.blitPosLoc),t.bindVertexArray(null))},resizeOffscreenFramebuffer(e){let t=e.GLctx;if(e.defaultColorTarget){let r=t.getParameter(32873);t.bindTexture(3553,e.defaultColorTarget),t.texImage2D(3553,0,6408,t.drawingBufferWidth,t.drawingBufferHeight,0,6408,5121,null),t.bindTexture(3553,r)}if(e.defaultDepthTarget){let r=t.getParameter(36007);t.bindRenderbuffer(36161,e.defaultDepthTarget),t.renderbufferStorage(36161,33189,t.drawingBufferWidth,t.drawingBufferHeight),t.bindRenderbuffer(36161,r)}},blitOffscreenFramebuffer(e){let t=e.GLctx,r=t.getParameter(3089);r&&t.disable(3089);let o=t.getParameter(36006);if(t.blitFramebuffer&&!e.defaultFboForbidBlitFramebuffer)t.bindFramebuffer(36008,e.defaultFbo),t.bindFramebuffer(36009,null),t.blitFramebuffer(0,0,t.canvas.width,t.canvas.height,0,0,t.canvas.width,t.canvas.height,16384,9728);else{let N=function(){t.vertexAttribPointer(e.blitPosLoc,2,5126,!1,0,0),t.drawArrays(5,0,4)};var s=N;t.bindFramebuffer(36160,null);let c=t.getParameter(35725);t.useProgram(e.blitProgram);let d=t.getParameter(34964);t.bindBuffer(34962,e.blitVB);let E=t.getParameter(34016);t.activeTexture(33984);let I=t.getParameter(32873);t.bindTexture(3553,e.defaultColorTarget);let C=t.getParameter(3042);C&&t.disable(3042);let h=t.getParameter(2884);h&&t.disable(2884);let y=t.getParameter(2929);y&&t.disable(2929);let T=t.getParameter(2960);if(T&&t.disable(2960),e.defaultVao){let Y=t.getParameter(34229);t.bindVertexArray(e.defaultVao),N(),t.bindVertexArray(Y)}else{let Y={buffer:t.getVertexAttrib(e.blitPosLoc,34975),size:t.getVertexAttrib(e.blitPosLoc,34339),stride:t.getVertexAttrib(e.blitPosLoc,34340),type:t.getVertexAttrib(e.blitPosLoc,34341),normalized:t.getVertexAttrib(e.blitPosLoc,34922),pointer:t.getVertexAttribOffset(e.blitPosLoc,34373)},q=t.getParameter(34921),D=[];for(var i=0;i<q;++i){var A=t.getVertexAttrib(i,34338);let S=i==e.blitPosLoc;A&&!S&&t.disableVertexAttribArray(i),!A&&S&&t.enableVertexAttribArray(i),D[i]=A}N();for(var i=0;i<q;++i){var A=D[i];let U=i==e.blitPosLoc;A&&!U&&t.enableVertexAttribArray(i),!A&&U&&t.disableVertexAttribArray(i)}t.bindBuffer(34962,Y.buffer),t.vertexAttribPointer(e.blitPosLoc,Y.size,Y.type,Y.normalized,Y.stride,Y.offset)}T&&t.enable(2960),y&&t.enable(2929),h&&t.enable(2884),C&&t.enable(3042),t.bindTexture(3553,I),t.activeTexture(E),t.bindBuffer(34962,d),t.useProgram(c)}t.bindFramebuffer(36160,o),r&&t.enable(3089)},registerContext(e,t){let r=p.getNewId(p.contexts),o={handle:r,attributes:t,version:t.majorVersion,GLctx:e};e.canvas&&(e.canvas.GLctxObject=o),p.contexts[r]=o,(typeof t.enableExtensionsByDefault=="undefined"||t.enableExtensionsByDefault)&&p.initExtensions(o),o.maxVertexAttribs=o.GLctx.getParameter(34921),o.clientBuffers=[];for(let i=0;i<o.maxVertexAttribs;i++)o.clientBuffers[i]={enabled:!1,clientside:!1,size:0,type:0,normalized:0,stride:0,ptr:0,vertexAttribPointerAdaptor:null};return p.generateTempBuffers(!1,o),t.renderViaOffscreenBackBuffer&&p.createOffscreenFramebuffer(o),r},makeContextCurrent(e){return p.currentContext=p.contexts[e],n.ctx=w=p.currentContext&&p.currentContext.GLctx,!(e&&!w)},getContext(e){return p.contexts[e]},deleteContext(e){p.currentContext===p.contexts[e]&&(p.currentContext=null),typeof z=="object"&&z.removeAllHandlersOnTarget(p.contexts[e].GLctx.canvas),p.contexts[e]&&p.contexts[e].GLctx.canvas&&(p.contexts[e].GLctx.canvas.GLctxObject=void 0),p.contexts[e]=null},initExtensions(e){if(e||(e=p.currentContext),e.initExtensionsDone)return;e.initExtensionsDone=!0;let{GLctx:t}=e;cA(t),gA(t),lA(t),uA(t),dA(t),e.version>=2&&(t.disjointTimerQueryExt=t.getExtension("EXT_disjoint_timer_query_webgl2")),(e.version<2||!t.disjointTimerQueryExt)&&(t.disjointTimerQueryExt=t.getExtension("EXT_disjoint_timer_query")),fA(t),(t.getSupportedExtensions()||[]).forEach(o=>{!o.includes("lose_context")&&!o.includes("debug")&&t.getExtension(o)})}},z={inEventHandler:0,removeAllEventListeners(){for(let e=z.eventHandlers.length-1;e>=0;--e)z._removeHandler(e);z.eventHandlers=[],z.deferredCalls=[]},registerRemoveEventListeners(){z.removeEventListenersRegistered||(ut.push(z.removeAllEventListeners),z.removeEventListenersRegistered=!0)},deferredCalls:[],deferCall(e,t,r){function o(i,A){if(i.length!=A.length)return!1;for(let s in i)if(i[s]!=A[s])return!1;return!0}for(let i in z.deferredCalls){let A=z.deferredCalls[i];if(A.targetFunction==e&&o(A.argsList,r))return}z.deferredCalls.push({targetFunction:e,precedence:t,argsList:r}),z.deferredCalls.sort((i,A)=>i.precedence<A.precedence)},removeDeferredCalls(e){for(let t=0;t<z.deferredCalls.length;++t)z.deferredCalls[t].targetFunction==e&&(z.deferredCalls.splice(t,1),--t)},canPerformEventHandlerRequests(){return z.inEventHandler&&z.currentEventHandler.allowsDeferredCalls},runDeferredCalls(){if(z.canPerformEventHandlerRequests())for(let e=0;e<z.deferredCalls.length;++e){let t=z.deferredCalls[e];z.deferredCalls.splice(e,1),--e,t.targetFunction.apply(null,t.argsList)}},eventHandlers:[],removeAllHandlersOnTarget(e,t){for(let r=0;r<z.eventHandlers.length;++r)z.eventHandlers[r].target==e&&(!t||t==z.eventHandlers[r].eventTypeString)&&z._removeHandler(r--)},_removeHandler(e){let t=z.eventHandlers[e];t.target.removeEventListener(t.eventTypeString,t.eventListenerFunc,t.useCapture),z.eventHandlers.splice(e,1)},registerOrRemoveHandler(e){let t=function(o){++z.inEventHandler,z.currentEventHandler=e,z.runDeferredCalls(),e.handlerFunc(o),z.runDeferredCalls(),--z.inEventHandler};if(e.callbackfunc)e.eventListenerFunc=t,e.target.addEventListener(e.eventTypeString,t,e.useCapture),z.eventHandlers.push(e),z.registerRemoveEventListeners();else for(let r=0;r<z.eventHandlers.length;++r)z.eventHandlers[r].target==e.target&&z.eventHandlers[r].eventTypeString==e.eventTypeString&&z._removeHandler(r--)},getNodeNameForTarget(e){return e?e==window?"#window":e==screen?"#screen":e&&e.nodeName?e.nodeName:"":""},fullscreenEnabled(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};let $o=["default","low-power","high-performance"],EA=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function IA(e){Re("Rules for selecting event targets in HTML5 API are changing: instead of using document.getElementById() that only can refer to elements by their DOM ID, new event target selection mechanism uses the more flexible function document.querySelector() that can look up element names, classes, and complex CSS selectors. Build with -s DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR=1 to change to the new lookup rules. See https://github.com/emscripten-core/emscripten/pull/7977 for more details.");try{return!e||(typeof e=="number"&&(e=EA[e]||Pe(e)),e==="#window")?window:e==="#document"?document:e==="#screen"?screen:e==="#canvas"?n.canvas:typeof e=="string"?document.getElementById(e):e}catch(t){return null}}function To(e){return typeof e=="number"&&(e=Pe(e)),!e||e==="#canvas"?typeof p!="undefined"&&p.offscreenCanvases.canvas?p.offscreenCanvases.canvas:n.canvas:typeof p!="undefined"&&p.offscreenCanvases[e]?p.offscreenCanvases[e]:IA(e)}function pA(e,t){P(t);let r=t>>2,o=m[r+6],i={alpha:!!m[r+0],depth:!!m[r+1],stencil:!!m[r+2],antialias:!!m[r+3],premultipliedAlpha:!!m[r+4],preserveDrawingBuffer:!!m[r+5],powerPreference:$o[o],failIfMajorPerformanceCaveat:!!m[r+7],majorVersion:m[r+8],minorVersion:m[r+9],enableExtensionsByDefault:m[r+10],explicitSwapControl:m[r+11],proxyContextToMainThread:m[r+12],renderViaOffscreenBackBuffer:m[r+13]},A=To(e);if(!A)return 0;if(A.offscreenCanvas&&(A=A.offscreenCanvas),i.explicitSwapControl&&(A.transferControlToOffscreen||typeof OffscreenCanvas!="undefined"&&A instanceof OffscreenCanvas||i.renderViaOffscreenBackBuffer||(i.renderViaOffscreenBackBuffer=!0),A.transferControlToOffscreen)){if(!A.controlTransferredOffscreen)p.offscreenCanvases[A.id]={canvas:A.transferControlToOffscreen(),canvasSharedPtr:Wt(12),id:A.id},A.controlTransferredOffscreen=!0;else if(!p.offscreenCanvases[A.id])return 0;A=p.offscreenCanvases[A.id]}return p.createContext(A,i)}function CA(e,t){return pA(e,t)}function hA(){return p.currentContext?p.currentContext.handle:0}function Vo(){return hA()}n._emscripten_webgl_get_current_context=Vo;function Ko(e){return p.makeContextCurrent(e)?0:-5}n._emscripten_webgl_make_context_current=Ko;function BA(e){p.currentContext==e&&(p.currentContext=0),p.deleteContext(e)}function mA(e,t){if(!t)return-5;if(e=p.contexts[e],!e)return-3;let r=e.GLctx;if(!r)return-3;r=r.getContextAttributes(),m[t>>2]=r.alpha,m[t+4>>2]=r.depth,m[t+8>>2]=r.stencil,m[t+12>>2]=r.antialias,m[t+16>>2]=r.premultipliedAlpha,m[t+20>>2]=r.preserveDrawingBuffer;let o=r.powerPreference&&$o.indexOf(r.powerPreference);return m[t+24>>2]=o,m[t+28>>2]=r.failIfMajorPerformanceCaveat,m[t+32>>2]=e.version,m[t+36>>2]=0,m[t+40>>2]=e.attributes.enableExtensionsByDefault,0}function _A(e){P(e);let t=e>>2;for(let r=0;r<14;++r)m[t+r]=0;m[t+0]=m[t+1]=m[t+3]=m[t+4]=m[t+8]=m[t+10]=1}let Oo={};function yA(){return ve||"./this.program"}function Fr(){if(!Fr.strings){let r={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:`${(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")}.UTF-8`,_:yA()};for(var e in Oo)Oo[e]===void 0?delete r[e]:r[e]=Oo[e];let o=[];for(var e in r)o.push(`${e}=${r[e]}`);Fr.strings=o}return Fr.strings}function QA(e,t){let r=0;return Fr().forEach((o,i)=>{let A=t+r;m[e+i*4>>2]=A,Gn(o,A),r+=o.length+1}),0}function wA(e,t){let r=Fr();m[e>>2]=r.length;let o=0;return r.forEach(i=>{o+=i.length+1}),m[t>>2]=o,0}function DA(e){try{let t=Ae.getStreamFromFD(e);return a.close(t),0}catch(t){return(typeof a=="undefined"||!(t instanceof a.ErrnoError))&&l(t),t.errno}}function bA(e,t,r,o){try{let i=Ae.getStreamFromFD(e),A=Ae.doReadv(i,t,r);return m[o>>2]=A,0}catch(i){return(typeof a=="undefined"||!(i instanceof a.ErrnoError))&&l(i),i.errno}}function TA(e,t,r,o,i){try{let A=Ae.getStreamFromFD(e),c=r*4294967296+(t>>>0),d=9007199254740992;return c<=-d||c>=d?-61:(a.llseek(A,c,o),Je=[A.position>>>0,(Ce=A.position,+Math.abs(Ce)>=1?Ce>0?(Math.min(+Math.floor(Ce/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Ce-+(~~Ce>>>0))/4294967296)>>>0:0)],m[i>>2]=Je[0],m[i+4>>2]=Je[1],A.getdents&&c===0&&o===0&&(A.getdents=null),0)}catch(A){return(typeof a=="undefined"||!(A instanceof a.ErrnoError))&&l(A),A.errno}}function OA(e,t,r,o){try{let i=Ae.getStreamFromFD(e),A=Ae.doWritev(i,t,r);return m[o>>2]=A,0}catch(i){return(typeof a=="undefined"||!(i instanceof a.ErrnoError))&&l(i),i.errno}}function RA(){return Ur()}function mn(e,t){mn.randomDevice||(mn.randomDevice=on());for(let r=0;r<t;r++)ae[e+r>>0]=mn.randomDevice();return 0}function PA(e){w.activeTexture(e)}function MA(e,t){w.attachShader(p.programs[e],p.shaders[t])}function SA(e,t,r){w.bindAttribLocation(p.programs[e],t,Pe(r))}function FA(e,t){e==34962?w.currentArrayBufferBinding=t:e==34963&&(w.currentElementArrayBufferBinding=t),e==35051?w.currentPixelPackBufferBinding=t:e==35052&&(w.currentPixelUnpackBufferBinding=t),w.bindBuffer(e,p.buffers[t])}function vA(e,t,r){w.bindBufferBase(e,t,p.buffers[r])}function kA(e,t){w.bindFramebuffer(e,t?p.framebuffers[t]:p.currentContext.defaultFbo)}function NA(e,t){w.bindTexture(e,p.textures[t])}function UA(e){w.bindVertexArray(p.vaos[e]);let t=w.getParameter(34965);w.currentElementArrayBufferBinding=t?t.name|0:0}function xA(e,t,r,o){p.currentContext.version>=2?r?w.bufferData(e,ce,o,r,t):w.bufferData(e,t,o):w.bufferData(e,r?ce.subarray(r,r+t):t,o)}function LA(e,t){return P(t===(t|0)),(e>>>0)+t*4294967296}function jA(e,t,r,o){return w.clientWaitSync(p.syncs[e],t,LA(r,o))}function HA(e){w.compileShader(p.shaders[e])}function GA(){let e=p.getNewId(p.programs),t=w.createProgram();return t.name=e,t.maxUniformLength=t.maxAttributeLength=t.maxUniformBlockNameLength=0,t.uniformIdCounter=1,p.programs[e]=t,e}function YA(e){let t=p.getNewId(p.shaders);return p.shaders[t]=w.createShader(e),t}function XA(e,t){for(let r=0;r<e;r++){let o=m[t+r*4>>2],i=p.buffers[o];i&&(w.deleteBuffer(i),i.name=0,p.buffers[o]=null,o==w.currentArrayBufferBinding&&(w.currentArrayBufferBinding=0),o==w.currentElementArrayBufferBinding&&(w.currentElementArrayBufferBinding=0),o==w.currentPixelPackBufferBinding&&(w.currentPixelPackBufferBinding=0),o==w.currentPixelUnpackBufferBinding&&(w.currentPixelUnpackBufferBinding=0))}}function WA(e,t){for(let r=0;r<e;++r){let o=m[t+r*4>>2],i=p.framebuffers[o];i&&(w.deleteFramebuffer(i),i.name=0,p.framebuffers[o]=null)}}function $A(e){if(!e)return;let t=p.programs[e];if(!t){p.recordError(1281);return}w.deleteProgram(t),t.name=0,p.programs[e]=null}function VA(e){if(!e)return;let t=p.shaders[e];if(!t){p.recordError(1281);return}w.deleteShader(t),p.shaders[e]=null}function KA(e){if(!e)return;let t=p.syncs[e];if(!t){p.recordError(1281);return}w.deleteSync(t),t.name=0,p.syncs[e]=null}function JA(e,t){for(let r=0;r<e;r++){let o=m[t+r*4>>2],i=p.textures[o];i&&(w.deleteTexture(i),i.name=0,p.textures[o]=null)}}function zA(e,t){for(let r=0;r<e;r++){let o=m[t+r*4>>2];w.deleteVertexArray(p.vaos[o]),p.vaos[o]=null}}function ZA(e){w.disable(e)}function qA(e){let t=p.currentContext.clientBuffers[e];t.enabled=!1,w.disableVertexAttribArray(e)}function es(e,t,r){p.preDrawHandleClientVertexAttribBindings(t+r),w.drawArrays(e,t,r),p.postDrawHandleClientVertexAttribBindings()}let Jo=[];function ts(e,t){let r=Jo[e];for(let o=0;o<e;o++)r[o]=m[t+o*4>>2];w.drawBuffers(r)}function rs(e){let t=p.currentContext.clientBuffers[e];t.enabled=!0,w.enableVertexAttribArray(e)}function ns(e,t){let r=w.fenceSync(e,t);if(r){let o=p.getNewId(p.syncs);return r.name=o,p.syncs[o]=r,o}return 0}function os(){w.finish()}function is(){w.flush()}function As(e,t,r,o,i){w.framebufferTexture2D(e,t,r,p.textures[o],i)}function ss(e,t,r,o,i){w.framebufferTextureLayer(e,t,p.textures[r],o,i)}function _n(e,t,r,o){for(let i=0;i<e;i++){let A=w[r](),s=A&&p.getNewId(o);A?(A.name=s,o[s]=A):p.recordError(1282),m[t+i*4>>2]=s}}function as(e,t){_n(e,t,"createBuffer",p.buffers)}function cs(e,t){_n(e,t,"createFramebuffer",p.framebuffers)}function gs(e,t){_n(e,t,"createTexture",p.textures)}function ls(e,t){_n(e,t,"createVertexArray",p.vaos)}function us(e,t){return w.getAttribLocation(p.programs[e],Pe(t))}function ds(){let e=w.getError()||p.lastError;return p.lastError=0,e}function fs(e){return ie[e>>2]+m[e+4>>2]*4294967296}function Es(e){return ie[e>>2]+ie[e+4>>2]*4294967296}function Is(e,t){ie[e>>2]=t,ie[e+4>>2]=(t-ie[e>>2])/4294967296;let r=t>=0?Es(e):fs(e);r!=t&&Re(`writeI53ToI64() out of range: serialized JS Number ${t} to Wasm heap as bytes lo=0x${ie[e>>2].toString(16)}, hi=0x${ie[e+4>>2].toString(16)}, which deserializes back to ${r} instead!`)}function ps(e,t,r){if(!t){p.recordError(1281);return}let o;switch(e){case 36346:o=1;break;case 36344:r!=0&&r!=1&&p.recordError(1280);return;case 34814:case 36345:o=0;break;case 34466:var i=w.getParameter(34467);o=i?i.length:0;break;case 33309:if(p.currentContext.version<2){p.recordError(1282);return}var A=w.getSupportedExtensions()||[];o=2*A.length;break;case 33307:case 33308:if(p.currentContext.version<2){p.recordError(1280);return}o=e==33307?3:0;break}if(o===void 0){let s=w.getParameter(e);switch(typeof s){case"number":o=s;break;case"boolean":o=s?1:0;break;case"string":p.recordError(1280);return;case"object":if(s===null)switch(e){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368:case 34068:{o=0;break}default:{p.recordError(1280);return}}else if(s instanceof Float32Array||s instanceof Uint32Array||s instanceof Int32Array||s instanceof Array){for(let c=0;c<s.length;++c)switch(r){case 0:m[t+c*4>>2]=s[c];break;case 2:_e[t+c*4>>2]=s[c];break;case 4:ae[t+c>>0]=s[c]?1:0;break}return}else try{o=s.name|0}catch(c){p.recordError(1280),K(`GL_INVALID_ENUM in glGet${r}v: Unknown object returned from WebGL getParameter(${e})! (error: ${c})`);return}break;default:p.recordError(1280),K(`GL_INVALID_ENUM in glGet${r}v: Native code calling glGet${r}v(${e}) and it returns ${s} of type ${typeof s}!`);return}}switch(r){case 1:Is(t,o);break;case 0:m[t>>2]=o;break;case 2:_e[t>>2]=o;break;case 4:ae[t>>0]=o?1:0;break}}function Cs(e,t){ps(e,t,0)}function yn(e){let t=Ye(e)+1,r=Wt(t);return Qt(e,r,t),r}function hs(e){let t=p.stringCache[e];if(!t){switch(e){case 7939:var r=w.getSupportedExtensions()||[];r=r.concat(r.map(d=>`GL_${d}`)),t=yn(r.join(" "));break;case 7936:case 7937:case 37445:case 37446:var o=w.getParameter(e);o||p.recordError(1280),t=o&&yn(o);break;case 7938:var i=w.getParameter(7938);p.currentContext.version>=2?i=`OpenGL ES 3.0 (${i})`:i=`OpenGL ES 2.0 (${i})`,t=yn(i);break;case 35724:var A=w.getParameter(35724),s=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/,c=A.match(s);c!==null&&(c[1].length==3&&(c[1]=`${c[1]}0`),A=`OpenGL ES GLSL ES ${c[1]} (${A})`),t=yn(A);break;default:p.recordError(1280)}p.stringCache[e]=t}return t}function Bs(e,t){return w.getUniformBlockIndex(p.programs[e],Pe(t))}function ms(e){return parseInt(e)}function zo(e){return e.slice(-1)=="]"&&e.lastIndexOf("[")}function _s(e){let{uniformLocsById:t}=e,{uniformSizeAndIdsByName:r}=e,o,i;if(!t)for(e.uniformLocsById=t={},e.uniformArrayNamesById={},o=0;o<w.getProgramParameter(e,35718);++o){let A=w.getActiveUniform(e,o),s=A.name,c=A.size,d=zo(s),E=d>0?s.slice(0,d):s,I=e.uniformIdCounter;for(e.uniformIdCounter+=c,r[E]=[c,I],i=0;i<c;++i)t[I]=i,e.uniformArrayNamesById[I++]=E}}function ys(e,t){if(t=Pe(t),e=p.programs[e]){_s(e);let{uniformLocsById:r}=e,o=0,i=t,A=zo(t);A>0&&(o=ms(t.slice(A+1))>>>0,i=t.slice(0,A));let s=e.uniformSizeAndIdsByName[i];if(s&&o<s[0]&&(o+=s[1],r[o]=r[o]||w.getUniformLocation(e,t)))return o}else p.recordError(1281);return-1}function Qs(e){e=p.programs[e],w.linkProgram(e),e.uniformLocsById=0,e.uniformSizeAndIdsByName={}}function ws(e,t){e==3317&&(p.unpackAlignment=t),w.pixelStorei(e,t)}function Ds(e,t,r,o){function i(c,d){return c+d-1&-d}let A=e*r,s=i(A,o);return t*s}function bs(e){return{5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4}[e-6402]||1}function vr(e){return e-=5120,e==0?ae:e==1?ce:e==2?qe:e==4?m:e==6?_e:e==5||e==28922||e==28520||e==30779||e==30782?ie:kt}function kr(e){return 31-Math.clz32(e.BYTES_PER_ELEMENT)}function Ro(e,t,r,o,i,A){let s=vr(e),c=kr(s),d=1<<c,E=bs(t)*d,I=Ds(r,o,E,p.unpackAlignment);return s.subarray(i>>c,i+I>>c)}function Ts(e,t,r,o,i,A,s){if(p.currentContext.version>=2){if(w.currentPixelPackBufferBinding)w.readPixels(e,t,r,o,i,A,s);else{let d=vr(A);w.readPixels(e,t,r,o,i,A,d,s>>kr(d))}return}let c=Ro(A,i,r,o,s,i);if(!c){p.recordError(1280);return}w.readPixels(e,t,r,o,i,A,c)}function Os(e,t,r,o){let i=p.getSource(e,t,r,o);w.shaderSource(p.shaders[e],i)}function Rs(e,t,r,o,i,A,s,c,d){if(p.currentContext.version>=2){if(w.currentPixelUnpackBufferBinding)w.texImage2D(e,t,r,o,i,A,s,c,d);else if(d){let E=vr(c);w.texImage2D(e,t,r,o,i,A,s,c,E,d>>kr(E))}else w.texImage2D(e,t,r,o,i,A,s,c,null);return}w.texImage2D(e,t,r,o,i,A,s,c,d?Ro(c,s,o,i,d,r):null)}function Ps(e,t,r){let o=_e[r>>2];w.texParameterf(e,t,o)}function Ms(e,t,r){w.texParameteri(e,t,r)}function Ss(e,t,r,o,i){w.texStorage2D(e,t,r,o,i)}function Fs(e,t,r,o,i,A){w.texStorage3D(e,t,r,o,i,A)}function vs(e,t,r,o,i,A,s,c,d){if(p.currentContext.version>=2){if(w.currentPixelUnpackBufferBinding)w.texSubImage2D(e,t,r,o,i,A,s,c,d);else if(d){let I=vr(c);w.texSubImage2D(e,t,r,o,i,A,s,c,I,d>>kr(I))}else w.texSubImage2D(e,t,r,o,i,A,s,c,null);return}let E=null;d&&(E=Ro(c,s,i,A,d,0)),w.texSubImage2D(e,t,r,o,i,A,s,c,E)}function ks(e,t,r,o,i,A,s,c,d,E,I){if(w.currentPixelUnpackBufferBinding)w.texSubImage3D(e,t,r,o,i,A,s,c,d,E,I);else if(I){let C=vr(E);w.texSubImage3D(e,t,r,o,i,A,s,c,d,E,C,I>>kr(C))}else w.texSubImage3D(e,t,r,o,i,A,s,c,d,E,null)}function st(e){let t=w.currentProgram;if(t){let r=t.uniformLocsById[e];return typeof r=="number"&&(t.uniformLocsById[e]=r=w.getUniformLocation(t,t.uniformArrayNamesById[e]+(r>0?`[${r}]`:""))),r}p.recordError(1282)}function Ns(e,t){w.uniform1f(st(e),t)}function Us(e,t){w.uniform1i(st(e),t)}let Qn=[];function xs(e,t,r){if(p.currentContext.version>=2){w.uniform2fv(st(e),_e,r>>2,t*2);return}if(t<=144){var o=Qn[2*t-1];for(let i=0;i<2*t;i+=2)o[i]=_e[r+4*i>>2],o[i+1]=_e[r+(4*i+4)>>2]}else var o=_e.subarray(r>>2,r+t*8>>2);w.uniform2fv(st(e),o)}function Ls(e,t,r){if(p.currentContext.version>=2){w.uniform4fv(st(e),_e,r>>2,t*4);return}if(t<=72){var o=Qn[4*t-1];let i=_e;r>>=2;for(let A=0;A<4*t;A+=4){let s=r+A;o[A]=i[s],o[A+1]=i[s+1],o[A+2]=i[s+2],o[A+3]=i[s+3]}}else var o=_e.subarray(r>>2,r+t*16>>2);w.uniform4fv(st(e),o)}let Zo=[];function js(e,t,r){if(p.currentContext.version>=2){w.uniform4iv(st(e),m,r>>2,t*4);return}if(t<=72){var o=Zo[4*t-1];for(let i=0;i<4*t;i+=4)o[i]=m[r+4*i>>2],o[i+1]=m[r+(4*i+4)>>2],o[i+2]=m[r+(4*i+8)>>2],o[i+3]=m[r+(4*i+12)>>2]}else var o=m.subarray(r>>2,r+t*16>>2);w.uniform4iv(st(e),o)}function Hs(e,t,r){e=p.programs[e],w.uniformBlockBinding(e,t,r)}function Gs(e,t,r,o){if(p.currentContext.version>=2){w.uniformMatrix4fv(st(e),!!r,_e,o>>2,t*16);return}if(t<=18){var i=Qn[16*t-1];let A=_e;o>>=2;for(let s=0;s<16*t;s+=16){let c=o+s;i[s]=A[c],i[s+1]=A[c+1],i[s+2]=A[c+2],i[s+3]=A[c+3],i[s+4]=A[c+4],i[s+5]=A[c+5],i[s+6]=A[c+6],i[s+7]=A[c+7],i[s+8]=A[c+8],i[s+9]=A[c+9],i[s+10]=A[c+10],i[s+11]=A[c+11],i[s+12]=A[c+12],i[s+13]=A[c+13],i[s+14]=A[c+14],i[s+15]=A[c+15]}}else var i=_e.subarray(o>>2,o+t*64>>2);w.uniformMatrix4fv(st(e),!!r,i)}function Ys(e){e=p.programs[e],w.useProgram(e),w.currentProgram=e}function Xs(e,t,r,o,i,A){let s=p.currentContext.clientBuffers[e];if(!w.currentArrayBufferBinding){s.size=t,s.type=r,s.normalized=o,s.stride=i,s.ptr=A,s.clientside=!0,s.vertexAttribPointerAdaptor=function(c,d,E,I,C,h){this.vertexAttribPointer(c,d,E,I,C,h)};return}s.clientside=!1,w.vertexAttribPointer(e,t,r,!!o,i,A)}function Ws(e,t,r,o){w.viewport(e,t,r,o)}function wn(e,t){let r=new Date(m[e>>2]*1e3);m[t>>2]=r.getUTCSeconds(),m[t+4>>2]=r.getUTCMinutes(),m[t+8>>2]=r.getUTCHours(),m[t+12>>2]=r.getUTCDate(),m[t+16>>2]=r.getUTCMonth(),m[t+20>>2]=r.getUTCFullYear()-1900,m[t+24>>2]=r.getUTCDay(),m[t+36>>2]=0,m[t+32>>2]=0;let o=Date.UTC(r.getUTCFullYear(),0,1,0,0,0,0),i=(r.getTime()-o)/(1e3*60*60*24)|0;return m[t+28>>2]=i,wn.GMTString||(wn.GMTString=lr("GMT")),m[t+40>>2]=wn.GMTString,t}function $s(e){return e}function Dn(){if(Dn.called)return;Dn.called=!0;let e=new Date().getFullYear(),t=new Date(e,0,1),r=new Date(e,6,1),o=t.getTimezoneOffset(),i=r.getTimezoneOffset(),A=Math.max(o,i);m[ia()>>2]=A*60,m[oa()>>2]=+(o!=i);function s(C){let h=C.toTimeString().match(/\(([A-Za-z ]+)\)$/);return h?h[1]:"GMT"}let c=s(t),d=s(r),E=lr(c),I=lr(d);i<o?(m[Nr()>>2]=E,m[Nr()+4>>2]=I):(m[Nr()>>2]=I,m[Nr()+4>>2]=E)}function Vs(e,t){Dn();let r=new Date(m[e>>2]*1e3);m[t>>2]=r.getSeconds(),m[t+4>>2]=r.getMinutes(),m[t+8>>2]=r.getHours(),m[t+12>>2]=r.getDate(),m[t+16>>2]=r.getMonth(),m[t+20>>2]=r.getFullYear()-1900,m[t+24>>2]=r.getDay();let o=new Date(r.getFullYear(),0,1),i=(r.getTime()-o.getTime())/(1e3*60*60*24)|0;m[t+28>>2]=i,m[t+36>>2]=-(r.getTimezoneOffset()*60);let A=new Date(r.getFullYear(),6,1).getTimezoneOffset(),s=o.getTimezoneOffset(),c=(A!=s&&r.getTimezoneOffset()==Math.min(s,A))|0;m[t+32>>2]=c;let d=m[Nr()+(c?4:0)>>2];return m[t+40>>2]=d,t}function Ks(e){Dn();let t=new Date(m[e+20>>2]+1900,m[e+16>>2],m[e+12>>2],m[e+8>>2],m[e+4>>2],m[e>>2],0),r=m[e+32>>2],o=t.getTimezoneOffset(),i=new Date(t.getFullYear(),0,1),A=new Date(t.getFullYear(),6,1).getTimezoneOffset(),s=i.getTimezoneOffset(),c=Math.min(s,A);if(r<0)m[e+32>>2]=+(A!=s&&c==o);else if(r>0!=(c==o)){let E=Math.max(s,A),I=r>0?c:E;t.setTime(t.getTime()+(I-o)*6e4)}m[e+24>>2]=t.getDay();let d=(t.getTime()-i.getTime())/(1e3*60*60*24)|0;return m[e+28>>2]=d,m[e>>2]=t.getSeconds(),m[e+4>>2]=t.getMinutes(),m[e+8>>2]=t.getHours(),m[e+12>>2]=t.getDate(),m[e+16>>2]=t.getMonth(),t.getTime()/1e3|0}function Js(e){ii(e)}function zs(e){He(e)}function bn(e){return e%4===0&&(e%100!==0||e%400===0)}function Po(e,t){let r=0;for(let o=0;o<=t;r+=e[o++]);return r}let Tn=[31,29,31,30,31,30,31,31,30,31,30,31],On=[31,28,31,30,31,30,31,31,30,31,30,31];function Rn(e,t){let r=new Date(e.getTime());for(;t>0;){let o=bn(r.getFullYear()),i=r.getMonth(),A=(o?Tn:On)[i];if(t>A-r.getDate())t-=A-r.getDate()+1,r.setDate(1),i<11?r.setMonth(i+1):(r.setMonth(0),r.setFullYear(r.getFullYear()+1));else return r.setDate(r.getDate()+t),r}return r}function qo(e,t,r,o){let i=m[o+40>>2],A={tm_sec:m[o>>2],tm_min:m[o+4>>2],tm_hour:m[o+8>>2],tm_mday:m[o+12>>2],tm_mon:m[o+16>>2],tm_year:m[o+20>>2],tm_wday:m[o+24>>2],tm_yday:m[o+28>>2],tm_isdst:m[o+32>>2],tm_gmtoff:m[o+36>>2],tm_zone:i?Pe(i):""},s=Pe(r),c={"%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 d in c)s=s.replace(new RegExp(d,"g"),c[d]);let E=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],I=["January","February","March","April","May","June","July","August","September","October","November","December"];function C(D,S,re){let U=typeof D=="number"?D.toString():D||"";for(;U.length<S;)U=re[0]+U;return U}function h(D,S){return C(D,S,"0")}function y(D,S){function re(me){return me<0?-1:me>0?1:0}let U;return(U=re(D.getFullYear()-S.getFullYear()))===0&&(U=re(D.getMonth()-S.getMonth()))===0&&(U=re(D.getDate()-S.getDate())),U}function T(D){switch(D.getDay()){case 0:return new Date(D.getFullYear()-1,11,29);case 1:return D;case 2:return new Date(D.getFullYear(),0,3);case 3:return new Date(D.getFullYear(),0,2);case 4:return new Date(D.getFullYear(),0,1);case 5:return new Date(D.getFullYear()-1,11,31);case 6:return new Date(D.getFullYear()-1,11,30)}}function N(D){let S=Rn(new Date(D.tm_year+1900,0,1),D.tm_yday),re=new Date(S.getFullYear(),0,4),U=new Date(S.getFullYear()+1,0,4),me=T(re),Te=T(U);return y(me,S)<=0?y(Te,S)<=0?S.getFullYear()+1:S.getFullYear():S.getFullYear()-1}let Y={"%a"(D){return E[D.tm_wday].substring(0,3)},"%A"(D){return E[D.tm_wday]},"%b"(D){return I[D.tm_mon].substring(0,3)},"%B"(D){return I[D.tm_mon]},"%C"(D){let S=D.tm_year+1900;return h(S/100|0,2)},"%d"(D){return h(D.tm_mday,2)},"%e"(D){return C(D.tm_mday,2," ")},"%g"(D){return N(D).toString().substring(2)},"%G"(D){return N(D)},"%H"(D){return h(D.tm_hour,2)},"%I"(D){let S=D.tm_hour;return S==0?S=12:S>12&&(S-=12),h(S,2)},"%j"(D){return h(D.tm_mday+Po(bn(D.tm_year+1900)?Tn:On,D.tm_mon-1),3)},"%m"(D){return h(D.tm_mon+1,2)},"%M"(D){return h(D.tm_min,2)},"%n"(){return`
30
30
  `},"%p"(D){return D.tm_hour>=0&&D.tm_hour<12?"AM":"PM"},"%S"(D){return h(D.tm_sec,2)},"%t"(){return" "},"%u"(D){return D.tm_wday||7},"%U"(D){let S=new Date(D.tm_year+1900,0,1),re=S.getDay()===0?S:Rn(S,7-S.getDay()),U=new Date(D.tm_year+1900,D.tm_mon,D.tm_mday);if(y(re,U)<0){let me=Po(bn(U.getFullYear())?Tn:On,U.getMonth()-1)-31,Ze=31-re.getDate()+me+U.getDate();return h(Math.ceil(Ze/7),2)}return y(re,S)===0?"01":"00"},"%V"(D){let S=new Date(D.tm_year+1900,0,4),re=new Date(D.tm_year+1901,0,4),U=T(S),me=T(re),Te=Rn(new Date(D.tm_year+1900,0,1),D.tm_yday);if(y(Te,U)<0)return"53";if(y(me,Te)<=0)return"01";let Ze;return U.getFullYear()<D.tm_year+1900?Ze=D.tm_yday+32-U.getDate():Ze=D.tm_yday+1-U.getDate(),h(Math.ceil(Ze/7),2)},"%w"(D){return D.tm_wday},"%W"(D){let S=new Date(D.tm_year,0,1),re=S.getDay()===1?S:Rn(S,S.getDay()===0?1:7-S.getDay()+1),U=new Date(D.tm_year+1900,D.tm_mon,D.tm_mday);if(y(re,U)<0){let me=Po(bn(U.getFullYear())?Tn:On,U.getMonth()-1)-31,Ze=31-re.getDate()+me+U.getDate();return h(Math.ceil(Ze/7),2)}return y(re,S)===0?"01":"00"},"%y"(D){return(D.tm_year+1900).toString().substring(2)},"%Y"(D){return D.tm_year+1900},"%z"(D){let S=D.tm_gmtoff,re=S>=0;return S=Math.abs(S)/60,S=S/60*100+S%60,(re?"+":"-")+`0000${S}`.slice(-4)},"%Z"(D){return D.tm_zone},"%%"(){return"%"}};for(var d in Y)s.includes(d)&&(s=s.replace(new RegExp(d,"g"),Y[d](A)));let q=Sn(s,!1);return q.length>t?0:(Yr(q,e),q.length-1)}function Zs(e,t,r,o){return qo(e,t,r,o)}n.requestFullscreen=function(t,r){_.requestFullscreen(t,r)},n.requestFullScreen=function(){_.requestFullScreen()},n.requestAnimationFrame=function(t){_.requestAnimationFrame(t)},n.setCanvasSize=function(t,r,o){_.setCanvasSize(t,r,o)},n.pauseMainLoop=function(){_.mainLoop.pause()},n.resumeMainLoop=function(){_.mainLoop.resume()},n.getUserMedia=function(){_.getUserMedia()},n.createContext=function(t,r,o,i){return _.createContext(t,r,o,i)};let ei=function(e,t,r,o){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=a.nextInode++,this.name=t,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=o},Pn=365,Mn=146;Object.defineProperties(ei.prototype,{read:{get(){return(this.mode&Pn)===Pn},set(e){e?this.mode|=Pn:this.mode&=~Pn}},write:{get(){return(this.mode&Mn)===Mn},set(e){e?this.mode|=Mn:this.mode&=~Mn}},isFolder:{get(){return a.isDir(this.mode)}},isDevice:{get(){return a.isChrdev(this.mode)}}}),a.FSNode=ei,a.staticInit(),n.FS_createPath=a.createPath,n.FS_createDataFile=a.createDataFile,n.FS_createPreloadedFile=a.createPreloadedFile,n.FS_createLazyFile=a.createLazyFile,n.FS_createDevice=a.createDevice,n.FS_unlink=a.unlink,Bo(),cn=n.PureVirtualError=tr(Error,"PureVirtualError"),Dr(),yo(),Rt=n.BindingError=tr(Error,"BindingError"),Gt=n.InternalError=tr(Error,"InternalError"),J(),hi(),Ho=n.UnboundTypeError=tr(Error,"UnboundTypeError");let w;for(var Le=0;Le<32;++Le)Jo.push(new Array(Le));let qs=new Float32Array(288);for(var Le=0;Le<288;++Le)Qn[Le]=qs.subarray(0,Le+1);let ea=new Int32Array(288);for(var Le=0;Le<288;++Le)Zo[Le]=ea.subarray(0,Le+1);let mc=!0;function Sn(e,t,r){let o=r>0?r:Ye(e)+1,i=new Array(o),A=Ge(e,i,0,i.length);return t&&(i.length=A),i}let ta=typeof atob=="function"?atob:function(e){let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",r="",o,i,A,s,c,d,E,I=0;e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");do s=t.indexOf(e.charAt(I++)),c=t.indexOf(e.charAt(I++)),d=t.indexOf(e.charAt(I++)),E=t.indexOf(e.charAt(I++)),o=s<<2|c>>4,i=(c&15)<<4|d>>2,A=(d&3)<<6|E,r=r+String.fromCharCode(o),d!==64&&(r=r+String.fromCharCode(i)),E!==64&&(r=r+String.fromCharCode(A));while(I<e.length);return r};function _c(e){if(typeof Bt=="boolean"&&Bt){let t=Buffer.from(e,"base64");return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}try{let t=ta(e),r=new Uint8Array(t.length);for(let o=0;o<t.length;++o)r[o]=t.charCodeAt(o);return r}catch(t){throw new Error("Converting base64 string to bytes failed.")}}var ti={HaveOffsetConverter:Jn,__cxa_allocate_exception:ro,__cxa_atexit:no,__cxa_begin_catch:ot,__cxa_end_catch:Lt,__cxa_find_matching_catch_2:rn,__cxa_find_matching_catch_3:mr,__cxa_free_exception:Br,__cxa_rethrow:nn,__cxa_thread_atexit:Ao,__cxa_throw:so,__resumeException:io,__sys_fcntl64:go,__sys_ioctl:lo,__sys_mmap2:fo,__sys_open:Eo,__sys_stat64:an,_embind_create_inheriting_constructor:Do,_embind_finalize_value_object:u,_embind_register_bigint:f,_embind_register_bool:O,_embind_register_class:yi,_embind_register_class_class_function:Qi,_embind_register_class_constructor:wi,_embind_register_class_function:Di,_embind_register_class_property:bi,_embind_register_emval:Ti,_embind_register_float:Ri,_embind_register_function:Pi,_embind_register_integer:Si,_embind_register_memory_view:Fi,_embind_register_std_string:vi,_embind_register_std_wstring:ki,_embind_register_value_object:Ni,_embind_register_value_object_field:Ui,_embind_register_void:xi,_emval_call_void_method:Hi,_emval_decref:Xo,_emval_get_method_caller:Xi,_emval_incref:Wi,_emval_take_value:$i,abort:Vi,clock_gettime:Ji,dlopen:zi,dlsym:Zi,emscripten_asm_const_int:eA,emscripten_get_heap_max:tA,emscripten_memcpy_big:rA,emscripten_pc_get_function:nA,emscripten_resize_heap:iA,emscripten_stack_snapshot:AA,emscripten_stack_unwind_buffer:sA,emscripten_thread_sleep:aA,emscripten_webgl_create_context:CA,emscripten_webgl_destroy_context:BA,emscripten_webgl_get_context_attributes:mA,emscripten_webgl_get_current_context:Vo,emscripten_webgl_init_context_attributes:_A,emscripten_webgl_make_context_current:Ko,environ_get:QA,environ_sizes_get:wA,exit:pr,fd_close:DA,fd_read:bA,fd_seek:TA,fd_write:OA,getTempRet0:RA,getentropy:mn,glActiveTexture:PA,glAttachShader:MA,glBindAttribLocation:SA,glBindBuffer:FA,glBindBufferBase:vA,glBindFramebuffer:kA,glBindTexture:NA,glBindVertexArray:UA,glBufferData:xA,glClientWaitSync:jA,glCompileShader:HA,glCreateProgram:GA,glCreateShader:YA,glDeleteBuffers:XA,glDeleteFramebuffers:WA,glDeleteProgram:$A,glDeleteShader:VA,glDeleteSync:KA,glDeleteTextures:JA,glDeleteVertexArrays:zA,glDisable:ZA,glDisableVertexAttribArray:qA,glDrawArrays:es,glDrawBuffers:ts,glEnableVertexAttribArray:rs,glFenceSync:ns,glFinish:os,glFlush:is,glFramebufferTexture2D:As,glFramebufferTextureLayer:ss,glGenBuffers:as,glGenFramebuffers:cs,glGenTextures:gs,glGenVertexArrays:ls,glGetAttribLocation:us,glGetError:ds,glGetIntegerv:Cs,glGetString:hs,glGetUniformBlockIndex:Bs,glGetUniformLocation:ys,glLinkProgram:Qs,glPixelStorei:ws,glReadPixels:Ts,glShaderSource:Os,glTexImage2D:Rs,glTexParameterfv:Ps,glTexParameteri:Ms,glTexStorage2D:Ss,glTexStorage3D:Fs,glTexSubImage2D:vs,glTexSubImage3D:ks,glUniform1f:Ns,glUniform1i:Us,glUniform2fv:xs,glUniform4fv:Ls,glUniform4iv:js,glUniformBlockBinding:Hs,glUniformMatrix4fv:Gs,glUseProgram:Ys,glVertexAttribPointer:Xs,glViewport:Ws,gmtime_r:wn,invoke_diii:Ra,invoke_i:va,invoke_ii:pa,invoke_iii:la,invoke_iiii:Pa,invoke_iiiii:Qa,invoke_iiiiii:ba,invoke_iiiiiii:da,invoke_iiiiiiiddi:rc,invoke_iiiiiiii:Oa,invoke_iiiiiiiii:xa,invoke_v:fa,invoke_vdiii:Ac,invoke_vi:ga,invoke_vididdii:za,invoke_vidii:qa,invoke_vii:Ia,invoke_viid:ca,invoke_viidi:ic,invoke_viididii:Ua,invoke_viii:Ca,invoke_viiid:Za,invoke_viiidd:Da,invoke_viiiddi:Fa,invoke_viiidi:ka,invoke_viiii:ya,invoke_viiiid:nc,invoke_viiiidi:Na,invoke_viiiidid:oc,invoke_viiiidiidiiiiiii:Ja,invoke_viiiifiifiiiiiii:Ka,invoke_viiiii:ua,invoke_viiiiid:Ha,invoke_viiiiif:Wa,invoke_viiiiii:ha,invoke_viiiiiid:Ga,invoke_viiiiiif:$a,invoke_viiiiiii:Ba,invoke_viiiiiiiddi:tc,invoke_viiiiiiidiiii:Xa,invoke_viiiiiiifiiii:Va,invoke_viiiiiiii:ma,invoke_viiiiiiiidd:ja,invoke_viiiiiiiidf:La,invoke_viiiiiiiii:_a,invoke_viiiiiiiiidd:Ma,invoke_viiiiiiiiiddi:Sa,invoke_viiiiiiiiii:Ea,invoke_viiiiiiiiiiddi:ec,invoke_viiiiiiiiiii:wa,invoke_viiiiiiiiiiii:Ya,invoke_viiiiiiiiiiiii:Ta,llvm_eh_typeid_for:$s,localtime_r:Vs,mktime:Ks,proc_exit:Js,setTempRet0:zs,strftime:qo,strftime_l:Zs};let yc=Kn(),Qc=n.___wasm_call_ctors=$("__wasm_call_ctors");var at=n._free=$("free"),Wt=n._malloc=$("malloc"),ra=n.___errno_location=$("__errno_location");let wc=n._fflush=$("fflush");var na=n.___getTypeName=$("__getTypeName");let Dc=n.___embind_register_native_and_builtin_types=$("__embind_register_native_and_builtin_types"),bc=n._emscripten_main_thread_process_queued_calls=$("emscripten_main_thread_process_queued_calls");var Mo=n._emscripten_stack_get_end=function(){return(Mo=n._emscripten_stack_get_end=n.asm.emscripten_stack_get_end).apply(null,arguments)},Nr=n.__get_tzname=$("_get_tzname"),oa=n.__get_daylight=$("_get_daylight"),ia=n.__get_timezone=$("_get_timezone"),L=n.stackSave=$("stackSave"),j=n.stackRestore=$("stackRestore"),ri=n.stackAlloc=$("stackAlloc"),ni=n._emscripten_stack_init=function(){return(ni=n._emscripten_stack_init=n.asm.emscripten_stack_init).apply(null,arguments)},Aa=n._emscripten_stack_get_free=function(){return(Aa=n._emscripten_stack_get_free=n.asm.emscripten_stack_get_free).apply(null,arguments)};let Tc=n._saveSetjmp=$("saveSetjmp");var H=n._setThrew=$("setThrew"),oi=n.___cxa_can_catch=$("__cxa_can_catch"),sa=n.___cxa_is_pointer_type=$("__cxa_is_pointer_type"),aa=n._memalign=$("memalign");let Oc=n._emscripten_builtin_malloc=$("emscripten_builtin_malloc"),Rc=n._emscripten_builtin_free=$("emscripten_builtin_free"),Pc=n._emscripten_builtin_memalign=$("emscripten_builtin_memalign"),Mc=n.dynCall_jii=$("dynCall_jii"),Sc=n.dynCall_viji=$("dynCall_viji"),Fc=n.dynCall_jjj=$("dynCall_jjj"),vc=n.dynCall_iiiijj=$("dynCall_iiiijj"),kc=n.dynCall_viijj=$("dynCall_viijj"),Nc=n.dynCall_viiijjjj=$("dynCall_viiijjjj"),Uc=n.dynCall_ji=$("dynCall_ji"),xc=n.dynCall_vij=$("dynCall_vij"),Lc=n.dynCall_viijii=$("dynCall_viijii"),jc=n.dynCall_vj=$("dynCall_vj"),Hc=n.dynCall_viij=$("dynCall_viij"),Gc=n.dynCall_viiiiij=$("dynCall_viiiiij"),Yc=n.dynCall_iijjiiii=$("dynCall_iijjiiii"),Xc=n.dynCall_jiji=$("dynCall_jiji"),Wc=n.dynCall_iiiiij=$("dynCall_iiiiij"),$c=n.dynCall_iiiiijj=$("dynCall_iiiiijj"),Vc=n.dynCall_iiiiiijj=$("dynCall_iiiiiijj");function ca(e,t,r,o){let i=L();try{F.get(e)(t,r,o)}catch(A){if(j(i),A!==A+0&&A!=="longjmp")throw A;H(1,0)}}function ga(e,t){let r=L();try{F.get(e)(t)}catch(o){if(j(r),o!==o+0&&o!=="longjmp")throw o;H(1,0)}}function la(e,t,r){let o=L();try{return F.get(e)(t,r)}catch(i){if(j(o),i!==i+0&&i!=="longjmp")throw i;H(1,0)}}function ua(e,t,r,o,i,A){let s=L();try{F.get(e)(t,r,o,i,A)}catch(c){if(j(s),c!==c+0&&c!=="longjmp")throw c;H(1,0)}}function da(e,t,r,o,i,A,s){let c=L();try{return F.get(e)(t,r,o,i,A,s)}catch(d){if(j(c),d!==d+0&&d!=="longjmp")throw d;H(1,0)}}function fa(e){let t=L();try{F.get(e)()}catch(r){if(j(t),r!==r+0&&r!=="longjmp")throw r;H(1,0)}}function Ea(e,t,r,o,i,A,s,c,d,E,I){let C=L();try{F.get(e)(t,r,o,i,A,s,c,d,E,I)}catch(h){if(j(C),h!==h+0&&h!=="longjmp")throw h;H(1,0)}}function Ia(e,t,r){let o=L();try{F.get(e)(t,r)}catch(i){if(j(o),i!==i+0&&i!=="longjmp")throw i;H(1,0)}}function pa(e,t){let r=L();try{return F.get(e)(t)}catch(o){if(j(r),o!==o+0&&o!=="longjmp")throw o;H(1,0)}}function Ca(e,t,r,o){let i=L();try{F.get(e)(t,r,o)}catch(A){if(j(i),A!==A+0&&A!=="longjmp")throw A;H(1,0)}}function ha(e,t,r,o,i,A,s){let c=L();try{F.get(e)(t,r,o,i,A,s)}catch(d){if(j(c),d!==d+0&&d!=="longjmp")throw d;H(1,0)}}function Ba(e,t,r,o,i,A,s,c){let d=L();try{F.get(e)(t,r,o,i,A,s,c)}catch(E){if(j(d),E!==E+0&&E!=="longjmp")throw E;H(1,0)}}function ma(e,t,r,o,i,A,s,c,d){let E=L();try{F.get(e)(t,r,o,i,A,s,c,d)}catch(I){if(j(E),I!==I+0&&I!=="longjmp")throw I;H(1,0)}}function _a(e,t,r,o,i,A,s,c,d,E){let I=L();try{F.get(e)(t,r,o,i,A,s,c,d,E)}catch(C){if(j(I),C!==C+0&&C!=="longjmp")throw C;H(1,0)}}function ya(e,t,r,o,i){let A=L();try{F.get(e)(t,r,o,i)}catch(s){if(j(A),s!==s+0&&s!=="longjmp")throw s;H(1,0)}}function Qa(e,t,r,o,i){let A=L();try{return F.get(e)(t,r,o,i)}catch(s){if(j(A),s!==s+0&&s!=="longjmp")throw s;H(1,0)}}function wa(e,t,r,o,i,A,s,c,d,E,I,C){let h=L();try{F.get(e)(t,r,o,i,A,s,c,d,E,I,C)}catch(y){if(j(h),y!==y+0&&y!=="longjmp")throw y;H(1,0)}}function Da(e,t,r,o,i,A){let s=L();try{F.get(e)(t,r,o,i,A)}catch(c){if(j(s),c!==c+0&&c!=="longjmp")throw c;H(1,0)}}function ba(e,t,r,o,i,A){let s=L();try{return F.get(e)(t,r,o,i,A)}catch(c){if(j(s),c!==c+0&&c!=="longjmp")throw c;H(1,0)}}function Ta(e,t,r,o,i,A,s,c,d,E,I,C,h,y){let T=L();try{F.get(e)(t,r,o,i,A,s,c,d,E,I,C,h,y)}catch(N){if(j(T),N!==N+0&&N!=="longjmp")throw N;H(1,0)}}function Oa(e,t,r,o,i,A,s,c){let d=L();try{return F.get(e)(t,r,o,i,A,s,c)}catch(E){if(j(d),E!==E+0&&E!=="longjmp")throw E;H(1,0)}}function Ra(e,t,r,o){let i=L();try{return F.get(e)(t,r,o)}catch(A){if(j(i),A!==A+0&&A!=="longjmp")throw A;H(1,0)}}function Pa(e,t,r,o){let i=L();try{return F.get(e)(t,r,o)}catch(A){if(j(i),A!==A+0&&A!=="longjmp")throw A;H(1,0)}}function Ma(e,t,r,o,i,A,s,c,d,E,I,C){let h=L();try{F.get(e)(t,r,o,i,A,s,c,d,E,I,C)}catch(y){if(j(h),y!==y+0&&y!=="longjmp")throw y;H(1,0)}}function Sa(e,t,r,o,i,A,s,c,d,E,I,C,h){let y=L();try{F.get(e)(t,r,o,i,A,s,c,d,E,I,C,h)}catch(T){if(j(y),T!==T+0&&T!=="longjmp")throw T;H(1,0)}}function Fa(e,t,r,o,i,A,s){let c=L();try{F.get(e)(t,r,o,i,A,s)}catch(d){if(j(c),d!==d+0&&d!=="longjmp")throw d;H(1,0)}}function va(e){let t=L();try{return F.get(e)()}catch(r){if(j(t),r!==r+0&&r!=="longjmp")throw r;H(1,0)}}function ka(e,t,r,o,i,A){let s=L();try{F.get(e)(t,r,o,i,A)}catch(c){if(j(s),c!==c+0&&c!=="longjmp")throw c;H(1,0)}}function Na(e,t,r,o,i,A,s){let c=L();try{F.get(e)(t,r,o,i,A,s)}catch(d){if(j(c),d!==d+0&&d!=="longjmp")throw d;H(1,0)}}function Ua(e,t,r,o,i,A,s,c){let d=L();try{F.get(e)(t,r,o,i,A,s,c)}catch(E){if(j(d),E!==E+0&&E!=="longjmp")throw E;H(1,0)}}function xa(e,t,r,o,i,A,s,c,d){let E=L();try{return F.get(e)(t,r,o,i,A,s,c,d)}catch(I){if(j(E),I!==I+0&&I!=="longjmp")throw I;H(1,0)}}function La(e,t,r,o,i,A,s,c,d,E,I){let C=L();try{F.get(e)(t,r,o,i,A,s,c,d,E,I)}catch(h){if(j(C),h!==h+0&&h!=="longjmp")throw h;H(1,0)}}function ja(e,t,r,o,i,A,s,c,d,E,I){let C=L();try{F.get(e)(t,r,o,i,A,s,c,d,E,I)}catch(h){if(j(C),h!==h+0&&h!=="longjmp")throw h;H(1,0)}}function Ha(e,t,r,o,i,A,s){let c=L();try{F.get(e)(t,r,o,i,A,s)}catch(d){if(j(c),d!==d+0&&d!=="longjmp")throw d;H(1,0)}}function Ga(e,t,r,o,i,A,s,c){let d=L();try{F.get(e)(t,r,o,i,A,s,c)}catch(E){if(j(d),E!==E+0&&E!=="longjmp")throw E;H(1,0)}}function Ya(e,t,r,o,i,A,s,c,d,E,I,C,h){let y=L();try{F.get(e)(t,r,o,i,A,s,c,d,E,I,C,h)}catch(T){if(j(y),T!==T+0&&T!=="longjmp")throw T;H(1,0)}}function Xa(e,t,r,o,i,A,s,c,d,E,I,C,h){let y=L();try{F.get(e)(t,r,o,i,A,s,c,d,E,I,C,h)}catch(T){if(j(y),T!==T+0&&T!=="longjmp")throw T;H(1,0)}}function Wa(e,t,r,o,i,A,s){let c=L();try{F.get(e)(t,r,o,i,A,s)}catch(d){if(j(c),d!==d+0&&d!=="longjmp")throw d;H(1,0)}}function $a(e,t,r,o,i,A,s,c){let d=L();try{F.get(e)(t,r,o,i,A,s,c)}catch(E){if(j(d),E!==E+0&&E!=="longjmp")throw E;H(1,0)}}function Va(e,t,r,o,i,A,s,c,d,E,I,C,h){let y=L();try{F.get(e)(t,r,o,i,A,s,c,d,E,I,C,h)}catch(T){if(j(y),T!==T+0&&T!=="longjmp")throw T;H(1,0)}}function Ka(e,t,r,o,i,A,s,c,d,E,I,C,h,y,T,N){let Y=L();try{F.get(e)(t,r,o,i,A,s,c,d,E,I,C,h,y,T,N)}catch(q){if(j(Y),q!==q+0&&q!=="longjmp")throw q;H(1,0)}}function Ja(e,t,r,o,i,A,s,c,d,E,I,C,h,y,T,N){let Y=L();try{F.get(e)(t,r,o,i,A,s,c,d,E,I,C,h,y,T,N)}catch(q){if(j(Y),q!==q+0&&q!=="longjmp")throw q;H(1,0)}}function za(e,t,r,o,i,A,s,c){let d=L();try{F.get(e)(t,r,o,i,A,s,c)}catch(E){if(j(d),E!==E+0&&E!=="longjmp")throw E;H(1,0)}}function Za(e,t,r,o,i){let A=L();try{F.get(e)(t,r,o,i)}catch(s){if(j(A),s!==s+0&&s!=="longjmp")throw s;H(1,0)}}function qa(e,t,r,o,i){let A=L();try{F.get(e)(t,r,o,i)}catch(s){if(j(A),s!==s+0&&s!=="longjmp")throw s;H(1,0)}}function ec(e,t,r,o,i,A,s,c,d,E,I,C,h,y){let T=L();try{F.get(e)(t,r,o,i,A,s,c,d,E,I,C,h,y)}catch(N){if(j(T),N!==N+0&&N!=="longjmp")throw N;H(1,0)}}function tc(e,t,r,o,i,A,s,c,d,E,I){let C=L();try{F.get(e)(t,r,o,i,A,s,c,d,E,I)}catch(h){if(j(C),h!==h+0&&h!=="longjmp")throw h;H(1,0)}}function rc(e,t,r,o,i,A,s,c,d,E){let I=L();try{return F.get(e)(t,r,o,i,A,s,c,d,E)}catch(C){if(j(I),C!==C+0&&C!=="longjmp")throw C;H(1,0)}}function nc(e,t,r,o,i,A){let s=L();try{F.get(e)(t,r,o,i,A)}catch(c){if(j(s),c!==c+0&&c!=="longjmp")throw c;H(1,0)}}function oc(e,t,r,o,i,A,s,c){let d=L();try{F.get(e)(t,r,o,i,A,s,c)}catch(E){if(j(d),E!==E+0&&E!=="longjmp")throw E;H(1,0)}}function ic(e,t,r,o,i){let A=L();try{F.get(e)(t,r,o,i)}catch(s){if(j(A),s!==s+0&&s!=="longjmp")throw s;H(1,0)}}function Ac(e,t,r,o,i){let A=L();try{F.get(e)(t,r,o,i)}catch(s){if(j(A),s!==s+0&&s!=="longjmp")throw s;H(1,0)}}Object.getOwnPropertyDescriptor(n,"intArrayFromString")||(n.intArrayFromString=function(){l("'intArrayFromString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"intArrayToString")||(n.intArrayToString=function(){l("'intArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ccall")||(n.ccall=function(){l("'ccall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"cwrap")||(n.cwrap=function(){l("'cwrap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setValue")||(n.setValue=function(){l("'setValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getValue")||(n.getValue=function(){l("'getValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocate")||(n.allocate=function(){l("'allocate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF8ArrayToString")||(n.UTF8ArrayToString=function(){l("'UTF8ArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF8ToString")||(n.UTF8ToString=function(){l("'UTF8ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF8Array")||(n.stringToUTF8Array=function(){l("'stringToUTF8Array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF8")||(n.stringToUTF8=function(){l("'stringToUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF8")||(n.lengthBytesUTF8=function(){l("'lengthBytesUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackTrace")||(n.stackTrace=function(){l("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPreRun")||(n.addOnPreRun=function(){l("'addOnPreRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnInit")||(n.addOnInit=function(){l("'addOnInit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPreMain")||(n.addOnPreMain=function(){l("'addOnPreMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnExit")||(n.addOnExit=function(){l("'addOnExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPostRun")||(n.addOnPostRun=function(){l("'addOnPostRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeStringToMemory")||(n.writeStringToMemory=function(){l("'writeStringToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeArrayToMemory")||(n.writeArrayToMemory=function(){l("'writeArrayToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeAsciiToMemory")||(n.writeAsciiToMemory=function(){l("'writeAsciiToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.addRunDependency=zt,n.removeRunDependency=Ut,Object.getOwnPropertyDescriptor(n,"FS_createFolder")||(n.FS_createFolder=function(){l("'FS_createFolder' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.FS_createPath=a.createPath,n.FS_createDataFile=a.createDataFile,n.FS_createPreloadedFile=a.createPreloadedFile,n.FS_createLazyFile=a.createLazyFile,Object.getOwnPropertyDescriptor(n,"FS_createLink")||(n.FS_createLink=function(){l("'FS_createLink' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.FS_createDevice=a.createDevice,n.FS_unlink=a.unlink,Object.getOwnPropertyDescriptor(n,"getLEB")||(n.getLEB=function(){l("'getLEB' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFunctionTables")||(n.getFunctionTables=function(){l("'getFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"alignFunctionTables")||(n.alignFunctionTables=function(){l("'alignFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFunctions")||(n.registerFunctions=function(){l("'registerFunctions' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addFunction")||(n.addFunction=function(){l("'addFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"removeFunction")||(n.removeFunction=function(){l("'removeFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFuncWrapper")||(n.getFuncWrapper=function(){l("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"prettyPrint")||(n.prettyPrint=function(){l("'prettyPrint' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCall")||(n.dynCall=function(){l("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getCompilerSetting")||(n.getCompilerSetting=function(){l("'getCompilerSetting' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"print")||(n.print=function(){l("'print' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"printErr")||(n.printErr=function(){l("'printErr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getTempRet0")||(n.getTempRet0=function(){l("'getTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setTempRet0")||(n.setTempRet0=function(){l("'setTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callMain")||(n.callMain=function(){l("'callMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"abort")||(n.abort=function(){l("'abort' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"keepRuntimeAlive")||(n.keepRuntimeAlive=function(){l("'keepRuntimeAlive' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"zeroMemory")||(n.zeroMemory=function(){l("'zeroMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToNewUTF8")||(n.stringToNewUTF8=function(){l("'stringToNewUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setFileTime")||(n.setFileTime=function(){l("'setFileTime' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscripten_realloc_buffer")||(n.emscripten_realloc_buffer=function(){l("'emscripten_realloc_buffer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ENV")||(n.ENV=function(){l("'ENV' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ERRNO_CODES")||(n.ERRNO_CODES=function(){l("'ERRNO_CODES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ERRNO_MESSAGES")||(n.ERRNO_MESSAGES=function(){l("'ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setErrNo")||(n.setErrNo=function(){l("'setErrNo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetPton4")||(n.inetPton4=function(){l("'inetPton4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetNtop4")||(n.inetNtop4=function(){l("'inetNtop4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetPton6")||(n.inetPton6=function(){l("'inetPton6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetNtop6")||(n.inetNtop6=function(){l("'inetNtop6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readSockaddr")||(n.readSockaddr=function(){l("'readSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeSockaddr")||(n.writeSockaddr=function(){l("'writeSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"DNS")||(n.DNS=function(){l("'DNS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getHostByName")||(n.getHostByName=function(){l("'getHostByName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GAI_ERRNO_MESSAGES")||(n.GAI_ERRNO_MESSAGES=function(){l("'GAI_ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Protocols")||(n.Protocols=function(){l("'Protocols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Sockets")||(n.Sockets=function(){l("'Sockets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getRandomDevice")||(n.getRandomDevice=function(){l("'getRandomDevice' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"traverseStack")||(n.traverseStack=function(){l("'traverseStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UNWIND_CACHE")||(n.UNWIND_CACHE=function(){l("'UNWIND_CACHE' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"withBuiltinMalloc")||(n.withBuiltinMalloc=function(){l("'withBuiltinMalloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readAsmConstArgsArray")||(n.readAsmConstArgsArray=function(){l("'readAsmConstArgsArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readAsmConstArgs")||(n.readAsmConstArgs=function(){l("'readAsmConstArgs' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"mainThreadEM_ASM")||(n.mainThreadEM_ASM=function(){l("'mainThreadEM_ASM' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jstoi_q")||(n.jstoi_q=function(){l("'jstoi_q' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jstoi_s")||(n.jstoi_s=function(){l("'jstoi_s' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getExecutableName")||(n.getExecutableName=function(){l("'getExecutableName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"listenOnce")||(n.listenOnce=function(){l("'listenOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"autoResumeAudioContext")||(n.autoResumeAudioContext=function(){l("'autoResumeAudioContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCallLegacy")||(n.dynCallLegacy=function(){l("'dynCallLegacy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getDynCaller")||(n.getDynCaller=function(){l("'getDynCaller' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCall")||(n.dynCall=function(){l("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callRuntimeCallbacks")||(n.callRuntimeCallbacks=function(){l("'callRuntimeCallbacks' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runtimeKeepalivePush")||(n.runtimeKeepalivePush=function(){l("'runtimeKeepalivePush' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runtimeKeepalivePop")||(n.runtimeKeepalivePop=function(){l("'runtimeKeepalivePop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callUserCallback")||(n.callUserCallback=function(){l("'callUserCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"maybeExit")||(n.maybeExit=function(){l("'maybeExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"safeSetTimeout")||(n.safeSetTimeout=function(){l("'safeSetTimeout' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"asmjsMangle")||(n.asmjsMangle=function(){l("'asmjsMangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"asyncLoad")||(n.asyncLoad=function(){l("'asyncLoad' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"alignMemory")||(n.alignMemory=function(){l("'alignMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"mmapAlloc")||(n.mmapAlloc=function(){l("'mmapAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"reallyNegative")||(n.reallyNegative=function(){l("'reallyNegative' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"unSign")||(n.unSign=function(){l("'unSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"reSign")||(n.reSign=function(){l("'reSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"formatString")||(n.formatString=function(){l("'formatString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PATH")||(n.PATH=function(){l("'PATH' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PATH_FS")||(n.PATH_FS=function(){l("'PATH_FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SYSCALLS")||(n.SYSCALLS=function(){l("'SYSCALLS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"syscallMmap2")||(n.syscallMmap2=function(){l("'syscallMmap2' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"syscallMunmap")||(n.syscallMunmap=function(){l("'syscallMunmap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getSocketFromFD")||(n.getSocketFromFD=function(){l("'getSocketFromFD' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getSocketAddress")||(n.getSocketAddress=function(){l("'getSocketAddress' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"JSEvents")||(n.JSEvents=function(){l("'JSEvents' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerKeyEventCallback")||(n.registerKeyEventCallback=function(){l("'registerKeyEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"specialHTMLTargets")||(n.specialHTMLTargets=function(){l("'specialHTMLTargets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"findEventTarget")||(n.findEventTarget=function(){l("'findEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"findCanvasEventTarget")||(n.findCanvasEventTarget=function(){l("'findCanvasEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getBoundingClientRect")||(n.getBoundingClientRect=function(){l("'getBoundingClientRect' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillMouseEventData")||(n.fillMouseEventData=function(){l("'fillMouseEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerMouseEventCallback")||(n.registerMouseEventCallback=function(){l("'registerMouseEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerWheelEventCallback")||(n.registerWheelEventCallback=function(){l("'registerWheelEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerUiEventCallback")||(n.registerUiEventCallback=function(){l("'registerUiEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFocusEventCallback")||(n.registerFocusEventCallback=function(){l("'registerFocusEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillDeviceOrientationEventData")||(n.fillDeviceOrientationEventData=function(){l("'fillDeviceOrientationEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerDeviceOrientationEventCallback")||(n.registerDeviceOrientationEventCallback=function(){l("'registerDeviceOrientationEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillDeviceMotionEventData")||(n.fillDeviceMotionEventData=function(){l("'fillDeviceMotionEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerDeviceMotionEventCallback")||(n.registerDeviceMotionEventCallback=function(){l("'registerDeviceMotionEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"screenOrientation")||(n.screenOrientation=function(){l("'screenOrientation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillOrientationChangeEventData")||(n.fillOrientationChangeEventData=function(){l("'fillOrientationChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerOrientationChangeEventCallback")||(n.registerOrientationChangeEventCallback=function(){l("'registerOrientationChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillFullscreenChangeEventData")||(n.fillFullscreenChangeEventData=function(){l("'fillFullscreenChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFullscreenChangeEventCallback")||(n.registerFullscreenChangeEventCallback=function(){l("'registerFullscreenChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerRestoreOldStyle")||(n.registerRestoreOldStyle=function(){l("'registerRestoreOldStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"hideEverythingExceptGivenElement")||(n.hideEverythingExceptGivenElement=function(){l("'hideEverythingExceptGivenElement' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"restoreHiddenElements")||(n.restoreHiddenElements=function(){l("'restoreHiddenElements' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setLetterbox")||(n.setLetterbox=function(){l("'setLetterbox' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"currentFullscreenStrategy")||(n.currentFullscreenStrategy=function(){l("'currentFullscreenStrategy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"restoreOldWindowedStyle")||(n.restoreOldWindowedStyle=function(){l("'restoreOldWindowedStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"softFullscreenResizeWebGLRenderTarget")||(n.softFullscreenResizeWebGLRenderTarget=function(){l("'softFullscreenResizeWebGLRenderTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"doRequestFullscreen")||(n.doRequestFullscreen=function(){l("'doRequestFullscreen' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillPointerlockChangeEventData")||(n.fillPointerlockChangeEventData=function(){l("'fillPointerlockChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerPointerlockChangeEventCallback")||(n.registerPointerlockChangeEventCallback=function(){l("'registerPointerlockChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerPointerlockErrorEventCallback")||(n.registerPointerlockErrorEventCallback=function(){l("'registerPointerlockErrorEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requestPointerLock")||(n.requestPointerLock=function(){l("'requestPointerLock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillVisibilityChangeEventData")||(n.fillVisibilityChangeEventData=function(){l("'fillVisibilityChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerVisibilityChangeEventCallback")||(n.registerVisibilityChangeEventCallback=function(){l("'registerVisibilityChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerTouchEventCallback")||(n.registerTouchEventCallback=function(){l("'registerTouchEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillGamepadEventData")||(n.fillGamepadEventData=function(){l("'fillGamepadEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerGamepadEventCallback")||(n.registerGamepadEventCallback=function(){l("'registerGamepadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerBeforeUnloadEventCallback")||(n.registerBeforeUnloadEventCallback=function(){l("'registerBeforeUnloadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillBatteryEventData")||(n.fillBatteryEventData=function(){l("'fillBatteryEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"battery")||(n.battery=function(){l("'battery' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerBatteryEventCallback")||(n.registerBatteryEventCallback=function(){l("'registerBatteryEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setCanvasElementSize")||(n.setCanvasElementSize=function(){l("'setCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getCanvasElementSize")||(n.getCanvasElementSize=function(){l("'getCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"polyfillSetImmediate")||(n.polyfillSetImmediate=function(){l("'polyfillSetImmediate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"demangle")||(n.demangle=function(){l("'demangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"demangleAll")||(n.demangleAll=function(){l("'demangleAll' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jsStackTrace")||(n.jsStackTrace=function(){l("'jsStackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackTrace")||(n.stackTrace=function(){l("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getEnvStrings")||(n.getEnvStrings=function(){l("'getEnvStrings' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"checkWasiClock")||(n.checkWasiClock=function(){l("'checkWasiClock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64")||(n.writeI53ToI64=function(){l("'writeI53ToI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64Clamped")||(n.writeI53ToI64Clamped=function(){l("'writeI53ToI64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64Signaling")||(n.writeI53ToI64Signaling=function(){l("'writeI53ToI64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToU64Clamped")||(n.writeI53ToU64Clamped=function(){l("'writeI53ToU64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToU64Signaling")||(n.writeI53ToU64Signaling=function(){l("'writeI53ToU64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readI53FromI64")||(n.readI53FromI64=function(){l("'readI53FromI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readI53FromU64")||(n.readI53FromU64=function(){l("'readI53FromU64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"convertI32PairToI53")||(n.convertI32PairToI53=function(){l("'convertI32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"convertU32PairToI53")||(n.convertU32PairToI53=function(){l("'convertU32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"uncaughtExceptionCount")||(n.uncaughtExceptionCount=function(){l("'uncaughtExceptionCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exceptionLast")||(n.exceptionLast=function(){l("'exceptionLast' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exceptionCaught")||(n.exceptionCaught=function(){l("'exceptionCaught' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ExceptionInfo")||(n.ExceptionInfo=function(){l("'ExceptionInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"CatchInfo")||(n.CatchInfo=function(){l("'CatchInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exception_addRef")||(n.exception_addRef=function(){l("'exception_addRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exception_decRef")||(n.exception_decRef=function(){l("'exception_decRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Browser")||(n.Browser=function(){l("'Browser' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"funcWrappers")||(n.funcWrappers=function(){l("'funcWrappers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFuncWrapper")||(n.getFuncWrapper=function(){l("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setMainLoop")||(n.setMainLoop=function(){l("'setMainLoop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"wget")||(n.wget=function(){l("'wget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"FS")||(n.FS=function(){l("'FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"MEMFS")||(n.MEMFS=function(){l("'MEMFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"TTY")||(n.TTY=function(){l("'TTY' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PIPEFS")||(n.PIPEFS=function(){l("'PIPEFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SOCKFS")||(n.SOCKFS=function(){l("'SOCKFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"_setNetworkCallback")||(n._setNetworkCallback=function(){l("'_setNetworkCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"tempFixedLengthArray")||(n.tempFixedLengthArray=function(){l("'tempFixedLengthArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"miniTempWebGLFloatBuffers")||(n.miniTempWebGLFloatBuffers=function(){l("'miniTempWebGLFloatBuffers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heapObjectForWebGLType")||(n.heapObjectForWebGLType=function(){l("'heapObjectForWebGLType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heapAccessShiftForWebGLHeap")||(n.heapAccessShiftForWebGLHeap=function(){l("'heapAccessShiftForWebGLHeap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.GL=p,Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGet")||(n.emscriptenWebGLGet=function(){l("'emscriptenWebGLGet' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"computeUnpackAlignedImageSize")||(n.computeUnpackAlignedImageSize=function(){l("'computeUnpackAlignedImageSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetTexPixelData")||(n.emscriptenWebGLGetTexPixelData=function(){l("'emscriptenWebGLGetTexPixelData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetUniform")||(n.emscriptenWebGLGetUniform=function(){l("'emscriptenWebGLGetUniform' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglGetUniformLocation")||(n.webglGetUniformLocation=function(){l("'webglGetUniformLocation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglPrepareUniformLocationsBeforeFirstUse")||(n.webglPrepareUniformLocationsBeforeFirstUse=function(){l("'webglPrepareUniformLocationsBeforeFirstUse' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglGetLeftBracePos")||(n.webglGetLeftBracePos=function(){l("'webglGetLeftBracePos' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetVertexAttrib")||(n.emscriptenWebGLGetVertexAttrib=function(){l("'emscriptenWebGLGetVertexAttrib' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetBufferBinding")||(n.emscriptenWebGLGetBufferBinding=function(){l("'emscriptenWebGLGetBufferBinding' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLValidateMapBufferTarget")||(n.emscriptenWebGLValidateMapBufferTarget=function(){l("'emscriptenWebGLValidateMapBufferTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeGLArray")||(n.writeGLArray=function(){l("'writeGLArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"AL")||(n.AL=function(){l("'AL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_unicode")||(n.SDL_unicode=function(){l("'SDL_unicode' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_ttfContext")||(n.SDL_ttfContext=function(){l("'SDL_ttfContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_audio")||(n.SDL_audio=function(){l("'SDL_audio' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL")||(n.SDL=function(){l("'SDL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_gfx")||(n.SDL_gfx=function(){l("'SDL_gfx' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLUT")||(n.GLUT=function(){l("'GLUT' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"EGL")||(n.EGL=function(){l("'EGL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLFW_Window")||(n.GLFW_Window=function(){l("'GLFW_Window' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLFW")||(n.GLFW=function(){l("'GLFW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLEW")||(n.GLEW=function(){l("'GLEW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"IDBStore")||(n.IDBStore=function(){l("'IDBStore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runAndAbortIfError")||(n.runAndAbortIfError=function(){l("'runAndAbortIfError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_handle_array")||(n.emval_handle_array=function(){l("'emval_handle_array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_free_list")||(n.emval_free_list=function(){l("'emval_free_list' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_symbols")||(n.emval_symbols=function(){l("'emval_symbols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_emval")||(n.init_emval=function(){l("'init_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"count_emval_handles")||(n.count_emval_handles=function(){l("'count_emval_handles' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"get_first_emval")||(n.get_first_emval=function(){l("'get_first_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getStringOrSymbol")||(n.getStringOrSymbol=function(){l("'getStringOrSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requireHandle")||(n.requireHandle=function(){l("'requireHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_newers")||(n.emval_newers=function(){l("'emval_newers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"craftEmvalAllocator")||(n.craftEmvalAllocator=function(){l("'craftEmvalAllocator' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_get_global")||(n.emval_get_global=function(){l("'emval_get_global' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_methodCallers")||(n.emval_methodCallers=function(){l("'emval_methodCallers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"InternalError")||(n.InternalError=function(){l("'InternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"BindingError")||(n.BindingError=function(){l("'BindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UnboundTypeError")||(n.UnboundTypeError=function(){l("'UnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PureVirtualError")||(n.PureVirtualError=function(){l("'PureVirtualError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_embind")||(n.init_embind=function(){l("'init_embind' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwInternalError")||(n.throwInternalError=function(){l("'throwInternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwBindingError")||(n.throwBindingError=function(){l("'throwBindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwUnboundTypeError")||(n.throwUnboundTypeError=function(){l("'throwUnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ensureOverloadTable")||(n.ensureOverloadTable=function(){l("'ensureOverloadTable' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exposePublicSymbol")||(n.exposePublicSymbol=function(){l("'exposePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"replacePublicSymbol")||(n.replacePublicSymbol=function(){l("'replacePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"extendError")||(n.extendError=function(){l("'extendError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"createNamedFunction")||(n.createNamedFunction=function(){l("'createNamedFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredInstances")||(n.registeredInstances=function(){l("'registeredInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getBasestPointer")||(n.getBasestPointer=function(){l("'getBasestPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerInheritedInstance")||(n.registerInheritedInstance=function(){l("'registerInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"unregisterInheritedInstance")||(n.unregisterInheritedInstance=function(){l("'unregisterInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getInheritedInstance")||(n.getInheritedInstance=function(){l("'getInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getInheritedInstanceCount")||(n.getInheritedInstanceCount=function(){l("'getInheritedInstanceCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getLiveInheritedInstances")||(n.getLiveInheritedInstances=function(){l("'getLiveInheritedInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredTypes")||(n.registeredTypes=function(){l("'registeredTypes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"awaitingDependencies")||(n.awaitingDependencies=function(){l("'awaitingDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"typeDependencies")||(n.typeDependencies=function(){l("'typeDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredPointers")||(n.registeredPointers=function(){l("'registeredPointers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerType")||(n.registerType=function(){l("'registerType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"whenDependentTypesAreResolved")||(n.whenDependentTypesAreResolved=function(){l("'whenDependentTypesAreResolved' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind_charCodes")||(n.embind_charCodes=function(){l("'embind_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind_init_charCodes")||(n.embind_init_charCodes=function(){l("'embind_init_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readLatin1String")||(n.readLatin1String=function(){l("'readLatin1String' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getTypeName")||(n.getTypeName=function(){l("'getTypeName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heap32VectorToArray")||(n.heap32VectorToArray=function(){l("'heap32VectorToArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requireRegisteredType")||(n.requireRegisteredType=function(){l("'requireRegisteredType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getShiftFromSize")||(n.getShiftFromSize=function(){l("'getShiftFromSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"integerReadValueFromPointer")||(n.integerReadValueFromPointer=function(){l("'integerReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"enumReadValueFromPointer")||(n.enumReadValueFromPointer=function(){l("'enumReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"floatReadValueFromPointer")||(n.floatReadValueFromPointer=function(){l("'floatReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"simpleReadValueFromPointer")||(n.simpleReadValueFromPointer=function(){l("'simpleReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runDestructors")||(n.runDestructors=function(){l("'runDestructors' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"new_")||(n.new_=function(){l("'new_' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"craftInvokerFunction")||(n.craftInvokerFunction=function(){l("'craftInvokerFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind__requireFunction")||(n.embind__requireFunction=function(){l("'embind__requireFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"tupleRegistrations")||(n.tupleRegistrations=function(){l("'tupleRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"structRegistrations")||(n.structRegistrations=function(){l("'structRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"genericPointerToWireType")||(n.genericPointerToWireType=function(){l("'genericPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"constNoSmartPtrRawPointerToWireType")||(n.constNoSmartPtrRawPointerToWireType=function(){l("'constNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"nonConstNoSmartPtrRawPointerToWireType")||(n.nonConstNoSmartPtrRawPointerToWireType=function(){l("'nonConstNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_RegisteredPointer")||(n.init_RegisteredPointer=function(){l("'init_RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer")||(n.RegisteredPointer=function(){l("'RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_getPointee")||(n.RegisteredPointer_getPointee=function(){l("'RegisteredPointer_getPointee' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_destructor")||(n.RegisteredPointer_destructor=function(){l("'RegisteredPointer_destructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_deleteObject")||(n.RegisteredPointer_deleteObject=function(){l("'RegisteredPointer_deleteObject' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_fromWireType")||(n.RegisteredPointer_fromWireType=function(){l("'RegisteredPointer_fromWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runDestructor")||(n.runDestructor=function(){l("'runDestructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"releaseClassHandle")||(n.releaseClassHandle=function(){l("'releaseClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"finalizationGroup")||(n.finalizationGroup=function(){l("'finalizationGroup' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"detachFinalizer_deps")||(n.detachFinalizer_deps=function(){l("'detachFinalizer_deps' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"detachFinalizer")||(n.detachFinalizer=function(){l("'detachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"attachFinalizer")||(n.attachFinalizer=function(){l("'attachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"makeClassHandle")||(n.makeClassHandle=function(){l("'makeClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_ClassHandle")||(n.init_ClassHandle=function(){l("'init_ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle")||(n.ClassHandle=function(){l("'ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_isAliasOf")||(n.ClassHandle_isAliasOf=function(){l("'ClassHandle_isAliasOf' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwInstanceAlreadyDeleted")||(n.throwInstanceAlreadyDeleted=function(){l("'throwInstanceAlreadyDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_clone")||(n.ClassHandle_clone=function(){l("'ClassHandle_clone' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_delete")||(n.ClassHandle_delete=function(){l("'ClassHandle_delete' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"deletionQueue")||(n.deletionQueue=function(){l("'deletionQueue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_isDeleted")||(n.ClassHandle_isDeleted=function(){l("'ClassHandle_isDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_deleteLater")||(n.ClassHandle_deleteLater=function(){l("'ClassHandle_deleteLater' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"flushPendingDeletes")||(n.flushPendingDeletes=function(){l("'flushPendingDeletes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"delayFunction")||(n.delayFunction=function(){l("'delayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setDelayFunction")||(n.setDelayFunction=function(){l("'setDelayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredClass")||(n.RegisteredClass=function(){l("'RegisteredClass' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"shallowCopyInternalPointer")||(n.shallowCopyInternalPointer=function(){l("'shallowCopyInternalPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"downcastPointer")||(n.downcastPointer=function(){l("'downcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"upcastPointer")||(n.upcastPointer=function(){l("'upcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"validateThis")||(n.validateThis=function(){l("'validateThis' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"char_0")||(n.char_0=function(){l("'char_0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"char_9")||(n.char_9=function(){l("'char_9' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"makeLegalFunctionName")||(n.makeLegalFunctionName=function(){l("'makeLegalFunctionName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetIndexed")||(n.emscriptenWebGLGetIndexed=function(){l("'emscriptenWebGLGetIndexed' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"warnOnce")||(n.warnOnce=function(){l("'warnOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackSave")||(n.stackSave=function(){l("'stackSave' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackRestore")||(n.stackRestore=function(){l("'stackRestore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackAlloc")||(n.stackAlloc=function(){l("'stackAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"AsciiToString")||(n.AsciiToString=function(){l("'AsciiToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToAscii")||(n.stringToAscii=function(){l("'stringToAscii' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF16ToString")||(n.UTF16ToString=function(){l("'UTF16ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF16")||(n.stringToUTF16=function(){l("'stringToUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF16")||(n.lengthBytesUTF16=function(){l("'lengthBytesUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF32ToString")||(n.UTF32ToString=function(){l("'UTF32ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF32")||(n.stringToUTF32=function(){l("'stringToUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF32")||(n.lengthBytesUTF32=function(){l("'lengthBytesUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocateUTF8")||(n.allocateUTF8=function(){l("'allocateUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocateUTF8OnStack")||(n.allocateUTF8OnStack=function(){l("'allocateUTF8OnStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.writeStackCookie=lt,n.checkStackCookie=X,Object.getOwnPropertyDescriptor(n,"ALLOC_NORMAL")||Object.defineProperty(n,"ALLOC_NORMAL",{configurable:!0,get(){l("'ALLOC_NORMAL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),Object.getOwnPropertyDescriptor(n,"ALLOC_STACK")||Object.defineProperty(n,"ALLOC_STACK",{configurable:!0,get(){l("'ALLOC_STACK' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}});let Fn;function So(e){this.name="ExitStatus",this.message=`Program terminated with exit(${e})`,this.status=e}Ke=function e(){Fn||Fo(),Fn||(Ke=e)};function sc(){ni(),lt()}function Fo(e){if(e=e||De,dt>0||(sc(),fr(),dt>0))return;function t(){Fn||(Fn=!0,n.calledRun=!0,!$e&&(Er(),oe(n),n.onRuntimeInitialized&&n.onRuntimeInitialized(),P(!n._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),Wn()))}n.setStatus?(n.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>{n.setStatus("")},1),t()},1)):t(),X()}n.run=Fo;function ac(){let e=se,t=K,r=!1;se=K=function(o){r=!0};try{let o=n._fflush;o&&o(0),["stdout","stderr"].forEach(i=>{let A=a.analyzePath(`/dev/${i}`);if(!A)return;let s=A.object,{rdev:c}=s,d=de.ttys[c];d&&d.output&&d.output.length&&(r=!0)})}catch(o){}se=e,K=t,r&&Re("stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the FAQ), or make sure to emit a newline when you printf etc.")}function cc(e,t){if(vt=e,ac(),dr()){if(!t){let r=`program exited (with status: ${e}), but EXIT_RUNTIME is not set, so halting execution but not exiting the runtime or preventing further async execution (build with EXIT_RUNTIME=1, if you want a true shutdown)`;he(r),K(r)}}else $r();ii(e)}function ii(e){vt=e,dr()||(n.onExit&&n.onExit(e),$e=!0),ke(e,new So(e))}if(n.preInit)for(typeof n.preInit=="function"&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.pop()();return Fo(),M.ready}}(),di=Cc;var Bc={},hc=(()=>{var Z=Bc.url;return function(M={}){var n=M,oe,he;n.ready=new Promise((g,u)=>{oe=g,he=u});var Be=Object.assign({},n),fe=[],De="./this.program",ve=(g,u)=>{throw u},ke=!0,Oe=!1,Ee="";function Bt(g){return n.locateFile?n.locateFile(g,Ee):Ee+g}var Un,je,ar,cr;(ke||Oe)&&(Oe?Ee=self.location.href:typeof document!="undefined"&&document.currentScript&&(Ee=document.currentScript.src),Z&&(Ee=Z),Ee.indexOf("blob:")!==0?Ee=Ee.substr(0,Ee.replace(/[?#].*/,"").lastIndexOf("/")+1):Ee="",Un=g=>{var u=new XMLHttpRequest;return u.open("GET",g,!1),u.send(null),u.responseText},Oe&&(ar=g=>{var u=new XMLHttpRequest;return u.open("GET",g,!1),u.responseType="arraybuffer",u.send(null),new Uint8Array(u.response)}),je=(g,u,f)=>{var B=new XMLHttpRequest;B.open("GET",g,!0),B.responseType="arraybuffer",B.onload=()=>{if(B.status==200||B.status==0&&B.response){u(B.response);return}f()},B.onerror=f,B.send(null)},cr=g=>document.title=g);var gr=n.print||console.log.bind(console),St=n.printErr||console.error.bind(console);Object.assign(n,Be),Be=null,n.arguments&&(fe=n.arguments),n.thisProgram&&(De=n.thisProgram),n.quit&&(ve=n.quit);var $t;n.wasmBinary&&($t=n.wasmBinary);var No=n.noExitRuntime||!0;typeof WebAssembly!="object"&&Kt("no native wasm support detected");var xn,se,K=!1,Re,ct,be,Ne,Vt,mt,le,He,Ur;function Ft(){var g=xn.buffer;n.HEAP8=ct=new Int8Array(g),n.HEAP16=Ne=new Int16Array(g),n.HEAP32=mt=new Int32Array(g),n.HEAPU8=be=new Uint8Array(g),n.HEAPU16=Vt=new Uint16Array(g),n.HEAPU32=le=new Uint32Array(g),n.HEAPF32=He=new Float32Array(g),n.HEAPF64=Ur=new Float64Array(g)}var xr,_t=[],$e=[],vt=[],P=!1;function Ln(){if(n.preRun)for(typeof n.preRun=="function"&&(n.preRun=[n.preRun]);n.preRun.length;)Lr(n.preRun.shift());gt(_t)}function Uo(){P=!0,gt($e)}function xo(){if(n.postRun)for(typeof n.postRun=="function"&&(n.postRun=[n.postRun]);n.postRun.length;)Pe(n.postRun.shift());gt(vt)}function Lr(g){_t.unshift(g)}function yt(g){$e.unshift(g)}function Pe(g){vt.unshift(g)}var Ge=0,Qt=null,Ye=null;function jr(g){Ge++,n.monitorRunDependencies&&n.monitorRunDependencies(Ge)}function jn(g){if(Ge--,n.monitorRunDependencies&&n.monitorRunDependencies(Ge),Ge==0&&(Qt!==null&&(clearInterval(Qt),Qt=null),Ye)){var u=Ye;Ye=null,u()}}function Kt(g){n.onAbort&&n.onAbort(g),g="Aborted("+g+")",St(g),K=!0,Re=1,g+=". Build with -sASSERTIONS for more info.";var u=new WebAssembly.RuntimeError(g);throw he(u),u}var Hr="data:application/octet-stream;base64,";function Gr(g){return g.startsWith(Hr)}var wt;wt="data:application/octet-stream;base64,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KAIADAELIAALIQggB0EEaiAAIAFB5////wNJBH8gByABQQF0NgIMIAcgASACajYCBCMAQRBrIgIkACAHQQRqIgkoAgAgB0EMaiIKKAIASSELIAJBEGokACAKIAkgCxsoAgAiAkELTwR/IAJBEGpBcHEiAiACQQFrIgIgAkELRhsFQQoLQQFqBUHv////BwsQLSAHKAIEIQIgBygCCBogBARAIAIgCCAEECELIAUEQCACIARqIAYgBRAhCyADIARrIQYgAyAERwRAIAIgBGogBWogBCAIaiAGECELIAFBCkcEQCAIEBkLIAAgAjYCACAAIAAoAghBgICAgHhxIAcoAghB/////wdxcjYCCCAAIAAoAghBgICAgHhyNgIIIAAgBCAFaiAGaiIANgIEIAdBADoADCAAIAJqIActAAw6AAAgB0EQaiQADwsQJAALCwAgACABIAIQLxoL9QMCBH8BfiMAQRBrIgUkACAFIAI2AgwjAEGgAWsiAyQAIAMgACADQZ4BaiABGyIENgKUASADIAFBAWsiAEEAIAAgAU0bNgKYAQNAIAMgB6dqQQA6AAAgB0IBfCIHQpABVA0AC0F/IQAgA0F/NgJMIANBGTYCJCADQX82AlAgAyADQZ8BajYCLCADIANBlAFqNgJUAkAgAUEASARAQbTEAEE9NgIADAELIARBADoAAEEAIQQjAEHQAWsiASQAIAEgAjYCzAEgAUGgAWoiAEEAQSgQKSABIAEoAswBNgLIAQJAQQAgAUHIAWogAUHQAGogABBJQQBIBEBBfyEADAELIAMoAkxBAE4hAiADIAMoAgAiBkFfcTYCAAJ/AkACQCADKAIwRQRAIANB0AA2AjAgA0EANgIcIANCADcDECADKAIsIQQgAyABNgIsDAELIAMoAhANAQtBfyADEEwNARoLIAMgAUHIAWogAUHQAGogAUGgAWoQSQshACAEBEAgA0EAQQAgAygCJBEFABogA0EANgIwIAMgBDYCLCADQQA2AhwgAygCFCEEIANCADcDECAAQX8gBBshAAsgAyADKAIAIgQgBkEgcXI2AgBBfyAAIARBIHEbIQAgAkUNAAsgAUHQAWokAAsgA0GgAWokACAFQRBqJAAgAAuKBQIGfgJ/IAEgASgCAEEHakF4cSIBQRBqNgIAIAAhCSABKQMAIQMgASkDCCEGIwBBIGsiCCQAAkAgBkL///////////8AgyIEQoCAgICAgMCAPH0gBEKAgICAgIDA/8MAfVQEQCAGQgSGIANCPIiEIQQgA0L//////////w+DIgNCgYCAgICAgIAIWgRAIARCgYCAgICAgIDAAHwhAgwCCyAEQoCAgICAgICAQH0hAiADQoCAgICAgICACFINASACIARCAYN8IQIMAQsgA1AgBEKAgICAgIDA//8AVCAEQoCAgICAgMD//wBRG0UEQCAGQgSGIANCPIiEQv////////8Dg0KAgICAgICA/P8AhCECDAELQoCAgICAgID4/wAhAiAEQv///////7//wwBWDQBCACECIARCMIinIgBBkfcASQ0AIAMhAiAGQv///////z+DQoCAgICAgMAAhCIFIQcCQCAAQYH3AGsiAUHAAHEEQCACIAFBQGqthiEHQgAhAgwBCyABRQ0AIAcgAa0iBIYgAkHAACABa62IhCEHIAIgBIYhAgsgCCACNwMQIAggBzcDGAJAQYH4ACAAayIAQcAAcQRAIAUgAEFAaq2IIQNCACEFDAELIABFDQAgBUHAACAAa62GIAMgAK0iAoiEIQMgBSACiCEFCyAIIAM3AwAgCCAFNwMIIAgpAwhCBIYgCCkDACIDQjyIhCECIAgpAxAgCCkDGIRCAFKtIANC//////////8Pg4QiA0KBgICAgICAgAhaBEAgAkIBfCECDAELIANCgICAgICAgIAIUg0AIAJCAYMgAnwhAgsgCEEgaiQAIAkgAiAGQoCAgICAgICAgH+DhL85AwALlhgDEn8BfAJ+IwBBsARrIgwkACAMQQA2AiwCQCABvSIZQgBTBEBBASEQQYoIIRMgAZoiAb0hGQwBCyAEQYAQcQRAQQEhEEGNCCETDAELQZAIQYsIIARBAXEiEBshEyAQRSEVCwJAIBlCgICAgICAgPj/AINCgICAgICAgPj/AFEEQCAAQSAgAiAQQQNqIgMgBEH//3txEB0gACATIBAQGyAAQbgJQZMLIAVBIHEiBRtB5gpBlwsgBRsgASABYhtBAxAbIABBICACIAMgBEGAwABzEB0gAyACIAIgA0gbIQkMAQsgDEEQaiERAkACfwJAIAEgDEEsahBKIgEgAaAiAUQAAAAAAAAAAGIEQCAMIAwoAiwiBkEBazYCLCAFQSByIg5B4QBHDQEMAwsg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BCgCICIAQQFHDQAgAigCAEUNACACIAQoAhg2AgALIABBAUYhBQwBC0EAIQULIARBQGskACAFCzEAIAAgASgCCEEAEBwEQCABIAIgAxA7DwsgACgCCCIAIAEgAiADIAAoAgAoAhwRBgALGAAgACABKAIIQQAQHARAIAEgAiADEDsLC5sBAQF/IwBBQGoiAyQAAn9BASAAIAFBABAcDQAaQQAgAUUNABpBACABQbw9EB8iAUUNABogA0EMakEAQTQQKSADQQE2AjggA0F/NgIUIAMgADYCECADIAE2AgggASADQQhqIAIoAgBBASABKAIAKAIcEQYAIAMoAiAiAEEBRgRAIAIgAygCGDYCAAsgAEEBRgshACADQUBrJAAgAAsKACAAIAFBABAcC0ACAX8BfCMAQRBrIgIkACABKAIAQYTAACACQQxqEAkhAyACKAIMEAYgACADRAAAAAAAAAAAYjoAHCACQRBqJAALLgEBfyMAQRBrIgIkACACIAEtABw2AgggAEGEwAAgAkEIahAHNgIAIAJBEGokAAuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGECIaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEECIaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACC2cBAn8jAEEQayICJABBKBAaIQEgACgCABABIAIgACgCADYCCCABQageIAJBCGoQBzYCACABQQE2AgwgAUKBgICAEDcCBCABQoCAgIAwNwIgIAFBADsAGyABQQA6ABAgAkEQaiQAIAELMAEBfyMAQRBrIgIkACACIAE2AgwgAkEMaiAAEQEAIQAgAigCDBACIAJBEGokACAACzkAIAAEQCAALAAbQQBIBEAgACgCEBAZCyAAKAIMEAIgACgCCBACIAAoAgQQAiAAKAIAEAIgABAZCwskAQF/QajEACgCACIABEADQCAAKAIAEQcAIAAoAgQiAA0ACwsLJAECfyAAKAIEIgAQKEEBaiIBECwiAgR/IAIgACABECIFQQALCwUAQcQdC8gcAw5/AnwBfSMAQUBqIgUkACAFQfACEBoiAjYC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QQxqEAkhAyACKAIMEAYgAAJ/IAOZRAAAAAAAAOBBYwRAIAOqDAELQYCAgIB4CzYCICACQRBqJAALLgEBfyMAQRBrIgIkACACIAEoAiA2AgggAEHMwAAgAkEIahAHNgIAIAJBEGokAAsL3zoPAEGACAuIHy0rICAgMFgweAAtMFgrMFggMFgtMHgrMHggMHgAdW5zaWduZWQgc2hvcnQAdW5zaWduZWQgaW50AGluaXQAZmxvYXQAdWludDY0X3QAYmx1clJhZGl1cwB2ZWN0b3IAbWlycm9yAGF0dGFjaFNoYWRlcgBkZWxldGVTaGFkZXIAY3JlYXRlU2hhZGVyAGNvbXBpbGVTaGFkZXIAdW5zaWduZWQgY2hhcgBzdGQ6OmV4Y2VwdGlvbgBuYW4AbGlua1Byb2dyYW0AZGVsZXRlUHJvZ3JhbQBjcmVhdGVQcm9ncmFtAGJvb2wAZW1zY3JpcHRlbjo6dmFsAHNldFdhdGVyTWFyawBzdG9wV2F0ZXJNYXJrAHVuc2lnbmVkIGxvbmcAc3RkOjp3c3RyaW5nAGJhc2ljX3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBpbmYAJWYAY2xvc2UAZG91YmxlAHZiTW9kZQBzaGFkZXJTb3VyY2UAdm9pZABOQU4ASU5GAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50NjRfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50NjRfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDMyX3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDMyX3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGNoYXI+AHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxkb3VibGU+AHZlYzIgYyA9IHZfdGV4Q29vcmQ7AHZlYzIgYyA9IHZlYzIoMS4wIC0gdl90ZXhDb29yZC54LCB2X3RleENvb3JkLnkpOwBBbGxJbjEALgAuMCwALjApKm8pKgAobnVsbCkAKSpvLnkpOyAgICB2ZWMyIGNvb3JkMiA9IHZlYzIoZmxvYXQoACAgICBjID0gdmVjMih2X3RleENvb3JkLngsIDEuMCAtIHZfdGV4Q29vcmQueSk7ICAgIHZlYzIgY29vcmQxID0gdmVjMihmbG9hdCgAKSwgKGMueSAtY29vcmQxLnkpIC8gby55IC8gZmxvYXQoACkqby55KTsgICAgaWYgKGMueCA+IGNvb3JkMS54ICYmIGMueCA8IGNvb3JkMi54ICYmIGMueSA+IGNvb3JkMS55ICYmIGMueSA8IGNvb3JkMi55KSB7ICAgICAgdmVjNCB3YXRlckNvbG9yID0gdGV4dHVyZSh3YXRlck1hcmssIHZlYzIoKGMueCAtIGNvb3JkMS54KSAgLyBvLnggLyBmbG9hdCgAKSAqIG8ueCwgZmxvYXQoAGcrPUcoYyx2ZWMyKAApKSk7ICAgICAgb3V0Q29sb3IgPSBtaXgob3V0Q29sb3Isd2F0ZXJDb2xvciwgIHdhdGVyQ29sb3IuYSk7ICAgIH0gICAgACN2ZXJzaW9uIDMwMCBlcwogICAgcHJlY2lzaW9uIGhpZ2hwIGZsb2F0OwogICAgdW5pZm9ybSBzYW1wbGVyMkQgZnJhbWU7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCBtYXNrOwogICAgdW5pZm9ybSBzYW1wbGVyMkQgYmc7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCB3YXRlck1hcms7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCBsYXN0TWFzazsKICAgIGluIHZlYzIgdl90ZXhDb29yZDsKICAgIG91dCB2ZWM0IG91dENvbG9yOwogICAgdmVjNCBHKHZlYzIgYyx2ZWMyIHMpewogICAgICByZXR1cm4gdGV4dHVyZShmcmFtZSx0ZXh0dXJlKG1hc2ssYytzKS5hPjAuMz9jOmMrcyk7CiAgICB9CiAgICB2b2lkIG1haW4oKSB7CiAgICAgIAAKICAgIHZlYzQgZyA9IHZlYzQoMC4wKTsKICAgIAAKICAgICAgb3V0Q29sb3IgPSBnOwogIAAjdmVyc2lvbiAzMDAgZXMKaW4gdmVjMiBhX3Bvc2l0aW9uOwppbiB2ZWMyIGFfdGV4Q29vcmQ7Cm91dCB2ZWMyIHZfdGV4Q29vcmQ7CnZvaWQgbWFpbigpIHsKICBnbF9Qb3NpdGlvbiA9IHZlYzQoYV9wb3NpdGlvbi54LCBhX3Bvc2l0aW9uLnksIDAsIDEpOwogIHZfdGV4Q29vcmQgPSBhX3RleENvb3JkOwp9CgBvdXRDb2xvciA9IHNyY19jb2xvcjsKAG91dENvbG9yID0gbWl4KHRleHR1cmUoYmcsIGMpLHNyY19jb2xvcixhKTsKAG91dENvbG9yID0gbWl4KHZlYzQoMC4wLDEuMCwwLjAsMS4wKSxzcmNfY29sb3IsYSk7CgAKICAgICAgYy55ID0gMS4wIC0gYy55OwogICAgICB2ZWM0IHNyY19jb2xvciA9IHRleHR1cmUoZnJhbWUsIGMpOwogICAgICBmbG9hdCBhID0gdGV4dHVyZShtYXNrLCBjKS5hOwogICAgICBhID0gYTwwLjU/Mi4wKmEqYToxLjAtMi4wKigxLjAtYSkqKDEuMC1hKTsKICAgICAgLy8gZmxvYXQgYTIgPSB0ZXh0dXJlKGxhc3RNYXNrLCBjKS5hOwogICAgICAvLyBhMiA9IGEyPDAuNT8yLjAqYTIqYTI6MS4wLTIuMCooMS4wLWEyKSooMS4wLWEyKTsKICAgICAgLy8gZmxvYXQgZGVsdGEgPSBhIC0gYTI7CiAgICAgIC8vIGlmIChkZWx0YSA8IDAuMjUgJiYgZGVsdGEgPiAtMC4yNSkKICAgICAgLy8gewogICAgICAvLyAgICAgYSA9IGEgKyAwLjUqZGVsdGE7CiAgICAgIC8vIH0KICAgICAgCiAgICAgIHZlYzIgbyA9IDEuMCAvIHZlYzIodGV4dHVyZVNpemUoZnJhbWUsIDApKTsKADZBbGxJbjEAAAAAsCAAALkOAABQNkFsbEluMQAAAAA0IQAAzA4AAAAAAADEDgAAUEs2QWxsSW4xAAAANCEAAOgOAAABAAAAxA4AAGlpAHYAdmkA2A4AACgPAABOMTBlbXNjcmlwdGVuM3ZhbEUAALAgAAAUDwAAaWlpAHZpaWkAAAAAAAAAAOwfAADYDgAAoCAAAKAgAACgIAAAoCAAAHZpaWRkZGQA7B8AANgOAAB2aWkA7B8AACgPAAAoDwAA2A4AACgPAABMIAAA7B8AACgPAADQDwAATlN0M19fMjEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUAALAgAACQDwAAKA8AAOwfAAAoDwAAKA8AAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0loTlNfMTFjaGFyX3RyYWl0c0loRUVOU185YWxsb2NhdG9ySWhFRUVFAACwIAAA6A8AAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0l3TlNfMTFjaGFyX3RyYWl0c0l3RUVOU185YWxsb2NhdG9ySXdFRUVFAACwIAAAMBAAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0lEc05TXzExY2hhcl90cmFpdHNJRHNFRU5TXzlhbGxvY2F0b3JJRHNFRUVFAAAAsCAAAHgQAABOU3QzX18yMTJiYXNpY19zdHJpbmdJRGlOU18xMWNoYXJfdHJhaXRzSURpRUVOU185YWxsb2NhdG9ySURpRUVFRQAAALAgAADEEAAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJY0VFAACwIAAAEBEAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWFFRQAAsCAAADgRAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0loRUUAALAgAABgEQAATjEwZW1zY3JpcHRlbjExbWVtb3J5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",Gr(wt)||(wt=Bt(wt));function Hn(g){if(g==wt&&$t)return new Uint8Array($t);var u=or(g);if(u)return u;if(ar)return ar(g);throw"both async and sync fetching of the wasm failed"}function lr(g){return Promise.resolve().then(()=>Hn(g))}function Yr(g,u,f){return lr(g).then(B=>WebAssembly.instantiate(B,u)).then(B=>B).then(f,B=>{St("failed to asynchronously prepare wasm: "+B),Kt(B)})}function Gn(g,u,f,B){return Yr(u,f,B)}function Yn(){var g={a:wo};function u(B,Q){var O=B.exports;return se=O,xn=se.z,Ft(),xr=se.C,yt(se.A),jn("wasm-instantiate"),O}jr("wasm-instantiate");function f(B){u(B.instance)}if(n.instantiateWasm)try{return n.instantiateWasm(g,u)}catch(B){St("Module.instantiateWasm callback failed with error: "+B),he(B)}return Gn($t,wt,g,f).catch(he),{}}var gt=g=>{for(;g.length>0;)g.shift()(n)};function ae(g){this.excPtr=g,this.ptr=g-24,this.set_type=function(u){le[this.ptr+4>>2]=u},this.get_type=function(){return le[this.ptr+4>>2]},this.set_destructor=function(u){le[this.ptr+8>>2]=u},this.get_destructor=function(){return le[this.ptr+8>>2]},this.set_caught=function(u){u=u?1:0,ct[this.ptr+12>>0]=u},this.get_caught=function(){return ct[this.ptr+12>>0]!=0},this.set_rethrown=function(u){u=u?1:0,ct[this.ptr+13>>0]=u},this.get_rethrown=function(){return ct[this.ptr+13>>0]!=0},this.init=function(u,f){this.set_adjusted_ptr(0),this.set_type(u),this.set_destructor(f)},this.set_adjusted_ptr=function(u){le[this.ptr+16>>2]=u},this.get_adjusted_ptr=function(){return le[this.ptr+16>>2]},this.get_exception_ptr=function(){var u=rr(this.get_type());if(u)return le[this.excPtr>>2];var f=this.get_adjusted_ptr();return f!==0?f:this.excPtr}}var ce=0,qe=0;function kt(g,u,f){var B=new ae(g);throw B.init(u,f),ce=g,qe++,ce}function m(g,u,f,B,Q){}function ie(g){switch(g){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(`Unknown type size: ${g}`)}}function _e(){for(var g=new Array(256),u=0;u<256;++u)g[u]=String.fromCharCode(u);Jt=g}var Jt=void 0;function Qe(g){for(var u="",f=g;be[f];)u+=Jt[be[f++]];return u}var et={},Ve={},F={},lt=void 0;function X(g){throw new lt(g)}var ur=void 0;function Nt(g){throw new ur(g)}function ut(g,u,f){g.forEach(function(b){F[b]=u});function B(b){var v=f(b);v.length!==g.length&&Nt("Mismatched type converter count");for(var k=0;k<g.length;++k)Ue(g[k],v[k])}var Q=new Array(u.length),O=[],R=0;u.forEach((b,v)=>{Ve.hasOwnProperty(b)?Q[v]=Ve[b]:(O.push(b),et.hasOwnProperty(b)||(et[b]=[]),et[b].push(()=>{Q[v]=Ve[b],++R,R===O.length&&B(Q)}))}),O.length===0&&B(Q)}function Xr(g,u,f={}){var B=u.name;if(g||X(`type "${B}" must have a positive integer typeid pointer`),Ve.hasOwnProperty(g)){if(f.ignoreDuplicateRegistrations)return;X(`Cannot register type '${B}' twice`)}if(Ve[g]=u,delete F[g],et.hasOwnProperty(g)){var Q=et[g];delete et[g],Q.forEach(O=>O())}}function Ue(g,u,f={}){if(!("argPackAdvance"in u))throw new TypeError("registerType registeredInstance requires argPackAdvance");return Xr(g,u,f)}function Wr(g,u,f,B,Q){var O=ie(f);u=Qe(u),Ue(g,{name:u,fromWireType:function(R){return!!R},toWireType:function(R,b){return b?B:Q},argPackAdvance:8,readValueFromPointer:function(R){var b;if(f===1)b=ct;else if(f===2)b=Ne;else if(f===4)b=mt;else throw new TypeError("Unknown boolean type size: "+u);return this.fromWireType(b[R>>O])},destructorFunction:null})}function Xn(g){if(!(this instanceof ze)||!(g instanceof ze))return!1;for(var u=this.$$.ptrType.registeredClass,f=this.$$.ptr,B=g.$$.ptrType.registeredClass,Q=g.$$.ptr;u.baseClass;)f=u.upcast(f),u=u.baseClass;for(;B.baseClass;)Q=B.upcast(Q),B=B.baseClass;return u===B&&f===Q}function dr(g){return{count:g.count,deleteScheduled:g.deleteScheduled,preservePointerOnDelete:g.preservePointerOnDelete,ptr:g.ptr,ptrType:g.ptrType,smartPtr:g.smartPtr,smartPtrType:g.smartPtrType}}function fr(g){function u(f){return f.$$.ptrType.registeredClass.name}X(u(g)+" instance already deleted")}var Er=!1;function $r(g){}function Wn(g){g.smartPtr?g.smartPtrType.rawDestructor(g.smartPtr):g.ptrType.registeredClass.rawDestructor(g.ptr)}function Vr(g){g.count.value-=1;var u=g.count.value===0;u&&Wn(g)}function Kr(g,u,f){if(u===f)return g;if(f.baseClass===void 0)return null;var B=Kr(g,u,f.baseClass);return B===null?null:f.downcast(B)}var Jr={};function dt(){return Object.keys(l).length}function ft(){var g=[];for(var u in l)l.hasOwnProperty(u)&&g.push(l[u]);return g}var Ke=[];function tt(){for(;Ke.length;){var g=Ke.pop();g.$$.deleteScheduled=!1,g.delete()}}var Dt=void 0;function zt(g){Dt=g,Ke.length&&Dt&&Dt(tt)}function Ut(){n.getInheritedInstanceCount=dt,n.getLiveInheritedInstances=ft,n.flushPendingDeletes=tt,n.setDelayFunction=zt}var l={};function $n(g,u){for(u===void 0&&X("ptr should not be undefined");g.baseClass;)u=g.upcast(u),g=g.baseClass;return u}function zr(g,u){return u=$n(g,u),l[u]}function bt(g,u){(!u.ptrType||!u.ptr)&&Nt("makeClassHandle requires ptr and ptrType");var f=!!u.smartPtrType,B=!!u.smartPtr;return f!==B&&Nt("Both smartPtrType and smartPtr must be specified"),u.count={value:1},ue(Object.create(g,{$$:{value:u}}))}function $(g){var u=this.getPointee(g);if(!u)return this.destructor(g),null;var f=zr(this.registeredClass,u);if(f!==void 0){if(f.$$.count.value===0)return f.$$.ptr=u,f.$$.smartPtr=g,f.clone();var B=f.clone();return this.destructor(g),B}function Q(){return this.isSmartPointer?bt(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:u,smartPtrType:this,smartPtr:g}):bt(this.registeredClass.instancePrototype,{ptrType:this,ptr:g})}var O=this.registeredClass.getActualType(u),R=Jr[O];if(!R)return Q.call(this);var b;this.isConst?b=R.constPointerType:b=R.pointerType;var v=Kr(u,this.registeredClass,b.registeredClass);return v===null?Q.call(this):this.isSmartPointer?bt(b.registeredClass.instancePrototype,{ptrType:b,ptr:v,smartPtrType:this,smartPtr:g}):bt(b.registeredClass.instancePrototype,{ptrType:b,ptr:v})}var ue=function(g){return typeof FinalizationRegistry=="undefined"?(ue=u=>u,g):(Er=new FinalizationRegistry(u=>{Vr(u.$$)}),ue=u=>{var f=u.$$,B=!!f.smartPtr;if(B){var Q={$$:f};Er.register(u,Q,u)}return u},$r=u=>Er.unregister(u),ue(g))};function Zr(){if(this.$$.ptr||fr(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var g=ue(Object.create(Object.getPrototypeOf(this),{$$:{value:dr(this.$$)}}));return g.$$.count.value+=1,g.$$.deleteScheduled=!1,g}function Vn(){this.$$.ptr||fr(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&X("Object already scheduled for deletion"),$r(this),Vr(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Kn(){return!this.$$.ptr}function Ce(){return this.$$.ptr||fr(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&X("Object already scheduled for deletion"),Ke.push(this),Ke.length===1&&Dt&&Dt(tt),this.$$.deleteScheduled=!0,this}function Je(){ze.prototype.isAliasOf=Xn,ze.prototype.clone=Zr,ze.prototype.delete=Vn,ze.prototype.isDeleted=Kn,ze.prototype.deleteLater=Ce}function ze(){}var Jn=48,Ir=57;function rt(g){if(g===void 0)return"_unknown";g=g.replace(/[^a-zA-Z0-9_]/g,"$");var u=g.charCodeAt(0);return u>=Jn&&u<=Ir?`_${g}`:g}function zn(g,u){return g=rt(g),{[g]:function(){return u.apply(this,arguments)}}[g]}function pr(g,u,f){if(g[u].overloadTable===void 0){var B=g[u];g[u]=function(){return g[u].overloadTable.hasOwnProperty(arguments.length)||X(`Function '${f}' called with an invalid number of arguments (${arguments.length}) - expects one of (${g[u].overloadTable})!`),g[u].overloadTable[arguments.length].apply(this,arguments)},g[u].overloadTable=[],g[u].overloadTable[B.argCount]=B}}function Zn(g,u,f){n.hasOwnProperty(g)?((f===void 0||n[g].overloadTable!==void 0&&n[g].overloadTable[f]!==void 0)&&X(`Cannot register public name '${g}' twice`),pr(n,g,g),n.hasOwnProperty(f)&&X(`Cannot register multiple overloads of a function with the same number of arguments (${f})!`),n[g].overloadTable[f]=u):(n[g]=u,f!==void 0&&(n[g].numArguments=f))}function qn(g,u,f,B,Q,O,R,b){this.name=g,this.constructor=u,this.instancePrototype=f,this.rawDestructor=B,this.baseClass=Q,this.getActualType=O,this.upcast=R,this.downcast=b,this.pureVirtualFunctions=[]}function Tt(g,u,f){for(;u!==f;)u.upcast||X(`Expected null or instance of ${f.name}, got an instance of ${u.name}`),g=u.upcast(g),u=u.baseClass;return g}function qr(g,u){if(u===null)return this.isReference&&X(`null is not a valid ${this.name}`),0;u.$$||X(`Cannot pass "${Qr(u)}" as a ${this.name}`),u.$$.ptr||X(`Cannot pass deleted object as a pointer of type ${this.name}`);var f=u.$$.ptrType.registeredClass,B=Tt(u.$$.ptr,f,this.registeredClass);return B}function _(g,u){var f;if(u===null)return this.isReference&&X(`null is not a valid ${this.name}`),this.isSmartPointer?(f=this.rawConstructor(),g!==null&&g.push(this.rawDestructor,f),f):0;u.$$||X(`Cannot pass "${Qr(u)}" as a ${this.name}`),u.$$.ptr||X(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&u.$$.ptrType.isConst&&X(`Cannot convert argument of type ${u.$$.smartPtrType?u.$$.smartPtrType.name:u.$$.ptrType.name} to parameter type ${this.name}`);var B=u.$$.ptrType.registeredClass;if(f=Tt(u.$$.ptr,B,this.registeredClass),this.isSmartPointer)switch(u.$$.smartPtr===void 0&&X("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:u.$$.smartPtrType===this?f=u.$$.smartPtr:X(`Cannot convert argument of type ${u.$$.smartPtrType?u.$$.smartPtrType.name:u.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:f=u.$$.smartPtr;break;case 2:if(u.$$.smartPtrType===this)f=u.$$.smartPtr;else{var Q=u.clone();f=this.rawShare(f,x.toHandle(function(){Q.delete()})),g!==null&&g.push(this.rawDestructor,f)}break;default:X("Unsupporting sharing policy")}return f}function Cr(g,u){if(u===null)return this.isReference&&X(`null is not a valid ${this.name}`),0;u.$$||X(`Cannot pass "${Qr(u)}" as a ${this.name}`),u.$$.ptr||X(`Cannot pass deleted object as a pointer of type ${this.name}`),u.$$.ptrType.isConst&&X(`Cannot convert argument of type ${u.$$.ptrType.name} to parameter type ${this.name}`);var f=u.$$.ptrType.registeredClass,B=Tt(u.$$.ptr,f,this.registeredClass);return B}function Zt(g){return this.fromWireType(mt[g>>2])}function en(g){return this.rawGetPointee&&(g=this.rawGetPointee(g)),g}function eo(g){this.rawDestructor&&this.rawDestructor(g)}function to(g){g!==null&&g.delete()}function ro(){nt.prototype.getPointee=en,nt.prototype.destructor=eo,nt.prototype.argPackAdvance=8,nt.prototype.readValueFromPointer=Zt,nt.prototype.deleteObject=to,nt.prototype.fromWireType=$}function nt(g,u,f,B,Q,O,R,b,v,k,G){this.name=g,this.registeredClass=u,this.isReference=f,this.isConst=B,this.isSmartPointer=Q,this.pointeeType=O,this.sharingPolicy=R,this.rawGetPointee=b,this.rawConstructor=v,this.rawShare=k,this.rawDestructor=G,!Q&&u.baseClass===void 0?B?(this.toWireType=qr,this.destructorFunction=null):(this.toWireType=Cr,this.destructorFunction=null):this.toWireType=_}function no(g,u,f){n.hasOwnProperty(g)||Nt("Replacing nonexistant public symbol"),n[g].overloadTable!==void 0&&f!==void 0?n[g].overloadTable[f]=u:(n[g]=u,n[g].argCount=f)}var xt=(g,u,f)=>{var B=n["dynCall_"+g];return f&&f.length?B.apply(null,[u].concat(f)):B.call(null,u)},Et=[],Ot=g=>{var u=Et[g];return u||(g>=Et.length&&(Et.length=g+1),Et[g]=u=xr.get(g)),u},oo=(g,u,f)=>{if(g.includes("j"))return xt(g,u,f);var B=Ot(u).apply(null,f);return B},hr=(g,u)=>{var f=[];return function(){return f.length=0,Object.assign(f,arguments),oo(g,u,f)}};function ot(g,u){g=Qe(g);function f(){return g.includes("j")?hr(g,u):Ot(u)}var B=f();return typeof B!="function"&&X(`unknown function pointer with signature ${g}: ${u}`),B}function It(g,u){var f=zn(u,function(B){this.name=u,this.message=B;var Q=new Error(B).stack;Q!==void 0&&(this.stack=this.toString()+`
31
- `+Q.replace(/^Error(:[^\n]*)?\n/,""))});return f.prototype=Object.create(g.prototype),f.prototype.constructor=f,f.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},f}var Br=void 0;function tn(g){var u=Sr(g),f=Qe(u);return Se(u),f}function Lt(g,u){var f=[],B={};function Q(O){if(!B[O]&&!Ve[O]){if(F[O]){F[O].forEach(Q);return}f.push(O),B[O]=!0}}throw u.forEach(Q),new Br(`${g}: `+f.map(tn).join([", "]))}function io(g,u,f,B,Q,O,R,b,v,k,G,V,ee){G=Qe(G),O=ot(Q,O),b&&(b=ot(R,b)),k&&(k=ot(v,k)),ee=ot(V,ee);var J=rt(G);Zn(J,function(){Lt(`Cannot construct ${G} due to unbound types`,[B])}),ut([g,u,f],B?[B]:[],function(ne){ne=ne[0];var we,ge;B?(we=ne.registeredClass,ge=we.instancePrototype):ge=ze.prototype;var xe=zn(J,function(){if(Object.getPrototypeOf(this)!==Ct)throw new lt("Use 'new' to construct "+G);if(pe.constructor_body===void 0)throw new lt(G+" has no accessible constructor");var En=pe.constructor_body[arguments.length];if(En===void 0)throw new lt(`Tried to invoke ctor of ${G} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(pe.constructor_body).toString()}) parameters instead!`);return En.apply(this,arguments)}),Ct=Object.create(ge,{constructor:{value:xe}});xe.prototype=Ct;var pe=new qn(G,xe,Ct,ee,we,O,b,k);pe.baseClass&&(pe.baseClass.__derivedClasses===void 0&&(pe.baseClass.__derivedClasses=[]),pe.baseClass.__derivedClasses.push(pe));var At=new nt(G,pe,!0,!1,!1),ir=new nt(G+"*",pe,!1,!1,!1),fn=new nt(G+" const*",pe,!1,!0,!1);return Jr[g]={pointerType:ir,constPointerType:fn},no(J,xe),[At,ir,fn]})}function rn(g,u){for(var f=[],B=0;B<g;B++)f.push(le[u+B*4>>2]);return f}function mr(g){for(;g.length;){var u=g.pop(),f=g.pop();f(u)}}function nn(g,u,f,B,Q,O){var R=u.length;R<2&&X("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var b=u[1]!==null&&f!==null,v=!1,k=1;k<u.length;++k)if(u[k]!==null&&u[k].destructorFunction===void 0){v=!0;break}var G=u[0].name!=="void",V=R-2,ee=new Array(V),J=[],ne=[];return function(){arguments.length!==V&&X(`function ${g} called with ${arguments.length} arguments, expected ${V} args!`),ne.length=0;var we;J.length=b?2:1,J[0]=Q,b&&(we=u[1].toWireType(ne,this),J[1]=we);for(var ge=0;ge<V;++ge)ee[ge]=u[ge+2].toWireType(ne,arguments[ge]),J.push(ee[ge]);var xe=B.apply(null,J);function Ct(pe){if(v)mr(ne);else for(var At=b?1:2;At<u.length;At++){var ir=At===1?we:ee[At-2];u[At].destructorFunction!==null&&u[At].destructorFunction(ir)}if(G)return u[0].fromWireType(pe)}return Ct(xe)}}function Ao(g,u,f,B,Q,O){var R=rn(u,f);Q=ot(B,Q),ut([],[g],function(b){b=b[0];var v=`constructor ${b.name}`;if(b.registeredClass.constructor_body===void 0&&(b.registeredClass.constructor_body=[]),b.registeredClass.constructor_body[u-1]!==void 0)throw new lt(`Cannot register multiple constructors with identical number of parameters (${u-1}) for class '${b.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return b.registeredClass.constructor_body[u-1]=()=>{Lt(`Cannot construct ${b.name} due to unbound types`,R)},ut([],R,function(k){return k.splice(1,0,null),b.registeredClass.constructor_body[u-1]=nn(v,k,null,Q,O),[]}),[]})}function so(g,u,f,B,Q,O,R,b,v){var k=rn(f,B);u=Qe(u),O=ot(Q,O),ut([],[g],function(G){G=G[0];var V=`${G.name}.${u}`;u.startsWith("@@")&&(u=Symbol[u.substring(2)]),b&&G.registeredClass.pureVirtualFunctions.push(u);function ee(){Lt(`Cannot call ${V} due to unbound types`,k)}var J=G.registeredClass.instancePrototype,ne=J[u];return ne===void 0||ne.overloadTable===void 0&&ne.className!==G.name&&ne.argCount===f-2?(ee.argCount=f-2,ee.className=G.name,J[u]=ee):(pr(J,u,V),J[u].overloadTable[f-2]=ee),ut([],k,function(we){var ge=nn(V,we,G,O,R,v);return J[u].overloadTable===void 0?(ge.argCount=f-2,J[u]=ge):J[u].overloadTable[f-2]=ge,[]}),[]})}function _r(g,u,f){return g instanceof Object||X(`${f} with invalid "this": ${g}`),g instanceof u.registeredClass.constructor||X(`${f} incompatible with "this" of type ${g.constructor.name}`),g.$$.ptr||X(`cannot call emscripten binding method ${f} on deleted object`),Tt(g.$$.ptr,g.$$.ptrType.registeredClass,u.registeredClass)}function te(g,u,f,B,Q,O,R,b,v,k){u=Qe(u),Q=ot(B,Q),ut([],[g],function(G){G=G[0];var V=`${G.name}.${u}`,ee={get(){Lt(`Cannot access ${V} due to unbound types`,[f,R])},enumerable:!0,configurable:!0};return v?ee.set=()=>{Lt(`Cannot access ${V} due to unbound types`,[f,R])}:ee.set=J=>{X(V+" is a read-only property")},Object.defineProperty(G.registeredClass.instancePrototype,u,ee),ut([],v?[f,R]:[f],function(J){var ne=J[0],we={get(){var xe=_r(this,G,V+" getter");return ne.fromWireType(Q(O,xe))},enumerable:!0};if(v){v=ot(b,v);var ge=J[1];we.set=function(xe){var Ct=_r(this,G,V+" setter"),pe=[];v(k,Ct,ge.toWireType(pe,xe)),mr(pe)}}return Object.defineProperty(G.registeredClass.instancePrototype,u,we),[]}),[]})}function on(){Object.assign(Xe.prototype,{get(g){return this.allocated[g]},has(g){return this.allocated[g]!==void 0},allocate(g){var u=this.freelist.pop()||this.allocated.length;return this.allocated[u]=g,u},free(g){this.allocated[g]=void 0,this.freelist.push(g)}})}function Xe(){this.allocated=[void 0],this.freelist=[]}var de=new Xe;function yr(g){g>=de.reserved&&--de.get(g).refcount===0&&de.free(g)}function ao(){for(var g=0,u=de.reserved;u<de.allocated.length;++u)de.allocated[u]!==void 0&&++g;return g}function An(){de.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),de.reserved=de.allocated.length,n.count_emval_handles=ao}var x={toValue:g=>(g||X("Cannot use deleted val. handle = "+g),de.get(g).value),toHandle:g=>{switch(g){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return de.allocate({refcount:1,value:g})}}};function co(g,u){u=Qe(u),Ue(g,{name:u,fromWireType:function(f){var B=x.toValue(f);return yr(f),B},toWireType:function(f,B){return x.toHandle(B)},argPackAdvance:8,readValueFromPointer:Zt,destructorFunction:null})}function Qr(g){if(g===null)return"null";var u=typeof g;return u==="object"||u==="array"||u==="function"?g.toString():""+g}function sn(g,u){switch(u){case 2:return function(f){return this.fromWireType(He[f>>2])};case 3:return function(f){return this.fromWireType(Ur[f>>3])};default:throw new TypeError("Unknown float type: "+g)}}function a(g,u,f){var B=ie(f);u=Qe(u),Ue(g,{name:u,fromWireType:function(Q){return Q},toWireType:function(Q,O){return O},argPackAdvance:8,readValueFromPointer:sn(u,B),destructorFunction:null})}function Ae(g,u,f){switch(u){case 0:return f?function(Q){return ct[Q]}:function(Q){return be[Q]};case 1:return f?function(Q){return Ne[Q>>1]}:function(Q){return Vt[Q>>1]};case 2:return f?function(Q){return mt[Q>>2]}:function(Q){return le[Q>>2]};default:throw new TypeError("Unknown integer type: "+g)}}function go(g,u,f,B,Q){u=Qe(u),Q===-1&&(Q=4294967295);var O=ie(f),R=V=>V;if(B===0){var b=32-8*f;R=V=>V<<b>>>b}var v=u.includes("unsigned"),k=(V,ee)=>{},G;v?G=function(V,ee){return k(ee,this.name),ee>>>0}:G=function(V,ee){return k(ee,this.name),ee},Ue(g,{name:u,fromWireType:R,toWireType:G,argPackAdvance:8,readValueFromPointer:Ae(u,O,B!==0),destructorFunction:null})}function lo(g,u,f){var B=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],Q=B[u];function O(R){R=R>>2;var b=le,v=b[R],k=b[R+1];return new Q(b.buffer,k,v)}f=Qe(f),Ue(g,{name:f,fromWireType:O,argPackAdvance:8,readValueFromPointer:O},{ignoreDuplicateRegistrations:!0})}var uo=(g,u,f,B)=>{if(!(B>0))return 0;for(var Q=f,O=f+B-1,R=0;R<g.length;++R){var b=g.charCodeAt(R);if(b>=55296&&b<=57343){var v=g.charCodeAt(++R);b=65536+((b&1023)<<10)|v&1023}if(b<=127){if(f>=O)break;u[f++]=b}else if(b<=2047){if(f+1>=O)break;u[f++]=192|b>>6,u[f++]=128|b&63}else if(b<=65535){if(f+2>=O)break;u[f++]=224|b>>12,u[f++]=128|b>>6&63,u[f++]=128|b&63}else{if(f+3>=O)break;u[f++]=240|b>>18,u[f++]=128|b>>12&63,u[f++]=128|b>>6&63,u[f++]=128|b&63}}return u[f]=0,f-Q},fo=(g,u,f)=>uo(g,be,u,f),Eo=g=>{for(var u=0,f=0;f<g.length;++f){var B=g.charCodeAt(f);B<=127?u++:B<=2047?u+=2:B>=55296&&B<=57343?(u+=4,++f):u+=3}return u},an=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,Io=(g,u,f)=>{for(var B=u+f,Q=u;g[Q]&&!(Q>=B);)++Q;if(Q-u>16&&g.buffer&&an)return an.decode(g.subarray(u,Q));for(var O="";u<Q;){var R=g[u++];if(!(R&128)){O+=String.fromCharCode(R);continue}var b=g[u++]&63;if((R&224)==192){O+=String.fromCharCode((R&31)<<6|b);continue}var v=g[u++]&63;if((R&240)==224?R=(R&15)<<12|b<<6|v:R=(R&7)<<18|b<<12|v<<6|g[u++]&63,R<65536)O+=String.fromCharCode(R);else{var k=R-65536;O+=String.fromCharCode(55296|k>>10,56320|k&1023)}}return O},po=(g,u)=>g?Io(be,g,u):"";function qt(g,u){u=Qe(u);var f=u==="std::string";Ue(g,{name:u,fromWireType:function(B){var Q=le[B>>2],O=B+4,R;if(f)for(var b=O,v=0;v<=Q;++v){var k=O+v;if(v==Q||be[k]==0){var G=k-b,V=po(b,G);R===void 0?R=V:(R+=String.fromCharCode(0),R+=V),b=k+1}}else{for(var ee=new Array(Q),v=0;v<Q;++v)ee[v]=String.fromCharCode(be[O+v]);R=ee.join("")}return Se(B),R},toWireType:function(B,Q){Q instanceof ArrayBuffer&&(Q=new Uint8Array(Q));var O,R=typeof Q=="string";R||Q instanceof Uint8Array||Q instanceof Uint8ClampedArray||Q instanceof Int8Array||X("Cannot pass non-string to std::string"),f&&R?O=Eo(Q):O=Q.length;var b=Mr(4+O+1),v=b+4;if(le[b>>2]=O,f&&R)fo(Q,v,O+1);else if(R)for(var k=0;k<O;++k){var G=Q.charCodeAt(k);G>255&&(Se(v),X("String has UTF-16 code units that do not fit in 8 bits")),be[v+k]=G}else for(var k=0;k<O;++k)be[v+k]=Q[k];return B!==null&&B.push(Se,b),b},argPackAdvance:8,readValueFromPointer:Zt,destructorFunction:function(B){Se(B)}})}var jt=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0,wr=(g,u)=>{for(var f=g,B=f>>1,Q=B+u/2;!(B>=Q)&&Vt[B];)++B;if(f=B<<1,f-g>32&&jt)return jt.decode(be.subarray(g,f));for(var O="",R=0;!(R>=u/2);++R){var b=Ne[g+R*2>>1];if(b==0)break;O+=String.fromCharCode(b)}return O},Me=(g,u,f)=>{if(f===void 0&&(f=2147483647),f<2)return 0;f-=2;for(var B=u,Q=f<g.length*2?f/2:g.length,O=0;O<Q;++O){var R=g.charCodeAt(O);Ne[u>>1]=R,u+=2}return Ne[u>>1]=0,u-B},Co=g=>g.length*2,ho=(g,u)=>{for(var f=0,B="";!(f>=u/4);){var Q=mt[g+f*4>>2];if(Q==0)break;if(++f,Q>=65536){var O=Q-65536;B+=String.fromCharCode(55296|O>>10,56320|O&1023)}else B+=String.fromCharCode(Q)}return B},Bo=(g,u,f)=>{if(f===void 0&&(f=2147483647),f<4)return 0;for(var B=u,Q=B+f-4,O=0;O<g.length;++O){var R=g.charCodeAt(O);if(R>=55296&&R<=57343){var b=g.charCodeAt(++O);R=65536+((R&1023)<<10)|b&1023}if(mt[u>>2]=R,u+=4,u+4>Q)break}return mt[u>>2]=0,u-B},er=g=>{for(var u=0,f=0;f<g.length;++f){var B=g.charCodeAt(f);B>=55296&&B<=57343&&++f,u+=4}return u},tr=function(g,u,f){f=Qe(f);var B,Q,O,R,b;u===2?(B=wr,Q=Me,R=Co,O=()=>Vt,b=1):u===4&&(B=ho,Q=Bo,R=er,O=()=>le,b=2),Ue(g,{name:f,fromWireType:function(v){for(var k=le[v>>2],G=O(),V,ee=v+4,J=0;J<=k;++J){var ne=v+4+J*u;if(J==k||G[ne>>b]==0){var we=ne-ee,ge=B(ee,we);V===void 0?V=ge:(V+=String.fromCharCode(0),V+=ge),ee=ne+u}}return Se(v),V},toWireType:function(v,k){typeof k!="string"&&X(`Cannot pass non-string to C++ string type ${f}`);var G=R(k),V=Mr(4+G+u);return le[V>>2]=G>>b,Q(k,V+4,G+u),v!==null&&v.push(Se,V),V},argPackAdvance:8,readValueFromPointer:Zt,destructorFunction:function(v){Se(v)}})};function cn(g,u){u=Qe(u),Ue(g,{isVoid:!0,name:u,argPackAdvance:0,fromWireType:function(){},toWireType:function(f,B){}})}function Dr(g,u){var f=Ve[g];return f===void 0&&X(u+" has unknown type "+tn(g)),f}function gn(g,u,f){g=x.toValue(g),u=Dr(u,"emval::as");var B=[],Q=x.toHandle(B);return le[f>>2]=Q,u.toWireType(B,g)}function Ie(g){var u=[];return le[g>>2]=x.toHandle(u),u}var mo={};function ln(g){var u=mo[g];return u===void 0?Qe(g):u}var it=[];function br(g,u,f,B,Q){return g=it[g],u=x.toValue(u),f=ln(f),g(u,f,Ie(B),Q)}function Ht(g,u,f,B){g=it[g],u=x.toValue(u),f=ln(f),g(u,f,null,B)}function _o(g){var u=it.length;return it.push(g),u}function yo(g,u){for(var f=new Array(g),B=0;B<g;++B)f[B]=Dr(le[u+B*4>>2],"parameter "+B);return f}var We=[];function Rt(g,u){var f=yo(g,u),B=f[0],Q=B.name+"_$"+f.slice(1).map(function(v){return v.name}).join("_")+"$",O=We[Q];if(O!==void 0)return O;var R=new Array(g-1),b=(v,k,G,V)=>{for(var ee=0,J=0;J<g-1;++J)R[J]=f[J+1].readValueFromPointer(V+ee),ee+=f[J+1].argPackAdvance;for(var ne=v[k].apply(v,R),J=0;J<g-1;++J)f[J+1].deleteObject&&f[J+1].deleteObject(R[J]);if(!B.isVoid)return B.toWireType(G,ne)};return O=_o(b),We[Q]=O,O}function W(g){g>4&&(de.get(g).refcount+=1)}function Tr(g){var u=x.toValue(g);mr(u),yr(g)}function Qo(g,u){g=Dr(g,"_emval_take_value");var f=g.readValueFromPointer(u);return x.toHandle(f)}var un=()=>{Kt("")},pt=(g,u,f)=>be.copyWithin(g,u,u+f),dn=g=>{Kt("OOM")},Or=g=>{var u=be.length;g>>>=0,dn(g)};_e(),lt=n.BindingError=class extends Error{constructor(u){super(u),this.name="BindingError"}},ur=n.InternalError=class extends Error{constructor(u){super(u),this.name="InternalError"}},Je(),Ut(),ro(),Br=n.UnboundTypeError=It(Error,"UnboundTypeError"),on(),An();var wo={w:kt,q:m,u:Wr,y:io,x:Ao,i:so,k:te,t:co,o:a,e:go,a:lo,n:qt,l:tr,v:cn,j:gn,p:br,f:Ht,c:yr,d:Rt,b:W,g:Tr,h:Qo,m:un,s:pt,r:Or},Rr=Yn(),Pr=()=>(Pr=se.A)(),Mr=g=>(Mr=se.B)(g),Sr=g=>(Sr=se.D)(g),Pt=n.__embind_initialize_bindings=()=>(Pt=n.__embind_initialize_bindings=se.E)(),Do=()=>(Do=se.__errno_location)(),Se=g=>(Se=se.F)(g),rr=g=>(rr=se.G)(g),nr=n._vertexShaderSource=8688;function Mt(g){try{for(var u=atob(g),f=new Uint8Array(u.length),B=0;B<u.length;++B)f[B]=u.charCodeAt(B);return f}catch(Q){throw new Error("Converting base64 string to bytes failed.")}}function or(g){if(Gr(g))return Mt(g.slice(Hr.length))}var Gt;Ye=function g(){Gt||Yt(),Gt||(Ye=g)};function Yt(){if(Ge>0||(Ln(),Ge>0))return;function g(){Gt||(Gt=!0,n.calledRun=!0,!K&&(Uo(),oe(n),n.onRuntimeInitialized&&n.onRuntimeInitialized(),xo()))}n.setStatus?(n.setStatus("Running..."),setTimeout(function(){setTimeout(function(){n.setStatus("")},1),g()},1)):g()}if(n.preInit)for(typeof n.preInit=="function"&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.pop()();return Yt(),M.ready}})(),fi=hc;var vn=class{constructor(M){ye(this,"canvas");ye(this,"locateFile");ye(this,"_glName");ye(this,"_solutionWasm");ye(this,"ctx");ye(this,"pl",{onResults:M=>this.onResults(M.get(0).glName)});this.locateFile=n=>`${M}/${n}`}bindTexture(){var M;(M=this.ctx)==null||M.activeTexture(this.ctx.TEXTURE0),this.bindTexture2d(this._glName)}async initialize(){this._solutionWasm=new this.SolutionWasm;let M=new this.StringList;M.push_back("segmentation_mask");let n=this.PacketListener.implement(this.pl);return this._solutionWasm.attachMultiListener(M,n),M.delete(),this._solutionWasm.loadGraph(await this.fetchFile("selfie_segmentation.binarypb")),this}setCanvas(M){this.canvas=M,this.createContext(M,!0,!0,{}),this._glName=this.createTexture()}async fetchFile(M){try{let n=await fetch(this.locateFile(M));if(!n.ok)throw new Error(`fetch status: ${n.status}`);return n.arrayBuffer()}catch(n){throw new Error(`Failed to fetch file: ${M} ${n}`)}}async changeModel(M="selfie_segmentation_landscape.tflite"){M=typeof M=="string"?await this.fetchFile(M):M,this._solutionWasm.overrideFile("third_party/mediapipe/modules/selfie_segmentation/selfie_segmentation_landscape.tflite",M);let n=new this.GraphOptionChangeRequestList;n.push_back({calculatorIndex:1,calculatorName:"",calculatorType:"GlScalerCalculator",fieldName:"flip_horizontal",valueBoolean:!1,valueNumber:0,valueString:""}),n.push_back({calculatorIndex:0,calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorModelSelection",fieldName:"int_value",valueBoolean:!1,valueNumber:1,valueString:""}),n.push_back({calculatorIndex:0,calculatorType:"InferenceCalculator",calculatorName:"",fieldName:"use_cpu_inference",valueBoolean:!1,valueNumber:0,valueString:""}),this._solutionWasm.changeOptions(n)}send(M,n){let oe=new this.PacketDataList;oe.pushTexture2d({stream:"input_frames_gpu",timestamp:performance.now()*1e3,glName:this._glName,width:M,height:n}),this._solutionWasm.send(oe),oe.delete()}close(){var M,n,oe;(M=this.canvas)==null||delete M.getContext,delete this.readyPromiseResolve,delete this.readyPromiseReject,this.pl.onResults=null,delete this.onResults,(n=this.deleteTexture)==null||n.call(this,this._glName),(oe=this._solutionWasm)==null||oe.delete();for(let he of Object.keys(this))delete this[he]}};var kn=0,Nn=class Nn{constructor(M){this.core=M;ye(this,"seq");ye(this,"_core");ye(this,"log");ye(this,"preLoadPromise");ye(this,"startResolve");ye(this,"startReject");ye(this,"mediaPipeSolutions");ye(this,"assetsPath");kn=kn+1,this.seq=kn,this._core=M,this.log=M.log.createChild({id:`${this.getAlias()}${kn}`}),this.log.info("created"),M.assetsPath&&(this.preLoadPromise=this.preload(M.assetsPath))}async preload(M="https://web.sdk.qcloud.com/trtc/webrtc/v5/assets/"){try{this._core.room.videoManager.Wasm=await fi(),this.assetsPath=`${M}/selfie_segmentation/`;let n=new vn(this.assetsPath);this.mediaPipeSolutions=await di(n),await this.mediaPipeSolutions.initialize(),await this._core.room.videoManager.initVirtualBackground(this.mediaPipeSolutions)}catch(n){let{RtcError:oe,ErrorCode:he}=this._core.errorModule;throw new oe({code:he.INVALID_OPERATION,message:`VirtualBackground preload error, please check your assetsPath. detail: ${n}`})}}getName(){return Nn.Name}getAlias(){return"vb"}getValidateRule(M){switch(M){case"start":return gi(this._core);case"update":return li(this._core);case"stop":return ui(this._core)}}getGroup(){return"vb"}async start(M){let{type:n="blur",src:oe}=M,{auth:he,sign:Be,timestamp:fe}=await ci({sdkAppId:M.sdkAppId,userId:M.userId,userSig:M.userSig,core:this._core});if(!he){let{RtcError:De,ErrorCode:ve,ErrorCodeDictionary:ke}=this._core.errorModule;throw new De({code:ve.SERVER_ERROR,extraCode:ke.NEED_TO_BUY,messageParams:{value:"Virtual Background",url:"https://cloud.tencent.com/document/product/647/85386"}})}return this.preLoadPromise||(this.preLoadPromise=this.preload(this._core.assetsPath)),await this.preLoadPromise,this.core.room.videoManager.setVirtualBackground({type:n,imageUrl:oe})}async update(M){let{type:n,src:oe}=M;return this.core.room.videoManager.setVirtualBackground({type:n,imageUrl:oe})}async stop(){return this.core.room.videoManager.setVirtualBackground()}};ye(Nn,"Name","VirtualBackground");var ko=Nn;var fg=ko;export{ko as VirtualBackground,fg as default};
31
+ `+Q.replace(/^Error(:[^\n]*)?\n/,""))});return f.prototype=Object.create(g.prototype),f.prototype.constructor=f,f.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},f}var Br=void 0;function tn(g){var u=Sr(g),f=Qe(u);return Se(u),f}function Lt(g,u){var f=[],B={};function Q(O){if(!B[O]&&!Ve[O]){if(F[O]){F[O].forEach(Q);return}f.push(O),B[O]=!0}}throw u.forEach(Q),new Br(`${g}: `+f.map(tn).join([", "]))}function io(g,u,f,B,Q,O,R,b,v,k,G,V,ee){G=Qe(G),O=ot(Q,O),b&&(b=ot(R,b)),k&&(k=ot(v,k)),ee=ot(V,ee);var J=rt(G);Zn(J,function(){Lt(`Cannot construct ${G} due to unbound types`,[B])}),ut([g,u,f],B?[B]:[],function(ne){ne=ne[0];var we,ge;B?(we=ne.registeredClass,ge=we.instancePrototype):ge=ze.prototype;var xe=zn(J,function(){if(Object.getPrototypeOf(this)!==Ct)throw new lt("Use 'new' to construct "+G);if(pe.constructor_body===void 0)throw new lt(G+" has no accessible constructor");var En=pe.constructor_body[arguments.length];if(En===void 0)throw new lt(`Tried to invoke ctor of ${G} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(pe.constructor_body).toString()}) parameters instead!`);return En.apply(this,arguments)}),Ct=Object.create(ge,{constructor:{value:xe}});xe.prototype=Ct;var pe=new qn(G,xe,Ct,ee,we,O,b,k);pe.baseClass&&(pe.baseClass.__derivedClasses===void 0&&(pe.baseClass.__derivedClasses=[]),pe.baseClass.__derivedClasses.push(pe));var At=new nt(G,pe,!0,!1,!1),ir=new nt(G+"*",pe,!1,!1,!1),fn=new nt(G+" const*",pe,!1,!0,!1);return Jr[g]={pointerType:ir,constPointerType:fn},no(J,xe),[At,ir,fn]})}function rn(g,u){for(var f=[],B=0;B<g;B++)f.push(le[u+B*4>>2]);return f}function mr(g){for(;g.length;){var u=g.pop(),f=g.pop();f(u)}}function nn(g,u,f,B,Q,O){var R=u.length;R<2&&X("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var b=u[1]!==null&&f!==null,v=!1,k=1;k<u.length;++k)if(u[k]!==null&&u[k].destructorFunction===void 0){v=!0;break}var G=u[0].name!=="void",V=R-2,ee=new Array(V),J=[],ne=[];return function(){arguments.length!==V&&X(`function ${g} called with ${arguments.length} arguments, expected ${V} args!`),ne.length=0;var we;J.length=b?2:1,J[0]=Q,b&&(we=u[1].toWireType(ne,this),J[1]=we);for(var ge=0;ge<V;++ge)ee[ge]=u[ge+2].toWireType(ne,arguments[ge]),J.push(ee[ge]);var xe=B.apply(null,J);function Ct(pe){if(v)mr(ne);else for(var At=b?1:2;At<u.length;At++){var ir=At===1?we:ee[At-2];u[At].destructorFunction!==null&&u[At].destructorFunction(ir)}if(G)return u[0].fromWireType(pe)}return Ct(xe)}}function Ao(g,u,f,B,Q,O){var R=rn(u,f);Q=ot(B,Q),ut([],[g],function(b){b=b[0];var v=`constructor ${b.name}`;if(b.registeredClass.constructor_body===void 0&&(b.registeredClass.constructor_body=[]),b.registeredClass.constructor_body[u-1]!==void 0)throw new lt(`Cannot register multiple constructors with identical number of parameters (${u-1}) for class '${b.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return b.registeredClass.constructor_body[u-1]=()=>{Lt(`Cannot construct ${b.name} due to unbound types`,R)},ut([],R,function(k){return k.splice(1,0,null),b.registeredClass.constructor_body[u-1]=nn(v,k,null,Q,O),[]}),[]})}function so(g,u,f,B,Q,O,R,b,v){var k=rn(f,B);u=Qe(u),O=ot(Q,O),ut([],[g],function(G){G=G[0];var V=`${G.name}.${u}`;u.startsWith("@@")&&(u=Symbol[u.substring(2)]),b&&G.registeredClass.pureVirtualFunctions.push(u);function ee(){Lt(`Cannot call ${V} due to unbound types`,k)}var J=G.registeredClass.instancePrototype,ne=J[u];return ne===void 0||ne.overloadTable===void 0&&ne.className!==G.name&&ne.argCount===f-2?(ee.argCount=f-2,ee.className=G.name,J[u]=ee):(pr(J,u,V),J[u].overloadTable[f-2]=ee),ut([],k,function(we){var ge=nn(V,we,G,O,R,v);return J[u].overloadTable===void 0?(ge.argCount=f-2,J[u]=ge):J[u].overloadTable[f-2]=ge,[]}),[]})}function _r(g,u,f){return g instanceof Object||X(`${f} with invalid "this": ${g}`),g instanceof u.registeredClass.constructor||X(`${f} incompatible with "this" of type ${g.constructor.name}`),g.$$.ptr||X(`cannot call emscripten binding method ${f} on deleted object`),Tt(g.$$.ptr,g.$$.ptrType.registeredClass,u.registeredClass)}function te(g,u,f,B,Q,O,R,b,v,k){u=Qe(u),Q=ot(B,Q),ut([],[g],function(G){G=G[0];var V=`${G.name}.${u}`,ee={get(){Lt(`Cannot access ${V} due to unbound types`,[f,R])},enumerable:!0,configurable:!0};return v?ee.set=()=>{Lt(`Cannot access ${V} due to unbound types`,[f,R])}:ee.set=J=>{X(V+" is a read-only property")},Object.defineProperty(G.registeredClass.instancePrototype,u,ee),ut([],v?[f,R]:[f],function(J){var ne=J[0],we={get(){var xe=_r(this,G,V+" getter");return ne.fromWireType(Q(O,xe))},enumerable:!0};if(v){v=ot(b,v);var ge=J[1];we.set=function(xe){var Ct=_r(this,G,V+" setter"),pe=[];v(k,Ct,ge.toWireType(pe,xe)),mr(pe)}}return Object.defineProperty(G.registeredClass.instancePrototype,u,we),[]}),[]})}function on(){Object.assign(Xe.prototype,{get(g){return this.allocated[g]},has(g){return this.allocated[g]!==void 0},allocate(g){var u=this.freelist.pop()||this.allocated.length;return this.allocated[u]=g,u},free(g){this.allocated[g]=void 0,this.freelist.push(g)}})}function Xe(){this.allocated=[void 0],this.freelist=[]}var de=new Xe;function yr(g){g>=de.reserved&&--de.get(g).refcount===0&&de.free(g)}function ao(){for(var g=0,u=de.reserved;u<de.allocated.length;++u)de.allocated[u]!==void 0&&++g;return g}function An(){de.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),de.reserved=de.allocated.length,n.count_emval_handles=ao}var x={toValue:g=>(g||X("Cannot use deleted val. handle = "+g),de.get(g).value),toHandle:g=>{switch(g){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return de.allocate({refcount:1,value:g})}}};function co(g,u){u=Qe(u),Ue(g,{name:u,fromWireType:function(f){var B=x.toValue(f);return yr(f),B},toWireType:function(f,B){return x.toHandle(B)},argPackAdvance:8,readValueFromPointer:Zt,destructorFunction:null})}function Qr(g){if(g===null)return"null";var u=typeof g;return u==="object"||u==="array"||u==="function"?g.toString():""+g}function sn(g,u){switch(u){case 2:return function(f){return this.fromWireType(He[f>>2])};case 3:return function(f){return this.fromWireType(Ur[f>>3])};default:throw new TypeError("Unknown float type: "+g)}}function a(g,u,f){var B=ie(f);u=Qe(u),Ue(g,{name:u,fromWireType:function(Q){return Q},toWireType:function(Q,O){return O},argPackAdvance:8,readValueFromPointer:sn(u,B),destructorFunction:null})}function Ae(g,u,f){switch(u){case 0:return f?function(Q){return ct[Q]}:function(Q){return be[Q]};case 1:return f?function(Q){return Ne[Q>>1]}:function(Q){return Vt[Q>>1]};case 2:return f?function(Q){return mt[Q>>2]}:function(Q){return le[Q>>2]};default:throw new TypeError("Unknown integer type: "+g)}}function go(g,u,f,B,Q){u=Qe(u),Q===-1&&(Q=4294967295);var O=ie(f),R=V=>V;if(B===0){var b=32-8*f;R=V=>V<<b>>>b}var v=u.includes("unsigned"),k=(V,ee)=>{},G;v?G=function(V,ee){return k(ee,this.name),ee>>>0}:G=function(V,ee){return k(ee,this.name),ee},Ue(g,{name:u,fromWireType:R,toWireType:G,argPackAdvance:8,readValueFromPointer:Ae(u,O,B!==0),destructorFunction:null})}function lo(g,u,f){var B=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],Q=B[u];function O(R){R=R>>2;var b=le,v=b[R],k=b[R+1];return new Q(b.buffer,k,v)}f=Qe(f),Ue(g,{name:f,fromWireType:O,argPackAdvance:8,readValueFromPointer:O},{ignoreDuplicateRegistrations:!0})}var uo=(g,u,f,B)=>{if(!(B>0))return 0;for(var Q=f,O=f+B-1,R=0;R<g.length;++R){var b=g.charCodeAt(R);if(b>=55296&&b<=57343){var v=g.charCodeAt(++R);b=65536+((b&1023)<<10)|v&1023}if(b<=127){if(f>=O)break;u[f++]=b}else if(b<=2047){if(f+1>=O)break;u[f++]=192|b>>6,u[f++]=128|b&63}else if(b<=65535){if(f+2>=O)break;u[f++]=224|b>>12,u[f++]=128|b>>6&63,u[f++]=128|b&63}else{if(f+3>=O)break;u[f++]=240|b>>18,u[f++]=128|b>>12&63,u[f++]=128|b>>6&63,u[f++]=128|b&63}}return u[f]=0,f-Q},fo=(g,u,f)=>uo(g,be,u,f),Eo=g=>{for(var u=0,f=0;f<g.length;++f){var B=g.charCodeAt(f);B<=127?u++:B<=2047?u+=2:B>=55296&&B<=57343?(u+=4,++f):u+=3}return u},an=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,Io=(g,u,f)=>{for(var B=u+f,Q=u;g[Q]&&!(Q>=B);)++Q;if(Q-u>16&&g.buffer&&an)return an.decode(g.subarray(u,Q));for(var O="";u<Q;){var R=g[u++];if(!(R&128)){O+=String.fromCharCode(R);continue}var b=g[u++]&63;if((R&224)==192){O+=String.fromCharCode((R&31)<<6|b);continue}var v=g[u++]&63;if((R&240)==224?R=(R&15)<<12|b<<6|v:R=(R&7)<<18|b<<12|v<<6|g[u++]&63,R<65536)O+=String.fromCharCode(R);else{var k=R-65536;O+=String.fromCharCode(55296|k>>10,56320|k&1023)}}return O},po=(g,u)=>g?Io(be,g,u):"";function qt(g,u){u=Qe(u);var f=u==="std::string";Ue(g,{name:u,fromWireType:function(B){var Q=le[B>>2],O=B+4,R;if(f)for(var b=O,v=0;v<=Q;++v){var k=O+v;if(v==Q||be[k]==0){var G=k-b,V=po(b,G);R===void 0?R=V:(R+=String.fromCharCode(0),R+=V),b=k+1}}else{for(var ee=new Array(Q),v=0;v<Q;++v)ee[v]=String.fromCharCode(be[O+v]);R=ee.join("")}return Se(B),R},toWireType:function(B,Q){Q instanceof ArrayBuffer&&(Q=new Uint8Array(Q));var O,R=typeof Q=="string";R||Q instanceof Uint8Array||Q instanceof Uint8ClampedArray||Q instanceof Int8Array||X("Cannot pass non-string to std::string"),f&&R?O=Eo(Q):O=Q.length;var b=Mr(4+O+1),v=b+4;if(le[b>>2]=O,f&&R)fo(Q,v,O+1);else if(R)for(var k=0;k<O;++k){var G=Q.charCodeAt(k);G>255&&(Se(v),X("String has UTF-16 code units that do not fit in 8 bits")),be[v+k]=G}else for(var k=0;k<O;++k)be[v+k]=Q[k];return B!==null&&B.push(Se,b),b},argPackAdvance:8,readValueFromPointer:Zt,destructorFunction:function(B){Se(B)}})}var jt=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0,wr=(g,u)=>{for(var f=g,B=f>>1,Q=B+u/2;!(B>=Q)&&Vt[B];)++B;if(f=B<<1,f-g>32&&jt)return jt.decode(be.subarray(g,f));for(var O="",R=0;!(R>=u/2);++R){var b=Ne[g+R*2>>1];if(b==0)break;O+=String.fromCharCode(b)}return O},Me=(g,u,f)=>{if(f===void 0&&(f=2147483647),f<2)return 0;f-=2;for(var B=u,Q=f<g.length*2?f/2:g.length,O=0;O<Q;++O){var R=g.charCodeAt(O);Ne[u>>1]=R,u+=2}return Ne[u>>1]=0,u-B},Co=g=>g.length*2,ho=(g,u)=>{for(var f=0,B="";!(f>=u/4);){var Q=mt[g+f*4>>2];if(Q==0)break;if(++f,Q>=65536){var O=Q-65536;B+=String.fromCharCode(55296|O>>10,56320|O&1023)}else B+=String.fromCharCode(Q)}return B},Bo=(g,u,f)=>{if(f===void 0&&(f=2147483647),f<4)return 0;for(var B=u,Q=B+f-4,O=0;O<g.length;++O){var R=g.charCodeAt(O);if(R>=55296&&R<=57343){var b=g.charCodeAt(++O);R=65536+((R&1023)<<10)|b&1023}if(mt[u>>2]=R,u+=4,u+4>Q)break}return mt[u>>2]=0,u-B},er=g=>{for(var u=0,f=0;f<g.length;++f){var B=g.charCodeAt(f);B>=55296&&B<=57343&&++f,u+=4}return u},tr=function(g,u,f){f=Qe(f);var B,Q,O,R,b;u===2?(B=wr,Q=Me,R=Co,O=()=>Vt,b=1):u===4&&(B=ho,Q=Bo,R=er,O=()=>le,b=2),Ue(g,{name:f,fromWireType:function(v){for(var k=le[v>>2],G=O(),V,ee=v+4,J=0;J<=k;++J){var ne=v+4+J*u;if(J==k||G[ne>>b]==0){var we=ne-ee,ge=B(ee,we);V===void 0?V=ge:(V+=String.fromCharCode(0),V+=ge),ee=ne+u}}return Se(v),V},toWireType:function(v,k){typeof k!="string"&&X(`Cannot pass non-string to C++ string type ${f}`);var G=R(k),V=Mr(4+G+u);return le[V>>2]=G>>b,Q(k,V+4,G+u),v!==null&&v.push(Se,V),V},argPackAdvance:8,readValueFromPointer:Zt,destructorFunction:function(v){Se(v)}})};function cn(g,u){u=Qe(u),Ue(g,{isVoid:!0,name:u,argPackAdvance:0,fromWireType:function(){},toWireType:function(f,B){}})}function Dr(g,u){var f=Ve[g];return f===void 0&&X(u+" has unknown type "+tn(g)),f}function gn(g,u,f){g=x.toValue(g),u=Dr(u,"emval::as");var B=[],Q=x.toHandle(B);return le[f>>2]=Q,u.toWireType(B,g)}function Ie(g){var u=[];return le[g>>2]=x.toHandle(u),u}var mo={};function ln(g){var u=mo[g];return u===void 0?Qe(g):u}var it=[];function br(g,u,f,B,Q){return g=it[g],u=x.toValue(u),f=ln(f),g(u,f,Ie(B),Q)}function Ht(g,u,f,B){g=it[g],u=x.toValue(u),f=ln(f),g(u,f,null,B)}function _o(g){var u=it.length;return it.push(g),u}function yo(g,u){for(var f=new Array(g),B=0;B<g;++B)f[B]=Dr(le[u+B*4>>2],"parameter "+B);return f}var We=[];function Rt(g,u){var f=yo(g,u),B=f[0],Q=B.name+"_$"+f.slice(1).map(function(v){return v.name}).join("_")+"$",O=We[Q];if(O!==void 0)return O;var R=new Array(g-1),b=(v,k,G,V)=>{for(var ee=0,J=0;J<g-1;++J)R[J]=f[J+1].readValueFromPointer(V+ee),ee+=f[J+1].argPackAdvance;for(var ne=v[k].apply(v,R),J=0;J<g-1;++J)f[J+1].deleteObject&&f[J+1].deleteObject(R[J]);if(!B.isVoid)return B.toWireType(G,ne)};return O=_o(b),We[Q]=O,O}function W(g){g>4&&(de.get(g).refcount+=1)}function Tr(g){var u=x.toValue(g);mr(u),yr(g)}function Qo(g,u){g=Dr(g,"_emval_take_value");var f=g.readValueFromPointer(u);return x.toHandle(f)}var un=()=>{Kt("")},pt=(g,u,f)=>be.copyWithin(g,u,u+f),dn=g=>{Kt("OOM")},Or=g=>{var u=be.length;g>>>=0,dn(g)};_e(),lt=n.BindingError=class extends Error{constructor(u){super(u),this.name="BindingError"}},ur=n.InternalError=class extends Error{constructor(u){super(u),this.name="InternalError"}},Je(),Ut(),ro(),Br=n.UnboundTypeError=It(Error,"UnboundTypeError"),on(),An();var wo={w:kt,q:m,u:Wr,y:io,x:Ao,i:so,k:te,t:co,o:a,e:go,a:lo,n:qt,l:tr,v:cn,j:gn,p:br,f:Ht,c:yr,d:Rt,b:W,g:Tr,h:Qo,m:un,s:pt,r:Or},Rr=Yn(),Pr=()=>(Pr=se.A)(),Mr=g=>(Mr=se.B)(g),Sr=g=>(Sr=se.D)(g),Pt=n.__embind_initialize_bindings=()=>(Pt=n.__embind_initialize_bindings=se.E)(),Do=()=>(Do=se.__errno_location)(),Se=g=>(Se=se.F)(g),rr=g=>(rr=se.G)(g),nr=n._vertexShaderSource=8688;function Mt(g){try{for(var u=atob(g),f=new Uint8Array(u.length),B=0;B<u.length;++B)f[B]=u.charCodeAt(B);return f}catch(Q){throw new Error("Converting base64 string to bytes failed.")}}function or(g){if(Gr(g))return Mt(g.slice(Hr.length))}var Gt;Ye=function g(){Gt||Yt(),Gt||(Ye=g)};function Yt(){if(Ge>0||(Ln(),Ge>0))return;function g(){Gt||(Gt=!0,n.calledRun=!0,!K&&(Uo(),oe(n),n.onRuntimeInitialized&&n.onRuntimeInitialized(),xo()))}n.setStatus?(n.setStatus("Running..."),setTimeout(function(){setTimeout(function(){n.setStatus("")},1),g()},1)):g()}if(n.preInit)for(typeof n.preInit=="function"&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.pop()();return Yt(),M.ready}})(),fi=hc;var vn=class{constructor(M){ye(this,"canvas");ye(this,"locateFile");ye(this,"_glName");ye(this,"_solutionWasm");ye(this,"ctx");ye(this,"pl",{onResults:M=>this.onResults(M.get(0).glName)});this.locateFile=n=>`${M}/${n}`}bindTexture(){var M;(M=this.ctx)==null||M.activeTexture(this.ctx.TEXTURE0),this.bindTexture2d(this._glName)}async initialize(){this._solutionWasm=new this.SolutionWasm;let M=new this.StringList;M.push_back("segmentation_mask");let n=this.PacketListener.implement(this.pl);return this._solutionWasm.attachMultiListener(M,n),M.delete(),this._solutionWasm.loadGraph(await this.fetchFile("selfie_segmentation.binarypb")),this}setCanvas(M){this.canvas=M,this.createContext(M,!0,!0,{}),this._glName=this.createTexture()}async fetchFile(M){try{let n=await fetch(this.locateFile(M));if(!n.ok)throw new Error(`fetch status: ${n.status}`);return n.arrayBuffer()}catch(n){throw new Error(`Failed to fetch file: ${M} ${n}`)}}async changeModel(M="selfie_segmentation_landscape.tflite"){M=typeof M=="string"?await this.fetchFile(M):M,this._solutionWasm.overrideFile("third_party/mediapipe/modules/selfie_segmentation/selfie_segmentation_landscape.tflite",M);let n=new this.GraphOptionChangeRequestList;n.push_back({calculatorIndex:1,calculatorName:"",calculatorType:"GlScalerCalculator",fieldName:"flip_horizontal",valueBoolean:!1,valueNumber:0,valueString:""}),n.push_back({calculatorIndex:0,calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorModelSelection",fieldName:"int_value",valueBoolean:!1,valueNumber:1,valueString:""}),n.push_back({calculatorIndex:0,calculatorType:"InferenceCalculator",calculatorName:"",fieldName:"use_cpu_inference",valueBoolean:!1,valueNumber:0,valueString:""}),this._solutionWasm.changeOptions(n)}send(M,n){let oe=new this.PacketDataList;oe.pushTexture2d({stream:"input_frames_gpu",timestamp:performance.now()*1e3,glName:this._glName,width:M,height:n}),this._solutionWasm.send(oe),oe.delete()}close(){var M,n,oe;(M=this.canvas)==null||delete M.getContext,delete this.readyPromiseResolve,delete this.readyPromiseReject,this.pl.onResults=null,delete this.onResults,(n=this.deleteTexture)==null||n.call(this,this._glName),(oe=this._solutionWasm)==null||oe.delete();for(let he of Object.keys(this))delete this[he]}};var kn=0,Nn=class Nn{constructor(M){this.core=M;ye(this,"seq");ye(this,"_core");ye(this,"log");ye(this,"preLoadPromise");ye(this,"startResolve");ye(this,"startReject");ye(this,"mediaPipeSolutions");ye(this,"assetsPath");kn=kn+1,this.seq=kn,this._core=M,this.log=M.log.createChild({id:`${this.getAlias()}${kn}`}),this.log.info("created"),M.assetsPath&&(this.preLoadPromise=this.preload(M.assetsPath))}async preload(M){try{this._core.room.videoManager.Wasm=await fi(),this.assetsPath=`${M}/selfie_segmentation/`;let n=new vn(this.assetsPath);this.mediaPipeSolutions=await di(n),await this.mediaPipeSolutions.initialize(),await this._core.room.videoManager.initVirtualBackground(this.mediaPipeSolutions)}catch(n){let{RtcError:oe,ErrorCode:he}=this._core.errorModule;throw new oe({code:he.INVALID_OPERATION,message:`VirtualBackground preload error, please check your assetsPath. detail: ${n}`})}}getName(){return Nn.Name}getAlias(){return"vb"}getValidateRule(M){switch(M){case"start":return gi(this._core);case"update":return li(this._core);case"stop":return ui(this._core)}}getGroup(){return"vb"}async start(M){let{type:n="blur",src:oe}=M;this.preLoadPromise||(this.preLoadPromise=this.preload(this._core.assetsPath)),await this.preLoadPromise;let{auth:he,sign:Be,timestamp:fe}=await ci({sdkAppId:M.sdkAppId,userId:M.userId,userSig:M.userSig,core:this._core});if(!he){let{RtcError:De,ErrorCode:ve,ErrorCodeDictionary:ke}=this._core.errorModule;throw new De({code:ve.SERVER_ERROR,extraCode:ke.NEED_TO_BUY,messageParams:{value:"Virtual Background",url:"https://cloud.tencent.com/document/product/647/85386"}})}return this.core.room.videoManager.setVirtualBackground({type:n,imageUrl:oe})}async update(M){let{type:n,src:oe}=M;return this.core.room.videoManager.setVirtualBackground({type:n,imageUrl:oe})}async stop(){return this.core.room.videoManager.setVirtualBackground()}};ye(Nn,"Name","VirtualBackground");var ko=Nn;var fg=ko;export{ko as VirtualBackground,fg as default};