canvaskit-wasm
Version:
A WASM version of Skia's Canvas API
266 lines • 121 kB
JavaScript
var CanvasKitInit = (() => {
var _scriptName = typeof document != 'undefined' ? document.currentScript?.src : undefined;
if (typeof __filename != 'undefined') _scriptName = _scriptName || __filename;
return (
async function(moduleArg = {}) {
var moduleRtn;
var u=moduleArg,da,ha,ka=new Promise((a,b)=>{da=a;ha=b}),na="object"==typeof window,oa="undefined"!=typeof WorkerGlobalScope,pa="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node&&"renderer"!=process.type;
(function(a){a.Pd=a.Pd||[];a.Pd.push(function(){a.MakeSWCanvasSurface=function(b){var e=b,f="undefined"!==typeof OffscreenCanvas&&e instanceof OffscreenCanvas;if(!("undefined"!==typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||f||(e=document.getElementById(b),e)))throw"Canvas with id "+b+" was not found";if(b=a.MakeSurface(e.width,e.height))b.Hd=e;return b};a.MakeCanvasSurface||(a.MakeCanvasSurface=a.MakeSWCanvasSurface);a.MakeSurface=function(b,e){var f={width:b,height:e,colorType:a.ColorType.RGBA_8888,
alphaType:a.AlphaType.Unpremul,colorSpace:a.ColorSpace.SRGB},h=b*e*4,m=a._malloc(h);if(f=a.Surface._makeRasterDirect(f,m,4*b))f.Hd=null,f.vf=b,f.rf=e,f.tf=h,f.Ve=m,f.getCanvas().clear(a.TRANSPARENT);return f};a.MakeRasterDirectSurface=function(b,e,f){return a.Surface._makeRasterDirect(b,e.byteOffset,f)};a.Surface.prototype.flush=function(b){a.Id(this.Gd);this._flush();if(this.Hd){var e=new Uint8ClampedArray(a.HEAPU8.buffer,this.Ve,this.tf);e=new ImageData(e,this.vf,this.rf);b?this.Hd.getContext("2d").putImageData(e,
0,0,b[0],b[1],b[2]-b[0],b[3]-b[1]):this.Hd.getContext("2d").putImageData(e,0,0)}};a.Surface.prototype.dispose=function(){this.Ve&&a._free(this.Ve);this.delete()};a.Id=a.Id||function(){};a.Pe=a.Pe||function(){return null}})})(u);
(function(a){a.Pd=a.Pd||[];a.Pd.push(function(){function b(m,n,t){return m&&m.hasOwnProperty(n)?m[n]:t}function e(m){var n=qa(ra);ra[n]=m;return n}function f(m,n,t,v){m.bindTexture(m.TEXTURE_2D,n);v||t.alphaType!==a.AlphaType.Premul||m.pixelStorei(m.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0);return n}function h(m,n,t){t||n.alphaType!==a.AlphaType.Premul||m.pixelStorei(m.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1);m.bindTexture(m.TEXTURE_2D,null)}a.GetWebGLContext=function(m,n){if(!m)throw"null canvas passed into makeWebGLContext";
var t={alpha:b(n,"alpha",1),depth:b(n,"depth",1),stencil:b(n,"stencil",8),antialias:b(n,"antialias",0),premultipliedAlpha:b(n,"premultipliedAlpha",1),preserveDrawingBuffer:b(n,"preserveDrawingBuffer",0),preferLowPowerToHighPerformance:b(n,"preferLowPowerToHighPerformance",0),failIfMajorPerformanceCaveat:b(n,"failIfMajorPerformanceCaveat",0),enableExtensionsByDefault:b(n,"enableExtensionsByDefault",1),explicitSwapControl:b(n,"explicitSwapControl",0),renderViaOffscreenBackBuffer:b(n,"renderViaOffscreenBackBuffer",
0)};t.majorVersion=n&&n.majorVersion?n.majorVersion:"undefined"!==typeof WebGL2RenderingContext?2:1;if(t.explicitSwapControl)throw"explicitSwapControl is not supported";m=sa(m,t);if(!m)return 0;ta(m);H.ce.getExtension("WEBGL_debug_renderer_info");return m};a.deleteContext=function(m){H===za[m]&&(H=null);"object"==typeof JSEvents&&JSEvents.dg(za[m].ce.canvas);za[m]?.ce.canvas&&(za[m].ce.canvas.pf=void 0);za[m]=null};a._setTextureCleanup({deleteTexture:function(m,n){var t=ra[n];t&&za[m].ce.deleteTexture(t);
ra[n]=null}});a.MakeWebGLContext=function(m){if(!this.Id(m))return null;var n=this._MakeGrContext();if(!n)return null;n.Gd=m;var t=n.delete.bind(n);n["delete"]=function(){a.Id(this.Gd);t()}.bind(n);return H.Ze=n};a.MakeGrContext=a.MakeWebGLContext;a.GrDirectContext.prototype.getResourceCacheLimitBytes=function(){a.Id(this.Gd);this._getResourceCacheLimitBytes()};a.GrDirectContext.prototype.getResourceCacheUsageBytes=function(){a.Id(this.Gd);this._getResourceCacheUsageBytes()};a.GrDirectContext.prototype.releaseResourcesAndAbandonContext=
function(){a.Id(this.Gd);this._releaseResourcesAndAbandonContext()};a.GrDirectContext.prototype.setResourceCacheLimitBytes=function(m){a.Id(this.Gd);this._setResourceCacheLimitBytes(m)};a.MakeOnScreenGLSurface=function(m,n,t,v,x,F){if(!this.Id(m.Gd))return null;n=void 0===x||void 0===F?this._MakeOnScreenGLSurface(m,n,t,v):this._MakeOnScreenGLSurface(m,n,t,v,x,F);if(!n)return null;n.Gd=m.Gd;return n};a.MakeRenderTarget=function(){var m=arguments[0];if(!this.Id(m.Gd))return null;if(3===arguments.length){var n=
this._MakeRenderTargetWH(m,arguments[1],arguments[2]);if(!n)return null}else if(2===arguments.length){if(n=this._MakeRenderTargetII(m,arguments[1]),!n)return null}else return null;n.Gd=m.Gd;return n};a.MakeWebGLCanvasSurface=function(m,n,t){n=n||null;var v=m,x="undefined"!==typeof OffscreenCanvas&&v instanceof OffscreenCanvas;if(!("undefined"!==typeof HTMLCanvasElement&&v instanceof HTMLCanvasElement||x||(v=document.getElementById(m),v)))throw"Canvas with id "+m+" was not found";m=this.GetWebGLContext(v,
t);if(!m||0>m)throw"failed to create webgl context: err "+m;m=this.MakeWebGLContext(m);n=this.MakeOnScreenGLSurface(m,v.width,v.height,n);return n?n:(n=v.cloneNode(!0),v.parentNode.replaceChild(n,v),n.classList.add("ck-replaced"),a.MakeSWCanvasSurface(n))};a.MakeCanvasSurface=a.MakeWebGLCanvasSurface;a.Surface.prototype.makeImageFromTexture=function(m,n){a.Id(this.Gd);m=e(m);if(n=this._makeImageFromTexture(this.Gd,m,n))n.Ee=m;return n};a.Surface.prototype.makeImageFromTextureSource=function(m,n,t){n||=
{height:a.Me(m),width:a.Ne(m),colorType:a.ColorType.RGBA_8888,alphaType:t?a.AlphaType.Premul:a.AlphaType.Unpremul};n.colorSpace||(n.colorSpace=a.ColorSpace.SRGB);a.Id(this.Gd);var v=H.ce;t=f(v,v.createTexture(),n,t);2===H.version?v.texImage2D(v.TEXTURE_2D,0,v.RGBA,n.width,n.height,0,v.RGBA,v.UNSIGNED_BYTE,m):v.texImage2D(v.TEXTURE_2D,0,v.RGBA,v.RGBA,v.UNSIGNED_BYTE,m);h(v,n);this._resetContext();return this.makeImageFromTexture(t,n)};a.Surface.prototype.updateTextureFromSource=function(m,n,t){if(m.Ee){a.Id(this.Gd);
var v=m.getImageInfo(),x=H.ce,F=f(x,ra[m.Ee],v,t);2===H.version?x.texImage2D(x.TEXTURE_2D,0,x.RGBA,a.Ne(n),a.Me(n),0,x.RGBA,x.UNSIGNED_BYTE,n):x.texImage2D(x.TEXTURE_2D,0,x.RGBA,x.RGBA,x.UNSIGNED_BYTE,n);h(x,v,t);this._resetContext();ra[m.Ee]=null;m.Ee=e(F);v.colorSpace=m.getColorSpace();n=this._makeImageFromTexture(this.Gd,m.Ee,v);t=m.Fd.Md;x=m.Fd.Rd;m.Fd.Md=n.Fd.Md;m.Fd.Rd=n.Fd.Rd;n.Fd.Md=t;n.Fd.Rd=x;n.delete();v.colorSpace.delete()}};a.MakeLazyImageFromTextureSource=function(m,n,t){n||={height:a.Me(m),
width:a.Ne(m),colorType:a.ColorType.RGBA_8888,alphaType:t?a.AlphaType.Premul:a.AlphaType.Unpremul};n.colorSpace||(n.colorSpace=a.ColorSpace.SRGB);var v={makeTexture:function(){var x=H,F=x.ce,I=f(F,F.createTexture(),n,t);2===x.version?F.texImage2D(F.TEXTURE_2D,0,F.RGBA,n.width,n.height,0,F.RGBA,F.UNSIGNED_BYTE,m):F.texImage2D(F.TEXTURE_2D,0,F.RGBA,F.RGBA,F.UNSIGNED_BYTE,m);h(F,n,t);return e(I)},freeSrc:function(){}};"VideoFrame"===m.constructor.name&&(v.freeSrc=function(){m.close()});return a.Image._makeFromGenerator(n,
v)};a.Id=function(m){return m?ta(m):!1};a.Pe=function(){return H&&H.Ze&&!H.Ze.isDeleted()?H.Ze:null}})})(u);
(function(a){function b(d,c,g,l,r){for(var w=0;w<d.length;w++)c[w*g+(w*r+l+g)%g]=d[w];return c}function e(d){for(var c=d*d,g=Array(c);c--;)g[c]=0===c%(d+1)?1:0;return g}function f(d){return d?d.constructor===Float32Array&&4===d.length:!1}function h(d){return(t(255*d[3])<<24|t(255*d[0])<<16|t(255*d[1])<<8|t(255*d[2])<<0)>>>0}function m(d){if(d&&d._ck)return d;if(d instanceof Float32Array){for(var c=Math.floor(d.length/4),g=new Uint32Array(c),l=0;l<c;l++)g[l]=h(d.slice(4*l,4*(l+1)));return g}if(d instanceof
Uint32Array)return d;if(d instanceof Array&&d[0]instanceof Float32Array)return d.map(h)}function n(d){if(void 0===d)return 1;var c=parseFloat(d);return d&&-1!==d.indexOf("%")?c/100:c}function t(d){return Math.round(Math.max(0,Math.min(d||0,255)))}function v(d,c){c&&c._ck||a._free(d)}function x(d,c,g){if(!d||!d.length)return Q;if(d&&d._ck)return d.byteOffset;var l=a[c].BYTES_PER_ELEMENT;g||=a._malloc(d.length*l);a[c].set(d,g/l);return g}function F(d){var c={Zd:Q,count:d.length,colorType:a.ColorType.RGBA_F32};
if(d instanceof Float32Array)c.Zd=x(d,"HEAPF32"),c.count=d.length/4;else if(d instanceof Uint32Array)c.Zd=x(d,"HEAPU32"),c.colorType=a.ColorType.RGBA_8888;else if(d instanceof Array){if(d&&d.length){for(var g=a._malloc(16*d.length),l=0,r=g/4,w=0;w<d.length;w++)for(var A=0;4>A;A++)a.HEAPF32[r+l]=d[w][A],l++;d=g}else d=Q;c.Zd=d}else throw"Invalid argument to copyFlexibleColorArray, Not a color array "+typeof d;return c}function I(d){if(!d)return Q;var c=Mb.toTypedArray();if(d.length){if(6===d.length||
9===d.length)return x(d,"HEAPF32",xa),6===d.length&&a.HEAPF32.set(jd,6+xa/4),xa;if(16===d.length)return c[0]=d[0],c[1]=d[1],c[2]=d[3],c[3]=d[4],c[4]=d[5],c[5]=d[7],c[6]=d[12],c[7]=d[13],c[8]=d[15],xa;throw"invalid matrix size";}if(void 0===d.m11)throw"invalid matrix argument";c[0]=d.m11;c[1]=d.m21;c[2]=d.m41;c[3]=d.m12;c[4]=d.m22;c[5]=d.m42;c[6]=d.m14;c[7]=d.m24;c[8]=d.m44;return xa}function O(d){if(!d)return Q;var c=Nb.toTypedArray();if(d.length){if(16!==d.length&&6!==d.length&&9!==d.length)throw"invalid matrix size";
if(16===d.length)return x(d,"HEAPF32",Za);c.fill(0);c[0]=d[0];c[1]=d[1];c[3]=d[2];c[4]=d[3];c[5]=d[4];c[7]=d[5];c[10]=1;c[12]=d[6];c[13]=d[7];c[15]=d[8];6===d.length&&(c[12]=0,c[13]=0,c[15]=1);return Za}if(void 0===d.m11)throw"invalid matrix argument";c[0]=d.m11;c[1]=d.m21;c[2]=d.m31;c[3]=d.m41;c[4]=d.m12;c[5]=d.m22;c[6]=d.m32;c[7]=d.m42;c[8]=d.m13;c[9]=d.m23;c[10]=d.m33;c[11]=d.m43;c[12]=d.m14;c[13]=d.m24;c[14]=d.m34;c[15]=d.m44;return Za}function Z(d,c){return x(d,"HEAPF32",c||Qa)}function ea(d,
c,g,l){var r=Ob.toTypedArray();r[0]=d;r[1]=c;r[2]=g;r[3]=l;return Qa}function fa(d){for(var c=new Float32Array(4),g=0;4>g;g++)c[g]=a.HEAPF32[d/4+g];return c}function S(d,c){return x(d,"HEAPF32",c||ia)}function ya(d,c){return x(d,"HEAPF32",c||Pb)}function ma(){for(var d=0,c=0;c<arguments.length-1;c+=2)d+=arguments[c]*arguments[c+1];return d}function Ma(d,c,g){for(var l=Array(d.length),r=0;r<g;r++)for(var w=0;w<g;w++){for(var A=0,G=0;G<g;G++)A+=d[g*r+G]*c[g*G+w];l[r*g+w]=A}return l}function $a(d,c){for(var g=
Ma(c[0],c[1],d),l=2;l<c.length;)g=Ma(g,c[l],d),l++;return g}a.Color=function(d,c,g,l){void 0===l&&(l=1);return a.Color4f(t(d)/255,t(c)/255,t(g)/255,l)};a.ColorAsInt=function(d,c,g,l){void 0===l&&(l=255);return(t(l)<<24|t(d)<<16|t(c)<<8|t(g)<<0&268435455)>>>0};a.Color4f=function(d,c,g,l){void 0===l&&(l=1);return Float32Array.of(d,c,g,l)};Object.defineProperty(a,"TRANSPARENT",{get:function(){return a.Color4f(0,0,0,0)}});Object.defineProperty(a,"BLACK",{get:function(){return a.Color4f(0,0,0,1)}});Object.defineProperty(a,
"WHITE",{get:function(){return a.Color4f(1,1,1,1)}});Object.defineProperty(a,"RED",{get:function(){return a.Color4f(1,0,0,1)}});Object.defineProperty(a,"GREEN",{get:function(){return a.Color4f(0,1,0,1)}});Object.defineProperty(a,"BLUE",{get:function(){return a.Color4f(0,0,1,1)}});Object.defineProperty(a,"YELLOW",{get:function(){return a.Color4f(1,1,0,1)}});Object.defineProperty(a,"CYAN",{get:function(){return a.Color4f(0,1,1,1)}});Object.defineProperty(a,"MAGENTA",{get:function(){return a.Color4f(1,
0,1,1)}});a.getColorComponents=function(d){return[Math.floor(255*d[0]),Math.floor(255*d[1]),Math.floor(255*d[2]),d[3]]};a.parseColorString=function(d,c){d=d.toLowerCase();if(d.startsWith("#")){c=255;switch(d.length){case 9:c=parseInt(d.slice(7,9),16);case 7:var g=parseInt(d.slice(1,3),16);var l=parseInt(d.slice(3,5),16);var r=parseInt(d.slice(5,7),16);break;case 5:c=17*parseInt(d.slice(4,5),16);case 4:g=17*parseInt(d.slice(1,2),16),l=17*parseInt(d.slice(2,3),16),r=17*parseInt(d.slice(3,4),16)}return a.Color(g,
l,r,c/255)}return d.startsWith("rgba")?(d=d.slice(5,-1),d=d.split(","),a.Color(+d[0],+d[1],+d[2],n(d[3]))):d.startsWith("rgb")?(d=d.slice(4,-1),d=d.split(","),a.Color(+d[0],+d[1],+d[2],n(d[3]))):d.startsWith("gray(")||d.startsWith("hsl")||!c||(d=c[d],void 0===d)?a.BLACK:d};a.multiplyByAlpha=function(d,c){d=d.slice();d[3]=Math.max(0,Math.min(d[3]*c,1));return d};a.Malloc=function(d,c){var g=a._malloc(c*d.BYTES_PER_ELEMENT);return{_ck:!0,length:c,byteOffset:g,me:null,subarray:function(l,r){l=this.toTypedArray().subarray(l,
r);l._ck=!0;return l},toTypedArray:function(){if(this.me&&this.me.length)return this.me;this.me=new d(a.HEAPU8.buffer,g,c);this.me._ck=!0;return this.me}}};a.Free=function(d){a._free(d.byteOffset);d.byteOffset=Q;d.toTypedArray=null;d.me=null};var xa=Q,Mb,Za=Q,Nb,Qa=Q,Ob,ua,ia=Q,nc,Na=Q,oc,Qb=Q,pc,Rb=Q,ob,db=Q,qc,Pb=Q,rc,sc=Q,jd=Float32Array.of(0,0,1),Q=0;a.Ne=function(d){return d.naturalWidth||d.videoWidth||d.displayWidth||d.width};a.Me=function(d){return d.naturalHeight||d.videoHeight||d.displayHeight||
d.height};a.onRuntimeInitialized=function(){function d(c,g,l,r,w,A,G){A||(A=4*r.width,r.colorType===a.ColorType.RGBA_F16?A*=2:r.colorType===a.ColorType.RGBA_F32&&(A*=4));var K=A*r.height;var L=w?w.byteOffset:a._malloc(K);if(G?!c._readPixels(r,L,A,g,l,G):!c._readPixels(r,L,A,g,l))return w||a._free(L),null;if(w)return w.toTypedArray();switch(r.colorType){case a.ColorType.RGBA_8888:case a.ColorType.RGBA_F16:c=(new Uint8Array(a.HEAPU8.buffer,L,K)).slice();break;case a.ColorType.RGBA_F32:c=(new Float32Array(a.HEAPU8.buffer,
L,K)).slice();break;default:return null}a._free(L);return c}Ob=a.Malloc(Float32Array,4);Qa=Ob.byteOffset;Nb=a.Malloc(Float32Array,16);Za=Nb.byteOffset;Mb=a.Malloc(Float32Array,9);xa=Mb.byteOffset;qc=a.Malloc(Float32Array,12);Pb=qc.byteOffset;rc=a.Malloc(Float32Array,12);sc=rc.byteOffset;ua=a.Malloc(Float32Array,4);ia=ua.byteOffset;nc=a.Malloc(Float32Array,4);Na=nc.byteOffset;oc=a.Malloc(Float32Array,3);Qb=oc.byteOffset;pc=a.Malloc(Float32Array,3);Rb=pc.byteOffset;ob=a.Malloc(Int32Array,4);db=ob.byteOffset;
a.ColorSpace.SRGB=a.ColorSpace._MakeSRGB();a.ColorSpace.DISPLAY_P3=a.ColorSpace._MakeDisplayP3();a.ColorSpace.ADOBE_RGB=a.ColorSpace._MakeAdobeRGB();a.GlyphRunFlags={IsWhiteSpace:a._GlyphRunFlags_isWhiteSpace};a.Path.MakeFromCmds=function(c){var g=x(c,"HEAPF32"),l=a.Path._MakeFromCmds(g,c.length);v(g,c);return l};a.Path.MakeFromVerbsPointsWeights=function(c,g,l){var r=x(c,"HEAPU8"),w=x(g,"HEAPF32"),A=x(l,"HEAPF32"),G=a.Path._MakeFromVerbsPointsWeights(r,c.length,w,g.length/2,A,l&&l.length||0);v(r,
c);v(w,g);v(A,l);return G};a.PathBuilder.prototype.addArc=function(c,g,l){c=S(c);this._addArc(c,g,l);return this};a.PathBuilder.prototype.addCircle=function(c,g,l,r){this._addCircle(c,g,l,!!r);return this};a.PathBuilder.prototype.addOval=function(c,g,l){void 0===l&&(l=1);c=S(c);this._addOval(c,!!g,l);return this};a.PathBuilder.prototype.addPath=function(){var c=Array.prototype.slice.call(arguments),g=c[0],l=!1;"boolean"===typeof c[c.length-1]&&(l=c.pop());if(1===c.length)this._addPath(g,1,0,0,0,1,
0,0,0,1,l);else if(2===c.length)c=c[1],this._addPath(g,c[0],c[1],c[2],c[3],c[4],c[5],c[6]||0,c[7]||0,c[8]||1,l);else if(7===c.length||10===c.length)this._addPath(g,c[1],c[2],c[3],c[4],c[5],c[6],c[7]||0,c[8]||0,c[9]||1,l);else return null;return this};a.PathBuilder.prototype.addPolygon=function(c,g){var l=x(c,"HEAPF32");this._addPolygon(l,c.length/2,g);v(l,c);return this};a.PathBuilder.prototype.addRect=function(c,g){c=S(c);this._addRect(c,!!g);return this};a.PathBuilder.prototype.addRRect=function(c,
g){c=ya(c);this._addRRect(c,!!g);return this};a.PathBuilder.prototype.addVerbsPointsWeights=function(c,g,l){var r=x(c,"HEAPU8"),w=x(g,"HEAPF32"),A=x(l,"HEAPF32");this._addVerbsPointsWeights(r,c.length,w,g.length/2,A,l&&l.length||0);v(r,c);v(w,g);v(A,l);return this};a.PathBuilder.prototype.arc=function(c,g,l,r,w,A){c=a.LTRBRect(c-l,g-l,c+l,g+l);w=(w-r)/Math.PI*180-360*!!A;r=(new a.PathBuilder).addArc(c,r/Math.PI*180,w).detachAndDelete();this.addPath(r,!0);r.delete();return this};a.PathBuilder.prototype.arcToOval=
function(c,g,l,r){c=S(c);this._arcToOval(c,g,l,r);return this};a.PathBuilder.prototype.arcToRotated=function(c,g,l,r,w,A,G){this._arcToRotated(c,g,l,!!r,!!w,A,G);return this};a.PathBuilder.prototype.arcToTangent=function(c,g,l,r,w){this._arcToTangent(c,g,l,r,w);return this};a.PathBuilder.prototype.close=function(){this._close();return this};a.PathBuilder.prototype.conicTo=function(c,g,l,r,w){this._conicTo(c,g,l,r,w);return this};a.Path.prototype.computeTightBounds=function(c){this._computeTightBounds(ia);
var g=ua.toTypedArray();return c?(c.set(g),c):g.slice()};a.PathBuilder.prototype.cubicTo=function(c,g,l,r,w,A){this._cubicTo(c,g,l,r,w,A);return this};a.PathBuilder.prototype.detachAndDelete=function(){var c=this.detach();this.delete();return c};a.Path.prototype.getBounds=function(c){this._getBounds(ia);var g=ua.toTypedArray();return c?(c.set(g),c):g.slice()};a.PathBuilder.prototype.getBounds=function(c){this._getBounds(ia);var g=ua.toTypedArray();return c?(c.set(g),c):g.slice()};a.PathBuilder.prototype.lineTo=
function(c,g){this._lineTo(c,g);return this};a.PathBuilder.prototype.moveTo=function(c,g){this._moveTo(c,g);return this};a.PathBuilder.prototype.offset=function(c,g){this._transform(1,0,c,0,1,g,0,0,1);return this};a.PathBuilder.prototype.quadTo=function(c,g,l,r){this._quadTo(c,g,l,r);return this};a.PathBuilder.prototype.rArcTo=function(c,g,l,r,w,A,G){this._rArcTo(c,g,l,r,w,A,G);return this};a.PathBuilder.prototype.rConicTo=function(c,g,l,r,w){this._rConicTo(c,g,l,r,w);return this};a.PathBuilder.prototype.rCubicTo=
function(c,g,l,r,w,A){this._rCubicTo(c,g,l,r,w,A);return this};a.PathBuilder.prototype.rLineTo=function(c,g){this._rLineTo(c,g);return this};a.PathBuilder.prototype.rMoveTo=function(c,g){this._rMoveTo(c,g);return this};a.PathBuilder.prototype.rQuadTo=function(c,g,l,r){this._rQuadTo(c,g,l,r);return this};a.PathBuilder.prototype.setFillType=function(c){this._setFillType(c);return this};a.Path.prototype.makeStroked=function(c){c=c||{};c.width=c.width||1;c.miter_limit=c.miter_limit||4;c.cap=c.cap||a.StrokeCap.Butt;
c.join=c.join||a.StrokeJoin.Miter;c.precision=c.precision||1;return this._makeStroked(c)};a.PathBuilder.prototype.transform=function(){if(1===arguments.length){var c=arguments[0];this._transform(c[0],c[1],c[2],c[3],c[4],c[5],c[6]||0,c[7]||0,c[8]||1)}else if(6===arguments.length||9===arguments.length)c=arguments,this._transform(c[0],c[1],c[2],c[3],c[4],c[5],c[6]||0,c[7]||0,c[8]||1);else throw"transform expected to take 1 or 9 arguments. Got "+arguments.length;return this};a.Path.prototype.makeTrimmed=
function(c,g,l){return this._makeTrimmed(c,g,!!l)};a.Image.prototype.encodeToBytes=function(c,g){var l=a.Pe();c=c||a.ImageFormat.PNG;g=g||100;return l?this._encodeToBytes(c,g,l):this._encodeToBytes(c,g)};a.Image.prototype.makeShaderCubic=function(c,g,l,r,w){w=I(w);return this._makeShaderCubic(c,g,l,r,w)};a.Image.prototype.makeShaderOptions=function(c,g,l,r,w){w=I(w);return this._makeShaderOptions(c,g,l,r,w)};a.Image.prototype.readPixels=function(c,g,l,r,w){var A=a.Pe();return d(this,c,g,l,r,w,A)};
a.Canvas.prototype.clear=function(c){a.Id(this.Gd);c=Z(c);this._clear(c)};a.Canvas.prototype.clipRRect=function(c,g,l){a.Id(this.Gd);c=ya(c);this._clipRRect(c,g,l)};a.Canvas.prototype.clipRect=function(c,g,l){a.Id(this.Gd);c=S(c);this._clipRect(c,g,l)};a.Canvas.prototype.concat=function(c){a.Id(this.Gd);c=O(c);this._concat(c)};a.Canvas.prototype.drawArc=function(c,g,l,r,w){a.Id(this.Gd);c=S(c);this._drawArc(c,g,l,r,w)};a.Canvas.prototype.drawAtlas=function(c,g,l,r,w,A,G){if(c&&r&&g&&l&&g.length===
l.length){a.Id(this.Gd);w||(w=a.BlendMode.SrcOver);var K=x(g,"HEAPF32"),L=x(l,"HEAPF32"),V=l.length/4,X=x(m(A),"HEAPU32");if(G&&"B"in G&&"C"in G)this._drawAtlasCubic(c,L,K,X,V,w,G.B,G.C,r);else{let q=a.FilterMode.Linear,C=a.MipmapMode.None;G&&(q=G.filter,"mipmap"in G&&(C=G.mipmap));this._drawAtlasOptions(c,L,K,X,V,w,q,C,r)}v(K,g);v(L,l);v(X,A)}};a.Canvas.prototype.drawCircle=function(c,g,l,r){a.Id(this.Gd);this._drawCircle(c,g,l,r)};a.Canvas.prototype.drawColor=function(c,g){a.Id(this.Gd);c=Z(c);
void 0!==g?this._drawColor(c,g):this._drawColor(c)};a.Canvas.prototype.drawColorInt=function(c,g){a.Id(this.Gd);this._drawColorInt(c,g||a.BlendMode.SrcOver)};a.Canvas.prototype.drawColorComponents=function(c,g,l,r,w){a.Id(this.Gd);c=ea(c,g,l,r);void 0!==w?this._drawColor(c,w):this._drawColor(c)};a.Canvas.prototype.drawDRRect=function(c,g,l){a.Id(this.Gd);c=ya(c,Pb);g=ya(g,sc);this._drawDRRect(c,g,l)};a.Canvas.prototype.drawImage=function(c,g,l,r){a.Id(this.Gd);this._drawImage(c,g,l,r||null)};a.Canvas.prototype.drawImageCubic=
function(c,g,l,r,w,A){a.Id(this.Gd);this._drawImageCubic(c,g,l,r,w,A||null)};a.Canvas.prototype.drawImageOptions=function(c,g,l,r,w,A){a.Id(this.Gd);this._drawImageOptions(c,g,l,r,w,A||null)};a.Canvas.prototype.drawImageNine=function(c,g,l,r,w){a.Id(this.Gd);g=x(g,"HEAP32",db);l=S(l);this._drawImageNine(c,g,l,r,w||null)};a.Canvas.prototype.drawImageRect=function(c,g,l,r,w){a.Id(this.Gd);S(g,ia);S(l,Na);this._drawImageRect(c,ia,Na,r,!!w)};a.Canvas.prototype.drawImageRectCubic=function(c,g,l,r,w,A){a.Id(this.Gd);
S(g,ia);S(l,Na);this._drawImageRectCubic(c,ia,Na,r,w,A||null)};a.Canvas.prototype.drawImageRectOptions=function(c,g,l,r,w,A){a.Id(this.Gd);S(g,ia);S(l,Na);this._drawImageRectOptions(c,ia,Na,r,w,A||null)};a.Canvas.prototype.drawLine=function(c,g,l,r,w){a.Id(this.Gd);this._drawLine(c,g,l,r,w)};a.Canvas.prototype.drawOval=function(c,g){a.Id(this.Gd);c=S(c);this._drawOval(c,g)};a.Canvas.prototype.drawPaint=function(c){a.Id(this.Gd);this._drawPaint(c)};a.Canvas.prototype.drawParagraph=function(c,g,l){a.Id(this.Gd);
this._drawParagraph(c,g,l)};a.Canvas.prototype.drawPatch=function(c,g,l,r,w){if(24>c.length)throw"Need 12 cubic points";if(g&&4>g.length)throw"Need 4 colors";if(l&&8>l.length)throw"Need 4 shader coordinates";a.Id(this.Gd);const A=x(c,"HEAPF32"),G=g?x(m(g),"HEAPU32"):Q,K=l?x(l,"HEAPF32"):Q;r||(r=a.BlendMode.Modulate);this._drawPatch(A,G,K,r,w);v(K,l);v(G,g);v(A,c)};a.Canvas.prototype.drawPath=function(c,g){a.Id(this.Gd);this._drawPath(c,g)};a.Canvas.prototype.drawPicture=function(c){a.Id(this.Gd);
this._drawPicture(c)};a.Canvas.prototype.drawPoints=function(c,g,l){a.Id(this.Gd);var r=x(g,"HEAPF32");this._drawPoints(c,r,g.length/2,l);v(r,g)};a.Canvas.prototype.drawRRect=function(c,g){a.Id(this.Gd);c=ya(c);this._drawRRect(c,g)};a.Canvas.prototype.drawRect=function(c,g){a.Id(this.Gd);c=S(c);this._drawRect(c,g)};a.Canvas.prototype.drawRect4f=function(c,g,l,r,w){a.Id(this.Gd);this._drawRect4f(c,g,l,r,w)};a.Canvas.prototype.drawShadow=function(c,g,l,r,w,A,G){a.Id(this.Gd);var K=x(w,"HEAPF32"),L=
x(A,"HEAPF32");g=x(g,"HEAPF32",Qb);l=x(l,"HEAPF32",Rb);this._drawShadow(c,g,l,r,K,L,G);v(K,w);v(L,A)};a.getShadowLocalBounds=function(c,g,l,r,w,A,G){c=I(c);l=x(l,"HEAPF32",Qb);r=x(r,"HEAPF32",Rb);if(!this._getShadowLocalBounds(c,g,l,r,w,A,ia))return null;g=ua.toTypedArray();return G?(G.set(g),G):g.slice()};a.Canvas.prototype.drawTextBlob=function(c,g,l,r){a.Id(this.Gd);this._drawTextBlob(c,g,l,r)};a.Canvas.prototype.drawVertices=function(c,g,l){a.Id(this.Gd);this._drawVertices(c,g,l)};a.Canvas.prototype.getDeviceClipBounds=
function(c){this._getDeviceClipBounds(db);var g=ob.toTypedArray();c?c.set(g):c=g.slice();return c};a.Canvas.prototype.quickReject=function(c){c=S(c);return this._quickReject(c)};a.Canvas.prototype.getLocalToDevice=function(){this._getLocalToDevice(Za);for(var c=Za,g=Array(16),l=0;16>l;l++)g[l]=a.HEAPF32[c/4+l];return g};a.Canvas.prototype.getTotalMatrix=function(){this._getTotalMatrix(xa);for(var c=Array(9),g=0;9>g;g++)c[g]=a.HEAPF32[xa/4+g];return c};a.Canvas.prototype.makeSurface=function(c){c=
this._makeSurface(c);c.Gd=this.Gd;return c};a.Canvas.prototype.readPixels=function(c,g,l,r,w){a.Id(this.Gd);return d(this,c,g,l,r,w)};a.Canvas.prototype.saveLayer=function(c,g,l,r,w){g=S(g);return this._saveLayer(c||null,g,l||null,r||0,w||a.TileMode.Clamp)};a.Canvas.prototype.writePixels=function(c,g,l,r,w,A,G,K){if(c.byteLength%(g*l))throw"pixels length must be a multiple of the srcWidth * srcHeight";a.Id(this.Gd);var L=c.byteLength/(g*l);A=A||a.AlphaType.Unpremul;G=G||a.ColorType.RGBA_8888;K=K||
a.ColorSpace.SRGB;var V=L*g;L=x(c,"HEAPU8");g=this._writePixels({width:g,height:l,colorType:G,alphaType:A,colorSpace:K},L,V,r,w);v(L,c);return g};a.ColorFilter.MakeBlend=function(c,g,l){c=Z(c);l=l||a.ColorSpace.SRGB;return a.ColorFilter._MakeBlend(c,g,l)};a.ColorFilter.MakeMatrix=function(c){if(!c||20!==c.length)throw"invalid color matrix";var g=x(c,"HEAPF32"),l=a.ColorFilter._makeMatrix(g);v(g,c);return l};a.ContourMeasure.prototype.getPosTan=function(c,g){this._getPosTan(c,ia);c=ua.toTypedArray();
return g?(g.set(c),g):c.slice()};a.ImageFilter.prototype.getOutputBounds=function(c,g,l){c=S(c,ia);g=I(g);this._getOutputBounds(c,g,db);g=ob.toTypedArray();return l?(l.set(g),l):g.slice()};a.ImageFilter.MakeDropShadow=function(c,g,l,r,w,A){w=Z(w,Qa);return a.ImageFilter._MakeDropShadow(c,g,l,r,w,A)};a.ImageFilter.MakeDropShadowOnly=function(c,g,l,r,w,A){w=Z(w,Qa);return a.ImageFilter._MakeDropShadowOnly(c,g,l,r,w,A)};a.ImageFilter.MakeImage=function(c,g,l,r){l=S(l,ia);r=S(r,Na);if("B"in g&&"C"in g)return a.ImageFilter._MakeImageCubic(c,
g.B,g.C,l,r);const w=g.filter;let A=a.MipmapMode.None;"mipmap"in g&&(A=g.mipmap);return a.ImageFilter._MakeImageOptions(c,w,A,l,r)};a.ImageFilter.MakeMatrixTransform=function(c,g,l){c=I(c);if("B"in g&&"C"in g)return a.ImageFilter._MakeMatrixTransformCubic(c,g.B,g.C,l);const r=g.filter;let w=a.MipmapMode.None;"mipmap"in g&&(w=g.mipmap);return a.ImageFilter._MakeMatrixTransformOptions(c,r,w,l)};a.Paint.prototype.getColor=function(){this._getColor(Qa);return fa(Qa)};a.Paint.prototype.setColor=function(c,
g){g=g||null;c=Z(c);this._setColor(c,g)};a.Paint.prototype.setColorComponents=function(c,g,l,r,w){w=w||null;c=ea(c,g,l,r);this._setColor(c,w)};a.Path.prototype.getPoint=function(c,g){this._getPoint(c,ia);c=ua.toTypedArray();return g?(g[0]=c[0],g[1]=c[1],g):c.slice(0,2)};a.Picture.prototype.makeShader=function(c,g,l,r,w){r=I(r);w=S(w);return this._makeShader(c,g,l,r,w)};a.Picture.prototype.cullRect=function(c){this._cullRect(ia);var g=ua.toTypedArray();return c?(c.set(g),c):g.slice()};a.PictureRecorder.prototype.beginRecording=
function(c,g){c=S(c);return this._beginRecording(c,!!g)};a.Surface.prototype.getCanvas=function(){var c=this._getCanvas();c.Gd=this.Gd;return c};a.Surface.prototype.makeImageSnapshot=function(c){a.Id(this.Gd);c=x(c,"HEAP32",db);return this._makeImageSnapshot(c)};a.Surface.prototype.makeSurface=function(c){a.Id(this.Gd);c=this._makeSurface(c);c.Gd=this.Gd;return c};a.Surface.prototype.uf=function(c,g){this.Ae||(this.Ae=this.getCanvas());return requestAnimationFrame(function(){a.Id(this.Gd);c(this.Ae);
this.flush(g)}.bind(this))};a.Surface.prototype.requestAnimationFrame||(a.Surface.prototype.requestAnimationFrame=a.Surface.prototype.uf);a.Surface.prototype.qf=function(c,g){this.Ae||(this.Ae=this.getCanvas());requestAnimationFrame(function(){a.Id(this.Gd);c(this.Ae);this.flush(g);this.dispose()}.bind(this))};a.Surface.prototype.drawOnce||(a.Surface.prototype.drawOnce=a.Surface.prototype.qf);a.PathEffect.MakeDash=function(c,g){g||=0;if(!c.length||1===c.length%2)throw"Intervals array must have even length";
var l=x(c,"HEAPF32");g=a.PathEffect._MakeDash(l,c.length,g);v(l,c);return g};a.PathEffect.MakeLine2D=function(c,g){g=I(g);return a.PathEffect._MakeLine2D(c,g)};a.PathEffect.MakePath2D=function(c,g){c=I(c);return a.PathEffect._MakePath2D(c,g)};a.Shader.MakeColor=function(c,g){g=g||null;c=Z(c);return a.Shader._MakeColor(c,g)};a.Shader.Blend=a.Shader.MakeBlend;a.Shader.Color=a.Shader.MakeColor;a.Shader.MakeLinearGradient=function(c,g,l,r,w,A,G,K){K=K||null;var L=F(l),V=x(r,"HEAPF32");G=G||0;A=I(A);var X=
ua.toTypedArray();X.set(c);X.set(g,2);c=a.Shader._MakeLinearGradient(ia,L.Zd,L.colorType,V,L.count,w,G,A,K);v(L.Zd,l);r&&v(V,r);return c};a.Shader.MakeRadialGradient=function(c,g,l,r,w,A,G,K){K=K||null;var L=F(l),V=x(r,"HEAPF32");G=G||0;A=I(A);c=a.Shader._MakeRadialGradient(c[0],c[1],g,L.Zd,L.colorType,V,L.count,w,G,A,K);v(L.Zd,l);r&&v(V,r);return c};a.Shader.MakeSweepGradient=function(c,g,l,r,w,A,G,K,L,V){V=V||null;var X=F(l),q=x(r,"HEAPF32");G=G||0;K=K||0;L=L||360;A=I(A);c=a.Shader._MakeSweepGradient(c,
g,X.Zd,X.colorType,q,X.count,w,K,L,G,A,V);v(X.Zd,l);r&&v(q,r);return c};a.Shader.MakeTwoPointConicalGradient=function(c,g,l,r,w,A,G,K,L,V){V=V||null;var X=F(w),q=x(A,"HEAPF32");L=L||0;K=I(K);var C=ua.toTypedArray();C.set(c);C.set(l,2);c=a.Shader._MakeTwoPointConicalGradient(ia,g,r,X.Zd,X.colorType,q,X.count,G,L,K,V);v(X.Zd,w);A&&v(q,A);return c};a.Vertices.prototype.bounds=function(c){this._bounds(ia);var g=ua.toTypedArray();return c?(c.set(g),c):g.slice()};a.Pd&&a.Pd.forEach(function(c){c()})};a.computeTonalColors=
function(d){var c=x(d.ambient,"HEAPF32"),g=x(d.spot,"HEAPF32");this._computeTonalColors(c,g);var l={ambient:fa(c),spot:fa(g)};v(c,d.ambient);v(g,d.spot);return l};a.LTRBRect=function(d,c,g,l){return Float32Array.of(d,c,g,l)};a.XYWHRect=function(d,c,g,l){return Float32Array.of(d,c,d+g,c+l)};a.LTRBiRect=function(d,c,g,l){return Int32Array.of(d,c,g,l)};a.XYWHiRect=function(d,c,g,l){return Int32Array.of(d,c,d+g,c+l)};a.RRectXY=function(d,c,g){return Float32Array.of(d[0],d[1],d[2],d[3],c,g,c,g,c,g,c,g)};
a.MakeAnimatedImageFromEncoded=function(d){d=new Uint8Array(d);var c=a._malloc(d.byteLength);a.HEAPU8.set(d,c);return(d=a._decodeAnimatedImage(c,d.byteLength))?d:null};a.MakeImageFromEncoded=function(d){d=new Uint8Array(d);var c=a._malloc(d.byteLength);a.HEAPU8.set(d,c);return(d=a._decodeImage(c,d.byteLength))?d:null};var pb=null;a.MakeImageFromCanvasImageSource=function(d){var c=a.Ne(d),g=a.Me(d);pb||=document.createElement("canvas");pb.width=c;pb.height=g;var l=pb.getContext("2d",{willReadFrequently:!0});
l.drawImage(d,0,0);d=l.getImageData(0,0,c,g);return a.MakeImage({width:c,height:g,alphaType:a.AlphaType.Unpremul,colorType:a.ColorType.RGBA_8888,colorSpace:a.ColorSpace.SRGB},d.data,4*c)};a.MakeImage=function(d,c,g){var l=a._malloc(c.length);a.HEAPU8.set(c,l);return a._MakeImage(d,l,c.length,g)};a.MakeVertices=function(d,c,g,l,r,w){var A=r&&r.length||0,G=0;g&&g.length&&(G|=1);l&&l.length&&(G|=2);void 0===w||w||(G|=4);d=new a._VerticesBuilder(d,c.length/2,A,G);x(c,"HEAPF32",d.positions());d.texCoords()&&
x(g,"HEAPF32",d.texCoords());d.colors()&&x(m(l),"HEAPU32",d.colors());d.indices()&&x(r,"HEAPU16",d.indices());return d.detach()};a.Matrix={};a.Matrix.identity=function(){return e(3)};a.Matrix.invert=function(d){var c=d[0]*d[4]*d[8]+d[1]*d[5]*d[6]+d[2]*d[3]*d[7]-d[2]*d[4]*d[6]-d[1]*d[3]*d[8]-d[0]*d[5]*d[7];return c?[(d[4]*d[8]-d[5]*d[7])/c,(d[2]*d[7]-d[1]*d[8])/c,(d[1]*d[5]-d[2]*d[4])/c,(d[5]*d[6]-d[3]*d[8])/c,(d[0]*d[8]-d[2]*d[6])/c,(d[2]*d[3]-d[0]*d[5])/c,(d[3]*d[7]-d[4]*d[6])/c,(d[1]*d[6]-d[0]*
d[7])/c,(d[0]*d[4]-d[1]*d[3])/c]:null};a.Matrix.mapPoints=function(d,c){for(var g=0;g<c.length;g+=2){var l=c[g],r=c[g+1],w=d[6]*l+d[7]*r+d[8],A=d[3]*l+d[4]*r+d[5];c[g]=(d[0]*l+d[1]*r+d[2])/w;c[g+1]=A/w}return c};a.Matrix.multiply=function(){return $a(3,arguments)};a.Matrix.rotated=function(d,c,g){c=c||0;g=g||0;var l=Math.sin(d);d=Math.cos(d);return[d,-l,ma(l,g,1-d,c),l,d,ma(-l,c,1-d,g),0,0,1]};a.Matrix.scaled=function(d,c,g,l){g=g||0;l=l||0;var r=b([d,c],e(3),3,0,1);return b([g-d*g,l-c*l],r,3,2,0)};
a.Matrix.skewed=function(d,c,g,l){g=g||0;l=l||0;var r=b([d,c],e(3),3,1,-1);return b([-d*g,-c*l],r,3,2,0)};a.Matrix.translated=function(d,c){return b(arguments,e(3),3,2,0)};a.Vector={};a.Vector.dot=function(d,c){return d.map(function(g,l){return g*c[l]}).reduce(function(g,l){return g+l})};a.Vector.lengthSquared=function(d){return a.Vector.dot(d,d)};a.Vector.length=function(d){return Math.sqrt(a.Vector.lengthSquared(d))};a.Vector.mulScalar=function(d,c){return d.map(function(g){return g*c})};a.Vector.add=
function(d,c){return d.map(function(g,l){return g+c[l]})};a.Vector.sub=function(d,c){return d.map(function(g,l){return g-c[l]})};a.Vector.dist=function(d,c){return a.Vector.length(a.Vector.sub(d,c))};a.Vector.normalize=function(d){return a.Vector.mulScalar(d,1/a.Vector.length(d))};a.Vector.cross=function(d,c){return[d[1]*c[2]-d[2]*c[1],d[2]*c[0]-d[0]*c[2],d[0]*c[1]-d[1]*c[0]]};a.M44={};a.M44.identity=function(){return e(4)};a.M44.translated=function(d){return b(d,e(4),4,3,0)};a.M44.scaled=function(d){return b(d,
e(4),4,0,1)};a.M44.rotated=function(d,c){return a.M44.rotatedUnitSinCos(a.Vector.normalize(d),Math.sin(c),Math.cos(c))};a.M44.rotatedUnitSinCos=function(d,c,g){var l=d[0],r=d[1];d=d[2];var w=1-g;return[w*l*l+g,w*l*r-c*d,w*l*d+c*r,0,w*l*r+c*d,w*r*r+g,w*r*d-c*l,0,w*l*d-c*r,w*r*d+c*l,w*d*d+g,0,0,0,0,1]};a.M44.lookat=function(d,c,g){c=a.Vector.normalize(a.Vector.sub(c,d));g=a.Vector.normalize(g);g=a.Vector.normalize(a.Vector.cross(c,g));var l=a.M44.identity();b(g,l,4,0,0);b(a.Vector.cross(g,c),l,4,1,
0);b(a.Vector.mulScalar(c,-1),l,4,2,0);b(d,l,4,3,0);d=a.M44.invert(l);return null===d?a.M44.identity():d};a.M44.perspective=function(d,c,g){var l=1/(c-d);g/=2;g=Math.cos(g)/Math.sin(g);return[g,0,0,0,0,g,0,0,0,0,(c+d)*l,2*c*d*l,0,0,-1,1]};a.M44.rc=function(d,c,g){return d[4*c+g]};a.M44.multiply=function(){return $a(4,arguments)};a.M44.invert=function(d){var c=d[0],g=d[4],l=d[8],r=d[12],w=d[1],A=d[5],G=d[9],K=d[13],L=d[2],V=d[6],X=d[10],q=d[14],C=d[3],P=d[7],aa=d[11];d=d[15];var ja=c*A-g*w,va=c*G-
l*w,wa=c*K-r*w,la=g*G-l*A,D=g*K-r*A,k=l*K-r*G,p=L*P-V*C,y=L*aa-X*C,z=L*d-q*C,B=V*aa-X*P,E=V*d-q*P,J=X*d-q*aa,ba=ja*J-va*E+wa*B+la*z-D*y+k*p,ca=1/ba;if(0===ba||Infinity===ca)return null;ja*=ca;va*=ca;wa*=ca;la*=ca;D*=ca;k*=ca;p*=ca;y*=ca;z*=ca;B*=ca;E*=ca;J*=ca;c=[A*J-G*E+K*B,G*z-w*J-K*y,w*E-A*z+K*p,A*y-w*B-G*p,l*E-g*J-r*B,c*J-l*z+r*y,g*z-c*E-r*p,c*B-g*y+l*p,P*k-aa*D+d*la,aa*wa-C*k-d*va,C*D-P*wa+d*ja,P*va-C*la-aa*ja,X*D-V*k-q*la,L*k-X*wa+q*va,V*wa-L*D-q*ja,L*la-V*va+X*ja];return c.every(function(Ha){return!isNaN(Ha)&&
Infinity!==Ha&&-Infinity!==Ha})?c:null};a.M44.transpose=function(d){return[d[0],d[4],d[8],d[12],d[1],d[5],d[9],d[13],d[2],d[6],d[10],d[14],d[3],d[7],d[11],d[15]]};a.M44.mustInvert=function(d){d=a.M44.invert(d);if(null===d)throw"Matrix not invertible";return d};a.M44.setupCamera=function(d,c,g){var l=a.M44.lookat(g.eye,g.coa,g.up);g=a.M44.perspective(g.near,g.far,g.angle);c=[(d[2]-d[0])/2,(d[3]-d[1])/2,c];d=a.M44.multiply(a.M44.translated([(d[0]+d[2])/2,(d[1]+d[3])/2,0]),a.M44.scaled(c));return a.M44.multiply(d,
g,l,a.M44.mustInvert(d))};a.ColorMatrix={};a.ColorMatrix.identity=function(){var d=new Float32Array(20);d[0]=1;d[6]=1;d[12]=1;d[18]=1;return d};a.ColorMatrix.scaled=function(d,c,g,l){var r=new Float32Array(20);r[0]=d;r[6]=c;r[12]=g;r[18]=l;return r};var kd=[[6,7,11,12],[0,10,2,12],[0,1,5,6]];a.ColorMatrix.rotated=function(d,c,g){var l=a.ColorMatrix.identity();d=kd[d];l[d[0]]=g;l[d[1]]=c;l[d[2]]=-c;l[d[3]]=g;return l};a.ColorMatrix.postTranslate=function(d,c,g,l,r){d[4]+=c;d[9]+=g;d[14]+=l;d[19]+=
r;return d};a.ColorMatrix.concat=function(d,c){for(var g=new Float32Array(20),l=0,r=0;20>r;r+=5){for(var w=0;4>w;w++)g[l++]=d[r]*c[w]+d[r+1]*c[w+5]+d[r+2]*c[w+10]+d[r+3]*c[w+15];g[l++]=d[r]*c[4]+d[r+1]*c[9]+d[r+2]*c[14]+d[r+3]*c[19]+d[r+4]}return g};(function(d){d.Pd=d.Pd||[];d.Pd.push(function(){function c(q){q&&(q.dir=0===q.dir?d.TextDirection.RTL:d.TextDirection.LTR);return q}function g(q){if(!q||!q.length)return[];for(var C=[],P=0;P<q.length;P+=5){var aa=d.LTRBRect(q[P],q[P+1],q[P+2],q[P+3]),
ja=d.TextDirection.LTR;0===q[P+4]&&(ja=d.TextDirection.RTL);C.push({rect:aa,dir:ja})}d._free(q.byteOffset);return C}function l(q){q=q||{};void 0===q.weight&&(q.weight=d.FontWeight.Normal);q.width=q.width||d.FontWidth.Normal;q.slant=q.slant||d.FontSlant.Upright;return q}function r(q){if(!q||!q.length)return Q;for(var C=[],P=0;P<q.length;P++){var aa=w(q[P]);C.push(aa)}return x(C,"HEAPU32")}function w(q){if(K[q])return K[q];var C=Aa(q)+1,P=d._malloc(C);Ba(q,P,C);return K[q]=P}function A(q){q._colorPtr=
Z(q.color);q._foregroundColorPtr=Q;q._backgroundColorPtr=Q;q._decorationColorPtr=Q;q.foregroundColor&&(q._foregroundColorPtr=Z(q.foregroundColor,L));q.backgroundColor&&(q._backgroundColorPtr=Z(q.backgroundColor,V));q.decorationColor&&(q._decorationColorPtr=Z(q.decorationColor,X));Array.isArray(q.fontFamilies)&&q.fontFamilies.length?(q._fontFamiliesPtr=r(q.fontFamilies),q._fontFamiliesLen=q.fontFamilies.length):(q._fontFamiliesPtr=Q,q._fontFamiliesLen=0);if(q.locale){var C=q.locale;q._localePtr=w(C);
q._localeLen=Aa(C)}else q._localePtr=Q,q._localeLen=0;if(Array.isArray(q.shadows)&&q.shadows.length){C=q.shadows;var P=C.map(function(D){return D.color||d.BLACK}),aa=C.map(function(D){return D.blurRadius||0});q._shadowLen=C.length;for(var ja=d._malloc(8*C.length),va=ja/4,wa=0;wa<C.length;wa++){var la=C[wa].offset||[0,0];d.HEAPF32[va]=la[0];d.HEAPF32[va+1]=la[1];va+=2}q._shadowColorsPtr=F(P).Zd;q._shadowOffsetsPtr=ja;q._shadowBlurRadiiPtr=x(aa,"HEAPF32")}else q._shadowLen=0,q._shadowColorsPtr=Q,q._shadowOffsetsPtr=
Q,q._shadowBlurRadiiPtr=Q;Array.isArray(q.fontFeatures)&&q.fontFeatures.length?(C=q.fontFeatures,P=C.map(function(D){return D.name}),aa=C.map(function(D){return D.value}),q._fontFeatureLen=C.length,q._fontFeatureNamesPtr=r(P),q._fontFeatureValuesPtr=x(aa,"HEAPU32")):(q._fontFeatureLen=0,q._fontFeatureNamesPtr=Q,q._fontFeatureValuesPtr=Q);Array.isArray(q.fontVariations)&&q.fontVariations.length?(C=q.fontVariations,P=C.map(function(D){return D.axis}),aa=C.map(function(D){return D.value}),q._fontVariationLen=
C.length,q._fontVariationAxesPtr=r(P),q._fontVariationValuesPtr=x(aa,"HEAPF32")):(q._fontVariationLen=0,q._fontVariationAxesPtr=Q,q._fontVariationValuesPtr=Q)}function G(q){d._free(q._fontFamiliesPtr);d._free(q._shadowColorsPtr);d._free(q._shadowOffsetsPtr);d._free(q._shadowBlurRadiiPtr);d._free(q._fontFeatureNamesPtr);d._free(q._fontFeatureValuesPtr);d._free(q._fontVariationAxesPtr);d._free(q._fontVariationValuesPtr)}d.Paragraph.prototype.getRectsForRange=function(q,C,P,aa){q=this._getRectsForRange(q,
C,P,aa);return g(q)};d.Paragraph.prototype.getRectsForPlaceholders=function(){var q=this._getRectsForPlaceholders();return g(q)};d.Paragraph.prototype.getGlyphInfoAt=function(q){return c(this._getGlyphInfoAt(q))};d.Paragraph.prototype.getClosestGlyphInfoAtCoordinate=function(q,C){return c(this._getClosestGlyphInfoAtCoordinate(q,C))};d.TypefaceFontProvider.prototype.registerFont=function(q,C){q=d.Typeface.MakeTypefaceFromData(q);if(!q)return null;C=w(C);this._registerFont(q,C);q.delete()};d.ParagraphStyle=
function(q){q.disableHinting=q.disableHinting||!1;if(q.ellipsis){var C=q.ellipsis;q._ellipsisPtr=w(C);q._ellipsisLen=Aa(C)}else q._ellipsisPtr=Q,q._ellipsisLen=0;null==q.heightMultiplier&&(q.heightMultiplier=-1);q.maxLines=q.maxLines||0;q.replaceTabCharacters=q.replaceTabCharacters||!1;C=(C=q.strutStyle)||{};C.strutEnabled=C.strutEnabled||!1;C.strutEnabled&&Array.isArray(C.fontFamilies)&&C.fontFamilies.length?(C._fontFamiliesPtr=r(C.fontFamilies),C._fontFamiliesLen=C.fontFamilies.length):(C._fontFamiliesPtr=
Q,C._fontFamiliesLen=0);C.fontStyle=l(C.fontStyle);null==C.fontSize&&(C.fontSize=-1);null==C.heightMultiplier&&(C.heightMultiplier=-1);C.halfLeading=C.halfLeading||!1;C.leading=C.leading||0;C.forceStrutHeight=C.forceStrutHeight||!1;q.strutStyle=C;q.textAlign=q.textAlign||d.TextAlign.Start;q.textDirection=q.textDirection||d.TextDirection.LTR;q.textHeightBehavior=q.textHeightBehavior||d.TextHeightBehavior.All;q.textStyle=d.TextStyle(q.textStyle);q.applyRoundingHack=!1!==q.applyRoundingHack;return q};
d.TextStyle=function(q){q.color||(q.color=d.BLACK);q.decoration=q.decoration||0;q.decorationThickness=q.decorationThickness||0;q.decorationStyle=q.decorationStyle||d.DecorationStyle.Solid;q.textBaseline=q.textBaseline||d.TextBaseline.Alphabetic;null==q.fontSize&&(q.fontSize=-1);q.letterSpacing=q.letterSpacing||0;q.wordSpacing=q.wordSpacing||0;null==q.heightMultiplier&&(q.heightMultiplier=-1);q.halfLeading=q.halfLeading||!1;q.fontStyle=l(q.fontStyle);return q};var K={},L=d._malloc(16),V=d._malloc(16),
X=d._malloc(16);d.ParagraphBuilder.Make=function(q,C){A(q.textStyle);C=d.ParagraphBuilder._Make(q,C);G(q.textStyle);return C};d.ParagraphBuilder.MakeFromFontProvider=function(q,C){A(q.textStyle);C=d.ParagraphBuilder._MakeFromFontProvider(q,C);G(q.textStyle);return C};d.ParagraphBuilder.MakeFromFontCollection=function(q,C){A(q.textStyle);C=d.ParagraphBuilder._MakeFromFontCollection(q,C);G(q.textStyle);return C};d.ParagraphBuilder.ShapeText=function(q,C,P){let aa=0;for(const ja of C)aa+=ja.length;if(aa!==
q.length)throw"Accumulated block lengths must equal text.length";return d.ParagraphBuilder._ShapeText(q,C,P)};d.ParagraphBuilder.prototype.pushStyle=function(q){A(q);this._pushStyle(q);G(q)};d.ParagraphBuilder.prototype.pushPaintStyle=function(q,C,P){A(q);this._pushPaintStyle(q,C,P);G(q)};d.ParagraphBuilder.prototype.addPlaceholder=function(q,C,P,aa,ja){P=P||d.PlaceholderAlignment.Baseline;aa=aa||d.TextBaseline.Alphabetic;this._addPlaceholder(q||0,C||0,P,aa,ja||0)};d.ParagraphBuilder.prototype.setWordsUtf8=
function(q){var C=x(q,"HEAPU32");this._setWordsUtf8(C,q&&q.length||0);v(C,q)};d.ParagraphBuilder.prototype.setWordsUtf16=function(q){var C=x(q,"HEAPU32");this._setWordsUtf16(C,q&&q.length||0);v(C,q)};d.ParagraphBuilder.prototype.setGraphemeBreaksUtf8=function(q){var C=x(q,"HEAPU32");this._setGraphemeBreaksUtf8(C,q&&q.length||0);v(C,q)};d.ParagraphBuilder.prototype.setGraphemeBreaksUtf16=function(q){var C=x(q,"HEAPU32");this._setGraphemeBreaksUtf16(C,q&&q.length||0);v(C,q)};d.ParagraphBuilder.prototype.setLineBreaksUtf8=
function(q){var C=x(q,"HEAPU32");this._setLineBreaksUtf8(C,q&&q.length||0);v(C,q)};d.ParagraphBuilder.prototype.setLineBreaksUtf16=function(q){var C=x(q,"HEAPU32");this._setLineBreaksUtf16(C,q&&q.length||0);v(C,q)}})})(u);a.Pd=a.Pd||[];a.Pd.push(function(){});a.Pd=a.Pd||[];a.Pd.push(function(){a.Canvas.prototype.drawText=function(d,c,g,l,r){var w=Aa(d),A=a._malloc(w+1);Ba(d,A,w+1);this._drawSimpleText(A,w,c,g,r,l);a._free(A)};a.Canvas.prototype.drawGlyphs=function(d,c,g,l,r,w){if(!(2*d.length<=c.length))throw"Not enough positions for the array of gyphs";
a.Id(this.Gd);const A=x(d,"HEAPU16"),G=x(c,"HEAPF32");this._drawGlyphs(d.length,A,G,g,l,r,w);v(G,c);v(A,d)};a.Font.prototype.getGlyphBounds=function(d,c,g){var l=x(d,"HEAPU16"),r=a._malloc(16*d.length);this._getGlyphWidthBounds(l,d.length,Q,r,c||null);c=new Float32Array(a.HEAPU8.buffer,r,4*d.length);v(l,d);if(g)return g.set(c),a._free(r),g;d=Float32Array.from(c);a._free(r);return d};a.Font.prototype.getGlyphIDs=function(d,c,g){c||(c=d.length);var l=Aa(d)+1,r=a._malloc(l);Ba(d,r,l);d=a._malloc(2*c);
c=this._getGlyphIDs(r,l-1,c,d);a._free(r);if(0>c)return a._free(d),null;r=new Uint16Array(a.HEAPU8.buffer,d,c);if(g)return g.set(r),a._free(d),g;g=Uint16Array.from(r);a._free(d);return g};a.Font.prototype.getGlyphIntercepts=function(d,c,g,l){var r=x(d,"HEAPU16"),w=x(c,"HEAPF32");return this._getGlyphIntercepts(r,d.length,!(d&&d._ck),w,c.length,!(c&&c._ck),g,l)};a.Font.prototype.getGlyphWidths=function(d,c,g){var l=x(d,"HEAPU16"),r=a._malloc(4*d.length);this._getGlyphWidthBounds(l,d.length,r,Q,c||
null);c=new Float32Array(a.HEAPU8.buffer,r,d.length);v(l,d);if(g)return g.set(c),a._free(r),g;d=Float32Array.from(c);a._free(r);return d};a.FontMgr.FromData=function(){if(!arguments.length)return null;var d=arguments;1===d.length&&Array.isArray(d[0])&&(d=arguments[0]);if(!d.length)return null;for(var c=[],g=[],l=0;l<d.length;l++){var r=new Uint8Array(d[l]),w=x(r,"HEAPU8");c.push(w);g.push(r.byteLength)}c=x(c,"HEAPU32");g=x(g,"HEAPU32");d=a.FontMgr._fromData(c,g,d.length);a._free(c);a._free(g);return d};
a.Typeface.MakeTypefaceFromData=function(d){d=new Uint8Array(d);var c=x(d,"HEAPU8");return(d=a.Typeface._MakeTypefaceFromData(c,d.byteLength))?d:null};a.Typeface.MakeFreeTypeFaceFromData=a.Typeface.MakeTypefaceFromData;a.Typeface.prototype.getGlyphIDs=function(d,c,g){c||(c=d.length);var l=Aa(d)+1,r=a._malloc(l);Ba(d,r,l);d=a._malloc(2*c);c=this._getGlyphIDs(r,l-1,c,d);a._free(r);if(0>c)return a._free(d),null;r=new Uint16Array(a.HEAPU8.buffer,d,c);if(g)return g.set(r),a._free(d),g;g=Uint16Array.from(r);
a._free(d);return g};a.TextBlob.MakeOnPath=function(d,c,g,l){if(d&&d.length&&c&&c.countPoints()){if(1===c.countPoints())return this.MakeFromText(d,g);l||=0;var r=g.getGlyphIDs(d);r=g.getGlyphWidths(r);var w=[];c=new a.ContourMeasureIter(c,!1,1);for(var A=c.next(),G=new Float32Array(4),K=0;K<d.length&&A;K++){var L=r[K];l+=L/2;if(l>A.length()){A.delete();A=c.next();if(!A){d=d.substring(0,K);break}l=L/2}A.getPosTan(l,G);var V=G[2],X=G[3];w.push(V,X,G[0]-L/2*V,G[1]-L/2*X);l+=L/2}d=this.MakeFromRSXform(d,
w,g);A&&A.delete();c.delete();return d}};a.TextBlob.MakeFromRSXform=function(d,c,g){var l=Aa(d)+1,r=a._malloc(l);Ba(d,r,l);d=x(c,"HEAPF32");g=a.TextBlob._MakeFromRSXform(r,l-1,d,g);a._free(r);return g?g:null};a.TextBlob.MakeFromRSXformGlyphs=function(d,c,g){var l=x(d,"HEAPU16");c=x(c,"HEAPF32");g=a.TextBlob._MakeFromRSXformGlyphs(l,2*d.length,c,g);v(l,d);return g?g:null};a.TextBlob.MakeFromGlyphs=function(d,c){var g=x(d,"HEAPU16");c=a.TextBlob._MakeFromGlyphs(g,2*d.length,c);v(g,d);return c?c:null};
a.TextBlob.MakeFromText=function(d,c){var g=Aa(d)+1,l=a._malloc(g);Ba(d,l,g);d=a.TextBlob._MakeFromText(l,g-1,c);a._free(l);return d?d:null};a.MallocGlyphIDs=function(d){return a.Malloc(Uint16Array,d)}});a.Pd=a.Pd||[];a.Pd.push(function(){a.MakePicture=function(d){d=new Uint8Array(d);var c=a._malloc(d.byteLength);a.HEAPU8.set(d,c);return(d=a._MakePicture(c,d.byteLength))?d:null}});a.Pd=a.Pd||[];a.Pd.push(function(){a.RuntimeEffect.Make=function(d,c){return a.RuntimeEffect._Make(d,{onError:c||function(g){console.log("RuntimeEffect error",
g)}})};a.RuntimeEffect.MakeForBlender=function(d,c){return a.RuntimeEffect._MakeForBlender(d,{onError:c||function(g){console.log("RuntimeEffect error",g)}})};a.RuntimeEffect.prototype.makeShader=function(d,c){var g=!d._ck,l=x(d,"HEAPF32");c=I(c);return this._makeShader(l,4*d.length,g,c)};a.RuntimeEffect.prototype.makeShaderWithChildren=function(d,c,g){var l=!d._ck,r=x(d,"HEAPF32");g=I(g);for(var w=[],A=0;A<c.length;A++)w.push(c[A].Fd.Md);c=x(w,"HEAPU32");return this._makeShaderWithChildren(r,4*d.length,
l,c,w.length,g)};a.RuntimeEffect.prototype.makeBlender=function(d){var c=!d._ck,g=x(d,"HEAPF32");return this._makeBlender(g,4*d.length,c)}});(function(){function d(D){for(var k=0;k<D.length;k++)if(void 0!==D[k]&&!Number.isFinite(D[k]))return!1;return!0}function c(D){var k=a.getColorComponents(D);D=k[0];var p=k[1],y=k[2];k=k[3];if(1===k)return D=D.toString(16).toLowerCase(),p=p.toString(16).toLowerCase(),y=y.toString(16).toLowerCase(),D=1===D.length?"0"+D:D,p=1===p.length?"0"+p:p,y=1===y.length?"0"+
y:y,"#"+D+p+y;k=0===k||1===k?k:k.toFixed(8);return"rgba("+D+", "+p+", "+y+", "+k+")"}function g(D){return a.parseColorString(D,va)}function l(D){D=wa.exec(D);if(!D)return null;var k=parseFloat(D[4]),p=16;switch(D[5]){case "em":case "rem":p=16*k;break;case "pt":p=4*k/3;break;case "px":p=k;break;case "pc":p=16*k;break;case "in":p=96*k;break;case "cm":p=96*k/2.54;break;case "mm":p=96/25.4*k;break;case "q":p=96/25.4/4*k;break;case "%":p=16/75*k}return{style:D[1],variant:D[2],weight:D[3],sizePx:p,family:D[6].trim()}}
function r(){la||={"Noto Mono":{"*":a.Typeface.GetDefault()},monospace:{"*":a.Typeface.GetDefault()}}}function w(D){this.Hd=D;this.Kd=new a.Paint;this.Kd.setAntiAlias(!0);this.Kd.setStrokeMiter(10);this.Kd.setStrokeCap(a.StrokeCap.Butt);this.Kd.setStrokeJoin(a.StrokeJoin.Miter);this.Le="10px monospace";this.je=new a.Font(a.Typeface.GetDefault(),10);this.je.setSubpixel(!0);this.Xd=this.de=a.BLACK;this.re=0;this.Ce=a.TRANSPARENT;this.te=this.se=0;this.De=this.he=1;this.Be=0;this.qe=[];this.Jd=a.BlendMode.SrcOver;
this.Kd.setStrokeWidth(this.De);this.Kd.setBlendMode(this.Jd);this.Nd=new a.PathBuilder;this.Od=a.Matrix.identity();this.df=[];this.xe=[];this.ie=function(){this.Nd.delete();this.Kd.delete();this.je.delete();this.xe.forEach(function(k){k.ie()})};Object.defineProperty(this,"currentTransform",{enumerable:!0,get:function(){return{a:this.Od[0],c:this.Od[1],e:this.Od[2],b:this.Od[3],d:this.Od[4],f:this.Od[5]}},set:function(k){k.a&&this.setTransform(k.a,k.b,k.c,k.d,k.e,k.f)}});Object.defineProperty(this,
"fillStyle",{enumerable:!0,get:function(){return f(this.Xd)?c(this.Xd):this.Xd},set:function(k){"string"===typeof k?this.Xd=g(k):k.pe&&(this.Xd=k)}});Object.defineProperty(this,"font",{enumerable:!0,get:function(){return this.Le},set:function(k){var p=l(k);var y=(p.style||"normal")+"|"+(p.variant||"normal")+"|"+(p.weight||"normal");var z=p.family;r();y=la[z]?la[z][y]||la[z]["*"]:a.Typeface.GetDefault();p.typeface=y;p&&(this.je.setSize(p.sizePx),this.je.setTypeface(p.typeface),this.Le=k)}});Object.defineProperty(this,
"globalAlpha",{enumerable:!0,get:function(){return this.he},set:function(k){!isFinite(k)||0>k||1<k||(this.he=k)}});Object.defineProperty(this,"globalCompositeOperation",{enumerable:!0,get:function(){switch(this.Jd){case a.BlendMode.SrcOver:return"source-over";case a.BlendMode.DstOver:return"destination-over";case a.BlendMode.Src:return"copy";case a.BlendMode.Dst:return"destination";case a.BlendMode.Clear:return"clear";case a.BlendMode.SrcIn:return"source-in";case a.BlendMode.DstIn:return"destination-in";
case a.BlendMode.SrcOut:return"source-out";case a.BlendMode.DstOut:return"destination-out";case a.BlendMode.SrcATop:return"source-atop";case a.BlendMode.DstATop:return"destination-atop";case a.BlendMode.Xor:return"xor";case a.BlendMode.Plus:return"lighter";case a.BlendMode.Multiply:return"multiply";case a.BlendMode.Screen:return"screen";case a.BlendMode.Overlay:return"overlay";case a.BlendMode.Darken:return"darken";case a.BlendMode.Lighten:return"lighten";case a.BlendMode.ColorDodge:return"color-dodge";
case a.BlendMode.ColorBurn:return"color-burn";case a.BlendMode.HardLight:return"hard-light";case a.BlendMode.SoftLight:return"soft-light";case a.BlendMode.Difference:return"difference";case a.BlendMode.Exclusion:return"exclusion";case a.BlendMode.Hue:return"hue";case a.BlendMode.Saturation:return"saturation";case a.BlendMode.Color:return"color";case a.BlendMode.Luminosity:return"luminosity"}},set:function(k){switch(k){case "source-over":this.Jd=a.BlendMode.SrcOver;break;case "destination-over":this.Jd=
a.BlendMode.DstOver;break;case "copy":this.Jd=a.BlendMode.Src;break;case "destination":this.Jd=a.BlendMode.Dst;break;case "clear":this.Jd=a.BlendMode.Clear;break;case "source-in":this.Jd=a.BlendMode.SrcIn;break;case "destination-in":this.Jd=a.BlendMode.DstIn;break;case "source-out":this.Jd=a.BlendMode.SrcOut;break;case "destination-out":this.Jd=a.BlendMode.DstOut;break;case "source-atop":this.Jd=a.BlendMode.SrcATop;break;case "destination-atop":this.Jd=a.BlendMode.DstATop;break;case "xor":this.Jd=
a.BlendMode.Xor;break;case "lighter":this.Jd=a.BlendMode.Plus;break;case "plus-lighter":this.Jd=a.BlendMode.Plus;break;case "plus-darker":throw"plus-darker is not supported";case "multiply":this.Jd=a.BlendMode.Multiply;break;case "screen":this.Jd=a.BlendMode.Screen;break;case "overlay":this.Jd=a.BlendMode.Overlay;break;case "darken":this.Jd=a.BlendMode.Darken;break;case "lighten":this.Jd=a.BlendMode.Lighten;break;case "color-dodge":this.Jd=a.BlendMode.ColorDodge;break;case "color-burn":this.Jd=a.BlendMode.ColorBurn;
break;case "hard-light":this.Jd=a.BlendMode.HardLight;break;case "soft-light":this.Jd=a.BlendMode.SoftLight;break;case "difference":this.Jd=a.BlendMode.Difference;break;case "exclusion":this.Jd=a.BlendMode.Exclusion;break;case "hue":this.Jd=a.BlendMode.Hue;break;case "saturation":this.Jd=a.BlendMode.Saturation;break;case "color":this.Jd=a.BlendMode.Color;break;case "luminosity":this.Jd=a.BlendMode.Luminosity;break;default:return}this.Kd.setBlendMode(this.Jd)}});Object.defineProperty(this,"imageSmoothingEnabled",
{enumerable:!0,get:function(){return!0},set:function(){}});Object.defineProperty(this,"imageSmoothingQuality",{enumerable:!0,get:function(){return"high"},set:function(){}});Object.defineProperty(this,"lineCap",{enumerable:!0,get:function(){switch(this.Kd.getStrokeCap()){case a.StrokeCap.Butt:return"butt";case a.StrokeCap.Round:return"round";case a.StrokeCap.Square:return"square"}},set:function(k){switch(k){case "butt":this.Kd.setStrokeCap(a.StrokeCap.Butt);break;case "round":this.Kd.setStrokeCap(a.StrokeCap.Round);
break;case "square":this.Kd.setStrokeCap(a.StrokeCap.Square)}}});Object.defineProperty(this,"lineDashOffset",{enumerable:!0,get:function(){return this.Be},set:function(k){isFinite(k)&&(this.Be=k)}});Object.defineProperty(this,"lineJoin",{enumerable:!0,get:function(){switch(this.Kd.getStrokeJoin()){case a.StrokeJoin.Miter:return"miter";case a.StrokeJoin.Round:return"round";case a.StrokeJoin.Bevel:return"bevel"}},set:function(k){switch(k){case "miter":this.Kd.setStrokeJoin(a.StrokeJoin.Miter);break;
case "round":this.Kd.setStrokeJoin(a.StrokeJoin.Round);break;case "bevel":this.Kd.setStrokeJoin(a.StrokeJoin.Bevel)}}});Object.defineProperty(this,"lineWidth",{enumerable:!0,get:function(){return this.Kd.getStrokeWidth()},set:function(k){0>=k||!k||(this.De=k,this.Kd.setStrokeWidth(k))}});Object.defineProperty(this,"miterLimit",{enumerable:!0,get:function(){return this.Kd.getStrokeMiter()},set:function(k){0>=k||!k||this.Kd.setStrokeMiter(k)}});Object.defineProperty(this,"shadowBlur",{enumerable:!0,
get:function(){return this.re},set:function(k){0>k||!isFinite(k)||(this.re=k)}});Object.defineProperty(this,"shadowColor",{enumerable:!0,get:function(){return c(this.Ce)},set:function(k){this.Ce=g(k)}});Object.defineProperty(this,"shadowOffsetX",{enumerable:!0,get:function(){return this.se},set:function(k){isFinite(k)&&(this.se=k)}});Object.defineProperty(this,"shadowOffsetY",{enumerable:!0,get:function(){return this.te},set:function(k){isFinite(k)&&(this.te=k)}});Object.defineProperty(this,"strokeStyle",
{enumerable:!0,get:function(){return c(this.de)},set:function(k){"string"===typeof k?this.de=g(k):k.pe&&(this.de=k)}});this.arc=function(k,p,y,z,B,E){q(this.Nd,k,p,y,y,0,z,B,E)};this.arcTo=function(k,p,y,z,B){V(this.Nd,k,p,y,z,B)};this.beginPath=function(){this.Nd.delete();this.Nd=new a.PathBuilder};this.bezierCurveTo=function(k,p,y,z,B,E){var J=this.Nd;d([k,p,y,z,B,E])&&(J.isEmpty()&&J.moveTo(k,p),J.cubicTo(k,p,y,z,B,E))};this.clearRect=function(k,p,y,z){this.Kd.setStyle(a.PaintStyle.Fill);this.Kd.setBlendMode(a.BlendMode.Clear);
this.Hd.drawRect(a.XYWHRect(k,p,y,z),this.Kd);this.Kd.setBlendMode(this.Jd)};this.clip=function(k,p){if("string"===typeof k){p=k;var y=this.Nd.snapshot()}else k&&k.ge&&(y=k.ge());y||=this.Nd.snapshot();p&&"evenodd"===p.toLowerCase()?y.setFillType(a.FillType.EvenOdd):y.setFillType(a.FillType.Winding);this.Hd.clipPath(y,a.ClipOp.Intersect,!0);y.delete()};this.closePath=function(){var k=this.Nd;k.isEmpty()||1!=k.countPoints()&&k.close()};this.createImageData=function(){if(1===arguments.length){var k=
arguments[0];return new K(new Uint8ClampedArray(4*k.width*k.height),k.width,k.height)}if(2===arguments.length){k=arguments[0];var p=arguments[1];return new K(new Uint8ClampedArray(4*k*p),k,p)}throw"createImageData expects 1 or 2 arguments, got "+arguments.length;};this.createLinearGradient=function(k,p,y,z){if(d(arguments)){var B=new L(k,p,y,z);this.xe.push(B);return B}};this.createPattern=function(k,p){k=new aa(k,p);this.xe.push(k);return k};this.createRadialGradient=function(k,p,y,z,B,E){if(d(arguments)){var J=
new ja(k,p,y,z,B,E);this.xe.push(J);return J}};this.drawImage=function(k){k instanceof G&&(k=k.jf());var p=this.Ke();if(3===arguments.length||5===arguments.length)var y=a.XYWHRect(arguments[1],arguments[2],arguments[3]||k.width(),arguments[4]||k.height()),z=a.XYWHRect(0,0,k.width(),k.height());else if(9===arguments.length)y=a.XYWHRect(arguments[5],arguments[6],arguments[7],arguments[8]),z=a.XYWHRect(arguments[1],arguments[2],arguments[3],arguments[4]);else throw"invalid number of args for drawImage, need 3, 5, or 9; got "+
arguments.length;this.Hd.drawImageRect(k,z,y,p,!1);p.dispose()};this.ellipse=function(k,p,y,z,B,E,J,ba){q(this.Nd,k,p,y,z,B,E,J,ba)};this.Ke=function(){var k=this.Kd.copy();k.setStyle(a.PaintStyle.Fill);if(f(this.Xd)){var p=a.multiplyByAlpha(this.Xd,this.he);k.setColor(p)}else p=this.Xd.pe(this.Od),k.setColor(a.Color(0,0,0,this.he)),k.setShader(p);k.dispose=function(){this.delete()};return k};this.fill=function(k,p){if("string"===typeof k){p=k;var y=this.Nd.snapshot()}else k&&k.ge&&(y=k.ge());k||
(y=this.Nd.snapshot());if("evenodd"===p)y.setFillType(a.FillType.EvenOdd);else{if("nonzero"!==p&&p)throw"invalid fill rule";y.setFillType(a.FillType.Winding)}k=this.Ke();if(p=this.ue(k))this.Hd.save(),this.ne(),this.Hd.drawPath(y,p),this.Hd.restore(),p.dispose();this.Hd.drawPath(y,k);k.dispose();y.delete()};this.fillRect=function(k,p,y,z){var B=this.Ke(),E=this.ue(B);E&&(this.Hd.save(),this.ne(),this.Hd.drawRect(a.XYWHRect(k,p,y,z),E),this.Hd.restore(),E.dispose());this.Hd.drawRect(a.XYWHRect(k,p,
y,z),B);B.dispose()};this.fillText=function(k,p,y){var z=this.Ke();k=a.TextBlob.MakeFromText(k,this.je);var B=this.ue(z);B&&(this.Hd.save(),this.ne(),this.Hd.drawTextBlob(k,p,y,B),this.Hd.restore(),B.dispose());this.Hd.drawTextBlob(k,p,y,z);k.delete();z.dispose()};this.getImageData=function(k,p,y,z){return(k=this.Hd.readPixels(k,p,{width:y,height:z,colorType:a.ColorType.RGBA_8888,alphaType:a.AlphaType.Unpremul,colorSpace:a.ColorSpace.SRGB}))?new K(new Uint8ClampedArray(k.buffer),y,z):null};this.getLineDash=
function(){return this.qe.slice()};this.ef=function(k){var p=a.Matrix.invert(this.Od);a.Matrix.mapPoints(p,k);return k};this.isPointInPath=function(k,p,y){var z=arguments;if(3===z.length)var B=this.Nd.snapshot();else if(4===z.length)B=z[0].copy(),k=z[1],p=z[2],y=z[3];else throw"invalid arg count, need 3 or 4, got "+z.length;if(!isFinite(k)||!isFinite(p))return B.delete(),!1;y=y||"nonzero";if("nonzero"!==y&&"evenodd"!==y)return B.delete(),!1;z=this.ef([k,p]);k=z[0];p=z[1];B.setFillType("nonzero"===
y?a.FillType.Winding:a.FillType.EvenOdd);z=B.contains(k,p);B.delete();return z};this.isPointInStroke=function(k,p){var y=arguments;if(2===y.length)var z=this.Nd.snapshot();else if(3===y.length)z=y[0].copy(),k=y[1],p=y[2];else throw"invalid arg count, need 2 or 3, got "+y.length;if(!isFinite(k)||!isFinite(p))return z.delete(),!1;y=this.ef([k,p]);k=y[0];p=y[1];z.setFillType(a.FillType.Winding);y=z.makeStroked({width:this.lineWidth,miter_limit:this.miterLimit,cap:this.Kd.getStrokeCap(),join:this.Kd.getStrokeJoin(),
precision:.3});var B=y.contains(k,p);y.delete();z.delete();return B};this.lineTo=function(k,p){C(this.Nd,k,p)};this.measureText=function(k){k=this.je.getGlyphIDs(k);k=this.je.getGlyphWidths(k);let p=0;for(const y of k)p+=y;return{width:p}};this.moveTo=function(k,p){var y=this.Nd;d([k,p])&&y.moveTo(k,p)};this.putImageData=function(k,p,y,z,B,E,J){if(d([p,y,z,B,E,J]))if(void 0===z)this.Hd.writePixels(k.data,k.width,k.height,p,y);else if(z=z||0,B=B||0,E=E||k.width,J=J||k.height,0>E&&(z+=E,E=Math.abs(E)),
0>J&&(B+=J,J=Math.abs(J)),0>z&&(E+=z,z=0),0>B&&(J+=B,B=0),!(0>=E||0>=J)){k=a.MakeImage({width:k.width,height:k.height,alphaType:a.AlphaType.Unpremul,colorType:a.ColorType.RGBA_8888,colorSpace:a.ColorSpace.SRGB},k.data,4*k.width);var ba=a.XYWHRect(z,B,E,J);p=a.XYWHRect(p+z,y+B,E,J);y=a.Matrix.invert(this.Od);this.Hd.save();this.Hd.concat(y);this.Hd.drawImageRect(k,ba,p,null,!1);this.Hd.restore();k.delete()}};this.quadraticCurveTo=function(k,p,y,z){var B=this.Nd;d([k,p,y,z])&&(B.isEmpty()&&B.moveTo(k,
p),B.quadTo(k,p,y,z))};this.rect=function(k,p,y,z){var B=this.Nd;k=a.XYWHRect(k,p,y,z);d(k)&&B.addRect(k)};this.resetTransform=function(){this.Nd.transform(this.Od);var k=a.Matrix.invert(this.Od);this.Hd.concat(k);this.Od=this.Hd.getTotalMatrix()};this.restore=function(){var k=this.df.pop();if(k){var p=a.Matrix.multiply(this.Od,a.Matrix.invert(k.xf));this.Nd.transform(p);this.Kd.delete();this.Kd=k.Nf;this.qe=k.Lf;this.De=k.Zf;this.de=k.Yf;this.Xd=k.fs;this.se=k.Wf;this.te=k.Xf;this.re=k.sb;this.Ce=
k.Vf;this.he=k.ga;this.Jd=k.Df;this.Be=k.Mf;this.Le=k.Cf;this.Hd.restore();this.Od=this.Hd.getTotalMatrix()}};this.rotate=function(k){if(isFinite(k)){var p=a.Matrix.rotated(-k);this.Nd.transform(p);this.Hd.rotate(k/Math.PI*180,0,0);this.Od=this.Hd.getTotalMatrix()}};this.save=function(){if(this.Xd.oe){var k=this.Xd.oe();this.xe.push(k)}else k=this.Xd;if(this.de.oe){var p=this.de.oe();this.xe.push(p)}else p=this.de;this.df.push({xf:this.Od.slice(),Lf:this.qe.slice(),Zf:this.De,Yf:p,fs:k,Wf:this.se,
Xf:this.te,sb:this.re,Vf:this.Ce,ga:this.he,Mf:this.Be,Df:this.Jd,Nf:this.Kd.copy(),Cf:this.Le});this.Hd.save()};this.scale=function(k,p){if(d(arguments)){var y=a.Matrix.scaled(1/k,1/p);this.Nd.transform(y);this.Hd.scale(k,p);this.Od=this.Hd.getTotalMatrix()}};this.setLineDash=function(k){for(var p=0;p<k.length;p++)if(!isFinite(k[p])||0>k[p])return;1===k.length%2&&Array.prototype.push.apply(k,k);this.qe=k};this.setTransform=function(k,p,y,z,B,E){d(arguments)&&(this.resetTransform(),this.transform(k,
p,y,z,B,E))};this.ne=function(){var k=a.Matrix.invert(this.Od);this.Hd.concat(k);this.Hd.concat(a.Matrix.translated(this.se,this.te));this.Hd.concat(this.Od)};this.ue=function(k){var p=a.multiplyByAlpha(this.Ce,this.he);if(!a.getColorComponents(p)[3]||!(this.re||this.te||this.se))return null;k=k.copy();k.setColor(p);var y=a.MaskFilter.MakeBlur(a.BlurStyle.Normal,this.re/2,!1);k.setMaskFilter(y);k.dispose=function(){y.delete();this.delete()};return k};this.We=function(){var k=this.Kd.copy();k.setStyle(a.PaintStyle.Stroke);
if(f(this.de)){var p=a.multiplyByAlpha(this.de,this.he);k.setColor(p)}else p=this.de.pe(this.Od),k.setColor(a.Color(0,0,0,this.he)),k.setShader(p);k.setStrokeWidth(this.De);if(this.qe.length){var y=a.PathEffect.MakeDash(this.qe,this.Be);k.setPathEffect(y)}k.dispose=function(){y&&y.delete();this.delete()};return k};this.stroke=function(k){k=k?k.ge():this.Nd.snapshot();var p=this.We(),y=this.ue(p);y&&(this.Hd.save(),this.ne(),this.Hd.drawPath(k,y),this.Hd.restore(),y.dispose());this.Hd.drawPath(k,p);
k.delete();p.dispose()};this.strokeRect=function(k,p,y,z){var B=this.We(),E=this.ue(B);E&&(this.Hd.save(),this.ne(),this.Hd.drawRect(a.XYWHRect(k,p,y,z),E),this.Hd.restore(),E.dispose());this.Hd.drawRect(a.XYWHRect(k,p,y,z),B);B.dispose()};this.strokeText=function(k,p,y){var z=this.We();k=a.TextBlob.MakeFromText(k,this.je);var B=this.ue(z);B&&(this.Hd.save(),this.ne(),this.Hd.drawTextBlob(k,p,y,B),this.Hd.restore(),B.dispose());this.Hd.drawTextBlob(k,p,y,z);k.delete();z.dispose()};this.translate=
function(k,p){if(d(arguments)){var y=a.Matrix.translated(-k,-p);this.Nd.transform(y);this.Hd.translate(k,p);this.Od=this.Hd.getTotalMatrix()}};this.transform=function(k,p,y,z,B,E){k=[k,y,B,p,z,E,0,0,1];p=a.Matrix.invert(k);this.Nd.transform(p);this.Hd.concat(k);this.Od=this.Hd.getTotalMatrix()};this.addHitRegion=function(){};this.clearHitRegions=function(){};this.drawFocusIfNeeded=function(){};this.removeHitRegion=function(){};this.scrollPathIntoView=function(){};Object.defineProperty(this,"canvas",
{value:null,writable:!1})}function A(D){this.Xe=D;this.Gd=new w(D.getCanvas());this.Oe=[];this.decodeImage=function(k){k=a.MakeImageFromEncoded(k);if(!k)throw"Invalid input";this.Oe.push(k);return new G(k)};this.loadFont=function(k,p){k=a.Typeface.MakeTypefaceFromData(k);if(!k)return null;this.Oe.push(k);var y=(p.style||"normal")+"|"+(p.variant||"normal")+"|"+(p.weight||"normal");p=p.family;r();la[p]||(la[p]={"*":k});la[p][y]=k};this.makePath2D=function(k){k=new P(k);this.Oe.push(k.ge());return k};
this.getContext=function(k){return"2d"===k?this.Gd:null};this.toDataURL=function(k,p){this.Xe.flush();var y=this.Xe.makeImageSnapshot();if(y){k=k||"image/png";var z=a.ImageFormat.PNG;"image/jpeg"===k&&(z=a.ImageFormat.JPEG);if(p=y.encodeToBytes(z,p||.92)){y.delete();k="data:"+k+";base64,";if("undefined"!==typeof Buffer)p=Buffer.from(p).toString("base64");else{y=0;z=p.length;for(var B="",E;y<z;)E=p.slice(y,Math.min(y+32768,z)),B+=String.fromCharCode.apply(null,E),y+=32768;p=btoa(B)}return k+p}}};this.dispose=
function(){this.Gd.ie();this.Oe.forEach(function(k){k.delete()});this.Xe.dispose()}}function G(D){this.width=D.width();this.height=D.height();this.naturalWidth=this.width;this.naturalHeight=this.height;this.jf=function(){return D}}function K(D,k,p){if(!k||0===p)throw new TypeError("invalid dimensions, width and height must be non-zero");if(D.length%4)throw new TypeError("arr must be a multiple of 4");p=p||D.length/(4*k);Object.defineProperty(this,"data",{value:D,writable:!1});Object.defineProperty(this,
"height",{value:p,writable:!1});Object.defineProperty(this,"width",{value:k,writable:!1})}function L(D,k,p,y){this.Td=null;this.be=[];this.Ud=[];this.addColorStop=function(z,B){if(0>z||1<z||!isFinite(z))throw"offset must be between 0 and 1 inclusively";B=g(B);var E=this.Ud.indexOf(z);if(-1!==E)this.be[E]=B;else{for(E=0;E<this.Ud.length&&!(this.Ud[E]>z);E++);this.Ud.splice(E,0,z);this.be.splice(E,0,B)}};this.oe=function(){var z=new L(D,k,p,y);z.be=this.be.slice();z.Ud=this.Ud.slice();return z};this.ie=
function(){this.Td&&(this.Td.delete(),this.Td=null)};this.pe=function(z){var B=[D,k,p,y];a.Matrix.mapPoints(z,B);z=B[0];var E=B[1],J=B[2];B=B[3];this.ie();return this.Td=a.Shader.MakeLinearGradient([z,E],[J,B],this.be,this.Ud,a.TileMode.Clamp)}}function V(D,k,p,y,z,B){if(d([k,p,y,z,B])){if(0>B)throw"radii cannot be negative";D.isEmpty()&&D.moveTo(k,p);D.arcToTangent(k,p,y,z,B)}}function X(D,k,p,y,z,B,E){E=(E-B)/Math.PI*180;B=B/Math.PI*180;k=a.LTRBRect(k-y,p-z,k+y,p+z);1E-5>Math.abs(Math.abs(E)-360)?
(p=E/2,D.arcToOval(k,B,p,!1),D.arcToOval(k,B+p,p,!1)):D.arcToOval(k,B,E,!1)}function q(D,k,p,y,z,B,E,J,ba){if(d([k,p,y,z,B,E,J])){if(0>y||0>z)throw"radii cannot be negative";var ca=2*Math.PI,Ha=E%ca;0>Ha&&(Ha+=ca);var ab=Ha-E;E=Ha;J+=ab;!ba&&J-E>=ca?J=E+ca:ba&&E-J>=ca?J=E-ca:!ba&&E>J?J=E+(ca-(E-J)%ca):ba&&E<J&&(J=E-(ca-(J-E)%ca));B?(ba=a.Matrix.rotated(B,k,p),B=a.Matrix.rotated(-B,k,p),D.transform(B),X(D,k,p,y,z,E,J),D.transform(ba)):X(D,k,p,y,z,E,J)}}function C(D,k,p){d([k,p])&&(D.isEmpty()&&D.moveTo(k,
p),D.lineTo(k,p))}function P(D){this.Vd=new a.PathBuilder;"string"===typeof D?(D=a.Path.MakeFromSVGString(D),this.Vd.addPath(D),D.delete()):D&&D.ge&&(D=D.ge(),this.Vd.addPath(D),D.delete());this.ge=function(){return this.Vd.snapshot()};this.addPath=function(k,p){p||={a:1,c:0,e:0,b:0,d:1,f:0};k=k.ge();this.Vd.addPath(k,[p.a,p.c,p.e,p.b,p.d,p.f]);k.delete()};this.arc=function(k,p,y,z,B,E){q(this.Vd,k,p,y,y,0,z,B,E)};this.arcTo=function(k,p,y,z,B){V(this.Vd,k,p,y,z,B)};this.bezierCurveTo=function(k,
p,y,z,B,E){var J=this.Vd;d([k,p,y,z,B,E])&&(J.isEmpty()&&J.moveTo(k,p),J.cubicTo(k,p,y,z,B,E))};this.closePath=function(){var k=this.Vd;k.isEmpty()||1!=k.countPoints()&&k.close()};this.ellipse=function(k,p,y,z,B,E,J,ba){q(this.Vd,k,p,y,z,B,E,J,ba)};this.lineTo=function(k,p){C(this.Vd,k,p)};this.moveTo=function(k,p){var y=this.Vd;d([k,p])&&y.moveTo(k,p)};this.quadraticCurveTo=function(k,p,y,z){var B=this.Vd;d([k,p,y,z])&&(B.isEmpty()&&B.moveTo(k,p),B.quadTo(k,p,y,z))};this.rect=function(k,p,y,z){var B=
this.Vd;k=a.XYWHRect(k,p,y,z);d(k)&&B.addRect(k)}}function aa(D,k){this.Td=null;D instanceof G&&(D=D.jf());this.sf=D;this._transform=a.Matrix.identity();""===k&&(k="repeat");switch(k){case "repeat-x":this.ve=a.TileMode.Repeat;this.we=a.TileMode.Decal;break;case "repeat-y":this.ve=a.TileMode.Decal;this.we=a.TileMode.Repeat;break;case "repeat":this.we=this.ve=a.TileMode.Repeat;break;case "no-repeat":this.we=this.ve=a.TileMode.Decal;break;default:throw"invalid repetition mode "+k;}this.setTransform=
function(p){p=[p.a,p.c,p.e,p.b,p.d,p.f,0,0,1];d(p)&&(this._transform=p)};this.oe=function(){var p=new aa;p.ve=this.ve;p.we=this.we;return p};this.ie=function(){this.Td&&(this.Td.delete(),this.Td=null)};this.pe=function(){this.ie();return this.Td=this.sf.makeShaderCubic(this.ve,this.we,1/3,1/3,this._transform)}}function ja(D,k,p,y,z,B){this.Td=null;this.be=[];this.Ud=[];this.addColorStop=function(E,J){if(0>E||1<E||!isFinite(E))throw"offset must be between 0 and 1 inclusively";J=g(J);var ba=this.Ud.indexOf(E);
if(-1!==ba)this.be[ba]=J;else{for(ba=0;ba<this.Ud.length&&!(this.Ud[ba]>E);ba++);this.Ud.splice(ba,0,E);this.be.splice(ba,0,J)}};this.oe=function(){var E=new ja(D,k,p,y,z,B);E.be=this.be.slice();E.Ud=this.Ud.slice();return E};this.ie=function(){this.Td&&(this.Td.delete(),this.Td=null)};this.pe=function(E){var J=[D,k,y,z];a.Matrix.mapPoints(E,J);var ba=J[0],ca=J[1],Ha=J[2];J=J[3];var ab=(Math.abs(E[0])+Math.abs(E[4]))/2;E=p*ab;ab*=B;this.ie();return this.Td=a.Shader.MakeTwoPointConicalGradient([ba,
ca],E,[Ha,J],ab,this.be,this.Ud,a.TileMode.Clamp)}}a._testing={};var va={aliceblue:Float32Array.of(.941,.973,1,1),antiquewhite:Float32Array.of(.98,.922,.843,1),aqua:Float32Array.of(0,1,1,1),aquamarine:Float32Array.of(.498,1,.831,1),azure:Float32Array.of(.941,1,1,1),beige:Float32Array.of(.961,.961,.863,1),bisque:Float32Array.of(1,.894,.769,1),black:Float32Array.of(0,0,0,1),blanchedalmond:Float32Array.of(1,.922,.804,1),blue:Float32Array.of(0,0,1,1),blueviolet:Float32Array.of(.541,.169,.886,1),brown:Float32Array.of(.647,
.165,.165,1),burlywood:Float32Array.of(.871,.722,.529,1),cadetblue:Float32Array.of(.373,.62,.627,1),chartreuse:Float32Array.of(.498,1,0,1),chocolate:Float32Array.of(.824,.412,.118,1),coral:Float32Array.of(1,.498,.314,1),cornflowerblue:Float32Array.of(.392,.584,.929,1),cornsilk:Float32Array.of(1,.973,.863,1),crimson:Float32Array.of(.863,.078,.235,1),cyan:Float32Array.of(0,1,1,1),darkblue:Float32Array.of(0,0,.545,1),darkcyan:Float32Array.of(0,.545,.545,1),darkgoldenrod:Float32Array.of(.722,.525,.043,
1),darkgray:Float32Array.of(.663,.663,.663,1),darkgreen:Float32Array.of(0,.392,0,1),darkgrey:Float32Array.of(.663,.663,.663,1),darkkhaki:Float32Array.of(.741,.718,.42,1),darkmagenta:Float32Array.of(.545,0,.545,1),darkolivegreen:Float32Array.of(.333,.42,.184,1),darkorange:Float32Array.of(1,.549,0,1),darkorchid:Float32Array.of(.6,.196,.8,1),darkred:Float32Array.of(.545,0,0,1),darksalmon:Float32Array.of(.914,.588,.478,1),darkseagreen:Float32Array.of(.561,.737,.561,1),darkslateblue:Float32Array.of(.282,
.239,.545,1),darkslategray:Float32Array.of(.184,.31,.31,1),darkslategrey:Float32Array.of(.184,.31,.31,1),darkturquoise:Float32Array.of(0,.808,.82,1),darkviolet:Float32Array.of(.58,0,.827,1),deeppink:Float32Array.of(1,.078,.576,1),deepskyblue:Float32Array.of(0,.749,1,1),dimgray:Float32Array.of(.412,.412,.412,1),dimgrey:Float32Array.of(.412,.412,.412,1),dodgerblue:Float32Array.of(.118,.565,1,1),firebrick:Float32Array.of(.698,.133,.133,1),floralwhite:Float32Array.of(1,.98,.941,1),forestgreen:Float32Array.of(.133,
.545,.133,1),fuchsia:Float32Array.of(1,0,1,1),gainsboro:Float32Array.of(.863,.863,.863,1),ghostwhite:Float32Array.of(.973,.973,1,1),gold:Float32Array.of(1,.843,0,1),goldenrod:Float32Array.of(.855,.647,.125,1),gray:Float32Array.of(.502,.502,.502,1),green:Float32Array.of(0,.502,0,1),greenyellow:Float32Array.of(.678,1,.184,1),grey:Float32Array.of(.502,.502,.502,1),honeydew:Float32Array.of(.941,1,.941,1),hotpink:Float32Array.of(1,.412,.706,1),indianred:Float32Array.of(.804,.361,.361,1),indigo:Float32Array.of(.294,
0,.51,1),ivory:Float32Array.of(1,1,.941,1),khaki:Float32Array.of(.941,.902,.549,1),lavender:Float32Array.of(.902,.902,.98,1),lavenderblush:Float32Array.of(1,.941,.961,1),lawngreen:Float32Array.of(.486,.988,0,1),lemonchiffon:Float32Array.of(1,.98,.804,1),lightblue:Float32Array.of(.678,.847,.902,1),lightcoral:Float32Array.of(.941,.502,.502,1),lightcyan:Float32Array.of(.878,1,1,1),lightgoldenrodyellow:Float32Array.of(.98,.98,.824,1),lightgray:Float32Array.of(.827,.827,.827,1),lightgreen:Float32Array.of(.565,
.933,.565,1),lightgrey:Float32Array.of(.827,.827,.827,1),lightpink:Float32Array.of(1,.714,.757,1),lightsalmon:Float32Array.of(1,.627,.478,1),lightseagreen:Float32Array.of(.125,.698,.667,1),lightskyblue:Float32Array.of(.529,.808,.98,1),lightslategray:Float32Array.of(.467,.533,.6,1),lightslategrey:Float32Array.of(.467,.533,.6,1),lightsteelblue:Float32Array.of(.69,.769,.871,1),lightyellow:Float32Array.of(1,1,.878,1),lime:Float32Array.of(0,1,0,1),limegreen:Float32Array.of(.196,.804,.196,1),linen:Float32Array.of(.98,
.941,.902,1),magenta:Float32Array.of(1,0,1,1),maroon:Float32Array.of(.502,0,0,1),mediumaquamarine:Float32Array.of(.4,.804,.667,1),mediumblue:Float32Array.of(0,0,.804,1),mediumorchid:Float32Array.of(.729,.333,.827,1),mediumpurple:Float32Array.of(.576,.439,.859,1),mediumseagreen:Float32Array.of(.235,.702,.443,1),mediumslateblue:Float32Array.of(.482,.408,.933,1),mediumspringgreen:Float32Array.of(0,.98,.604,1),mediumturquoise:Float32Array.of(.282,.82,.8,1),mediumvioletred:Float32Array.of(.78,.082,.522,
1),midnightblue:Float32Array.of(.098,.098,.439,1),mintcream:Float32Array.of(.961,1,.98,1),mistyrose:Float32Array.of(1,.894,.882,1),moccasin:Float32Array.of(1,.894,.71,1),navajowhite:Float32Array.of(1,.871,.678,1),navy:Float32Array.of(0,0,.502,1),oldlace:Float32Array.of(.992,.961,.902,1),olive:Float32Array.of(.502,.502,0,1),olivedrab:Float32Array.of(.42,.557,.137,1),orange:Float32Array.of(1,.647,0,1),orangered:Float32Array.of(1,.271,0,1),orchid:Float32Array.of(.855,.439,.839,1),palegoldenrod:Float32Array.of(.933,
.91,.667,1),palegreen:Float32Array.of(.596,.984,.596,1),paleturquoise:Float32Array.of(.686,.933,.933,1),palevioletred:Float32Array.of(.859,.439,.576,1),papayawhip:Float32Array.of(1,.937,.835,1),peachpuff:Float32Array.of(1,.855,.725,1),peru:Float32Array.of(.804,.522,.247,1),pink:Float32Array.of(1,.753,.796,1),plum:Float32Array.of(.867,.627,.867,1),powderblue:Float32Array.of(.69,.878,.902,1),purple:Float32Array.of(.502,0,.502,1),rebeccapurple:Float32Array.of(.4,.2,.6,1),red:Float32Array.of(1,0,0,1),
rosybrown:Float32Array.of(.737,.561,.561,1),royalblue:Float32Array.of(.255,.412,.882,1),saddlebrown:Float32Array.of(.545,.271,.075,1),salmon:Float32Array.of(.98,.502,.447,1),sandybrown:Float32Array.of(.957,.643,.376,1),seagreen:Float32Array.of(.18,.545,.341,1),seashell:Float32Array.of(1,.961,.933,1),sienna:Float32Array.of(.627,.322,.176,1),silver:Float32Array.of(.753,.753,.753,1),skyblue:Float32Array.of(.529,.808,.922,1),slateblue:Float32Array.of(.416,.353,.804,1),slategray:Float32Array.of(.439,.502,
.565,1),slategrey:Float32Array.of(.439,.502,.565,1),snow:Float32Array.of(1,.98,.98,1),springgreen:Float32Array.of(0,1,.498,1),steelblue:Float32Array.of(.275,.51,.706,1),tan:Float32Array.of(.824,.706,.549,1),teal:Float32Array.of(0,.502,.502,1),thistle:Float32Array.of(.847,.749,.847,1),tomato:Float32Array.of(1,.388,.278,1),transparent:Float32Array.of(0,0,0,0),turquoise:Float32Array.of(.251,.878,.816,1),violet:Float32Array.of(.933,.51,.933,1),wheat:Float32Array.of(.961,.871,.702,1),white:Float32Array.of(1,
1,1,1),whitesmoke:Float32Array.of(.961,.961,.961,1),yellow:Float32Array.of(1,1,0,1),yellowgreen:Float32Array.of(.604,.804,.196,1)};a._testing.parseColor=g;a._testing.colorToString=c;var wa=RegExp("(italic|oblique|normal|)\\s*(small-caps|normal|)\\s*(bold|bolder|lighter|[1-9]00|normal|)\\s*([\\d\\.]+)(px|pt|pc|in|cm|mm|%|em|ex|ch|rem|q)(.+)"),la;a._testing.parseFontString=l;a.MakeCanvas=function(D,k){return(D=a.MakeSurface(D,k))?new A(D):null};a.ImageData=function(){if(2===arguments.length){var D=
arguments[0],k=arguments[1];return new K(new Uint8ClampedArray(4*D*k),D,k)}if(3===arguments.length){var p=arguments[0];if(p.prototype.constructor!==Uint8ClampedArray)throw new TypeError("bytes must be given as a Uint8ClampedArray");D=arguments[1];k=arguments[2];if(p%4)throw new TypeError("bytes must be given in a multiple of 4");if(p%D)throw new TypeError("bytes must divide evenly by width");if(k&&k!==p/(4*D))throw new TypeError("invalid height given");return new K(p,D,p/(4*D))}throw new TypeError("invalid number of arguments - takes 2 or 3, saw "+
arguments.length);}})()})(u);var Ca="./this.program",Da=(a,b)=>{throw b;},Ea="",Fa,Ga;
if(pa){var fs=require("fs");require("path");Ea=__dirname+"/";Ga=a=>{a=Ia(a)?new URL(a):a;return fs.readFileSync(a)};Fa=async a=>{a=Ia(a)?new URL(a):a;return fs.readFileSync(a,void 0)};1<process.argv.length&&(Ca=process.argv[1].replace(/\\/g,"/"));process.argv.slice(2);Da=(a,b)=>{process.exitCode=a;throw b;}}else if(na||oa)oa?Ea=self.location.href:"undefined"!=typeof document&&document.currentScript&&(Ea=document.currentScript.src),_scriptName&&(Ea=_scriptName),Ea.startsWith("blob:")?Ea="":Ea=Ea.slice(0,
Ea.replace(/[?#].*/,"").lastIndexOf("/")+1),oa&&(Ga=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),Fa=async a=>{if(Ia(a))return new Promise((e,f)=>{var h=new XMLHttpRequest;h.open("GET",a,!0);h.responseType="arraybuffer";h.onload=()=>{200==h.status||0==h.status&&h.response?e(h.response):f(h.status)};h.onerror=f;h.send(null)});var b=await fetch(a,{credentials:"same-origin"});if(b.ok)return b.arrayBuffer();throw Error(b.status+
" : "+b.url);};var Ja=console.log.bind(console),Ka=console.error.bind(console),La,Oa=!1,Pa,Ra,Sa,Ta,M,N,R,Ua,Va,Wa,Ia=a=>a.startsWith("file://");function Xa(){var a=La.buffer;Pa=new Int8Array(a);Sa=new Int16Array(a);u.HEAPU8=Ra=new Uint8Array(a);u.HEAPU16=Ta=new Uint16Array(a);u.HEAP32=M=new Int32Array(a);u.HEAPU32=N=new Uint32Array(a);u.HEAPF32=R=new Float32Array(a);Wa=new Float64Array(a);Ua=new BigInt64Array(a);Va=new BigUint64Array(a)}var Ya=0,bb=null;
function cb(a){a="Aborted("+a+")";Ka(a);Oa=!0;a=new WebAssembly.RuntimeError(a+". Build with -sASSERTIONS for more info.");ha(a);throw a;}var eb;async function fb(a){try{var b=await Fa(a);return new Uint8Array(b)}catch{}if(Ga)a=Ga(a);else throw"both async and sync fetching of the wasm failed";return a}async function gb(a,b){try{var e=await fb(a);return await WebAssembly.instantiate(e,b)}catch(f){Ka(`failed to asynchronously prepare wasm: ${f}`),cb(f)}}
async function hb(a){var b=eb;if("function"==typeof WebAssembly.instantiateStreaming&&!Ia(b)&&!pa)try{var e=fetch(b,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(e,a)}catch(f){Ka(`wasm streaming compile failed: ${f}`),Ka("falling back to ArrayBuffer instantiation")}return gb(b,a)}class ib{name="ExitStatus";constructor(a){this.message=`Program terminated with exit(${a})`;this.status=a}}
var jb="undefined"!=typeof TextDecoder?new TextDecoder:void 0,kb=(a,b=0,e=NaN)=>{var f=b+e;for(e=b;a[e]&&!(e>=f);)++e;if(16<e-b&&a.buffer&&jb)return jb.decode(a.subarray(b,e));for(f="";b<e;){var h=a[b++];if(h&128){var m=a[b++]&63;if(192==(h&224))f+=String.fromCharCode((h&31)<<6|m);else{var n=a[b++]&63;h=224==(h&240)?(h&15)<<12|m<<6|n:(h&7)<<18|m<<12|n<<6|a[b++]&63;65536>h?f+=String.fromCharCode(h):(h-=65536,f+=String.fromCharCode(55296|h>>10,56320|h&1023))}}else f+=String.fromCharCode(h)}return f},
lb={},mb=a=>{for(;a.length;){var b=a.pop();a.pop()(b)}};function nb(a){return this.fromWireType(N[a>>2])}
var qb={},rb={},sb={},tb=u.InternalError=class extends Error{constructor(a){super(a);this.name="InternalError"}},vb=(a,b,e)=>{function f(t){t=e(t);if(t.length!==a.length)throw new tb("Mismatched type converter count");for(var v=0;v<a.length;++v)ub(a[v],t[v])}a.forEach(t=>sb[t]=b);var h=Array(b.length),m=[],n=0;b.forEach((t,v)=>{rb.hasOwnProperty(t)?h[v]=rb[t]:(m.push(t),qb.hasOwnProperty(t)||(qb[t]=[]),qb[t].push(()=>{h[v]=rb[t];++n;n===m.length&&f(h)}))});0===m.length&&f(h)},wb=a=>{if(null===a)return"null";
var b=typeof a;return"object"===b||"array"===b||"function"===b?a.toString():""+a},xb,yb=a=>{for(var b="";Ra[a];)b+=xb[Ra[a++]];return b},T=u.BindingError=class extends Error{constructor(a){super(a);this.name="BindingError"}};
function zb(a,b,e={}){var f=b.name;if(!a)throw new T(`type "${f}" must have a positive integer typeid pointer`);if(rb.hasOwnProperty(a)){if(e.Jf)return;throw new T(`Cannot register type '${f}' twice`);}rb[a]=b;delete sb[a];qb.hasOwnProperty(a)&&(b=qb[a],delete qb[a],b.forEach(h=>h()))}function ub(a,b,e={}){return zb(a,b,e)}
var Ab=(a,b,e)=>{switch(b){case 1:return e?f=>Pa[f]:f=>Ra[f];case 2:return e?f=>Sa[f>>1]:f=>Ta[f>>1];case 4:return e?f=>M[f>>2]:f=>N[f>>2];case 8:return e?f=>Ua[f>>3]:f=>Va[f>>3];default:throw new TypeError(`invalid integer width (${b}): ${a}`);}},Bb=a=>{throw new T(a.Fd.Qd.Ld.name+" instance already deleted");},Cb=!1,Db=()=>{},Eb=a=>{if("undefined"===typeof FinalizationRegistry)return Eb=b=>b,a;Cb=new FinalizationRegistry(b=>{b=b.Fd;--b.count.value;0===b.count.value&&(b.Rd?b.ae.fe(b.Rd):b.Qd.Ld.fe(b.Md))});
Eb=b=>{var e=b.Fd;e.Rd&&Cb.register(b,{Fd:e},b);return b};Db=b=>{Cb.unregister(b)};return Eb(a)},Fb=[];function Gb(){}
var Hb=(a,b)=>Object.defineProperty(b,"name",{value:a}),Ib={},Jb=(a,b,e)=>{if(void 0===a[b].Sd){var f=a[b];a[b]=function(...h){if(!a[b].Sd.hasOwnProperty(h.length))throw new T(`Function '${e}' called with an invalid number of arguments (${h.length}) - expects one of (${a[b].Sd})!`);return a[b].Sd[h.length].apply(this,h)};a[b].Sd=[];a[b].Sd[f.ke]=f}},Kb=(a,b,e)=>{if(u.hasOwnProperty(a)){if(void 0===e||void 0!==u[a].Sd&&void 0!==u[a].Sd[e])throw new T(`Cannot register public name '${a}' twice`);Jb(u,
a,a);if(u[a].Sd.hasOwnProperty(e))throw new T(`Cannot register multiple overloads of a function with the same number of arguments (${e})!`);u[a].Sd[e]=b}else u[a]=b,u[a].ke=e},Lb=a=>{a=a.replace(/[^a-zA-Z0-9_]/g,"$");var b=a.charCodeAt(0);return 48<=b&&57>=b?`_${a}`:a};function Sb(a,b,e,f,h,m,n,t){this.name=a;this.constructor=b;this.ze=e;this.fe=f;this.Wd=h;this.Ef=m;this.Ie=n;this.zf=t;this.Pf=[]}
var Tb=(a,b,e)=>{for(;b!==e;){if(!b.Ie)throw new T(`Expected null or instance of ${e.name}, got an instance of ${b.name}`);a=b.Ie(a);b=b.Wd}return a};function Ub(a,b){if(null===b){if(this.$e)throw new T(`null is not a valid ${this.name}`);return 0}if(!b.Fd)throw new T(`Cannot pass "${wb(b)}" as a ${this.name}`);if(!b.Fd.Md)throw new T(`Cannot pass deleted object as a pointer of type ${this.name}`);return Tb(b.Fd.Md,b.Fd.Qd.Ld,this.Ld)}
function Vb(a,b){if(null===b){if(this.$e)throw new T(`null is not a valid ${this.name}`);if(this.Re){var e=this.af();null!==a&&a.push(this.fe,e);return e}return 0}if(!b||!b.Fd)throw new T(`Cannot pass "${wb(b)}" as a ${this.name}`);if(!b.Fd.Md)throw new T(`Cannot pass deleted object as a pointer of type ${this.name}`);if(!this.Qe&&b.Fd.Qd.Qe)throw new T(`Cannot convert argument of type ${b.Fd.ae?b.Fd.ae.name:b.Fd.Qd.name} to parameter type ${this.name}`);e=Tb(b.Fd.Md,b.Fd.Qd.Ld,this.Ld);if(this.Re){if(void 0===
b.Fd.Rd)throw new T("Passing raw pointer to smart pointer is illegal");switch(this.Uf){case 0:if(b.Fd.ae===this)e=b.Fd.Rd;else throw new T(`Cannot convert argument of type ${b.Fd.ae?b.Fd.ae.name:b.Fd.Qd.name} to parameter type ${this.name}`);break;case 1:e=b.Fd.Rd;break;case 2:if(b.Fd.ae===this)e=b.Fd.Rd;else{var f=b.clone();e=this.Qf(e,Wb(()=>f["delete"]()));null!==a&&a.push(this.fe,e)}break;default:throw new T("Unsupporting sharing policy");}}return e}
function Xb(a,b){if(null===b){if(this.$e)throw new T(`null is not a valid ${this.name}`);return 0}if(!b.Fd)throw new T(`Cannot pass "${wb(b)}" as a ${this.name}`);if(!b.Fd.Md)throw new T(`Cannot pass deleted object as a pointer of type ${this.name}`);if(b.Fd.Qd.Qe)throw new T(`Cannot convert argument of type ${b.Fd.Qd.name} to parameter type ${this.name}`);return Tb(b.Fd.Md,b.Fd.Qd.Ld,this.Ld)}
var Yb=(a,b,e)=>{if(b===e)return a;if(void 0===e.Wd)return null;a=Yb(a,b,e.Wd);return null===a?null:e.zf(a)},Zb={},$b=(a,b)=>{if(void 0===b)throw new T("ptr should not be undefined");for(;a.Wd;)b=a.Ie(b),a=a.Wd;return Zb[b]},ac=(a,b)=>{if(!b.Qd||!b.Md)throw new tb("makeClassHandle requires ptr and ptrType");if(!!b.ae!==!!b.Rd)throw new tb("Both smartPtrType and smartPtr must be specified");b.count={value:1};return Eb(Object.create(a,{Fd:{value:b,writable:!0}}))};
function bc(a,b,e,f,h,m,n,t,v,x,F){this.name=a;this.Ld=b;this.$e=e;this.Qe=f;this.Re=h;this.Of=m;this.Uf=n;this.lf=t;this.af=v;this.Qf=x;this.fe=F;h||void 0!==b.Wd?this.toWireType=Vb:(this.toWireType=f?Ub:Xb,this.$d=null)}
var cc=(a,b,e)=>{if(!u.hasOwnProperty(a))throw new tb("Replacing nonexistent public symbol");void 0!==u[a].Sd&&void 0!==e?u[a].Sd[e]=b:(u[a]=b,u[a].ke=e)},dc,ec=(a,b)=>{a=yb(a);var e=dc.get(b);if("function"!=typeof e)throw new T(`unknown function pointer with signature ${a}: ${b}`);return e};class fc extends Error{}
var ic=a=>{a=gc(a);var b=yb(a);hc(a);return b},jc=(a,b)=>{function e(m){h[m]||rb[m]||(sb[m]?sb[m].forEach(e):(f.push(m),h[m]=!0))}var f=[],h={};b.forEach(e);throw new fc(`${a}: `+f.map(ic).join([", "]));};function kc(a){for(var b=1;b<a.length;++b)if(null!==a[b]&&void 0===a[b].$d)return!0;return!1}
function lc(a,b,e,f,h){var m=b.length;if(2>m)throw new T("argTypes array size mismatch! Must at least get return value and 'this' types!");var n=null!==b[1]&&null!==e,t=kc(b),v="void"!==b[0].name,x=m-2,F=Array(x),I=[],O=[];return Hb(a,function(...Z){O.length=0;I.length=n?2:1;I[0]=h;if(n){var ea=b[1].toWireType(O,this);I[1]=ea}for(var fa=0;fa<x;++fa)F[fa]=b[fa+2].toWireType(O,Z[fa]),I.push(F[fa]);Z=f(...I);if(t)mb(O);else for(fa=n?1:2;fa<b.length;fa++){var S=1===fa?ea:F[fa-2];null!==b[fa].$d&&b[fa].$d(S)}ea=
v?b[0].fromWireType(Z):void 0;return ea})}
for(var mc=(a,b)=>{for(var e=[],f=0;f<a;f++)e.push(N[b+4*f>>2]);return e},tc=a=>{a=a.trim();const b=a.indexOf("(");return-1===b?a:a.slice(0,b)},uc=[],vc=[],wc=a=>{9<a&&0===--vc[a+1]&&(vc[a]=void 0,uc.push(a))},xc=a=>{if(!a)throw new T(`Cannot use deleted val. handle = ${a}`);return vc[a]},Wb=a=>{switch(a){case void 0:return 2;case null:return 4;case !0:return 6;case !1:return 8;default:const b=uc.pop()||vc.length;vc[b]=a;vc[b+1]=1;return b}},yc={name:"emscripten::val",fromWireType:a=>{var b=xc(a);
wc(a);return b},toWireType:(a,b)=>Wb(b),Yd:8,readValueFromPointer:nb,$d:null},zc=(a,b,e)=>{switch(b){case 1:return e?function(f){return this.fromWireType(Pa[f])}:function(f){return this.fromWireType(Ra[f])};case 2:return e?function(f){return this.fromWireType(Sa[f>>1])}:function(f){return this.fromWireType(Ta[f>>1])};case 4:return e?function(f){return this.fromWireType(M[f>>2])}:function(f){return this.fromWireType(N[f>>2])};default:throw new TypeError(`invalid integer width (${b}): ${a}`);}},Ac=
(a,b)=>{var e=rb[a];if(void 0===e)throw a=`${b} has unknown type ${ic(a)}`,new T(a);return e},Bc=(a,b)=>{switch(b){case 4:return function(e){return this.fromWireType(R[e>>2])};case 8:return function(e){return this.fromWireType(Wa[e>>3])};default:throw new TypeError(`invalid float width (${b}): ${a}`);}},Ba=(a,b,e)=>{var f=Ra;if(!(0<e))return 0;var h=b;e=b+e-1;for(var m=0;m<a.length;++m){var n=a.charCodeAt(m);if(55296<=n&&57343>=n){var t=a.charCodeAt(++m);n=65536+((n&1023)<<10)|t&1023}if(127>=n){if(b>=
e)break;f[b++]=n}else{if(2047>=n){if(b+1>=e)break;f[b++]=192|n>>6}else{if(65535>=n){if(b+2>=e)break;f[b++]=224|n>>12}else{if(b+3>=e)break;f[b++]=240|n>>18;f[b++]=128|n>>12&63}f[b++]=128|n>>6&63}f[b++]=128|n&63}}f[b]=0;return b-h},Aa=a=>{for(var b=0,e=0;e<a.length;++e){var f=a.charCodeAt(e);127>=f?b++:2047>=f?b+=2:55296<=f&&57343>=f?(b+=4,++e):b+=3}return b},Cc="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0,Dc=(a,b)=>{var e=a>>1;for(var f=e+b/2;!(e>=f)&&Ta[e];)++e;e<<=1;if(32<e-
a&&Cc)return Cc.decode(Ra.subarray(a,e));e="";for(f=0;!(f>=b/2);++f){var h=Sa[a+2*f>>1];if(0==h)break;e+=String.fromCharCode(h)}return e},Ec=(a,b,e)=>{e??=2147483647;if(2>e)return 0;e-=2;var f=b;e=e<2*a.length?e/2:a.length;for(var h=0;h<e;++h)Sa[b>>1]=a.charCodeAt(h),b+=2;Sa[b>>1]=0;return b-f},Fc=a=>2*a.length,Gc=(a,b)=>{for(var e=0,f="";!(e>=b/4);){var h=M[a+4*e>>2];if(0==h)break;++e;65536<=h?(h-=65536,f+=String.fromCharCode(55296|h>>10,56320|h&1023)):f+=String.fromCharCode(h)}return f},Hc=(a,b,
e)=>{e??=2147483647;if(4>e)return 0;var f=b;e=f+e-4;for(var h=0;h<a.length;++h){var m=a.charCodeAt(h);if(55296<=m&&57343>=m){var n=a.charCodeAt(++h);m=65536+((m&1023)<<10)|n&1023}M[b>>2]=m;b+=4;if(b+4>e)break}M[b>>2]=0;return b-f},Ic=a=>{for(var b=0,e=0;e<a.length;++e){var f=a.charCodeAt(e);55296<=f&&57343>=f&&++e;b+=4}return b},Jc=(a,b,e)=>{var f=[];a=a.toWireType(f,e);f.length&&(N[b>>2]=Wb(f));return a},Kc=[],Lc={},Mc=a=>{var b=Lc[a];return void 0===b?yb(a):b},Nc=()=>{function a(b){b.$$$embind_global$$$=
b;var e="object"==typeof $$$embind_global$$$&&b.$$$embind_global$$$==b;e||delete b.$$$embind_global$$$;return e}if("object"==typeof globalThis)return globalThis;if("object"==typeof $$$embind_global$$$)return $$$embind_global$$$;"object"==typeof global&&a(global)?$$$embind_global$$$=global:"object"==typeof self&&a(self)&&($$$embind_global$$$=self);if("object"==typeof $$$embind_global$$$)return $$$embind_global$$$;throw Error("unable to get global object.");},Oc=a=>{var b=Kc.length;Kc.push(a);return b},
Pc=(a,b)=>{for(var e=Array(a),f=0;f<a;++f)e[f]=Ac(N[b+4*f>>2],`parameter ${f}`);return e},Qc=Reflect.construct,U,Rc=a=>{var b=a.getExtension("ANGLE_instanced_arrays");b&&(a.vertexAttribDivisor=(e,f)=>b.vertexAttribDivisorANGLE(e,f),a.drawArraysInstanced=(e,f,h,m)=>b.drawArraysInstancedANGLE(e,f,h,m),a.drawElementsInstanced=(e,f,h,m,n)=>b.drawElementsInstancedANGLE(e,f,h,m,n))},Sc=a=>{var b=a.getExtension("OES_vertex_array_object");b&&(a.createVertexArray=()=>b.createVertexArrayOES(),a.deleteVertexArray=
e=>b.deleteVertexArrayOES(e),a.bindVertexArray=e=>b.bindVertexArrayOES(e),a.isVertexArray=e=>b.isVertexArrayOES(e))},Tc=a=>{var b=a.getExtension("WEBGL_draw_buffers");b&&(a.drawBuffers=(e,f)=>b.drawBuffersWEBGL(e,f))},Uc=a=>{var b="ANGLE_instanced_arrays EXT_blend_minmax EXT_disjoint_timer_query EXT_frag_depth EXT_shader_texture_lod EXT_sRGB OES_element_index_uint OES_fbo_render_mipmap OES_standard_derivatives OES_texture_float OES_texture_half_float OES_texture_half_float_linear OES_vertex_array_object WEBGL_color_buffer_float WEBGL_depth_texture WEBGL_draw_buffers EXT_color_buffer_float EXT_conservative_depth EXT_disjoint_timer_query_webgl2 EXT_texture_norm16 NV_shader_noperspective_interpolation WEBGL_clip_cull_distance EXT_clip_control EXT_color_buffer_half_float EXT_depth_clamp EXT_float_blend EXT_polygon_offset_clamp EXT_texture_compression_bptc EXT_texture_compression_rgtc EXT_texture_filter_anisotropic KHR_parallel_shader_compile OES_texture_float_linear WEBGL_blend_func_extended WEBGL_compressed_texture_astc WEBGL_compressed_texture_etc WEBGL_compressed_texture_etc1 WEBGL_compressed_texture_s3tc WEBGL_compressed_texture_s3tc_srgb WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_lose_context WEBGL_multi_draw WEBGL_polygon_mode".split(" ");
return(a.getSupportedExtensions()||[]).filter(e=>b.includes(e))},Vc=1,Wc=[],Xc=[],Yc=[],Zc=[],ra=[],$c=[],ad=[],za=[],bd=[],cd=[],dd=[],ed={},fd={},gd=4,hd=0,qa=a=>{for(var b=Vc++,e=a.length;e<b;e++)a[e]=null;return b},ld=(a,b,e,f)=>{for(var h=0;h<a;h++){var m=U[e](),n=m&&qa(f);m?(m.name=n,f[n]=m):W||=1282;M[b+4*h>>2]=n}},sa=(a,b)=>{a.cf||(a.cf=a.getContext,a.getContext=function(f,h){h=a.cf(f,h);return"webgl"==f==h instanceof WebGLRenderingContext?h:null});var e=1<b.majorVersion?a.getContext("webgl2",
b):a.getContext("webgl",b);return e?md(e,b):0},md=(a,b)=>{var e=qa(za),f={handle:e,attributes:b,version:b.majorVersion,ce:a};a.canvas&&(a.canvas.pf=f);za[e]=f;("undefined"==typeof b.Af||b.Af)&&nd(f);return e},ta=a=>{H=za[a];u.ctx=U=H?.ce;return!(a&&!U)},nd=a=>{a||=H;if(!a.Kf){a.Kf=!0;var b=a.ce;b.cg=b.getExtension("WEBGL_multi_draw");b.ag=b.getExtension("EXT_polygon_offset_clamp");b.$f=b.getExtension("EXT_clip_control");b.eg=b.getExtension("WEBGL_polygon_mode");Rc(b);Sc(b);Tc(b);b.gf=b.getExtension("WEBGL_draw_instanced_base_vertex_base_instance");
b.kf=b.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance");2<=a.version&&(b.ee=b.getExtension("EXT_disjoint_timer_query_webgl2"));if(2>a.version||!b.ee)b.ee=b.getExtension("EXT_disjoint_timer_query");Uc(b).forEach(e=>{e.includes("lose_context")||e.includes("debug")||b.getExtension(e)})}},H,W,od=(a,b)=>{U.bindFramebuffer(a,Yc[b])},pd=a=>{U.bindVertexArray(ad[a])},qd=a=>U.clear(a),rd=(a,b,e,f)=>U.clearColor(a,b,e,f),sd=a=>U.clearStencil(a),td=(a,b)=>{for(var e=0;e<a;e++){var f=M[b+
4*e>>2];U.deleteVertexArray(ad[f]);ad[f]=null}},ud=[],vd=(a,b)=>{ld(a,b,"createVertexArray",ad)},wd=()=>{var a=Uc(U);return a=a.concat(a.map(b=>"GL_"+b))},xd=(a,b,e)=>{if(b){var f=void 0;switch(a){case 36346:f=1;break;case 36344:0!=e&&1!=e&&(W||=1280);return;case 34814:case 36345:f=0;break;case 34466:var h=U.getParameter(34467);f=h?h.length:0;break;case 33309:if(2>H.version){W||=1282;return}f=wd().length;break;case 33307:case 33308:if(2>H.version){W||=1280;return}f=33307==a?3:0}if(void 0===f)switch(h=
U.getParameter(a),typeof h){case "number":f=h;break;case "boolean":f=h?1:0;break;case "string":W||=1280;return;case "object":if(null===h)switch(a){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:f=0;break;default:W||=1280;return}else{if(h instanceof Float32Array||h instanceof Uint32Array||h instanceof Int32Array||h instanceof Array){for(a=
0;a<h.length;++a)switch(e){case 0:M[b+4*a>>2]=h[a];break;case 2:R[b+4*a>>2]=h[a];break;case 4:Pa[b+a]=h[a]?1:0}return}try{f=h.name|0}catch(m){W||=1280;Ka(`GL_INVALID_ENUM in glGet${e}v: Unknown object returned from WebGL getParameter(${a})! (error: ${m})`);return}}break;default:W||=1280;Ka(`GL_INVALID_ENUM in glGet${e}v: Native code calling glGet${e}v(${a}) and it returns ${h} of type ${typeof h}!`);return}switch(e){case 1:e=f;N[b>>2]=e;N[b+4>>2]=(e-N[b>>2])/4294967296;break;case 0:M[b>>2]=f;break;
case 2:R[b>>2]=f;break;case 4:Pa[b]=f?1:0}}else W||=1281},yd=(a,b)=>xd(a,b,0),zd=(a,b,e)=>{if(e){a=bd[a];b=2>H.version?U.ee.getQueryObjectEXT(a,b):U.getQueryParameter(a,b);var f;"boolean"==typeof b?f=b?1:0:f=b;N[e>>2]=f;N[e+4>>2]=(f-N[e>>2])/4294967296}else W||=1281},Bd=a=>{var b=Aa(a)+1,e=Ad(b);e&&Ba(a,e,b);return e},Cd=a=>{var b=ed[a];if(!b){switch(a){case 7939:b=Bd(wd().join(" "));break;case 7936:case 7937:case 37445:case 37446:(b=U.getParameter(a))||(W||=1280);b=b?Bd(b):0;break;case 7938:b=U.getParameter(7938);
var e=`OpenGL ES 2.0 (${b})`;2<=H.version&&(e=`OpenGL ES 3.0 (${b})`);b=Bd(e);break;case 35724:b=U.getParameter(35724);e=b.match(/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/);null!==e&&(3==e[1].length&&(e[1]+="0"),b=`OpenGL ES GLSL ES ${e[1]} (${b})`);b=Bd(b);break;default:W||=1280}ed[a]=b}return b},Dd=(a,b)=>{if(2>H.version)return W||=1282,0;var e=fd[a];if(e)return 0>b||b>=e.length?(W||=1281,0):e[b];switch(a){case 7939:return e=wd().map(Bd),e=fd[a]=e,0>b||b>=e.length?(W||=1281,0):e[b];default:return W||=
1280,0}},Ed=a=>"]"==a.slice(-1)&&a.lastIndexOf("["),Fd=a=>{a-=5120;return 0==a?Pa:1==a?Ra:2==a?Sa:4==a?M:6==a?R:5==a||28922==a||28520==a||30779==a||30782==a?N:Ta},Gd=(a,b,e,f,h)=>{a=Fd(a);b=f*((hd||e)*({5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4}[b-6402]||1)*a.BYTES_PER_ELEMENT+gd-1&-gd);return a.subarray(h>>>31-Math.clz32(a.BYTES_PER_ELEMENT),h+b>>>31-Math.clz32(a.BYTES_PER_ELEMENT))},Y=a=>{var b=U.yf;if(b){var e=b.He[a];"number"==typeof e&&(b.He[a]=e=U.getUniformLocation(b,b.mf[a]+
(0<e?`[${e}]`:"")));return e}W||=1282},Hd=[],Id=[],Jd={},Ld=()=>{if(!Kd){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:Ca||"./this.program"},b;for(b in Jd)void 0===Jd[b]?delete a[b]:a[b]=Jd[b];var e=[];for(b in a)e.push(`${b}=${a[b]}`);Kd=e}return Kd},Kd,Md=[null,[],[]],Nd=Array(256),Od=0;256>Od;++Od)Nd[Od]=String.fromCharCode(Od);xb=Nd;
(()=>{let a=Gb.prototype;Object.assign(a,{isAliasOf:function(e){if(!(this instanceof Gb&&e instanceof Gb))return!1;var f=this.Fd.Qd.Ld,h=this.Fd.Md;e.Fd=e.Fd;var m=e.Fd.Qd.Ld;for(e=e.Fd.Md;f.Wd;)h=f.Ie(h),f=f.Wd;for(;m.Wd;)e=m.Ie(e),m=m.Wd;return f===m&&h===e},clone:function(){this.Fd.Md||Bb(this);if(this.Fd.Ge)return this.Fd.count.value+=1,this;var e=Eb,f=Object,h=f.create,m=Object.getPrototypeOf(this),n=this.Fd;e=e(h.call(f,m,{Fd:{value:{count:n.count,Fe:n.Fe,Ge:n.Ge,Md:n.Md,Qd:n.Qd,Rd:n.Rd,ae:n.ae}}}));
e.Fd.count.value+=1;e.Fd.Fe=!1;return e},["delete"](){this.Fd.Md||Bb(this);if(this.Fd.Fe&&!this.Fd.Ge)throw new T("Object already scheduled for deletion");Db(this);var e=this.Fd;--e.count.value;0===e.count.value&&(e.Rd?e.ae.fe(e.Rd):e.Qd.Ld.fe(e.Md));this.Fd.Ge||(this.Fd.Rd=void 0,this.Fd.Md=void 0)},isDeleted:function(){return!this.Fd.Md},deleteLater:function(){this.Fd.Md||Bb(this);if(this.Fd.Fe&&!this.Fd.Ge)throw new T("Object already scheduled for deletion");Fb.push(this);this.Fd.Fe=!0;return this}});
const b=Symbol.dispose;b&&(a[b]=a["delete"])})();
Object.assign(bc.prototype,{Ff(a){this.lf&&(a=this.lf(a));return a},ff(a){this.fe?.(a)},Yd:8,readValueFromPointer:nb,fromWireType:function(a){function b(){return this.Re?ac(this.Ld.ze,{Qd:this.Of,Md:e,ae:this,Rd:a}):ac(this.Ld.ze,{Qd:this,Md:a})}var e=this.Ff(a);if(!e)return this.ff(a),null;var f=$b(this.Ld,e);if(void 0!==f){if(0===f.Fd.count.value)return f.Fd.Md=e,f.Fd.Rd=a,f.clone();f=f.clone();this.ff(a);return f}f=this.Ld.Ef(e);f=Ib[f];if(!f)return b.call(this);f=this.Qe?f.wf:f.pointerType;var h=
Yb(e,this.Ld,f.Ld);return null===h?b.call(this):this.Re?ac(f.Ld.ze,{Qd:f,Md:h,ae:this,Rd:a}):ac(f.Ld.ze,{Qd:f,Md:h})}});vc.push(0,1,void 0,1,null,1,!0,1,!1,1);u.count_emval_handles=()=>vc.length/2-5-uc.length;for(let a=0;32>a;++a)ud.push(Array(a));for(var Pd=new Float32Array(288),Qd=0;288>=Qd;++Qd)Hd[Qd]=Pd.subarray(0,Qd);var Rd=new Int32Array(288);for(Qd=0;288>=Qd;++Qd)Id[Qd]=Rd.subarray(0,Qd);
var he={S:function(){return 0},hb:()=>{},jb:function(){return 0},eb:()=>{},fb:()=>{},T:function(){},gb:()=>{},kb:()=>cb(""),A:a=>{var b=lb[a];delete lb[a];var e=b.af,f=b.fe,h=b.hf,m=h.map(n=>n.If).concat(h.map(n=>n.Sf));vb([a],m,n=>{var t={};h.forEach((v,x)=>{var F=n[x],I=v.Gf,O=v.Hf,Z=n[x+h.length],ea=v.Rf,fa=v.Tf;t[v.Bf]={read:S=>F.fromWireType(I(O,S)),write:(S,ya)=>{var ma=[];ea(fa,S,Z.toWireType(ma,ya));mb(ma)},optional:n[x].optional}});return[{name:b.name,fromWireType:v=>{var x={},F;for(F in t)x[F]=
t[F].read(v);f(v);return x},toWireType:(v,x)=>{for(var F in t)if(!(F in x||t[F].optional))throw new TypeError(`Missing field: "${F}"`);var I=e();for(F in t)t[F].write(I,x[F]);null!==v&&v.push(f,I);return I},Yd:8,readValueFromPointer:nb,$d:f}]})},Q:(a,b,e)=>{b=yb(b);ub(a,{name:b,fromWireType:f=>f,toWireType:function(f,h){if("bigint"!=typeof h&&"number"!=typeof h)throw new TypeError(`Cannot convert "${wb(h)}" to ${this.name}`);"number"==typeof h&&(h=BigInt(h));return h},Yd:8,readValueFromPointer:Ab(b,
e,-1==b.indexOf("u")),$d:null})},Ta:(a,b,e,f)=>{b=yb(b);ub(a,{name:b,fromWireType:function(h){return!!h},toWireType:function(h,m){return m?e:f},Yd:8,readValueFromPointer:function(h){return this.fromWireType(Ra[h])},$d:null})},l:(a,b,e,f,h,m,n,t,v,x,F,I,O)=>{F=yb(F);m=ec(h,m);t&&=ec(n,t);x&&=ec(v,x);O=ec(I,O);var Z=Lb(F);Kb(Z,function(){jc(`Cannot construct ${F} due to unbound types`,[f])});vb([a,b,e],f?[f]:[],ea=>{ea=ea[0];if(f){var fa=ea.Ld;var S=fa.ze}else S=Gb.prototype;ea=Hb(F,function(...$a){if(Object.getPrototypeOf(this)!==
ya)throw new T(`Use 'new' to construct ${F}`);if(void 0===ma.le)throw new T(`${F} has no accessible constructor`);var xa=ma.le[$a.length];if(void 0===xa)throw new T(`Tried to invoke ctor of ${F} with invalid number of parameters (${$a.length}) - expected (${Object.keys(ma.le).toString()}) parameters instead!`);return xa.apply(this,$a)});var ya=Object.create(S,{constructor:{value:ea}});ea.prototype=ya;var ma=new Sb(F,ea,ya,O,fa,m,t,x);if(ma.Wd){var Ma;(Ma=ma.Wd).Je??(Ma.Je=[]);ma.Wd.Je.push(ma)}fa=
new bc(F,ma,!0,!1,!1);Ma=new bc(F+"*",ma,!1,!1,!1);S=new bc(F+" const*",ma,!1,!0,!1);Ib[a]={pointerType:Ma,wf:S};cc(Z,ea);return[fa,Ma,S]})},e:(a,b,e,f,h,m,n)=>{var t=mc(e,f);b=yb(b);b=tc(b);m=ec(h,m);vb([],[a],v=>{function x(){jc(`Cannot call ${F} due to unbound types`,t)}v=v[0];var F=`${v.name}.${b}`;b.startsWith("@@")&&(b=Symbol[b.substring(2)]);var I=v.Ld.constructor;void 0===I[b]?(x.ke=e-1,I[b]=x):(Jb(I,b,F),I[b].Sd[e-1]=x);vb([],t,O=>{O=[O[0],null].concat(O.slice(1));O=lc(F,O,null,m,n);void 0===
I[b].Sd?(O.ke=e-1,I[b]=O):I[b].Sd[e-1]=O;if(v.Ld.Je)for(const Z of v.Ld.Je)Z.constructor.hasOwnProperty(b)||(Z.constructor[b]=O);return[]});return[]})},y:(a,b,e,f,h,m)=>{var n=mc(b,e);h=ec(f,h);vb([],[a],t=>{t=t[0];var v=`constructor ${t.name}`;void 0===t.Ld.le&&(t.Ld.le=[]);if(void 0!==t.Ld.le[b-1])throw new T(`Cannot register multiple constructors with identical number of parameters (${b-1}) for class '${t.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);
t.Ld.le[b-1]=()=>{jc(`Cannot construct ${t.name} due to unbound types`,n)};vb([],n,x=>{x.splice(1,0,null);t.Ld.le[b-1]=lc(v,x,null,h,m);return[]});return[]})},a:(a,b,e,f,h,m,n,t)=>{var v=mc(e,f);b=yb(b);b=tc(b);m=ec(h,m);vb([],[a],x=>{function F(){jc(`Cannot call ${I} due to unbound types`,v)}x=x[0];var I=`${x.name}.${b}`;b.startsWith("@@")&&(b=Symbol[b.substring(2)]);t&&x.Ld.Pf.push(b);var O=x.Ld.ze,Z=O[b];void 0===Z||void 0===Z.Sd&&Z.className!==x.name&&Z.ke===e-2?(F.ke=e-2,F.className=x.name,O[b]=
F):(Jb(O,b,I),O[b].Sd[e-2]=F);vb([],v,ea=>{ea=lc(I,ea,x,m,n);void 0===O[b].Sd?(ea.ke=e-2,O[b]=ea):O[b].Sd[e-2]=ea;return[]});return[]})},u:(a,b,e)=>{a=yb(a);vb([],[b],f=>{f=f[0];u[a]=f.fromWireType(e);return[]})},Ra:a=>ub(a,yc),k:(a,b,e,f)=>{function h(){}b=yb(b);h.values={};ub(a,{name:b,constructor:h,fromWireType:function(m){return this.constructor.values[m]},toWireType:(m,n)=>n.value,Yd:8,readValueFromPointer:zc(b,e,f),$d:null});Kb(b,h)},b:(a,b,e)=>{var f=Ac(a,"enum");b=yb(b);a=f.constructor;f=
Object.create(f.constructor.prototype,{value:{value:e},constructor:{value:Hb(`${f.name}_${b}`,function(){})}});a.values[e]=f;a[b]=f},P:(a,b,e)=>{b=yb(b);ub(a,{name:b,fromWireType:f=>f,toWireType:(f,h)=>h,Yd:8,readValueFromPointer:Bc(b,e),$d:null})},x:(a,b,e,f,h,m)=>{var n=mc(b,e);a=yb(a);a=tc(a);h=ec(f,h);Kb(a,function(){jc(`Cannot call ${a} due to unbound types`,n)},b-1);vb([],n,t=>{t=[t[0],null].concat(t.slice(1));cc(a,lc(a,t,null,h,m),b-1);return[]})},C:(a,b,e,f,h)=>{b=yb(b);-1===h&&(h=4294967295);
h=t=>t;if(0===f){var m=32-8*e;h=t=>t<<m>>>m}var n=b.includes("unsigned")?function(t,v){return v>>>0}:function(t,v){return v};ub(a,{name:b,fromWireType:h,toWireType:n,Yd:8,readValueFromPointer:Ab(b,e,0!==f),$d:null})},t:(a,b,e)=>{function f(m){return new h(Pa.buffer,N[m+4>>2],N[m>>2])}var h=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][b];e=yb(e);ub(a,{name:e,fromWireType:f,Yd:8,readValueFromPointer:f},{Jf:!0})},s:(a,b,e,
f,h,m,n,t,v,x,F,I)=>{e=yb(e);m=ec(h,m);t=ec(n,t);x=ec(v,x);I=ec(F,I);vb([a],[b],O=>{O=O[0];return[new bc(e,O.Ld,!1,!1,!0,O,f,m,t,x,I)]})},Sa:(a,b)=>{b=yb(b);ub(a,{name:b,fromWireType:function(e){for(var f=N[e>>2],h=e+4,m,n=h,t=0;t<=f;++t){var v=h+t;if(t==f||0==Ra[v])n=n?kb(Ra,n,v-n):"",void 0===m?m=n:(m+=String.fromCharCode(0),m+=n),n=v+1}hc(e);return m},toWireType:function(e,f){f instanceof ArrayBuffer&&(f=new Uint8Array(f));var h="string"==typeof f;if(!(h||ArrayBuffer.isView(f)&&1==f.BYTES_PER_ELEMENT))throw new T("Cannot pass non-string to std::string");
var m=h?Aa(f):f.length;var n=Ad(4+m+1),t=n+4;N[n>>2]=m;h?Ba(f,t,m+1):Ra.set(f,t);null!==e&&e.push(hc,n);return n},Yd:8,readValueFromPointer:nb,$d(e){hc(e)}})},M:(a,b,e)=>{e=yb(e);if(2===b){var f=Dc;var h=Ec;var m=Fc;var n=t=>Ta[t>>1]}else 4===b&&(f=Gc,h=Hc,m=Ic,n=t=>N[t>>2]);ub(a,{name:e,fromWireType:t=>{for(var v=N[t>>2],x,F=t+4,I=0;I<=v;++I){var O=t+4+I*b;if(I==v||0==n(O))F=f(F,O-F),void 0===x?x=F:(x+=String.fromCharCode(0),x+=F),F=O+b}hc(t);return x},toWireType:(t,v)=>{if("string"!=typeof v)throw new T(`Cannot pass non-string to C++ string type ${e}`);
var x=m(v),F=Ad(4+x+b);N[F>>2]=x/b;h(v,F+4,x+b);null!==t&&t.push(hc,F);return F},Yd:8,readValueFromPointer:nb,$d(t){hc(t)}})},B:(a,b,e,f,h,m)=>{lb[a]={name:yb(b),af:ec(e,f),fe:ec(h,m),hf:[]}},d:(a,b,e,f,h,m,n,t,v,x)=>{lb[a].hf.push({Bf:yb(b),If:e,Gf:ec(f,h),Hf:m,Sf:n,Rf:ec(t,v),Tf:x})},Ua:(a,b)=>{b=yb(b);ub(a,{bg:!0,name:b,Yd:0,fromWireType:()=>{},toWireType:()=>{}})},Ya:()=>{throw Infinity;},D:(a,b,e)=>{a=xc(a);b=Ac(b,"emval::as");return Jc(b,e,a)},I:(a,b,e,f)=>{a=Kc[a];b=xc(b);return a(null,b,e,
f)},w:(a,b,e,f,h)=>{a=Kc[a];b=xc(b);e=Mc(e);return a(b,b[e],f,h)},c:wc,J:a=>{if(0===a)return Wb(Nc());a=Mc(a);return Wb(Nc()[a])},p:(a,b,e)=>{var f=Pc(a,b),h=f.shift();a--;var m=Array(a);b=`methodCaller<(${f.map(n=>n.name).join(", ")}) => ${h.name}>`;return Oc(Hb(b,(n,t,v,x)=>{for(var F=0,I=0;I<a;++I)m[I]=f[I].readValueFromPointer(x+F),F+=f[I].Yd;n=1===e?Qc(t,m):t.apply(n,m);return Jc(h,v,n)}))},z:(a,b)=>{a=xc(a);b=xc(b);return Wb(a[b])},G:a=>{9<a&&(vc[a+1]+=1)},F:()=>Wb([]),f:a=>Wb(Mc(a)),E:()=>
Wb({}),Qa:a=>{a=xc(a);return!a},m:a=>{var b=xc(a);mb(b);wc(a)},i:(a,b,e)=>{a=xc(a);b=xc(b);e=xc(e);a[b]=e},g:(a,b)=>{a=Ac(a,"_emval_take_value");a=a.readValueFromPointer(b);return Wb(a)},$a:function(){return-52},ab:function(){},lb:(a,b,e,f)=>{var h=(new Date).getFullYear(),m=(new Date(h,0,1)).getTimezoneOffset();h=(new Date(h,6,1)).getTimezoneOffset();N[a>>2]=60*Math.max(m,h);M[b>>2]=Number(m!=h);b=n=>{var t=Math.abs(n);return`UTC${0<=n?"-":"+"}${String(Math.floor(t/60)).padStart(2,"0")}${String(t%
60).padStart(2,"0")}`};a=b(m);b=b(h);h<m?(Ba(a,e,17),Ba(b,f,17)):(Ba(a,f,17),Ba(b,e,17))},Xa:function(a,b,e){if(!(0<=a&&3>=a))return 28;Ua[e>>3]=BigInt(Math.round(1E6*(0===a?Date.now():performance.now())));return 0},Xc:a=>U.activeTexture(a),Yc:(a,b)=>{U.attachShader(Xc[a],$c[b])},Ab:(a,b)=>{U.beginQuery(a,bd[b])},ub:(a,b)=>{U.ee.beginQueryEXT(a,bd[b])},Zc:(a,b,e)=>{U.bindAttribLocation(Xc[a],b,e?kb(Ra,e):"")},_c:(a,b)=>{35051==a?U.Ye=b:35052==a&&(U.ye=b);U.bindBuffer(a,Wc[b])},Zb:od,_b:(a,b)=>{U.bindRenderbuffer(a,
Zc[b])},Hb:(a,b)=>{U.bindSampler(a,cd[b])},$c:(a,b)=>{U.bindTexture(a,ra[b])},tc:pd,wc:pd,ad:(a,b,e,f)=>U.blendColor(a,b,e,f),bd:a=>U.blendEquation(a),cd:(a,b)=>U.blendFunc(a,b),Tb:(a,b,e,f,h,m,n,t,v,x)=>U.blitFramebuffer(a,b,e,f,h,m,n,t,v,x),dd:(a,b,e,f)=>{2<=H.version?e&&b?U.bufferData(a,Ra,f,e,b):U.bufferData(a,b,f):U.bufferData(a,e?Ra.subarray(e,e+b):b,f)},ed:(a,b,e,f)=>{2<=H.version?e&&U.bufferSubData(a,b,Ra,f,e):U.bufferSubData(a,b,Ra.subarray(f,f+e))},$b:a=>U.checkFramebufferStatus(a),fd:qd,
gd:rd,hd:sd,Qb:(a,b,e)=>{e=Number(e);return U.clientWaitSync(dd[a],b,e)},id:(a,b,e,f)=>{U.colorMask(!!a,!!b,!!e,!!f)},jd:a=>{U.compileShader($c[a])},kd:(a,b,e,f,h,m,n,t)=>{2<=H.version?U.ye||!n?U.compressedTexImage2D(a,b,e,f,h,m,n,t):U.compressedTexImage2D(a,b,e,f,h,m,Ra,t,n):U.compressedTexImage2D(a,b,e,f,h,m,Ra.subarray(t,t+n))},ld:(a,b,e,f,h,m,n,t,v)=>{2<=H.version?U.ye||!t?U.compressedTexSubImage2D(a,b,e,f,h,m,n,t,v):U.compressedTexSubImage2D(a,b,e,f,h,m,n,Ra,v,t):U.compressedTexSubImage2D(a,
b,e,f,h,m,n,Ra.subarray(v,v+t))},Sb:(a,b,e,f,h)=>U.copyBufferSubData(a,b,e,f,h),md:(a,b,e,f,h,m,n,t)=>U.copyTexSubImage2D(a,b,e,f,h,m,n,t),nd:()=>{var a=qa(Xc),b=U.createProgram();b.name=a;b.Ue=b.Se=b.Te=0;b.bf=1;Xc[a]=b;return a},od:a=>{var b=qa($c);$c[b]=U.createShader(a);return b},pd:a=>U.cullFace(a),qd:(a,b)=>{for(var e=0;e<a;e++){var f=M[b+4*e>>2],h=Wc[f];h&&(U.deleteBuffer(h),h.name=0,Wc[f]=null,f==U.Ye&&(U.Ye=0),f==U.ye&&(U.ye=0))}},ac:(a,b)=>{for(var e=0;e<a;++e){var f=M[b+4*e>>2],h=Yc[f];
h&&(U.deleteFramebuffer(h),h.name=0,Yc[f]=null)}},rd:a=>{if(a){var b=Xc[a];b?(U.deleteProgram(b),b.name=0,Xc[a]=null):W||=1281}},Cb:(a,b)=>{for(var e=0;e<a;e++){var f=M[b+4*e>>2],h=bd[f];h&&(U.deleteQuery(h),bd[f]=null)}},vb:(a,b)=>{for(var e=0;e<a;e++){var f=M[b+4*e>>2],h=bd[f];h&&(U.ee.deleteQueryEXT(h),bd[f]=null)}},bc:(a,b)=>{for(var e=0;e<a;e++){var f=M[b+4*e>>2],h=Zc[f];h&&(U.deleteRenderbuffer(h),h.name=0,Zc[f]=null)}},Ib:(a,b)=>{for(var e=0;e<a;e++){var f=M[b+4*e>>2],h=cd[f];h&&(U.deleteSampler(h),
h.name=0,cd[f]=null)}},sd:a=>{if(a){var b=$c[a];b?(U.deleteShader(b),$c[a]=null):W||=1281}},Rb:a=>{if(a){var b=dd[a];b?(U.deleteSync(b),b.name=0,dd[a]=null):W||=1281}},td:(a,b)=>{for(var e=0;e<a;e++){var f=M[b+4*e>>2],h=ra[f];h&&(U.deleteTexture(h),h.name=0,ra[f]=null)}},uc:td,xc:td,W:a=>{U.depthMask(!!a)},X:a=>U.disable(a),Y:a=>{U.disableVertexAttribArray(a)},Z:(a,b,e)=>{U.drawArrays(a,b,e)},rc:(a,b,e,f)=>{U.drawArraysInstanced(a,b,e,f)},oc:(a,b,e,f,h)=>{U.gf.drawArraysInstancedBaseInstanceWEBGL(a,
b,e,f,h)},mc:(a,b)=>{for(var e=ud[a],f=0;f<a;f++)e[f]=M[b+4*f>>2];U.drawBuffers(e)},_:(a,b,e,f)=>{U.drawElements(a,b,e,f)},sc:(a,b,e,f,h)=>{U.drawElementsInstanced(a,b,e,f,h)},pc:(a,b,e,f,h,m,n)=>{U.gf.drawElementsInstancedBaseVertexBaseInstanceWEBGL(a,b,e,f,h,m,n)},gc:(a,b,e,f,h,m)=>{U.drawElements(a,f,h,m)},$:a=>U.enable(a),aa:a=>{U.enableVertexAttribArray(a)},Db:a=>U.endQuery(a),wb:a=>{U.ee.endQueryEXT(a)},Nb:(a,b)=>(a=U.fenceSync(a,b))?(b=qa(dd),a.name=b,dd[b]=a,b):0,ba:()=>U.finish(),ca:()=>
U.flush(),cc:(a,b,e,f)=>{U.framebufferRenderbuffer(a,b,e,Zc[f])},dc:(a,b,e,f,h)=>{U.framebufferTexture2D(a,b,e,ra[f],h)},da:a=>U.frontFace(a),ea:(a,b)=>{ld(a,b,"createBuffer",Wc)},ec:(a,b)=>{ld(a,b,"createFramebuffer",Yc)},Eb:(a,b)=>{ld(a,b,"createQuery",bd)},xb:(a,b)=>{for(var e=0;e<a;e++){var f=U.ee.createQueryEXT();if(!f){for(W||=1282;e<a;)M[b+4*e++>>2]=0;break}var h=qa(bd);f.name=h;bd[h]=f;M[b+4*e>>2]=h}},fc:(a,b)=>{ld(a,b,"createRenderbuffer",Zc)},Jb:(a,b)=>{ld(a,b,"createSampler",cd)},fa:(a,
b)=>{ld(a,b,"createTexture",ra)},qc:vd,yc:vd,Vb:a=>U.generateMipmap(a),ga:(a,b,e)=>{e?M[e>>2]=U.getBufferParameter(a,b):W||=1281},ha:()=>{var a=U.getError()||W;W=0;return a},ia:(a,b)=>xd(a,b,2),Wb:(a,b,e,f)=>{a=U.getFramebufferAttachmentParameter(a,b,e);if(a instanceof WebGLRenderbuffer||a instanceof WebGLTexture)a=a.name|0;M[f>>2]=a},ja:yd,ka:(a,b,e,f)=>{a=U.getProgramInfoLog(Xc[a]);null===a&&(a="(unknown error)");b=0<b&&f?Ba(a,f,b):0;e&&(M[e>>2]=b)},la:(a,b,e)=>{if(e)if(a>=Vc)W||=1281;else if(a=
Xc[a],35716==b)a=U.getProgramInfoLog(a),null===a&&(a="(unknown error)"),M[e>>2]=a.length+1;else if(35719==b){if(!a.Ue){var f=U.getProgramParameter(a,35718);for(b=0;b<f;++b)a.Ue=Math.max(a.Ue,U.getActiveUniform(a,b).name.length+1)}M[e>>2]=a.Ue}else if(35722==b){if(!a.Se)for(f=U.getProgramParameter(a,35721),b=0;b<f;++b)a.Se=Math.max(a.Se,U.getActiveAttrib(a,b).name.length+1);M[e>>2]=a.Se}else if(35381==b){if(!a.Te)for(f=U.getProgramParameter(a,35382),b=0;b<f;++b)a.Te=Math.max(a.Te,U.getActiveUniformBlockName(a,
b).length+1);M[e>>2]=a.Te}else M[e>>2]=U.getProgramParameter(a,b);else W||=1281},rb:zd,sb:zd,Fb:(a,b,e)=>{if(e){a=U.getQueryParameter(bd[a],b);var f;"boolean"==typeof a?f=a?1:0:f=a;M[e>>2]=f}else W||=1281},yb:(a,b,e)=>{if(e){a=U.ee.getQueryObjectEXT(bd[a],b);var f;"boolean"==typeof a?f=a?1:0:f=a;M[e>>2]=f}else W||=1281},Gb:(a,b,e)=>{e?M[e>>2]=U.getQuery(a,b):W||=1281},zb:(a,b,e)=>{e?M[e>>2]=U.ee.getQueryEXT(a,b):W||=1281},Xb:(a,b,e)=>{e?M[e>>2]=U.getRenderbufferParameter(a,b):W||=1281},ma:(a,b,e,
f)=>{a=U.getShaderInfoLog($c[a]);null===a&&(a="(unknown error)");b=0<b&&f?Ba(a,f,b):0;e&&(M[e>>2]=b)},ob:(a,b,e,f)=>{a=U.getShaderPrecisionFormat(a,b);M[e>>2]=a.rangeMin;M[e+4>>2]=a.rangeMax;M[f>>2]=a.precision},na:(a,b,e)=>{e?35716==b?(a=U.getShaderInfoLog($c[a]),null===a&&(a="(unknown error)"),M[e>>2]=a?a.length+1:0):35720==b?(a=U.getShaderSource($c[a]),M[e>>2]=a?a.length+1:0):M[e>>2]=U.getShaderParameter($c[a],b):W||=1281},oa:Cd,vc:Dd,pa:(a,b)=>{b=b?kb(Ra,b):"";if(a=Xc[a]){var e=a,f=e.He,h=e.nf,
m;if(!f){e.He=f={};e.mf={};var n=U.getProgramParameter(e,35718);for(m=0;m<n;++m){var t=U.getActiveUniform(e,m);var v=t.name;t=t.size;var x=Ed(v);x=0<x?v.slice(0,x):v;var F=e.bf;e.bf+=t;h[x]=[t,F];for(v=0;v<t;++v)f[F]=v,e.mf[F++]=x}}e=a.He;f=0;h=b;m=Ed(b);0<m&&(f=parseInt(b.slice(m+1))>>>0,h=b.slice(0,m));if((h=a.nf[h])&&f<h[0]&&(f+=h[1],e[f]=e[f]||U.getUniformLocation(a,b)))return f}else W||=1281;return-1},pb:(a,b,e)=>{for(var f=ud[b],h=0;h<b;h++)f[h]=M[e+4*h>>2];U.invalidateFramebuffer(a,f)},qb:(a,
b,e,f,h,m,n)=>{for(var t=ud[b],v=0;v<b;v++)t[v]=M[e+4*v>>2];U.invalidateSubFramebuffer(a,t,f,h,m,n)},Ob:a=>U.isSync(dd[a]),qa:a=>(a=ra[a])?U.isTexture(a):0,ra:a=>U.lineWidth(a),sa:a=>{a=Xc[a];U.linkProgram(a);a.He=0;a.nf={}},kc:(a,b,e,f,h,m)=>{U.kf.multiDrawArraysInstancedBaseInstanceWEBGL(a,M,b>>2,M,e>>2,M,f>>2,N,h>>2,m)},lc:(a,b,e,f,h,m,n,t)=>{U.kf.multiDrawElementsInstancedBaseVertexBaseInstanceWEBGL(a,M,b>>2,e,M,f>>2,M,h>>2,M,m>>2,N,n>>2,t)},ta:(a,b)=>{3317==a?gd=b:3314==a&&(hd=b);U.pixelStorei(a,
b)},tb:(a,b)=>{U.ee.queryCounterEXT(bd[a],b)},nc:a=>U.readBuffer(a),ua:(a,b,e,f,h,m,n)=>{if(2<=H.version)if(U.Ye)U.readPixels(a,b,e,f,h,m,n);else{var t=Fd(m);n>>>=31-Math.clz32(t.BYTES_PER_ELEMENT);U.readPixels(a,b,e,f,h,m,t,n)}else(t=Gd(m,h,e,f,n))?U.readPixels(a,b,e,f,h,m,t):W||=1280},Yb:(a,b,e,f)=>U.renderbufferStorage(a,b,e,f),Ub:(a,b,e,f,h)=>U.renderbufferStorageMultisample(a,b,e,f,h),Kb:(a,b,e)=>{U.samplerParameterf(cd[a],b,e)},Lb:(a,b,e)=>{U.samplerParameteri(cd[a],b,e)},Mb:(a,b,e)=>{U.samplerParameteri(cd[a],
b,M[e>>2])},va:(a,b,e,f)=>U.scissor(a,b,e,f),wa:(a,b,e,f)=>{for(var h="",m=0;m<b;++m){var n=(n=N[e+4*m>>2])?kb(Ra,n,f?N[f+4*m>>2]:void 0):"";h+=n}U.shaderSource($c[a],h)},xa:(a,b,e)=>U.stencilFunc(a,b,e),ya:(a,b,e,f)=>U.stencilFuncSeparate(a,b,e,f),za:a=>U.stencilMask(a),Aa:(a,b)=>U.stencilMaskSeparate(a,b),Ba:(a,b,e)=>U.stencilOp(a,b,e),Ca:(a,b,e,f)=>U.stencilOpSeparate(a,b,e,f),Da:(a,b,e,f,h,m,n,t,v)=>{if(2<=H.version){if(U.ye){U.texImage2D(a,b,e,f,h,m,n,t,v);return}if(v){var x=Fd(t);v>>>=31-Math.clz32(x.BYTES_PER_ELEMENT);
U.texImage2D(a,b,e,f,h,m,n,t,x,v);return}}x=v?Gd(t,n,f,h,v):null;U.texImage2D(a,b,e,f,h,m,n,t,x)},Ea:(a,b,e)=>U.texParameterf(a,b,e),Fa:(a,b,e)=>{U.texParameterf(a,b,R[e>>2])},Ga:(a,b,e)=>U.texParameteri(a,b,e),Ha:(a,b,e)=>{U.texParameteri(a,b,M[e>>2])},hc:(a,b,e,f,h)=>U.texStorage2D(a,b,e,f,h),Ia:(a,b,e,f,h,m,n,t,v)=>{if(2<=H.version){if(U.ye){U.texSubImage2D(a,b,e,f,h,m,n,t,v);return}if(v){var x=Fd(t);U.texSubImage2D(a,b,e,f,h,m,n,t,x,v>>>31-Math.clz32(x.BYTES_PER_ELEMENT));return}}v=v?Gd(t,n,h,
m,v):null;U.texSubImage2D(a,b,e,f,h,m,n,t,v)},Ja:(a,b)=>{U.uniform1f(Y(a),b)},Ka:(a,b,e)=>{if(2<=H.version)b&&U.uniform1fv(Y(a),R,e>>2,b);else{if(288>=b)for(var f=Hd[b],h=0;h<b;++h)f[h]=R[e+4*h>>2];else f=R.subarray(e>>2,e+4*b>>2);U.uniform1fv(Y(a),f)}},Tc:(a,b)=>{U.uniform1i(Y(a),b)},Uc:(a,b,e)=>{if(2<=H.version)b&&U.uniform1iv(Y(a),M,e>>2,b);else{if(288>=b)for(var f=Id[b],h=0;h<b;++h)f[h]=M[e+4*h>>2];else f=M.subarray(e>>2,e+4*b>>2);U.uniform1iv(Y(a),f)}},Vc:(a,b,e)=>{U.uniform2f(Y(a),b,e)},Wc:(a,
b,e)=>{if(2<=H.version)b&&U.uniform2fv(Y(a),R,e>>2,2*b);else{if(144>=b){b*=2;for(var f=Hd[b],h=0;h<b;h+=2)f[h]=R[e+4*h>>2],f[h+1]=R[e+(4*h+4)>>2]}else f=R.subarray(e>>2,e+8*b>>2);U.uniform2fv(Y(a),f)}},Sc:(a,b,e)=>{U.uniform2i(Y(a),b,e)},Rc:(a,b,e)=>{if(2<=H.version)b&&U.uniform2iv(Y(a),M,e>>2,2*b);else{if(144>=b){b*=2;for(var f=Id[b],h=0;h<b;h+=2)f[h]=M[e+4*h>>2],f[h+1]=M[e+(4*h+4)>>2]}else f=M.subarray(e>>2,e+8*b>>2);U.uniform2iv(Y(a),f)}},Qc:(a,b,e,f)=>{U.uniform3f(Y(a),b,e,f)},Pc:(a,b,e)=>{if(2<=
H.version)b&&U.uniform3fv(Y(a),R,e>>2,3*b);else{if(96>=b){b*=3;for(var f=Hd[b],h=0;h<b;h+=3)f[h]=R[e+4*h>>2],f[h+1]=R[e+(4*h+4)>>2],f[h+2]=R[e+(4*h+8)>>2]}else f=R.subarray(e>>2,e+12*b>>2);U.uniform3fv(Y(a),f)}},Oc:(a,b,e,f)=>{U.uniform3i(Y(a),b,e,f)},Nc:(a,b,e)=>{if(2<=H.version)b&&U.uniform3iv(Y(a),M,e>>2,3*b);else{if(96>=b){b*=3;for(var f=Id[b],h=0;h<b;h+=3)f[h]=M[e+4*h>>2],f[h+1]=M[e+(4*h+4)>>2],f[h+2]=M[e+(4*h+8)>>2]}else f=M.subarray(e>>2,e+12*b>>2);U.uniform3iv(Y(a),f)}},Mc:(a,b,e,f,h)=>{U.uniform4f(Y(a),
b,e,f,h)},Lc:(a,b,e)=>{if(2<=H.version)b&&U.uniform4fv(Y(a),R,e>>2,4*b);else{if(72>=b){var f=Hd[4*b],h=R;e>>=2;b*=4;for(var m=0;m<b;m+=4){var n=e+m;f[m]=h[n];f[m+1]=h[n+1];f[m+2]=h[n+2];f[m+3]=h[n+3]}}else f=R.subarray(e>>2,e+16*b>>2);U.uniform4fv(Y(a),f)}},zc:(a,b,e,f,h)=>{U.uniform4i(Y(a),b,e,f,h)},Ac:(a,b,e)=>{if(2<=H.version)b&&U.uniform4iv(Y(a),M,e>>2,4*b);else{if(72>=b){b*=4;for(var f=Id[b],h=0;h<b;h+=4)f[h]=M[e+4*h>>2],f[h+1]=M[e+(4*h+4)>>2],f[h+2]=M[e+(4*h+8)>>2],f[h+3]=M[e+(4*h+12)>>2]}else f=
M.subarray(e>>2,e+16*b>>2);U.uniform4iv(Y(a),f)}},Bc:(a,b,e,f)=>{if(2<=H.version)b&&U.uniformMatrix2fv(Y(a),!!e,R,f>>2,4*b);else{if(72>=b){b*=4;for(var h=Hd[b],m=0;m<b;m+=4)h[m]=R[f+4*m>>2],h[m+1]=R[f+(4*m+4)>>2],h[m+2]=R[f+(4*m+8)>>2],h[m+3]=R[f+(4*m+12)>>2]}else h=R.subarray(f>>2,f+16*b>>2);U.uniformMatrix2fv(Y(a),!!e,h)}},Cc:(a,b,e,f)=>{if(2<=H.version)b&&U.uniformMatrix3fv(Y(a),!!e,R,f>>2,9*b);else{if(32>=b){b*=9;for(var h=Hd[b],m=0;m<b;m+=9)h[m]=R[f+4*m>>2],h[m+1]=R[f+(4*m+4)>>2],h[m+2]=R[f+
(4*m+8)>>2],h[m+3]=R[f+(4*m+12)>>2],h[m+4]=R[f+(4*m+16)>>2],h[m+5]=R[f+(4*m+20)>>2],h[m+6]=R[f+(4*m+24)>>2],h[m+7]=R[f+(4*m+28)>>2],h[m+8]=R[f+(4*m+32)>>2]}else h=R.subarray(f>>2,f+36*b>>2);U.uniformMatrix3fv(Y(a),!!e,h)}},Dc:(a,b,e,f)=>{if(2<=H.version)b&&U.uniformMatrix4fv(Y(a),!!e,R,f>>2,16*b);else{if(18>=b){var h=Hd[16*b],m=R;f>>=2;b*=16;for(var n=0;n<b;n+=16){var t=f+n;h[n]=m[t];h[n+1]=m[t+1];h[n+2]=m[t+2];h[n+3]=m[t+3];h[n+4]=m[t+4];h[n+5]=m[t+5];h[n+6]=m[t+6];h[n+7]=m[t+7];h[n+8]=m[t+8];h[n+
9]=m[t+9];h[n+10]=m[t+10];h[n+11]=m[t+11];h[n+12]=m[t+12];h[n+13]=m[t+13];h[n+14]=m[t+14];h[n+15]=m[t+15]}}else h=R.subarray(f>>2,f+64*b>>2);U.uniformMatrix4fv(Y(a),!!e,h)}},Ec:a=>{a=Xc[a];U.useProgram(a);U.yf=a},Fc:(a,b)=>U.vertexAttrib1f(a,b),Gc:(a,b)=>{U.vertexAttrib2f(a,R[b>>2],R[b+4>>2])},Hc:(a,b)=>{U.vertexAttrib3f(a,R[b>>2],R[b+4>>2],R[b+8>>2])},Ic:(a,b)=>{U.vertexAttrib4f(a,R[b>>2],R[b+4>>2],R[b+8>>2],R[b+12>>2])},ic:(a,b)=>{U.vertexAttribDivisor(a,b)},jc:(a,b,e,f,h)=>{U.vertexAttribIPointer(a,
b,e,f,h)},Jc:(a,b,e,f,h,m)=>{U.vertexAttribPointer(a,b,e,!!f,h,m)},Kc:(a,b,e,f)=>U.viewport(a,b,e,f),Pb:(a,b,e)=>{e=Number(e);U.waitSync(dd[a],b,e)},Za:a=>{var b=Ra.length;a>>>=0;if(2147483648<a)return!1;for(var e=1;4>=e;e*=2){var f=b*(1+.2/e);f=Math.min(f,a+100663296);a:{f=(Math.min(2147483648,65536*Math.ceil(Math.max(a,f)/65536))-La.buffer.byteLength+65535)/65536|0;try{La.grow(f);Xa();var h=1;break a}catch(m){}h=void 0}if(h)return!0}return!1},Va:()=>H?H.handle:0,cb:(a,b)=>{var e=0,f=0,h;for(h of Ld()){var m=
b+e;N[a+f>>2]=m;e+=Ba(h,m,Infinity)+1;f+=4}return 0},db:(a,b)=>{var e=Ld();N[a>>2]=e.length;a=0;for(var f of e)a+=Aa(f)+1;N[b>>2]=a;return 0},mb:a=>{Da(a,new ib(a))},N:()=>52,_a:function(){return 52},ib:()=>52,bb:function(){return 70},R:(a,b,e,f)=>{for(var h=0,m=0;m<e;m++){var n=N[b>>2],t=N[b+4>>2];b+=8;for(var v=0;v<t;v++){var x=a,F=Ra[n+v],I=Md[x];0===F||10===F?((1===x?Ja:Ka)(kb(I)),I.length=0):I.push(F)}h+=t}N[f>>2]=h;return 0},vd:od,Wa:qd,ud:rd,Bb:sd,L:yd,O:Cd,La:Dd,Ma:Sd,h:Td,q:Ud,j:Vd,H:Wd,
nb:Xd,V:Yd,U:Zd,K:$d,n:ae,o:be,v:ce,r:de,Pa:ee,Na:fe,Oa:ge},ie=await (async function(){Ya++;var a={a:he};eb??=u.locateFile?u.locateFile("canvaskit.wasm",Ea):Ea+"canvaskit.wasm";try{return ie=(await hb(a)).instance.exports,La=ie.wd,Xa(),dc=ie.zd,Ya--,0==Ya&&bb&&(a=bb,bb=null,a()),ie}catch(b){return ha(b),Promise.reject(b)}}()),gc=ie.yd,Ad=u._malloc=ie.Ad,hc=u._free=ie.Bd,je=ie.Cd,ke=ie.Dd,le=ie.Ed;
function Vd(a,b,e,f){var h=le();try{return dc.get(a)(b,e,f)}catch(m){ke(h);if(m!==m+0)throw m;je(1,0)}}function ee(a,b,e,f,h,m){var n=le();try{dc.get(a)(b,e,f,h,m)}catch(t){ke(n);if(t!==t+0)throw t;je(1,0)}}function de(a,b,e,f,h){var m=le();try{dc.get(a)(b,e,f,h)}catch(n){ke(m);if(n!==n+0)throw n;je(1,0)}}function be(a,b,e){var f=le();try{dc.get(a)(b,e)}catch(h){ke(f);if(h!==h+0)throw h;je(1,0)}}
function Wd(a,b,e,f,h){var m=le();try{return dc.get(a)(b,e,f,h)}catch(n){ke(m);if(n!==n+0)throw n;je(1,0)}}function Td(a,b){var e=le();try{return dc.get(a)(b)}catch(f){ke(e);if(f!==f+0)throw f;je(1,0)}}function ce(a,b,e,f){var h=le();try{dc.get(a)(b,e,f)}catch(m){ke(h);if(m!==m+0)throw m;je(1,0)}}function ae(a,b){var e=le();try{dc.get(a)(b)}catch(f){ke(e);if(f!==f+0)throw f;je(1,0)}}
function ge(a,b,e,f,h,m,n,t,v,x){var F=le();try{dc.get(a)(b,e,f,h,m,n,t,v,x)}catch(I){ke(F);if(I!==I+0)throw I;je(1,0)}}function $d(a){var b=le();try{dc.get(a)()}catch(e){ke(b);if(e!==e+0)throw e;je(1,0)}}function Ud(a,b,e){var f=le();try{return dc.get(a)(b,e)}catch(h){ke(f);if(h!==h+0)throw h;je(1,0)}}function fe(a,b,e,f,h,m,n){var t=le();try{dc.get(a)(b,e,f,h,m,n)}catch(v){ke(t);if(v!==v+0)throw v;je(1,0)}}
function Sd(a){var b=le();try{return dc.get(a)()}catch(e){ke(b);if(e!==e+0)throw e;je(1,0)}}function Yd(a,b,e,f,h,m,n,t){var v=le();try{return dc.get(a)(b,e,f,h,m,n,t)}catch(x){ke(v);if(x!==x+0)throw x;je(1,0)}}function Zd(a,b,e,f,h,m,n,t,v,x){var F=le();try{return dc.get(a)(b,e,f,h,m,n,t,v,x)}catch(I){ke(F);if(I!==I+0)throw I;je(1,0)}}function Xd(a,b,e,f,h,m,n){var t=le();try{return dc.get(a)(b,e,f,h,m,n)}catch(v){ke(t);if(v!==v+0)throw v;je(1,0)}}
function me(){0<Ya?bb=me:0<Ya?bb=me:(u.calledRun=!0,Oa||(ie.xd(),da(u),u.onRuntimeInitialized?.()))}me();moduleRtn=ka;
return moduleRtn;
}
);
})();
if (typeof exports === 'object' && typeof module === 'object') {
module.exports = CanvasKitInit;
// This default export looks redundant, but it allows TS to import this
// commonjs style module.
module.exports.default = CanvasKitInit;
} else if (typeof define === 'function' && define['amd'])
define([], () => CanvasKitInit);