@m2c2kit/core 0.1.5 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +7 -7
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -724,7 +724,7 @@ declare class Game implements Activity {
|
|
|
724
724
|
/**
|
|
725
725
|
* Should be called when the current trial has completed. It will
|
|
726
726
|
* also increment the trial index.
|
|
727
|
-
* Calling this will trigger the
|
|
727
|
+
* Calling this will trigger the onGameTrialComplete callback function,
|
|
728
728
|
* if one was provided in SessionOptions. This is how the game communicates
|
|
729
729
|
* trial data to the parent session, which can then save or process the data.
|
|
730
730
|
* It is the responsibility of the the game programmer to call this at
|
|
@@ -733,9 +733,9 @@ declare class Game implements Activity {
|
|
|
733
733
|
trialComplete(): void;
|
|
734
734
|
/**
|
|
735
735
|
* Should be called when the current game has ended. This will trigger
|
|
736
|
-
* the
|
|
737
|
-
* This is how the game
|
|
738
|
-
* parent session.
|
|
736
|
+
* the onGameLifecycleChange callback function, if one was provided in
|
|
737
|
+
* SessionOptions. This is how the game can communicate its ended or
|
|
738
|
+
* "finished" state to the parent session.
|
|
739
739
|
* It is the responsibility of the the game programmer to call this at
|
|
740
740
|
* the appropriate time. It is not triggered automatically.
|
|
741
741
|
*/
|
|
@@ -789,9 +789,9 @@ interface GameTrialEvent extends GameEvent {
|
|
|
789
789
|
}
|
|
790
790
|
|
|
791
791
|
interface GameCallbacks {
|
|
792
|
-
/** Callback executed when the
|
|
793
|
-
|
|
794
|
-
/** Callback executed when a game trial
|
|
792
|
+
/** Callback executed when the game lifecycle changes, such as when it ends. */
|
|
793
|
+
onGameLifecycleChange?: (event: GameLifecycleEvent) => void;
|
|
794
|
+
/** Callback executed when a game trial completes. */
|
|
795
795
|
onGameTrialComplete?: (event: GameTrialEvent) => void;
|
|
796
796
|
}
|
|
797
797
|
|
package/dist/index.js
CHANGED
|
@@ -12,5 +12,5 @@ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
|
12
12
|
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
13
13
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
14
14
|
PERFORMANCE OF THIS SOFTWARE.
|
|
15
|
-
***************************************************************************** */function l(t,e,n,r){return new(n||(n=Promise))((function(i,a){function o(t){try{l(r.next(t))}catch(t){a(t)}}function s(t){try{l(r.throw(t))}catch(t){a(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(o,s)}l((r=r.apply(t,e||[])).next())}))}class c{constructor(){this.now=NaN,this.deltaTime=NaN,this.canvasScale=NaN,this.rootScale=1,this.canvasCssWidth=NaN,this.canvasCssHeight=NaN}}globalThis.Globals=new c;class u{constructor(t,e,n,r){this.name=t,this.image=e,this.width=n,this.height=r}}class h{constructor(t,e,n,r){this.name=t,this.dataUrlImage=e,this.width=n,this.height=r}}class f{}class d{}class p{constructor(){this.renderedImages=new f,this.loadedImages=new d}getLoadedImage(t,e){return this.loadedImages[t][e]}addLoadedImage(t,e){this.loadedImages[e]||(this.loadedImages[e]={}),this.loadedImages[e][t.name]=t}renderImages(t){const e=new Array;return t.forEach((t=>{if(t.images){const n=(t=>t.filter(((e,n)=>t.indexOf(e)!=n)))(t.images.map((t=>t.name)));if(n.length>0)throw new Error("image names must be unique. these image names are duplicated within a game: "+n.join(", "));t.images.map((n=>{e.push(this.renderBrowserImage(t.uuid,n))}))}})),Promise.all(e)}loadAllGamesRenderedImages(){Object.keys(this.renderedImages).forEach((t=>{Object.keys(this.renderedImages[t]).forEach((e=>{const n=this.convertRenderedDataUrlImageToCanvasKitImage(this.renderedImages[t][e]);this.loadedImages[t]||(this.loadedImages[t]={}),this.addLoadedImage(n,t)}))}))}renderBrowserImage(t,e){const n=document.createElement("img");return new Promise((r=>{if(n.width=e.width,n.height=e.height,n.crossOrigin="Anonymous",n.onload=()=>{if(!this.scratchCanvas||!this.ctx||!this.scale)throw new Error("image manager not set up");this.scratchCanvas.width=e.width*this.scale,this.scratchCanvas.height=e.height*this.scale,this.ctx.scale(this.scale,this.scale),this.ctx.clearRect(0,0,e.width,e.height),this.ctx.drawImage(n,0,0,e.width,e.height);const i=this.scratchCanvas.toDataURL(),a=new h(e.name,i,e.width,e.height);n.remove(),this.renderedImages[t]||(this.renderedImages[t]={}),this.renderedImages[t][e.name]=a,r()},n.onerror=()=>{const n=new h(e.name,"",0,0);this.renderedImages[t]||(this.renderedImages[t]={}),this.renderedImages[t][e.name]=n,r()},e.svgString&&e.url)throw new Error("provide svg string or url. both were provided");if(e.svgString)n.src="data:image/svg+xml,"+encodeURIComponent(e.svgString);else{if(!e.url)throw new Error("no svg string or url provided");n.src=e.url}}))}convertRenderedDataUrlImageToCanvasKitImage(t){if(!this.canvasKit)throw new Error("canvasKit undefined");let e=null;try{e=this.canvasKit.MakeImageFromEncoded(this.dataURLtoArrayBuffer(t.dataUrlImage))}catch(e){throw new Error(`could not create image with name "${t.name}"`)}if(null===e)throw new Error(`could not create image with name "${t.name}"`);const n=new u(t.name,e,t.width,t.height);return console.log(`image loaded. name: ${t.name}, w: ${t.width}, h: ${t.height}`),n}get scratchCanvas(){if(!this._scratchCanvas){this._scratchCanvas=document.createElement("canvas"),this._scratchCanvas.id="m2c2kitscratchcanvas",this._scratchCanvas.hidden=!0,document.body.appendChild(this._scratchCanvas);const t=this._scratchCanvas.getContext("2d");if(null===t)throw new Error("could not get 2d canvas context from scratch canvas");this.ctx=t,this.scale=window.devicePixelRatio}return this._scratchCanvas}dataURLtoArrayBuffer(t){const e=t.split(","),n=atob(e[1]);let r=n.length;const i=new Uint8Array(r);for(;r--;)i[r]=n.charCodeAt(r);return i.buffer}}function m(t,e){return function(t,e){for(var n=function(t){return w(t,4)}(t),r={tag:"",checksum:"",contents:"",length:""},i=0;i<n;++i){var a=12+16*i,o=A(t.buffer.slice(a,a+4));if(o===e)return r.tag=o,r.checksum=b(t,a+4),r.contents=b(t,a+8),r.length=b(t,a+24),r}return r}(t,e).contents}const g={meta:{property:[],description:[],license:[],reference:[]},tables:{name:{},post:{},os2:{version:"",weightClass:""}}};function y(t){return 2147483648&t&&(t=-(1+~t)),t/65536}function v(t,e){return t.getInt16(e)}function w(t,e){return t.getUint16(e)}function b(t,e){return t.getUint32(e)}function A(t){return new TextDecoder("utf-8").decode(new Uint8Array(t))}function S(t){return g.tables.name=function(t){for(var e=m(t,"name"),n=w(t,e+4),r=w(t,e+2),i=n+e,a={},o=0;o<r;o++){var s=e+6+12*o,l=w(t,s+6),c=w(t,s+8),u=w(t,s+10);a.hasOwnProperty(l)||(a[l]=A(t.buffer.slice(i+u,i+u+c)))}return a}(t),g.tables.post=function(t){var e=m(t,"post");return{format:y(b(t,e+0)),italicAngle:y(b(t,e+4)),underlinePosition:v(t,e+12),underlineThickness:v(t,e+14),isFixedPitch:b(t,e+16),minMemType42:b(t,e+7),maxMemType42:b(t,e+9),minMemType1:b(t,e+11),maxMemType1:b(t,e+13)}}(t),g.tables.os2=function(t){var e=m(t,"OS/2");return{version:w(t,e+0),weightClass:w(t,e+4)}}(t),g.meta=function(t){var e={property:[],description:[],license:[],reference:[]};for(const s in t)if(t.hasOwnProperty(s)){const l=parseInt(s);var n=l;const c=t[l].trim();if((o=c.replace("~\r\n?~","\n").split("\n").map((t=>t.trim())).filter((t=>t))).length>1){var r=10==l?"description":"license";e[r]=[];for(const t in o)if(o.hasOwnProperty(t)){var i=o[t].trim();e[r].push({name:_(i),text:i})}}else if(c){if(/^s?https?:\/\/[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+$/.test(c))e.reference.findIndex((t=>t.text==c))<0&&e.reference.push({name:"url",text:c});else if(l>0&&l<6){var a=C[n].replace(" ","-").toLowerCase();e.property.push({name:a,text:c})}else if(C.hasOwnProperty(l))if(0==l||7==l){var o=c.replace(/---+/,"\n").split("\n").map((t=>t.trim())).filter((t=>t));for(const t in o)if(o.hasOwnProperty(t)){i=o[t].trim();e.description.push({name:_(i),text:i})}}else if(13==l)e.license.push({name:_(c),text:c});else{a=C[n].replace(" ","-").toLowerCase();e.property.push({name:a,text:c})}}}return e}(g.tables.name),g}function T(t){try{return S(t),g}catch(t){throw"error processing ttf"}}const C={0:"Copyright",1:"Font Family",2:"Font Subfamily",3:"Unique identifier",4:"Full name",5:"Version",6:"Postscript name",7:"Note",8:"Company",9:"Author",10:"Description",11:"URL",12:"URL",13:"License",14:"URL",16:"Name"},_=(t="")=>/^[^a-z]*$/.test(t)?t.split(" ").length>4?"paragraph":"title":"paragraph";class P{}class M{constructor(){this.gameTypefaces=new P}getTypeface(t,e){return this.gameTypefaces[t][e]}fetchFonts(t){const e=new Array;return t.forEach((t=>{const n=this.fetchGameFontsAsArrayBuffers(t.uuid,t.fontUrls);e.push(n)})),Promise.all(e).then((t=>{this.allGamesFontData=t.flat()}))}loadAllGamesFontData(){if(!this.allGamesFontData)throw new Error("allGamesFontData is undefined");Array.from(new Set(this.allGamesFontData.map((t=>t.gameUuid)))).forEach((t=>{if(!this.allGamesFontData)throw new Error("allGamesFontData is undefined");const e=this.allGamesFontData.filter((e=>e.gameUuid===t)).map((t=>t.fontArrayBuffer));this.loadGameFonts(t,e)}))}fetchGameFontsAsArrayBuffers(t,e){const n=e.map((e=>fetch(e).then((t=>t.arrayBuffer())).then((n=>({gameUuid:t,fontUrl:e,fontArrayBuffer:n})))));return Promise.all(n)}loadGameFonts(t,e){var n;if(!this.canvasKit)throw new Error("canvasKit undefined");if(this.fontMgr=null!==(n=this.canvasKit.FontMgr.FromData(...e))&&void 0!==n?n:void 0,!this.fontMgr)throw new Error("error creating FontMgr while loading fonts");e.forEach((e=>{var n;const r=null===(n=T(new DataView(e)).meta.property.filter((t=>"font-family"===t.name)).find(Boolean))||void 0===n?void 0:n.text;if(void 0===r)throw new Error("error loading fonts. could not get font-family from font array buffer");if(console.log("font loaded. font family: "+r),!this.canvasKit)throw new Error("canvasKit undefined");const i=this.canvasKit.Typeface.MakeFreeTypeFaceFromData(e);if(!i)throw new Error("cannot make typeface from font array buffer");this.gameTypefaces[t]||(this.gameTypefaces[t]={}),this.gameTypefaces[t][r]=i}))}}function F(t){if(t.__esModule)return t;var e=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(t).forEach((function(n){var r=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(e,n,r.get?r:{enumerable:!0,get:function(){return t[n]}})})),e}var E={exports:{}};var x=F(Object.freeze({__proto__:null,path_empty_shim:function(){}}));var k=F(Object.freeze({__proto__:null,fs_empty_shim:function(){}}));!function(t,e){var n,r=(n="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,"undefined"!=typeof __filename&&(n=n||__filename),function(t){var e,r,i,a;t=t||{},e||(e=void 0!==t?t:{}),e.ready=new Promise((function(t,e){r=t,i=e})),(a=e).Vd=a.Vd||[],a.Vd.push((function(){a.MakeSWCanvasSurface=function(t){var e=t;if("CANVAS"!==e.tagName&&!(e=document.getElementById(t)))throw"Canvas with id "+t+" was not found";return(t=a.MakeSurface(e.width,e.height))&&(t.Nd=e),t},a.MakeCanvasSurface||(a.MakeCanvasSurface=a.MakeSWCanvasSurface),a.MakeSurface=function(t,e){var n={width:t,height:e,colorType:a.ColorType.RGBA_8888,alphaType:a.AlphaType.Unpremul,colorSpace:a.ColorSpace.SRGB},r=t*e*4,i=a._malloc(r);return(n=a.Surface._makeRasterDirect(n,i,4*t))&&(n.Nd=null,n.zf=t,n.wf=e,n.yf=r,n.af=i,n.getCanvas().clear(a.TRANSPARENT)),n},a.MakeRasterDirectSurface=function(t,e,n){return a.Surface._makeRasterDirect(t,e.byteOffset,n)},a.Surface.prototype.flush=function(t){if(a.Od(this.Md),this._flush(),this.Nd){var e=new Uint8ClampedArray(a.HEAPU8.buffer,this.af,this.yf);e=new ImageData(e,this.zf,this.wf),t?this.Nd.getContext("2d").putImageData(e,0,0,t[0],t[1],t[2]-t[0],t[3]-t[1]):this.Nd.getContext("2d").putImageData(e,0,0)}},a.Surface.prototype.dispose=function(){this.af&&a._free(this.af),this.delete()},a.Od=a.Od||function(){}})),function(t){t.Vd=t.Vd||[],t.Vd.push((function(){function e(t,e,n){return t&&t.hasOwnProperty(e)?t[e]:n}function n(t){var e=Ee.length;return e||(Ee.push(null),e=1),Ee.push(t),e}function r(t){return t.naturalHeight||t.videoHeight||t.displayHeight||t.height}function i(t){return t.naturalWidth||t.videoWidth||t.displayWidth||t.width}t.GetWebGLContext=function(t,n){if(!t)throw"null canvas passed into makeWebGLContext";var r={alpha:e(n,"alpha",1),depth:e(n,"depth",1),stencil:e(n,"stencil",8),antialias:e(n,"antialias",0),premultipliedAlpha:e(n,"premultipliedAlpha",1),preserveDrawingBuffer:e(n,"preserveDrawingBuffer",0),preferLowPowerToHighPerformance:e(n,"preferLowPowerToHighPerformance",0),failIfMajorPerformanceCaveat:e(n,"failIfMajorPerformanceCaveat",0),enableExtensionsByDefault:e(n,"enableExtensionsByDefault",1),explicitSwapControl:e(n,"explicitSwapControl",0),renderViaOffscreenBackBuffer:e(n,"renderViaOffscreenBackBuffer",0)};if(r.majorVersion=n&&n.majorVersion?n.majorVersion:"undefined"!=typeof WebGL2RenderingContext?2:1,r.explicitSwapControl)throw"explicitSwapControl is not supported";return t=function(t,e){t.rf||(t.rf=t.getContext,t.getContext=function(e,n){return"webgl"==e==(n=t.rf(e,n))instanceof WebGLRenderingContext?n:null});var n=1<e.majorVersion?t.getContext("webgl2",e):t.getContext("webgl",e);return n?function(t,e){var n=Ue(Oe),r={Rf:n,attributes:e,version:e.majorVersion,le:t};return t.canvas&&(t.canvas.vf=r),Oe[n]=r,(void 0===e.Gf||e.Gf)&&function(t){if(t||(t=je),!t.Uf){t.Uf=!0;var e=t.le;!function(t){var e=t.getExtension("ANGLE_instanced_arrays");e&&(t.vertexAttribDivisor=function(t,n){e.vertexAttribDivisorANGLE(t,n)},t.drawArraysInstanced=function(t,n,r,i){e.drawArraysInstancedANGLE(t,n,r,i)},t.drawElementsInstanced=function(t,n,r,i,a){e.drawElementsInstancedANGLE(t,n,r,i,a)})}(e),function(t){var e=t.getExtension("OES_vertex_array_object");e&&(t.createVertexArray=function(){return e.createVertexArrayOES()},t.deleteVertexArray=function(t){e.deleteVertexArrayOES(t)},t.bindVertexArray=function(t){e.bindVertexArrayOES(t)},t.isVertexArray=function(t){return e.isVertexArrayOES(t)})}(e),function(t){var e=t.getExtension("WEBGL_draw_buffers");e&&(t.drawBuffers=function(t,n){e.drawBuffersWEBGL(t,n)})}(e),e.nf=e.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"),e.sf=e.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"),2<=t.version&&(e.pf=e.getExtension("EXT_disjoint_timer_query_webgl2")),(2>t.version||!e.pf)&&(e.pf=e.getExtension("EXT_disjoint_timer_query")),e.Bg=e.getExtension("WEBGL_multi_draw"),(e.getSupportedExtensions()||[]).forEach((function(t){t.includes("lose_context")||t.includes("debug")||e.getExtension(t)}))}}(r),n}(n,e):0}(t,r),t?(We(t),t):0},t.deleteContext=function(t){je===Oe[t]&&(je=null),"object"==typeof JSEvents&&JSEvents.Eg(Oe[t].le.canvas),Oe[t]&&Oe[t].le.canvas&&(Oe[t].le.canvas.vf=void 0),Oe[t]=null},t._setTextureCleanup({deleteTexture:function(t,e){var n=Ee[e];n&&Oe[t].le.deleteTexture(n),Ee[e]=null}}),t.MakeGrContext=function(t){if(!this.Od(t))return null;var e=this._MakeGrContext();return e?(e.Md=t,e):null},t.MakeOnScreenGLSurface=function(t,e,n,r){return(e=this._MakeOnScreenGLSurface(t,e,n,r))?(e.Md=t.Md,e):null},t.MakeRenderTarget=function(t,e,n){return(e=this._MakeRenderTargetWH(t,e,n))?(e.Md=t.Md,e):null},t.MakeRenderTarget=function(t,e){return(e=this._MakeRenderTargetII(t,e))?(e.Md=t.Md,e):null},t.MakeWebGLCanvasSurface=function(e,n,r){n=n||null;var i=e,a="undefined"!=typeof OffscreenCanvas&&i instanceof OffscreenCanvas;if(!("undefined"!=typeof HTMLCanvasElement&&i instanceof HTMLCanvasElement||a||(i=document.getElementById(e),i)))throw"Canvas with id "+e+" was not found";if(!(e=this.GetWebGLContext(i,r))||0>e)throw"failed to create webgl context: err "+e;return e=this.MakeGrContext(e),(n=this.MakeOnScreenGLSurface(e,i.width,i.height,n))||(n=i.cloneNode(!0),i.parentNode.replaceChild(n,i),n.classList.add("ck-replaced"),t.MakeSWCanvasSurface(n))},t.MakeCanvasSurface=t.MakeWebGLCanvasSurface,t.Surface.prototype.makeImageFromTexture=function(e,r){return t.Od(this.Md),e=n(e),this._makeImageFromTexture(this.Md,e,r)},t.Surface.prototype.makeImageFromTextureSource=function(e,n){n||(n={height:r(e),width:i(e),colorType:t.ColorType.RGBA_8888,alphaType:t.AlphaType.Unpremul}),n.colorSpace||(n.colorSpace=t.ColorSpace.SRGB),t.Od(this.Md);var a=je.le,o=a.createTexture();return a.bindTexture(a.TEXTURE_2D,o),2===je.version?a.texImage2D(a.TEXTURE_2D,0,a.RGBA,n.width,n.height,0,a.RGBA,a.UNSIGNED_BYTE,e):a.texImage2D(a.TEXTURE_2D,0,a.RGBA,a.RGBA,a.UNSIGNED_BYTE,e),a.bindTexture(a.TEXTURE_2D,null),this.makeImageFromTexture(o,n)},t.MakeLazyImageFromTextureSource=function(e,a){a||(a={height:r(e),width:i(e),colorType:t.ColorType.RGBA_8888,alphaType:t.AlphaType.Unpremul}),a.colorSpace||(a.colorSpace=t.ColorSpace.SRGB);var o={makeTexture:function(){var t=je,r=t.le,i=r.createTexture();return r.bindTexture(r.TEXTURE_2D,i),2===t.version?r.texImage2D(r.TEXTURE_2D,0,r.RGBA,a.width,a.height,0,r.RGBA,r.UNSIGNED_BYTE,e):r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,e),r.bindTexture(r.TEXTURE_2D,null),n(i)},freeSrc:function(){}};return"VideoFrame"===e.constructor.name&&(o.freeSrc=function(){e.close()}),t.Image._makeFromGenerator(a,o)},t.Od=function(t){return!!t&&We(t)}}))}(e),function(t){function n(t,e,n,r,i){for(var a=0;a<t.length;a++)e[a*n+(a*i+r+n)%n]=t[a];return e}function r(t){for(var e=t*t,n=Array(e);e--;)n[e]=0==e%(t+1)?1:0;return n}function i(t){return!!t&&t.constructor===Float32Array&&4===t.length}function a(t){return(l(255*t[3])<<24|l(255*t[0])<<16|l(255*t[1])<<8|l(255*t[2])<<0)>>>0}function o(t){if(t&&t._ck)return t;if(t instanceof Float32Array){for(var e=Math.floor(t.length/4),n=new Uint32Array(e),r=0;r<e;r++)n[r]=a(t.slice(4*r,4*(r+1)));return n}return t instanceof Uint32Array?t:t instanceof Array&&t[0]instanceof Float32Array?t.map(a):void 0}function s(t){if(void 0===t)return 1;var e=parseFloat(t);return t&&-1!==t.indexOf("%")?e/100:e}function l(t){return Math.round(Math.max(0,Math.min(t||0,255)))}function c(e,n){n&&n._ck||t._free(e)}function u(e,n,r){if(!e||!e.length)return Y;if(e&&e._ck)return e.byteOffset;var i=t[n].BYTES_PER_ELEMENT;return r||(r=t._malloc(e.length*i)),t[n].set(e,r/i),r}function h(e){var n={ce:Y,count:e.length,Ke:t.ColorType.RGBA_F32};if(e instanceof Float32Array)n.ce=u(e,"HEAPF32"),n.count=e.length/4;else if(e instanceof Uint32Array)n.ce=u(e,"HEAPU32"),n.Ke=t.ColorType.RGBA_8888;else{if(!(e instanceof Array))throw"Invalid argument to copyFlexibleColorArray, Not a color array "+typeof e;if(e&&e.length){for(var r=t._malloc(16*e.length),i=0,a=r/4,o=0;o<e.length;o++)for(var s=0;4>s;s++)t.HEAPF32[a+i]=e[o][s],i++;e=r}else e=Y;n.ce=e}return n}function f(e){if(!e)return Y;if(e.length){if(6===e.length||9===e.length)return u(e,"HEAPF32",O),6===e.length&&t.HEAPF32.set(V,6+O/4),O;if(16===e.length){var n=S.toTypedArray();return n[0]=e[0],n[1]=e[1],n[2]=e[3],n[3]=e[4],n[4]=e[5],n[5]=e[7],n[6]=e[12],n[7]=e[13],n[8]=e[15],O}throw"invalid matrix size"}return(n=S.toTypedArray())[0]=e.m11,n[1]=e.m21,n[2]=e.m41,n[3]=e.m12,n[4]=e.m22,n[5]=e.m42,n[6]=e.m14,n[7]=e.m24,n[8]=e.m44,O}function d(e){for(var n=Array(16),r=0;16>r;r++)n[r]=t.HEAPF32[e/4+r];return n}function p(t,e){return u(t,"HEAPF32",e||L)}function m(t,e,n,r){var i=C.toTypedArray();return i[0]=t,i[1]=e,i[2]=n,i[3]=r,L}function g(e){for(var n=new Float32Array(4),r=0;4>r;r++)n[r]=t.HEAPF32[e/4+r];return n}function y(t,e){return u(t,"HEAPF32",e||G)}function v(t,e){return u(t,"HEAPF32",e||z)}function w(){for(var t=0,e=0;e<arguments.length-1;e+=2)t+=arguments[e]*arguments[e+1];return t}function b(t,e,n){for(var r=Array(t.length),i=0;i<n;i++)for(var a=0;a<n;a++){for(var o=0,s=0;s<n;s++)o+=t[n*i+s]*e[n*s+a];r[i*n+a]=o}return r}function A(t,e){for(var n=b(e[0],e[1],t),r=2;r<e.length;)n=b(n,e[r],t),r++;return n}t.Color=function(e,n,r,i){return void 0===i&&(i=1),t.Color4f(l(e)/255,l(n)/255,l(r)/255,i)},t.ColorAsInt=function(t,e,n,r){return void 0===r&&(r=255),(l(r)<<24|l(t)<<16|l(e)<<8|l(n)<<0&268435455)>>>0},t.Color4f=function(t,e,n,r){return void 0===r&&(r=1),Float32Array.of(t,e,n,r)},Object.defineProperty(t,"TRANSPARENT",{get:function(){return t.Color4f(0,0,0,0)}}),Object.defineProperty(t,"BLACK",{get:function(){return t.Color4f(0,0,0,1)}}),Object.defineProperty(t,"WHITE",{get:function(){return t.Color4f(1,1,1,1)}}),Object.defineProperty(t,"RED",{get:function(){return t.Color4f(1,0,0,1)}}),Object.defineProperty(t,"GREEN",{get:function(){return t.Color4f(0,1,0,1)}}),Object.defineProperty(t,"BLUE",{get:function(){return t.Color4f(0,0,1,1)}}),Object.defineProperty(t,"YELLOW",{get:function(){return t.Color4f(1,1,0,1)}}),Object.defineProperty(t,"CYAN",{get:function(){return t.Color4f(0,1,1,1)}}),Object.defineProperty(t,"MAGENTA",{get:function(){return t.Color4f(1,0,1,1)}}),t.getColorComponents=function(t){return[Math.floor(255*t[0]),Math.floor(255*t[1]),Math.floor(255*t[2]),t[3]]},t.parseColorString=function(e,n){if((e=e.toLowerCase()).startsWith("#")){switch(n=255,e.length){case 9:n=parseInt(e.slice(7,9),16);case 7:var r=parseInt(e.slice(1,3),16),i=parseInt(e.slice(3,5),16),a=parseInt(e.slice(5,7),16);break;case 5:n=17*parseInt(e.slice(4,5),16);case 4:r=17*parseInt(e.slice(1,2),16),i=17*parseInt(e.slice(2,3),16),a=17*parseInt(e.slice(3,4),16)}return t.Color(r,i,a,n/255)}return e.startsWith("rgba")?(e=(e=e.slice(5,-1)).split(","),t.Color(+e[0],+e[1],+e[2],s(e[3]))):e.startsWith("rgb")?(e=(e=e.slice(4,-1)).split(","),t.Color(+e[0],+e[1],+e[2],s(e[3]))):e.startsWith("gray(")||e.startsWith("hsl")||!n||void 0===(e=n[e])?t.BLACK:e},t.multiplyByAlpha=function(t,e){return(t=t.slice())[3]=Math.max(0,Math.min(t[3]*e,1)),t},t.Malloc=function(e,n){var r=t._malloc(n*e.BYTES_PER_ELEMENT);return{_ck:!0,length:n,byteOffset:r,oe:null,subarray:function(t,e){return(t=this.toTypedArray().subarray(t,e))._ck=!0,t},toTypedArray:function(){return this.oe&&this.oe.length||(this.oe=new e(t.HEAPU8.buffer,r,n),this.oe._ck=!0),this.oe}}},t.Free=function(e){t._free(e.byteOffset),e.byteOffset=Y,e.toTypedArray=null,e.oe=null};var S,T,C,_,P,M,F,E,x,k,O=Y,I=Y,L=Y,G=Y,U=Y,W=Y,j=Y,N=Y,z=Y,H=Y,V=Float32Array.of(0,0,1),Y=0;t.onRuntimeInitialized=function(){function e(e,n,r,i,a,o){o||(o=4*i.width,i.colorType===t.ColorType.RGBA_F16?o*=2:i.colorType===t.ColorType.RGBA_F32&&(o*=4));var s=o*i.height,l=a?a.byteOffset:t._malloc(s);if(!e._readPixels(i,l,o,n,r))return a||t._free(l),null;if(a)return a.toTypedArray();switch(i.colorType){case t.ColorType.RGBA_8888:case t.ColorType.RGBA_F16:e=new Uint8Array(t.HEAPU8.buffer,l,s).slice();break;case t.ColorType.RGBA_F32:e=new Float32Array(t.HEAPU8.buffer,l,s).slice();break;default:return null}return t._free(l),e}C=t.Malloc(Float32Array,4),L=C.byteOffset,T=t.Malloc(Float32Array,16),I=T.byteOffset,S=t.Malloc(Float32Array,9),O=S.byteOffset,x=t.Malloc(Float32Array,12),z=x.byteOffset,k=t.Malloc(Float32Array,12),H=k.byteOffset,_=t.Malloc(Float32Array,4),G=_.byteOffset,P=t.Malloc(Float32Array,4),U=P.byteOffset,M=t.Malloc(Float32Array,3),W=M.byteOffset,F=t.Malloc(Float32Array,3),j=F.byteOffset,E=t.Malloc(Int32Array,4),N=E.byteOffset,t.ColorSpace.SRGB=t.ColorSpace._MakeSRGB(),t.ColorSpace.DISPLAY_P3=t.ColorSpace._MakeDisplayP3(),t.ColorSpace.ADOBE_RGB=t.ColorSpace._MakeAdobeRGB(),t.GlyphRunFlags={IsWhiteSpace:t._GlyphRunFlags_isWhiteSpace},t.Path.MakeFromCmds=function(e){var n=u(e,"HEAPF32"),r=t.Path._MakeFromCmds(n,e.length);return c(n,e),r},t.Path.MakeFromVerbsPointsWeights=function(e,n,r){var i=u(e,"HEAPU8"),a=u(n,"HEAPF32"),o=u(r,"HEAPF32"),s=t.Path._MakeFromVerbsPointsWeights(i,e.length,a,n.length,o,r&&r.length||0);return c(i,e),c(a,n),c(o,r),s},t.Path.prototype.addArc=function(t,e,n){return t=y(t),this._addArc(t,e,n),this},t.Path.prototype.addOval=function(t,e,n){return void 0===n&&(n=1),t=y(t),this._addOval(t,!!e,n),this},t.Path.prototype.addPath=function(){var t=Array.prototype.slice.call(arguments),e=t[0],n=!1;if("boolean"==typeof t[t.length-1]&&(n=t.pop()),1===t.length)this._addPath(e,1,0,0,0,1,0,0,0,1,n);else if(2===t.length)t=t[1],this._addPath(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]||0,t[7]||0,t[8]||1,n);else{if(7!==t.length&&10!==t.length)return null;this._addPath(e,t[1],t[2],t[3],t[4],t[5],t[6],t[7]||0,t[8]||0,t[9]||1,n)}return this},t.Path.prototype.addPoly=function(t,e){var n=u(t,"HEAPF32");return this._addPoly(n,t.length/2,e),c(n,t),this},t.Path.prototype.addRect=function(t,e){return t=y(t),this._addRect(t,!!e),this},t.Path.prototype.addRRect=function(t,e){return t=v(t),this._addRRect(t,!!e),this},t.Path.prototype.addVerbsPointsWeights=function(t,e,n){var r=u(t,"HEAPU8"),i=u(e,"HEAPF32"),a=u(n,"HEAPF32");this._addVerbsPointsWeights(r,t.length,i,e.length,a,n&&n.length||0),c(r,t),c(i,e),c(a,n)},t.Path.prototype.arc=function(e,n,r,i,a,o){return e=t.LTRBRect(e-r,n-r,e+r,n+r),a=(a-i)/Math.PI*180-360*!!o,(o=new t.Path).addArc(e,i/Math.PI*180,a),this.addPath(o,!0),o.delete(),this},t.Path.prototype.arcToOval=function(t,e,n,r){return t=y(t),this._arcToOval(t,e,n,r),this},t.Path.prototype.arcToRotated=function(t,e,n,r,i,a,o){return this._arcToRotated(t,e,n,!!r,!!i,a,o),this},t.Path.prototype.arcToTangent=function(t,e,n,r,i){return this._arcToTangent(t,e,n,r,i),this},t.Path.prototype.close=function(){return this._close(),this},t.Path.prototype.conicTo=function(t,e,n,r,i){return this._conicTo(t,e,n,r,i),this},t.Path.prototype.computeTightBounds=function(t){this._computeTightBounds(G);var e=_.toTypedArray();return t?(t.set(e),t):e.slice()},t.Path.prototype.cubicTo=function(t,e,n,r,i,a){return this._cubicTo(t,e,n,r,i,a),this},t.Path.prototype.dash=function(t,e,n){return this._dash(t,e,n)?this:null},t.Path.prototype.getBounds=function(t){this._getBounds(G);var e=_.toTypedArray();return t?(t.set(e),t):e.slice()},t.Path.prototype.lineTo=function(t,e){return this._lineTo(t,e),this},t.Path.prototype.moveTo=function(t,e){return this._moveTo(t,e),this},t.Path.prototype.offset=function(t,e){return this._transform(1,0,t,0,1,e,0,0,1),this},t.Path.prototype.quadTo=function(t,e,n,r){return this._quadTo(t,e,n,r),this},t.Path.prototype.rArcTo=function(t,e,n,r,i,a,o){return this._rArcTo(t,e,n,r,i,a,o),this},t.Path.prototype.rConicTo=function(t,e,n,r,i){return this._rConicTo(t,e,n,r,i),this},t.Path.prototype.rCubicTo=function(t,e,n,r,i,a){return this._rCubicTo(t,e,n,r,i,a),this},t.Path.prototype.rLineTo=function(t,e){return this._rLineTo(t,e),this},t.Path.prototype.rMoveTo=function(t,e){return this._rMoveTo(t,e),this},t.Path.prototype.rQuadTo=function(t,e,n,r){return this._rQuadTo(t,e,n,r),this},t.Path.prototype.stroke=function(e){return(e=e||{}).width=e.width||1,e.miter_limit=e.miter_limit||4,e.cap=e.cap||t.StrokeCap.Butt,e.join=e.join||t.StrokeJoin.Miter,e.precision=e.precision||1,this._stroke(e)?this:null},t.Path.prototype.transform=function(){if(1===arguments.length){var t=arguments[0];this._transform(t[0],t[1],t[2],t[3],t[4],t[5],t[6]||0,t[7]||0,t[8]||1)}else{if(6!==arguments.length&&9!==arguments.length)throw"transform expected to take 1 or 9 arguments. Got "+arguments.length;t=arguments,this._transform(t[0],t[1],t[2],t[3],t[4],t[5],t[6]||0,t[7]||0,t[8]||1)}return this},t.Path.prototype.trim=function(t,e,n){return this._trim(t,e,!!n)?this:null},t.Image.prototype.makeShaderCubic=function(t,e,n,r,i){return i=f(i),this._makeShaderCubic(t,e,n,r,i)},t.Image.prototype.makeShaderOptions=function(t,e,n,r,i){return i=f(i),this._makeShaderOptions(t,e,n,r,i)},t.Image.prototype.readPixels=function(t,n,r,i,a){return e(this,t,n,r,i,a)},t.Canvas.prototype.clear=function(e){t.Od(this.Md),e=p(e),this._clear(e)},t.Canvas.prototype.clipRRect=function(e,n,r){t.Od(this.Md),e=v(e),this._clipRRect(e,n,r)},t.Canvas.prototype.clipRect=function(e,n,r){t.Od(this.Md),e=y(e),this._clipRect(e,n,r)},t.Canvas.prototype.concat=function(e){t.Od(this.Md),e=function(t){if(!t)return Y;var e=T.toTypedArray();if(t.length){if(16!==t.length&&6!==t.length&&9!==t.length)throw"invalid matrix size";return 16===t.length?u(t,"HEAPF32",I):(e.fill(0),e[0]=t[0],e[1]=t[1],e[3]=t[2],e[4]=t[3],e[5]=t[4],e[7]=t[5],e[12]=t[6],e[13]=t[7],e[15]=t[8],6===t.length&&(e[12]=0,e[13]=0,e[15]=1),I)}return e[0]=t.m11,e[1]=t.m21,e[2]=t.m31,e[3]=t.m41,e[4]=t.m12,e[5]=t.m22,e[6]=t.m32,e[7]=t.m42,e[8]=t.m13,e[9]=t.m23,e[10]=t.m33,e[11]=t.m43,e[12]=t.m14,e[13]=t.m24,e[14]=t.m34,e[15]=t.m44,I}(e),this._concat(e)},t.Canvas.prototype.drawArc=function(e,n,r,i,a){t.Od(this.Md),e=y(e),this._drawArc(e,n,r,i,a)},t.Canvas.prototype.drawAtlas=function(e,n,r,i,a,s,l){if(e&&i&&n&&r&&n.length===r.length){t.Od(this.Md),a||(a=t.BlendMode.SrcOver);var h=u(n,"HEAPF32"),f=u(r,"HEAPF32"),d=r.length/4,p=u(o(s),"HEAPU32");if(l&&"B"in l&&"C"in l)this._drawAtlasCubic(e,f,h,p,d,a,l.B,l.C,i);else{let n=t.FilterMode.Linear,r=t.MipmapMode.None;l&&(n=l.filter,"mipmap"in l&&(r=l.mipmap)),this._drawAtlasOptions(e,f,h,p,d,a,n,r,i)}c(h,n),c(f,r),c(p,s)}},t.Canvas.prototype.drawCircle=function(e,n,r,i){t.Od(this.Md),this._drawCircle(e,n,r,i)},t.Canvas.prototype.drawColor=function(e,n){t.Od(this.Md),e=p(e),void 0!==n?this._drawColor(e,n):this._drawColor(e)},t.Canvas.prototype.drawColorInt=function(e,n){t.Od(this.Md),this._drawColorInt(e,n||t.BlendMode.SrcOver)},t.Canvas.prototype.drawColorComponents=function(e,n,r,i,a){t.Od(this.Md),e=m(e,n,r,i),void 0!==a?this._drawColor(e,a):this._drawColor(e)},t.Canvas.prototype.drawDRRect=function(e,n,r){t.Od(this.Md),e=v(e,z),n=v(n,H),this._drawDRRect(e,n,r)},t.Canvas.prototype.drawGlyphs=function(e,n,r,i,a,o){if(!(2*e.length<=n.length))throw"Not enough positions for the array of gyphs";t.Od(this.Md);const s=u(e,"HEAPU16"),l=u(n,"HEAPF32");this._drawGlyphs(e.length,s,l,r,i,a,o),c(l,n),c(s,e)},t.Canvas.prototype.drawImage=function(e,n,r,i){t.Od(this.Md),this._drawImage(e,n,r,i||null)},t.Canvas.prototype.drawImageCubic=function(e,n,r,i,a,o){t.Od(this.Md),this._drawImageCubic(e,n,r,i,a,o||null)},t.Canvas.prototype.drawImageOptions=function(e,n,r,i,a,o){t.Od(this.Md),this._drawImageOptions(e,n,r,i,a,o||null)},t.Canvas.prototype.drawImageNine=function(e,n,r,i,a){t.Od(this.Md),n=u(n,"HEAP32",N),r=y(r),this._drawImageNine(e,n,r,i,a||null)},t.Canvas.prototype.drawImageRect=function(e,n,r,i,a){t.Od(this.Md),y(n,G),y(r,U),this._drawImageRect(e,G,U,i,!!a)},t.Canvas.prototype.drawImageRectCubic=function(e,n,r,i,a,o){t.Od(this.Md),y(n,G),y(r,U),this._drawImageRectCubic(e,G,U,i,a,o||null)},t.Canvas.prototype.drawImageRectOptions=function(e,n,r,i,a,o){t.Od(this.Md),y(n,G),y(r,U),this._drawImageRectOptions(e,G,U,i,a,o||null)},t.Canvas.prototype.drawLine=function(e,n,r,i,a){t.Od(this.Md),this._drawLine(e,n,r,i,a)},t.Canvas.prototype.drawOval=function(e,n){t.Od(this.Md),e=y(e),this._drawOval(e,n)},t.Canvas.prototype.drawPaint=function(e){t.Od(this.Md),this._drawPaint(e)},t.Canvas.prototype.drawParagraph=function(e,n,r){t.Od(this.Md),this._drawParagraph(e,n,r)},t.Canvas.prototype.drawPatch=function(e,n,r,i,a){if(24>e.length)throw"Need 12 cubic points";if(n&&4>n.length)throw"Need 4 colors";if(r&&8>r.length)throw"Need 4 shader coordinates";t.Od(this.Md);const s=u(e,"HEAPF32"),l=n?u(o(n),"HEAPU32"):Y,h=r?u(r,"HEAPF32"):Y;i||(i=t.BlendMode.Modulate),this._drawPatch(s,l,h,i,a),c(h,r),c(l,n),c(s,e)},t.Canvas.prototype.drawPath=function(e,n){t.Od(this.Md),this._drawPath(e,n)},t.Canvas.prototype.drawPicture=function(e){t.Od(this.Md),this._drawPicture(e)},t.Canvas.prototype.drawPoints=function(e,n,r){t.Od(this.Md);var i=u(n,"HEAPF32");this._drawPoints(e,i,n.length/2,r),c(i,n)},t.Canvas.prototype.drawRRect=function(e,n){t.Od(this.Md),e=v(e),this._drawRRect(e,n)},t.Canvas.prototype.drawRect=function(e,n){t.Od(this.Md),e=y(e),this._drawRect(e,n)},t.Canvas.prototype.drawRect4f=function(e,n,r,i,a){t.Od(this.Md),this._drawRect4f(e,n,r,i,a)},t.Canvas.prototype.drawShadow=function(e,n,r,i,a,o,s){t.Od(this.Md);var l=u(a,"HEAPF32"),h=u(o,"HEAPF32");n=u(n,"HEAPF32",W),r=u(r,"HEAPF32",j),this._drawShadow(e,n,r,i,l,h,s),c(l,a),c(h,o)},t.getShadowLocalBounds=function(t,e,n,r,i,a,o){return t=f(t),n=u(n,"HEAPF32",W),r=u(r,"HEAPF32",j),this._getShadowLocalBounds(t,e,n,r,i,a,G)?(e=_.toTypedArray(),o?(o.set(e),o):e.slice()):null},t.Canvas.prototype.drawTextBlob=function(e,n,r,i){t.Od(this.Md),this._drawTextBlob(e,n,r,i)},t.Canvas.prototype.drawVertices=function(e,n,r){t.Od(this.Md),this._drawVertices(e,n,r)},t.Canvas.prototype.getLocalToDevice=function(){return this._getLocalToDevice(I),d(I)},t.Canvas.prototype.findMarkedCTM=function(t){return this._findMarkedCTM(t,I)?d(I):null},t.Canvas.prototype.getTotalMatrix=function(){this._getTotalMatrix(O);for(var e=Array(9),n=0;9>n;n++)e[n]=t.HEAPF32[O/4+n];return e},t.Canvas.prototype.makeSurface=function(t){return(t=this._makeSurface(t)).Md=this.Md,t},t.Canvas.prototype.readPixels=function(n,r,i,a,o){return t.Od(this.Md),e(this,n,r,i,a,o)},t.Canvas.prototype.saveLayer=function(t,e,n,r){return e=y(e),this._saveLayer(t||null,e,n||null,r||0)},t.Canvas.prototype.writePixels=function(e,n,r,i,a,o,s,l){if(e.byteLength%(n*r))throw"pixels length must be a multiple of the srcWidth * srcHeight";t.Od(this.Md);var h=e.byteLength/(n*r);o=o||t.AlphaType.Unpremul,s=s||t.ColorType.RGBA_8888,l=l||t.ColorSpace.SRGB;var f=h*n;return h=u(e,"HEAPU8"),n=this._writePixels({width:n,height:r,colorType:s,alphaType:o,colorSpace:l},h,f,i,a),c(h,e),n},t.ColorFilter.MakeBlend=function(e,n){return e=p(e),t.ColorFilter._MakeBlend(e,n)},t.ColorFilter.MakeMatrix=function(e){if(!e||20!==e.length)throw"invalid color matrix";var n=u(e,"HEAPF32"),r=t.ColorFilter._makeMatrix(n);return c(n,e),r},t.ContourMeasure.prototype.getPosTan=function(t,e){return this._getPosTan(t,G),t=_.toTypedArray(),e?(e.set(t),e):t.slice()},t.ImageFilter.MakeMatrixTransform=function(e,n,r){if(e=f(e),"B"in n&&"C"in n)return t.ImageFilter._MakeMatrixTransformCubic(e,n.xg,n.yg,r);const i=n.filter;let a=t.MipmapMode.None;return"mipmap"in n&&(a=n.mipmap),t.ImageFilter._MakeMatrixTransformOptions(e,i,a,r)},t.Paint.prototype.getColor=function(){return this._getColor(L),g(L)},t.Paint.prototype.setColor=function(t,e){e=e||null,t=p(t),this._setColor(t,e)},t.Paint.prototype.setColorComponents=function(t,e,n,r,i){i=i||null,t=m(t,e,n,r),this._setColor(t,i)},t.Path.prototype.getPoint=function(t,e){return this._getPoint(t,G),t=_.toTypedArray(),e?(e[0]=t[0],e[1]=t[1],e):t.slice(0,2)},t.PictureRecorder.prototype.beginRecording=function(t){return t=y(t),this._beginRecording(t)},t.Surface.prototype.getCanvas=function(){var t=this._getCanvas();return t.Md=this.Md,t},t.Surface.prototype.makeImageSnapshot=function(e){return t.Od(this.Md),e=u(e,"HEAP32",N),this._makeImageSnapshot(e)},t.Surface.prototype.makeSurface=function(e){return t.Od(this.Md),(e=this._makeSurface(e)).Md=this.Md,e},t.Surface.prototype.requestAnimationFrame=function(e,n){this.Ge||(this.Ge=this.getCanvas()),requestAnimationFrame(function(){t.Od(this.Md),e(this.Ge),this.flush(n)}.bind(this))},t.Surface.prototype.drawOnce=function(e,n){this.Ge||(this.Ge=this.getCanvas()),requestAnimationFrame(function(){t.Od(this.Md),e(this.Ge),this.flush(n),this.dispose()}.bind(this))},t.PathEffect.MakeDash=function(e,n){if(n||(n=0),!e.length||1==e.length%2)throw"Intervals array must have even length";var r=u(e,"HEAPF32");return n=t.PathEffect._MakeDash(r,e.length,n),c(r,e),n},t.Shader.MakeColor=function(e,n){return n=n||null,e=p(e),t.Shader._MakeColor(e,n)},t.Shader.Blend=t.Shader.MakeBlend,t.Shader.Color=t.Shader.MakeColor,t.Shader.MakeLinearGradient=function(e,n,r,i,a,o,s,l){l=l||null;var d=h(r),p=u(i,"HEAPF32");s=s||0,o=f(o);var m=_.toTypedArray();return m.set(e),m.set(n,2),e=t.Shader._MakeLinearGradient(G,d.ce,d.Ke,p,d.count,a,s,o,l),c(d.ce,r),i&&c(p,i),e},t.Shader.MakeRadialGradient=function(e,n,r,i,a,o,s,l){l=l||null;var d=h(r),p=u(i,"HEAPF32");return s=s||0,o=f(o),e=t.Shader._MakeRadialGradient(e[0],e[1],n,d.ce,d.Ke,p,d.count,a,s,o,l),c(d.ce,r),i&&c(p,i),e},t.Shader.MakeSweepGradient=function(e,n,r,i,a,o,s,l,d,p){p=p||null;var m=h(r),g=u(i,"HEAPF32");return s=s||0,l=l||0,d=d||360,o=f(o),e=t.Shader._MakeSweepGradient(e,n,m.ce,m.Ke,g,m.count,a,l,d,s,o,p),c(m.ce,r),i&&c(g,i),e},t.Shader.MakeTwoPointConicalGradient=function(e,n,r,i,a,o,s,l,d,p){p=p||null;var m=h(a),g=u(o,"HEAPF32");d=d||0,l=f(l);var y=_.toTypedArray();return y.set(e),y.set(r,2),e=t.Shader._MakeTwoPointConicalGradient(G,n,i,m.ce,m.Ke,g,m.count,s,d,l,p),c(m.ce,a),o&&c(g,o),e},t.Vertices.prototype.bounds=function(t){this._bounds(G);var e=_.toTypedArray();return t?(t.set(e),t):e.slice()},t.Vd&&t.Vd.forEach((function(t){t()}))},t.computeTonalColors=function(t){var e=u(t.ambient,"HEAPF32"),n=u(t.spot,"HEAPF32");this._computeTonalColors(e,n);var r={ambient:g(e),spot:g(n)};return c(e,t.ambient),c(n,t.spot),r},t.LTRBRect=function(t,e,n,r){return Float32Array.of(t,e,n,r)},t.XYWHRect=function(t,e,n,r){return Float32Array.of(t,e,t+n,e+r)},t.LTRBiRect=function(t,e,n,r){return Int32Array.of(t,e,n,r)},t.XYWHiRect=function(t,e,n,r){return Int32Array.of(t,e,t+n,e+r)},t.RRectXY=function(t,e,n){return Float32Array.of(t[0],t[1],t[2],t[3],e,n,e,n,e,n,e,n)},t.MakeAnimatedImageFromEncoded=function(e){e=new Uint8Array(e);var n=t._malloc(e.byteLength);return t.HEAPU8.set(e,n),(e=t._decodeAnimatedImage(n,e.byteLength))?e:null},t.MakeImageFromEncoded=function(e){e=new Uint8Array(e);var n=t._malloc(e.byteLength);return t.HEAPU8.set(e,n),(e=t._decodeImage(n,e.byteLength))?e:null};var q=null;t.MakeImageFromCanvasImageSource=function(e){var n=e.width,r=e.height;q||(q=document.createElement("canvas")),q.width=n,q.height=r;var i=q.getContext("2d");return i.drawImage(e,0,0),e=i.getImageData(0,0,n,r),t.MakeImage({width:n,height:r,alphaType:t.AlphaType.Unpremul,colorType:t.ColorType.RGBA_8888,colorSpace:t.ColorSpace.SRGB},e.data,4*n)},t.MakeImage=function(e,n,r){var i=t._malloc(n.length);return t.HEAPU8.set(n,i),t._MakeImage(e,i,n.length,r)},t.MakeVertices=function(e,n,r,i,a,s){var l=a&&a.length||0,c=0;return r&&r.length&&(c|=1),i&&i.length&&(c|=2),void 0===s||s||(c|=4),u(n,"HEAPF32",(e=new t._VerticesBuilder(e,n.length/2,l,c)).positions()),e.texCoords()&&u(r,"HEAPF32",e.texCoords()),e.colors()&&u(o(i),"HEAPU32",e.colors()),e.indices()&&u(a,"HEAPU16",e.indices()),e.detach()},t.Matrix={},t.Matrix.identity=function(){return r(3)},t.Matrix.invert=function(t){var e=t[0]*t[4]*t[8]+t[1]*t[5]*t[6]+t[2]*t[3]*t[7]-t[2]*t[4]*t[6]-t[1]*t[3]*t[8]-t[0]*t[5]*t[7];return e?[(t[4]*t[8]-t[5]*t[7])/e,(t[2]*t[7]-t[1]*t[8])/e,(t[1]*t[5]-t[2]*t[4])/e,(t[5]*t[6]-t[3]*t[8])/e,(t[0]*t[8]-t[2]*t[6])/e,(t[2]*t[3]-t[0]*t[5])/e,(t[3]*t[7]-t[4]*t[6])/e,(t[1]*t[6]-t[0]*t[7])/e,(t[0]*t[4]-t[1]*t[3])/e]:null},t.Matrix.mapPoints=function(t,e){for(var n=0;n<e.length;n+=2){var r=e[n],i=e[n+1],a=t[6]*r+t[7]*i+t[8],o=t[3]*r+t[4]*i+t[5];e[n]=(t[0]*r+t[1]*i+t[2])/a,e[n+1]=o/a}return e},t.Matrix.multiply=function(){return A(3,arguments)},t.Matrix.rotated=function(t,e,n){e=e||0,n=n||0;var r=Math.sin(t);return[t=Math.cos(t),-r,w(r,n,1-t,e),r,t,w(-r,e,1-t,n),0,0,1]},t.Matrix.scaled=function(t,e,i,a){i=i||0,a=a||0;var o=n([t,e],r(3),3,0,1);return n([i-t*i,a-e*a],o,3,2,0)},t.Matrix.skewed=function(t,e,i,a){i=i||0,a=a||0;var o=n([t,e],r(3),3,1,-1);return n([-t*i,-e*a],o,3,2,0)},t.Matrix.translated=function(t,e){return n(arguments,r(3),3,2,0)},t.Vector={},t.Vector.dot=function(t,e){return t.map((function(t,n){return t*e[n]})).reduce((function(t,e){return t+e}))},t.Vector.lengthSquared=function(e){return t.Vector.dot(e,e)},t.Vector.length=function(e){return Math.sqrt(t.Vector.lengthSquared(e))},t.Vector.mulScalar=function(t,e){return t.map((function(t){return t*e}))},t.Vector.add=function(t,e){return t.map((function(t,n){return t+e[n]}))},t.Vector.sub=function(t,e){return t.map((function(t,n){return t-e[n]}))},t.Vector.dist=function(e,n){return t.Vector.length(t.Vector.sub(e,n))},t.Vector.normalize=function(e){return t.Vector.mulScalar(e,1/t.Vector.length(e))},t.Vector.cross=function(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]},t.M44={},t.M44.identity=function(){return r(4)},t.M44.translated=function(t){return n(t,r(4),4,3,0)},t.M44.scaled=function(t){return n(t,r(4),4,0,1)},t.M44.rotated=function(e,n){return t.M44.rotatedUnitSinCos(t.Vector.normalize(e),Math.sin(n),Math.cos(n))},t.M44.rotatedUnitSinCos=function(t,e,n){var r=t[0],i=t[1],a=1-n;return[a*r*r+n,a*r*i-e*(t=t[2]),a*r*t+e*i,0,a*r*i+e*t,a*i*i+n,a*i*t-e*r,0,a*r*t-e*i,a*i*t+e*r,a*t*t+n,0,0,0,0,1]},t.M44.lookat=function(e,r,i){r=t.Vector.normalize(t.Vector.sub(r,e)),i=t.Vector.normalize(i),i=t.Vector.normalize(t.Vector.cross(r,i));var a=t.M44.identity();return n(i,a,4,0,0),n(t.Vector.cross(i,r),a,4,1,0),n(t.Vector.mulScalar(r,-1),a,4,2,0),n(e,a,4,3,0),null===(e=t.M44.invert(a))?t.M44.identity():e},t.M44.perspective=function(t,e,n){var r=1/(e-t);return n/=2,[n=Math.cos(n)/Math.sin(n),0,0,0,0,n,0,0,0,0,(e+t)*r,2*e*t*r,0,0,-1,1]},t.M44.rc=function(t,e,n){return t[4*e+n]},t.M44.multiply=function(){return A(4,arguments)},t.M44.invert=function(t){var e=t[0],n=t[4],r=t[8],i=t[12],a=t[1],o=t[5],s=t[9],l=t[13],c=t[2],u=t[6],h=t[10],f=t[14],d=t[3],p=t[7],m=t[11],g=e*o-n*a,y=e*s-r*a,v=e*l-i*a,w=n*s-r*o,b=n*l-i*o,A=r*l-i*s,S=c*p-u*d,T=c*m-h*d,C=c*(t=t[15])-f*d,_=u*m-h*p,P=u*t-f*p,M=h*t-f*m,F=g*M-y*P+v*_+w*C-b*T+A*S,E=1/F;return 0===F||1/0===E?null:(e=[o*(M*=E)-s*(P*=E)+l*(_*=E),s*(C*=E)-a*M-l*(T*=E),a*P-o*C+l*(S*=E),o*T-a*_-s*S,r*P-n*M-i*_,e*M-r*C+i*T,n*C-e*P-i*S,e*_-n*T+r*S,p*(A*=E)-m*(b*=E)+t*(w*=E),m*(v*=E)-d*A-t*(y*=E),d*b-p*v+t*(g*=E),p*y-d*w-m*g,h*b-u*A-f*w,c*A-h*v+f*y,u*v-c*b-f*g,c*w-u*y+h*g]).every((function(t){return!isNaN(t)&&1/0!==t&&-1/0!==t}))?e:null},t.M44.transpose=function(t){return[t[0],t[4],t[8],t[12],t[1],t[5],t[9],t[13],t[2],t[6],t[10],t[14],t[3],t[7],t[11],t[15]]},t.M44.mustInvert=function(e){if(null===(e=t.M44.invert(e)))throw"Matrix not invertible";return e},t.M44.setupCamera=function(e,n,r){var i=t.M44.lookat(r.eye,r.coa,r.up);return r=t.M44.perspective(r.near,r.far,r.angle),n=[(e[2]-e[0])/2,(e[3]-e[1])/2,n],e=t.M44.multiply(t.M44.translated([(e[0]+e[2])/2,(e[1]+e[3])/2,0]),t.M44.scaled(n)),t.M44.multiply(e,r,i,t.M44.mustInvert(e))},t.ColorMatrix={},t.ColorMatrix.identity=function(){var t=new Float32Array(20);return t[0]=1,t[6]=1,t[12]=1,t[18]=1,t},t.ColorMatrix.scaled=function(t,e,n,r){var i=new Float32Array(20);return i[0]=t,i[6]=e,i[12]=n,i[18]=r,i};var $,X=[[6,7,11,12],[0,10,2,12],[0,1,5,6]];t.ColorMatrix.rotated=function(e,n,r){var i=t.ColorMatrix.identity();return i[(e=X[e])[0]]=r,i[e[1]]=n,i[e[2]]=-n,i[e[3]]=r,i},t.ColorMatrix.postTranslate=function(t,e,n,r,i){return t[4]+=e,t[9]+=n,t[14]+=r,t[19]+=i,t},t.ColorMatrix.concat=function(t,e){for(var n=new Float32Array(20),r=0,i=0;20>i;i+=5){for(var a=0;4>a;a++)n[r++]=t[i]*e[a]+t[i+1]*e[a+5]+t[i+2]*e[a+10]+t[i+3]*e[a+15];n[r++]=t[i]*e[4]+t[i+1]*e[9]+t[i+2]*e[14]+t[i+3]*e[19]+t[i+4]}return n},($=e).Vd=$.Vd||[],$.Vd.push((function(){function t(t){if(!t||!t.length)return[];for(var e=[],n=0;n<t.length;n+=5){var r=$.LTRBRect(t[n],t[n+1],t[n+2],t[n+3]);r.direction=0===t[n+4]?$.TextDirection.RTL:$.TextDirection.LTR,e.push(r)}return $._free(t.byteOffset),e}function e(t){return void 0===(t=t||{}).weight&&(t.weight=$.FontWeight.Normal),t.width=t.width||$.FontWidth.Normal,t.slant=t.slant||$.FontSlant.Upright,t}function n(t){if(!t||!t.length)return Y;for(var e=[],n=0;n<t.length;n++){var i=r(t[n]);e.push(i)}return u(e,"HEAPU32")}function r(t){if(o[t])return o[t];var e=B(t)+1,n=$._malloc(e);return R(t,D,n,e),o[t]=n}function i(t){if(t._colorPtr=p(t.color),t._foregroundColorPtr=Y,t._backgroundColorPtr=Y,t._decorationColorPtr=Y,t.foregroundColor&&(t._foregroundColorPtr=p(t.foregroundColor,s)),t.backgroundColor&&(t._backgroundColorPtr=p(t.backgroundColor,l)),t.decorationColor&&(t._decorationColorPtr=p(t.decorationColor,c)),Array.isArray(t.fontFamilies)&&t.fontFamilies.length?(t._fontFamiliesPtr=n(t.fontFamilies),t._fontFamiliesLen=t.fontFamilies.length):(t._fontFamiliesPtr=Y,t._fontFamiliesLen=0),t.locale){var e=t.locale;t._localePtr=r(e),t._localeLen=B(e)+1}else t._localePtr=Y,t._localeLen=0;if(Array.isArray(t.shadows)&&t.shadows.length){var i=(e=t.shadows).map((function(t){return t.color||$.BLACK})),a=e.map((function(t){return t.blurRadius||0}));t._shadowLen=e.length;for(var o=$._malloc(8*e.length),f=o/4,d=0;d<e.length;d++){var m=e[d].offset||[0,0];$.HEAPF32[f]=m[0],$.HEAPF32[f+1]=m[1],f+=2}t._shadowColorsPtr=h(i).ce,t._shadowOffsetsPtr=o,t._shadowBlurRadiiPtr=u(a,"HEAPF32")}else t._shadowLen=0,t._shadowColorsPtr=Y,t._shadowOffsetsPtr=Y,t._shadowBlurRadiiPtr=Y;Array.isArray(t.fontFeatures)&&t.fontFeatures.length?(i=(e=t.fontFeatures).map((function(t){return t.name})),a=e.map((function(t){return t.value})),t._fontFeatureLen=e.length,t._fontFeatureNamesPtr=n(i),t._fontFeatureValuesPtr=u(a,"HEAPU32")):(t._fontFeatureLen=0,t._fontFeatureNamesPtr=Y,t._fontFeatureValuesPtr=Y)}function a(t){$._free(t._fontFamiliesPtr),$._free(t._shadowColorsPtr),$._free(t._shadowOffsetsPtr),$._free(t._shadowBlurRadiiPtr),$._free(t._fontFeatureNamesPtr),$._free(t._fontFeatureValuesPtr)}$.Paragraph.prototype.getRectsForRange=function(e,n,r,i){return t(e=this._getRectsForRange(e,n,r,i))},$.Paragraph.prototype.getRectsForPlaceholders=function(){return t(this._getRectsForPlaceholders())},$.TypefaceFontProvider.prototype.registerFont=function(t,e){if(!(t=$.Typeface.MakeFreeTypeFaceFromData(t)))return null;e=r(e),this._registerFont(t,e)},$.ParagraphStyle=function(t){if(t.disableHinting=t.disableHinting||!1,t.ellipsis){var i=t.ellipsis;t._ellipsisPtr=r(i),t._ellipsisLen=B(i)+1}else t._ellipsisPtr=Y,t._ellipsisLen=0;return t.heightMultiplier=t.heightMultiplier||0,t.maxLines=t.maxLines||0,(i=(i=t.strutStyle)||{}).strutEnabled=i.strutEnabled||!1,i.strutEnabled&&Array.isArray(i.fontFamilies)&&i.fontFamilies.length?(i._fontFamiliesPtr=n(i.fontFamilies),i._fontFamiliesLen=i.fontFamilies.length):(i._fontFamiliesPtr=Y,i._fontFamiliesLen=0),i.fontStyle=e(i.fontStyle),i.fontSize=i.fontSize||0,i.heightMultiplier=i.heightMultiplier||0,i.halfLeading=i.halfLeading||!1,i.leading=i.leading||0,i.forceStrutHeight=i.forceStrutHeight||!1,t.strutStyle=i,t.textAlign=t.textAlign||$.TextAlign.Start,t.textDirection=t.textDirection||$.TextDirection.LTR,t.textHeightBehavior=t.textHeightBehavior||$.TextHeightBehavior.All,t.textStyle=$.TextStyle(t.textStyle),t},$.TextStyle=function(t){return t.color||(t.color=$.BLACK),t.decoration=t.decoration||0,t.decorationThickness=t.decorationThickness||0,t.decorationStyle=t.decorationStyle||$.DecorationStyle.Solid,t.textBaseline=t.textBaseline||$.TextBaseline.Alphabetic,t.fontSize=t.fontSize||0,t.letterSpacing=t.letterSpacing||0,t.wordSpacing=t.wordSpacing||0,t.heightMultiplier=t.heightMultiplier||0,t.halfLeading=t.halfLeading||!1,t.fontStyle=e(t.fontStyle),t};var o={},s=$._malloc(16),l=$._malloc(16),c=$._malloc(16);$.ParagraphBuilder.Make=function(t,e){return i(t.textStyle),e=$.ParagraphBuilder._Make(t,e),a(t.textStyle),e},$.ParagraphBuilder.MakeFromFontProvider=function(t,e){return i(t.textStyle),e=$.ParagraphBuilder._MakeFromFontProvider(t,e),a(t.textStyle),e},$.ParagraphBuilder.ShapeText=function(t,e,n){let r=0;for(const t of e)r+=t.length;if(r!==t.length)throw"Accumulated block lengths must equal text.length";return $.ParagraphBuilder._ShapeText(t,e,n)},$.ParagraphBuilder.prototype.pushStyle=function(t){i(t),this._pushStyle(t),a(t)},$.ParagraphBuilder.prototype.pushPaintStyle=function(t,e,n){i(t),this._pushPaintStyle(t,e,n),a(t)},$.ParagraphBuilder.prototype.addPlaceholder=function(t,e,n,r,i){n=n||$.PlaceholderAlignment.Baseline,r=r||$.TextBaseline.Alphabetic,this._addPlaceholder(t||0,e||0,n,r,i||0)}})),t.Vd=t.Vd||[],t.Vd.push((function(){t.Path.prototype.op=function(t,e){return this._op(t,e)?this:null},t.Path.prototype.simplify=function(){return this._simplify()?this:null}})),t.Vd=t.Vd||[],t.Vd.push((function(){t.Canvas.prototype.drawText=function(e,n,r,i,a){var o=B(e),s=t._malloc(o+1);R(e,D,s,o+1),this._drawSimpleText(s,o,n,r,a,i),t._free(s)},t.Font.prototype.getGlyphBounds=function(e,n,r){var i=u(e,"HEAPU16"),a=t._malloc(16*e.length);return this._getGlyphWidthBounds(i,e.length,Y,a,n||null),n=new Float32Array(t.HEAPU8.buffer,a,4*e.length),c(i,e),r?(r.set(n),t._free(a),r):(e=Float32Array.from(n),t._free(a),e)},t.Font.prototype.getGlyphIDs=function(e,n,r){n||(n=e.length);var i=B(e)+1,a=t._malloc(i);return R(e,D,a,i),e=t._malloc(2*n),n=this._getGlyphIDs(a,i-1,n,e),t._free(a),0>n?(t._free(e),null):(a=new Uint16Array(t.HEAPU8.buffer,e,n),r?(r.set(a),t._free(e),r):(r=Uint16Array.from(a),t._free(e),r))},t.Font.prototype.getGlyphIntercepts=function(t,e,n,r){var i=u(t,"HEAPU16"),a=u(e,"HEAPF32");return this._getGlyphIntercepts(i,t.length,!(t&&t._ck),a,e.length,!(e&&e._ck),n,r)},t.Font.prototype.getGlyphWidths=function(e,n,r){var i=u(e,"HEAPU16"),a=t._malloc(4*e.length);return this._getGlyphWidthBounds(i,e.length,a,Y,n||null),n=new Float32Array(t.HEAPU8.buffer,a,e.length),c(i,e),r?(r.set(n),t._free(a),r):(e=Float32Array.from(n),t._free(a),e)},t.FontMgr.FromData=function(){if(!arguments.length)return null;var e=arguments;if(1===e.length&&Array.isArray(e[0])&&(e=arguments[0]),!e.length)return null;for(var n=[],r=[],i=0;i<e.length;i++){var a=new Uint8Array(e[i]),o=u(a,"HEAPU8");n.push(o),r.push(a.byteLength)}return n=u(n,"HEAPU32"),r=u(r,"HEAPU32"),e=t.FontMgr._fromData(n,r,e.length),t._free(n),t._free(r),e},t.Typeface.MakeFreeTypeFaceFromData=function(e){var n=u(e=new Uint8Array(e),"HEAPU8");return(e=t.Typeface._MakeFreeTypeFaceFromData(n,e.byteLength))?e:null},t.Typeface.prototype.getGlyphIDs=function(e,n,r){n||(n=e.length);var i=B(e)+1,a=t._malloc(i);return R(e,D,a,i),e=t._malloc(2*n),n=this._getGlyphIDs(a,i-1,n,e),t._free(a),0>n?(t._free(e),null):(a=new Uint16Array(t.HEAPU8.buffer,e,n),r?(r.set(a),t._free(e),r):(r=Uint16Array.from(a),t._free(e),r))},t.TextBlob.MakeOnPath=function(e,n,r,i){if(e&&e.length&&n&&n.countPoints()){if(1===n.countPoints())return this.MakeFromText(e,r);i||(i=0);var a=r.getGlyphIDs(e);a=r.getGlyphWidths(a);for(var o=[],s=(n=new t.ContourMeasureIter(n,!1,1)).next(),l=new Float32Array(4),c=0;c<e.length&&s;c++){var u=a[c];if((i+=u/2)>s.length()){if(s.delete(),!(s=n.next())){e=e.substring(0,c);break}i=u/2}s.getPosTan(i,l);var h=l[2],f=l[3];o.push(h,f,l[0]-u/2*h,l[1]-u/2*f),i+=u/2}return e=this.MakeFromRSXform(e,o,r),s&&s.delete(),n.delete(),e}},t.TextBlob.MakeFromRSXform=function(e,n,r){var i=B(e)+1,a=t._malloc(i);return R(e,D,a,i),e=u(n,"HEAPF32"),r=t.TextBlob._MakeFromRSXform(a,i-1,e,r),t._free(a),r||null},t.TextBlob.MakeFromRSXformGlyphs=function(e,n,r){var i=u(e,"HEAPU16");return n=u(n,"HEAPF32"),r=t.TextBlob._MakeFromRSXformGlyphs(i,2*e.length,n,r),c(i,e),r||null},t.TextBlob.MakeFromGlyphs=function(e,n){var r=u(e,"HEAPU16");return n=t.TextBlob._MakeFromGlyphs(r,2*e.length,n),c(r,e),n||null},t.TextBlob.MakeFromText=function(e,n){var r=B(e)+1,i=t._malloc(r);return R(e,D,i,r),e=t.TextBlob._MakeFromText(i,r-1,n),t._free(i),e||null},t.MallocGlyphIDs=function(e){return t.Malloc(Uint16Array,e)}})),t.Vd=t.Vd||[],t.Vd.push((function(){t.MakePicture=function(e){e=new Uint8Array(e);var n=t._malloc(e.byteLength);return t.HEAPU8.set(e,n),(e=t._MakePicture(n,e.byteLength))?e:null}})),function(){function e(t){for(var e=0;e<t.length;e++)if(void 0!==t[e]&&!Number.isFinite(t[e]))return!1;return!0}function n(e){var n=t.getColorComponents(e);e=n[0];var r=n[1],i=n[2];return 1===(n=n[3])?(e=e.toString(16).toLowerCase(),r=r.toString(16).toLowerCase(),i=i.toString(16).toLowerCase(),"#"+(e=1===e.length?"0"+e:e)+(r=1===r.length?"0"+r:r)+(i=1===i.length?"0"+i:i)):"rgba("+e+", "+r+", "+i+", "+(n=0===n||1===n?n:n.toFixed(8))+")"}function r(e){return t.parseColorString(e,v)}function a(t){if(!(t=w.exec(t)))return null;var e=parseFloat(t[4]),n=16;switch(t[5]){case"em":case"rem":case"pc":n=16*e;break;case"pt":n=4*e/3;break;case"px":n=e;break;case"in":n=96*e;break;case"cm":n=96*e/2.54;break;case"mm":n=96/25.4*e;break;case"q":n=96/25.4/4*e;break;case"%":n=16/75*e}return{style:t[1],variant:t[2],weight:t[3],sizePx:n,family:t[6].trim()}}function o(o){this.Nd=o,this.Qd=new t.Paint,this.Qd.setAntiAlias(!0),this.Qd.setStrokeMiter(10),this.Qd.setStrokeCap(t.StrokeCap.Butt),this.Qd.setStrokeJoin(t.StrokeJoin.Miter),this.Pe="10px monospace",this.re=new t.Font(null,10),this.re.setSubpixel(!0),this.be=this.he=t.BLACK,this.ue=0,this.Ie=t.TRANSPARENT,this.we=this.ve=0,this.Je=this.je=1,this.He=0,this.te=[],this.Pd=t.BlendMode.SrcOver,this.Qd.setStrokeWidth(this.Je),this.Qd.setBlendMode(this.Pd),this.Td=new t.Path,this.Ud=t.Matrix.identity(),this.kf=[],this.Ae=[],this.me=function(){this.Td.delete(),this.Qd.delete(),this.re.delete(),this.Ae.forEach((function(t){t.me()}))},Object.defineProperty(this,"currentTransform",{enumerable:!0,get:function(){return{a:this.Ud[0],c:this.Ud[1],e:this.Ud[2],b:this.Ud[3],d:this.Ud[4],f:this.Ud[5]}},set:function(t){t.a&&this.setTransform(t.a,t.b,t.c,t.d,t.e,t.f)}}),Object.defineProperty(this,"fillStyle",{enumerable:!0,get:function(){return i(this.be)?n(this.be):this.be},set:function(t){"string"==typeof t?this.be=r(t):t.se&&(this.be=t)}}),Object.defineProperty(this,"font",{enumerable:!0,get:function(){return this.Pe},set:function(t){var e=a(t),n=e.family;e.typeface=b[n]?b[n][(e.style||"normal")+"|"+(e.variant||"normal")+"|"+(e.weight||"normal")]||b[n]["*"]:null,e&&(this.re.setSize(e.sizePx),this.re.setTypeface(e.typeface),this.Pe=t)}}),Object.defineProperty(this,"globalAlpha",{enumerable:!0,get:function(){return this.je},set:function(t){!isFinite(t)||0>t||1<t||(this.je=t)}}),Object.defineProperty(this,"globalCompositeOperation",{enumerable:!0,get:function(){switch(this.Pd){case t.BlendMode.SrcOver:return"source-over";case t.BlendMode.DstOver:return"destination-over";case t.BlendMode.Src:return"copy";case t.BlendMode.Dst:return"destination";case t.BlendMode.Clear:return"clear";case t.BlendMode.SrcIn:return"source-in";case t.BlendMode.DstIn:return"destination-in";case t.BlendMode.SrcOut:return"source-out";case t.BlendMode.DstOut:return"destination-out";case t.BlendMode.SrcATop:return"source-atop";case t.BlendMode.DstATop:return"destination-atop";case t.BlendMode.Xor:return"xor";case t.BlendMode.Plus:return"lighter";case t.BlendMode.Multiply:return"multiply";case t.BlendMode.Screen:return"screen";case t.BlendMode.Overlay:return"overlay";case t.BlendMode.Darken:return"darken";case t.BlendMode.Lighten:return"lighten";case t.BlendMode.ColorDodge:return"color-dodge";case t.BlendMode.ColorBurn:return"color-burn";case t.BlendMode.HardLight:return"hard-light";case t.BlendMode.SoftLight:return"soft-light";case t.BlendMode.Difference:return"difference";case t.BlendMode.Exclusion:return"exclusion";case t.BlendMode.Hue:return"hue";case t.BlendMode.Saturation:return"saturation";case t.BlendMode.Color:return"color";case t.BlendMode.Luminosity:return"luminosity"}},set:function(e){switch(e){case"source-over":this.Pd=t.BlendMode.SrcOver;break;case"destination-over":this.Pd=t.BlendMode.DstOver;break;case"copy":this.Pd=t.BlendMode.Src;break;case"destination":this.Pd=t.BlendMode.Dst;break;case"clear":this.Pd=t.BlendMode.Clear;break;case"source-in":this.Pd=t.BlendMode.SrcIn;break;case"destination-in":this.Pd=t.BlendMode.DstIn;break;case"source-out":this.Pd=t.BlendMode.SrcOut;break;case"destination-out":this.Pd=t.BlendMode.DstOut;break;case"source-atop":this.Pd=t.BlendMode.SrcATop;break;case"destination-atop":this.Pd=t.BlendMode.DstATop;break;case"xor":this.Pd=t.BlendMode.Xor;break;case"lighter":case"plus-lighter":this.Pd=t.BlendMode.Plus;break;case"plus-darker":throw"plus-darker is not supported";case"multiply":this.Pd=t.BlendMode.Multiply;break;case"screen":this.Pd=t.BlendMode.Screen;break;case"overlay":this.Pd=t.BlendMode.Overlay;break;case"darken":this.Pd=t.BlendMode.Darken;break;case"lighten":this.Pd=t.BlendMode.Lighten;break;case"color-dodge":this.Pd=t.BlendMode.ColorDodge;break;case"color-burn":this.Pd=t.BlendMode.ColorBurn;break;case"hard-light":this.Pd=t.BlendMode.HardLight;break;case"soft-light":this.Pd=t.BlendMode.SoftLight;break;case"difference":this.Pd=t.BlendMode.Difference;break;case"exclusion":this.Pd=t.BlendMode.Exclusion;break;case"hue":this.Pd=t.BlendMode.Hue;break;case"saturation":this.Pd=t.BlendMode.Saturation;break;case"color":this.Pd=t.BlendMode.Color;break;case"luminosity":this.Pd=t.BlendMode.Luminosity;break;default:return}this.Qd.setBlendMode(this.Pd)}}),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.Qd.getStrokeCap()){case t.StrokeCap.Butt:return"butt";case t.StrokeCap.Round:return"round";case t.StrokeCap.Square:return"square"}},set:function(e){switch(e){case"butt":this.Qd.setStrokeCap(t.StrokeCap.Butt);break;case"round":this.Qd.setStrokeCap(t.StrokeCap.Round);break;case"square":this.Qd.setStrokeCap(t.StrokeCap.Square)}}}),Object.defineProperty(this,"lineDashOffset",{enumerable:!0,get:function(){return this.He},set:function(t){isFinite(t)&&(this.He=t)}}),Object.defineProperty(this,"lineJoin",{enumerable:!0,get:function(){switch(this.Qd.getStrokeJoin()){case t.StrokeJoin.Miter:return"miter";case t.StrokeJoin.Round:return"round";case t.StrokeJoin.Bevel:return"bevel"}},set:function(e){switch(e){case"miter":this.Qd.setStrokeJoin(t.StrokeJoin.Miter);break;case"round":this.Qd.setStrokeJoin(t.StrokeJoin.Round);break;case"bevel":this.Qd.setStrokeJoin(t.StrokeJoin.Bevel)}}}),Object.defineProperty(this,"lineWidth",{enumerable:!0,get:function(){return this.Qd.getStrokeWidth()},set:function(t){0>=t||!t||(this.Je=t,this.Qd.setStrokeWidth(t))}}),Object.defineProperty(this,"miterLimit",{enumerable:!0,get:function(){return this.Qd.getStrokeMiter()},set:function(t){0>=t||!t||this.Qd.setStrokeMiter(t)}}),Object.defineProperty(this,"shadowBlur",{enumerable:!0,get:function(){return this.ue},set:function(t){0>t||!isFinite(t)||(this.ue=t)}}),Object.defineProperty(this,"shadowColor",{enumerable:!0,get:function(){return n(this.Ie)},set:function(t){this.Ie=r(t)}}),Object.defineProperty(this,"shadowOffsetX",{enumerable:!0,get:function(){return this.ve},set:function(t){isFinite(t)&&(this.ve=t)}}),Object.defineProperty(this,"shadowOffsetY",{enumerable:!0,get:function(){return this.we},set:function(t){isFinite(t)&&(this.we=t)}}),Object.defineProperty(this,"strokeStyle",{enumerable:!0,get:function(){return n(this.he)},set:function(t){"string"==typeof t?this.he=r(t):t.se&&(this.he=t)}}),this.arc=function(t,e,n,r,i,a){d(this.Td,t,e,n,n,0,r,i,a)},this.arcTo=function(t,e,n,r,i){u(this.Td,t,e,n,r,i)},this.beginPath=function(){this.Td.delete(),this.Td=new t.Path},this.bezierCurveTo=function(t,n,r,i,a,o){var s=this.Td;e([t,n,r,i,a,o])&&(s.isEmpty()&&s.moveTo(t,n),s.cubicTo(t,n,r,i,a,o))},this.clearRect=function(e,n,r,i){this.Qd.setStyle(t.PaintStyle.Fill),this.Qd.setBlendMode(t.BlendMode.Clear),this.Nd.drawRect(t.XYWHRect(e,n,r,i),this.Qd),this.Qd.setBlendMode(this.Pd)},this.clip=function(e,n){"string"==typeof e?(n=e,e=this.Td):e&&e.$e&&(e=e.Wd),e||(e=this.Td),e=e.copy(),n&&"evenodd"===n.toLowerCase()?e.setFillType(t.FillType.EvenOdd):e.setFillType(t.FillType.Winding),this.Nd.clipPath(e,t.ClipOp.Intersect,!0),e.delete()},this.closePath=function(){h(this.Td)},this.createImageData=function(){if(1===arguments.length){var t=arguments[0];return new l(new Uint8ClampedArray(4*t.width*t.height),t.width,t.height)}if(2===arguments.length){t=arguments[0];var e=arguments[1];return new l(new Uint8ClampedArray(4*t*e),t,e)}throw"createImageData expects 1 or 2 arguments, got "+arguments.length},this.createLinearGradient=function(t,n,r,i){if(e(arguments)){var a=new c(t,n,r,i);return this.Ae.push(a),a}},this.createPattern=function(t,e){return t=new g(t,e),this.Ae.push(t),t},this.createRadialGradient=function(t,n,r,i,a,o){if(e(arguments)){var s=new y(t,n,r,i,a,o);return this.Ae.push(s),s}},this.drawImage=function(e){var n=this.Oe();if(3===arguments.length||5===arguments.length)var r=t.XYWHRect(arguments[1],arguments[2],arguments[3]||e.width(),arguments[4]||e.height()),i=t.XYWHRect(0,0,e.width(),e.height());else{if(9!==arguments.length)throw"invalid number of args for drawImage, need 3, 5, or 9; got "+arguments.length;r=t.XYWHRect(arguments[5],arguments[6],arguments[7],arguments[8]),i=t.XYWHRect(arguments[1],arguments[2],arguments[3],arguments[4])}this.Nd.drawImageRect(e,i,r,n,!1),n.dispose()},this.ellipse=function(t,e,n,r,i,a,o,s){d(this.Td,t,e,n,r,i,a,o,s)},this.Oe=function(){var e=this.Qd.copy();if(e.setStyle(t.PaintStyle.Fill),i(this.be)){var n=t.multiplyByAlpha(this.be,this.je);e.setColor(n)}else n=this.be.se(this.Ud),e.setColor(t.Color(0,0,0,this.je)),e.setShader(n);return e.dispose=function(){this.delete()},e},this.fill=function(e,n){if("string"==typeof e?(n=e,e=this.Td):e&&e.$e&&(e=e.Wd),"evenodd"===n)this.Td.setFillType(t.FillType.EvenOdd);else{if("nonzero"!==n&&n)throw"invalid fill rule";this.Td.setFillType(t.FillType.Winding)}e||(e=this.Td),n=this.Oe();var r=this.xe(n);r&&(this.Nd.save(),this.pe(),this.Nd.drawPath(e,r),this.Nd.restore(),r.dispose()),this.Nd.drawPath(e,n),n.dispose()},this.fillRect=function(e,n,r,i){var a=this.Oe(),o=this.xe(a);o&&(this.Nd.save(),this.pe(),this.Nd.drawRect(t.XYWHRect(e,n,r,i),o),this.Nd.restore(),o.dispose()),this.Nd.drawRect(t.XYWHRect(e,n,r,i),a),a.dispose()},this.fillText=function(e,n,r){var i=this.Oe();e=t.TextBlob.MakeFromText(e,this.re);var a=this.xe(i);a&&(this.Nd.save(),this.pe(),this.Nd.drawTextBlob(e,n,r,a),this.Nd.restore(),a.dispose()),this.Nd.drawTextBlob(e,n,r,i),e.delete(),i.dispose()},this.getImageData=function(e,n,r,i){return(e=this.Nd.readPixels(e,n,{width:r,height:i,colorType:t.ColorType.RGBA_8888,alphaType:t.AlphaType.Unpremul,colorSpace:t.ColorSpace.SRGB}))?new l(new Uint8ClampedArray(e.buffer),r,i):null},this.getLineDash=function(){return this.te.slice()},this.lf=function(e){var n=t.Matrix.invert(this.Ud);return t.Matrix.mapPoints(n,e),e},this.isPointInPath=function(e,n,r){var i=arguments;if(3===i.length)var a=this.Td;else{if(4!==i.length)throw"invalid arg count, need 3 or 4, got "+i.length;a=i[0],e=i[1],n=i[2],r=i[3]}return!(!isFinite(e)||!isFinite(n))&&("nonzero"===(r=r||"nonzero")||"evenodd"===r)&&(e=(i=this.lf([e,n]))[0],n=i[1],a.setFillType("nonzero"===r?t.FillType.Winding:t.FillType.EvenOdd),a.contains(e,n))},this.isPointInStroke=function(e,n){var r=arguments;if(2===r.length)var i=this.Td;else{if(3!==r.length)throw"invalid arg count, need 2 or 3, got "+r.length;i=r[0],e=r[1],n=r[2]}return!(!isFinite(e)||!isFinite(n))&&(e=(r=this.lf([e,n]))[0],n=r[1],(i=i.copy()).setFillType(t.FillType.Winding),i.stroke({width:this.lineWidth,miter_limit:this.miterLimit,cap:this.Qd.getStrokeCap(),join:this.Qd.getStrokeJoin(),precision:.3}),r=i.contains(e,n),i.delete(),r)},this.lineTo=function(t,e){p(this.Td,t,e)},this.measureText=function(){throw Error("Clients wishing to properly measure text should use the Paragraph API")},this.moveTo=function(t,n){var r=this.Td;e([t,n])&&r.moveTo(t,n)},this.putImageData=function(n,r,i,a,o,s,l){if(e([r,i,a,o,s,l]))if(void 0===a)this.Nd.writePixels(n.data,n.width,n.height,r,i);else if(a=a||0,o=o||0,s=s||n.width,l=l||n.height,0>s&&(a+=s,s=Math.abs(s)),0>l&&(o+=l,l=Math.abs(l)),0>a&&(s+=a,a=0),0>o&&(l+=o,o=0),!(0>=s||0>=l)){n=t.MakeImage({width:n.width,height:n.height,alphaType:t.AlphaType.Unpremul,colorType:t.ColorType.RGBA_8888,colorSpace:t.ColorSpace.SRGB},n.data,4*n.width);var c=t.XYWHRect(a,o,s,l);r=t.XYWHRect(r+a,i+o,s,l),i=t.Matrix.invert(this.Ud),this.Nd.save(),this.Nd.concat(i),this.Nd.drawImageRect(n,c,r,null,!1),this.Nd.restore(),n.delete()}},this.quadraticCurveTo=function(t,n,r,i){var a=this.Td;e([t,n,r,i])&&(a.isEmpty()&&a.moveTo(t,n),a.quadTo(t,n,r,i))},this.rect=function(n,r,i,a){var o=this.Td;e(n=t.XYWHRect(n,r,i,a))&&o.addRect(n)},this.resetTransform=function(){this.Td.transform(this.Ud);var e=t.Matrix.invert(this.Ud);this.Nd.concat(e),this.Ud=this.Nd.getTotalMatrix()},this.restore=function(){var e=this.kf.pop();if(e){var n=t.Matrix.multiply(this.Ud,t.Matrix.invert(e.Cf));this.Td.transform(n),this.Qd.delete(),this.Qd=e.$f,this.te=e.Wf,this.Je=e.rg,this.he=e.qg,this.be=e.fs,this.ve=e.og,this.we=e.pg,this.ue=e.dg,this.Ie=e.ng,this.je=e.Jf,this.Pd=e.Kf,this.He=e.Xf,this.Pe=e.If,this.Nd.restore(),this.Ud=this.Nd.getTotalMatrix()}},this.rotate=function(e){if(isFinite(e)){var n=t.Matrix.rotated(-e);this.Td.transform(n),this.Nd.rotate(e/Math.PI*180,0,0),this.Ud=this.Nd.getTotalMatrix()}},this.save=function(){if(this.be.qe){var t=this.be.qe();this.Ae.push(t)}else t=this.be;if(this.he.qe){var e=this.he.qe();this.Ae.push(e)}else e=this.he;this.kf.push({Cf:this.Ud.slice(),Wf:this.te.slice(),rg:this.Je,qg:e,fs:t,og:this.ve,pg:this.we,dg:this.ue,ng:this.Ie,Jf:this.je,Xf:this.He,Kf:this.Pd,$f:this.Qd.copy(),If:this.Pe}),this.Nd.save()},this.scale=function(n,r){if(e(arguments)){var i=t.Matrix.scaled(1/n,1/r);this.Td.transform(i),this.Nd.scale(n,r),this.Ud=this.Nd.getTotalMatrix()}},this.setLineDash=function(t){for(var e=0;e<t.length;e++)if(!isFinite(t[e])||0>t[e])return;1==t.length%2&&Array.prototype.push.apply(t,t),this.te=t},this.setTransform=function(t,n,r,i,a,o){e(arguments)&&(this.resetTransform(),this.transform(t,n,r,i,a,o))},this.pe=function(){var e=t.Matrix.invert(this.Ud);this.Nd.concat(e),this.Nd.concat(t.Matrix.translated(this.ve,this.we)),this.Nd.concat(this.Ud)},this.xe=function(e){var n=t.multiplyByAlpha(this.Ie,this.je);if(!t.getColorComponents(n)[3]||!(this.ue||this.we||this.ve))return null;(e=e.copy()).setColor(n);var r=t.MaskFilter.MakeBlur(t.BlurStyle.Normal,this.ue/2,!1);return e.setMaskFilter(r),e.dispose=function(){r.delete(),this.delete()},e},this.bf=function(){var e=this.Qd.copy();if(e.setStyle(t.PaintStyle.Stroke),i(this.he)){var n=t.multiplyByAlpha(this.he,this.je);e.setColor(n)}else n=this.he.se(this.Ud),e.setColor(t.Color(0,0,0,this.je)),e.setShader(n);if(e.setStrokeWidth(this.Je),this.te.length){var r=t.PathEffect.MakeDash(this.te,this.He);e.setPathEffect(r)}return e.dispose=function(){r&&r.delete(),this.delete()},e},this.stroke=function(t){t=t?t.Wd:this.Td;var e=this.bf(),n=this.xe(e);n&&(this.Nd.save(),this.pe(),this.Nd.drawPath(t,n),this.Nd.restore(),n.dispose()),this.Nd.drawPath(t,e),e.dispose()},this.strokeRect=function(e,n,r,i){var a=this.bf(),o=this.xe(a);o&&(this.Nd.save(),this.pe(),this.Nd.drawRect(t.XYWHRect(e,n,r,i),o),this.Nd.restore(),o.dispose()),this.Nd.drawRect(t.XYWHRect(e,n,r,i),a),a.dispose()},this.strokeText=function(e,n,r){var i=this.bf();e=t.TextBlob.MakeFromText(e,this.re);var a=this.xe(i);a&&(this.Nd.save(),this.pe(),this.Nd.drawTextBlob(e,n,r,a),this.Nd.restore(),a.dispose()),this.Nd.drawTextBlob(e,n,r,i),e.delete(),i.dispose()},this.translate=function(n,r){if(e(arguments)){var i=t.Matrix.translated(-n,-r);this.Td.transform(i),this.Nd.translate(n,r),this.Ud=this.Nd.getTotalMatrix()}},this.transform=function(e,n,r,i,a,o){e=[e,r,a,n,i,o,0,0,1],n=t.Matrix.invert(e),this.Td.transform(n),this.Nd.concat(e),this.Ud=this.Nd.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 s(e){this.cf=e,this.Md=new o(e.getCanvas()),this.Qe=[],this.decodeImage=function(e){if(!(e=t.MakeImageFromEncoded(e)))throw"Invalid input";return this.Qe.push(e),e},this.loadFont=function(e,n){if(!(e=t.Typeface.MakeFreeTypeFaceFromData(e)))return null;this.Qe.push(e);var r=(n.style||"normal")+"|"+(n.variant||"normal")+"|"+(n.weight||"normal");n=n.family,b[n]||(b[n]={"*":e}),b[n][r]=e},this.makePath2D=function(t){return t=new m(t),this.Qe.push(t.Wd),t},this.getContext=function(t){return"2d"===t?this.Md:null},this.toDataURL=function(e,n){this.cf.flush();var r=this.cf.makeImageSnapshot();if(r){e=e||"image/png";var i=t.ImageFormat.PNG;if("image/jpeg"===e&&(i=t.ImageFormat.JPEG),n=r.encodeToBytes(i,n||.92)){if(r.delete(),e="data:"+e+";base64,","undefined"!=typeof Buffer)n=Buffer.from(n).toString("base64");else{r=0,i=n.length;for(var a,o="";r<i;)a=n.slice(r,Math.min(r+32768,i)),o+=String.fromCharCode.apply(null,a),r+=32768;n=btoa(o)}return e+n}}},this.dispose=function(){this.Md.me(),this.Qe.forEach((function(t){t.delete()})),this.cf.dispose()}}function l(t,e,n){if(!e||0===n)throw"invalid dimensions, width and height must be non-zero";if(t.length%4)throw"arr must be a multiple of 4";n=n||t.length/(4*e),Object.defineProperty(this,"data",{value:t,writable:!1}),Object.defineProperty(this,"height",{value:n,writable:!1}),Object.defineProperty(this,"width",{value:e,writable:!1})}function c(e,n,i,a){this.Yd=null,this.ee=[],this.$d=[],this.addColorStop=function(t,e){if(0>t||1<t||!isFinite(t))throw"offset must be between 0 and 1 inclusively";e=r(e);var n=this.$d.indexOf(t);if(-1!==n)this.ee[n]=e;else{for(n=0;n<this.$d.length&&!(this.$d[n]>t);n++);this.$d.splice(n,0,t),this.ee.splice(n,0,e)}},this.qe=function(){var t=new c(e,n,i,a);return t.ee=this.ee.slice(),t.$d=this.$d.slice(),t},this.me=function(){this.Yd&&(this.Yd.delete(),this.Yd=null)},this.se=function(r){var o=[e,n,i,a];t.Matrix.mapPoints(r,o),r=o[0];var s=o[1],l=o[2];return o=o[3],this.me(),this.Yd=t.Shader.MakeLinearGradient([r,s],[l,o],this.ee,this.$d,t.TileMode.Clamp)}}function u(t,n,r,i,a,o){if(e([n,r,i,a,o])){if(0>o)throw"radii cannot be negative";t.isEmpty()&&t.moveTo(n,r),t.arcToTangent(n,r,i,a,o)}}function h(t){if(!t.isEmpty()){var e=t.getBounds();(e[3]-e[1]||e[2]-e[0])&&t.close()}}function f(e,n,r,i,a,o,s){s=(s-o)/Math.PI*180,o=o/Math.PI*180,n=t.LTRBRect(n-i,r-a,n+i,r+a),1e-5>Math.abs(Math.abs(s)-360)?(r=s/2,e.arcToOval(n,o,r,!1),e.arcToOval(n,o+r,r,!1)):e.arcToOval(n,o,s,!1)}function d(n,r,i,a,o,s,l,c,u){if(e([r,i,a,o,s,l,c])){if(0>a||0>o)throw"radii cannot be negative";var h=2*Math.PI,d=l%h;0>d&&(d+=h);var p=d-l;l=d,c+=p,!u&&c-l>=h?c=l+h:u&&l-c>=h?c=l-h:!u&&l>c?c=l+(h-(l-c)%h):u&&l<c&&(c=l-(h-(c-l)%h)),s?(u=t.Matrix.rotated(s,r,i),s=t.Matrix.rotated(-s,r,i),n.transform(s),f(n,r,i,a,o,l,c),n.transform(u)):f(n,r,i,a,o,l,c)}}function p(t,n,r){e([n,r])&&(t.isEmpty()&&t.moveTo(n,r),t.lineTo(n,r))}function m(n){this.Wd=null,this.Wd="string"==typeof n?t.Path.MakeFromSVGString(n):n&&n.$e?n.Wd.copy():new t.Path,this.$e=function(){return this.Wd},this.addPath=function(t,e){e||(e={a:1,c:0,e:0,b:0,d:1,f:0}),this.Wd.addPath(t.Wd,[e.a,e.c,e.e,e.b,e.d,e.f])},this.arc=function(t,e,n,r,i,a){d(this.Wd,t,e,n,n,0,r,i,a)},this.arcTo=function(t,e,n,r,i){u(this.Wd,t,e,n,r,i)},this.bezierCurveTo=function(t,n,r,i,a,o){var s=this.Wd;e([t,n,r,i,a,o])&&(s.isEmpty()&&s.moveTo(t,n),s.cubicTo(t,n,r,i,a,o))},this.closePath=function(){h(this.Wd)},this.ellipse=function(t,e,n,r,i,a,o,s){d(this.Wd,t,e,n,r,i,a,o,s)},this.lineTo=function(t,e){p(this.Wd,t,e)},this.moveTo=function(t,n){var r=this.Wd;e([t,n])&&r.moveTo(t,n)},this.quadraticCurveTo=function(t,n,r,i){var a=this.Wd;e([t,n,r,i])&&(a.isEmpty()&&a.moveTo(t,n),a.quadTo(t,n,r,i))},this.rect=function(n,r,i,a){var o=this.Wd;e(n=t.XYWHRect(n,r,i,a))&&o.addRect(n)}}function g(n,r){switch(this.Yd=null,this.xf=n,this._transform=t.Matrix.identity(),""===r&&(r="repeat"),r){case"repeat-x":this.ye=t.TileMode.Repeat,this.ze=t.TileMode.Decal;break;case"repeat-y":this.ye=t.TileMode.Decal,this.ze=t.TileMode.Repeat;break;case"repeat":this.ze=this.ye=t.TileMode.Repeat;break;case"no-repeat":this.ze=this.ye=t.TileMode.Decal;break;default:throw"invalid repetition mode "+r}this.setTransform=function(t){e(t=[t.a,t.c,t.e,t.b,t.d,t.f,0,0,1])&&(this._transform=t)},this.qe=function(){var t=new g;return t.ye=this.ye,t.ze=this.ze,t},this.me=function(){this.Yd&&(this.Yd.delete(),this.Yd=null)},this.se=function(){return this.me(),this.Yd=this.xf.makeShaderCubic(this.ye,this.ze,1/3,1/3,this._transform)}}function y(e,n,i,a,o,s){this.Yd=null,this.ee=[],this.$d=[],this.addColorStop=function(t,e){if(0>t||1<t||!isFinite(t))throw"offset must be between 0 and 1 inclusively";e=r(e);var n=this.$d.indexOf(t);if(-1!==n)this.ee[n]=e;else{for(n=0;n<this.$d.length&&!(this.$d[n]>t);n++);this.$d.splice(n,0,t),this.ee.splice(n,0,e)}},this.qe=function(){var t=new y(e,n,i,a,o,s);return t.ee=this.ee.slice(),t.$d=this.$d.slice(),t},this.me=function(){this.Yd&&(this.Yd.delete(),this.Yd=null)},this.se=function(r){var l=[e,n,a,o];t.Matrix.mapPoints(r,l);var c=l[0],u=l[1],h=l[2];l=l[3];var f=(Math.abs(r[0])+Math.abs(r[4]))/2;return r=i*f,f*=s,this.me(),this.Yd=t.Shader.MakeTwoPointConicalGradient([c,u],r,[h,l],f,this.ee,this.$d,t.TileMode.Clamp)}}t._testing={};var v={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)};t._testing.parseColor=r,t._testing.colorToString=n;var w=/(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)(.+)/,b={"Noto Mono":{"*":null},monospace:{"*":null}};t._testing.parseFontString=a,t.MakeCanvas=function(e,n){return(e=t.MakeSurface(e,n))?new s(e):null},t.ImageData=function(){if(2===arguments.length){var t=arguments[0],e=arguments[1];return new l(new Uint8ClampedArray(4*t*e),t,e)}if(3===arguments.length){var n=arguments[0];if(n.prototype.constructor!==Uint8ClampedArray)throw"bytes must be given as a Uint8ClampedArray";if(n%4)throw"bytes must be given in a multiple of 4";if(n%(t=arguments[1]))throw"bytes must divide evenly by width";if((e=arguments[2])&&e!==n/(4*t))throw"invalid height given";return new l(n,t,n/(4*t))}throw"invalid number of arguments - takes 2 or 3, saw "+arguments.length}}()}(e);var o,s={};for(o in e)e.hasOwnProperty(o)&&(s[o]=e[o]);var l,c,u,h,f="./this.program";function d(t,e){throw e}l="object"==typeof window,c="function"==typeof importScripts,u="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,h=!l&&!u&&!c;var p,m,g,y,v,w="";u?(w=c?x.dirname(w)+"/":__dirname+"/",p=function(t,e){return y||(y=k),v||(v=x),t=v.normalize(t),y.readFileSync(t,e?null:"utf8")},g=function(t){return(t=p(t,!0)).buffer||(t=new Uint8Array(t)),M(t.buffer),t},1<process.argv.length&&(f=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),process.on("uncaughtException",(function(t){if(!(t instanceof Cn))throw t})),process.on("unhandledRejection",at),d=function(t){process.exit(t)},e.inspect=function(){return"[Emscripten Module object]"}):h?("undefined"!=typeof read&&(p=function(t){return read(t)}),g=function(t){return"function"==typeof readbuffer?new Uint8Array(readbuffer(t)):(M("object"==typeof(t=read(t,"binary"))),t)},"function"==typeof quit&&(d=function(t){quit(t)}),"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print)):(l||c)&&(c?w=self.location.href:"undefined"!=typeof document&&document.currentScript&&(w=document.currentScript.src),n&&(w=n),w=0!==w.indexOf("blob:")?w.substr(0,w.lastIndexOf("/")+1):"",p=function(t){var e=new XMLHttpRequest;return e.open("GET",t,!1),e.send(null),e.responseText},c&&(g=function(t){var e=new XMLHttpRequest;return e.open("GET",t,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)}),m=function(t,e,n){var r=new XMLHttpRequest;r.open("GET",t,!0),r.responseType="arraybuffer",r.onload=function(){200==r.status||0==r.status&&r.response?e(r.response):n()},r.onerror=n,r.send(null)});var b=e.print||console.log.bind(console),A=e.printErr||console.warn.bind(console);for(o in s)s.hasOwnProperty(o)&&(e[o]=s[o]);s=null,e.thisProgram&&(f=e.thisProgram),e.quit&&(d=e.quit);var S,T=0;e.wasmBinary&&(S=e.wasmBinary);var C=e.noExitRuntime||!0;"object"!=typeof WebAssembly&&at("no native wasm support detected");var _,P=!1;function M(t,e){t||at("Assertion failed: "+e)}var F="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function E(t,e,n){var r=e+n;for(n=e;t[n]&&!(n>=r);)++n;if(16<n-e&&t.subarray&&F)return F.decode(t.subarray(e,n));for(r="";e<n;){var i=t[e++];if(128&i){var a=63&t[e++];if(192==(224&i))r+=String.fromCharCode((31&i)<<6|a);else{var o=63&t[e++];65536>(i=224==(240&i)?(15&i)<<12|a<<6|o:(7&i)<<18|a<<12|o<<6|63&t[e++])?r+=String.fromCharCode(i):(i-=65536,r+=String.fromCharCode(55296|i>>10,56320|1023&i))}}else r+=String.fromCharCode(i)}return r}function O(t,e){return t?E(D,t,e):""}function R(t,e,n,r){if(!(0<r))return 0;var i=n;r=n+r-1;for(var a=0;a<t.length;++a){var o=t.charCodeAt(a);if(55296<=o&&57343>=o&&(o=65536+((1023&o)<<10)|1023&t.charCodeAt(++a)),127>=o){if(n>=r)break;e[n++]=o}else{if(2047>=o){if(n+1>=r)break;e[n++]=192|o>>6}else{if(65535>=o){if(n+2>=r)break;e[n++]=224|o>>12}else{if(n+3>=r)break;e[n++]=240|o>>18,e[n++]=128|o>>12&63}e[n++]=128|o>>6&63}e[n++]=128|63&o}}return e[n]=0,n-i}function B(t){for(var e=0,n=0;n<t.length;++n){var r=t.charCodeAt(n);55296<=r&&57343>=r&&(r=65536+((1023&r)<<10)|1023&t.charCodeAt(++n)),127>=r?++e:e=2047>=r?e+2:65535>=r?e+3:e+4}return e}var I,L,D,G,U,W,j,N,z,H="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function V(t,e){for(var n=t>>1,r=n+e/2;!(n>=r)&&U[n];)++n;if(32<(n<<=1)-t&&H)return H.decode(D.subarray(t,n));for(n="",r=0;!(r>=e/2);++r){var i=G[t+2*r>>1];if(0==i)break;n+=String.fromCharCode(i)}return n}function Y(t,e,n){if(void 0===n&&(n=2147483647),2>n)return 0;var r=e;n=(n-=2)<2*t.length?n/2:t.length;for(var i=0;i<n;++i)G[e>>1]=t.charCodeAt(i),e+=2;return G[e>>1]=0,e-r}function q(t){return 2*t.length}function $(t,e){for(var n=0,r="";!(n>=e/4);){var i=W[t+4*n>>2];if(0==i)break;++n,65536<=i?(i-=65536,r+=String.fromCharCode(55296|i>>10,56320|1023&i)):r+=String.fromCharCode(i)}return r}function X(t,e,n){if(void 0===n&&(n=2147483647),4>n)return 0;var r=e;n=r+n-4;for(var i=0;i<t.length;++i){var a=t.charCodeAt(i);if(55296<=a&&57343>=a&&(a=65536+((1023&a)<<10)|1023&t.charCodeAt(++i)),W[e>>2]=a,(e+=4)+4>n)break}return W[e>>2]=0,e-r}function K(t){for(var e=0,n=0;n<t.length;++n){var r=t.charCodeAt(n);55296<=r&&57343>=r&&++n,e+=4}return e}function Q(){var t=_.buffer;I=t,e.HEAP8=L=new Int8Array(t),e.HEAP16=G=new Int16Array(t),e.HEAP32=W=new Int32Array(t),e.HEAPU8=D=new Uint8Array(t),e.HEAPU16=U=new Uint16Array(t),e.HEAPU32=j=new Uint32Array(t),e.HEAPF32=N=new Float32Array(t),e.HEAPF64=z=new Float64Array(t)}var Z,J=[],tt=[],et=[];function nt(){var t=e.preRun.shift();J.unshift(t)}var rt=0,it=null;function at(t){throw e.onAbort&&e.onAbort(t),A(t),P=!0,t=new WebAssembly.RuntimeError("abort("+t+"). Build with -s ASSERTIONS=1 for more info."),i(t),t}function ot(){return st.startsWith("data:application/octet-stream;base64,")}e.preloadedImages={},e.preloadedAudios={};var st="canvaskit.wasm";if(!ot()){var lt=st;st=e.locateFile?e.locateFile(lt,w):w+lt}function ct(){var t=st;try{if(t==st&&S)return new Uint8Array(S);if(g)return g(t);throw"both async and sync fetching of the wasm failed"}catch(t){at(t)}}function ut(t){for(;0<t.length;){var n=t.shift();if("function"==typeof n)n(e);else{var r=n.Ag;"number"==typeof r?void 0===n.df?Z.get(r)():Z.get(r)(n.df):r(void 0===n.df?null:n.df)}}}function ht(t){this.Rd=t-16,this.ig=function(t){W[this.Rd+8>>2]=t},this.fg=function(t){W[this.Rd+0>>2]=t},this.gg=function(){W[this.Rd+4>>2]=0},this.eg=function(){L[this.Rd+12>>0]=0},this.hg=function(){L[this.Rd+13>>0]=0},this.Tf=function(t,e){this.ig(t),this.fg(e),this.gg(),this.eg(),this.hg()}}var ft={},dt=[null,[],[]],pt={},mt={};function gt(t){for(;t.length;){var e=t.pop();t.pop()(e)}}function yt(t){return this.fromWireType(j[t>>2])}var vt={},wt={},bt={};function At(t){if(void 0===t)return"_unknown";var e=(t=t.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return 48<=e&&57>=e?"_"+t:t}function St(t,e){return t=At(t),new Function("body","return function "+t+'() {\n "use strict"; return body.apply(this, arguments);\n};\n')(e)}function Tt(t){var e=Error,n=St(t,(function(e){this.name=t,this.message=e,void 0!==(e=Error(e).stack)&&(this.stack=this.toString()+"\n"+e.replace(/^Error(:[^\n]*)?\n/,""))}));return n.prototype=Object.create(e.prototype),n.prototype.constructor=n,n.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},n}var Ct=void 0;function _t(t){throw new Ct(t)}function Pt(t,e,n){function r(e){(e=n(e)).length!==t.length&&_t("Mismatched type converter count");for(var r=0;r<t.length;++r)Ot(t[r],e[r])}t.forEach((function(t){bt[t]=e}));var i=Array(e.length),a=[],o=0;e.forEach((function(t,e){wt.hasOwnProperty(t)?i[e]=wt[t]:(a.push(t),vt.hasOwnProperty(t)||(vt[t]=[]),vt[t].push((function(){i[e]=wt[t],++o===a.length&&r(i)})))})),0===a.length&&r(i)}function Mt(t){switch(t){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+t)}}var Ft=void 0;function Et(t){for(var e="";D[t];)e+=Ft[D[t++]];return e}var xt=void 0;function kt(t){throw new xt(t)}function Ot(t,e,n){if(n=n||{},!("argPackAdvance"in e))throw new TypeError("registerType registeredInstance requires argPackAdvance");var r=e.name;if(t||kt('type "'+r+'" must have a positive integer typeid pointer'),wt.hasOwnProperty(t)){if(n.Sf)return;kt("Cannot register type '"+r+"' twice")}wt[t]=e,delete bt[t],vt.hasOwnProperty(t)&&(e=vt[t],delete vt[t],e.forEach((function(t){t()})))}function Rt(t){kt(t.Ld.Xd.Sd.name+" instance already deleted")}var Bt=!1;function It(){}function Lt(t){--t.count.value,0===t.count.value&&(t.de?t.ge.ke(t.de):t.Xd.Sd.ke(t.Rd))}function Dt(t){return"undefined"==typeof FinalizationGroup?(Dt=function(t){return t},t):(Bt=new FinalizationGroup((function(t){for(var e=t.next();!e.done;e=t.next())(e=e.value).Rd?Lt(e):console.warn("object already deleted: "+e.Rd)})),It=function(t){Bt.unregister(t.Ld)},(Dt=function(t){return Bt.register(t,t.Ld,t.Ld),t})(t))}var Gt=void 0,Ut=[];function Wt(){for(;Ut.length;){var t=Ut.pop();t.Ld.De=!1,t.delete()}}function jt(){}var Nt={};function zt(t,e,n){if(void 0===t[e].Zd){var r=t[e];t[e]=function(){return t[e].Zd.hasOwnProperty(arguments.length)||kt("Function '"+n+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+t[e].Zd+")!"),t[e].Zd[arguments.length].apply(this,arguments)},t[e].Zd=[],t[e].Zd[r.Be]=r}}function Ht(t,n,r){e.hasOwnProperty(t)?((void 0===r||void 0!==e[t].Zd&&void 0!==e[t].Zd[r])&&kt("Cannot register public name '"+t+"' twice"),zt(e,t,t),e.hasOwnProperty(r)&&kt("Cannot register multiple overloads of a function with the same number of arguments ("+r+")!"),e[t].Zd[r]=n):(e[t]=n,void 0!==r&&(e[t].Cg=r))}function Vt(t,e,n,r,i,a,o,s){this.name=t,this.constructor=e,this.Ee=n,this.ke=r,this.ie=i,this.Lf=a,this.Ne=o,this.Ff=s,this.bg=[]}function Yt(t,e,n){for(;e!==n;)e.Ne||kt("Expected null or instance of "+n.name+", got an instance of "+e.name),t=e.Ne(t),e=e.ie;return t}function qt(t,e){return null===e?(this.ff&&kt("null is not a valid "+this.name),0):(e.Ld||kt('Cannot pass "'+pe(e)+'" as a '+this.name),e.Ld.Rd||kt("Cannot pass deleted object as a pointer of type "+this.name),Yt(e.Ld.Rd,e.Ld.Xd.Sd,this.Sd))}function $t(t,e){if(null===e){if(this.ff&&kt("null is not a valid "+this.name),this.Se){var n=this.gf();return null!==t&&t.push(this.ke,n),n}return 0}if(e.Ld||kt('Cannot pass "'+pe(e)+'" as a '+this.name),e.Ld.Rd||kt("Cannot pass deleted object as a pointer of type "+this.name),!this.Re&&e.Ld.Xd.Re&&kt("Cannot convert argument of type "+(e.Ld.ge?e.Ld.ge.name:e.Ld.Xd.name)+" to parameter type "+this.name),n=Yt(e.Ld.Rd,e.Ld.Xd.Sd,this.Sd),this.Se)switch(void 0===e.Ld.de&&kt("Passing raw pointer to smart pointer is illegal"),this.mg){case 0:e.Ld.ge===this?n=e.Ld.de:kt("Cannot convert argument of type "+(e.Ld.ge?e.Ld.ge.name:e.Ld.Xd.name)+" to parameter type "+this.name);break;case 1:n=e.Ld.de;break;case 2:if(e.Ld.ge===this)n=e.Ld.de;else{var r=e.clone();n=this.cg(n,he((function(){r.delete()}))),null!==t&&t.push(this.ke,n)}break;default:kt("Unsupporting sharing policy")}return n}function Xt(t,e){return null===e?(this.ff&&kt("null is not a valid "+this.name),0):(e.Ld||kt('Cannot pass "'+pe(e)+'" as a '+this.name),e.Ld.Rd||kt("Cannot pass deleted object as a pointer of type "+this.name),e.Ld.Xd.Re&&kt("Cannot convert argument of type "+e.Ld.Xd.name+" to parameter type "+this.name),Yt(e.Ld.Rd,e.Ld.Xd.Sd,this.Sd))}function Kt(t,e,n){return e===n?t:void 0===n.ie||null===(t=Kt(t,e,n.ie))?null:n.Ff(t)}var Qt={};function Zt(t,e){return e.Xd&&e.Rd||_t("makeClassHandle requires ptr and ptrType"),!!e.ge!=!!e.de&&_t("Both smartPtrType and smartPtr must be specified"),e.count={value:1},Dt(Object.create(t,{Ld:{value:e}}))}function Jt(t,e,n,r,i,a,o,s,l,c,u){this.name=t,this.Sd=e,this.ff=n,this.Re=r,this.Se=i,this.ag=a,this.mg=o,this.tf=s,this.gf=l,this.cg=c,this.ke=u,i||void 0!==e.ie?this.toWireType=$t:(this.toWireType=r?qt:Xt,this.fe=null)}function te(t,n,r){e.hasOwnProperty(t)||_t("Replacing nonexistant public symbol"),void 0!==e[t].Zd&&void 0!==r?e[t].Zd[r]=n:(e[t]=n,e[t].Be=r)}function ee(t,n){var r=(t=Et(t)).includes("j")?function(t,n){var r=[];return function(){r.length=arguments.length;for(var i=0;i<arguments.length;i++)r[i]=arguments[i];return t.includes("j")?(i=e["dynCall_"+t],i=r&&r.length?i.apply(null,[n].concat(r)):i.call(null,n)):i=Z.get(n).apply(null,r),i}}(t,n):Z.get(n);return"function"!=typeof r&&kt("unknown function pointer with signature "+t+": "+n),r}var ne=void 0;function re(t){var e=Et(t=vn(t));return gn(t),e}function ie(t,e){var n=[],r={};throw e.forEach((function t(e){r[e]||wt[e]||(bt[e]?bt[e].forEach(t):(n.push(e),r[e]=!0))})),new ne(t+": "+n.map(re).join([", "]))}function ae(t){var e=Function;if(!(e instanceof Function))throw new TypeError("new_ called with constructor type "+typeof e+" which is not a function");var n=St(e.name||"unknownFunctionName",(function(){}));return n.prototype=e.prototype,n=new n,(t=e.apply(n,t))instanceof Object?t:n}function oe(t,e,n,r,i){var a=e.length;2>a&&kt("argTypes array size mismatch! Must at least get return value and 'this' types!");var o=null!==e[1]&&null!==n,s=!1;for(n=1;n<e.length;++n)if(null!==e[n]&&void 0===e[n].fe){s=!0;break}var l="void"!==e[0].name,c="",u="";for(n=0;n<a-2;++n)c+=(0!==n?", ":"")+"arg"+n,u+=(0!==n?", ":"")+"arg"+n+"Wired";t="return function "+At(t)+"("+c+") {\nif (arguments.length !== "+(a-2)+") {\nthrowBindingError('function "+t+" called with ' + arguments.length + ' arguments, expected "+(a-2)+" args!');\n}\n",s&&(t+="var destructors = [];\n");var h=s?"destructors":"null";for(c="throwBindingError invoker fn runDestructors retType classParam".split(" "),r=[kt,r,i,gt,e[0],e[1]],o&&(t+="var thisWired = classParam.toWireType("+h+", this);\n"),n=0;n<a-2;++n)t+="var arg"+n+"Wired = argType"+n+".toWireType("+h+", arg"+n+"); // "+e[n+2].name+"\n",c.push("argType"+n),r.push(e[n+2]);if(o&&(u="thisWired"+(0<u.length?", ":"")+u),t+=(l?"var rv = ":"")+"invoker(fn"+(0<u.length?", ":"")+u+");\n",s)t+="runDestructors(destructors);\n";else for(n=o?1:2;n<e.length;++n)a=1===n?"thisWired":"arg"+(n-2)+"Wired",null!==e[n].fe&&(t+=a+"_dtor("+a+"); // "+e[n].name+"\n",c.push(a+"_dtor"),r.push(e[n].fe));return l&&(t+="var ret = retType.fromWireType(rv);\nreturn ret;\n"),c.push(t+"}\n"),ae(c).apply(null,r)}function se(t,e){for(var n=[],r=0;r<t;r++)n.push(W[(e>>2)+r]);return n}var le=[],ce=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function ue(t){4<t&&0==--ce[t].hf&&(ce[t]=void 0,le.push(t))}function he(t){switch(t){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var e=le.length?le.pop():ce.length;return ce[e]={hf:1,value:t},e}}function fe(t,e,n){switch(e){case 0:return function(t){return this.fromWireType((n?L:D)[t])};case 1:return function(t){return this.fromWireType((n?G:U)[t>>1])};case 2:return function(t){return this.fromWireType((n?W:j)[t>>2])};default:throw new TypeError("Unknown integer type: "+t)}}function de(t,e){var n=wt[t];return void 0===n&&kt(e+" has unknown type "+re(t)),n}function pe(t){if(null===t)return"null";var e=typeof t;return"object"===e||"array"===e||"function"===e?t.toString():""+t}function me(t,e){switch(e){case 2:return function(t){return this.fromWireType(N[t>>2])};case 3:return function(t){return this.fromWireType(z[t>>3])};default:throw new TypeError("Unknown float type: "+t)}}function ge(t,e,n){switch(e){case 0:return n?function(t){return L[t]}:function(t){return D[t]};case 1:return n?function(t){return G[t>>1]}:function(t){return U[t>>1]};case 2:return n?function(t){return W[t>>2]}:function(t){return j[t>>2]};default:throw new TypeError("Unknown integer type: "+t)}}function ye(t){return t||kt("Cannot use deleted val. handle = "+t),ce[t].value}var ve={};function we(t){var e=ve[t];return void 0===e?Et(t):e}var be=[];function Ae(){return"object"==typeof globalThis?globalThis:Function("return this")()}var Se,Te={};Se=u?function(){var t=process.hrtime();return 1e3*t[0]+t[1]/1e6}:"undefined"!=typeof dateNow?dateNow:function(){return performance.now()};var Ce=1,_e=[],Pe=[],Me=[],Fe=[],Ee=[],xe=[],ke=[],Oe=[],Re=[],Be=[],Ie={},Le={},De=4;function Ge(t){Ne||(Ne=t)}function Ue(t){for(var e=Ce++,n=t.length;n<e;n++)t[n]=null;return e}function We(t){return je=Oe[t],e.zg=cn=je&&je.le,!(t&&!cn)}var je,Ne,ze=[];function He(t,e,n,r){for(var i=0;i<t;i++){var a=cn[n](),o=a&&Ue(r);a?(a.name=o,r[o]=a):Ge(1282),W[e+4*i>>2]=o}}function Ve(t){var e=B(t)+1,n=mn(e);return R(t,D,n,e),n}function Ye(t){return 0==(t-=5120)?L:1==t?D:2==t?G:4==t?W:6==t?N:5==t||28922==t||28520==t||30779==t||30782==t?j:U}function qe(t,e,n,r,i){t=Ye(t);var a=31-Math.clz32(t.BYTES_PER_ELEMENT),o=De;return t.subarray(i>>a,i+r*(n*({5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4}[e-6402]||1)*(1<<a)+o-1&-o)>>a)}function $e(t){var e=cn.Df,n=e.Ze[t];return 0<=n&&(e.Ze[t]=n=cn.getUniformLocation(e,e.uf[t]+(0<n?"["+n+"]":""))),n}var Xe,Ke=[],Qe=[],Ze={};function Je(){if(!Xe){var t,e={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",_:f||"./this.program"};for(t in Ze)e[t]=Ze[t];var n=[];for(t in e)n.push(t+"="+e[t]);Xe=n}return Xe}function tn(t){return 0==t%4&&(0!=t%100||0==t%400)}function en(t,e){for(var n=0,r=0;r<=e;n+=t[r++]);return n}var nn=[31,29,31,30,31,30,31,31,30,31,30,31],rn=[31,28,31,30,31,30,31,31,30,31,30,31];function an(t,e){for(t=new Date(t.getTime());0<e;){var n=t.getMonth(),r=(tn(t.getFullYear())?nn:rn)[n];if(!(e>r-t.getDate())){t.setDate(t.getDate()+e);break}e-=r-t.getDate()+1,t.setDate(1),11>n?t.setMonth(n+1):(t.setMonth(0),t.setFullYear(t.getFullYear()+1))}return t}function on(t,e,n,r){function i(t,e,n){for(t="number"==typeof t?t.toString():t||"";t.length<e;)t=n[0]+t;return t}function a(t,e){return i(t,e,"0")}function o(t,e){function n(t){return 0>t?-1:0<t?1:0}var r;return 0===(r=n(t.getFullYear()-e.getFullYear()))&&0===(r=n(t.getMonth()-e.getMonth()))&&(r=n(t.getDate()-e.getDate())),r}function s(t){switch(t.getDay()){case 0:return new Date(t.getFullYear()-1,11,29);case 1:return t;case 2:return new Date(t.getFullYear(),0,3);case 3:return new Date(t.getFullYear(),0,2);case 4:return new Date(t.getFullYear(),0,1);case 5:return new Date(t.getFullYear()-1,11,31);case 6:return new Date(t.getFullYear()-1,11,30)}}function l(t){t=an(new Date(t.ae+1900,0,1),t.Ye);var e=new Date(t.getFullYear()+1,0,4),n=s(new Date(t.getFullYear(),0,4));return e=s(e),0>=o(n,t)?0>=o(e,t)?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}var c=W[r+40>>2];for(var u in r={ug:W[r>>2],tg:W[r+4>>2],We:W[r+8>>2],Me:W[r+12>>2],Fe:W[r+16>>2],ae:W[r+20>>2],Xe:W[r+24>>2],Ye:W[r+28>>2],Fg:W[r+32>>2],sg:W[r+36>>2],vg:c?O(c):""},n=O(n),c={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"})n=n.replace(new RegExp(u,"g"),c[u]);var h="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),f="January February March April May June July August September October November December".split(" ");for(u in c={"%a":function(t){return h[t.Xe].substring(0,3)},"%A":function(t){return h[t.Xe]},"%b":function(t){return f[t.Fe].substring(0,3)},"%B":function(t){return f[t.Fe]},"%C":function(t){return a((t.ae+1900)/100|0,2)},"%d":function(t){return a(t.Me,2)},"%e":function(t){return i(t.Me,2," ")},"%g":function(t){return l(t).toString().substring(2)},"%G":function(t){return l(t)},"%H":function(t){return a(t.We,2)},"%I":function(t){return 0==(t=t.We)?t=12:12<t&&(t-=12),a(t,2)},"%j":function(t){return a(t.Me+en(tn(t.ae+1900)?nn:rn,t.Fe-1),3)},"%m":function(t){return a(t.Fe+1,2)},"%M":function(t){return a(t.tg,2)},"%n":function(){return"\n"},"%p":function(t){return 0<=t.We&&12>t.We?"AM":"PM"},"%S":function(t){return a(t.ug,2)},"%t":function(){return"\t"},"%u":function(t){return t.Xe||7},"%U":function(t){var e=new Date(t.ae+1900,0,1),n=0===e.getDay()?e:an(e,7-e.getDay());return 0>o(n,t=new Date(t.ae+1900,t.Fe,t.Me))?a(Math.ceil((31-n.getDate()+(en(tn(t.getFullYear())?nn:rn,t.getMonth()-1)-31)+t.getDate())/7),2):0===o(n,e)?"01":"00"},"%V":function(t){var e=new Date(t.ae+1901,0,4),n=s(new Date(t.ae+1900,0,4));e=s(e);var r=an(new Date(t.ae+1900,0,1),t.Ye);return 0>o(r,n)?"53":0>=o(e,r)?"01":a(Math.ceil((n.getFullYear()<t.ae+1900?t.Ye+32-n.getDate():t.Ye+1-n.getDate())/7),2)},"%w":function(t){return t.Xe},"%W":function(t){var e=new Date(t.ae,0,1),n=1===e.getDay()?e:an(e,0===e.getDay()?1:7-e.getDay()+1);return 0>o(n,t=new Date(t.ae+1900,t.Fe,t.Me))?a(Math.ceil((31-n.getDate()+(en(tn(t.getFullYear())?nn:rn,t.getMonth()-1)-31)+t.getDate())/7),2):0===o(n,e)?"01":"00"},"%y":function(t){return(t.ae+1900).toString().substring(2)},"%Y":function(t){return t.ae+1900},"%z":function(t){var e=0<=(t=t.sg);return t=Math.abs(t)/60,(e?"+":"-")+String("0000"+(t/60*100+t%60)).slice(-4)},"%Z":function(t){return t.vg},"%%":function(){return"%"}})n.includes(u)&&(n=n.replace(new RegExp(u,"g"),c[u](r)));return u=function(t){var e=Array(B(t)+1);return R(t,e,0,e.length),e}(n),u.length>e?0:(L.set(u,t),u.length-1)}Ct=e.InternalError=Tt("InternalError");for(var sn=Array(256),ln=0;256>ln;++ln)sn[ln]=String.fromCharCode(ln);Ft=sn,xt=e.BindingError=Tt("BindingError"),jt.prototype.isAliasOf=function(t){if(!(this instanceof jt&&t instanceof jt))return!1;var e=this.Ld.Xd.Sd,n=this.Ld.Rd,r=t.Ld.Xd.Sd;for(t=t.Ld.Rd;e.ie;)n=e.Ne(n),e=e.ie;for(;r.ie;)t=r.Ne(t),r=r.ie;return e===r&&n===t},jt.prototype.clone=function(){if(this.Ld.Rd||Rt(this),this.Ld.Le)return this.Ld.count.value+=1,this;var t=Dt,e=Object,n=e.create,r=Object.getPrototypeOf(this),i=this.Ld;return(t=t(n.call(e,r,{Ld:{value:{count:i.count,De:i.De,Le:i.Le,Rd:i.Rd,Xd:i.Xd,de:i.de,ge:i.ge}}}))).Ld.count.value+=1,t.Ld.De=!1,t},jt.prototype.delete=function(){this.Ld.Rd||Rt(this),this.Ld.De&&!this.Ld.Le&&kt("Object already scheduled for deletion"),It(this),Lt(this.Ld),this.Ld.Le||(this.Ld.de=void 0,this.Ld.Rd=void 0)},jt.prototype.isDeleted=function(){return!this.Ld.Rd},jt.prototype.deleteLater=function(){return this.Ld.Rd||Rt(this),this.Ld.De&&!this.Ld.Le&&kt("Object already scheduled for deletion"),Ut.push(this),1===Ut.length&&Gt&&Gt(Wt),this.Ld.De=!0,this},Jt.prototype.Mf=function(t){return this.tf&&(t=this.tf(t)),t},Jt.prototype.mf=function(t){this.ke&&this.ke(t)},Jt.prototype.argPackAdvance=8,Jt.prototype.readValueFromPointer=yt,Jt.prototype.deleteObject=function(t){null!==t&&t.delete()},Jt.prototype.fromWireType=function(t){function e(){return this.Se?Zt(this.Sd.Ee,{Xd:this.ag,Rd:n,ge:this,de:t}):Zt(this.Sd.Ee,{Xd:this,Rd:t})}var n=this.Mf(t);if(!n)return this.mf(t),null;var r=function(t,e){for(void 0===e&&kt("ptr should not be undefined");t.ie;)e=t.Ne(e),t=t.ie;return Qt[e]}(this.Sd,n);if(void 0!==r)return 0===r.Ld.count.value?(r.Ld.Rd=n,r.Ld.de=t,r.clone()):(r=r.clone(),this.mf(t),r);if(r=this.Sd.Lf(n),!(r=Nt[r]))return e.call(this);r=this.Re?r.Bf:r.pointerType;var i=Kt(n,this.Sd,r.Sd);return null===i?e.call(this):this.Se?Zt(r.Sd.Ee,{Xd:r,Rd:i,ge:this,de:t}):Zt(r.Sd.Ee,{Xd:r,Rd:i})},e.getInheritedInstanceCount=function(){return Object.keys(Qt).length},e.getLiveInheritedInstances=function(){var t,e=[];for(t in Qt)Qt.hasOwnProperty(t)&&e.push(Qt[t]);return e},e.flushPendingDeletes=Wt,e.setDelayFunction=function(t){Gt=t,Ut.length&&Gt&&Gt(Wt)},ne=e.UnboundTypeError=Tt("UnboundTypeError"),e.count_emval_handles=function(){for(var t=0,e=5;e<ce.length;++e)void 0!==ce[e]&&++t;return t},e.get_first_emval=function(){for(var t=5;t<ce.length;++t)if(void 0!==ce[t])return ce[t];return null};for(var cn,un=0;32>un;++un)ze.push(Array(un));var hn=new Float32Array(288);for(un=0;288>un;++un)Ke[un]=hn.subarray(0,un+1);var fn=new Int32Array(288);for(un=0;288>un;++un)Qe[un]=fn.subarray(0,un+1);var dn={Kb:function(t){return mn(t+16)+16},Eb:function(t,e,n){throw new ht(t).Tf(e,n),t},O:function(){return 0},Bb:function(){},xb:function(){return 0},yb:function(t,e,n,r,i,a){return a<<=12,0!=(16&r)&&0!=t%65536?e=-28:0!=(32&r)?(t=Tn(65536,e))?(pn(t,0,e),ft[t]={Zf:t,Yf:e,Af:!0,fd:i,Dg:n,flags:r,offset:a},e=t):e=-48:e=-52,e},zb:function(t,e){if(-1==(0|t)||0===e)t=-28;else{var n=ft[t];n&&e===n.Yf&&(ft[t]=null,n.Af&&gn(n.Zf)),t=0}return t},R:function(){},Q:function(){},y:function(t){var e=mt[t];delete mt[t];var n=e.gf,r=e.ke,i=e.qf;Pt([t],i.map((function(t){return t.Qf})).concat(i.map((function(t){return t.kg}))),(function(t){var a={};return i.forEach((function(e,n){var r=t[n],o=e.Of,s=e.Pf,l=t[n+i.length],c=e.jg,u=e.lg;a[e.Hf]={read:function(t){return r.fromWireType(o(s,t))},write:function(t,e){var n=[];c(u,t,l.toWireType(n,e)),gt(n)}}})),[{name:e.name,fromWireType:function(t){var e,n={};for(e in a)n[e]=a[e].read(t);return r(t),n},toWireType:function(t,e){for(var i in a)if(!(i in e))throw new TypeError('Missing field: "'+i+'"');var o=n();for(i in a)a[i].write(o,e[i]);return null!==t&&t.push(r,o),o},argPackAdvance:8,readValueFromPointer:yt,fe:r}]}))},ob:function(){},Db:function(t,e,n,r,i){var a=Mt(n);Ot(t,{name:e=Et(e),fromWireType:function(t){return!!t},toWireType:function(t,e){return e?r:i},argPackAdvance:8,readValueFromPointer:function(t){if(1===n)var r=L;else if(2===n)r=G;else{if(4!==n)throw new TypeError("Unknown boolean type size: "+e);r=W}return this.fromWireType(r[t>>a])},fe:null})},m:function(t,e,n,r,i,a,o,s,l,c,u,h,f){u=Et(u),a=ee(i,a),s&&(s=ee(o,s)),c&&(c=ee(l,c)),f=ee(h,f);var d=At(u);Ht(d,(function(){ie("Cannot construct "+u+" due to unbound types",[r])})),Pt([t,e,n],r?[r]:[],(function(e){if(e=e[0],r)var n=e.Sd,i=n.Ee;else i=jt.prototype;e=St(d,(function(){if(Object.getPrototypeOf(this)!==o)throw new xt("Use 'new' to construct "+u);if(void 0===l.ne)throw new xt(u+" has no accessible constructor");var t=l.ne[arguments.length];if(void 0===t)throw new xt("Tried to invoke ctor of "+u+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(l.ne).toString()+") parameters instead!");return t.apply(this,arguments)}));var o=Object.create(i,{constructor:{value:e}});e.prototype=o;var l=new Vt(u,e,o,f,n,a,s,c);n=new Jt(u,l,!0,!1,!1),i=new Jt(u+"*",l,!1,!1,!1);var h=new Jt(u+" const*",l,!1,!0,!1);return Nt[t]={pointerType:i,Bf:h},te(d,e),[n,i,h]}))},f:function(t,e,n,r,i,a,o){var s=se(n,r);e=Et(e),a=ee(i,a),Pt([],[t],(function(t){function r(){ie("Cannot call "+i+" due to unbound types",s)}var i=(t=t[0]).name+"."+e,l=t.Sd.constructor;return void 0===l[e]?(r.Be=n-1,l[e]=r):(zt(l,e,i),l[e].Zd[n-1]=r),Pt([],s,(function(t){return t=[t[0],null].concat(t.slice(1)),t=oe(i,t,null,a,o),void 0===l[e].Zd?(t.Be=n-1,l[e]=t):l[e].Zd[n-1]=t,[]})),[]}))},v:function(t,e,n,r,i,a){M(0<e);var o=se(e,n);i=ee(r,i);var s=[a],l=[];Pt([],[t],(function(t){var n="constructor "+(t=t[0]).name;if(void 0===t.Sd.ne&&(t.Sd.ne=[]),void 0!==t.Sd.ne[e-1])throw new xt("Cannot register multiple constructors with identical number of parameters ("+(e-1)+") for class '"+t.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return t.Sd.ne[e-1]=function(){ie("Cannot construct "+t.name+" due to unbound types",o)},Pt([],o,(function(r){return t.Sd.ne[e-1]=function(){arguments.length!==e-1&&kt(n+" called with "+arguments.length+" arguments, expected "+(e-1)),l.length=0,s.length=e;for(var t=1;t<e;++t)s[t]=r[t].toWireType(l,arguments[t-1]);return t=i.apply(null,s),gt(l),r[0].fromWireType(t)},[]})),[]}))},c:function(t,e,n,r,i,a,o,s){var l=se(n,r);e=Et(e),a=ee(i,a),Pt([],[t],(function(t){function r(){ie("Cannot call "+i+" due to unbound types",l)}var i=(t=t[0]).name+"."+e;s&&t.Sd.bg.push(e);var c=t.Sd.Ee,u=c[e];return void 0===u||void 0===u.Zd&&u.className!==t.name&&u.Be===n-2?(r.Be=n-2,r.className=t.name,c[e]=r):(zt(c,e,i),c[e].Zd[n-2]=r),Pt([],l,(function(r){return r=oe(i,r,t,a,o),void 0===c[e].Zd?(r.Be=n-2,c[e]=r):c[e].Zd[n-2]=r,[]})),[]}))},X:function(t,n,r){t=Et(t),Pt([],[n],(function(n){return n=n[0],e[t]=n.fromWireType(r),[]}))},Cb:function(t,e){Ot(t,{name:e=Et(e),fromWireType:function(t){var e=ce[t].value;return ue(t),e},toWireType:function(t,e){return he(e)},argPackAdvance:8,readValueFromPointer:yt,fe:null})},k:function(t,e,n,r){function i(){}n=Mt(n),e=Et(e),i.values={},Ot(t,{name:e,constructor:i,fromWireType:function(t){return this.constructor.values[t]},toWireType:function(t,e){return e.value},argPackAdvance:8,readValueFromPointer:fe(e,n,r),fe:null}),Ht(e,i)},j:function(t,e,n){var r=de(t,"enum");e=Et(e),t=r.constructor,r=Object.create(r.constructor.prototype,{value:{value:n},constructor:{value:St(r.name+"_"+e,(function(){}))}}),t.values[n]=r,t[e]=r},S:function(t,e,n){n=Mt(n),Ot(t,{name:e=Et(e),fromWireType:function(t){return t},toWireType:function(t,e){if("number"!=typeof e&&"boolean"!=typeof e)throw new TypeError('Cannot convert "'+pe(e)+'" to '+this.name);return e},argPackAdvance:8,readValueFromPointer:me(e,n),fe:null})},t:function(t,e,n,r,i,a){var o=se(e,n);t=Et(t),i=ee(r,i),Ht(t,(function(){ie("Cannot call "+t+" due to unbound types",o)}),e-1),Pt([],o,(function(n){return n=[n[0],null].concat(n.slice(1)),te(t,oe(t,n,null,i,a),e-1),[]}))},x:function(t,e,n,r,i){function a(t){return t}e=Et(e),-1===i&&(i=4294967295);var o=Mt(n);if(0===r){var s=32-8*n;a=function(t){return t<<s>>>s}}var l=e.includes("unsigned");Ot(t,{name:e,fromWireType:a,toWireType:function(t,n){if("number"!=typeof n&&"boolean"!=typeof n)throw new TypeError('Cannot convert "'+pe(n)+'" to '+this.name);if(n<r||n>i)throw new TypeError('Passing a number "'+pe(n)+'" from JS side to C/C++ side to an argument of type "'+e+'", which is outside the valid range ['+r+", "+i+"]!");return l?n>>>0:0|n},argPackAdvance:8,readValueFromPointer:ge(e,o,0!==r),fe:null})},u:function(t,e,n){function r(t){var e=j;return new i(I,e[1+(t>>=2)],e[t])}var i=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][e];Ot(t,{name:n=Et(n),fromWireType:r,argPackAdvance:8,readValueFromPointer:r},{Sf:!0})},p:function(t,e,n,r,i,a,o,s,l,c,u,h){n=Et(n),a=ee(i,a),s=ee(o,s),c=ee(l,c),h=ee(u,h),Pt([t],[e],(function(t){return t=t[0],[new Jt(n,t.Sd,!1,!1,!0,t,r,a,s,c,h)]}))},T:function(t,e){var n="std::string"===(e=Et(e));Ot(t,{name:e,fromWireType:function(t){var e=j[t>>2];if(n)for(var r=t+4,i=0;i<=e;++i){var a=t+4+i;if(i==e||0==D[a]){if(r=O(r,a-r),void 0===o)var o=r;else o+=String.fromCharCode(0),o+=r;r=a+1}}else{for(o=Array(e),i=0;i<e;++i)o[i]=String.fromCharCode(D[t+4+i]);o=o.join("")}return gn(t),o},toWireType:function(t,e){e instanceof ArrayBuffer&&(e=new Uint8Array(e));var r="string"==typeof e;r||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Int8Array||kt("Cannot pass non-string to std::string");var i=(n&&r?function(){return B(e)}:function(){return e.length})(),a=mn(4+i+1);if(j[a>>2]=i,n&&r)R(e,D,a+4,i+1);else if(r)for(r=0;r<i;++r){var o=e.charCodeAt(r);255<o&&(gn(a),kt("String has UTF-16 code units that do not fit in 8 bits")),D[a+4+r]=o}else for(r=0;r<i;++r)D[a+4+r]=e[r];return null!==t&&t.push(gn,a),a},argPackAdvance:8,readValueFromPointer:yt,fe:function(t){gn(t)}})},I:function(t,e,n){if(n=Et(n),2===e)var r=V,i=Y,a=q,o=function(){return U},s=1;else 4===e&&(r=$,i=X,a=K,o=function(){return j},s=2);Ot(t,{name:n,fromWireType:function(t){for(var n,i=j[t>>2],a=o(),l=t+4,c=0;c<=i;++c){var u=t+4+c*e;c!=i&&0!=a[u>>s]||(l=r(l,u-l),void 0===n?n=l:(n+=String.fromCharCode(0),n+=l),l=u+e)}return gn(t),n},toWireType:function(t,r){"string"!=typeof r&&kt("Cannot pass non-string to C++ string type "+n);var o=a(r),l=mn(4+o+e);return j[l>>2]=o>>s,i(r,l+4,o+e),null!==t&&t.push(gn,l),l},argPackAdvance:8,readValueFromPointer:yt,fe:function(t){gn(t)}})},z:function(t,e,n,r,i,a){mt[t]={name:Et(e),gf:ee(n,r),ke:ee(i,a),qf:[]}},h:function(t,e,n,r,i,a,o,s,l,c){mt[t].qf.push({Hf:Et(e),Qf:n,Of:ee(r,i),Pf:a,kg:o,jg:ee(s,l),lg:c})},Fb:function(t,e){Ot(t,{Vf:!0,name:e=Et(e),argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},B:function(t,e,n){t=ye(t),e=de(e,"emval::as");var r=[],i=he(r);return W[n>>2]=i,e.toWireType(r,t)},M:function(t,e,n,r,i){t=be[t],e=ye(e),n=we(n);var a=[];return W[r>>2]=he(a),t(e,n,a,i)},C:function(t,e,n,r){(t=be[t])(e=ye(e),n=we(n),null,r)},E:ue,Ab:function(t){return 0===t?he(Ae()):(t=we(t),he(Ae()[t]))},A:function(t,e){e=function(t,e){for(var n=Array(t),r=0;r<t;++r)n[r]=de(W[(e>>2)+r],"parameter "+r);return n}(t,e);for(var n=e[0],r=n.name+"_$"+e.slice(1).map((function(t){return t.name})).join("_")+"$",i=["retType"],a=[n],o="",s=0;s<t-1;++s)o+=(0!==s?", ":"")+"arg"+s,i.push("argType"+s),a.push(e[1+s]);r="return function "+At("methodCaller_"+r)+"(handle, name, destructors, args) {\n";var l=0;for(s=0;s<t-1;++s)r+=" var arg"+s+" = argType"+s+".readValueFromPointer(args"+(l?"+"+l:"")+");\n",l+=e[s+1].argPackAdvance;for(r+=" var rv = handle[name]("+o+");\n",s=0;s<t-1;++s)e[s+1].deleteObject&&(r+=" argType"+s+".deleteObject(arg"+s+");\n");return n.Vf||(r+=" return retType.toWireType(destructors, rv);\n"),i.push(r+"};\n"),function(t){var e=be.length;return be.push(t),e}(t=ae(i).apply(null,a))},K:function(t,e){return he((t=ye(t))[e=ye(e)])},G:function(t){4<t&&(ce[t].hf+=1)},sb:function(t,n,r,i){t=ye(t);var a=Te[n];if(!a){a="";for(var o=0;o<n;++o)a+=(0!==o?", ":"")+"arg"+o;var s="return function emval_allocator_"+n+"(constructor, argTypes, args) {\n";for(o=0;o<n;++o)s+="var argType"+o+" = requireRegisteredType(Module['HEAP32'][(argTypes >>> 2) + "+o+'], "parameter '+o+'");\nvar arg'+o+" = argType"+o+".readValueFromPointer(args);\nargs += argType"+o+"['argPackAdvance'];\n";a=new Function("requireRegisteredType","Module","__emval_register",s+"var obj = new constructor("+a+");\nreturn __emval_register(obj);\n}\n")(de,e,he),Te[n]=a}return a(t,r,i)},ib:function(){return he([])},Ma:function(t){return he(we(t))},jb:function(){return he({})},hb:function(t){return!(t=ye(t))},lb:function(t){gt(ce[t].value),ue(t)},w:function(t,e,n){t=ye(t),e=ye(e),n=ye(n),t[e]=n},s:function(t,e){return he(t=(t=de(t,"_emval_take_value")).readValueFromPointer(e))},d:function(){at()},qb:function(t,e){if(0===t)t=Date.now();else{if(1!==t&&4!==t)return W[yn()>>2]=28,-1;t=Se()}return W[e>>2]=t/1e3|0,W[e+4>>2]=t%1e3*1e6|0,0},Zc:function(t){cn.activeTexture(t)},_c:function(t,e){cn.attachShader(Pe[t],xe[e])},$c:function(t,e,n){cn.bindAttribLocation(Pe[t],e,O(n))},_:function(t,e){35051==t?cn.ef=e:35052==t&&(cn.Ce=e),cn.bindBuffer(t,_e[e])},Z:function(t,e){cn.bindFramebuffer(t,Me[e])},bc:function(t,e){cn.bindRenderbuffer(t,Fe[e])},Pb:function(t,e){cn.bindSampler(t,Re[e])},$:function(t,e){cn.bindTexture(t,Ee[e])},vc:function(t){cn.bindVertexArray(ke[t])},yc:function(t){cn.bindVertexArray(ke[t])},aa:function(t,e,n,r){cn.blendColor(t,e,n,r)},ba:function(t){cn.blendEquation(t)},ca:function(t,e){cn.blendFunc(t,e)},Wb:function(t,e,n,r,i,a,o,s,l,c){cn.blitFramebuffer(t,e,n,r,i,a,o,s,l,c)},da:function(t,e,n,r){2<=je.version?n?cn.bufferData(t,D,r,n,e):cn.bufferData(t,e,r):cn.bufferData(t,n?D.subarray(n,n+e):e,r)},ea:function(t,e,n,r){2<=je.version?cn.bufferSubData(t,e,D,r,n):cn.bufferSubData(t,e,D.subarray(r,r+n))},cc:function(t){return cn.checkFramebufferStatus(t)},L:function(t){cn.clear(t)},Y:function(t,e,n,r){cn.clearColor(t,e,n,r)},P:function(t){cn.clearStencil(t)},fb:function(t,e,n,r){return cn.clientWaitSync(Be[t],e,(n>>>0)+4294967296*r)},fa:function(t,e,n,r){cn.colorMask(!!t,!!e,!!n,!!r)},ga:function(t){cn.compileShader(xe[t])},ha:function(t,e,n,r,i,a,o,s){2<=je.version?cn.Ce?cn.compressedTexImage2D(t,e,n,r,i,a,o,s):cn.compressedTexImage2D(t,e,n,r,i,a,D,s,o):cn.compressedTexImage2D(t,e,n,r,i,a,s?D.subarray(s,s+o):null)},ia:function(t,e,n,r,i,a,o,s,l){2<=je.version?cn.Ce?cn.compressedTexSubImage2D(t,e,n,r,i,a,o,s,l):cn.compressedTexSubImage2D(t,e,n,r,i,a,o,D,l,s):cn.compressedTexSubImage2D(t,e,n,r,i,a,o,l?D.subarray(l,l+s):null)},ja:function(t,e,n,r,i,a,o,s){cn.copyTexSubImage2D(t,e,n,r,i,a,o,s)},ka:function(){var t=Ue(Pe),e=cn.createProgram();return e.name=t,e.Ve=e.Te=e.Ue=0,e.jf=1,Pe[t]=e,t},la:function(t){var e=Ue(xe);return xe[e]=cn.createShader(t),e},ma:function(t){cn.cullFace(t)},na:function(t,e){for(var n=0;n<t;n++){var r=W[e+4*n>>2],i=_e[r];i&&(cn.deleteBuffer(i),i.name=0,_e[r]=null,r==cn.ef&&(cn.ef=0),r==cn.Ce&&(cn.Ce=0))}},dc:function(t,e){for(var n=0;n<t;++n){var r=W[e+4*n>>2],i=Me[r];i&&(cn.deleteFramebuffer(i),i.name=0,Me[r]=null)}},oa:function(t){if(t){var e=Pe[t];e?(cn.deleteProgram(e),e.name=0,Pe[t]=null):Ge(1281)}},ec:function(t,e){for(var n=0;n<t;n++){var r=W[e+4*n>>2],i=Fe[r];i&&(cn.deleteRenderbuffer(i),i.name=0,Fe[r]=null)}},Qb:function(t,e){for(var n=0;n<t;n++){var r=W[e+4*n>>2],i=Re[r];i&&(cn.deleteSampler(i),i.name=0,Re[r]=null)}},pa:function(t){if(t){var e=xe[t];e?(cn.deleteShader(e),xe[t]=null):Ge(1281)}},Yb:function(t){if(t){var e=Be[t];e?(cn.deleteSync(e),e.name=0,Be[t]=null):Ge(1281)}},qa:function(t,e){for(var n=0;n<t;n++){var r=W[e+4*n>>2],i=Ee[r];i&&(cn.deleteTexture(i),i.name=0,Ee[r]=null)}},wc:function(t,e){for(var n=0;n<t;n++){var r=W[e+4*n>>2];cn.deleteVertexArray(ke[r]),ke[r]=null}},zc:function(t,e){for(var n=0;n<t;n++){var r=W[e+4*n>>2];cn.deleteVertexArray(ke[r]),ke[r]=null}},ra:function(t){cn.depthMask(!!t)},sa:function(t){cn.disable(t)},ta:function(t){cn.disableVertexAttribArray(t)},ua:function(t,e,n){cn.drawArrays(t,e,n)},tc:function(t,e,n,r){cn.drawArraysInstanced(t,e,n,r)},rc:function(t,e,n,r,i){cn.nf.drawArraysInstancedBaseInstanceWEBGL(t,e,n,r,i)},pc:function(t,e){for(var n=ze[t],r=0;r<t;r++)n[r]=W[e+4*r>>2];cn.drawBuffers(n)},va:function(t,e,n,r){cn.drawElements(t,e,n,r)},uc:function(t,e,n,r,i){cn.drawElementsInstanced(t,e,n,r,i)},sc:function(t,e,n,r,i,a,o){cn.nf.drawElementsInstancedBaseVertexBaseInstanceWEBGL(t,e,n,r,i,a,o)},jc:function(t,e,n,r,i,a){cn.drawElements(t,r,i,a)},wa:function(t){cn.enable(t)},xa:function(t){cn.enableVertexAttribArray(t)},Ub:function(t,e){return(t=cn.fenceSync(t,e))?(e=Ue(Be),t.name=e,Be[e]=t,e):0},ya:function(){cn.finish()},za:function(){cn.flush()},fc:function(t,e,n,r){cn.framebufferRenderbuffer(t,e,n,Fe[r])},gc:function(t,e,n,r,i){cn.framebufferTexture2D(t,e,n,Ee[r],i)},Aa:function(t){cn.frontFace(t)},Ba:function(t,e){He(t,e,"createBuffer",_e)},hc:function(t,e){He(t,e,"createFramebuffer",Me)},ic:function(t,e){He(t,e,"createRenderbuffer",Fe)},Rb:function(t,e){He(t,e,"createSampler",Re)},Ca:function(t,e){He(t,e,"createTexture",Ee)},xc:function(t,e){He(t,e,"createVertexArray",ke)},Ac:function(t,e){He(t,e,"createVertexArray",ke)},Zb:function(t){cn.generateMipmap(t)},Da:function(t,e,n){n?W[n>>2]=cn.getBufferParameter(t,e):Ge(1281)},Ea:function(){var t=cn.getError()||Ne;return Ne=0,t},_b:function(t,e,n,r){((t=cn.getFramebufferAttachmentParameter(t,e,n))instanceof WebGLRenderbuffer||t instanceof WebGLTexture)&&(t=0|t.name),W[r>>2]=t},F:function(t,e){!function(t,e){if(e){var n=void 0;switch(t){case 36346:n=1;break;case 36344:return;case 34814:case 36345:n=0;break;case 34466:var r=cn.getParameter(34467);n=r?r.length:0;break;case 33309:if(2>je.version)return void Ge(1282);n=2*(cn.getSupportedExtensions()||[]).length;break;case 33307:case 33308:if(2>je.version)return void Ge(1280);n=33307==t?3:0}if(void 0===n)switch(r=cn.getParameter(t),typeof r){case"number":n=r;break;case"boolean":n=r?1:0;break;case"string":return void Ge(1280);case"object":if(null===r)switch(t){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:n=0;break;default:return void Ge(1280)}else{if(r instanceof Float32Array||r instanceof Uint32Array||r instanceof Int32Array||r instanceof Array){for(t=0;t<r.length;++t)W[e+4*t>>2]=r[t];return}try{n=0|r.name}catch(e){return Ge(1280),void A("GL_INVALID_ENUM in glGet0v: Unknown object returned from WebGL getParameter("+t+")! (error: "+e+")")}}break;default:return Ge(1280),void A("GL_INVALID_ENUM in glGet0v: Native code calling glGet0v("+t+") and it returns "+r+" of type "+typeof r+"!")}W[e>>2]=n}else Ge(1281)}(t,e)},Fa:function(t,e,n,r){null===(t=cn.getProgramInfoLog(Pe[t]))&&(t="(unknown error)"),e=0<e&&r?R(t,D,r,e):0,n&&(W[n>>2]=e)},Ga:function(t,e,n){if(n)if(t>=Ce)Ge(1281);else if(t=Pe[t],35716==e)null===(t=cn.getProgramInfoLog(t))&&(t="(unknown error)"),W[n>>2]=t.length+1;else if(35719==e){if(!t.Ve)for(e=0;e<cn.getProgramParameter(t,35718);++e)t.Ve=Math.max(t.Ve,cn.getActiveUniform(t,e).name.length+1);W[n>>2]=t.Ve}else if(35722==e){if(!t.Te)for(e=0;e<cn.getProgramParameter(t,35721);++e)t.Te=Math.max(t.Te,cn.getActiveAttrib(t,e).name.length+1);W[n>>2]=t.Te}else if(35381==e){if(!t.Ue)for(e=0;e<cn.getProgramParameter(t,35382);++e)t.Ue=Math.max(t.Ue,cn.getActiveUniformBlockName(t,e).length+1);W[n>>2]=t.Ue}else W[n>>2]=cn.getProgramParameter(t,e);else Ge(1281)},$b:function(t,e,n){n?W[n>>2]=cn.getRenderbufferParameter(t,e):Ge(1281)},Ha:function(t,e,n,r){null===(t=cn.getShaderInfoLog(xe[t]))&&(t="(unknown error)"),e=0<e&&r?R(t,D,r,e):0,n&&(W[n>>2]=e)},Mb:function(t,e,n,r){t=cn.getShaderPrecisionFormat(t,e),W[n>>2]=t.rangeMin,W[n+4>>2]=t.rangeMax,W[r>>2]=t.precision},Ia:function(t,e,n){n?35716==e?(null===(t=cn.getShaderInfoLog(xe[t]))&&(t="(unknown error)"),W[n>>2]=t?t.length+1:0):35720==e?(t=cn.getShaderSource(xe[t]),W[n>>2]=t?t.length+1:0):W[n>>2]=cn.getShaderParameter(xe[t],e):Ge(1281)},J:function(t){var e=Ie[t];if(!e){switch(t){case 7939:e=Ve((e=(e=cn.getSupportedExtensions()||[]).concat(e.map((function(t){return"GL_"+t})))).join(" "));break;case 7936:case 7937:case 37445:case 37446:(e=cn.getParameter(t))||Ge(1280),e=e&&Ve(e);break;case 7938:e=cn.getParameter(7938),e=Ve(e=2<=je.version?"OpenGL ES 3.0 ("+e+")":"OpenGL ES 2.0 ("+e+")");break;case 35724:var n=(e=cn.getParameter(35724)).match(/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/);null!==n&&(3==n[1].length&&(n[1]+="0"),e="OpenGL ES GLSL ES "+n[1]+" ("+e+")"),e=Ve(e);break;default:Ge(1280)}Ie[t]=e}return e},eb:function(t,e){if(2>je.version)return Ge(1282),0;var n=Le[t];return n?0>e||e>=n.length?(Ge(1281),0):n[e]:7939===t?(n=(n=(n=cn.getSupportedExtensions()||[]).concat(n.map((function(t){return"GL_"+t})))).map((function(t){return Ve(t)})),n=Le[t]=n,0>e||e>=n.length?(Ge(1281),0):n[e]):(Ge(1280),0)},Ja:function(t,e){function n(t){return"]"==t.slice(-1)&&t.lastIndexOf("[")}e=O(e);var r,i=(t=Pe[t]).Ze,a=t.wg,o=0,s=e,l=n(e);if(!i)for(t.Ze=i={},t.uf={},r=0;r<cn.getProgramParameter(t,35718);++r){var c=cn.getActiveUniform(t,r),u=c.name;c=c.size;var h=n(u);h=0<h?u.slice(0,h):u;var f=t.jf;for(t.jf+=c,a[h]=[c,f],u=0;u<c;++u)i[f]=u,t.uf[f++]=h}return 0<l&&(o=parseInt(e.slice(l+1))>>>0,s=e.slice(0,l)),(a=a[s])&&o<a[0]&&(i[o+=a[1]]=i[o]||cn.getUniformLocation(t,e))?o:-1},Nb:function(t,e,n){for(var r=ze[e],i=0;i<e;i++)r[i]=W[n+4*i>>2];cn.invalidateFramebuffer(t,r)},Ob:function(t,e,n,r,i,a,o){for(var s=ze[e],l=0;l<e;l++)s[l]=W[n+4*l>>2];cn.invalidateSubFramebuffer(t,s,r,i,a,o)},Vb:function(t){return cn.isSync(Be[t])},Ka:function(t){return(t=Ee[t])?cn.isTexture(t):0},La:function(t){cn.lineWidth(t)},Na:function(t){t=Pe[t],cn.linkProgram(t),t.Ze=0,t.wg={}},nc:function(t,e,n,r,i,a){cn.sf.multiDrawArraysInstancedBaseInstanceWEBGL(t,W,e>>2,W,n>>2,W,r>>2,j,i>>2,a)},oc:function(t,e,n,r,i,a,o,s){cn.sf.multiDrawElementsInstancedBaseVertexBaseInstanceWEBGL(t,W,e>>2,n,W,r>>2,W,i>>2,W,a>>2,j,o>>2,s)},Oa:function(t,e){3317==t&&(De=e),cn.pixelStorei(t,e)},qc:function(t){cn.readBuffer(t)},Pa:function(t,e,n,r,i,a,o){if(2<=je.version)if(cn.ef)cn.readPixels(t,e,n,r,i,a,o);else{var s=Ye(a);cn.readPixels(t,e,n,r,i,a,s,o>>31-Math.clz32(s.BYTES_PER_ELEMENT))}else(o=qe(a,i,n,r,o))?cn.readPixels(t,e,n,r,i,a,o):Ge(1280)},ac:function(t,e,n,r){cn.renderbufferStorage(t,e,n,r)},Xb:function(t,e,n,r,i){cn.renderbufferStorageMultisample(t,e,n,r,i)},Sb:function(t,e,n){cn.samplerParameteri(Re[t],e,n)},Tb:function(t,e,n){cn.samplerParameteri(Re[t],e,W[n>>2])},Qa:function(t,e,n,r){cn.scissor(t,e,n,r)},Ra:function(t,e,n,r){for(var i="",a=0;a<e;++a){var o=r?W[r+4*a>>2]:-1;i+=O(W[n+4*a>>2],0>o?void 0:o)}cn.shaderSource(xe[t],i)},Sa:function(t,e,n){cn.stencilFunc(t,e,n)},Ta:function(t,e,n,r){cn.stencilFuncSeparate(t,e,n,r)},Ua:function(t){cn.stencilMask(t)},Va:function(t,e){cn.stencilMaskSeparate(t,e)},Wa:function(t,e,n){cn.stencilOp(t,e,n)},Xa:function(t,e,n,r){cn.stencilOpSeparate(t,e,n,r)},Ya:function(t,e,n,r,i,a,o,s,l){if(2<=je.version)if(cn.Ce)cn.texImage2D(t,e,n,r,i,a,o,s,l);else if(l){var c=Ye(s);cn.texImage2D(t,e,n,r,i,a,o,s,c,l>>31-Math.clz32(c.BYTES_PER_ELEMENT))}else cn.texImage2D(t,e,n,r,i,a,o,s,null);else cn.texImage2D(t,e,n,r,i,a,o,s,l?qe(s,o,r,i,l):null)},Za:function(t,e,n){cn.texParameterf(t,e,n)},_a:function(t,e,n){cn.texParameterf(t,e,N[n>>2])},$a:function(t,e,n){cn.texParameteri(t,e,n)},ab:function(t,e,n){cn.texParameteri(t,e,W[n>>2])},kc:function(t,e,n,r,i){cn.texStorage2D(t,e,n,r,i)},bb:function(t,e,n,r,i,a,o,s,l){if(2<=je.version)if(cn.Ce)cn.texSubImage2D(t,e,n,r,i,a,o,s,l);else if(l){var c=Ye(s);cn.texSubImage2D(t,e,n,r,i,a,o,s,c,l>>31-Math.clz32(c.BYTES_PER_ELEMENT))}else cn.texSubImage2D(t,e,n,r,i,a,o,s,null);else c=null,l&&(c=qe(s,o,i,a,l)),cn.texSubImage2D(t,e,n,r,i,a,o,s,c)},cb:function(t,e){cn.uniform1f($e(t),e)},db:function(t,e,n){if(2<=je.version)cn.uniform1fv($e(t),N,n>>2,e);else{if(288>=e)for(var r=Ke[e-1],i=0;i<e;++i)r[i]=N[n+4*i>>2];else r=N.subarray(n>>2,n+4*e>>2);cn.uniform1fv($e(t),r)}},Vc:function(t,e){cn.uniform1i($e(t),e)},Wc:function(t,e,n){if(2<=je.version)cn.uniform1iv($e(t),W,n>>2,e);else{if(288>=e)for(var r=Qe[e-1],i=0;i<e;++i)r[i]=W[n+4*i>>2];else r=W.subarray(n>>2,n+4*e>>2);cn.uniform1iv($e(t),r)}},Xc:function(t,e,n){cn.uniform2f($e(t),e,n)},Yc:function(t,e,n){if(2<=je.version)cn.uniform2fv($e(t),N,n>>2,2*e);else{if(144>=e)for(var r=Ke[2*e-1],i=0;i<2*e;i+=2)r[i]=N[n+4*i>>2],r[i+1]=N[n+(4*i+4)>>2];else r=N.subarray(n>>2,n+8*e>>2);cn.uniform2fv($e(t),r)}},Uc:function(t,e,n){cn.uniform2i($e(t),e,n)},Tc:function(t,e,n){if(2<=je.version)cn.uniform2iv($e(t),W,n>>2,2*e);else{if(144>=e)for(var r=Qe[2*e-1],i=0;i<2*e;i+=2)r[i]=W[n+4*i>>2],r[i+1]=W[n+(4*i+4)>>2];else r=W.subarray(n>>2,n+8*e>>2);cn.uniform2iv($e(t),r)}},Sc:function(t,e,n,r){cn.uniform3f($e(t),e,n,r)},Rc:function(t,e,n){if(2<=je.version)cn.uniform3fv($e(t),N,n>>2,3*e);else{if(96>=e)for(var r=Ke[3*e-1],i=0;i<3*e;i+=3)r[i]=N[n+4*i>>2],r[i+1]=N[n+(4*i+4)>>2],r[i+2]=N[n+(4*i+8)>>2];else r=N.subarray(n>>2,n+12*e>>2);cn.uniform3fv($e(t),r)}},Qc:function(t,e,n,r){cn.uniform3i($e(t),e,n,r)},Pc:function(t,e,n){if(2<=je.version)cn.uniform3iv($e(t),W,n>>2,3*e);else{if(96>=e)for(var r=Qe[3*e-1],i=0;i<3*e;i+=3)r[i]=W[n+4*i>>2],r[i+1]=W[n+(4*i+4)>>2],r[i+2]=W[n+(4*i+8)>>2];else r=W.subarray(n>>2,n+12*e>>2);cn.uniform3iv($e(t),r)}},Oc:function(t,e,n,r,i){cn.uniform4f($e(t),e,n,r,i)},Nc:function(t,e,n){if(2<=je.version)cn.uniform4fv($e(t),N,n>>2,4*e);else{if(72>=e){var r=Ke[4*e-1],i=N;n>>=2;for(var a=0;a<4*e;a+=4){var o=n+a;r[a]=i[o],r[a+1]=i[o+1],r[a+2]=i[o+2],r[a+3]=i[o+3]}}else r=N.subarray(n>>2,n+16*e>>2);cn.uniform4fv($e(t),r)}},Bc:function(t,e,n,r,i){cn.uniform4i($e(t),e,n,r,i)},Cc:function(t,e,n){if(2<=je.version)cn.uniform4iv($e(t),W,n>>2,4*e);else{if(72>=e)for(var r=Qe[4*e-1],i=0;i<4*e;i+=4)r[i]=W[n+4*i>>2],r[i+1]=W[n+(4*i+4)>>2],r[i+2]=W[n+(4*i+8)>>2],r[i+3]=W[n+(4*i+12)>>2];else r=W.subarray(n>>2,n+16*e>>2);cn.uniform4iv($e(t),r)}},Dc:function(t,e,n,r){if(2<=je.version)cn.uniformMatrix2fv($e(t),!!n,N,r>>2,4*e);else{if(72>=e)for(var i=Ke[4*e-1],a=0;a<4*e;a+=4)i[a]=N[r+4*a>>2],i[a+1]=N[r+(4*a+4)>>2],i[a+2]=N[r+(4*a+8)>>2],i[a+3]=N[r+(4*a+12)>>2];else i=N.subarray(r>>2,r+16*e>>2);cn.uniformMatrix2fv($e(t),!!n,i)}},Ec:function(t,e,n,r){if(2<=je.version)cn.uniformMatrix3fv($e(t),!!n,N,r>>2,9*e);else{if(32>=e)for(var i=Ke[9*e-1],a=0;a<9*e;a+=9)i[a]=N[r+4*a>>2],i[a+1]=N[r+(4*a+4)>>2],i[a+2]=N[r+(4*a+8)>>2],i[a+3]=N[r+(4*a+12)>>2],i[a+4]=N[r+(4*a+16)>>2],i[a+5]=N[r+(4*a+20)>>2],i[a+6]=N[r+(4*a+24)>>2],i[a+7]=N[r+(4*a+28)>>2],i[a+8]=N[r+(4*a+32)>>2];else i=N.subarray(r>>2,r+36*e>>2);cn.uniformMatrix3fv($e(t),!!n,i)}},Fc:function(t,e,n,r){if(2<=je.version)cn.uniformMatrix4fv($e(t),!!n,N,r>>2,16*e);else{if(18>=e){var i=Ke[16*e-1],a=N;r>>=2;for(var o=0;o<16*e;o+=16){var s=r+o;i[o]=a[s],i[o+1]=a[s+1],i[o+2]=a[s+2],i[o+3]=a[s+3],i[o+4]=a[s+4],i[o+5]=a[s+5],i[o+6]=a[s+6],i[o+7]=a[s+7],i[o+8]=a[s+8],i[o+9]=a[s+9],i[o+10]=a[s+10],i[o+11]=a[s+11],i[o+12]=a[s+12],i[o+13]=a[s+13],i[o+14]=a[s+14],i[o+15]=a[s+15]}}else i=N.subarray(r>>2,r+64*e>>2);cn.uniformMatrix4fv($e(t),!!n,i)}},Gc:function(t){t=Pe[t],cn.useProgram(t),cn.Df=t},Hc:function(t,e){cn.vertexAttrib1f(t,e)},Ic:function(t,e){cn.vertexAttrib2f(t,N[e>>2],N[e+4>>2])},Jc:function(t,e){cn.vertexAttrib3f(t,N[e>>2],N[e+4>>2],N[e+8>>2])},Kc:function(t,e){cn.vertexAttrib4f(t,N[e>>2],N[e+4>>2],N[e+8>>2],N[e+12>>2])},lc:function(t,e){cn.vertexAttribDivisor(t,e)},mc:function(t,e,n,r,i){cn.vertexAttribIPointer(t,e,n,r,i)},Lc:function(t,e,n,r,i,a){cn.vertexAttribPointer(t,e,n,!!r,i,a)},Mc:function(t,e,n,r){cn.viewport(t,e,n,r)},gb:function(t,e,n,r){cn.waitSync(Be[t],e,(n>>>0)+4294967296*r)},e:function(t,e){throw Sn(t,e||1),"longjmp"},pb:function(t){var e=D.length;if(2147483648<(t>>>=0))return!1;for(var n=1;4>=n;n*=2){var r=e*(1+.2/n);r=Math.min(r,t+100663296),0<(r=Math.max(t,r))%65536&&(r+=65536-r%65536);t:{try{_.grow(Math.min(2147483648,r)-I.byteLength+65535>>>16),Q();var i=1;break t}catch(t){}i=void 0}if(i)return!0}return!1},kb:function(){return je?je.Rf:0},ub:function(t,e){var n=0;return Je().forEach((function(r,i){var a=e+n;for(i=W[t+4*i>>2]=a,a=0;a<r.length;++a)L[i++>>0]=r.charCodeAt(a);L[i>>0]=0,n+=r.length+1})),0},vb:function(t,e){var n=Je();W[t>>2]=n.length;var r=0;return n.forEach((function(t){r+=t.length+1})),W[e>>2]=r,0},Gb:function(t){C||(e.onExit&&e.onExit(t),P=!0),d(t,new Cn(t))},H:function(){return 0},tb:function(t,e){return t=1==t||2==t?2:at(),L[e>>0]=t,0},nb:function(t,e,n,r,i,a){return t=pt.Nf(t),e=pt.Ef(t,e,n,r),W[a>>2]=e,0},wb:function(t,e,n,r){return t=pt.Nf(t),e=pt.Ef(t,e,n),W[r>>2]=e,0},mb:function(){},N:function(t,e,n,r){for(var i=0,a=0;a<n;a++){for(var o=W[e+8*a>>2],s=W[e+(8*a+4)>>2],l=0;l<s;l++){var c=D[o+l],u=dt[t];0===c||10===c?((1===t?b:A)(E(u,0)),u.length=0):u.push(c)}i+=s}return W[r>>2]=i,0},a:function(){return T},l:function(t,e){var n=bn();try{return Z.get(t)(e)}catch(t){if(An(n),t!==t+0&&"longjmp"!==t)throw t;Sn(1,0)}},o:function(t,e,n){var r=bn();try{return Z.get(t)(e,n)}catch(t){if(An(r),t!==t+0&&"longjmp"!==t)throw t;Sn(1,0)}},g:function(t,e,n,r){var i=bn();try{return Z.get(t)(e,n,r)}catch(t){if(An(i),t!==t+0&&"longjmp"!==t)throw t;Sn(1,0)}},D:function(t,e,n,r,i){var a=bn();try{return Z.get(t)(e,n,r,i)}catch(t){if(An(a),t!==t+0&&"longjmp"!==t)throw t;Sn(1,0)}},Lb:function(t,e,n,r,i,a){var o=bn();try{return Z.get(t)(e,n,r,i,a)}catch(t){if(An(o),t!==t+0&&"longjmp"!==t)throw t;Sn(1,0)}},W:function(t,e,n,r,i,a,o){var s=bn();try{return Z.get(t)(e,n,r,i,a,o)}catch(t){if(An(s),t!==t+0&&"longjmp"!==t)throw t;Sn(1,0)}},V:function(t,e,n,r,i,a,o,s,l,c){var u=bn();try{return Z.get(t)(e,n,r,i,a,o,s,l,c)}catch(t){if(An(u),t!==t+0&&"longjmp"!==t)throw t;Sn(1,0)}},U:function(t){var e=bn();try{Z.get(t)()}catch(t){if(An(e),t!==t+0&&"longjmp"!==t)throw t;Sn(1,0)}},n:function(t,e){var n=bn();try{Z.get(t)(e)}catch(t){if(An(n),t!==t+0&&"longjmp"!==t)throw t;Sn(1,0)}},r:function(t,e,n){var r=bn();try{Z.get(t)(e,n)}catch(t){if(An(r),t!==t+0&&"longjmp"!==t)throw t;Sn(1,0)}},i:function(t,e,n,r){var i=bn();try{Z.get(t)(e,n,r)}catch(t){if(An(i),t!==t+0&&"longjmp"!==t)throw t;Sn(1,0)}},q:function(t,e,n,r,i){var a=bn();try{Z.get(t)(e,n,r,i)}catch(t){if(An(a),t!==t+0&&"longjmp"!==t)throw t;Sn(1,0)}},Jb:function(t,e,n,r,i,a){var o=bn();try{Z.get(t)(e,n,r,i,a)}catch(t){if(An(o),t!==t+0&&"longjmp"!==t)throw t;Sn(1,0)}},Hb:function(t,e,n,r,i,a,o){var s=bn();try{Z.get(t)(e,n,r,i,a,o)}catch(t){if(An(s),t!==t+0&&"longjmp"!==t)throw t;Sn(1,0)}},Ib:function(t,e,n,r,i,a,o,s,l,c){var u=bn();try{Z.get(t)(e,n,r,i,a,o,s,l,c)}catch(t){if(An(u),t!==t+0&&"longjmp"!==t)throw t;Sn(1,0)}},b:function(t){T=t},rb:function(t,e,n,r){return on(t,e,n,r)}};!function(){function t(t){e.asm=t.exports,_=e.asm.ad,Q(),Z=e.asm.dd,tt.unshift(e.asm.bd),rt--,e.monitorRunDependencies&&e.monitorRunDependencies(rt),0==rt&&it&&(t=it,it=null,t())}function n(e){t(e.instance)}function r(t){return function(){if(!S&&(l||c)){if("function"==typeof fetch&&!st.startsWith("file://"))return fetch(st,{credentials:"same-origin"}).then((function(t){if(!t.ok)throw"failed to load wasm binary file at '"+st+"'";return t.arrayBuffer()})).catch((function(){return ct()}));if(m)return new Promise((function(t,e){m(st,(function(e){t(new Uint8Array(e))}),e)}))}return Promise.resolve().then((function(){return ct()}))}().then((function(t){return WebAssembly.instantiate(t,a)})).then(t,(function(t){A("failed to asynchronously prepare wasm: "+t),at(t)}))}var a={a:dn};if(rt++,e.monitorRunDependencies&&e.monitorRunDependencies(rt),e.instantiateWasm)try{return e.instantiateWasm(a,t)}catch(t){return A("Module.instantiateWasm callback failed with error: "+t),!1}(S||"function"!=typeof WebAssembly.instantiateStreaming||ot()||st.startsWith("file://")||"function"!=typeof fetch?r(n):fetch(st,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,a).then(n,(function(t){return A("wasm streaming compile failed: "+t),A("falling back to ArrayBuffer instantiation"),r(n)}))}))).catch(i)}(),e.___wasm_call_ctors=function(){return(e.___wasm_call_ctors=e.asm.bd).apply(null,arguments)};var pn=e._memset=function(){return(pn=e._memset=e.asm.cd).apply(null,arguments)},mn=e._malloc=function(){return(mn=e._malloc=e.asm.ed).apply(null,arguments)},gn=e._free=function(){return(gn=e._free=e.asm.fd).apply(null,arguments)},yn=e.___errno_location=function(){return(yn=e.___errno_location=e.asm.gd).apply(null,arguments)},vn=e.___getTypeName=function(){return(vn=e.___getTypeName=e.asm.hd).apply(null,arguments)};e.___embind_register_native_and_builtin_types=function(){return(e.___embind_register_native_and_builtin_types=e.asm.id).apply(null,arguments)};var wn,bn=e.stackSave=function(){return(bn=e.stackSave=e.asm.jd).apply(null,arguments)},An=e.stackRestore=function(){return(An=e.stackRestore=e.asm.kd).apply(null,arguments)},Sn=e._setThrew=function(){return(Sn=e._setThrew=e.asm.ld).apply(null,arguments)},Tn=e._memalign=function(){return(Tn=e._memalign=e.asm.md).apply(null,arguments)};function Cn(t){this.name="ExitStatus",this.message="Program terminated with exit("+t+")",this.status=t}function _n(){function t(){if(!wn&&(wn=!0,e.calledRun=!0,!P)){if(ut(tt),r(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),e.postRun)for("function"==typeof e.postRun&&(e.postRun=[e.postRun]);e.postRun.length;){var t=e.postRun.shift();et.unshift(t)}ut(et)}}if(!(0<rt)){if(e.preRun)for("function"==typeof e.preRun&&(e.preRun=[e.preRun]);e.preRun.length;)nt();ut(J),0<rt||(e.setStatus?(e.setStatus("Running..."),setTimeout((function(){setTimeout((function(){e.setStatus("")}),1),t()}),1)):t())}}if(e.dynCall_iiiji=function(){return(e.dynCall_iiiji=e.asm.nd).apply(null,arguments)},e.dynCall_ji=function(){return(e.dynCall_ji=e.asm.od).apply(null,arguments)},e.dynCall_iiji=function(){return(e.dynCall_iiji=e.asm.pd).apply(null,arguments)},e.dynCall_iijjiii=function(){return(e.dynCall_iijjiii=e.asm.qd).apply(null,arguments)},e.dynCall_iij=function(){return(e.dynCall_iij=e.asm.rd).apply(null,arguments)},e.dynCall_vijjjii=function(){return(e.dynCall_vijjjii=e.asm.sd).apply(null,arguments)},e.dynCall_viji=function(){return(e.dynCall_viji=e.asm.td).apply(null,arguments)},e.dynCall_vijiii=function(){return(e.dynCall_vijiii=e.asm.ud).apply(null,arguments)},e.dynCall_viiiiij=function(){return(e.dynCall_viiiiij=e.asm.vd).apply(null,arguments)},e.dynCall_viijii=function(){return(e.dynCall_viijii=e.asm.wd).apply(null,arguments)},e.dynCall_jii=function(){return(e.dynCall_jii=e.asm.xd).apply(null,arguments)},e.dynCall_iiij=function(){return(e.dynCall_iiij=e.asm.yd).apply(null,arguments)},e.dynCall_iiiij=function(){return(e.dynCall_iiiij=e.asm.zd).apply(null,arguments)},e.dynCall_viij=function(){return(e.dynCall_viij=e.asm.Ad).apply(null,arguments)},e.dynCall_viiij=function(){return(e.dynCall_viiij=e.asm.Bd).apply(null,arguments)},e.dynCall_vij=function(){return(e.dynCall_vij=e.asm.Cd).apply(null,arguments)},e.dynCall_jiiii=function(){return(e.dynCall_jiiii=e.asm.Dd).apply(null,arguments)},e.dynCall_jiiiiii=function(){return(e.dynCall_jiiiiii=e.asm.Ed).apply(null,arguments)},e.dynCall_jiiiiji=function(){return(e.dynCall_jiiiiji=e.asm.Fd).apply(null,arguments)},e.dynCall_iijj=function(){return(e.dynCall_iijj=e.asm.Gd).apply(null,arguments)},e.dynCall_jiji=function(){return(e.dynCall_jiji=e.asm.Hd).apply(null,arguments)},e.dynCall_iiiiij=function(){return(e.dynCall_iiiiij=e.asm.Id).apply(null,arguments)},e.dynCall_iiiiijj=function(){return(e.dynCall_iiiiijj=e.asm.Jd).apply(null,arguments)},e.dynCall_iiiiiijj=function(){return(e.dynCall_iiiiiijj=e.asm.Kd).apply(null,arguments)},it=function t(){wn||_n(),wn||(it=t)},e.run=_n,e.preInit)for("function"==typeof e.preInit&&(e.preInit=[e.preInit]);0<e.preInit.length;)e.preInit.pop()();return _n(),t.ready});t.exports=r}(E);const O=E.exports;class R{}R.Transparent=[0,0,0,0],R.MediumVioletRed=[199,21,133,1],R.DeepPink=[255,20,147,1],R.PaleVioletRed=[219,112,147,1],R.HotPink=[255,105,180,1],R.LightPink=[255,182,193,1],R.Pink=[255,192,203,1],R.DarkRed=[139,0,0,1],R.Red=[255,0,0,1],R.Firebrick=[178,34,34,1],R.Crimson=[220,20,60,1],R.IndianRed=[205,92,92,1],R.LightCoral=[240,128,128,1],R.Salmon=[250,128,114,1],R.DarkSalmon=[233,150,122,1],R.LightSalmon=[255,160,122,1],R.OrangeRed=[255,69,0,1],R.Tomato=[255,99,71,1],R.DarkOrange=[255,140,0,1],R.Coral=[255,127,80,1],R.Orange=[255,165,0,1],R.DarkKhaki=[189,183,107,1],R.Gold=[255,215,0,1],R.Khaki=[240,230,140,1],R.PeachPuff=[255,218,185,1],R.Yellow=[255,255,0,1],R.PaleGoldenrod=[238,232,170,1],R.Moccasin=[255,228,181,1],R.PapayaWhip=[255,239,213,1],R.LightGoldenrodYellow=[250,250,210,1],R.LemonChiffon=[255,250,205,1],R.LightYellow=[255,255,224,1],R.Maroon=[128,0,0,1],R.Brown=[165,42,42,1],R.SaddleBrown=[139,69,19,1],R.Sienna=[160,82,45,1],R.Chocolate=[210,105,30,1],R.DarkGoldenrod=[184,134,11,1],R.Peru=[205,133,63,1],R.RosyBrown=[188,143,143,1],R.Goldenrod=[218,165,32,1],R.SandyBrown=[244,164,96,1],R.Tan=[210,180,140,1],R.Burlywood=[222,184,135,1],R.Wheat=[245,222,179,1],R.NavajoWhite=[255,222,173,1],R.Bisque=[255,228,196,1],R.BlanchedAlmond=[255,235,205,1],R.Cornsilk=[255,248,220,1],R.DarkGreen=[0,100,0,1],R.Green=[0,128,0,1],R.DarkOliveGreen=[85,107,47,1],R.ForestGreen=[34,139,34,1],R.SeaGreen=[46,139,87,1],R.Olive=[128,128,0,1],R.OliveDrab=[107,142,35,1],R.MediumSeaGreen=[60,179,113,1],R.LimeGreen=[50,205,50,1],R.Lime=[0,255,0,1],R.SpringGreen=[0,255,127,1],R.MediumSpringGreen=[0,250,154,1],R.DarkSeaGreen=[143,188,143,1],R.MediumAquamarine=[102,205,170,1],R.YellowGreen=[154,205,50,1],R.LawnGreen=[124,252,0,1],R.Chartreuse=[127,255,0,1],R.LightGreen=[144,238,144,1],R.GreenYellow=[173,255,47,1],R.PaleGreen=[152,251,152,1],R.Teal=[0,128,128,1],R.DarkCyan=[0,139,139,1],R.LightSeaGreen=[32,178,170,1],R.CadetBlue=[95,158,160,1],R.DarkTurquoise=[0,206,209,1],R.MediumTurquoise=[72,209,204,1],R.Turquoise=[64,224,208,1],R.Aqua=[0,255,255,1],R.Cyan=[0,255,255,1],R.Aquamarine=[127,255,212,1],R.PaleTurquoise=[175,238,238,1],R.LightCyan=[224,255,255,1],R.Navy=[0,0,128,1],R.DarkBlue=[0,0,139,1],R.MediumBlue=[0,0,205,1],R.Blue=[0,0,255,1],R.MidnightBlue=[25,25,112,1],R.RoyalBlue=[65,105,225,1],R.SteelBlue=[70,130,180,1],R.DodgerBlue=[30,144,255,1],R.DeepSkyBlue=[0,191,255,1],R.CornflowerBlue=[100,149,237,1],R.SkyBlue=[135,206,235,1],R.LightSkyBlue=[135,206,250,1],R.LightSteelBlue=[176,196,222,1],R.LightBlue=[173,216,230,1],R.PowderBlue=[176,224,230,1],R.Indigo=[75,0,130,1],R.Purple=[128,0,128,1],R.DarkMagenta=[139,0,139,1],R.DarkViolet=[148,0,211,1],R.DarkSlateBlue=[72,61,139,1],R.BlueViolet=[138,43,226,1],R.DarkOrchid=[153,50,204,1],R.Fuchsia=[255,0,255,1],R.Magenta=[255,0,255,1],R.SlateBlue=[106,90,205,1],R.MediumSlateBlue=[123,104,238,1],R.MediumOrchid=[186,85,211,1],R.MediumPurple=[147,112,219,1],R.Orchid=[218,112,214,1],R.Violet=[238,130,238,1],R.Plum=[221,160,221,1],R.Thistle=[216,191,216,1],R.Lavender=[230,230,250,1],R.MistyRose=[255,228,225,1],R.AntiqueWhite=[250,235,215,1],R.Linen=[250,240,230,1],R.Beige=[245,245,220,1],R.WhiteSmoke=[245,245,245,1],R.LavenderBlush=[255,240,245,1],R.OldLace=[253,245,230,1],R.AliceBlue=[240,248,255,1],R.Seashell=[255,245,238,1],R.GhostWhite=[248,248,255,1],R.Honeydew=[240,255,240,1],R.FloralWhite=[255,250,240,1],R.Azure=[240,255,255,1],R.MintCream=[245,255,250,1],R.Snow=[255,250,250,1],R.Ivory=[255,255,240,1],R.White=[255,255,255,1],R.Black=[0,0,0,1],R.DarkSlateGray=[47,79,79,1],R.DimGray=[105,105,105,1],R.SlateGray=[112,128,144,1],R.Gray=[128,128,128,1],R.LightSlateGray=[119,136,153,1],R.DarkGray=[169,169,169,1],R.Silver=[192,192,192,1],R.LightGray=[211,211,211,1],R.Gainsboro=[220,220,220,1],R.RebeccaPurple=[102,51,153,1];class B{}var I,L,D,G,U,W,j;B.FPS_DISPLAY_TEXT_FONT_SIZE=12,B.FPS_DISPLAY_TEXT_COLOR=[0,0,0,.5],B.FPS_DISPLAY_UPDATE_INTERVAL=500,B.DEFAULT_SCENE_BACKGROUND_COLOR=R.WhiteSmoke,B.DEFAULT_SHAPE_FILL_COLOR=R.Red,B.DEFAULT_FONT_COLOR=R.Black,B.DEFAULT_FONT_SIZE=16,B.LIMITED_FPS_RATE=5,function(t){t.entity="Entity",t.scene="Scene",t.sprite="Sprite",t.label="Label",t.textline="TextLine",t.shape="Shape",t.composite="Composite"}(I||(I={}));class N{constructor(t,e){null!=t&&null!=e?(this.x=t,this.y=e):(this.x=0,this.y=0)}}!function(t){t.topToTopOf="topToTopOf",t.topToBottomOf="topToBottomOf",t.bottomToTopOf="bottomToTopOf",t.bottomToBottomOf="bottomToBottomOf",t.startToStartOf="startToStartOf",t.startToEndOf="startToEndOf",t.endToEndOf="endToEndOf",t.endToStartOf="endToStartOf"}(L||(L={}));class z{constructor(t,e){this.verticalConstraint=!1,this.focalEntityMinimum=!1,this.alterEntityMinimum=!1,this.verticalTypes=[L.topToTopOf,L.topToBottomOf,L.bottomToTopOf,L.bottomToBottomOf],this.focalEntityMinimumTypes=[L.topToTopOf,L.topToBottomOf,L.startToStartOf,L.startToEndOf],this.alterEntityMinimumTypes=[L.topToTopOf,L.bottomToTopOf,L.startToStartOf,L.endToStartOf],this.type=t,this.alterEntity=e,this.verticalTypes.includes(t)?(this.verticalConstraint=!0,this.focalEntityMinimumTypes.includes(t)?this.focalEntityMinimum=!0:this.focalEntityMinimum=!1,this.alterEntityMinimumTypes.includes(t)?this.alterEntityMinimum=!0:this.alterEntityMinimum=!1):(this.verticalConstraint=!1,this.focalEntityMinimumTypes.includes(t)?this.focalEntityMinimum=!0:this.focalEntityMinimum=!1,this.alterEntityMinimumTypes.includes(t)?this.alterEntityMinimum=!0:this.alterEntityMinimum=!1)}}class H{constructor(t=0,e=0){this.width=t,this.height=e,this.width=t,this.height=e}}class V{static generate(){let t=(new Date).getTime(),e=performance&&performance.now&&1e3*performance.now()||0;return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(n=>{let r=16*Math.random();return t>0?(r=(t+r)%16|0,t=Math.floor(t/16)):(r=(e+r)%16|0,e=Math.floor(e/16)),("x"==n?r:7&r|8).toString(16)}))}}function Y(t,e){t.isDrawable&&function(t,e){e.anchorPoint&&(t.anchorPoint=e.anchorPoint),e.zPosition&&(t.zPosition=e.zPosition)}(t,e),t.isText&&function(t,e){e.text&&(t.text=e.text),e.fontName&&(t.fontName=e.fontName),e.fontColor&&(t.fontColor=e.fontColor),e.fontSize&&(t.fontSize=e.fontSize)}(t,e)}class q{constructor(t={}){this.type=I.entity,this.isDrawable=!1,this.isShape=!1,this.isText=!1,this.position=new N(0,0),this.scale=1,this.isUserInteractionEnabled=!1,this.hidden=!1,this.layout={},this.children=new Array,this.absolutePosition=new N(0,0),this.size=new H(0,0),this.absoluteScale=1,this.actions=new Array,this.originalActions=new Array,this.eventListeners=new Array,this.uuid=V.generate(),this.needsInitialization=!0,this.userData={},this.loopMessages=new Set,this.toString=()=>this.name!==this.uuid?`"${this.name}" (${this.type}, ${this.uuid})`:`"${this.type} (${this.uuid})`,void 0===t.name?this.name=this.uuid:this.name=t.name,t.position&&(this.position=t.position),t.scale&&(this.scale=t.scale),t.isUserInteractionEnabled&&(this.isUserInteractionEnabled=t.isUserInteractionEnabled),t.layout&&(this.layout=t.layout)}initialize(){throw new Error("initialize() called in abstract base class Entity.")}addChild(t){if(t.type==I.scene)throw new Error("A scene cannot be the child of an entity. A scene can only be added to a game object");if(t.parent=this,this.children.map((t=>t.name)).includes(t.name))throw new Error(`Cannot add child entity ${t.toString()} to parent entity ${this.toString()}. A child with name "${t.name}" already exists on parent.`);this.children.push(t)}removeAllChildren(){for(;this.children.length;)this.children.pop()}removeChild(t){if(!this.children.includes(t))throw new Error(`cannot remove entity ${t} from parent ${this} because the entity is not currently a child of the parent`);this.children=this.children.filter((t=>t!=t))}descendant(t){const e=this.descendants.filter((e=>e.name===t)).find(Boolean);if(void 0===e)throw new Error(`descendant with name ${t} not found on parent ${this.toString()}`);return e}get descendants(){function t(e,n){n.push(e),e.children.forEach((e=>t(e,n)))}const e=new Array;return this.children.forEach((n=>t(n,e))),e}onTapDown(t,e=!0){const n={eventType:"tapdown",entityName:this.name,callback:t};e&&(this.eventListeners=this.eventListeners.filter((t=>t.entityName!==n.entityName))),this.eventListeners.push(n)}parseLayoutConstraints(t,e){const n=new Array;return Object.values(L).forEach((r=>{if(void 0!==t[r]){let i,a="";if(t[r]instanceof q)i=t[r];else{const n=t[r];i=e.filter((t=>t.name===n)).find(Boolean),a=`. sibling entity named "${n}" has not been added to the game object`}if(void 0===i)throw new Error("could not find sibling entity for constraint"+a);const o=new z(r,i);n.push(o)}})),n}calculateYFromConstraint(t,e,n,r){let i=t.alterEntity.absolutePosition.y;return t.alterEntityMinimum?t.alterEntity.type!==I.scene&&(i-=.5*t.alterEntity.size.height*r):t.alterEntity.type!==I.scene?i+=.5*t.alterEntity.size.height*r:i+=t.alterEntity.size.height*r,t.focalEntityMinimum?(i+=.5*this.size.height*r,i+=e*r):(i-=.5*this.size.height*r,i-=n*r),i}calculateXFromConstraint(t,e,n,r){let i=t.alterEntity.absolutePosition.x;return t.alterEntityMinimum?t.alterEntity.type!==I.scene&&(i-=.5*t.alterEntity.size.width*r):t.alterEntity.type!==I.scene?i+=.5*t.alterEntity.size.width*r:i+=t.alterEntity.size.width*r,t.focalEntityMinimum?(i+=.5*this.size.width*r,i+=e*r):(i-=.5*this.size.width*r,i-=n*r),i}update(){var t,n,r,i,a,o,s,l,c,u,h,f,d,p,m,g;if(this.needsInitialization&&(this.initialize(),this.needsInitialization=!1),void 0===this.parent)this.absolutePosition.x=this.position.x*this.scale,this.absolutePosition.y=this.position.y*this.scale,this.absoluteScale=this.scale;else if(this.absoluteScale=this.parent.absoluteScale*this.scale,void 0===(null===(t=this.layout)||void 0===t?void 0:t.constraints))this.absolutePosition.x=this.parent.absolutePosition.x+this.position.x*this.parent.absoluteScale,this.absolutePosition.y=this.parent.absolutePosition.y+this.position.y*this.parent.absoluteScale;else{const t=null!==(i=null===(r=null===(n=this.layout)||void 0===n?void 0:n.constraints)||void 0===r?void 0:r.horizontalBias)&&void 0!==i?i:.5,e=null!==(s=null===(o=null===(a=this.layout)||void 0===a?void 0:a.constraints)||void 0===o?void 0:o.verticalBias)&&void 0!==s?s:.5,y=null!==(c=null===(l=this.layout)||void 0===l?void 0:l.marginTop)&&void 0!==c?c:0,v=null!==(h=null===(u=this.layout)||void 0===u?void 0:u.marginBottom)&&void 0!==h?h:0,w=null!==(d=null===(f=this.layout)||void 0===f?void 0:f.marginStart)&&void 0!==d?d:0,b=null!==(m=null===(p=this.layout)||void 0===p?void 0:p.marginEnd)&&void 0!==m?m:0,A=this.parseLayoutConstraints(null===(g=this.layout)||void 0===g?void 0:g.constraints,this.parentSceneAsEntity.descendants),S=this.parent.absoluteScale,T=A.filter((t=>t.verticalConstraint)).map((t=>this.calculateYFromConstraint(t,y,v,S)));0===T.length||(1===T.length?this.absolutePosition.y=T[0]:2===T.length&&(this.absolutePosition.y=Math.min(T[0],T[1])+e*Math.abs(T[0]-T[1])));const C=A.filter((t=>!t.verticalConstraint)).map((t=>this.calculateXFromConstraint(t,w,b,S)));0===C.length||(1===C.length?this.absolutePosition.x=C[0]:2===C.length&&(this.absolutePosition.x=Math.min(C[0],C[1])+t*Math.abs(C[0]-C[1])))}const y=this.actions.filter((t=>t.runDuringTransition&&!t.completed)),v=this.actions.filter((t=>!t.runDuringTransition&&!t.completed));y.length>0?(y.forEach((t=>{-1===t.runStartTime&&(t.runStartTime=Globals.now)})),y.forEach((t=>e.evaluateAction(t,this,Globals.now,Globals.deltaTime)))):v.length>0&&(v.forEach((t=>{-1===t.runStartTime&&(t.runStartTime=Globals.now)})),v.forEach((t=>e.evaluateAction(t,this,Globals.now,Globals.deltaTime))));const w=new Map;this.children.forEach((t=>{var e;w.set(t.uuid,function(t,e){const n=new Array;return void 0===e||Object.values(L).forEach((r=>{if(void 0!==e[r]){let i,a="";if(e[r]instanceof q)i=e[r];else{const n=e[r];let o;o=t.type===I.scene?t.descendants:t.parentSceneAsEntity.descendants,i=o.filter((t=>t.name===n)).find(Boolean),void 0===i&&(a=`. sibling entity named "${n}" has not been added to the game object`)}if(void 0===i)throw new Error("error getting uuid of sibling contraint"+a);i!==t&&n.push(i.uuid)}})),n}(this,null===(e=t.layout)||void 0===e?void 0:e.constraints))}));const b=this.findTopologicalSort(w);if(b.length>0){const t=b.reverse(),e=new Array;t.forEach((t=>{const n=this.children.filter((e=>e.uuid===t)).find(Boolean);if(void 0===n)throw new Error("error in dag topological sort");e.push(n)})),e.forEach((t=>t.update()))}else this.children.forEach((t=>t.update()))}drawChildren(t){this.children.filter((t=>!t.hidden&&t.isDrawable)).map((t=>t)).sort(((t,e)=>t.zPosition-e.zPosition)).forEach((e=>e.draw(t)))}run(t,n){this.actions.push(...t.initialize(this,n)),this.originalActions=this.actions.filter((t=>!1===t.runDuringTransition)).map((t=>e.cloneAction(t,n)))}removeAction(t){this.actions=this.actions.filter((e=>e.key!==t))}removeAllActions(){for(;this.actions.length;)this.actions.pop()}static getEntityOptions(t){return{name:t.name,position:t.position,scale:t.scale,isUserInteractionEnabled:t.isUserInteractionEnabled,hidden:t.hidden}}static getDrawableOptions(t){return{anchorPoint:t.anchorPoint,zPosition:t.zPosition}}static getTextOptions(t){return{text:t.text,fontName:t.fontName,fontColor:t.fontColor,fontSize:t.fontSize}}get canvasKit(){let t;return t=this.type===I.scene?this:this.parentSceneAsEntity,t.game.canvasKit}get parentSceneAsEntity(){if(this.type===I.scene)throw new Error(`Entity ${this} is a scene and cannot have a parent scene`);if(this.parent&&this.parent.type===I.scene)return this.parent;if(this.parent)return this.parent.parentSceneAsEntity;throw new Error(`Entity ${this} has not been added to a scene`)}findTopologicalSort(t){var e;const n=[],r=new Map;t.forEach(((t,e)=>{r.has(e)||r.set(e,0),t.forEach((t=>{r.has(t)?r.set(t,r.get(t)+1):r.set(t,1)}))}));const i=[];for(r.forEach(((t,e)=>{0==t&&i.push(e)}));i.length>0;){const a=i.shift();if(void 0===a)throw"bad";n.push(a),t.has(a)&&(null===(e=t.get(a))||void 0===e||e.forEach((t=>{if(r.has(t)&&r.get(t)>0){const e=r.get(t)-1;r.set(t,e),0==e&&i.push(t)}})))}return n}}class $ extends q{constructor(t={}){super(t),this.type=I.sprite,this.isDrawable=!0,this.anchorPoint=new N(.5,.5),this.zPosition=0,this._imageName="",Y(this,t),t.imageName&&(this.imageName=t.imageName)}initialize(){const t=this.parentSceneAsEntity.game.session;if(!t)throw new Error("activity is undefined");const e=t.imageManager,n=this.parentSceneAsEntity.game.uuid;if(this.loadedImage=e.getLoadedImage(n,this._imageName),!this.loadedImage)throw new Error(`could not create sprite. the image named ${this._imageName} has not been loaded`);this.size.width=this.loadedImage.width,this.size.height=this.loadedImage.height}set imageName(t){this._imageName=t,this.needsInitialization=!0}get imageName(){return this._imageName}update(){super.update()}draw(t){if(!this.hidden){if(this.loadedImage){t.save();const e=Globals.canvasScale/this.absoluteScale;t.scale(1/e,1/e);const n=(this.absolutePosition.x-this.size.width*this.anchorPoint.x*this.absoluteScale)*e,r=(this.absolutePosition.y-this.size.height*this.anchorPoint.y*this.absoluteScale)*e;t.drawImage(this.loadedImage.image,n,r),t.restore()}super.drawChildren(t)}}}class X extends q{constructor(t={}){super(t),this.type=I.scene,this.isDrawable=!0,this.anchorPoint=new N(0,0),this.zPosition=0,this._backgroundColor=B.DEFAULT_SCENE_BACKGROUND_COLOR,this._active=!1,this._transitioning=!1,Y(this,t),t.backgroundColor&&(this.backgroundColor=t.backgroundColor)}initialize(){this.scale=Globals.rootScale,this.size.width=this.game.canvasCssWidth,this.size.height=this.game.canvasCssHeight,this.backgroundPaint=new this.canvasKit.Paint,this.backgroundPaint.setColor(this.canvasKit.Color(this.backgroundColor[0],this.backgroundColor[1],this.backgroundColor[2],this.backgroundColor[3])),this.backgroundPaint.setStyle(this.canvasKit.PaintStyle.Fill)}set game(t){this._game=t}get game(){if(void 0===this._game)throw new Error("no active game");return this._game}get backgroundColor(){return this._backgroundColor}set backgroundColor(t){this._backgroundColor=t,this.needsInitialization=!0}setup(t){this._setupCallback=t}draw(t){t.save();const e=Globals.canvasScale/this.absoluteScale;t.scale(1/e,1/e);const n=this.canvasKit.RRectXY(this.canvasKit.LTRBRect(this.position.x*e*Globals.rootScale,this.position.y*e*Globals.rootScale,(this.position.x+this.size.width)*e*Globals.rootScale,(this.position.y+this.size.height)*e*Globals.rootScale),0,0);t.drawRRect(n,this.backgroundPaint),t.restore(),super.drawChildren(t)}}class K{constructor(){this.duration=0}static push(t,e){return new Q(t,e)}}class Q extends K{constructor(t,e){super(),this.type=D.push,this.direction=t,this.duration=e}}!function(t){t.push="Push"}(D||(D={})),function(t){t.up="Up",t.down="Down",t.right="Right",t.left="Left"}(G||(G={}));class Z{constructor(t,e){this.scene=t,this.transition=e}}class J{constructor(t,e={}){this.uuid=V.generate(),this.data={trials:new Array,metadata:{userAgent:""}},this.trialIndex=0,this.drawnFrames=0,this.lastFpsUpdate=0,this.nextFpsUpdate=0,this.fps=0,this.animationFramesRequested=0,this.limitFps=!1,this.unitTesting=!1,this.gameStopRequested=!1,this.canvasCssWidth=0,this.canvasCssHeight=0,this.scenes=new Array,this.incomingSceneTransitions=new Array;const{parameters:n}=t,r=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]])}return n}(t,["parameters"]);this.options=Object.assign({},r),this.options.parameters=Object.assign({},n),Object.keys(e).forEach((t=>{if(!n||!(t in n))throw new Error(`game ${this.options.name} does not have a parameter named ${t}`);this.options.parameters&&this.options.parameters[t]&&(this.options.parameters[t].value=e[t])}))}get canvasKit(){if(!this._canvasKit)throw new Error("canvaskit is undefined");return this._canvasKit}set canvasKit(t){this._canvasKit=t}get session(){if(!this._session)throw new Error("session is undefined");return this._session}set session(t){this._session=t}addScene(t){t.game=this,t.needsInitialization=!0,this.scenes.push(t)}addScenes(t){t.forEach((t=>{this.addScene(t)}))}presentScene(t,e){let n;if("string"==typeof t){if(n=this.scenes.filter((e=>e.name===t)).find(Boolean),void 0===n)throw new Error(`scene ${t} not found`)}else n=t;n.initialize(),n.needsInitialization=!1;const r=new Z(n,e);this.currentSceneSnapshot=void 0,this.incomingSceneTransitions.push(r),void 0!==n.game.bodyBackgroundColor?document.body.style.backgroundColor=`rgb(${n.game.bodyBackgroundColor[0]},${n.game.bodyBackgroundColor[1]},${n.game.bodyBackgroundColor[2]},${n.game.bodyBackgroundColor[3]})`:document.body.style.backgroundColor=`rgb(${n.backgroundColor[0]},${n.backgroundColor[1]},${n.backgroundColor[2]},${n.backgroundColor[3]})`}getParameter(t){if(void 0!==this.options.parameters&&Object.keys(this.options.parameters).includes(t))return this.options.parameters[t].value;throw new Error(`game parameter ${t} not found`)}start(t){var e,n;const r=this.options;this.unitTesting=null!==(e=r._unitTesting)&&void 0!==e&&e;let i,a=0;if(this.unitTesting||(a=window.performance.now()),this.setupHtmlCanvases(r.canvasId,r.width,r.height,r.stretch),this.showFps=null!==(n=r.showFps)&&void 0!==n&&n,this.bodyBackgroundColor=r.bodyBackgroundColor,this.initData(),this.setupCanvasKitSurface(),this.setupFpsFont(),this.setupEventHandlers(),this.unitTesting||console.log(`Game.init() took ${(window.performance.now()-a).toFixed(0)} ms`),void 0!==t){if(t instanceof X)i=t;else if(i=i=this.scenes.filter((e=>e.name===t)).find(Boolean),void 0===i)throw new Error(`cannot start game. scene named "${t}" has not been added to the game object`)}else{if(void 0===this.entryScene)throw new Error("cannot start game. the game object's entryScene has not been assigned");if(this.entryScene instanceof X)i=this.entryScene;else if(i=i=this.scenes.filter((t=>t.name===this.entryScene)).find(Boolean),void 0===i)throw new Error(`cannot start game. scene named "${t}" has not been added to the game object`)}if(this.presentScene(i),void 0===this.surface)throw new Error("CanvasKit surface is undefined");this.surface.requestAnimationFrame(this.loop.bind(this))}stop(){this.currentScene&&(this.currentScene._active=!1),this.gameStopRequested=!0}initData(){var t;this.trialIndex=0,this.data={trials:new Array,metadata:{userAgent:navigator.userAgent}};const e=null!==(t=this.options.trialSchema)&&void 0!==t?t:{},n=Object.entries(e),r=["number","string","boolean","object"];for(const[t,e]of n)if(!r.includes(e.type))throw new Error(`invalid schema. variable ${t} is type ${e.type}. type must be number, string, boolean, or object`)}addTrialData(t,e){if(!this.options.trialSchema)throw new Error("no trial schema were provided in GameOptions. cannot add trial data");if(this.data.trials.length<this.trialIndex+1){const t={},e=Object.entries(this.options.trialSchema);for(const[n]of e)t[n]=null;this.data.trials.push(t)}if(!(t in this.options.trialSchema))throw new Error(`trial variable ${t} not defined in schema`);const n=this.options.trialSchema[t].type,r=typeof e;if(r!==n)throw new Error(`type for variable ${t} (value: ${e}) is "${r}". Based on schema for this variable, expected type was "${n}"`);this.data.trials[this.trialIndex][t]=e}trialComplete(){var t,e,n;this.trialIndex++,(null===(t=this.session.options.gameCallbacks)||void 0===t?void 0:t.onGameTrialComplete)&&this.session.options.gameCallbacks.onGameTrialComplete({trialIndex:this.trialIndex-1,gameParameters:null!==(e=this.options.parameters)&&void 0!==e?e:{},gameData:this.data,trialSchema:null!==(n=this.options.trialSchema)&&void 0!==n?n:{},gameUuid:this.uuid,gameName:this.options.name})}end(){var t;(null===(t=this.session.options.gameCallbacks)||void 0===t?void 0:t.onGameEnd)&&this.session.options.gameCallbacks.onGameEnd({ended:!0,gameUuid:this.uuid,gameName:this.options.name})}setupHtmlCanvases(t,e,n,r){let i;if(Globals.canvasScale=Math.round(100*window.devicePixelRatio)/100,void 0===t){const t=document.getElementsByTagName("canvas");let e=new Array;for(let n=0;n<t.length;n++)e.push(t[n]);if(e=e.filter((t=>"m2c2kitscratchcanvas"!==t.id)),0===e.length)throw new Error("no html canvas tag was found in the html");e.length>1&&console.warn("warning: more than one html canvas was found. Using the first one"),i=t[0]}else if(i=document.getElementById(t),void 0===i)throw new Error(`could not find canvas HTML element with id "${t}"`);if(r||window.innerWidth<e||window.innerHeight<n){const t=n/e,r=window.innerHeight/window.innerWidth;Globals.rootScale=r<t?window.innerHeight/n:window.innerWidth/e}i.style.width=Globals.rootScale*e+"px",i.style.height=Globals.rootScale*n+"px",i.width=Globals.rootScale*e*Globals.canvasScale,i.height=Globals.rootScale*n*Globals.canvasScale,this.htmlCanvas=i,this.canvasCssWidth=e,this.canvasCssHeight=n,Globals.canvasCssWidth=e,Globals.canvasCssHeight=n}setupCanvasKitSurface(){if(void 0===this.htmlCanvas)throw new Error("main html canvas is undefined");const t=this.canvasKit.MakeCanvasSurface(this.htmlCanvas);if(null===t)throw new Error("could not make CanvasKit surface from canvas HTML element");this.surface=t,console.log("CanvasKit surface is backed by "+(this.surface.reportBackendTypeIsGPU()?"GPU":"CPU")),this.surface.getCanvas().scale(Globals.canvasScale,Globals.canvasScale)}setupFpsFont(){this.fpsTextFont=new this.canvasKit.Font(null,B.FPS_DISPLAY_TEXT_FONT_SIZE*Globals.canvasScale),this.fpsTextPaint=new this.canvasKit.Paint,this.fpsTextPaint.setColor(this.canvasKit.Color(B.FPS_DISPLAY_TEXT_COLOR[0],B.FPS_DISPLAY_TEXT_COLOR[1],B.FPS_DISPLAY_TEXT_COLOR[2],B.FPS_DISPLAY_TEXT_COLOR[3])),this.fpsTextPaint.setAntiAlias(!0)}setupEventHandlers(){if(void 0===this.htmlCanvas)throw new Error("main html canvas is undefined");this.htmlCanvas.addEventListener("mousedown",this.htmlCanvasMouseDownHandler.bind(this)),this.htmlCanvas.addEventListener("touchstart",this.htmlCanvasTouchStartHandler.bind(this))}loop(t){if(!this.gameStopRequested){if(this.animationFramesRequested++,!this.limitFps||this.animationFramesRequested%Math.round(60/B.LIMITED_FPS_RATE)==0){if(void 0===this.currentScene&&0===this.incomingSceneTransitions.length)throw new Error("Can not run game without a current or incoming scene");this.updateGameTime(),this.handleIncomingSceneTransitions(this.incomingSceneTransitions),this.update(),this.draw(t),this.incomingSceneTransitions.length>0&&(this.currentSceneSnapshot=this.takeCurrentSceneSnapshot())}if(this.priorUpdateTime=Globals.now,void 0===this.surface)throw new Error("CanvasKit surface is undefined");this.surface.requestAnimationFrame(this.loop.bind(this))}}updateGameTime(){Globals.now=window.performance.now(),this.priorUpdateTime?Globals.deltaTime=Globals.now-this.priorUpdateTime:Globals.deltaTime=0}handleIncomingSceneTransitions(t){if(t.length>0&&this.currentSceneSnapshot){const e=t.shift();if(void 0===e)throw new Error("no incoming scene transition");const n=e.scene,r=e.transition,i=this.currentSceneSnapshot;if(!i)throw new Error("no outgoing scene image");const a=new X({name:"outgoingScene"});a.size.width=this.canvasCssWidth,a.size.height=this.canvasCssHeight,this.addScene(a),i||console.log("outgoingSceneImage is undefined/null");const o=new u("outgoingSceneSnapshot",i,this.canvasCssWidth,this.canvasCssHeight);this.session.imageManager.addLoadedImage(o,this.uuid);const s=new $({name:"outgoingSceneSprite",imageName:"outgoingSceneSnapshot",position:new N(this.canvasCssWidth/Globals.rootScale/2,this.canvasCssHeight/Globals.rootScale/2)});s.scale=1/Globals.rootScale,a.addChild(s),a._active=!0,n!==this.currentScene&&this.currentScene&&(this.currentScene._active=!1),this.currentScene=n,this.currentScene._active=!0,n._setupCallback&&n._setupCallback(n),a&&n&&(r?this.animateSceneTransition(n,r,a):a._active=!1)}}update(){this.scenes.filter((t=>t._active)).forEach((t=>t.update()))}draw(t){this.scenes.filter((t=>t._active)).forEach((e=>e.draw(t))),this.drawnFrames++,this.showFps&&this.drawFps(t)}takeCurrentSceneSnapshot(){if(void 0===this.surface)throw new Error("CanvasKit surface is undefined");return this.surface.makeImageSnapshot()}animateSceneTransition(t,n,r){const i=n.duration;switch(t._transitioning=!0,r._transitioning=!0,n.type){case D.push:switch(n.direction){case G.left:t.position.x=t.size.width,t.run(e.Sequence([e.Move({point:new N(0,0),duration:i,runDuringTransition:!0}),e.Custom({callback:()=>{t._transitioning=!1},runDuringTransition:!0})])),r.run(e.Sequence([e.Move({point:new N(-r.size.width,0),duration:i,runDuringTransition:!0}),e.Custom({callback:()=>{r._active=!1,r._transitioning=!1,r.game.currentSceneSnapshot&&r.game.currentSceneSnapshot.delete()},runDuringTransition:!0})]));break;case G.right:t.position.x=-t.size.width,t.run(e.Sequence([e.Move({point:new N(0,0),duration:i,runDuringTransition:!0}),e.Custom({callback:()=>{t._transitioning=!1},runDuringTransition:!0})])),r.run(e.Sequence([e.Move({point:new N(r.size.width,0),duration:i,runDuringTransition:!0}),e.Custom({callback:()=>{r._active=!1,r._transitioning=!1,r.game.currentSceneSnapshot&&r.game.currentSceneSnapshot.delete()},runDuringTransition:!0})]));break;case G.up:t.position.y=t.size.height,t.run(e.Sequence([e.Move({point:new N(0,0),duration:i,runDuringTransition:!0}),e.Custom({callback:()=>{t._transitioning=!1},runDuringTransition:!0})])),r.run(e.Sequence([e.Move({point:new N(0,-r.size.height),duration:i,runDuringTransition:!0}),e.Custom({callback:()=>{r._active=!1,r._transitioning=!1,r.game.currentSceneSnapshot&&r.game.currentSceneSnapshot.delete()},runDuringTransition:!0})]));break;case G.down:t.position.y=-t.size.height,t.run(e.Sequence([e.Move({point:new N(0,0),duration:i,runDuringTransition:!0}),e.Custom({callback:()=>{t._transitioning=!1},runDuringTransition:!0})])),r.run(e.Sequence([e.Move({point:new N(0,r.size.height),duration:i,runDuringTransition:!0}),e.Custom({callback:()=>{r._active=!1,r._transitioning=!1,r.game.currentSceneSnapshot&&r.game.currentSceneSnapshot.delete()},runDuringTransition:!0})]));break;default:throw new Error("unknown transition direction")}break;default:throw new Error("unknown transition type")}}drawFps(t){if(0===this.lastFpsUpdate)this.lastFpsUpdate=Globals.now,this.nextFpsUpdate=Globals.now+B.FPS_DISPLAY_UPDATE_INTERVAL;else{Globals.now>=this.nextFpsUpdate&&(this.fps=this.drawnFrames/((Globals.now-this.lastFpsUpdate)/1e3),this.drawnFrames=0,this.lastFpsUpdate=Globals.now,this.nextFpsUpdate=Globals.now+B.FPS_DISPLAY_UPDATE_INTERVAL),t.save();const e=Globals.canvasScale;if(t.scale(1/e,1/e),!this.fpsTextFont||!this.fpsTextPaint)throw new Error("fps font or paint is undefined");t.drawText("FPS: "+this.fps.toFixed(2),0,0+B.FPS_DISPLAY_TEXT_FONT_SIZE*e,this.fpsTextPaint,this.fpsTextFont),t.restore()}}createEventListener(t,e,n,r=!0){const i=this.entities.filter((t=>t.name===e));i.length>1&&console.warn(`warning: createEventListener() found more than one entity with name ${e}. Event listener will be attached to first entity found. All entities that receive tap events should be uniquely named`);const a=i.filter((t=>t.name===e)).find(Boolean);if(void 0===a)throw new Error(`could not create event listener. entity with name ${e} could not be found in the game entity tree`);if("tapdown"!==t)throw new Error(`could not create event listener: event type ${t} is not known`);a.onTapDown(n,r)}get entities(){function t(e,n){n.push(e),e.children.forEach((e=>t(e,n)))}const e=new Array;return this.scenes.forEach((n=>t(n,e))),e}htmlCanvasMouseDownHandler(t){t.preventDefault();const e=this.currentScene;if(!e||!this.sceneCanReceiveUserInteraction(e))return;const n=t.offsetX,r=t.offsetY;this.processTaps(e,n,r)}htmlCanvasTouchStartHandler(t){t.preventDefault();const e=this.currentScene;if(!e||!this.sceneCanReceiveUserInteraction(e))return;const n=t.target.getBoundingClientRect(),r=t.touches.item(0);if(null===r)return void console.warn("warning: canvas received touchstart event, but TouchList was empty");const i=r.pageX-n.x,a=r.pageY-n.y;this.processTaps(e,i,a)}sceneCanReceiveUserInteraction(t){var e;return t.game===(null===(e=t.game.session)||void 0===e?void 0:e.currentActivity)&&!1===t._transitioning}processTaps(t,e,n){t.isUserInteractionEnabled&&this.tapIsWithinEntityBounds(t,e,n)&&this.handleEntityTapped(t,e,n),t.children&&t.children.filter((t=>!t.hidden)).forEach((t=>this.processTaps(t,e,n)))}handleEntityTapped(t,e,n){t.eventListeners.filter((t=>"tapdown"===t.eventType)).forEach((r=>{if(r.entityName===t.name){const i=this.calculateEntityAbsoluteBoundingBox(t),a=(e-i.xMin)/(i.xMax-i.xMin)*t.size.width,o=(n-i.yMin)/(i.yMax-i.yMin)*t.size.height,s={target:t,point:new N(a,o)};r.callback(s)}}))}tapIsWithinEntityBounds(t,e,n){if(!t.isDrawable)throw"only drawable entities can receive tap events";if(0===t.size.width||0===t.size.height)return console.warn(`warning: entity ${t.toString()} has isUserInteractionEnabled = true, but has no tappable area. Size is ${t.size.width}, ${t.size.height}`),!1;if(t.type===I.textline&&isNaN(t.size.width))return console.warn(`warning: entity ${t.toString()} is a textline with width = NaN. A textline must have its width manually set.`),!1;const r=this.calculateEntityAbsoluteBoundingBox(t);return!!(t.isUserInteractionEnabled&&e>=r.xMin&&e<=r.xMax&&n>=r.yMin&&n<=r.yMax)}calculateEntityAbsoluteBoundingBox(t){const e=t.anchorPoint,n=t.absoluteScale;return{xMin:t.absolutePosition.x-t.size.width*e.x*n,xMax:t.absolutePosition.x+t.size.width*(1-e.x)*n,yMin:t.absolutePosition.y-t.size.height*e.y*n,yMax:t.absolutePosition.y+t.size.height*(1-e.y)*n}}}class tt{constructor(t){this.originTime=-1,this.startTime=-1,this.stopTime=-1,this.stopped=!0,this._elapsed=-1,this.name=t}static Start(t){let e=this._timers.filter((e=>e.name===t)).find(Boolean);void 0===e&&(e=new tt(t),e.originTime=window.performance.now(),e._elapsed=0,this._timers.push(e)),e.startTime=window.performance.now(),e.stopped=!1}static Stop(t){const e=this._timers.filter((e=>e.name===t)).find(Boolean);if(void 0===e)throw new Error("timer with this name does not exist");if(!0===e.stopped)throw new Error("timer is already stopped");e.stopTime=window.performance.now(),e._elapsed=e._elapsed+e.stopTime-e.startTime,e.stopped=!0}static Restart(t){const e=this._timers.filter((e=>e.name===t)).find(Boolean);if(void 0===e)throw new Error("timer with this name does not exist");e.startTime=window.performance.now(),e._elapsed=0,e.stopped=!1,console.log("timer restarted")}static Elapsed(t){const e=this._timers.filter((e=>e.name===t)).find(Boolean);if(void 0===e)throw new Error("timer with this name does not exist");return e.stopped?e._elapsed:e._elapsed+window.performance.now()-e.startTime}static Remove(t){if(void 0===this._timers.filter((e=>e.name===t)).find(Boolean))throw new Error("timer with this name does not exist");this._timers.filter((e=>e.name!=t))}static Exists(t){return this._timers.some((e=>e.name===t))}static RemoveAll(){this._timers=new Array}}tt._timers=new Array;class et{constructor(t){this.uuid=V.generate(),this.options=t,this.fontManager=new M,this.imageManager=new p,this.options.activities.forEach((t=>t.session=this))}init(){return l(this,void 0,void 0,(function*(){tt.Start("activityInit");const[t]=yield this.getAsynchronousAssets();this.loadAssets(t),console.log(`Activity.init() took ${tt.Elapsed("activityInit").toFixed(0)} ms`),tt.Remove("activityInit")}))}start(){var t;this.currentActivity=this.options.activities.find(Boolean),this.logStartingActivity(),null===(t=this.currentActivity)||void 0===t||t.start()}advanceToNextActivity(){if(!this.currentActivity)throw new Error("error in advanceToNextActivity(): no current activity");if(!this.nextActivity)throw new Error("error in advanceToNextActivity(): no next activity");this.currentActivity.stop(),this.currentActivity=this.nextActivity,this.logStartingActivity(),this.currentActivity.start()}get nextActivity(){if(!this.currentActivity)throw new Error("error in get nextActivity(): no current activity");if(this.options.activities.indexOf(this.currentActivity)===this.options.activities.length-1)return;const t=this.options.activities.indexOf(this.currentActivity);return this.options.activities[t+1]}logStartingActivity(){var t,e,n;if(this.currentActivity instanceof J){const r=(null===(t=this.currentActivity)||void 0===t?void 0:t.options.version)?`, version ${null===(e=this.currentActivity)||void 0===e?void 0:e.options.version}`:"";console.log(`starting game: ${(null===(n=this.currentActivity)||void 0===n?void 0:n.options.name)+r}`)}}getAsynchronousAssets(){return l(this,void 0,void 0,(function*(){const t=this.loadCanvasKit(),e=this.fontManager.fetchFonts(this.getFontsConfigurationFromGames()),n=this.imageManager.renderImages(this.getImagesConfigurationFromGames());return yield Promise.all([t,e,n])}))}loadCanvasKit(){return O({locateFile:t=>t})}loadAssets(t){this.assignCanvasKit(t),this.fontManager.loadAllGamesFontData(),this.imageManager.loadAllGamesRenderedImages()}assignCanvasKit(t){this.canvasKit=t,this.fontManager.canvasKit=this.canvasKit,this.imageManager.canvasKit=this.canvasKit,this.options.activities.filter((t=>t instanceof J)).forEach((e=>{e.canvasKit=t}))}getFontsConfigurationFromGames(){return this.options.activities.filter((t=>t instanceof J)).map((t=>{var e;const n=t;return{uuid:n.uuid,fontUrls:null!==(e=n.options.fontUrls)&&void 0!==e?e:[]}}))}getImagesConfigurationFromGames(){return this.options.activities.filter((t=>t instanceof J)).map((t=>{var e;const n=t;return{uuid:n.uuid,images:null!==(e=n.options.images)&&void 0!==e?e:[]}}))}}class nt extends q{constructor(t={}){super(t),this.type=I.composite,this.compositeType="<compositeType>",this.isDrawable=!0,this.anchorPoint=new N(.5,.5),this.zPosition=0,Y(this,t)}initialize(){}update(){super.update()}draw(t){super.drawChildren(t)}}!function(t){t[t.MATCH_CONSTRAINT=0]="MATCH_CONSTRAINT"}(U||(U={})),function(t){t[t.center=0]="center",t[t.left=1]="left",t[t.right=2]="right"}(W||(W={}));class rt extends q{constructor(t={}){super(t),this.type=I.label,this.isDrawable=!0,this.isText=!0,this.anchorPoint=new N(.5,.5),this.zPosition=0,this._text="",this._fontColor=B.DEFAULT_FONT_COLOR,this._fontSize=B.DEFAULT_FONT_SIZE,this._horizontalAlignmentMode=W.center,Y(this,t),t.horizontalAlignmentMode&&(this.horizontalAlignmentMode=t.horizontalAlignmentMode),void 0!==t.preferredMaxLayoutWidth&&(this.preferredMaxLayoutWidth=t.preferredMaxLayoutWidth),t.backgroundColor&&(this.backgroundColor=t.backgroundColor)}initialize(){var t,e,n;let r=this.canvasKit.TextAlign.Center;switch(this.horizontalAlignmentMode){case W.center:r=this.canvasKit.TextAlign.Center;break;case W.left:r=this.canvasKit.TextAlign.Left;break;case W.right:r=this.canvasKit.TextAlign.Right;break;default:throw new Error("unknown horizontalAlignmentMode")}this.paraStyle=new this.canvasKit.ParagraphStyle({textStyle:{color:this.canvasKit.Color(this.fontColor[0],this.fontColor[1],this.fontColor[2],this.fontColor[3]),fontSize:this.fontSize*Globals.canvasScale},textAlign:r}),this.fontName&&this.paraStyle.textStyle&&(this.paraStyle.textStyle.fontFamilies=[this.fontName]),this.backgroundColor&&this.paraStyle.textStyle&&(this.paraStyle.textStyle.backgroundColor=this.backgroundColor);const i=this.parentSceneAsEntity.game.session;if(!i)throw new Error("activity is undefined");const a=i.fontManager;if(void 0===a.fontMgr)throw new Error("no fonts loaded");const o=this.canvasKit.ParagraphBuilder.Make(this.paraStyle,a.fontMgr);this.text||(this.text=""),o.addText(this.text),""===this.text&&console.warn(`warning: empty text in label "${this.name}"`),this.paragraph=o.build();const s=null!==(t=this.preferredMaxLayoutWidth)&&void 0!==t?t:Globals.canvasCssWidth;let l=s;if(0===s||0===this.layout.width){if(void 0===this.parent)throw new Error("width is set to match parent, but entity has no parent");const t=null!==(e=this.layout.marginStart)&&void 0!==e?e:0,r=null!==(n=this.layout.marginEnd)&&void 0!==n?n:0;l=this.parent.size.width-(t+r)}this.paragraph.layout(l*Globals.canvasScale),this.size.width=l,this.size.height=this.paragraph.getHeight()/Globals.canvasScale}get text(){return this._text}set text(t){this._text=t,this.needsInitialization=!0}get fontName(){return this._fontName}set fontName(t){this._fontName=t,this.needsInitialization=!0}get fontColor(){return this._fontColor}set fontColor(t){this._fontColor=t,this.needsInitialization=!0}get fontSize(){return this._fontSize}set fontSize(t){this._fontSize=t,this.needsInitialization=!0}get horizontalAlignmentMode(){return this._horizontalAlignmentMode}set horizontalAlignmentMode(t){this._horizontalAlignmentMode=t,this.needsInitialization=!0}get preferredMaxLayoutWidth(){return this._preferredMaxLayoutWidth}set preferredMaxLayoutWidth(t){this._preferredMaxLayoutWidth=t,this.needsInitialization=!0}get backgroundColor(){return this._backgroundColor}set backgroundColor(t){this._backgroundColor=t,this.needsInitialization=!0}update(){super.update()}draw(t){if(this.parent&&""!==this.text){t.save();const e=Globals.canvasScale/this.absoluteScale;t.scale(1/e,1/e);const n=(this.absolutePosition.x-this.size.width*this.anchorPoint.x*this.absoluteScale)*e,r=(this.absolutePosition.y-this.size.height*this.anchorPoint.y*this.absoluteScale)*e;if(void 0===this.paragraph)throw new Error("no paragraph");t.drawParagraph(this.paragraph,n,r),t.restore()}super.drawChildren(t)}}class it{static FromRangeWithoutReplacement(t,e,n){const r=new Array;for(let i=0;i<t;i++){const i=Math.floor(Math.random()*(n-e))+e;r.includes(i)?t++:r.push(i)}return r}static FromGridWithoutReplacement(t,e,n,r){const i=new Array,a=e*n-1,o=this.FromRangeWithoutReplacement(t,0,a);let s=0,l=NaN;for(;s<t;){const t=o[s]%n,e=(o[s]-t)/n;if(void 0===r||r(e,t))i.push({row:e,column:t}),s++;else{do{l=this.FromRangeWithoutReplacement(1,0,a)[0]}while(o.includes(l));o[s]=l}}return i}}class at{constructor(t){this.origin=t.origin,this.size=t.size,this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height}}!function(t){t[void 0]="Undefined",t.rectangle="Rectangle",t.circle="Circle"}(j||(j={}));class ot extends q{constructor(t={}){super(t),this.type=I.shape,this.isDrawable=!0,this.isShape=!0,this.anchorPoint=new N(.5,.5),this.zPosition=0,this.shapeType=j.undefined,this.cornerRadius=0,this._fillColor=B.DEFAULT_SHAPE_FILL_COLOR,Y(this,t),void 0!==t.circleOfRadius&&(this.circleOfRadius=t.circleOfRadius,this.shapeType=j.circle),t.rect&&(t.rect.size?(this.size.width=t.rect.size.width,this.size.height=t.rect.size.height):void 0!==t.rect.width&&void 0!==t.rect.height&&(this.size.width=t.rect.width,this.size.height=t.rect.height),t.rect.origin?this.position=t.rect.origin:void 0!==t.rect.x&&void 0!==t.rect.y&&(this.position=new N(t.rect.x,t.rect.y)),this.shapeType=j.rectangle),t.cornerRadius&&(this.cornerRadius=t.cornerRadius),t.fillColor&&(this.fillColor=t.fillColor),t.strokeColor&&(this.strokeColor=t.strokeColor),t.lineWidth&&(this.lineWidth=t.lineWidth),t.strokeColor&&void 0===t.lineWidth&&console.warn(`warning: for entity ${this}, strokeColor = ${t.strokeColor} but lineWidth is undefined. In normal usage, both would be set or both would be undefined.`),void 0===t.strokeColor&&t.lineWidth&&console.warn(`warning: for entity ${this}, lineWidth = ${t.lineWidth} but strokeColor is undefined. In normal usage, both would be set or both would be undefined.`)}initialize(){if(this.fillColor){const t=this.canvasKit;this.fillColorPaint=new t.Paint,this.fillColorPaint.setColor(t.Color(this.fillColor[0],this.fillColor[1],this.fillColor[2],this.fillColor[3])),this.fillColorPaint.setStyle(t.PaintStyle.Fill),this.fillColorPaint.setAntiAlias(!0)}if(this.strokeColor){const t=this.canvasKit;this.strokeColorPaint=new t.Paint,this.strokeColorPaint.setColor(t.Color(this.strokeColor[0],this.strokeColor[1],this.strokeColor[2],this.strokeColor[3])),this.strokeColorPaint.setStyle(t.PaintStyle.Stroke),this.strokeColorPaint.setAntiAlias(!0)}}get fillColor(){return this._fillColor}set fillColor(t){this._fillColor=t,this.needsInitialization=!0}get strokeColor(){return this._strokeColor}set strokeColor(t){this._strokeColor=t,this.needsInitialization=!0}update(){super.update()}draw(t){t.save();const e=Globals.canvasScale/this.absoluteScale;if(t.scale(1/e,1/e),this.shapeType===j.circle&&void 0!==this.circleOfRadius){const n=this.absolutePosition.x*e,r=this.absolutePosition.y*e,i=this.circleOfRadius*this.absoluteScale*e;this.fillColor&&this.fillColorPaint&&t.drawCircle(n,r,i,this.fillColorPaint),this.strokeColor&&this.strokeColorPaint&&this.lineWidth&&(this.strokeColorPaint.setStrokeWidth(this.lineWidth*e),t.drawCircle(n,r,i,this.strokeColorPaint))}if(this.shapeType===j.rectangle){const n=this.canvasKit.RRectXY(this.canvasKit.LTRBRect((this.absolutePosition.x-this.anchorPoint.x*this.size.width*this.absoluteScale)*e,(this.absolutePosition.y-this.anchorPoint.y*this.size.height*this.absoluteScale)*e,(this.absolutePosition.x+this.size.width*this.absoluteScale-this.anchorPoint.x*this.size.width*this.absoluteScale)*e,(this.absolutePosition.y+this.size.height*this.absoluteScale-this.anchorPoint.y*this.size.height*this.absoluteScale)*e),this.cornerRadius*e,this.cornerRadius*e);this.fillColor&&this.fillColorPaint&&t.drawRRect(n,this.fillColorPaint),this.strokeColor&&this.strokeColorPaint&&this.lineWidth&&(this.strokeColorPaint.setStrokeWidth(this.lineWidth*e),t.drawRRect(n,this.strokeColorPaint))}t.restore(),super.drawChildren(t)}}class st{static Create(t){return new Array}}class lt extends q{constructor(t={}){var e;super(t),this.type=I.textline,this.isDrawable=!0,this.isText=!0,this.zPosition=0,this.anchorPoint=new N(0,.5),this._text="",this._fontColor=B.DEFAULT_FONT_COLOR,this._fontSize=B.DEFAULT_FONT_SIZE,Y(this,t),this.size.height=this.fontSize,this.size.width=null!==(e=t.width)&&void 0!==e?e:NaN}get text(){return this._text}set text(t){this._text=t,this.needsInitialization=!0}get fontName(){return this._fontName}set fontName(t){this._fontName=t,this.needsInitialization=!0}get fontColor(){return this._fontColor}set fontColor(t){this._fontColor=t,this.needsInitialization=!0}get fontSize(){return this._fontSize}set fontSize(t){this._fontSize=t,this.needsInitialization=!0}update(){super.update()}initialize(){this.paint=new this.canvasKit.Paint,this.paint.setColor(this.canvasKit.Color(this.fontColor[0],this.fontColor[1],this.fontColor[2],this.fontColor[3])),this.paint.setStyle(this.canvasKit.PaintStyle.Fill),this.paint.setAntiAlias(!0);const t=this.parentSceneAsEntity.game.session;if(!t)throw new Error("activity is undefined");const e=t.fontManager,n=this.parentSceneAsEntity.game.uuid;this.fontName?this.font=new this.canvasKit.Font(e.getTypeface(n,this.fontName),this.fontSize*Globals.canvasScale):this.font=new this.canvasKit.Font(null,this.fontSize*Globals.canvasScale)}draw(t){if(this.parent&&this.text){t.save();const e=Globals.canvasScale/this.absoluteScale;t.scale(1/e,1/e);const n=this.absolutePosition.x*e,r=(this.absolutePosition.y+this.size.height*this.anchorPoint.y*this.absoluteScale)*e;if(void 0===this.paint||void 0===this.font)throw new Error(`in TextLine entity ${this}, Paint or Font is undefined.`);t.drawText(this.text,n,r,this.paint,this.font),t.restore()}super.drawChildren(t)}}export{e as Action,nt as Composite,B as Constants,L as ConstraintType,i as CustomAction,U as Dimensions,q as Entity,I as EntityType,M as FontManager,J as Game,c as GlobalVariables,r as GroupAction,p as ImageManager,rt as Label,W as LabelHorizontalAlignmentMode,z as LayoutConstraint,u as LoadedImage,o as MoveAction,N as Point,Q as PushTransition,it as RandomDraws,at as Rect,s as ScaleAction,X as Scene,Z as SceneTransition,n as SequenceAction,et as Session,ot as Shape,j as ShapeType,H as Size,$ as Sprite,st as Story,lt as TextLine,tt as Timer,K as Transition,G as TransitionDirection,D as TransitionType,V as Uuid,a as WaitAction,R as WebColors,Y as handleInterfaceOptions};
|
|
15
|
+
***************************************************************************** */function l(t,e,n,r){return new(n||(n=Promise))((function(i,a){function o(t){try{l(r.next(t))}catch(t){a(t)}}function s(t){try{l(r.throw(t))}catch(t){a(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(o,s)}l((r=r.apply(t,e||[])).next())}))}class c{constructor(){this.now=NaN,this.deltaTime=NaN,this.canvasScale=NaN,this.rootScale=1,this.canvasCssWidth=NaN,this.canvasCssHeight=NaN}}globalThis.Globals=new c;class u{constructor(t,e,n,r){this.name=t,this.image=e,this.width=n,this.height=r}}class h{constructor(t,e,n,r){this.name=t,this.dataUrlImage=e,this.width=n,this.height=r}}class f{}class d{}class p{constructor(){this.renderedImages=new f,this.loadedImages=new d}getLoadedImage(t,e){return this.loadedImages[t][e]}addLoadedImage(t,e){this.loadedImages[e]||(this.loadedImages[e]={}),this.loadedImages[e][t.name]=t}renderImages(t){const e=new Array;return t.forEach((t=>{if(t.images){const n=(t=>t.filter(((e,n)=>t.indexOf(e)!=n)))(t.images.map((t=>t.name)));if(n.length>0)throw new Error("image names must be unique. these image names are duplicated within a game: "+n.join(", "));t.images.map((n=>{e.push(this.renderBrowserImage(t.uuid,n))}))}})),Promise.all(e)}loadAllGamesRenderedImages(){Object.keys(this.renderedImages).forEach((t=>{Object.keys(this.renderedImages[t]).forEach((e=>{const n=this.convertRenderedDataUrlImageToCanvasKitImage(this.renderedImages[t][e]);this.loadedImages[t]||(this.loadedImages[t]={}),this.addLoadedImage(n,t)}))}))}renderBrowserImage(t,e){const n=document.createElement("img");return new Promise((r=>{if(n.width=e.width,n.height=e.height,n.crossOrigin="Anonymous",n.onload=()=>{if(!this.scratchCanvas||!this.ctx||!this.scale)throw new Error("image manager not set up");this.scratchCanvas.width=e.width*this.scale,this.scratchCanvas.height=e.height*this.scale,this.ctx.scale(this.scale,this.scale),this.ctx.clearRect(0,0,e.width,e.height),this.ctx.drawImage(n,0,0,e.width,e.height);const i=this.scratchCanvas.toDataURL(),a=new h(e.name,i,e.width,e.height);n.remove(),this.renderedImages[t]||(this.renderedImages[t]={}),this.renderedImages[t][e.name]=a,r()},n.onerror=()=>{const n=new h(e.name,"",0,0);this.renderedImages[t]||(this.renderedImages[t]={}),this.renderedImages[t][e.name]=n,r()},e.svgString&&e.url)throw new Error("provide svg string or url. both were provided");if(e.svgString)n.src="data:image/svg+xml,"+encodeURIComponent(e.svgString);else{if(!e.url)throw new Error("no svg string or url provided");n.src=e.url}}))}convertRenderedDataUrlImageToCanvasKitImage(t){if(!this.canvasKit)throw new Error("canvasKit undefined");let e=null;try{e=this.canvasKit.MakeImageFromEncoded(this.dataURLtoArrayBuffer(t.dataUrlImage))}catch(e){throw new Error(`could not create image with name "${t.name}"`)}if(null===e)throw new Error(`could not create image with name "${t.name}"`);const n=new u(t.name,e,t.width,t.height);return console.log(`image loaded. name: ${t.name}, w: ${t.width}, h: ${t.height}`),n}get scratchCanvas(){if(!this._scratchCanvas){this._scratchCanvas=document.createElement("canvas"),this._scratchCanvas.id="m2c2kitscratchcanvas",this._scratchCanvas.hidden=!0,document.body.appendChild(this._scratchCanvas);const t=this._scratchCanvas.getContext("2d");if(null===t)throw new Error("could not get 2d canvas context from scratch canvas");this.ctx=t,this.scale=window.devicePixelRatio}return this._scratchCanvas}dataURLtoArrayBuffer(t){const e=t.split(","),n=atob(e[1]);let r=n.length;const i=new Uint8Array(r);for(;r--;)i[r]=n.charCodeAt(r);return i.buffer}}function m(t,e){return function(t,e){for(var n=function(t){return w(t,4)}(t),r={tag:"",checksum:"",contents:"",length:""},i=0;i<n;++i){var a=12+16*i,o=A(t.buffer.slice(a,a+4));if(o===e)return r.tag=o,r.checksum=b(t,a+4),r.contents=b(t,a+8),r.length=b(t,a+24),r}return r}(t,e).contents}const g={meta:{property:[],description:[],license:[],reference:[]},tables:{name:{},post:{},os2:{version:"",weightClass:""}}};function y(t){return 2147483648&t&&(t=-(1+~t)),t/65536}function v(t,e){return t.getInt16(e)}function w(t,e){return t.getUint16(e)}function b(t,e){return t.getUint32(e)}function A(t){return new TextDecoder("utf-8").decode(new Uint8Array(t))}function S(t){return g.tables.name=function(t){for(var e=m(t,"name"),n=w(t,e+4),r=w(t,e+2),i=n+e,a={},o=0;o<r;o++){var s=e+6+12*o,l=w(t,s+6),c=w(t,s+8),u=w(t,s+10);a.hasOwnProperty(l)||(a[l]=A(t.buffer.slice(i+u,i+u+c)))}return a}(t),g.tables.post=function(t){var e=m(t,"post");return{format:y(b(t,e+0)),italicAngle:y(b(t,e+4)),underlinePosition:v(t,e+12),underlineThickness:v(t,e+14),isFixedPitch:b(t,e+16),minMemType42:b(t,e+7),maxMemType42:b(t,e+9),minMemType1:b(t,e+11),maxMemType1:b(t,e+13)}}(t),g.tables.os2=function(t){var e=m(t,"OS/2");return{version:w(t,e+0),weightClass:w(t,e+4)}}(t),g.meta=function(t){var e={property:[],description:[],license:[],reference:[]};for(const s in t)if(t.hasOwnProperty(s)){const l=parseInt(s);var n=l;const c=t[l].trim();if((o=c.replace("~\r\n?~","\n").split("\n").map((t=>t.trim())).filter((t=>t))).length>1){var r=10==l?"description":"license";e[r]=[];for(const t in o)if(o.hasOwnProperty(t)){var i=o[t].trim();e[r].push({name:_(i),text:i})}}else if(c){if(/^s?https?:\/\/[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+$/.test(c))e.reference.findIndex((t=>t.text==c))<0&&e.reference.push({name:"url",text:c});else if(l>0&&l<6){var a=C[n].replace(" ","-").toLowerCase();e.property.push({name:a,text:c})}else if(C.hasOwnProperty(l))if(0==l||7==l){var o=c.replace(/---+/,"\n").split("\n").map((t=>t.trim())).filter((t=>t));for(const t in o)if(o.hasOwnProperty(t)){i=o[t].trim();e.description.push({name:_(i),text:i})}}else if(13==l)e.license.push({name:_(c),text:c});else{a=C[n].replace(" ","-").toLowerCase();e.property.push({name:a,text:c})}}}return e}(g.tables.name),g}function T(t){try{return S(t),g}catch(t){throw"error processing ttf"}}const C={0:"Copyright",1:"Font Family",2:"Font Subfamily",3:"Unique identifier",4:"Full name",5:"Version",6:"Postscript name",7:"Note",8:"Company",9:"Author",10:"Description",11:"URL",12:"URL",13:"License",14:"URL",16:"Name"},_=(t="")=>/^[^a-z]*$/.test(t)?t.split(" ").length>4?"paragraph":"title":"paragraph";class P{}class M{constructor(){this.gameTypefaces=new P}getTypeface(t,e){return this.gameTypefaces[t][e]}fetchFonts(t){const e=new Array;return t.forEach((t=>{const n=this.fetchGameFontsAsArrayBuffers(t.uuid,t.fontUrls);e.push(n)})),Promise.all(e).then((t=>{this.allGamesFontData=t.flat()}))}loadAllGamesFontData(){if(!this.allGamesFontData)throw new Error("allGamesFontData is undefined");Array.from(new Set(this.allGamesFontData.map((t=>t.gameUuid)))).forEach((t=>{if(!this.allGamesFontData)throw new Error("allGamesFontData is undefined");const e=this.allGamesFontData.filter((e=>e.gameUuid===t)).map((t=>t.fontArrayBuffer));this.loadGameFonts(t,e)}))}fetchGameFontsAsArrayBuffers(t,e){const n=e.map((e=>fetch(e).then((t=>t.arrayBuffer())).then((n=>({gameUuid:t,fontUrl:e,fontArrayBuffer:n})))));return Promise.all(n)}loadGameFonts(t,e){var n;if(!this.canvasKit)throw new Error("canvasKit undefined");if(this.fontMgr=null!==(n=this.canvasKit.FontMgr.FromData(...e))&&void 0!==n?n:void 0,!this.fontMgr)throw new Error("error creating FontMgr while loading fonts");e.forEach((e=>{var n;const r=null===(n=T(new DataView(e)).meta.property.filter((t=>"font-family"===t.name)).find(Boolean))||void 0===n?void 0:n.text;if(void 0===r)throw new Error("error loading fonts. could not get font-family from font array buffer");if(console.log("font loaded. font family: "+r),!this.canvasKit)throw new Error("canvasKit undefined");const i=this.canvasKit.Typeface.MakeFreeTypeFaceFromData(e);if(!i)throw new Error("cannot make typeface from font array buffer");this.gameTypefaces[t]||(this.gameTypefaces[t]={}),this.gameTypefaces[t][r]=i}))}}function F(t){if(t.__esModule)return t;var e=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(t).forEach((function(n){var r=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(e,n,r.get?r:{enumerable:!0,get:function(){return t[n]}})})),e}var E={exports:{}};var x=F(Object.freeze({__proto__:null,path_empty_shim:function(){}}));var k=F(Object.freeze({__proto__:null,fs_empty_shim:function(){}}));!function(t,e){var n,r=(n="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,"undefined"!=typeof __filename&&(n=n||__filename),function(t){var e,r,i,a;t=t||{},e||(e=void 0!==t?t:{}),e.ready=new Promise((function(t,e){r=t,i=e})),(a=e).Vd=a.Vd||[],a.Vd.push((function(){a.MakeSWCanvasSurface=function(t){var e=t;if("CANVAS"!==e.tagName&&!(e=document.getElementById(t)))throw"Canvas with id "+t+" was not found";return(t=a.MakeSurface(e.width,e.height))&&(t.Nd=e),t},a.MakeCanvasSurface||(a.MakeCanvasSurface=a.MakeSWCanvasSurface),a.MakeSurface=function(t,e){var n={width:t,height:e,colorType:a.ColorType.RGBA_8888,alphaType:a.AlphaType.Unpremul,colorSpace:a.ColorSpace.SRGB},r=t*e*4,i=a._malloc(r);return(n=a.Surface._makeRasterDirect(n,i,4*t))&&(n.Nd=null,n.zf=t,n.wf=e,n.yf=r,n.af=i,n.getCanvas().clear(a.TRANSPARENT)),n},a.MakeRasterDirectSurface=function(t,e,n){return a.Surface._makeRasterDirect(t,e.byteOffset,n)},a.Surface.prototype.flush=function(t){if(a.Od(this.Md),this._flush(),this.Nd){var e=new Uint8ClampedArray(a.HEAPU8.buffer,this.af,this.yf);e=new ImageData(e,this.zf,this.wf),t?this.Nd.getContext("2d").putImageData(e,0,0,t[0],t[1],t[2]-t[0],t[3]-t[1]):this.Nd.getContext("2d").putImageData(e,0,0)}},a.Surface.prototype.dispose=function(){this.af&&a._free(this.af),this.delete()},a.Od=a.Od||function(){}})),function(t){t.Vd=t.Vd||[],t.Vd.push((function(){function e(t,e,n){return t&&t.hasOwnProperty(e)?t[e]:n}function n(t){var e=Ee.length;return e||(Ee.push(null),e=1),Ee.push(t),e}function r(t){return t.naturalHeight||t.videoHeight||t.displayHeight||t.height}function i(t){return t.naturalWidth||t.videoWidth||t.displayWidth||t.width}t.GetWebGLContext=function(t,n){if(!t)throw"null canvas passed into makeWebGLContext";var r={alpha:e(n,"alpha",1),depth:e(n,"depth",1),stencil:e(n,"stencil",8),antialias:e(n,"antialias",0),premultipliedAlpha:e(n,"premultipliedAlpha",1),preserveDrawingBuffer:e(n,"preserveDrawingBuffer",0),preferLowPowerToHighPerformance:e(n,"preferLowPowerToHighPerformance",0),failIfMajorPerformanceCaveat:e(n,"failIfMajorPerformanceCaveat",0),enableExtensionsByDefault:e(n,"enableExtensionsByDefault",1),explicitSwapControl:e(n,"explicitSwapControl",0),renderViaOffscreenBackBuffer:e(n,"renderViaOffscreenBackBuffer",0)};if(r.majorVersion=n&&n.majorVersion?n.majorVersion:"undefined"!=typeof WebGL2RenderingContext?2:1,r.explicitSwapControl)throw"explicitSwapControl is not supported";return t=function(t,e){t.rf||(t.rf=t.getContext,t.getContext=function(e,n){return"webgl"==e==(n=t.rf(e,n))instanceof WebGLRenderingContext?n:null});var n=1<e.majorVersion?t.getContext("webgl2",e):t.getContext("webgl",e);return n?function(t,e){var n=Ue(Oe),r={Rf:n,attributes:e,version:e.majorVersion,le:t};return t.canvas&&(t.canvas.vf=r),Oe[n]=r,(void 0===e.Gf||e.Gf)&&function(t){if(t||(t=je),!t.Uf){t.Uf=!0;var e=t.le;!function(t){var e=t.getExtension("ANGLE_instanced_arrays");e&&(t.vertexAttribDivisor=function(t,n){e.vertexAttribDivisorANGLE(t,n)},t.drawArraysInstanced=function(t,n,r,i){e.drawArraysInstancedANGLE(t,n,r,i)},t.drawElementsInstanced=function(t,n,r,i,a){e.drawElementsInstancedANGLE(t,n,r,i,a)})}(e),function(t){var e=t.getExtension("OES_vertex_array_object");e&&(t.createVertexArray=function(){return e.createVertexArrayOES()},t.deleteVertexArray=function(t){e.deleteVertexArrayOES(t)},t.bindVertexArray=function(t){e.bindVertexArrayOES(t)},t.isVertexArray=function(t){return e.isVertexArrayOES(t)})}(e),function(t){var e=t.getExtension("WEBGL_draw_buffers");e&&(t.drawBuffers=function(t,n){e.drawBuffersWEBGL(t,n)})}(e),e.nf=e.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"),e.sf=e.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"),2<=t.version&&(e.pf=e.getExtension("EXT_disjoint_timer_query_webgl2")),(2>t.version||!e.pf)&&(e.pf=e.getExtension("EXT_disjoint_timer_query")),e.Bg=e.getExtension("WEBGL_multi_draw"),(e.getSupportedExtensions()||[]).forEach((function(t){t.includes("lose_context")||t.includes("debug")||e.getExtension(t)}))}}(r),n}(n,e):0}(t,r),t?(We(t),t):0},t.deleteContext=function(t){je===Oe[t]&&(je=null),"object"==typeof JSEvents&&JSEvents.Eg(Oe[t].le.canvas),Oe[t]&&Oe[t].le.canvas&&(Oe[t].le.canvas.vf=void 0),Oe[t]=null},t._setTextureCleanup({deleteTexture:function(t,e){var n=Ee[e];n&&Oe[t].le.deleteTexture(n),Ee[e]=null}}),t.MakeGrContext=function(t){if(!this.Od(t))return null;var e=this._MakeGrContext();return e?(e.Md=t,e):null},t.MakeOnScreenGLSurface=function(t,e,n,r){return(e=this._MakeOnScreenGLSurface(t,e,n,r))?(e.Md=t.Md,e):null},t.MakeRenderTarget=function(t,e,n){return(e=this._MakeRenderTargetWH(t,e,n))?(e.Md=t.Md,e):null},t.MakeRenderTarget=function(t,e){return(e=this._MakeRenderTargetII(t,e))?(e.Md=t.Md,e):null},t.MakeWebGLCanvasSurface=function(e,n,r){n=n||null;var i=e,a="undefined"!=typeof OffscreenCanvas&&i instanceof OffscreenCanvas;if(!("undefined"!=typeof HTMLCanvasElement&&i instanceof HTMLCanvasElement||a||(i=document.getElementById(e),i)))throw"Canvas with id "+e+" was not found";if(!(e=this.GetWebGLContext(i,r))||0>e)throw"failed to create webgl context: err "+e;return e=this.MakeGrContext(e),(n=this.MakeOnScreenGLSurface(e,i.width,i.height,n))||(n=i.cloneNode(!0),i.parentNode.replaceChild(n,i),n.classList.add("ck-replaced"),t.MakeSWCanvasSurface(n))},t.MakeCanvasSurface=t.MakeWebGLCanvasSurface,t.Surface.prototype.makeImageFromTexture=function(e,r){return t.Od(this.Md),e=n(e),this._makeImageFromTexture(this.Md,e,r)},t.Surface.prototype.makeImageFromTextureSource=function(e,n){n||(n={height:r(e),width:i(e),colorType:t.ColorType.RGBA_8888,alphaType:t.AlphaType.Unpremul}),n.colorSpace||(n.colorSpace=t.ColorSpace.SRGB),t.Od(this.Md);var a=je.le,o=a.createTexture();return a.bindTexture(a.TEXTURE_2D,o),2===je.version?a.texImage2D(a.TEXTURE_2D,0,a.RGBA,n.width,n.height,0,a.RGBA,a.UNSIGNED_BYTE,e):a.texImage2D(a.TEXTURE_2D,0,a.RGBA,a.RGBA,a.UNSIGNED_BYTE,e),a.bindTexture(a.TEXTURE_2D,null),this.makeImageFromTexture(o,n)},t.MakeLazyImageFromTextureSource=function(e,a){a||(a={height:r(e),width:i(e),colorType:t.ColorType.RGBA_8888,alphaType:t.AlphaType.Unpremul}),a.colorSpace||(a.colorSpace=t.ColorSpace.SRGB);var o={makeTexture:function(){var t=je,r=t.le,i=r.createTexture();return r.bindTexture(r.TEXTURE_2D,i),2===t.version?r.texImage2D(r.TEXTURE_2D,0,r.RGBA,a.width,a.height,0,r.RGBA,r.UNSIGNED_BYTE,e):r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,e),r.bindTexture(r.TEXTURE_2D,null),n(i)},freeSrc:function(){}};return"VideoFrame"===e.constructor.name&&(o.freeSrc=function(){e.close()}),t.Image._makeFromGenerator(a,o)},t.Od=function(t){return!!t&&We(t)}}))}(e),function(t){function n(t,e,n,r,i){for(var a=0;a<t.length;a++)e[a*n+(a*i+r+n)%n]=t[a];return e}function r(t){for(var e=t*t,n=Array(e);e--;)n[e]=0==e%(t+1)?1:0;return n}function i(t){return!!t&&t.constructor===Float32Array&&4===t.length}function a(t){return(l(255*t[3])<<24|l(255*t[0])<<16|l(255*t[1])<<8|l(255*t[2])<<0)>>>0}function o(t){if(t&&t._ck)return t;if(t instanceof Float32Array){for(var e=Math.floor(t.length/4),n=new Uint32Array(e),r=0;r<e;r++)n[r]=a(t.slice(4*r,4*(r+1)));return n}return t instanceof Uint32Array?t:t instanceof Array&&t[0]instanceof Float32Array?t.map(a):void 0}function s(t){if(void 0===t)return 1;var e=parseFloat(t);return t&&-1!==t.indexOf("%")?e/100:e}function l(t){return Math.round(Math.max(0,Math.min(t||0,255)))}function c(e,n){n&&n._ck||t._free(e)}function u(e,n,r){if(!e||!e.length)return Y;if(e&&e._ck)return e.byteOffset;var i=t[n].BYTES_PER_ELEMENT;return r||(r=t._malloc(e.length*i)),t[n].set(e,r/i),r}function h(e){var n={ce:Y,count:e.length,Ke:t.ColorType.RGBA_F32};if(e instanceof Float32Array)n.ce=u(e,"HEAPF32"),n.count=e.length/4;else if(e instanceof Uint32Array)n.ce=u(e,"HEAPU32"),n.Ke=t.ColorType.RGBA_8888;else{if(!(e instanceof Array))throw"Invalid argument to copyFlexibleColorArray, Not a color array "+typeof e;if(e&&e.length){for(var r=t._malloc(16*e.length),i=0,a=r/4,o=0;o<e.length;o++)for(var s=0;4>s;s++)t.HEAPF32[a+i]=e[o][s],i++;e=r}else e=Y;n.ce=e}return n}function f(e){if(!e)return Y;if(e.length){if(6===e.length||9===e.length)return u(e,"HEAPF32",O),6===e.length&&t.HEAPF32.set(V,6+O/4),O;if(16===e.length){var n=S.toTypedArray();return n[0]=e[0],n[1]=e[1],n[2]=e[3],n[3]=e[4],n[4]=e[5],n[5]=e[7],n[6]=e[12],n[7]=e[13],n[8]=e[15],O}throw"invalid matrix size"}return(n=S.toTypedArray())[0]=e.m11,n[1]=e.m21,n[2]=e.m41,n[3]=e.m12,n[4]=e.m22,n[5]=e.m42,n[6]=e.m14,n[7]=e.m24,n[8]=e.m44,O}function d(e){for(var n=Array(16),r=0;16>r;r++)n[r]=t.HEAPF32[e/4+r];return n}function p(t,e){return u(t,"HEAPF32",e||L)}function m(t,e,n,r){var i=C.toTypedArray();return i[0]=t,i[1]=e,i[2]=n,i[3]=r,L}function g(e){for(var n=new Float32Array(4),r=0;4>r;r++)n[r]=t.HEAPF32[e/4+r];return n}function y(t,e){return u(t,"HEAPF32",e||G)}function v(t,e){return u(t,"HEAPF32",e||z)}function w(){for(var t=0,e=0;e<arguments.length-1;e+=2)t+=arguments[e]*arguments[e+1];return t}function b(t,e,n){for(var r=Array(t.length),i=0;i<n;i++)for(var a=0;a<n;a++){for(var o=0,s=0;s<n;s++)o+=t[n*i+s]*e[n*s+a];r[i*n+a]=o}return r}function A(t,e){for(var n=b(e[0],e[1],t),r=2;r<e.length;)n=b(n,e[r],t),r++;return n}t.Color=function(e,n,r,i){return void 0===i&&(i=1),t.Color4f(l(e)/255,l(n)/255,l(r)/255,i)},t.ColorAsInt=function(t,e,n,r){return void 0===r&&(r=255),(l(r)<<24|l(t)<<16|l(e)<<8|l(n)<<0&268435455)>>>0},t.Color4f=function(t,e,n,r){return void 0===r&&(r=1),Float32Array.of(t,e,n,r)},Object.defineProperty(t,"TRANSPARENT",{get:function(){return t.Color4f(0,0,0,0)}}),Object.defineProperty(t,"BLACK",{get:function(){return t.Color4f(0,0,0,1)}}),Object.defineProperty(t,"WHITE",{get:function(){return t.Color4f(1,1,1,1)}}),Object.defineProperty(t,"RED",{get:function(){return t.Color4f(1,0,0,1)}}),Object.defineProperty(t,"GREEN",{get:function(){return t.Color4f(0,1,0,1)}}),Object.defineProperty(t,"BLUE",{get:function(){return t.Color4f(0,0,1,1)}}),Object.defineProperty(t,"YELLOW",{get:function(){return t.Color4f(1,1,0,1)}}),Object.defineProperty(t,"CYAN",{get:function(){return t.Color4f(0,1,1,1)}}),Object.defineProperty(t,"MAGENTA",{get:function(){return t.Color4f(1,0,1,1)}}),t.getColorComponents=function(t){return[Math.floor(255*t[0]),Math.floor(255*t[1]),Math.floor(255*t[2]),t[3]]},t.parseColorString=function(e,n){if((e=e.toLowerCase()).startsWith("#")){switch(n=255,e.length){case 9:n=parseInt(e.slice(7,9),16);case 7:var r=parseInt(e.slice(1,3),16),i=parseInt(e.slice(3,5),16),a=parseInt(e.slice(5,7),16);break;case 5:n=17*parseInt(e.slice(4,5),16);case 4:r=17*parseInt(e.slice(1,2),16),i=17*parseInt(e.slice(2,3),16),a=17*parseInt(e.slice(3,4),16)}return t.Color(r,i,a,n/255)}return e.startsWith("rgba")?(e=(e=e.slice(5,-1)).split(","),t.Color(+e[0],+e[1],+e[2],s(e[3]))):e.startsWith("rgb")?(e=(e=e.slice(4,-1)).split(","),t.Color(+e[0],+e[1],+e[2],s(e[3]))):e.startsWith("gray(")||e.startsWith("hsl")||!n||void 0===(e=n[e])?t.BLACK:e},t.multiplyByAlpha=function(t,e){return(t=t.slice())[3]=Math.max(0,Math.min(t[3]*e,1)),t},t.Malloc=function(e,n){var r=t._malloc(n*e.BYTES_PER_ELEMENT);return{_ck:!0,length:n,byteOffset:r,oe:null,subarray:function(t,e){return(t=this.toTypedArray().subarray(t,e))._ck=!0,t},toTypedArray:function(){return this.oe&&this.oe.length||(this.oe=new e(t.HEAPU8.buffer,r,n),this.oe._ck=!0),this.oe}}},t.Free=function(e){t._free(e.byteOffset),e.byteOffset=Y,e.toTypedArray=null,e.oe=null};var S,T,C,_,P,M,F,E,x,k,O=Y,I=Y,L=Y,G=Y,U=Y,W=Y,j=Y,N=Y,z=Y,H=Y,V=Float32Array.of(0,0,1),Y=0;t.onRuntimeInitialized=function(){function e(e,n,r,i,a,o){o||(o=4*i.width,i.colorType===t.ColorType.RGBA_F16?o*=2:i.colorType===t.ColorType.RGBA_F32&&(o*=4));var s=o*i.height,l=a?a.byteOffset:t._malloc(s);if(!e._readPixels(i,l,o,n,r))return a||t._free(l),null;if(a)return a.toTypedArray();switch(i.colorType){case t.ColorType.RGBA_8888:case t.ColorType.RGBA_F16:e=new Uint8Array(t.HEAPU8.buffer,l,s).slice();break;case t.ColorType.RGBA_F32:e=new Float32Array(t.HEAPU8.buffer,l,s).slice();break;default:return null}return t._free(l),e}C=t.Malloc(Float32Array,4),L=C.byteOffset,T=t.Malloc(Float32Array,16),I=T.byteOffset,S=t.Malloc(Float32Array,9),O=S.byteOffset,x=t.Malloc(Float32Array,12),z=x.byteOffset,k=t.Malloc(Float32Array,12),H=k.byteOffset,_=t.Malloc(Float32Array,4),G=_.byteOffset,P=t.Malloc(Float32Array,4),U=P.byteOffset,M=t.Malloc(Float32Array,3),W=M.byteOffset,F=t.Malloc(Float32Array,3),j=F.byteOffset,E=t.Malloc(Int32Array,4),N=E.byteOffset,t.ColorSpace.SRGB=t.ColorSpace._MakeSRGB(),t.ColorSpace.DISPLAY_P3=t.ColorSpace._MakeDisplayP3(),t.ColorSpace.ADOBE_RGB=t.ColorSpace._MakeAdobeRGB(),t.GlyphRunFlags={IsWhiteSpace:t._GlyphRunFlags_isWhiteSpace},t.Path.MakeFromCmds=function(e){var n=u(e,"HEAPF32"),r=t.Path._MakeFromCmds(n,e.length);return c(n,e),r},t.Path.MakeFromVerbsPointsWeights=function(e,n,r){var i=u(e,"HEAPU8"),a=u(n,"HEAPF32"),o=u(r,"HEAPF32"),s=t.Path._MakeFromVerbsPointsWeights(i,e.length,a,n.length,o,r&&r.length||0);return c(i,e),c(a,n),c(o,r),s},t.Path.prototype.addArc=function(t,e,n){return t=y(t),this._addArc(t,e,n),this},t.Path.prototype.addOval=function(t,e,n){return void 0===n&&(n=1),t=y(t),this._addOval(t,!!e,n),this},t.Path.prototype.addPath=function(){var t=Array.prototype.slice.call(arguments),e=t[0],n=!1;if("boolean"==typeof t[t.length-1]&&(n=t.pop()),1===t.length)this._addPath(e,1,0,0,0,1,0,0,0,1,n);else if(2===t.length)t=t[1],this._addPath(e,t[0],t[1],t[2],t[3],t[4],t[5],t[6]||0,t[7]||0,t[8]||1,n);else{if(7!==t.length&&10!==t.length)return null;this._addPath(e,t[1],t[2],t[3],t[4],t[5],t[6],t[7]||0,t[8]||0,t[9]||1,n)}return this},t.Path.prototype.addPoly=function(t,e){var n=u(t,"HEAPF32");return this._addPoly(n,t.length/2,e),c(n,t),this},t.Path.prototype.addRect=function(t,e){return t=y(t),this._addRect(t,!!e),this},t.Path.prototype.addRRect=function(t,e){return t=v(t),this._addRRect(t,!!e),this},t.Path.prototype.addVerbsPointsWeights=function(t,e,n){var r=u(t,"HEAPU8"),i=u(e,"HEAPF32"),a=u(n,"HEAPF32");this._addVerbsPointsWeights(r,t.length,i,e.length,a,n&&n.length||0),c(r,t),c(i,e),c(a,n)},t.Path.prototype.arc=function(e,n,r,i,a,o){return e=t.LTRBRect(e-r,n-r,e+r,n+r),a=(a-i)/Math.PI*180-360*!!o,(o=new t.Path).addArc(e,i/Math.PI*180,a),this.addPath(o,!0),o.delete(),this},t.Path.prototype.arcToOval=function(t,e,n,r){return t=y(t),this._arcToOval(t,e,n,r),this},t.Path.prototype.arcToRotated=function(t,e,n,r,i,a,o){return this._arcToRotated(t,e,n,!!r,!!i,a,o),this},t.Path.prototype.arcToTangent=function(t,e,n,r,i){return this._arcToTangent(t,e,n,r,i),this},t.Path.prototype.close=function(){return this._close(),this},t.Path.prototype.conicTo=function(t,e,n,r,i){return this._conicTo(t,e,n,r,i),this},t.Path.prototype.computeTightBounds=function(t){this._computeTightBounds(G);var e=_.toTypedArray();return t?(t.set(e),t):e.slice()},t.Path.prototype.cubicTo=function(t,e,n,r,i,a){return this._cubicTo(t,e,n,r,i,a),this},t.Path.prototype.dash=function(t,e,n){return this._dash(t,e,n)?this:null},t.Path.prototype.getBounds=function(t){this._getBounds(G);var e=_.toTypedArray();return t?(t.set(e),t):e.slice()},t.Path.prototype.lineTo=function(t,e){return this._lineTo(t,e),this},t.Path.prototype.moveTo=function(t,e){return this._moveTo(t,e),this},t.Path.prototype.offset=function(t,e){return this._transform(1,0,t,0,1,e,0,0,1),this},t.Path.prototype.quadTo=function(t,e,n,r){return this._quadTo(t,e,n,r),this},t.Path.prototype.rArcTo=function(t,e,n,r,i,a,o){return this._rArcTo(t,e,n,r,i,a,o),this},t.Path.prototype.rConicTo=function(t,e,n,r,i){return this._rConicTo(t,e,n,r,i),this},t.Path.prototype.rCubicTo=function(t,e,n,r,i,a){return this._rCubicTo(t,e,n,r,i,a),this},t.Path.prototype.rLineTo=function(t,e){return this._rLineTo(t,e),this},t.Path.prototype.rMoveTo=function(t,e){return this._rMoveTo(t,e),this},t.Path.prototype.rQuadTo=function(t,e,n,r){return this._rQuadTo(t,e,n,r),this},t.Path.prototype.stroke=function(e){return(e=e||{}).width=e.width||1,e.miter_limit=e.miter_limit||4,e.cap=e.cap||t.StrokeCap.Butt,e.join=e.join||t.StrokeJoin.Miter,e.precision=e.precision||1,this._stroke(e)?this:null},t.Path.prototype.transform=function(){if(1===arguments.length){var t=arguments[0];this._transform(t[0],t[1],t[2],t[3],t[4],t[5],t[6]||0,t[7]||0,t[8]||1)}else{if(6!==arguments.length&&9!==arguments.length)throw"transform expected to take 1 or 9 arguments. Got "+arguments.length;t=arguments,this._transform(t[0],t[1],t[2],t[3],t[4],t[5],t[6]||0,t[7]||0,t[8]||1)}return this},t.Path.prototype.trim=function(t,e,n){return this._trim(t,e,!!n)?this:null},t.Image.prototype.makeShaderCubic=function(t,e,n,r,i){return i=f(i),this._makeShaderCubic(t,e,n,r,i)},t.Image.prototype.makeShaderOptions=function(t,e,n,r,i){return i=f(i),this._makeShaderOptions(t,e,n,r,i)},t.Image.prototype.readPixels=function(t,n,r,i,a){return e(this,t,n,r,i,a)},t.Canvas.prototype.clear=function(e){t.Od(this.Md),e=p(e),this._clear(e)},t.Canvas.prototype.clipRRect=function(e,n,r){t.Od(this.Md),e=v(e),this._clipRRect(e,n,r)},t.Canvas.prototype.clipRect=function(e,n,r){t.Od(this.Md),e=y(e),this._clipRect(e,n,r)},t.Canvas.prototype.concat=function(e){t.Od(this.Md),e=function(t){if(!t)return Y;var e=T.toTypedArray();if(t.length){if(16!==t.length&&6!==t.length&&9!==t.length)throw"invalid matrix size";return 16===t.length?u(t,"HEAPF32",I):(e.fill(0),e[0]=t[0],e[1]=t[1],e[3]=t[2],e[4]=t[3],e[5]=t[4],e[7]=t[5],e[12]=t[6],e[13]=t[7],e[15]=t[8],6===t.length&&(e[12]=0,e[13]=0,e[15]=1),I)}return e[0]=t.m11,e[1]=t.m21,e[2]=t.m31,e[3]=t.m41,e[4]=t.m12,e[5]=t.m22,e[6]=t.m32,e[7]=t.m42,e[8]=t.m13,e[9]=t.m23,e[10]=t.m33,e[11]=t.m43,e[12]=t.m14,e[13]=t.m24,e[14]=t.m34,e[15]=t.m44,I}(e),this._concat(e)},t.Canvas.prototype.drawArc=function(e,n,r,i,a){t.Od(this.Md),e=y(e),this._drawArc(e,n,r,i,a)},t.Canvas.prototype.drawAtlas=function(e,n,r,i,a,s,l){if(e&&i&&n&&r&&n.length===r.length){t.Od(this.Md),a||(a=t.BlendMode.SrcOver);var h=u(n,"HEAPF32"),f=u(r,"HEAPF32"),d=r.length/4,p=u(o(s),"HEAPU32");if(l&&"B"in l&&"C"in l)this._drawAtlasCubic(e,f,h,p,d,a,l.B,l.C,i);else{let n=t.FilterMode.Linear,r=t.MipmapMode.None;l&&(n=l.filter,"mipmap"in l&&(r=l.mipmap)),this._drawAtlasOptions(e,f,h,p,d,a,n,r,i)}c(h,n),c(f,r),c(p,s)}},t.Canvas.prototype.drawCircle=function(e,n,r,i){t.Od(this.Md),this._drawCircle(e,n,r,i)},t.Canvas.prototype.drawColor=function(e,n){t.Od(this.Md),e=p(e),void 0!==n?this._drawColor(e,n):this._drawColor(e)},t.Canvas.prototype.drawColorInt=function(e,n){t.Od(this.Md),this._drawColorInt(e,n||t.BlendMode.SrcOver)},t.Canvas.prototype.drawColorComponents=function(e,n,r,i,a){t.Od(this.Md),e=m(e,n,r,i),void 0!==a?this._drawColor(e,a):this._drawColor(e)},t.Canvas.prototype.drawDRRect=function(e,n,r){t.Od(this.Md),e=v(e,z),n=v(n,H),this._drawDRRect(e,n,r)},t.Canvas.prototype.drawGlyphs=function(e,n,r,i,a,o){if(!(2*e.length<=n.length))throw"Not enough positions for the array of gyphs";t.Od(this.Md);const s=u(e,"HEAPU16"),l=u(n,"HEAPF32");this._drawGlyphs(e.length,s,l,r,i,a,o),c(l,n),c(s,e)},t.Canvas.prototype.drawImage=function(e,n,r,i){t.Od(this.Md),this._drawImage(e,n,r,i||null)},t.Canvas.prototype.drawImageCubic=function(e,n,r,i,a,o){t.Od(this.Md),this._drawImageCubic(e,n,r,i,a,o||null)},t.Canvas.prototype.drawImageOptions=function(e,n,r,i,a,o){t.Od(this.Md),this._drawImageOptions(e,n,r,i,a,o||null)},t.Canvas.prototype.drawImageNine=function(e,n,r,i,a){t.Od(this.Md),n=u(n,"HEAP32",N),r=y(r),this._drawImageNine(e,n,r,i,a||null)},t.Canvas.prototype.drawImageRect=function(e,n,r,i,a){t.Od(this.Md),y(n,G),y(r,U),this._drawImageRect(e,G,U,i,!!a)},t.Canvas.prototype.drawImageRectCubic=function(e,n,r,i,a,o){t.Od(this.Md),y(n,G),y(r,U),this._drawImageRectCubic(e,G,U,i,a,o||null)},t.Canvas.prototype.drawImageRectOptions=function(e,n,r,i,a,o){t.Od(this.Md),y(n,G),y(r,U),this._drawImageRectOptions(e,G,U,i,a,o||null)},t.Canvas.prototype.drawLine=function(e,n,r,i,a){t.Od(this.Md),this._drawLine(e,n,r,i,a)},t.Canvas.prototype.drawOval=function(e,n){t.Od(this.Md),e=y(e),this._drawOval(e,n)},t.Canvas.prototype.drawPaint=function(e){t.Od(this.Md),this._drawPaint(e)},t.Canvas.prototype.drawParagraph=function(e,n,r){t.Od(this.Md),this._drawParagraph(e,n,r)},t.Canvas.prototype.drawPatch=function(e,n,r,i,a){if(24>e.length)throw"Need 12 cubic points";if(n&&4>n.length)throw"Need 4 colors";if(r&&8>r.length)throw"Need 4 shader coordinates";t.Od(this.Md);const s=u(e,"HEAPF32"),l=n?u(o(n),"HEAPU32"):Y,h=r?u(r,"HEAPF32"):Y;i||(i=t.BlendMode.Modulate),this._drawPatch(s,l,h,i,a),c(h,r),c(l,n),c(s,e)},t.Canvas.prototype.drawPath=function(e,n){t.Od(this.Md),this._drawPath(e,n)},t.Canvas.prototype.drawPicture=function(e){t.Od(this.Md),this._drawPicture(e)},t.Canvas.prototype.drawPoints=function(e,n,r){t.Od(this.Md);var i=u(n,"HEAPF32");this._drawPoints(e,i,n.length/2,r),c(i,n)},t.Canvas.prototype.drawRRect=function(e,n){t.Od(this.Md),e=v(e),this._drawRRect(e,n)},t.Canvas.prototype.drawRect=function(e,n){t.Od(this.Md),e=y(e),this._drawRect(e,n)},t.Canvas.prototype.drawRect4f=function(e,n,r,i,a){t.Od(this.Md),this._drawRect4f(e,n,r,i,a)},t.Canvas.prototype.drawShadow=function(e,n,r,i,a,o,s){t.Od(this.Md);var l=u(a,"HEAPF32"),h=u(o,"HEAPF32");n=u(n,"HEAPF32",W),r=u(r,"HEAPF32",j),this._drawShadow(e,n,r,i,l,h,s),c(l,a),c(h,o)},t.getShadowLocalBounds=function(t,e,n,r,i,a,o){return t=f(t),n=u(n,"HEAPF32",W),r=u(r,"HEAPF32",j),this._getShadowLocalBounds(t,e,n,r,i,a,G)?(e=_.toTypedArray(),o?(o.set(e),o):e.slice()):null},t.Canvas.prototype.drawTextBlob=function(e,n,r,i){t.Od(this.Md),this._drawTextBlob(e,n,r,i)},t.Canvas.prototype.drawVertices=function(e,n,r){t.Od(this.Md),this._drawVertices(e,n,r)},t.Canvas.prototype.getLocalToDevice=function(){return this._getLocalToDevice(I),d(I)},t.Canvas.prototype.findMarkedCTM=function(t){return this._findMarkedCTM(t,I)?d(I):null},t.Canvas.prototype.getTotalMatrix=function(){this._getTotalMatrix(O);for(var e=Array(9),n=0;9>n;n++)e[n]=t.HEAPF32[O/4+n];return e},t.Canvas.prototype.makeSurface=function(t){return(t=this._makeSurface(t)).Md=this.Md,t},t.Canvas.prototype.readPixels=function(n,r,i,a,o){return t.Od(this.Md),e(this,n,r,i,a,o)},t.Canvas.prototype.saveLayer=function(t,e,n,r){return e=y(e),this._saveLayer(t||null,e,n||null,r||0)},t.Canvas.prototype.writePixels=function(e,n,r,i,a,o,s,l){if(e.byteLength%(n*r))throw"pixels length must be a multiple of the srcWidth * srcHeight";t.Od(this.Md);var h=e.byteLength/(n*r);o=o||t.AlphaType.Unpremul,s=s||t.ColorType.RGBA_8888,l=l||t.ColorSpace.SRGB;var f=h*n;return h=u(e,"HEAPU8"),n=this._writePixels({width:n,height:r,colorType:s,alphaType:o,colorSpace:l},h,f,i,a),c(h,e),n},t.ColorFilter.MakeBlend=function(e,n){return e=p(e),t.ColorFilter._MakeBlend(e,n)},t.ColorFilter.MakeMatrix=function(e){if(!e||20!==e.length)throw"invalid color matrix";var n=u(e,"HEAPF32"),r=t.ColorFilter._makeMatrix(n);return c(n,e),r},t.ContourMeasure.prototype.getPosTan=function(t,e){return this._getPosTan(t,G),t=_.toTypedArray(),e?(e.set(t),e):t.slice()},t.ImageFilter.MakeMatrixTransform=function(e,n,r){if(e=f(e),"B"in n&&"C"in n)return t.ImageFilter._MakeMatrixTransformCubic(e,n.xg,n.yg,r);const i=n.filter;let a=t.MipmapMode.None;return"mipmap"in n&&(a=n.mipmap),t.ImageFilter._MakeMatrixTransformOptions(e,i,a,r)},t.Paint.prototype.getColor=function(){return this._getColor(L),g(L)},t.Paint.prototype.setColor=function(t,e){e=e||null,t=p(t),this._setColor(t,e)},t.Paint.prototype.setColorComponents=function(t,e,n,r,i){i=i||null,t=m(t,e,n,r),this._setColor(t,i)},t.Path.prototype.getPoint=function(t,e){return this._getPoint(t,G),t=_.toTypedArray(),e?(e[0]=t[0],e[1]=t[1],e):t.slice(0,2)},t.PictureRecorder.prototype.beginRecording=function(t){return t=y(t),this._beginRecording(t)},t.Surface.prototype.getCanvas=function(){var t=this._getCanvas();return t.Md=this.Md,t},t.Surface.prototype.makeImageSnapshot=function(e){return t.Od(this.Md),e=u(e,"HEAP32",N),this._makeImageSnapshot(e)},t.Surface.prototype.makeSurface=function(e){return t.Od(this.Md),(e=this._makeSurface(e)).Md=this.Md,e},t.Surface.prototype.requestAnimationFrame=function(e,n){this.Ge||(this.Ge=this.getCanvas()),requestAnimationFrame(function(){t.Od(this.Md),e(this.Ge),this.flush(n)}.bind(this))},t.Surface.prototype.drawOnce=function(e,n){this.Ge||(this.Ge=this.getCanvas()),requestAnimationFrame(function(){t.Od(this.Md),e(this.Ge),this.flush(n),this.dispose()}.bind(this))},t.PathEffect.MakeDash=function(e,n){if(n||(n=0),!e.length||1==e.length%2)throw"Intervals array must have even length";var r=u(e,"HEAPF32");return n=t.PathEffect._MakeDash(r,e.length,n),c(r,e),n},t.Shader.MakeColor=function(e,n){return n=n||null,e=p(e),t.Shader._MakeColor(e,n)},t.Shader.Blend=t.Shader.MakeBlend,t.Shader.Color=t.Shader.MakeColor,t.Shader.MakeLinearGradient=function(e,n,r,i,a,o,s,l){l=l||null;var d=h(r),p=u(i,"HEAPF32");s=s||0,o=f(o);var m=_.toTypedArray();return m.set(e),m.set(n,2),e=t.Shader._MakeLinearGradient(G,d.ce,d.Ke,p,d.count,a,s,o,l),c(d.ce,r),i&&c(p,i),e},t.Shader.MakeRadialGradient=function(e,n,r,i,a,o,s,l){l=l||null;var d=h(r),p=u(i,"HEAPF32");return s=s||0,o=f(o),e=t.Shader._MakeRadialGradient(e[0],e[1],n,d.ce,d.Ke,p,d.count,a,s,o,l),c(d.ce,r),i&&c(p,i),e},t.Shader.MakeSweepGradient=function(e,n,r,i,a,o,s,l,d,p){p=p||null;var m=h(r),g=u(i,"HEAPF32");return s=s||0,l=l||0,d=d||360,o=f(o),e=t.Shader._MakeSweepGradient(e,n,m.ce,m.Ke,g,m.count,a,l,d,s,o,p),c(m.ce,r),i&&c(g,i),e},t.Shader.MakeTwoPointConicalGradient=function(e,n,r,i,a,o,s,l,d,p){p=p||null;var m=h(a),g=u(o,"HEAPF32");d=d||0,l=f(l);var y=_.toTypedArray();return y.set(e),y.set(r,2),e=t.Shader._MakeTwoPointConicalGradient(G,n,i,m.ce,m.Ke,g,m.count,s,d,l,p),c(m.ce,a),o&&c(g,o),e},t.Vertices.prototype.bounds=function(t){this._bounds(G);var e=_.toTypedArray();return t?(t.set(e),t):e.slice()},t.Vd&&t.Vd.forEach((function(t){t()}))},t.computeTonalColors=function(t){var e=u(t.ambient,"HEAPF32"),n=u(t.spot,"HEAPF32");this._computeTonalColors(e,n);var r={ambient:g(e),spot:g(n)};return c(e,t.ambient),c(n,t.spot),r},t.LTRBRect=function(t,e,n,r){return Float32Array.of(t,e,n,r)},t.XYWHRect=function(t,e,n,r){return Float32Array.of(t,e,t+n,e+r)},t.LTRBiRect=function(t,e,n,r){return Int32Array.of(t,e,n,r)},t.XYWHiRect=function(t,e,n,r){return Int32Array.of(t,e,t+n,e+r)},t.RRectXY=function(t,e,n){return Float32Array.of(t[0],t[1],t[2],t[3],e,n,e,n,e,n,e,n)},t.MakeAnimatedImageFromEncoded=function(e){e=new Uint8Array(e);var n=t._malloc(e.byteLength);return t.HEAPU8.set(e,n),(e=t._decodeAnimatedImage(n,e.byteLength))?e:null},t.MakeImageFromEncoded=function(e){e=new Uint8Array(e);var n=t._malloc(e.byteLength);return t.HEAPU8.set(e,n),(e=t._decodeImage(n,e.byteLength))?e:null};var q=null;t.MakeImageFromCanvasImageSource=function(e){var n=e.width,r=e.height;q||(q=document.createElement("canvas")),q.width=n,q.height=r;var i=q.getContext("2d");return i.drawImage(e,0,0),e=i.getImageData(0,0,n,r),t.MakeImage({width:n,height:r,alphaType:t.AlphaType.Unpremul,colorType:t.ColorType.RGBA_8888,colorSpace:t.ColorSpace.SRGB},e.data,4*n)},t.MakeImage=function(e,n,r){var i=t._malloc(n.length);return t.HEAPU8.set(n,i),t._MakeImage(e,i,n.length,r)},t.MakeVertices=function(e,n,r,i,a,s){var l=a&&a.length||0,c=0;return r&&r.length&&(c|=1),i&&i.length&&(c|=2),void 0===s||s||(c|=4),u(n,"HEAPF32",(e=new t._VerticesBuilder(e,n.length/2,l,c)).positions()),e.texCoords()&&u(r,"HEAPF32",e.texCoords()),e.colors()&&u(o(i),"HEAPU32",e.colors()),e.indices()&&u(a,"HEAPU16",e.indices()),e.detach()},t.Matrix={},t.Matrix.identity=function(){return r(3)},t.Matrix.invert=function(t){var e=t[0]*t[4]*t[8]+t[1]*t[5]*t[6]+t[2]*t[3]*t[7]-t[2]*t[4]*t[6]-t[1]*t[3]*t[8]-t[0]*t[5]*t[7];return e?[(t[4]*t[8]-t[5]*t[7])/e,(t[2]*t[7]-t[1]*t[8])/e,(t[1]*t[5]-t[2]*t[4])/e,(t[5]*t[6]-t[3]*t[8])/e,(t[0]*t[8]-t[2]*t[6])/e,(t[2]*t[3]-t[0]*t[5])/e,(t[3]*t[7]-t[4]*t[6])/e,(t[1]*t[6]-t[0]*t[7])/e,(t[0]*t[4]-t[1]*t[3])/e]:null},t.Matrix.mapPoints=function(t,e){for(var n=0;n<e.length;n+=2){var r=e[n],i=e[n+1],a=t[6]*r+t[7]*i+t[8],o=t[3]*r+t[4]*i+t[5];e[n]=(t[0]*r+t[1]*i+t[2])/a,e[n+1]=o/a}return e},t.Matrix.multiply=function(){return A(3,arguments)},t.Matrix.rotated=function(t,e,n){e=e||0,n=n||0;var r=Math.sin(t);return[t=Math.cos(t),-r,w(r,n,1-t,e),r,t,w(-r,e,1-t,n),0,0,1]},t.Matrix.scaled=function(t,e,i,a){i=i||0,a=a||0;var o=n([t,e],r(3),3,0,1);return n([i-t*i,a-e*a],o,3,2,0)},t.Matrix.skewed=function(t,e,i,a){i=i||0,a=a||0;var o=n([t,e],r(3),3,1,-1);return n([-t*i,-e*a],o,3,2,0)},t.Matrix.translated=function(t,e){return n(arguments,r(3),3,2,0)},t.Vector={},t.Vector.dot=function(t,e){return t.map((function(t,n){return t*e[n]})).reduce((function(t,e){return t+e}))},t.Vector.lengthSquared=function(e){return t.Vector.dot(e,e)},t.Vector.length=function(e){return Math.sqrt(t.Vector.lengthSquared(e))},t.Vector.mulScalar=function(t,e){return t.map((function(t){return t*e}))},t.Vector.add=function(t,e){return t.map((function(t,n){return t+e[n]}))},t.Vector.sub=function(t,e){return t.map((function(t,n){return t-e[n]}))},t.Vector.dist=function(e,n){return t.Vector.length(t.Vector.sub(e,n))},t.Vector.normalize=function(e){return t.Vector.mulScalar(e,1/t.Vector.length(e))},t.Vector.cross=function(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]},t.M44={},t.M44.identity=function(){return r(4)},t.M44.translated=function(t){return n(t,r(4),4,3,0)},t.M44.scaled=function(t){return n(t,r(4),4,0,1)},t.M44.rotated=function(e,n){return t.M44.rotatedUnitSinCos(t.Vector.normalize(e),Math.sin(n),Math.cos(n))},t.M44.rotatedUnitSinCos=function(t,e,n){var r=t[0],i=t[1],a=1-n;return[a*r*r+n,a*r*i-e*(t=t[2]),a*r*t+e*i,0,a*r*i+e*t,a*i*i+n,a*i*t-e*r,0,a*r*t-e*i,a*i*t+e*r,a*t*t+n,0,0,0,0,1]},t.M44.lookat=function(e,r,i){r=t.Vector.normalize(t.Vector.sub(r,e)),i=t.Vector.normalize(i),i=t.Vector.normalize(t.Vector.cross(r,i));var a=t.M44.identity();return n(i,a,4,0,0),n(t.Vector.cross(i,r),a,4,1,0),n(t.Vector.mulScalar(r,-1),a,4,2,0),n(e,a,4,3,0),null===(e=t.M44.invert(a))?t.M44.identity():e},t.M44.perspective=function(t,e,n){var r=1/(e-t);return n/=2,[n=Math.cos(n)/Math.sin(n),0,0,0,0,n,0,0,0,0,(e+t)*r,2*e*t*r,0,0,-1,1]},t.M44.rc=function(t,e,n){return t[4*e+n]},t.M44.multiply=function(){return A(4,arguments)},t.M44.invert=function(t){var e=t[0],n=t[4],r=t[8],i=t[12],a=t[1],o=t[5],s=t[9],l=t[13],c=t[2],u=t[6],h=t[10],f=t[14],d=t[3],p=t[7],m=t[11],g=e*o-n*a,y=e*s-r*a,v=e*l-i*a,w=n*s-r*o,b=n*l-i*o,A=r*l-i*s,S=c*p-u*d,T=c*m-h*d,C=c*(t=t[15])-f*d,_=u*m-h*p,P=u*t-f*p,M=h*t-f*m,F=g*M-y*P+v*_+w*C-b*T+A*S,E=1/F;return 0===F||1/0===E?null:(e=[o*(M*=E)-s*(P*=E)+l*(_*=E),s*(C*=E)-a*M-l*(T*=E),a*P-o*C+l*(S*=E),o*T-a*_-s*S,r*P-n*M-i*_,e*M-r*C+i*T,n*C-e*P-i*S,e*_-n*T+r*S,p*(A*=E)-m*(b*=E)+t*(w*=E),m*(v*=E)-d*A-t*(y*=E),d*b-p*v+t*(g*=E),p*y-d*w-m*g,h*b-u*A-f*w,c*A-h*v+f*y,u*v-c*b-f*g,c*w-u*y+h*g]).every((function(t){return!isNaN(t)&&1/0!==t&&-1/0!==t}))?e:null},t.M44.transpose=function(t){return[t[0],t[4],t[8],t[12],t[1],t[5],t[9],t[13],t[2],t[6],t[10],t[14],t[3],t[7],t[11],t[15]]},t.M44.mustInvert=function(e){if(null===(e=t.M44.invert(e)))throw"Matrix not invertible";return e},t.M44.setupCamera=function(e,n,r){var i=t.M44.lookat(r.eye,r.coa,r.up);return r=t.M44.perspective(r.near,r.far,r.angle),n=[(e[2]-e[0])/2,(e[3]-e[1])/2,n],e=t.M44.multiply(t.M44.translated([(e[0]+e[2])/2,(e[1]+e[3])/2,0]),t.M44.scaled(n)),t.M44.multiply(e,r,i,t.M44.mustInvert(e))},t.ColorMatrix={},t.ColorMatrix.identity=function(){var t=new Float32Array(20);return t[0]=1,t[6]=1,t[12]=1,t[18]=1,t},t.ColorMatrix.scaled=function(t,e,n,r){var i=new Float32Array(20);return i[0]=t,i[6]=e,i[12]=n,i[18]=r,i};var $,X=[[6,7,11,12],[0,10,2,12],[0,1,5,6]];t.ColorMatrix.rotated=function(e,n,r){var i=t.ColorMatrix.identity();return i[(e=X[e])[0]]=r,i[e[1]]=n,i[e[2]]=-n,i[e[3]]=r,i},t.ColorMatrix.postTranslate=function(t,e,n,r,i){return t[4]+=e,t[9]+=n,t[14]+=r,t[19]+=i,t},t.ColorMatrix.concat=function(t,e){for(var n=new Float32Array(20),r=0,i=0;20>i;i+=5){for(var a=0;4>a;a++)n[r++]=t[i]*e[a]+t[i+1]*e[a+5]+t[i+2]*e[a+10]+t[i+3]*e[a+15];n[r++]=t[i]*e[4]+t[i+1]*e[9]+t[i+2]*e[14]+t[i+3]*e[19]+t[i+4]}return n},($=e).Vd=$.Vd||[],$.Vd.push((function(){function t(t){if(!t||!t.length)return[];for(var e=[],n=0;n<t.length;n+=5){var r=$.LTRBRect(t[n],t[n+1],t[n+2],t[n+3]);r.direction=0===t[n+4]?$.TextDirection.RTL:$.TextDirection.LTR,e.push(r)}return $._free(t.byteOffset),e}function e(t){return void 0===(t=t||{}).weight&&(t.weight=$.FontWeight.Normal),t.width=t.width||$.FontWidth.Normal,t.slant=t.slant||$.FontSlant.Upright,t}function n(t){if(!t||!t.length)return Y;for(var e=[],n=0;n<t.length;n++){var i=r(t[n]);e.push(i)}return u(e,"HEAPU32")}function r(t){if(o[t])return o[t];var e=B(t)+1,n=$._malloc(e);return R(t,D,n,e),o[t]=n}function i(t){if(t._colorPtr=p(t.color),t._foregroundColorPtr=Y,t._backgroundColorPtr=Y,t._decorationColorPtr=Y,t.foregroundColor&&(t._foregroundColorPtr=p(t.foregroundColor,s)),t.backgroundColor&&(t._backgroundColorPtr=p(t.backgroundColor,l)),t.decorationColor&&(t._decorationColorPtr=p(t.decorationColor,c)),Array.isArray(t.fontFamilies)&&t.fontFamilies.length?(t._fontFamiliesPtr=n(t.fontFamilies),t._fontFamiliesLen=t.fontFamilies.length):(t._fontFamiliesPtr=Y,t._fontFamiliesLen=0),t.locale){var e=t.locale;t._localePtr=r(e),t._localeLen=B(e)+1}else t._localePtr=Y,t._localeLen=0;if(Array.isArray(t.shadows)&&t.shadows.length){var i=(e=t.shadows).map((function(t){return t.color||$.BLACK})),a=e.map((function(t){return t.blurRadius||0}));t._shadowLen=e.length;for(var o=$._malloc(8*e.length),f=o/4,d=0;d<e.length;d++){var m=e[d].offset||[0,0];$.HEAPF32[f]=m[0],$.HEAPF32[f+1]=m[1],f+=2}t._shadowColorsPtr=h(i).ce,t._shadowOffsetsPtr=o,t._shadowBlurRadiiPtr=u(a,"HEAPF32")}else t._shadowLen=0,t._shadowColorsPtr=Y,t._shadowOffsetsPtr=Y,t._shadowBlurRadiiPtr=Y;Array.isArray(t.fontFeatures)&&t.fontFeatures.length?(i=(e=t.fontFeatures).map((function(t){return t.name})),a=e.map((function(t){return t.value})),t._fontFeatureLen=e.length,t._fontFeatureNamesPtr=n(i),t._fontFeatureValuesPtr=u(a,"HEAPU32")):(t._fontFeatureLen=0,t._fontFeatureNamesPtr=Y,t._fontFeatureValuesPtr=Y)}function a(t){$._free(t._fontFamiliesPtr),$._free(t._shadowColorsPtr),$._free(t._shadowOffsetsPtr),$._free(t._shadowBlurRadiiPtr),$._free(t._fontFeatureNamesPtr),$._free(t._fontFeatureValuesPtr)}$.Paragraph.prototype.getRectsForRange=function(e,n,r,i){return t(e=this._getRectsForRange(e,n,r,i))},$.Paragraph.prototype.getRectsForPlaceholders=function(){return t(this._getRectsForPlaceholders())},$.TypefaceFontProvider.prototype.registerFont=function(t,e){if(!(t=$.Typeface.MakeFreeTypeFaceFromData(t)))return null;e=r(e),this._registerFont(t,e)},$.ParagraphStyle=function(t){if(t.disableHinting=t.disableHinting||!1,t.ellipsis){var i=t.ellipsis;t._ellipsisPtr=r(i),t._ellipsisLen=B(i)+1}else t._ellipsisPtr=Y,t._ellipsisLen=0;return t.heightMultiplier=t.heightMultiplier||0,t.maxLines=t.maxLines||0,(i=(i=t.strutStyle)||{}).strutEnabled=i.strutEnabled||!1,i.strutEnabled&&Array.isArray(i.fontFamilies)&&i.fontFamilies.length?(i._fontFamiliesPtr=n(i.fontFamilies),i._fontFamiliesLen=i.fontFamilies.length):(i._fontFamiliesPtr=Y,i._fontFamiliesLen=0),i.fontStyle=e(i.fontStyle),i.fontSize=i.fontSize||0,i.heightMultiplier=i.heightMultiplier||0,i.halfLeading=i.halfLeading||!1,i.leading=i.leading||0,i.forceStrutHeight=i.forceStrutHeight||!1,t.strutStyle=i,t.textAlign=t.textAlign||$.TextAlign.Start,t.textDirection=t.textDirection||$.TextDirection.LTR,t.textHeightBehavior=t.textHeightBehavior||$.TextHeightBehavior.All,t.textStyle=$.TextStyle(t.textStyle),t},$.TextStyle=function(t){return t.color||(t.color=$.BLACK),t.decoration=t.decoration||0,t.decorationThickness=t.decorationThickness||0,t.decorationStyle=t.decorationStyle||$.DecorationStyle.Solid,t.textBaseline=t.textBaseline||$.TextBaseline.Alphabetic,t.fontSize=t.fontSize||0,t.letterSpacing=t.letterSpacing||0,t.wordSpacing=t.wordSpacing||0,t.heightMultiplier=t.heightMultiplier||0,t.halfLeading=t.halfLeading||!1,t.fontStyle=e(t.fontStyle),t};var o={},s=$._malloc(16),l=$._malloc(16),c=$._malloc(16);$.ParagraphBuilder.Make=function(t,e){return i(t.textStyle),e=$.ParagraphBuilder._Make(t,e),a(t.textStyle),e},$.ParagraphBuilder.MakeFromFontProvider=function(t,e){return i(t.textStyle),e=$.ParagraphBuilder._MakeFromFontProvider(t,e),a(t.textStyle),e},$.ParagraphBuilder.ShapeText=function(t,e,n){let r=0;for(const t of e)r+=t.length;if(r!==t.length)throw"Accumulated block lengths must equal text.length";return $.ParagraphBuilder._ShapeText(t,e,n)},$.ParagraphBuilder.prototype.pushStyle=function(t){i(t),this._pushStyle(t),a(t)},$.ParagraphBuilder.prototype.pushPaintStyle=function(t,e,n){i(t),this._pushPaintStyle(t,e,n),a(t)},$.ParagraphBuilder.prototype.addPlaceholder=function(t,e,n,r,i){n=n||$.PlaceholderAlignment.Baseline,r=r||$.TextBaseline.Alphabetic,this._addPlaceholder(t||0,e||0,n,r,i||0)}})),t.Vd=t.Vd||[],t.Vd.push((function(){t.Path.prototype.op=function(t,e){return this._op(t,e)?this:null},t.Path.prototype.simplify=function(){return this._simplify()?this:null}})),t.Vd=t.Vd||[],t.Vd.push((function(){t.Canvas.prototype.drawText=function(e,n,r,i,a){var o=B(e),s=t._malloc(o+1);R(e,D,s,o+1),this._drawSimpleText(s,o,n,r,a,i),t._free(s)},t.Font.prototype.getGlyphBounds=function(e,n,r){var i=u(e,"HEAPU16"),a=t._malloc(16*e.length);return this._getGlyphWidthBounds(i,e.length,Y,a,n||null),n=new Float32Array(t.HEAPU8.buffer,a,4*e.length),c(i,e),r?(r.set(n),t._free(a),r):(e=Float32Array.from(n),t._free(a),e)},t.Font.prototype.getGlyphIDs=function(e,n,r){n||(n=e.length);var i=B(e)+1,a=t._malloc(i);return R(e,D,a,i),e=t._malloc(2*n),n=this._getGlyphIDs(a,i-1,n,e),t._free(a),0>n?(t._free(e),null):(a=new Uint16Array(t.HEAPU8.buffer,e,n),r?(r.set(a),t._free(e),r):(r=Uint16Array.from(a),t._free(e),r))},t.Font.prototype.getGlyphIntercepts=function(t,e,n,r){var i=u(t,"HEAPU16"),a=u(e,"HEAPF32");return this._getGlyphIntercepts(i,t.length,!(t&&t._ck),a,e.length,!(e&&e._ck),n,r)},t.Font.prototype.getGlyphWidths=function(e,n,r){var i=u(e,"HEAPU16"),a=t._malloc(4*e.length);return this._getGlyphWidthBounds(i,e.length,a,Y,n||null),n=new Float32Array(t.HEAPU8.buffer,a,e.length),c(i,e),r?(r.set(n),t._free(a),r):(e=Float32Array.from(n),t._free(a),e)},t.FontMgr.FromData=function(){if(!arguments.length)return null;var e=arguments;if(1===e.length&&Array.isArray(e[0])&&(e=arguments[0]),!e.length)return null;for(var n=[],r=[],i=0;i<e.length;i++){var a=new Uint8Array(e[i]),o=u(a,"HEAPU8");n.push(o),r.push(a.byteLength)}return n=u(n,"HEAPU32"),r=u(r,"HEAPU32"),e=t.FontMgr._fromData(n,r,e.length),t._free(n),t._free(r),e},t.Typeface.MakeFreeTypeFaceFromData=function(e){var n=u(e=new Uint8Array(e),"HEAPU8");return(e=t.Typeface._MakeFreeTypeFaceFromData(n,e.byteLength))?e:null},t.Typeface.prototype.getGlyphIDs=function(e,n,r){n||(n=e.length);var i=B(e)+1,a=t._malloc(i);return R(e,D,a,i),e=t._malloc(2*n),n=this._getGlyphIDs(a,i-1,n,e),t._free(a),0>n?(t._free(e),null):(a=new Uint16Array(t.HEAPU8.buffer,e,n),r?(r.set(a),t._free(e),r):(r=Uint16Array.from(a),t._free(e),r))},t.TextBlob.MakeOnPath=function(e,n,r,i){if(e&&e.length&&n&&n.countPoints()){if(1===n.countPoints())return this.MakeFromText(e,r);i||(i=0);var a=r.getGlyphIDs(e);a=r.getGlyphWidths(a);for(var o=[],s=(n=new t.ContourMeasureIter(n,!1,1)).next(),l=new Float32Array(4),c=0;c<e.length&&s;c++){var u=a[c];if((i+=u/2)>s.length()){if(s.delete(),!(s=n.next())){e=e.substring(0,c);break}i=u/2}s.getPosTan(i,l);var h=l[2],f=l[3];o.push(h,f,l[0]-u/2*h,l[1]-u/2*f),i+=u/2}return e=this.MakeFromRSXform(e,o,r),s&&s.delete(),n.delete(),e}},t.TextBlob.MakeFromRSXform=function(e,n,r){var i=B(e)+1,a=t._malloc(i);return R(e,D,a,i),e=u(n,"HEAPF32"),r=t.TextBlob._MakeFromRSXform(a,i-1,e,r),t._free(a),r||null},t.TextBlob.MakeFromRSXformGlyphs=function(e,n,r){var i=u(e,"HEAPU16");return n=u(n,"HEAPF32"),r=t.TextBlob._MakeFromRSXformGlyphs(i,2*e.length,n,r),c(i,e),r||null},t.TextBlob.MakeFromGlyphs=function(e,n){var r=u(e,"HEAPU16");return n=t.TextBlob._MakeFromGlyphs(r,2*e.length,n),c(r,e),n||null},t.TextBlob.MakeFromText=function(e,n){var r=B(e)+1,i=t._malloc(r);return R(e,D,i,r),e=t.TextBlob._MakeFromText(i,r-1,n),t._free(i),e||null},t.MallocGlyphIDs=function(e){return t.Malloc(Uint16Array,e)}})),t.Vd=t.Vd||[],t.Vd.push((function(){t.MakePicture=function(e){e=new Uint8Array(e);var n=t._malloc(e.byteLength);return t.HEAPU8.set(e,n),(e=t._MakePicture(n,e.byteLength))?e:null}})),function(){function e(t){for(var e=0;e<t.length;e++)if(void 0!==t[e]&&!Number.isFinite(t[e]))return!1;return!0}function n(e){var n=t.getColorComponents(e);e=n[0];var r=n[1],i=n[2];return 1===(n=n[3])?(e=e.toString(16).toLowerCase(),r=r.toString(16).toLowerCase(),i=i.toString(16).toLowerCase(),"#"+(e=1===e.length?"0"+e:e)+(r=1===r.length?"0"+r:r)+(i=1===i.length?"0"+i:i)):"rgba("+e+", "+r+", "+i+", "+(n=0===n||1===n?n:n.toFixed(8))+")"}function r(e){return t.parseColorString(e,v)}function a(t){if(!(t=w.exec(t)))return null;var e=parseFloat(t[4]),n=16;switch(t[5]){case"em":case"rem":case"pc":n=16*e;break;case"pt":n=4*e/3;break;case"px":n=e;break;case"in":n=96*e;break;case"cm":n=96*e/2.54;break;case"mm":n=96/25.4*e;break;case"q":n=96/25.4/4*e;break;case"%":n=16/75*e}return{style:t[1],variant:t[2],weight:t[3],sizePx:n,family:t[6].trim()}}function o(o){this.Nd=o,this.Qd=new t.Paint,this.Qd.setAntiAlias(!0),this.Qd.setStrokeMiter(10),this.Qd.setStrokeCap(t.StrokeCap.Butt),this.Qd.setStrokeJoin(t.StrokeJoin.Miter),this.Pe="10px monospace",this.re=new t.Font(null,10),this.re.setSubpixel(!0),this.be=this.he=t.BLACK,this.ue=0,this.Ie=t.TRANSPARENT,this.we=this.ve=0,this.Je=this.je=1,this.He=0,this.te=[],this.Pd=t.BlendMode.SrcOver,this.Qd.setStrokeWidth(this.Je),this.Qd.setBlendMode(this.Pd),this.Td=new t.Path,this.Ud=t.Matrix.identity(),this.kf=[],this.Ae=[],this.me=function(){this.Td.delete(),this.Qd.delete(),this.re.delete(),this.Ae.forEach((function(t){t.me()}))},Object.defineProperty(this,"currentTransform",{enumerable:!0,get:function(){return{a:this.Ud[0],c:this.Ud[1],e:this.Ud[2],b:this.Ud[3],d:this.Ud[4],f:this.Ud[5]}},set:function(t){t.a&&this.setTransform(t.a,t.b,t.c,t.d,t.e,t.f)}}),Object.defineProperty(this,"fillStyle",{enumerable:!0,get:function(){return i(this.be)?n(this.be):this.be},set:function(t){"string"==typeof t?this.be=r(t):t.se&&(this.be=t)}}),Object.defineProperty(this,"font",{enumerable:!0,get:function(){return this.Pe},set:function(t){var e=a(t),n=e.family;e.typeface=b[n]?b[n][(e.style||"normal")+"|"+(e.variant||"normal")+"|"+(e.weight||"normal")]||b[n]["*"]:null,e&&(this.re.setSize(e.sizePx),this.re.setTypeface(e.typeface),this.Pe=t)}}),Object.defineProperty(this,"globalAlpha",{enumerable:!0,get:function(){return this.je},set:function(t){!isFinite(t)||0>t||1<t||(this.je=t)}}),Object.defineProperty(this,"globalCompositeOperation",{enumerable:!0,get:function(){switch(this.Pd){case t.BlendMode.SrcOver:return"source-over";case t.BlendMode.DstOver:return"destination-over";case t.BlendMode.Src:return"copy";case t.BlendMode.Dst:return"destination";case t.BlendMode.Clear:return"clear";case t.BlendMode.SrcIn:return"source-in";case t.BlendMode.DstIn:return"destination-in";case t.BlendMode.SrcOut:return"source-out";case t.BlendMode.DstOut:return"destination-out";case t.BlendMode.SrcATop:return"source-atop";case t.BlendMode.DstATop:return"destination-atop";case t.BlendMode.Xor:return"xor";case t.BlendMode.Plus:return"lighter";case t.BlendMode.Multiply:return"multiply";case t.BlendMode.Screen:return"screen";case t.BlendMode.Overlay:return"overlay";case t.BlendMode.Darken:return"darken";case t.BlendMode.Lighten:return"lighten";case t.BlendMode.ColorDodge:return"color-dodge";case t.BlendMode.ColorBurn:return"color-burn";case t.BlendMode.HardLight:return"hard-light";case t.BlendMode.SoftLight:return"soft-light";case t.BlendMode.Difference:return"difference";case t.BlendMode.Exclusion:return"exclusion";case t.BlendMode.Hue:return"hue";case t.BlendMode.Saturation:return"saturation";case t.BlendMode.Color:return"color";case t.BlendMode.Luminosity:return"luminosity"}},set:function(e){switch(e){case"source-over":this.Pd=t.BlendMode.SrcOver;break;case"destination-over":this.Pd=t.BlendMode.DstOver;break;case"copy":this.Pd=t.BlendMode.Src;break;case"destination":this.Pd=t.BlendMode.Dst;break;case"clear":this.Pd=t.BlendMode.Clear;break;case"source-in":this.Pd=t.BlendMode.SrcIn;break;case"destination-in":this.Pd=t.BlendMode.DstIn;break;case"source-out":this.Pd=t.BlendMode.SrcOut;break;case"destination-out":this.Pd=t.BlendMode.DstOut;break;case"source-atop":this.Pd=t.BlendMode.SrcATop;break;case"destination-atop":this.Pd=t.BlendMode.DstATop;break;case"xor":this.Pd=t.BlendMode.Xor;break;case"lighter":case"plus-lighter":this.Pd=t.BlendMode.Plus;break;case"plus-darker":throw"plus-darker is not supported";case"multiply":this.Pd=t.BlendMode.Multiply;break;case"screen":this.Pd=t.BlendMode.Screen;break;case"overlay":this.Pd=t.BlendMode.Overlay;break;case"darken":this.Pd=t.BlendMode.Darken;break;case"lighten":this.Pd=t.BlendMode.Lighten;break;case"color-dodge":this.Pd=t.BlendMode.ColorDodge;break;case"color-burn":this.Pd=t.BlendMode.ColorBurn;break;case"hard-light":this.Pd=t.BlendMode.HardLight;break;case"soft-light":this.Pd=t.BlendMode.SoftLight;break;case"difference":this.Pd=t.BlendMode.Difference;break;case"exclusion":this.Pd=t.BlendMode.Exclusion;break;case"hue":this.Pd=t.BlendMode.Hue;break;case"saturation":this.Pd=t.BlendMode.Saturation;break;case"color":this.Pd=t.BlendMode.Color;break;case"luminosity":this.Pd=t.BlendMode.Luminosity;break;default:return}this.Qd.setBlendMode(this.Pd)}}),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.Qd.getStrokeCap()){case t.StrokeCap.Butt:return"butt";case t.StrokeCap.Round:return"round";case t.StrokeCap.Square:return"square"}},set:function(e){switch(e){case"butt":this.Qd.setStrokeCap(t.StrokeCap.Butt);break;case"round":this.Qd.setStrokeCap(t.StrokeCap.Round);break;case"square":this.Qd.setStrokeCap(t.StrokeCap.Square)}}}),Object.defineProperty(this,"lineDashOffset",{enumerable:!0,get:function(){return this.He},set:function(t){isFinite(t)&&(this.He=t)}}),Object.defineProperty(this,"lineJoin",{enumerable:!0,get:function(){switch(this.Qd.getStrokeJoin()){case t.StrokeJoin.Miter:return"miter";case t.StrokeJoin.Round:return"round";case t.StrokeJoin.Bevel:return"bevel"}},set:function(e){switch(e){case"miter":this.Qd.setStrokeJoin(t.StrokeJoin.Miter);break;case"round":this.Qd.setStrokeJoin(t.StrokeJoin.Round);break;case"bevel":this.Qd.setStrokeJoin(t.StrokeJoin.Bevel)}}}),Object.defineProperty(this,"lineWidth",{enumerable:!0,get:function(){return this.Qd.getStrokeWidth()},set:function(t){0>=t||!t||(this.Je=t,this.Qd.setStrokeWidth(t))}}),Object.defineProperty(this,"miterLimit",{enumerable:!0,get:function(){return this.Qd.getStrokeMiter()},set:function(t){0>=t||!t||this.Qd.setStrokeMiter(t)}}),Object.defineProperty(this,"shadowBlur",{enumerable:!0,get:function(){return this.ue},set:function(t){0>t||!isFinite(t)||(this.ue=t)}}),Object.defineProperty(this,"shadowColor",{enumerable:!0,get:function(){return n(this.Ie)},set:function(t){this.Ie=r(t)}}),Object.defineProperty(this,"shadowOffsetX",{enumerable:!0,get:function(){return this.ve},set:function(t){isFinite(t)&&(this.ve=t)}}),Object.defineProperty(this,"shadowOffsetY",{enumerable:!0,get:function(){return this.we},set:function(t){isFinite(t)&&(this.we=t)}}),Object.defineProperty(this,"strokeStyle",{enumerable:!0,get:function(){return n(this.he)},set:function(t){"string"==typeof t?this.he=r(t):t.se&&(this.he=t)}}),this.arc=function(t,e,n,r,i,a){d(this.Td,t,e,n,n,0,r,i,a)},this.arcTo=function(t,e,n,r,i){u(this.Td,t,e,n,r,i)},this.beginPath=function(){this.Td.delete(),this.Td=new t.Path},this.bezierCurveTo=function(t,n,r,i,a,o){var s=this.Td;e([t,n,r,i,a,o])&&(s.isEmpty()&&s.moveTo(t,n),s.cubicTo(t,n,r,i,a,o))},this.clearRect=function(e,n,r,i){this.Qd.setStyle(t.PaintStyle.Fill),this.Qd.setBlendMode(t.BlendMode.Clear),this.Nd.drawRect(t.XYWHRect(e,n,r,i),this.Qd),this.Qd.setBlendMode(this.Pd)},this.clip=function(e,n){"string"==typeof e?(n=e,e=this.Td):e&&e.$e&&(e=e.Wd),e||(e=this.Td),e=e.copy(),n&&"evenodd"===n.toLowerCase()?e.setFillType(t.FillType.EvenOdd):e.setFillType(t.FillType.Winding),this.Nd.clipPath(e,t.ClipOp.Intersect,!0),e.delete()},this.closePath=function(){h(this.Td)},this.createImageData=function(){if(1===arguments.length){var t=arguments[0];return new l(new Uint8ClampedArray(4*t.width*t.height),t.width,t.height)}if(2===arguments.length){t=arguments[0];var e=arguments[1];return new l(new Uint8ClampedArray(4*t*e),t,e)}throw"createImageData expects 1 or 2 arguments, got "+arguments.length},this.createLinearGradient=function(t,n,r,i){if(e(arguments)){var a=new c(t,n,r,i);return this.Ae.push(a),a}},this.createPattern=function(t,e){return t=new g(t,e),this.Ae.push(t),t},this.createRadialGradient=function(t,n,r,i,a,o){if(e(arguments)){var s=new y(t,n,r,i,a,o);return this.Ae.push(s),s}},this.drawImage=function(e){var n=this.Oe();if(3===arguments.length||5===arguments.length)var r=t.XYWHRect(arguments[1],arguments[2],arguments[3]||e.width(),arguments[4]||e.height()),i=t.XYWHRect(0,0,e.width(),e.height());else{if(9!==arguments.length)throw"invalid number of args for drawImage, need 3, 5, or 9; got "+arguments.length;r=t.XYWHRect(arguments[5],arguments[6],arguments[7],arguments[8]),i=t.XYWHRect(arguments[1],arguments[2],arguments[3],arguments[4])}this.Nd.drawImageRect(e,i,r,n,!1),n.dispose()},this.ellipse=function(t,e,n,r,i,a,o,s){d(this.Td,t,e,n,r,i,a,o,s)},this.Oe=function(){var e=this.Qd.copy();if(e.setStyle(t.PaintStyle.Fill),i(this.be)){var n=t.multiplyByAlpha(this.be,this.je);e.setColor(n)}else n=this.be.se(this.Ud),e.setColor(t.Color(0,0,0,this.je)),e.setShader(n);return e.dispose=function(){this.delete()},e},this.fill=function(e,n){if("string"==typeof e?(n=e,e=this.Td):e&&e.$e&&(e=e.Wd),"evenodd"===n)this.Td.setFillType(t.FillType.EvenOdd);else{if("nonzero"!==n&&n)throw"invalid fill rule";this.Td.setFillType(t.FillType.Winding)}e||(e=this.Td),n=this.Oe();var r=this.xe(n);r&&(this.Nd.save(),this.pe(),this.Nd.drawPath(e,r),this.Nd.restore(),r.dispose()),this.Nd.drawPath(e,n),n.dispose()},this.fillRect=function(e,n,r,i){var a=this.Oe(),o=this.xe(a);o&&(this.Nd.save(),this.pe(),this.Nd.drawRect(t.XYWHRect(e,n,r,i),o),this.Nd.restore(),o.dispose()),this.Nd.drawRect(t.XYWHRect(e,n,r,i),a),a.dispose()},this.fillText=function(e,n,r){var i=this.Oe();e=t.TextBlob.MakeFromText(e,this.re);var a=this.xe(i);a&&(this.Nd.save(),this.pe(),this.Nd.drawTextBlob(e,n,r,a),this.Nd.restore(),a.dispose()),this.Nd.drawTextBlob(e,n,r,i),e.delete(),i.dispose()},this.getImageData=function(e,n,r,i){return(e=this.Nd.readPixels(e,n,{width:r,height:i,colorType:t.ColorType.RGBA_8888,alphaType:t.AlphaType.Unpremul,colorSpace:t.ColorSpace.SRGB}))?new l(new Uint8ClampedArray(e.buffer),r,i):null},this.getLineDash=function(){return this.te.slice()},this.lf=function(e){var n=t.Matrix.invert(this.Ud);return t.Matrix.mapPoints(n,e),e},this.isPointInPath=function(e,n,r){var i=arguments;if(3===i.length)var a=this.Td;else{if(4!==i.length)throw"invalid arg count, need 3 or 4, got "+i.length;a=i[0],e=i[1],n=i[2],r=i[3]}return!(!isFinite(e)||!isFinite(n))&&("nonzero"===(r=r||"nonzero")||"evenodd"===r)&&(e=(i=this.lf([e,n]))[0],n=i[1],a.setFillType("nonzero"===r?t.FillType.Winding:t.FillType.EvenOdd),a.contains(e,n))},this.isPointInStroke=function(e,n){var r=arguments;if(2===r.length)var i=this.Td;else{if(3!==r.length)throw"invalid arg count, need 2 or 3, got "+r.length;i=r[0],e=r[1],n=r[2]}return!(!isFinite(e)||!isFinite(n))&&(e=(r=this.lf([e,n]))[0],n=r[1],(i=i.copy()).setFillType(t.FillType.Winding),i.stroke({width:this.lineWidth,miter_limit:this.miterLimit,cap:this.Qd.getStrokeCap(),join:this.Qd.getStrokeJoin(),precision:.3}),r=i.contains(e,n),i.delete(),r)},this.lineTo=function(t,e){p(this.Td,t,e)},this.measureText=function(){throw Error("Clients wishing to properly measure text should use the Paragraph API")},this.moveTo=function(t,n){var r=this.Td;e([t,n])&&r.moveTo(t,n)},this.putImageData=function(n,r,i,a,o,s,l){if(e([r,i,a,o,s,l]))if(void 0===a)this.Nd.writePixels(n.data,n.width,n.height,r,i);else if(a=a||0,o=o||0,s=s||n.width,l=l||n.height,0>s&&(a+=s,s=Math.abs(s)),0>l&&(o+=l,l=Math.abs(l)),0>a&&(s+=a,a=0),0>o&&(l+=o,o=0),!(0>=s||0>=l)){n=t.MakeImage({width:n.width,height:n.height,alphaType:t.AlphaType.Unpremul,colorType:t.ColorType.RGBA_8888,colorSpace:t.ColorSpace.SRGB},n.data,4*n.width);var c=t.XYWHRect(a,o,s,l);r=t.XYWHRect(r+a,i+o,s,l),i=t.Matrix.invert(this.Ud),this.Nd.save(),this.Nd.concat(i),this.Nd.drawImageRect(n,c,r,null,!1),this.Nd.restore(),n.delete()}},this.quadraticCurveTo=function(t,n,r,i){var a=this.Td;e([t,n,r,i])&&(a.isEmpty()&&a.moveTo(t,n),a.quadTo(t,n,r,i))},this.rect=function(n,r,i,a){var o=this.Td;e(n=t.XYWHRect(n,r,i,a))&&o.addRect(n)},this.resetTransform=function(){this.Td.transform(this.Ud);var e=t.Matrix.invert(this.Ud);this.Nd.concat(e),this.Ud=this.Nd.getTotalMatrix()},this.restore=function(){var e=this.kf.pop();if(e){var n=t.Matrix.multiply(this.Ud,t.Matrix.invert(e.Cf));this.Td.transform(n),this.Qd.delete(),this.Qd=e.$f,this.te=e.Wf,this.Je=e.rg,this.he=e.qg,this.be=e.fs,this.ve=e.og,this.we=e.pg,this.ue=e.dg,this.Ie=e.ng,this.je=e.Jf,this.Pd=e.Kf,this.He=e.Xf,this.Pe=e.If,this.Nd.restore(),this.Ud=this.Nd.getTotalMatrix()}},this.rotate=function(e){if(isFinite(e)){var n=t.Matrix.rotated(-e);this.Td.transform(n),this.Nd.rotate(e/Math.PI*180,0,0),this.Ud=this.Nd.getTotalMatrix()}},this.save=function(){if(this.be.qe){var t=this.be.qe();this.Ae.push(t)}else t=this.be;if(this.he.qe){var e=this.he.qe();this.Ae.push(e)}else e=this.he;this.kf.push({Cf:this.Ud.slice(),Wf:this.te.slice(),rg:this.Je,qg:e,fs:t,og:this.ve,pg:this.we,dg:this.ue,ng:this.Ie,Jf:this.je,Xf:this.He,Kf:this.Pd,$f:this.Qd.copy(),If:this.Pe}),this.Nd.save()},this.scale=function(n,r){if(e(arguments)){var i=t.Matrix.scaled(1/n,1/r);this.Td.transform(i),this.Nd.scale(n,r),this.Ud=this.Nd.getTotalMatrix()}},this.setLineDash=function(t){for(var e=0;e<t.length;e++)if(!isFinite(t[e])||0>t[e])return;1==t.length%2&&Array.prototype.push.apply(t,t),this.te=t},this.setTransform=function(t,n,r,i,a,o){e(arguments)&&(this.resetTransform(),this.transform(t,n,r,i,a,o))},this.pe=function(){var e=t.Matrix.invert(this.Ud);this.Nd.concat(e),this.Nd.concat(t.Matrix.translated(this.ve,this.we)),this.Nd.concat(this.Ud)},this.xe=function(e){var n=t.multiplyByAlpha(this.Ie,this.je);if(!t.getColorComponents(n)[3]||!(this.ue||this.we||this.ve))return null;(e=e.copy()).setColor(n);var r=t.MaskFilter.MakeBlur(t.BlurStyle.Normal,this.ue/2,!1);return e.setMaskFilter(r),e.dispose=function(){r.delete(),this.delete()},e},this.bf=function(){var e=this.Qd.copy();if(e.setStyle(t.PaintStyle.Stroke),i(this.he)){var n=t.multiplyByAlpha(this.he,this.je);e.setColor(n)}else n=this.he.se(this.Ud),e.setColor(t.Color(0,0,0,this.je)),e.setShader(n);if(e.setStrokeWidth(this.Je),this.te.length){var r=t.PathEffect.MakeDash(this.te,this.He);e.setPathEffect(r)}return e.dispose=function(){r&&r.delete(),this.delete()},e},this.stroke=function(t){t=t?t.Wd:this.Td;var e=this.bf(),n=this.xe(e);n&&(this.Nd.save(),this.pe(),this.Nd.drawPath(t,n),this.Nd.restore(),n.dispose()),this.Nd.drawPath(t,e),e.dispose()},this.strokeRect=function(e,n,r,i){var a=this.bf(),o=this.xe(a);o&&(this.Nd.save(),this.pe(),this.Nd.drawRect(t.XYWHRect(e,n,r,i),o),this.Nd.restore(),o.dispose()),this.Nd.drawRect(t.XYWHRect(e,n,r,i),a),a.dispose()},this.strokeText=function(e,n,r){var i=this.bf();e=t.TextBlob.MakeFromText(e,this.re);var a=this.xe(i);a&&(this.Nd.save(),this.pe(),this.Nd.drawTextBlob(e,n,r,a),this.Nd.restore(),a.dispose()),this.Nd.drawTextBlob(e,n,r,i),e.delete(),i.dispose()},this.translate=function(n,r){if(e(arguments)){var i=t.Matrix.translated(-n,-r);this.Td.transform(i),this.Nd.translate(n,r),this.Ud=this.Nd.getTotalMatrix()}},this.transform=function(e,n,r,i,a,o){e=[e,r,a,n,i,o,0,0,1],n=t.Matrix.invert(e),this.Td.transform(n),this.Nd.concat(e),this.Ud=this.Nd.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 s(e){this.cf=e,this.Md=new o(e.getCanvas()),this.Qe=[],this.decodeImage=function(e){if(!(e=t.MakeImageFromEncoded(e)))throw"Invalid input";return this.Qe.push(e),e},this.loadFont=function(e,n){if(!(e=t.Typeface.MakeFreeTypeFaceFromData(e)))return null;this.Qe.push(e);var r=(n.style||"normal")+"|"+(n.variant||"normal")+"|"+(n.weight||"normal");n=n.family,b[n]||(b[n]={"*":e}),b[n][r]=e},this.makePath2D=function(t){return t=new m(t),this.Qe.push(t.Wd),t},this.getContext=function(t){return"2d"===t?this.Md:null},this.toDataURL=function(e,n){this.cf.flush();var r=this.cf.makeImageSnapshot();if(r){e=e||"image/png";var i=t.ImageFormat.PNG;if("image/jpeg"===e&&(i=t.ImageFormat.JPEG),n=r.encodeToBytes(i,n||.92)){if(r.delete(),e="data:"+e+";base64,","undefined"!=typeof Buffer)n=Buffer.from(n).toString("base64");else{r=0,i=n.length;for(var a,o="";r<i;)a=n.slice(r,Math.min(r+32768,i)),o+=String.fromCharCode.apply(null,a),r+=32768;n=btoa(o)}return e+n}}},this.dispose=function(){this.Md.me(),this.Qe.forEach((function(t){t.delete()})),this.cf.dispose()}}function l(t,e,n){if(!e||0===n)throw"invalid dimensions, width and height must be non-zero";if(t.length%4)throw"arr must be a multiple of 4";n=n||t.length/(4*e),Object.defineProperty(this,"data",{value:t,writable:!1}),Object.defineProperty(this,"height",{value:n,writable:!1}),Object.defineProperty(this,"width",{value:e,writable:!1})}function c(e,n,i,a){this.Yd=null,this.ee=[],this.$d=[],this.addColorStop=function(t,e){if(0>t||1<t||!isFinite(t))throw"offset must be between 0 and 1 inclusively";e=r(e);var n=this.$d.indexOf(t);if(-1!==n)this.ee[n]=e;else{for(n=0;n<this.$d.length&&!(this.$d[n]>t);n++);this.$d.splice(n,0,t),this.ee.splice(n,0,e)}},this.qe=function(){var t=new c(e,n,i,a);return t.ee=this.ee.slice(),t.$d=this.$d.slice(),t},this.me=function(){this.Yd&&(this.Yd.delete(),this.Yd=null)},this.se=function(r){var o=[e,n,i,a];t.Matrix.mapPoints(r,o),r=o[0];var s=o[1],l=o[2];return o=o[3],this.me(),this.Yd=t.Shader.MakeLinearGradient([r,s],[l,o],this.ee,this.$d,t.TileMode.Clamp)}}function u(t,n,r,i,a,o){if(e([n,r,i,a,o])){if(0>o)throw"radii cannot be negative";t.isEmpty()&&t.moveTo(n,r),t.arcToTangent(n,r,i,a,o)}}function h(t){if(!t.isEmpty()){var e=t.getBounds();(e[3]-e[1]||e[2]-e[0])&&t.close()}}function f(e,n,r,i,a,o,s){s=(s-o)/Math.PI*180,o=o/Math.PI*180,n=t.LTRBRect(n-i,r-a,n+i,r+a),1e-5>Math.abs(Math.abs(s)-360)?(r=s/2,e.arcToOval(n,o,r,!1),e.arcToOval(n,o+r,r,!1)):e.arcToOval(n,o,s,!1)}function d(n,r,i,a,o,s,l,c,u){if(e([r,i,a,o,s,l,c])){if(0>a||0>o)throw"radii cannot be negative";var h=2*Math.PI,d=l%h;0>d&&(d+=h);var p=d-l;l=d,c+=p,!u&&c-l>=h?c=l+h:u&&l-c>=h?c=l-h:!u&&l>c?c=l+(h-(l-c)%h):u&&l<c&&(c=l-(h-(c-l)%h)),s?(u=t.Matrix.rotated(s,r,i),s=t.Matrix.rotated(-s,r,i),n.transform(s),f(n,r,i,a,o,l,c),n.transform(u)):f(n,r,i,a,o,l,c)}}function p(t,n,r){e([n,r])&&(t.isEmpty()&&t.moveTo(n,r),t.lineTo(n,r))}function m(n){this.Wd=null,this.Wd="string"==typeof n?t.Path.MakeFromSVGString(n):n&&n.$e?n.Wd.copy():new t.Path,this.$e=function(){return this.Wd},this.addPath=function(t,e){e||(e={a:1,c:0,e:0,b:0,d:1,f:0}),this.Wd.addPath(t.Wd,[e.a,e.c,e.e,e.b,e.d,e.f])},this.arc=function(t,e,n,r,i,a){d(this.Wd,t,e,n,n,0,r,i,a)},this.arcTo=function(t,e,n,r,i){u(this.Wd,t,e,n,r,i)},this.bezierCurveTo=function(t,n,r,i,a,o){var s=this.Wd;e([t,n,r,i,a,o])&&(s.isEmpty()&&s.moveTo(t,n),s.cubicTo(t,n,r,i,a,o))},this.closePath=function(){h(this.Wd)},this.ellipse=function(t,e,n,r,i,a,o,s){d(this.Wd,t,e,n,r,i,a,o,s)},this.lineTo=function(t,e){p(this.Wd,t,e)},this.moveTo=function(t,n){var r=this.Wd;e([t,n])&&r.moveTo(t,n)},this.quadraticCurveTo=function(t,n,r,i){var a=this.Wd;e([t,n,r,i])&&(a.isEmpty()&&a.moveTo(t,n),a.quadTo(t,n,r,i))},this.rect=function(n,r,i,a){var o=this.Wd;e(n=t.XYWHRect(n,r,i,a))&&o.addRect(n)}}function g(n,r){switch(this.Yd=null,this.xf=n,this._transform=t.Matrix.identity(),""===r&&(r="repeat"),r){case"repeat-x":this.ye=t.TileMode.Repeat,this.ze=t.TileMode.Decal;break;case"repeat-y":this.ye=t.TileMode.Decal,this.ze=t.TileMode.Repeat;break;case"repeat":this.ze=this.ye=t.TileMode.Repeat;break;case"no-repeat":this.ze=this.ye=t.TileMode.Decal;break;default:throw"invalid repetition mode "+r}this.setTransform=function(t){e(t=[t.a,t.c,t.e,t.b,t.d,t.f,0,0,1])&&(this._transform=t)},this.qe=function(){var t=new g;return t.ye=this.ye,t.ze=this.ze,t},this.me=function(){this.Yd&&(this.Yd.delete(),this.Yd=null)},this.se=function(){return this.me(),this.Yd=this.xf.makeShaderCubic(this.ye,this.ze,1/3,1/3,this._transform)}}function y(e,n,i,a,o,s){this.Yd=null,this.ee=[],this.$d=[],this.addColorStop=function(t,e){if(0>t||1<t||!isFinite(t))throw"offset must be between 0 and 1 inclusively";e=r(e);var n=this.$d.indexOf(t);if(-1!==n)this.ee[n]=e;else{for(n=0;n<this.$d.length&&!(this.$d[n]>t);n++);this.$d.splice(n,0,t),this.ee.splice(n,0,e)}},this.qe=function(){var t=new y(e,n,i,a,o,s);return t.ee=this.ee.slice(),t.$d=this.$d.slice(),t},this.me=function(){this.Yd&&(this.Yd.delete(),this.Yd=null)},this.se=function(r){var l=[e,n,a,o];t.Matrix.mapPoints(r,l);var c=l[0],u=l[1],h=l[2];l=l[3];var f=(Math.abs(r[0])+Math.abs(r[4]))/2;return r=i*f,f*=s,this.me(),this.Yd=t.Shader.MakeTwoPointConicalGradient([c,u],r,[h,l],f,this.ee,this.$d,t.TileMode.Clamp)}}t._testing={};var v={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)};t._testing.parseColor=r,t._testing.colorToString=n;var w=/(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)(.+)/,b={"Noto Mono":{"*":null},monospace:{"*":null}};t._testing.parseFontString=a,t.MakeCanvas=function(e,n){return(e=t.MakeSurface(e,n))?new s(e):null},t.ImageData=function(){if(2===arguments.length){var t=arguments[0],e=arguments[1];return new l(new Uint8ClampedArray(4*t*e),t,e)}if(3===arguments.length){var n=arguments[0];if(n.prototype.constructor!==Uint8ClampedArray)throw"bytes must be given as a Uint8ClampedArray";if(n%4)throw"bytes must be given in a multiple of 4";if(n%(t=arguments[1]))throw"bytes must divide evenly by width";if((e=arguments[2])&&e!==n/(4*t))throw"invalid height given";return new l(n,t,n/(4*t))}throw"invalid number of arguments - takes 2 or 3, saw "+arguments.length}}()}(e);var o,s={};for(o in e)e.hasOwnProperty(o)&&(s[o]=e[o]);var l,c,u,h,f="./this.program";function d(t,e){throw e}l="object"==typeof window,c="function"==typeof importScripts,u="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,h=!l&&!u&&!c;var p,m,g,y,v,w="";u?(w=c?x.dirname(w)+"/":__dirname+"/",p=function(t,e){return y||(y=k),v||(v=x),t=v.normalize(t),y.readFileSync(t,e?null:"utf8")},g=function(t){return(t=p(t,!0)).buffer||(t=new Uint8Array(t)),M(t.buffer),t},1<process.argv.length&&(f=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),process.on("uncaughtException",(function(t){if(!(t instanceof Cn))throw t})),process.on("unhandledRejection",at),d=function(t){process.exit(t)},e.inspect=function(){return"[Emscripten Module object]"}):h?("undefined"!=typeof read&&(p=function(t){return read(t)}),g=function(t){return"function"==typeof readbuffer?new Uint8Array(readbuffer(t)):(M("object"==typeof(t=read(t,"binary"))),t)},"function"==typeof quit&&(d=function(t){quit(t)}),"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print)):(l||c)&&(c?w=self.location.href:"undefined"!=typeof document&&document.currentScript&&(w=document.currentScript.src),n&&(w=n),w=0!==w.indexOf("blob:")?w.substr(0,w.lastIndexOf("/")+1):"",p=function(t){var e=new XMLHttpRequest;return e.open("GET",t,!1),e.send(null),e.responseText},c&&(g=function(t){var e=new XMLHttpRequest;return e.open("GET",t,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)}),m=function(t,e,n){var r=new XMLHttpRequest;r.open("GET",t,!0),r.responseType="arraybuffer",r.onload=function(){200==r.status||0==r.status&&r.response?e(r.response):n()},r.onerror=n,r.send(null)});var b=e.print||console.log.bind(console),A=e.printErr||console.warn.bind(console);for(o in s)s.hasOwnProperty(o)&&(e[o]=s[o]);s=null,e.thisProgram&&(f=e.thisProgram),e.quit&&(d=e.quit);var S,T=0;e.wasmBinary&&(S=e.wasmBinary);var C=e.noExitRuntime||!0;"object"!=typeof WebAssembly&&at("no native wasm support detected");var _,P=!1;function M(t,e){t||at("Assertion failed: "+e)}var F="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function E(t,e,n){var r=e+n;for(n=e;t[n]&&!(n>=r);)++n;if(16<n-e&&t.subarray&&F)return F.decode(t.subarray(e,n));for(r="";e<n;){var i=t[e++];if(128&i){var a=63&t[e++];if(192==(224&i))r+=String.fromCharCode((31&i)<<6|a);else{var o=63&t[e++];65536>(i=224==(240&i)?(15&i)<<12|a<<6|o:(7&i)<<18|a<<12|o<<6|63&t[e++])?r+=String.fromCharCode(i):(i-=65536,r+=String.fromCharCode(55296|i>>10,56320|1023&i))}}else r+=String.fromCharCode(i)}return r}function O(t,e){return t?E(D,t,e):""}function R(t,e,n,r){if(!(0<r))return 0;var i=n;r=n+r-1;for(var a=0;a<t.length;++a){var o=t.charCodeAt(a);if(55296<=o&&57343>=o&&(o=65536+((1023&o)<<10)|1023&t.charCodeAt(++a)),127>=o){if(n>=r)break;e[n++]=o}else{if(2047>=o){if(n+1>=r)break;e[n++]=192|o>>6}else{if(65535>=o){if(n+2>=r)break;e[n++]=224|o>>12}else{if(n+3>=r)break;e[n++]=240|o>>18,e[n++]=128|o>>12&63}e[n++]=128|o>>6&63}e[n++]=128|63&o}}return e[n]=0,n-i}function B(t){for(var e=0,n=0;n<t.length;++n){var r=t.charCodeAt(n);55296<=r&&57343>=r&&(r=65536+((1023&r)<<10)|1023&t.charCodeAt(++n)),127>=r?++e:e=2047>=r?e+2:65535>=r?e+3:e+4}return e}var I,L,D,G,U,W,j,N,z,H="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function V(t,e){for(var n=t>>1,r=n+e/2;!(n>=r)&&U[n];)++n;if(32<(n<<=1)-t&&H)return H.decode(D.subarray(t,n));for(n="",r=0;!(r>=e/2);++r){var i=G[t+2*r>>1];if(0==i)break;n+=String.fromCharCode(i)}return n}function Y(t,e,n){if(void 0===n&&(n=2147483647),2>n)return 0;var r=e;n=(n-=2)<2*t.length?n/2:t.length;for(var i=0;i<n;++i)G[e>>1]=t.charCodeAt(i),e+=2;return G[e>>1]=0,e-r}function q(t){return 2*t.length}function $(t,e){for(var n=0,r="";!(n>=e/4);){var i=W[t+4*n>>2];if(0==i)break;++n,65536<=i?(i-=65536,r+=String.fromCharCode(55296|i>>10,56320|1023&i)):r+=String.fromCharCode(i)}return r}function X(t,e,n){if(void 0===n&&(n=2147483647),4>n)return 0;var r=e;n=r+n-4;for(var i=0;i<t.length;++i){var a=t.charCodeAt(i);if(55296<=a&&57343>=a&&(a=65536+((1023&a)<<10)|1023&t.charCodeAt(++i)),W[e>>2]=a,(e+=4)+4>n)break}return W[e>>2]=0,e-r}function K(t){for(var e=0,n=0;n<t.length;++n){var r=t.charCodeAt(n);55296<=r&&57343>=r&&++n,e+=4}return e}function Q(){var t=_.buffer;I=t,e.HEAP8=L=new Int8Array(t),e.HEAP16=G=new Int16Array(t),e.HEAP32=W=new Int32Array(t),e.HEAPU8=D=new Uint8Array(t),e.HEAPU16=U=new Uint16Array(t),e.HEAPU32=j=new Uint32Array(t),e.HEAPF32=N=new Float32Array(t),e.HEAPF64=z=new Float64Array(t)}var Z,J=[],tt=[],et=[];function nt(){var t=e.preRun.shift();J.unshift(t)}var rt=0,it=null;function at(t){throw e.onAbort&&e.onAbort(t),A(t),P=!0,t=new WebAssembly.RuntimeError("abort("+t+"). Build with -s ASSERTIONS=1 for more info."),i(t),t}function ot(){return st.startsWith("data:application/octet-stream;base64,")}e.preloadedImages={},e.preloadedAudios={};var st="canvaskit.wasm";if(!ot()){var lt=st;st=e.locateFile?e.locateFile(lt,w):w+lt}function ct(){var t=st;try{if(t==st&&S)return new Uint8Array(S);if(g)return g(t);throw"both async and sync fetching of the wasm failed"}catch(t){at(t)}}function ut(t){for(;0<t.length;){var n=t.shift();if("function"==typeof n)n(e);else{var r=n.Ag;"number"==typeof r?void 0===n.df?Z.get(r)():Z.get(r)(n.df):r(void 0===n.df?null:n.df)}}}function ht(t){this.Rd=t-16,this.ig=function(t){W[this.Rd+8>>2]=t},this.fg=function(t){W[this.Rd+0>>2]=t},this.gg=function(){W[this.Rd+4>>2]=0},this.eg=function(){L[this.Rd+12>>0]=0},this.hg=function(){L[this.Rd+13>>0]=0},this.Tf=function(t,e){this.ig(t),this.fg(e),this.gg(),this.eg(),this.hg()}}var ft={},dt=[null,[],[]],pt={},mt={};function gt(t){for(;t.length;){var e=t.pop();t.pop()(e)}}function yt(t){return this.fromWireType(j[t>>2])}var vt={},wt={},bt={};function At(t){if(void 0===t)return"_unknown";var e=(t=t.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return 48<=e&&57>=e?"_"+t:t}function St(t,e){return t=At(t),new Function("body","return function "+t+'() {\n "use strict"; return body.apply(this, arguments);\n};\n')(e)}function Tt(t){var e=Error,n=St(t,(function(e){this.name=t,this.message=e,void 0!==(e=Error(e).stack)&&(this.stack=this.toString()+"\n"+e.replace(/^Error(:[^\n]*)?\n/,""))}));return n.prototype=Object.create(e.prototype),n.prototype.constructor=n,n.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},n}var Ct=void 0;function _t(t){throw new Ct(t)}function Pt(t,e,n){function r(e){(e=n(e)).length!==t.length&&_t("Mismatched type converter count");for(var r=0;r<t.length;++r)Ot(t[r],e[r])}t.forEach((function(t){bt[t]=e}));var i=Array(e.length),a=[],o=0;e.forEach((function(t,e){wt.hasOwnProperty(t)?i[e]=wt[t]:(a.push(t),vt.hasOwnProperty(t)||(vt[t]=[]),vt[t].push((function(){i[e]=wt[t],++o===a.length&&r(i)})))})),0===a.length&&r(i)}function Mt(t){switch(t){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+t)}}var Ft=void 0;function Et(t){for(var e="";D[t];)e+=Ft[D[t++]];return e}var xt=void 0;function kt(t){throw new xt(t)}function Ot(t,e,n){if(n=n||{},!("argPackAdvance"in e))throw new TypeError("registerType registeredInstance requires argPackAdvance");var r=e.name;if(t||kt('type "'+r+'" must have a positive integer typeid pointer'),wt.hasOwnProperty(t)){if(n.Sf)return;kt("Cannot register type '"+r+"' twice")}wt[t]=e,delete bt[t],vt.hasOwnProperty(t)&&(e=vt[t],delete vt[t],e.forEach((function(t){t()})))}function Rt(t){kt(t.Ld.Xd.Sd.name+" instance already deleted")}var Bt=!1;function It(){}function Lt(t){--t.count.value,0===t.count.value&&(t.de?t.ge.ke(t.de):t.Xd.Sd.ke(t.Rd))}function Dt(t){return"undefined"==typeof FinalizationGroup?(Dt=function(t){return t},t):(Bt=new FinalizationGroup((function(t){for(var e=t.next();!e.done;e=t.next())(e=e.value).Rd?Lt(e):console.warn("object already deleted: "+e.Rd)})),It=function(t){Bt.unregister(t.Ld)},(Dt=function(t){return Bt.register(t,t.Ld,t.Ld),t})(t))}var Gt=void 0,Ut=[];function Wt(){for(;Ut.length;){var t=Ut.pop();t.Ld.De=!1,t.delete()}}function jt(){}var Nt={};function zt(t,e,n){if(void 0===t[e].Zd){var r=t[e];t[e]=function(){return t[e].Zd.hasOwnProperty(arguments.length)||kt("Function '"+n+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+t[e].Zd+")!"),t[e].Zd[arguments.length].apply(this,arguments)},t[e].Zd=[],t[e].Zd[r.Be]=r}}function Ht(t,n,r){e.hasOwnProperty(t)?((void 0===r||void 0!==e[t].Zd&&void 0!==e[t].Zd[r])&&kt("Cannot register public name '"+t+"' twice"),zt(e,t,t),e.hasOwnProperty(r)&&kt("Cannot register multiple overloads of a function with the same number of arguments ("+r+")!"),e[t].Zd[r]=n):(e[t]=n,void 0!==r&&(e[t].Cg=r))}function Vt(t,e,n,r,i,a,o,s){this.name=t,this.constructor=e,this.Ee=n,this.ke=r,this.ie=i,this.Lf=a,this.Ne=o,this.Ff=s,this.bg=[]}function Yt(t,e,n){for(;e!==n;)e.Ne||kt("Expected null or instance of "+n.name+", got an instance of "+e.name),t=e.Ne(t),e=e.ie;return t}function qt(t,e){return null===e?(this.ff&&kt("null is not a valid "+this.name),0):(e.Ld||kt('Cannot pass "'+pe(e)+'" as a '+this.name),e.Ld.Rd||kt("Cannot pass deleted object as a pointer of type "+this.name),Yt(e.Ld.Rd,e.Ld.Xd.Sd,this.Sd))}function $t(t,e){if(null===e){if(this.ff&&kt("null is not a valid "+this.name),this.Se){var n=this.gf();return null!==t&&t.push(this.ke,n),n}return 0}if(e.Ld||kt('Cannot pass "'+pe(e)+'" as a '+this.name),e.Ld.Rd||kt("Cannot pass deleted object as a pointer of type "+this.name),!this.Re&&e.Ld.Xd.Re&&kt("Cannot convert argument of type "+(e.Ld.ge?e.Ld.ge.name:e.Ld.Xd.name)+" to parameter type "+this.name),n=Yt(e.Ld.Rd,e.Ld.Xd.Sd,this.Sd),this.Se)switch(void 0===e.Ld.de&&kt("Passing raw pointer to smart pointer is illegal"),this.mg){case 0:e.Ld.ge===this?n=e.Ld.de:kt("Cannot convert argument of type "+(e.Ld.ge?e.Ld.ge.name:e.Ld.Xd.name)+" to parameter type "+this.name);break;case 1:n=e.Ld.de;break;case 2:if(e.Ld.ge===this)n=e.Ld.de;else{var r=e.clone();n=this.cg(n,he((function(){r.delete()}))),null!==t&&t.push(this.ke,n)}break;default:kt("Unsupporting sharing policy")}return n}function Xt(t,e){return null===e?(this.ff&&kt("null is not a valid "+this.name),0):(e.Ld||kt('Cannot pass "'+pe(e)+'" as a '+this.name),e.Ld.Rd||kt("Cannot pass deleted object as a pointer of type "+this.name),e.Ld.Xd.Re&&kt("Cannot convert argument of type "+e.Ld.Xd.name+" to parameter type "+this.name),Yt(e.Ld.Rd,e.Ld.Xd.Sd,this.Sd))}function Kt(t,e,n){return e===n?t:void 0===n.ie||null===(t=Kt(t,e,n.ie))?null:n.Ff(t)}var Qt={};function Zt(t,e){return e.Xd&&e.Rd||_t("makeClassHandle requires ptr and ptrType"),!!e.ge!=!!e.de&&_t("Both smartPtrType and smartPtr must be specified"),e.count={value:1},Dt(Object.create(t,{Ld:{value:e}}))}function Jt(t,e,n,r,i,a,o,s,l,c,u){this.name=t,this.Sd=e,this.ff=n,this.Re=r,this.Se=i,this.ag=a,this.mg=o,this.tf=s,this.gf=l,this.cg=c,this.ke=u,i||void 0!==e.ie?this.toWireType=$t:(this.toWireType=r?qt:Xt,this.fe=null)}function te(t,n,r){e.hasOwnProperty(t)||_t("Replacing nonexistant public symbol"),void 0!==e[t].Zd&&void 0!==r?e[t].Zd[r]=n:(e[t]=n,e[t].Be=r)}function ee(t,n){var r=(t=Et(t)).includes("j")?function(t,n){var r=[];return function(){r.length=arguments.length;for(var i=0;i<arguments.length;i++)r[i]=arguments[i];return t.includes("j")?(i=e["dynCall_"+t],i=r&&r.length?i.apply(null,[n].concat(r)):i.call(null,n)):i=Z.get(n).apply(null,r),i}}(t,n):Z.get(n);return"function"!=typeof r&&kt("unknown function pointer with signature "+t+": "+n),r}var ne=void 0;function re(t){var e=Et(t=vn(t));return gn(t),e}function ie(t,e){var n=[],r={};throw e.forEach((function t(e){r[e]||wt[e]||(bt[e]?bt[e].forEach(t):(n.push(e),r[e]=!0))})),new ne(t+": "+n.map(re).join([", "]))}function ae(t){var e=Function;if(!(e instanceof Function))throw new TypeError("new_ called with constructor type "+typeof e+" which is not a function");var n=St(e.name||"unknownFunctionName",(function(){}));return n.prototype=e.prototype,n=new n,(t=e.apply(n,t))instanceof Object?t:n}function oe(t,e,n,r,i){var a=e.length;2>a&&kt("argTypes array size mismatch! Must at least get return value and 'this' types!");var o=null!==e[1]&&null!==n,s=!1;for(n=1;n<e.length;++n)if(null!==e[n]&&void 0===e[n].fe){s=!0;break}var l="void"!==e[0].name,c="",u="";for(n=0;n<a-2;++n)c+=(0!==n?", ":"")+"arg"+n,u+=(0!==n?", ":"")+"arg"+n+"Wired";t="return function "+At(t)+"("+c+") {\nif (arguments.length !== "+(a-2)+") {\nthrowBindingError('function "+t+" called with ' + arguments.length + ' arguments, expected "+(a-2)+" args!');\n}\n",s&&(t+="var destructors = [];\n");var h=s?"destructors":"null";for(c="throwBindingError invoker fn runDestructors retType classParam".split(" "),r=[kt,r,i,gt,e[0],e[1]],o&&(t+="var thisWired = classParam.toWireType("+h+", this);\n"),n=0;n<a-2;++n)t+="var arg"+n+"Wired = argType"+n+".toWireType("+h+", arg"+n+"); // "+e[n+2].name+"\n",c.push("argType"+n),r.push(e[n+2]);if(o&&(u="thisWired"+(0<u.length?", ":"")+u),t+=(l?"var rv = ":"")+"invoker(fn"+(0<u.length?", ":"")+u+");\n",s)t+="runDestructors(destructors);\n";else for(n=o?1:2;n<e.length;++n)a=1===n?"thisWired":"arg"+(n-2)+"Wired",null!==e[n].fe&&(t+=a+"_dtor("+a+"); // "+e[n].name+"\n",c.push(a+"_dtor"),r.push(e[n].fe));return l&&(t+="var ret = retType.fromWireType(rv);\nreturn ret;\n"),c.push(t+"}\n"),ae(c).apply(null,r)}function se(t,e){for(var n=[],r=0;r<t;r++)n.push(W[(e>>2)+r]);return n}var le=[],ce=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function ue(t){4<t&&0==--ce[t].hf&&(ce[t]=void 0,le.push(t))}function he(t){switch(t){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var e=le.length?le.pop():ce.length;return ce[e]={hf:1,value:t},e}}function fe(t,e,n){switch(e){case 0:return function(t){return this.fromWireType((n?L:D)[t])};case 1:return function(t){return this.fromWireType((n?G:U)[t>>1])};case 2:return function(t){return this.fromWireType((n?W:j)[t>>2])};default:throw new TypeError("Unknown integer type: "+t)}}function de(t,e){var n=wt[t];return void 0===n&&kt(e+" has unknown type "+re(t)),n}function pe(t){if(null===t)return"null";var e=typeof t;return"object"===e||"array"===e||"function"===e?t.toString():""+t}function me(t,e){switch(e){case 2:return function(t){return this.fromWireType(N[t>>2])};case 3:return function(t){return this.fromWireType(z[t>>3])};default:throw new TypeError("Unknown float type: "+t)}}function ge(t,e,n){switch(e){case 0:return n?function(t){return L[t]}:function(t){return D[t]};case 1:return n?function(t){return G[t>>1]}:function(t){return U[t>>1]};case 2:return n?function(t){return W[t>>2]}:function(t){return j[t>>2]};default:throw new TypeError("Unknown integer type: "+t)}}function ye(t){return t||kt("Cannot use deleted val. handle = "+t),ce[t].value}var ve={};function we(t){var e=ve[t];return void 0===e?Et(t):e}var be=[];function Ae(){return"object"==typeof globalThis?globalThis:Function("return this")()}var Se,Te={};Se=u?function(){var t=process.hrtime();return 1e3*t[0]+t[1]/1e6}:"undefined"!=typeof dateNow?dateNow:function(){return performance.now()};var Ce=1,_e=[],Pe=[],Me=[],Fe=[],Ee=[],xe=[],ke=[],Oe=[],Re=[],Be=[],Ie={},Le={},De=4;function Ge(t){Ne||(Ne=t)}function Ue(t){for(var e=Ce++,n=t.length;n<e;n++)t[n]=null;return e}function We(t){return je=Oe[t],e.zg=cn=je&&je.le,!(t&&!cn)}var je,Ne,ze=[];function He(t,e,n,r){for(var i=0;i<t;i++){var a=cn[n](),o=a&&Ue(r);a?(a.name=o,r[o]=a):Ge(1282),W[e+4*i>>2]=o}}function Ve(t){var e=B(t)+1,n=mn(e);return R(t,D,n,e),n}function Ye(t){return 0==(t-=5120)?L:1==t?D:2==t?G:4==t?W:6==t?N:5==t||28922==t||28520==t||30779==t||30782==t?j:U}function qe(t,e,n,r,i){t=Ye(t);var a=31-Math.clz32(t.BYTES_PER_ELEMENT),o=De;return t.subarray(i>>a,i+r*(n*({5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4}[e-6402]||1)*(1<<a)+o-1&-o)>>a)}function $e(t){var e=cn.Df,n=e.Ze[t];return 0<=n&&(e.Ze[t]=n=cn.getUniformLocation(e,e.uf[t]+(0<n?"["+n+"]":""))),n}var Xe,Ke=[],Qe=[],Ze={};function Je(){if(!Xe){var t,e={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",_:f||"./this.program"};for(t in Ze)e[t]=Ze[t];var n=[];for(t in e)n.push(t+"="+e[t]);Xe=n}return Xe}function tn(t){return 0==t%4&&(0!=t%100||0==t%400)}function en(t,e){for(var n=0,r=0;r<=e;n+=t[r++]);return n}var nn=[31,29,31,30,31,30,31,31,30,31,30,31],rn=[31,28,31,30,31,30,31,31,30,31,30,31];function an(t,e){for(t=new Date(t.getTime());0<e;){var n=t.getMonth(),r=(tn(t.getFullYear())?nn:rn)[n];if(!(e>r-t.getDate())){t.setDate(t.getDate()+e);break}e-=r-t.getDate()+1,t.setDate(1),11>n?t.setMonth(n+1):(t.setMonth(0),t.setFullYear(t.getFullYear()+1))}return t}function on(t,e,n,r){function i(t,e,n){for(t="number"==typeof t?t.toString():t||"";t.length<e;)t=n[0]+t;return t}function a(t,e){return i(t,e,"0")}function o(t,e){function n(t){return 0>t?-1:0<t?1:0}var r;return 0===(r=n(t.getFullYear()-e.getFullYear()))&&0===(r=n(t.getMonth()-e.getMonth()))&&(r=n(t.getDate()-e.getDate())),r}function s(t){switch(t.getDay()){case 0:return new Date(t.getFullYear()-1,11,29);case 1:return t;case 2:return new Date(t.getFullYear(),0,3);case 3:return new Date(t.getFullYear(),0,2);case 4:return new Date(t.getFullYear(),0,1);case 5:return new Date(t.getFullYear()-1,11,31);case 6:return new Date(t.getFullYear()-1,11,30)}}function l(t){t=an(new Date(t.ae+1900,0,1),t.Ye);var e=new Date(t.getFullYear()+1,0,4),n=s(new Date(t.getFullYear(),0,4));return e=s(e),0>=o(n,t)?0>=o(e,t)?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}var c=W[r+40>>2];for(var u in r={ug:W[r>>2],tg:W[r+4>>2],We:W[r+8>>2],Me:W[r+12>>2],Fe:W[r+16>>2],ae:W[r+20>>2],Xe:W[r+24>>2],Ye:W[r+28>>2],Fg:W[r+32>>2],sg:W[r+36>>2],vg:c?O(c):""},n=O(n),c={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"})n=n.replace(new RegExp(u,"g"),c[u]);var h="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),f="January February March April May June July August September October November December".split(" ");for(u in c={"%a":function(t){return h[t.Xe].substring(0,3)},"%A":function(t){return h[t.Xe]},"%b":function(t){return f[t.Fe].substring(0,3)},"%B":function(t){return f[t.Fe]},"%C":function(t){return a((t.ae+1900)/100|0,2)},"%d":function(t){return a(t.Me,2)},"%e":function(t){return i(t.Me,2," ")},"%g":function(t){return l(t).toString().substring(2)},"%G":function(t){return l(t)},"%H":function(t){return a(t.We,2)},"%I":function(t){return 0==(t=t.We)?t=12:12<t&&(t-=12),a(t,2)},"%j":function(t){return a(t.Me+en(tn(t.ae+1900)?nn:rn,t.Fe-1),3)},"%m":function(t){return a(t.Fe+1,2)},"%M":function(t){return a(t.tg,2)},"%n":function(){return"\n"},"%p":function(t){return 0<=t.We&&12>t.We?"AM":"PM"},"%S":function(t){return a(t.ug,2)},"%t":function(){return"\t"},"%u":function(t){return t.Xe||7},"%U":function(t){var e=new Date(t.ae+1900,0,1),n=0===e.getDay()?e:an(e,7-e.getDay());return 0>o(n,t=new Date(t.ae+1900,t.Fe,t.Me))?a(Math.ceil((31-n.getDate()+(en(tn(t.getFullYear())?nn:rn,t.getMonth()-1)-31)+t.getDate())/7),2):0===o(n,e)?"01":"00"},"%V":function(t){var e=new Date(t.ae+1901,0,4),n=s(new Date(t.ae+1900,0,4));e=s(e);var r=an(new Date(t.ae+1900,0,1),t.Ye);return 0>o(r,n)?"53":0>=o(e,r)?"01":a(Math.ceil((n.getFullYear()<t.ae+1900?t.Ye+32-n.getDate():t.Ye+1-n.getDate())/7),2)},"%w":function(t){return t.Xe},"%W":function(t){var e=new Date(t.ae,0,1),n=1===e.getDay()?e:an(e,0===e.getDay()?1:7-e.getDay()+1);return 0>o(n,t=new Date(t.ae+1900,t.Fe,t.Me))?a(Math.ceil((31-n.getDate()+(en(tn(t.getFullYear())?nn:rn,t.getMonth()-1)-31)+t.getDate())/7),2):0===o(n,e)?"01":"00"},"%y":function(t){return(t.ae+1900).toString().substring(2)},"%Y":function(t){return t.ae+1900},"%z":function(t){var e=0<=(t=t.sg);return t=Math.abs(t)/60,(e?"+":"-")+String("0000"+(t/60*100+t%60)).slice(-4)},"%Z":function(t){return t.vg},"%%":function(){return"%"}})n.includes(u)&&(n=n.replace(new RegExp(u,"g"),c[u](r)));return u=function(t){var e=Array(B(t)+1);return R(t,e,0,e.length),e}(n),u.length>e?0:(L.set(u,t),u.length-1)}Ct=e.InternalError=Tt("InternalError");for(var sn=Array(256),ln=0;256>ln;++ln)sn[ln]=String.fromCharCode(ln);Ft=sn,xt=e.BindingError=Tt("BindingError"),jt.prototype.isAliasOf=function(t){if(!(this instanceof jt&&t instanceof jt))return!1;var e=this.Ld.Xd.Sd,n=this.Ld.Rd,r=t.Ld.Xd.Sd;for(t=t.Ld.Rd;e.ie;)n=e.Ne(n),e=e.ie;for(;r.ie;)t=r.Ne(t),r=r.ie;return e===r&&n===t},jt.prototype.clone=function(){if(this.Ld.Rd||Rt(this),this.Ld.Le)return this.Ld.count.value+=1,this;var t=Dt,e=Object,n=e.create,r=Object.getPrototypeOf(this),i=this.Ld;return(t=t(n.call(e,r,{Ld:{value:{count:i.count,De:i.De,Le:i.Le,Rd:i.Rd,Xd:i.Xd,de:i.de,ge:i.ge}}}))).Ld.count.value+=1,t.Ld.De=!1,t},jt.prototype.delete=function(){this.Ld.Rd||Rt(this),this.Ld.De&&!this.Ld.Le&&kt("Object already scheduled for deletion"),It(this),Lt(this.Ld),this.Ld.Le||(this.Ld.de=void 0,this.Ld.Rd=void 0)},jt.prototype.isDeleted=function(){return!this.Ld.Rd},jt.prototype.deleteLater=function(){return this.Ld.Rd||Rt(this),this.Ld.De&&!this.Ld.Le&&kt("Object already scheduled for deletion"),Ut.push(this),1===Ut.length&&Gt&&Gt(Wt),this.Ld.De=!0,this},Jt.prototype.Mf=function(t){return this.tf&&(t=this.tf(t)),t},Jt.prototype.mf=function(t){this.ke&&this.ke(t)},Jt.prototype.argPackAdvance=8,Jt.prototype.readValueFromPointer=yt,Jt.prototype.deleteObject=function(t){null!==t&&t.delete()},Jt.prototype.fromWireType=function(t){function e(){return this.Se?Zt(this.Sd.Ee,{Xd:this.ag,Rd:n,ge:this,de:t}):Zt(this.Sd.Ee,{Xd:this,Rd:t})}var n=this.Mf(t);if(!n)return this.mf(t),null;var r=function(t,e){for(void 0===e&&kt("ptr should not be undefined");t.ie;)e=t.Ne(e),t=t.ie;return Qt[e]}(this.Sd,n);if(void 0!==r)return 0===r.Ld.count.value?(r.Ld.Rd=n,r.Ld.de=t,r.clone()):(r=r.clone(),this.mf(t),r);if(r=this.Sd.Lf(n),!(r=Nt[r]))return e.call(this);r=this.Re?r.Bf:r.pointerType;var i=Kt(n,this.Sd,r.Sd);return null===i?e.call(this):this.Se?Zt(r.Sd.Ee,{Xd:r,Rd:i,ge:this,de:t}):Zt(r.Sd.Ee,{Xd:r,Rd:i})},e.getInheritedInstanceCount=function(){return Object.keys(Qt).length},e.getLiveInheritedInstances=function(){var t,e=[];for(t in Qt)Qt.hasOwnProperty(t)&&e.push(Qt[t]);return e},e.flushPendingDeletes=Wt,e.setDelayFunction=function(t){Gt=t,Ut.length&&Gt&&Gt(Wt)},ne=e.UnboundTypeError=Tt("UnboundTypeError"),e.count_emval_handles=function(){for(var t=0,e=5;e<ce.length;++e)void 0!==ce[e]&&++t;return t},e.get_first_emval=function(){for(var t=5;t<ce.length;++t)if(void 0!==ce[t])return ce[t];return null};for(var cn,un=0;32>un;++un)ze.push(Array(un));var hn=new Float32Array(288);for(un=0;288>un;++un)Ke[un]=hn.subarray(0,un+1);var fn=new Int32Array(288);for(un=0;288>un;++un)Qe[un]=fn.subarray(0,un+1);var dn={Kb:function(t){return mn(t+16)+16},Eb:function(t,e,n){throw new ht(t).Tf(e,n),t},O:function(){return 0},Bb:function(){},xb:function(){return 0},yb:function(t,e,n,r,i,a){return a<<=12,0!=(16&r)&&0!=t%65536?e=-28:0!=(32&r)?(t=Tn(65536,e))?(pn(t,0,e),ft[t]={Zf:t,Yf:e,Af:!0,fd:i,Dg:n,flags:r,offset:a},e=t):e=-48:e=-52,e},zb:function(t,e){if(-1==(0|t)||0===e)t=-28;else{var n=ft[t];n&&e===n.Yf&&(ft[t]=null,n.Af&&gn(n.Zf)),t=0}return t},R:function(){},Q:function(){},y:function(t){var e=mt[t];delete mt[t];var n=e.gf,r=e.ke,i=e.qf;Pt([t],i.map((function(t){return t.Qf})).concat(i.map((function(t){return t.kg}))),(function(t){var a={};return i.forEach((function(e,n){var r=t[n],o=e.Of,s=e.Pf,l=t[n+i.length],c=e.jg,u=e.lg;a[e.Hf]={read:function(t){return r.fromWireType(o(s,t))},write:function(t,e){var n=[];c(u,t,l.toWireType(n,e)),gt(n)}}})),[{name:e.name,fromWireType:function(t){var e,n={};for(e in a)n[e]=a[e].read(t);return r(t),n},toWireType:function(t,e){for(var i in a)if(!(i in e))throw new TypeError('Missing field: "'+i+'"');var o=n();for(i in a)a[i].write(o,e[i]);return null!==t&&t.push(r,o),o},argPackAdvance:8,readValueFromPointer:yt,fe:r}]}))},ob:function(){},Db:function(t,e,n,r,i){var a=Mt(n);Ot(t,{name:e=Et(e),fromWireType:function(t){return!!t},toWireType:function(t,e){return e?r:i},argPackAdvance:8,readValueFromPointer:function(t){if(1===n)var r=L;else if(2===n)r=G;else{if(4!==n)throw new TypeError("Unknown boolean type size: "+e);r=W}return this.fromWireType(r[t>>a])},fe:null})},m:function(t,e,n,r,i,a,o,s,l,c,u,h,f){u=Et(u),a=ee(i,a),s&&(s=ee(o,s)),c&&(c=ee(l,c)),f=ee(h,f);var d=At(u);Ht(d,(function(){ie("Cannot construct "+u+" due to unbound types",[r])})),Pt([t,e,n],r?[r]:[],(function(e){if(e=e[0],r)var n=e.Sd,i=n.Ee;else i=jt.prototype;e=St(d,(function(){if(Object.getPrototypeOf(this)!==o)throw new xt("Use 'new' to construct "+u);if(void 0===l.ne)throw new xt(u+" has no accessible constructor");var t=l.ne[arguments.length];if(void 0===t)throw new xt("Tried to invoke ctor of "+u+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(l.ne).toString()+") parameters instead!");return t.apply(this,arguments)}));var o=Object.create(i,{constructor:{value:e}});e.prototype=o;var l=new Vt(u,e,o,f,n,a,s,c);n=new Jt(u,l,!0,!1,!1),i=new Jt(u+"*",l,!1,!1,!1);var h=new Jt(u+" const*",l,!1,!0,!1);return Nt[t]={pointerType:i,Bf:h},te(d,e),[n,i,h]}))},f:function(t,e,n,r,i,a,o){var s=se(n,r);e=Et(e),a=ee(i,a),Pt([],[t],(function(t){function r(){ie("Cannot call "+i+" due to unbound types",s)}var i=(t=t[0]).name+"."+e,l=t.Sd.constructor;return void 0===l[e]?(r.Be=n-1,l[e]=r):(zt(l,e,i),l[e].Zd[n-1]=r),Pt([],s,(function(t){return t=[t[0],null].concat(t.slice(1)),t=oe(i,t,null,a,o),void 0===l[e].Zd?(t.Be=n-1,l[e]=t):l[e].Zd[n-1]=t,[]})),[]}))},v:function(t,e,n,r,i,a){M(0<e);var o=se(e,n);i=ee(r,i);var s=[a],l=[];Pt([],[t],(function(t){var n="constructor "+(t=t[0]).name;if(void 0===t.Sd.ne&&(t.Sd.ne=[]),void 0!==t.Sd.ne[e-1])throw new xt("Cannot register multiple constructors with identical number of parameters ("+(e-1)+") for class '"+t.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return t.Sd.ne[e-1]=function(){ie("Cannot construct "+t.name+" due to unbound types",o)},Pt([],o,(function(r){return t.Sd.ne[e-1]=function(){arguments.length!==e-1&&kt(n+" called with "+arguments.length+" arguments, expected "+(e-1)),l.length=0,s.length=e;for(var t=1;t<e;++t)s[t]=r[t].toWireType(l,arguments[t-1]);return t=i.apply(null,s),gt(l),r[0].fromWireType(t)},[]})),[]}))},c:function(t,e,n,r,i,a,o,s){var l=se(n,r);e=Et(e),a=ee(i,a),Pt([],[t],(function(t){function r(){ie("Cannot call "+i+" due to unbound types",l)}var i=(t=t[0]).name+"."+e;s&&t.Sd.bg.push(e);var c=t.Sd.Ee,u=c[e];return void 0===u||void 0===u.Zd&&u.className!==t.name&&u.Be===n-2?(r.Be=n-2,r.className=t.name,c[e]=r):(zt(c,e,i),c[e].Zd[n-2]=r),Pt([],l,(function(r){return r=oe(i,r,t,a,o),void 0===c[e].Zd?(r.Be=n-2,c[e]=r):c[e].Zd[n-2]=r,[]})),[]}))},X:function(t,n,r){t=Et(t),Pt([],[n],(function(n){return n=n[0],e[t]=n.fromWireType(r),[]}))},Cb:function(t,e){Ot(t,{name:e=Et(e),fromWireType:function(t){var e=ce[t].value;return ue(t),e},toWireType:function(t,e){return he(e)},argPackAdvance:8,readValueFromPointer:yt,fe:null})},k:function(t,e,n,r){function i(){}n=Mt(n),e=Et(e),i.values={},Ot(t,{name:e,constructor:i,fromWireType:function(t){return this.constructor.values[t]},toWireType:function(t,e){return e.value},argPackAdvance:8,readValueFromPointer:fe(e,n,r),fe:null}),Ht(e,i)},j:function(t,e,n){var r=de(t,"enum");e=Et(e),t=r.constructor,r=Object.create(r.constructor.prototype,{value:{value:n},constructor:{value:St(r.name+"_"+e,(function(){}))}}),t.values[n]=r,t[e]=r},S:function(t,e,n){n=Mt(n),Ot(t,{name:e=Et(e),fromWireType:function(t){return t},toWireType:function(t,e){if("number"!=typeof e&&"boolean"!=typeof e)throw new TypeError('Cannot convert "'+pe(e)+'" to '+this.name);return e},argPackAdvance:8,readValueFromPointer:me(e,n),fe:null})},t:function(t,e,n,r,i,a){var o=se(e,n);t=Et(t),i=ee(r,i),Ht(t,(function(){ie("Cannot call "+t+" due to unbound types",o)}),e-1),Pt([],o,(function(n){return n=[n[0],null].concat(n.slice(1)),te(t,oe(t,n,null,i,a),e-1),[]}))},x:function(t,e,n,r,i){function a(t){return t}e=Et(e),-1===i&&(i=4294967295);var o=Mt(n);if(0===r){var s=32-8*n;a=function(t){return t<<s>>>s}}var l=e.includes("unsigned");Ot(t,{name:e,fromWireType:a,toWireType:function(t,n){if("number"!=typeof n&&"boolean"!=typeof n)throw new TypeError('Cannot convert "'+pe(n)+'" to '+this.name);if(n<r||n>i)throw new TypeError('Passing a number "'+pe(n)+'" from JS side to C/C++ side to an argument of type "'+e+'", which is outside the valid range ['+r+", "+i+"]!");return l?n>>>0:0|n},argPackAdvance:8,readValueFromPointer:ge(e,o,0!==r),fe:null})},u:function(t,e,n){function r(t){var e=j;return new i(I,e[1+(t>>=2)],e[t])}var i=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][e];Ot(t,{name:n=Et(n),fromWireType:r,argPackAdvance:8,readValueFromPointer:r},{Sf:!0})},p:function(t,e,n,r,i,a,o,s,l,c,u,h){n=Et(n),a=ee(i,a),s=ee(o,s),c=ee(l,c),h=ee(u,h),Pt([t],[e],(function(t){return t=t[0],[new Jt(n,t.Sd,!1,!1,!0,t,r,a,s,c,h)]}))},T:function(t,e){var n="std::string"===(e=Et(e));Ot(t,{name:e,fromWireType:function(t){var e=j[t>>2];if(n)for(var r=t+4,i=0;i<=e;++i){var a=t+4+i;if(i==e||0==D[a]){if(r=O(r,a-r),void 0===o)var o=r;else o+=String.fromCharCode(0),o+=r;r=a+1}}else{for(o=Array(e),i=0;i<e;++i)o[i]=String.fromCharCode(D[t+4+i]);o=o.join("")}return gn(t),o},toWireType:function(t,e){e instanceof ArrayBuffer&&(e=new Uint8Array(e));var r="string"==typeof e;r||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Int8Array||kt("Cannot pass non-string to std::string");var i=(n&&r?function(){return B(e)}:function(){return e.length})(),a=mn(4+i+1);if(j[a>>2]=i,n&&r)R(e,D,a+4,i+1);else if(r)for(r=0;r<i;++r){var o=e.charCodeAt(r);255<o&&(gn(a),kt("String has UTF-16 code units that do not fit in 8 bits")),D[a+4+r]=o}else for(r=0;r<i;++r)D[a+4+r]=e[r];return null!==t&&t.push(gn,a),a},argPackAdvance:8,readValueFromPointer:yt,fe:function(t){gn(t)}})},I:function(t,e,n){if(n=Et(n),2===e)var r=V,i=Y,a=q,o=function(){return U},s=1;else 4===e&&(r=$,i=X,a=K,o=function(){return j},s=2);Ot(t,{name:n,fromWireType:function(t){for(var n,i=j[t>>2],a=o(),l=t+4,c=0;c<=i;++c){var u=t+4+c*e;c!=i&&0!=a[u>>s]||(l=r(l,u-l),void 0===n?n=l:(n+=String.fromCharCode(0),n+=l),l=u+e)}return gn(t),n},toWireType:function(t,r){"string"!=typeof r&&kt("Cannot pass non-string to C++ string type "+n);var o=a(r),l=mn(4+o+e);return j[l>>2]=o>>s,i(r,l+4,o+e),null!==t&&t.push(gn,l),l},argPackAdvance:8,readValueFromPointer:yt,fe:function(t){gn(t)}})},z:function(t,e,n,r,i,a){mt[t]={name:Et(e),gf:ee(n,r),ke:ee(i,a),qf:[]}},h:function(t,e,n,r,i,a,o,s,l,c){mt[t].qf.push({Hf:Et(e),Qf:n,Of:ee(r,i),Pf:a,kg:o,jg:ee(s,l),lg:c})},Fb:function(t,e){Ot(t,{Vf:!0,name:e=Et(e),argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},B:function(t,e,n){t=ye(t),e=de(e,"emval::as");var r=[],i=he(r);return W[n>>2]=i,e.toWireType(r,t)},M:function(t,e,n,r,i){t=be[t],e=ye(e),n=we(n);var a=[];return W[r>>2]=he(a),t(e,n,a,i)},C:function(t,e,n,r){(t=be[t])(e=ye(e),n=we(n),null,r)},E:ue,Ab:function(t){return 0===t?he(Ae()):(t=we(t),he(Ae()[t]))},A:function(t,e){e=function(t,e){for(var n=Array(t),r=0;r<t;++r)n[r]=de(W[(e>>2)+r],"parameter "+r);return n}(t,e);for(var n=e[0],r=n.name+"_$"+e.slice(1).map((function(t){return t.name})).join("_")+"$",i=["retType"],a=[n],o="",s=0;s<t-1;++s)o+=(0!==s?", ":"")+"arg"+s,i.push("argType"+s),a.push(e[1+s]);r="return function "+At("methodCaller_"+r)+"(handle, name, destructors, args) {\n";var l=0;for(s=0;s<t-1;++s)r+=" var arg"+s+" = argType"+s+".readValueFromPointer(args"+(l?"+"+l:"")+");\n",l+=e[s+1].argPackAdvance;for(r+=" var rv = handle[name]("+o+");\n",s=0;s<t-1;++s)e[s+1].deleteObject&&(r+=" argType"+s+".deleteObject(arg"+s+");\n");return n.Vf||(r+=" return retType.toWireType(destructors, rv);\n"),i.push(r+"};\n"),function(t){var e=be.length;return be.push(t),e}(t=ae(i).apply(null,a))},K:function(t,e){return he((t=ye(t))[e=ye(e)])},G:function(t){4<t&&(ce[t].hf+=1)},sb:function(t,n,r,i){t=ye(t);var a=Te[n];if(!a){a="";for(var o=0;o<n;++o)a+=(0!==o?", ":"")+"arg"+o;var s="return function emval_allocator_"+n+"(constructor, argTypes, args) {\n";for(o=0;o<n;++o)s+="var argType"+o+" = requireRegisteredType(Module['HEAP32'][(argTypes >>> 2) + "+o+'], "parameter '+o+'");\nvar arg'+o+" = argType"+o+".readValueFromPointer(args);\nargs += argType"+o+"['argPackAdvance'];\n";a=new Function("requireRegisteredType","Module","__emval_register",s+"var obj = new constructor("+a+");\nreturn __emval_register(obj);\n}\n")(de,e,he),Te[n]=a}return a(t,r,i)},ib:function(){return he([])},Ma:function(t){return he(we(t))},jb:function(){return he({})},hb:function(t){return!(t=ye(t))},lb:function(t){gt(ce[t].value),ue(t)},w:function(t,e,n){t=ye(t),e=ye(e),n=ye(n),t[e]=n},s:function(t,e){return he(t=(t=de(t,"_emval_take_value")).readValueFromPointer(e))},d:function(){at()},qb:function(t,e){if(0===t)t=Date.now();else{if(1!==t&&4!==t)return W[yn()>>2]=28,-1;t=Se()}return W[e>>2]=t/1e3|0,W[e+4>>2]=t%1e3*1e6|0,0},Zc:function(t){cn.activeTexture(t)},_c:function(t,e){cn.attachShader(Pe[t],xe[e])},$c:function(t,e,n){cn.bindAttribLocation(Pe[t],e,O(n))},_:function(t,e){35051==t?cn.ef=e:35052==t&&(cn.Ce=e),cn.bindBuffer(t,_e[e])},Z:function(t,e){cn.bindFramebuffer(t,Me[e])},bc:function(t,e){cn.bindRenderbuffer(t,Fe[e])},Pb:function(t,e){cn.bindSampler(t,Re[e])},$:function(t,e){cn.bindTexture(t,Ee[e])},vc:function(t){cn.bindVertexArray(ke[t])},yc:function(t){cn.bindVertexArray(ke[t])},aa:function(t,e,n,r){cn.blendColor(t,e,n,r)},ba:function(t){cn.blendEquation(t)},ca:function(t,e){cn.blendFunc(t,e)},Wb:function(t,e,n,r,i,a,o,s,l,c){cn.blitFramebuffer(t,e,n,r,i,a,o,s,l,c)},da:function(t,e,n,r){2<=je.version?n?cn.bufferData(t,D,r,n,e):cn.bufferData(t,e,r):cn.bufferData(t,n?D.subarray(n,n+e):e,r)},ea:function(t,e,n,r){2<=je.version?cn.bufferSubData(t,e,D,r,n):cn.bufferSubData(t,e,D.subarray(r,r+n))},cc:function(t){return cn.checkFramebufferStatus(t)},L:function(t){cn.clear(t)},Y:function(t,e,n,r){cn.clearColor(t,e,n,r)},P:function(t){cn.clearStencil(t)},fb:function(t,e,n,r){return cn.clientWaitSync(Be[t],e,(n>>>0)+4294967296*r)},fa:function(t,e,n,r){cn.colorMask(!!t,!!e,!!n,!!r)},ga:function(t){cn.compileShader(xe[t])},ha:function(t,e,n,r,i,a,o,s){2<=je.version?cn.Ce?cn.compressedTexImage2D(t,e,n,r,i,a,o,s):cn.compressedTexImage2D(t,e,n,r,i,a,D,s,o):cn.compressedTexImage2D(t,e,n,r,i,a,s?D.subarray(s,s+o):null)},ia:function(t,e,n,r,i,a,o,s,l){2<=je.version?cn.Ce?cn.compressedTexSubImage2D(t,e,n,r,i,a,o,s,l):cn.compressedTexSubImage2D(t,e,n,r,i,a,o,D,l,s):cn.compressedTexSubImage2D(t,e,n,r,i,a,o,l?D.subarray(l,l+s):null)},ja:function(t,e,n,r,i,a,o,s){cn.copyTexSubImage2D(t,e,n,r,i,a,o,s)},ka:function(){var t=Ue(Pe),e=cn.createProgram();return e.name=t,e.Ve=e.Te=e.Ue=0,e.jf=1,Pe[t]=e,t},la:function(t){var e=Ue(xe);return xe[e]=cn.createShader(t),e},ma:function(t){cn.cullFace(t)},na:function(t,e){for(var n=0;n<t;n++){var r=W[e+4*n>>2],i=_e[r];i&&(cn.deleteBuffer(i),i.name=0,_e[r]=null,r==cn.ef&&(cn.ef=0),r==cn.Ce&&(cn.Ce=0))}},dc:function(t,e){for(var n=0;n<t;++n){var r=W[e+4*n>>2],i=Me[r];i&&(cn.deleteFramebuffer(i),i.name=0,Me[r]=null)}},oa:function(t){if(t){var e=Pe[t];e?(cn.deleteProgram(e),e.name=0,Pe[t]=null):Ge(1281)}},ec:function(t,e){for(var n=0;n<t;n++){var r=W[e+4*n>>2],i=Fe[r];i&&(cn.deleteRenderbuffer(i),i.name=0,Fe[r]=null)}},Qb:function(t,e){for(var n=0;n<t;n++){var r=W[e+4*n>>2],i=Re[r];i&&(cn.deleteSampler(i),i.name=0,Re[r]=null)}},pa:function(t){if(t){var e=xe[t];e?(cn.deleteShader(e),xe[t]=null):Ge(1281)}},Yb:function(t){if(t){var e=Be[t];e?(cn.deleteSync(e),e.name=0,Be[t]=null):Ge(1281)}},qa:function(t,e){for(var n=0;n<t;n++){var r=W[e+4*n>>2],i=Ee[r];i&&(cn.deleteTexture(i),i.name=0,Ee[r]=null)}},wc:function(t,e){for(var n=0;n<t;n++){var r=W[e+4*n>>2];cn.deleteVertexArray(ke[r]),ke[r]=null}},zc:function(t,e){for(var n=0;n<t;n++){var r=W[e+4*n>>2];cn.deleteVertexArray(ke[r]),ke[r]=null}},ra:function(t){cn.depthMask(!!t)},sa:function(t){cn.disable(t)},ta:function(t){cn.disableVertexAttribArray(t)},ua:function(t,e,n){cn.drawArrays(t,e,n)},tc:function(t,e,n,r){cn.drawArraysInstanced(t,e,n,r)},rc:function(t,e,n,r,i){cn.nf.drawArraysInstancedBaseInstanceWEBGL(t,e,n,r,i)},pc:function(t,e){for(var n=ze[t],r=0;r<t;r++)n[r]=W[e+4*r>>2];cn.drawBuffers(n)},va:function(t,e,n,r){cn.drawElements(t,e,n,r)},uc:function(t,e,n,r,i){cn.drawElementsInstanced(t,e,n,r,i)},sc:function(t,e,n,r,i,a,o){cn.nf.drawElementsInstancedBaseVertexBaseInstanceWEBGL(t,e,n,r,i,a,o)},jc:function(t,e,n,r,i,a){cn.drawElements(t,r,i,a)},wa:function(t){cn.enable(t)},xa:function(t){cn.enableVertexAttribArray(t)},Ub:function(t,e){return(t=cn.fenceSync(t,e))?(e=Ue(Be),t.name=e,Be[e]=t,e):0},ya:function(){cn.finish()},za:function(){cn.flush()},fc:function(t,e,n,r){cn.framebufferRenderbuffer(t,e,n,Fe[r])},gc:function(t,e,n,r,i){cn.framebufferTexture2D(t,e,n,Ee[r],i)},Aa:function(t){cn.frontFace(t)},Ba:function(t,e){He(t,e,"createBuffer",_e)},hc:function(t,e){He(t,e,"createFramebuffer",Me)},ic:function(t,e){He(t,e,"createRenderbuffer",Fe)},Rb:function(t,e){He(t,e,"createSampler",Re)},Ca:function(t,e){He(t,e,"createTexture",Ee)},xc:function(t,e){He(t,e,"createVertexArray",ke)},Ac:function(t,e){He(t,e,"createVertexArray",ke)},Zb:function(t){cn.generateMipmap(t)},Da:function(t,e,n){n?W[n>>2]=cn.getBufferParameter(t,e):Ge(1281)},Ea:function(){var t=cn.getError()||Ne;return Ne=0,t},_b:function(t,e,n,r){((t=cn.getFramebufferAttachmentParameter(t,e,n))instanceof WebGLRenderbuffer||t instanceof WebGLTexture)&&(t=0|t.name),W[r>>2]=t},F:function(t,e){!function(t,e){if(e){var n=void 0;switch(t){case 36346:n=1;break;case 36344:return;case 34814:case 36345:n=0;break;case 34466:var r=cn.getParameter(34467);n=r?r.length:0;break;case 33309:if(2>je.version)return void Ge(1282);n=2*(cn.getSupportedExtensions()||[]).length;break;case 33307:case 33308:if(2>je.version)return void Ge(1280);n=33307==t?3:0}if(void 0===n)switch(r=cn.getParameter(t),typeof r){case"number":n=r;break;case"boolean":n=r?1:0;break;case"string":return void Ge(1280);case"object":if(null===r)switch(t){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:n=0;break;default:return void Ge(1280)}else{if(r instanceof Float32Array||r instanceof Uint32Array||r instanceof Int32Array||r instanceof Array){for(t=0;t<r.length;++t)W[e+4*t>>2]=r[t];return}try{n=0|r.name}catch(e){return Ge(1280),void A("GL_INVALID_ENUM in glGet0v: Unknown object returned from WebGL getParameter("+t+")! (error: "+e+")")}}break;default:return Ge(1280),void A("GL_INVALID_ENUM in glGet0v: Native code calling glGet0v("+t+") and it returns "+r+" of type "+typeof r+"!")}W[e>>2]=n}else Ge(1281)}(t,e)},Fa:function(t,e,n,r){null===(t=cn.getProgramInfoLog(Pe[t]))&&(t="(unknown error)"),e=0<e&&r?R(t,D,r,e):0,n&&(W[n>>2]=e)},Ga:function(t,e,n){if(n)if(t>=Ce)Ge(1281);else if(t=Pe[t],35716==e)null===(t=cn.getProgramInfoLog(t))&&(t="(unknown error)"),W[n>>2]=t.length+1;else if(35719==e){if(!t.Ve)for(e=0;e<cn.getProgramParameter(t,35718);++e)t.Ve=Math.max(t.Ve,cn.getActiveUniform(t,e).name.length+1);W[n>>2]=t.Ve}else if(35722==e){if(!t.Te)for(e=0;e<cn.getProgramParameter(t,35721);++e)t.Te=Math.max(t.Te,cn.getActiveAttrib(t,e).name.length+1);W[n>>2]=t.Te}else if(35381==e){if(!t.Ue)for(e=0;e<cn.getProgramParameter(t,35382);++e)t.Ue=Math.max(t.Ue,cn.getActiveUniformBlockName(t,e).length+1);W[n>>2]=t.Ue}else W[n>>2]=cn.getProgramParameter(t,e);else Ge(1281)},$b:function(t,e,n){n?W[n>>2]=cn.getRenderbufferParameter(t,e):Ge(1281)},Ha:function(t,e,n,r){null===(t=cn.getShaderInfoLog(xe[t]))&&(t="(unknown error)"),e=0<e&&r?R(t,D,r,e):0,n&&(W[n>>2]=e)},Mb:function(t,e,n,r){t=cn.getShaderPrecisionFormat(t,e),W[n>>2]=t.rangeMin,W[n+4>>2]=t.rangeMax,W[r>>2]=t.precision},Ia:function(t,e,n){n?35716==e?(null===(t=cn.getShaderInfoLog(xe[t]))&&(t="(unknown error)"),W[n>>2]=t?t.length+1:0):35720==e?(t=cn.getShaderSource(xe[t]),W[n>>2]=t?t.length+1:0):W[n>>2]=cn.getShaderParameter(xe[t],e):Ge(1281)},J:function(t){var e=Ie[t];if(!e){switch(t){case 7939:e=Ve((e=(e=cn.getSupportedExtensions()||[]).concat(e.map((function(t){return"GL_"+t})))).join(" "));break;case 7936:case 7937:case 37445:case 37446:(e=cn.getParameter(t))||Ge(1280),e=e&&Ve(e);break;case 7938:e=cn.getParameter(7938),e=Ve(e=2<=je.version?"OpenGL ES 3.0 ("+e+")":"OpenGL ES 2.0 ("+e+")");break;case 35724:var n=(e=cn.getParameter(35724)).match(/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/);null!==n&&(3==n[1].length&&(n[1]+="0"),e="OpenGL ES GLSL ES "+n[1]+" ("+e+")"),e=Ve(e);break;default:Ge(1280)}Ie[t]=e}return e},eb:function(t,e){if(2>je.version)return Ge(1282),0;var n=Le[t];return n?0>e||e>=n.length?(Ge(1281),0):n[e]:7939===t?(n=(n=(n=cn.getSupportedExtensions()||[]).concat(n.map((function(t){return"GL_"+t})))).map((function(t){return Ve(t)})),n=Le[t]=n,0>e||e>=n.length?(Ge(1281),0):n[e]):(Ge(1280),0)},Ja:function(t,e){function n(t){return"]"==t.slice(-1)&&t.lastIndexOf("[")}e=O(e);var r,i=(t=Pe[t]).Ze,a=t.wg,o=0,s=e,l=n(e);if(!i)for(t.Ze=i={},t.uf={},r=0;r<cn.getProgramParameter(t,35718);++r){var c=cn.getActiveUniform(t,r),u=c.name;c=c.size;var h=n(u);h=0<h?u.slice(0,h):u;var f=t.jf;for(t.jf+=c,a[h]=[c,f],u=0;u<c;++u)i[f]=u,t.uf[f++]=h}return 0<l&&(o=parseInt(e.slice(l+1))>>>0,s=e.slice(0,l)),(a=a[s])&&o<a[0]&&(i[o+=a[1]]=i[o]||cn.getUniformLocation(t,e))?o:-1},Nb:function(t,e,n){for(var r=ze[e],i=0;i<e;i++)r[i]=W[n+4*i>>2];cn.invalidateFramebuffer(t,r)},Ob:function(t,e,n,r,i,a,o){for(var s=ze[e],l=0;l<e;l++)s[l]=W[n+4*l>>2];cn.invalidateSubFramebuffer(t,s,r,i,a,o)},Vb:function(t){return cn.isSync(Be[t])},Ka:function(t){return(t=Ee[t])?cn.isTexture(t):0},La:function(t){cn.lineWidth(t)},Na:function(t){t=Pe[t],cn.linkProgram(t),t.Ze=0,t.wg={}},nc:function(t,e,n,r,i,a){cn.sf.multiDrawArraysInstancedBaseInstanceWEBGL(t,W,e>>2,W,n>>2,W,r>>2,j,i>>2,a)},oc:function(t,e,n,r,i,a,o,s){cn.sf.multiDrawElementsInstancedBaseVertexBaseInstanceWEBGL(t,W,e>>2,n,W,r>>2,W,i>>2,W,a>>2,j,o>>2,s)},Oa:function(t,e){3317==t&&(De=e),cn.pixelStorei(t,e)},qc:function(t){cn.readBuffer(t)},Pa:function(t,e,n,r,i,a,o){if(2<=je.version)if(cn.ef)cn.readPixels(t,e,n,r,i,a,o);else{var s=Ye(a);cn.readPixels(t,e,n,r,i,a,s,o>>31-Math.clz32(s.BYTES_PER_ELEMENT))}else(o=qe(a,i,n,r,o))?cn.readPixels(t,e,n,r,i,a,o):Ge(1280)},ac:function(t,e,n,r){cn.renderbufferStorage(t,e,n,r)},Xb:function(t,e,n,r,i){cn.renderbufferStorageMultisample(t,e,n,r,i)},Sb:function(t,e,n){cn.samplerParameteri(Re[t],e,n)},Tb:function(t,e,n){cn.samplerParameteri(Re[t],e,W[n>>2])},Qa:function(t,e,n,r){cn.scissor(t,e,n,r)},Ra:function(t,e,n,r){for(var i="",a=0;a<e;++a){var o=r?W[r+4*a>>2]:-1;i+=O(W[n+4*a>>2],0>o?void 0:o)}cn.shaderSource(xe[t],i)},Sa:function(t,e,n){cn.stencilFunc(t,e,n)},Ta:function(t,e,n,r){cn.stencilFuncSeparate(t,e,n,r)},Ua:function(t){cn.stencilMask(t)},Va:function(t,e){cn.stencilMaskSeparate(t,e)},Wa:function(t,e,n){cn.stencilOp(t,e,n)},Xa:function(t,e,n,r){cn.stencilOpSeparate(t,e,n,r)},Ya:function(t,e,n,r,i,a,o,s,l){if(2<=je.version)if(cn.Ce)cn.texImage2D(t,e,n,r,i,a,o,s,l);else if(l){var c=Ye(s);cn.texImage2D(t,e,n,r,i,a,o,s,c,l>>31-Math.clz32(c.BYTES_PER_ELEMENT))}else cn.texImage2D(t,e,n,r,i,a,o,s,null);else cn.texImage2D(t,e,n,r,i,a,o,s,l?qe(s,o,r,i,l):null)},Za:function(t,e,n){cn.texParameterf(t,e,n)},_a:function(t,e,n){cn.texParameterf(t,e,N[n>>2])},$a:function(t,e,n){cn.texParameteri(t,e,n)},ab:function(t,e,n){cn.texParameteri(t,e,W[n>>2])},kc:function(t,e,n,r,i){cn.texStorage2D(t,e,n,r,i)},bb:function(t,e,n,r,i,a,o,s,l){if(2<=je.version)if(cn.Ce)cn.texSubImage2D(t,e,n,r,i,a,o,s,l);else if(l){var c=Ye(s);cn.texSubImage2D(t,e,n,r,i,a,o,s,c,l>>31-Math.clz32(c.BYTES_PER_ELEMENT))}else cn.texSubImage2D(t,e,n,r,i,a,o,s,null);else c=null,l&&(c=qe(s,o,i,a,l)),cn.texSubImage2D(t,e,n,r,i,a,o,s,c)},cb:function(t,e){cn.uniform1f($e(t),e)},db:function(t,e,n){if(2<=je.version)cn.uniform1fv($e(t),N,n>>2,e);else{if(288>=e)for(var r=Ke[e-1],i=0;i<e;++i)r[i]=N[n+4*i>>2];else r=N.subarray(n>>2,n+4*e>>2);cn.uniform1fv($e(t),r)}},Vc:function(t,e){cn.uniform1i($e(t),e)},Wc:function(t,e,n){if(2<=je.version)cn.uniform1iv($e(t),W,n>>2,e);else{if(288>=e)for(var r=Qe[e-1],i=0;i<e;++i)r[i]=W[n+4*i>>2];else r=W.subarray(n>>2,n+4*e>>2);cn.uniform1iv($e(t),r)}},Xc:function(t,e,n){cn.uniform2f($e(t),e,n)},Yc:function(t,e,n){if(2<=je.version)cn.uniform2fv($e(t),N,n>>2,2*e);else{if(144>=e)for(var r=Ke[2*e-1],i=0;i<2*e;i+=2)r[i]=N[n+4*i>>2],r[i+1]=N[n+(4*i+4)>>2];else r=N.subarray(n>>2,n+8*e>>2);cn.uniform2fv($e(t),r)}},Uc:function(t,e,n){cn.uniform2i($e(t),e,n)},Tc:function(t,e,n){if(2<=je.version)cn.uniform2iv($e(t),W,n>>2,2*e);else{if(144>=e)for(var r=Qe[2*e-1],i=0;i<2*e;i+=2)r[i]=W[n+4*i>>2],r[i+1]=W[n+(4*i+4)>>2];else r=W.subarray(n>>2,n+8*e>>2);cn.uniform2iv($e(t),r)}},Sc:function(t,e,n,r){cn.uniform3f($e(t),e,n,r)},Rc:function(t,e,n){if(2<=je.version)cn.uniform3fv($e(t),N,n>>2,3*e);else{if(96>=e)for(var r=Ke[3*e-1],i=0;i<3*e;i+=3)r[i]=N[n+4*i>>2],r[i+1]=N[n+(4*i+4)>>2],r[i+2]=N[n+(4*i+8)>>2];else r=N.subarray(n>>2,n+12*e>>2);cn.uniform3fv($e(t),r)}},Qc:function(t,e,n,r){cn.uniform3i($e(t),e,n,r)},Pc:function(t,e,n){if(2<=je.version)cn.uniform3iv($e(t),W,n>>2,3*e);else{if(96>=e)for(var r=Qe[3*e-1],i=0;i<3*e;i+=3)r[i]=W[n+4*i>>2],r[i+1]=W[n+(4*i+4)>>2],r[i+2]=W[n+(4*i+8)>>2];else r=W.subarray(n>>2,n+12*e>>2);cn.uniform3iv($e(t),r)}},Oc:function(t,e,n,r,i){cn.uniform4f($e(t),e,n,r,i)},Nc:function(t,e,n){if(2<=je.version)cn.uniform4fv($e(t),N,n>>2,4*e);else{if(72>=e){var r=Ke[4*e-1],i=N;n>>=2;for(var a=0;a<4*e;a+=4){var o=n+a;r[a]=i[o],r[a+1]=i[o+1],r[a+2]=i[o+2],r[a+3]=i[o+3]}}else r=N.subarray(n>>2,n+16*e>>2);cn.uniform4fv($e(t),r)}},Bc:function(t,e,n,r,i){cn.uniform4i($e(t),e,n,r,i)},Cc:function(t,e,n){if(2<=je.version)cn.uniform4iv($e(t),W,n>>2,4*e);else{if(72>=e)for(var r=Qe[4*e-1],i=0;i<4*e;i+=4)r[i]=W[n+4*i>>2],r[i+1]=W[n+(4*i+4)>>2],r[i+2]=W[n+(4*i+8)>>2],r[i+3]=W[n+(4*i+12)>>2];else r=W.subarray(n>>2,n+16*e>>2);cn.uniform4iv($e(t),r)}},Dc:function(t,e,n,r){if(2<=je.version)cn.uniformMatrix2fv($e(t),!!n,N,r>>2,4*e);else{if(72>=e)for(var i=Ke[4*e-1],a=0;a<4*e;a+=4)i[a]=N[r+4*a>>2],i[a+1]=N[r+(4*a+4)>>2],i[a+2]=N[r+(4*a+8)>>2],i[a+3]=N[r+(4*a+12)>>2];else i=N.subarray(r>>2,r+16*e>>2);cn.uniformMatrix2fv($e(t),!!n,i)}},Ec:function(t,e,n,r){if(2<=je.version)cn.uniformMatrix3fv($e(t),!!n,N,r>>2,9*e);else{if(32>=e)for(var i=Ke[9*e-1],a=0;a<9*e;a+=9)i[a]=N[r+4*a>>2],i[a+1]=N[r+(4*a+4)>>2],i[a+2]=N[r+(4*a+8)>>2],i[a+3]=N[r+(4*a+12)>>2],i[a+4]=N[r+(4*a+16)>>2],i[a+5]=N[r+(4*a+20)>>2],i[a+6]=N[r+(4*a+24)>>2],i[a+7]=N[r+(4*a+28)>>2],i[a+8]=N[r+(4*a+32)>>2];else i=N.subarray(r>>2,r+36*e>>2);cn.uniformMatrix3fv($e(t),!!n,i)}},Fc:function(t,e,n,r){if(2<=je.version)cn.uniformMatrix4fv($e(t),!!n,N,r>>2,16*e);else{if(18>=e){var i=Ke[16*e-1],a=N;r>>=2;for(var o=0;o<16*e;o+=16){var s=r+o;i[o]=a[s],i[o+1]=a[s+1],i[o+2]=a[s+2],i[o+3]=a[s+3],i[o+4]=a[s+4],i[o+5]=a[s+5],i[o+6]=a[s+6],i[o+7]=a[s+7],i[o+8]=a[s+8],i[o+9]=a[s+9],i[o+10]=a[s+10],i[o+11]=a[s+11],i[o+12]=a[s+12],i[o+13]=a[s+13],i[o+14]=a[s+14],i[o+15]=a[s+15]}}else i=N.subarray(r>>2,r+64*e>>2);cn.uniformMatrix4fv($e(t),!!n,i)}},Gc:function(t){t=Pe[t],cn.useProgram(t),cn.Df=t},Hc:function(t,e){cn.vertexAttrib1f(t,e)},Ic:function(t,e){cn.vertexAttrib2f(t,N[e>>2],N[e+4>>2])},Jc:function(t,e){cn.vertexAttrib3f(t,N[e>>2],N[e+4>>2],N[e+8>>2])},Kc:function(t,e){cn.vertexAttrib4f(t,N[e>>2],N[e+4>>2],N[e+8>>2],N[e+12>>2])},lc:function(t,e){cn.vertexAttribDivisor(t,e)},mc:function(t,e,n,r,i){cn.vertexAttribIPointer(t,e,n,r,i)},Lc:function(t,e,n,r,i,a){cn.vertexAttribPointer(t,e,n,!!r,i,a)},Mc:function(t,e,n,r){cn.viewport(t,e,n,r)},gb:function(t,e,n,r){cn.waitSync(Be[t],e,(n>>>0)+4294967296*r)},e:function(t,e){throw Sn(t,e||1),"longjmp"},pb:function(t){var e=D.length;if(2147483648<(t>>>=0))return!1;for(var n=1;4>=n;n*=2){var r=e*(1+.2/n);r=Math.min(r,t+100663296),0<(r=Math.max(t,r))%65536&&(r+=65536-r%65536);t:{try{_.grow(Math.min(2147483648,r)-I.byteLength+65535>>>16),Q();var i=1;break t}catch(t){}i=void 0}if(i)return!0}return!1},kb:function(){return je?je.Rf:0},ub:function(t,e){var n=0;return Je().forEach((function(r,i){var a=e+n;for(i=W[t+4*i>>2]=a,a=0;a<r.length;++a)L[i++>>0]=r.charCodeAt(a);L[i>>0]=0,n+=r.length+1})),0},vb:function(t,e){var n=Je();W[t>>2]=n.length;var r=0;return n.forEach((function(t){r+=t.length+1})),W[e>>2]=r,0},Gb:function(t){C||(e.onExit&&e.onExit(t),P=!0),d(t,new Cn(t))},H:function(){return 0},tb:function(t,e){return t=1==t||2==t?2:at(),L[e>>0]=t,0},nb:function(t,e,n,r,i,a){return t=pt.Nf(t),e=pt.Ef(t,e,n,r),W[a>>2]=e,0},wb:function(t,e,n,r){return t=pt.Nf(t),e=pt.Ef(t,e,n),W[r>>2]=e,0},mb:function(){},N:function(t,e,n,r){for(var i=0,a=0;a<n;a++){for(var o=W[e+8*a>>2],s=W[e+(8*a+4)>>2],l=0;l<s;l++){var c=D[o+l],u=dt[t];0===c||10===c?((1===t?b:A)(E(u,0)),u.length=0):u.push(c)}i+=s}return W[r>>2]=i,0},a:function(){return T},l:function(t,e){var n=bn();try{return Z.get(t)(e)}catch(t){if(An(n),t!==t+0&&"longjmp"!==t)throw t;Sn(1,0)}},o:function(t,e,n){var r=bn();try{return Z.get(t)(e,n)}catch(t){if(An(r),t!==t+0&&"longjmp"!==t)throw t;Sn(1,0)}},g:function(t,e,n,r){var i=bn();try{return Z.get(t)(e,n,r)}catch(t){if(An(i),t!==t+0&&"longjmp"!==t)throw t;Sn(1,0)}},D:function(t,e,n,r,i){var a=bn();try{return Z.get(t)(e,n,r,i)}catch(t){if(An(a),t!==t+0&&"longjmp"!==t)throw t;Sn(1,0)}},Lb:function(t,e,n,r,i,a){var o=bn();try{return Z.get(t)(e,n,r,i,a)}catch(t){if(An(o),t!==t+0&&"longjmp"!==t)throw t;Sn(1,0)}},W:function(t,e,n,r,i,a,o){var s=bn();try{return Z.get(t)(e,n,r,i,a,o)}catch(t){if(An(s),t!==t+0&&"longjmp"!==t)throw t;Sn(1,0)}},V:function(t,e,n,r,i,a,o,s,l,c){var u=bn();try{return Z.get(t)(e,n,r,i,a,o,s,l,c)}catch(t){if(An(u),t!==t+0&&"longjmp"!==t)throw t;Sn(1,0)}},U:function(t){var e=bn();try{Z.get(t)()}catch(t){if(An(e),t!==t+0&&"longjmp"!==t)throw t;Sn(1,0)}},n:function(t,e){var n=bn();try{Z.get(t)(e)}catch(t){if(An(n),t!==t+0&&"longjmp"!==t)throw t;Sn(1,0)}},r:function(t,e,n){var r=bn();try{Z.get(t)(e,n)}catch(t){if(An(r),t!==t+0&&"longjmp"!==t)throw t;Sn(1,0)}},i:function(t,e,n,r){var i=bn();try{Z.get(t)(e,n,r)}catch(t){if(An(i),t!==t+0&&"longjmp"!==t)throw t;Sn(1,0)}},q:function(t,e,n,r,i){var a=bn();try{Z.get(t)(e,n,r,i)}catch(t){if(An(a),t!==t+0&&"longjmp"!==t)throw t;Sn(1,0)}},Jb:function(t,e,n,r,i,a){var o=bn();try{Z.get(t)(e,n,r,i,a)}catch(t){if(An(o),t!==t+0&&"longjmp"!==t)throw t;Sn(1,0)}},Hb:function(t,e,n,r,i,a,o){var s=bn();try{Z.get(t)(e,n,r,i,a,o)}catch(t){if(An(s),t!==t+0&&"longjmp"!==t)throw t;Sn(1,0)}},Ib:function(t,e,n,r,i,a,o,s,l,c){var u=bn();try{Z.get(t)(e,n,r,i,a,o,s,l,c)}catch(t){if(An(u),t!==t+0&&"longjmp"!==t)throw t;Sn(1,0)}},b:function(t){T=t},rb:function(t,e,n,r){return on(t,e,n,r)}};!function(){function t(t){e.asm=t.exports,_=e.asm.ad,Q(),Z=e.asm.dd,tt.unshift(e.asm.bd),rt--,e.monitorRunDependencies&&e.monitorRunDependencies(rt),0==rt&&it&&(t=it,it=null,t())}function n(e){t(e.instance)}function r(t){return function(){if(!S&&(l||c)){if("function"==typeof fetch&&!st.startsWith("file://"))return fetch(st,{credentials:"same-origin"}).then((function(t){if(!t.ok)throw"failed to load wasm binary file at '"+st+"'";return t.arrayBuffer()})).catch((function(){return ct()}));if(m)return new Promise((function(t,e){m(st,(function(e){t(new Uint8Array(e))}),e)}))}return Promise.resolve().then((function(){return ct()}))}().then((function(t){return WebAssembly.instantiate(t,a)})).then(t,(function(t){A("failed to asynchronously prepare wasm: "+t),at(t)}))}var a={a:dn};if(rt++,e.monitorRunDependencies&&e.monitorRunDependencies(rt),e.instantiateWasm)try{return e.instantiateWasm(a,t)}catch(t){return A("Module.instantiateWasm callback failed with error: "+t),!1}(S||"function"!=typeof WebAssembly.instantiateStreaming||ot()||st.startsWith("file://")||"function"!=typeof fetch?r(n):fetch(st,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,a).then(n,(function(t){return A("wasm streaming compile failed: "+t),A("falling back to ArrayBuffer instantiation"),r(n)}))}))).catch(i)}(),e.___wasm_call_ctors=function(){return(e.___wasm_call_ctors=e.asm.bd).apply(null,arguments)};var pn=e._memset=function(){return(pn=e._memset=e.asm.cd).apply(null,arguments)},mn=e._malloc=function(){return(mn=e._malloc=e.asm.ed).apply(null,arguments)},gn=e._free=function(){return(gn=e._free=e.asm.fd).apply(null,arguments)},yn=e.___errno_location=function(){return(yn=e.___errno_location=e.asm.gd).apply(null,arguments)},vn=e.___getTypeName=function(){return(vn=e.___getTypeName=e.asm.hd).apply(null,arguments)};e.___embind_register_native_and_builtin_types=function(){return(e.___embind_register_native_and_builtin_types=e.asm.id).apply(null,arguments)};var wn,bn=e.stackSave=function(){return(bn=e.stackSave=e.asm.jd).apply(null,arguments)},An=e.stackRestore=function(){return(An=e.stackRestore=e.asm.kd).apply(null,arguments)},Sn=e._setThrew=function(){return(Sn=e._setThrew=e.asm.ld).apply(null,arguments)},Tn=e._memalign=function(){return(Tn=e._memalign=e.asm.md).apply(null,arguments)};function Cn(t){this.name="ExitStatus",this.message="Program terminated with exit("+t+")",this.status=t}function _n(){function t(){if(!wn&&(wn=!0,e.calledRun=!0,!P)){if(ut(tt),r(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),e.postRun)for("function"==typeof e.postRun&&(e.postRun=[e.postRun]);e.postRun.length;){var t=e.postRun.shift();et.unshift(t)}ut(et)}}if(!(0<rt)){if(e.preRun)for("function"==typeof e.preRun&&(e.preRun=[e.preRun]);e.preRun.length;)nt();ut(J),0<rt||(e.setStatus?(e.setStatus("Running..."),setTimeout((function(){setTimeout((function(){e.setStatus("")}),1),t()}),1)):t())}}if(e.dynCall_iiiji=function(){return(e.dynCall_iiiji=e.asm.nd).apply(null,arguments)},e.dynCall_ji=function(){return(e.dynCall_ji=e.asm.od).apply(null,arguments)},e.dynCall_iiji=function(){return(e.dynCall_iiji=e.asm.pd).apply(null,arguments)},e.dynCall_iijjiii=function(){return(e.dynCall_iijjiii=e.asm.qd).apply(null,arguments)},e.dynCall_iij=function(){return(e.dynCall_iij=e.asm.rd).apply(null,arguments)},e.dynCall_vijjjii=function(){return(e.dynCall_vijjjii=e.asm.sd).apply(null,arguments)},e.dynCall_viji=function(){return(e.dynCall_viji=e.asm.td).apply(null,arguments)},e.dynCall_vijiii=function(){return(e.dynCall_vijiii=e.asm.ud).apply(null,arguments)},e.dynCall_viiiiij=function(){return(e.dynCall_viiiiij=e.asm.vd).apply(null,arguments)},e.dynCall_viijii=function(){return(e.dynCall_viijii=e.asm.wd).apply(null,arguments)},e.dynCall_jii=function(){return(e.dynCall_jii=e.asm.xd).apply(null,arguments)},e.dynCall_iiij=function(){return(e.dynCall_iiij=e.asm.yd).apply(null,arguments)},e.dynCall_iiiij=function(){return(e.dynCall_iiiij=e.asm.zd).apply(null,arguments)},e.dynCall_viij=function(){return(e.dynCall_viij=e.asm.Ad).apply(null,arguments)},e.dynCall_viiij=function(){return(e.dynCall_viiij=e.asm.Bd).apply(null,arguments)},e.dynCall_vij=function(){return(e.dynCall_vij=e.asm.Cd).apply(null,arguments)},e.dynCall_jiiii=function(){return(e.dynCall_jiiii=e.asm.Dd).apply(null,arguments)},e.dynCall_jiiiiii=function(){return(e.dynCall_jiiiiii=e.asm.Ed).apply(null,arguments)},e.dynCall_jiiiiji=function(){return(e.dynCall_jiiiiji=e.asm.Fd).apply(null,arguments)},e.dynCall_iijj=function(){return(e.dynCall_iijj=e.asm.Gd).apply(null,arguments)},e.dynCall_jiji=function(){return(e.dynCall_jiji=e.asm.Hd).apply(null,arguments)},e.dynCall_iiiiij=function(){return(e.dynCall_iiiiij=e.asm.Id).apply(null,arguments)},e.dynCall_iiiiijj=function(){return(e.dynCall_iiiiijj=e.asm.Jd).apply(null,arguments)},e.dynCall_iiiiiijj=function(){return(e.dynCall_iiiiiijj=e.asm.Kd).apply(null,arguments)},it=function t(){wn||_n(),wn||(it=t)},e.run=_n,e.preInit)for("function"==typeof e.preInit&&(e.preInit=[e.preInit]);0<e.preInit.length;)e.preInit.pop()();return _n(),t.ready});t.exports=r}(E);const O=E.exports;class R{}R.Transparent=[0,0,0,0],R.MediumVioletRed=[199,21,133,1],R.DeepPink=[255,20,147,1],R.PaleVioletRed=[219,112,147,1],R.HotPink=[255,105,180,1],R.LightPink=[255,182,193,1],R.Pink=[255,192,203,1],R.DarkRed=[139,0,0,1],R.Red=[255,0,0,1],R.Firebrick=[178,34,34,1],R.Crimson=[220,20,60,1],R.IndianRed=[205,92,92,1],R.LightCoral=[240,128,128,1],R.Salmon=[250,128,114,1],R.DarkSalmon=[233,150,122,1],R.LightSalmon=[255,160,122,1],R.OrangeRed=[255,69,0,1],R.Tomato=[255,99,71,1],R.DarkOrange=[255,140,0,1],R.Coral=[255,127,80,1],R.Orange=[255,165,0,1],R.DarkKhaki=[189,183,107,1],R.Gold=[255,215,0,1],R.Khaki=[240,230,140,1],R.PeachPuff=[255,218,185,1],R.Yellow=[255,255,0,1],R.PaleGoldenrod=[238,232,170,1],R.Moccasin=[255,228,181,1],R.PapayaWhip=[255,239,213,1],R.LightGoldenrodYellow=[250,250,210,1],R.LemonChiffon=[255,250,205,1],R.LightYellow=[255,255,224,1],R.Maroon=[128,0,0,1],R.Brown=[165,42,42,1],R.SaddleBrown=[139,69,19,1],R.Sienna=[160,82,45,1],R.Chocolate=[210,105,30,1],R.DarkGoldenrod=[184,134,11,1],R.Peru=[205,133,63,1],R.RosyBrown=[188,143,143,1],R.Goldenrod=[218,165,32,1],R.SandyBrown=[244,164,96,1],R.Tan=[210,180,140,1],R.Burlywood=[222,184,135,1],R.Wheat=[245,222,179,1],R.NavajoWhite=[255,222,173,1],R.Bisque=[255,228,196,1],R.BlanchedAlmond=[255,235,205,1],R.Cornsilk=[255,248,220,1],R.DarkGreen=[0,100,0,1],R.Green=[0,128,0,1],R.DarkOliveGreen=[85,107,47,1],R.ForestGreen=[34,139,34,1],R.SeaGreen=[46,139,87,1],R.Olive=[128,128,0,1],R.OliveDrab=[107,142,35,1],R.MediumSeaGreen=[60,179,113,1],R.LimeGreen=[50,205,50,1],R.Lime=[0,255,0,1],R.SpringGreen=[0,255,127,1],R.MediumSpringGreen=[0,250,154,1],R.DarkSeaGreen=[143,188,143,1],R.MediumAquamarine=[102,205,170,1],R.YellowGreen=[154,205,50,1],R.LawnGreen=[124,252,0,1],R.Chartreuse=[127,255,0,1],R.LightGreen=[144,238,144,1],R.GreenYellow=[173,255,47,1],R.PaleGreen=[152,251,152,1],R.Teal=[0,128,128,1],R.DarkCyan=[0,139,139,1],R.LightSeaGreen=[32,178,170,1],R.CadetBlue=[95,158,160,1],R.DarkTurquoise=[0,206,209,1],R.MediumTurquoise=[72,209,204,1],R.Turquoise=[64,224,208,1],R.Aqua=[0,255,255,1],R.Cyan=[0,255,255,1],R.Aquamarine=[127,255,212,1],R.PaleTurquoise=[175,238,238,1],R.LightCyan=[224,255,255,1],R.Navy=[0,0,128,1],R.DarkBlue=[0,0,139,1],R.MediumBlue=[0,0,205,1],R.Blue=[0,0,255,1],R.MidnightBlue=[25,25,112,1],R.RoyalBlue=[65,105,225,1],R.SteelBlue=[70,130,180,1],R.DodgerBlue=[30,144,255,1],R.DeepSkyBlue=[0,191,255,1],R.CornflowerBlue=[100,149,237,1],R.SkyBlue=[135,206,235,1],R.LightSkyBlue=[135,206,250,1],R.LightSteelBlue=[176,196,222,1],R.LightBlue=[173,216,230,1],R.PowderBlue=[176,224,230,1],R.Indigo=[75,0,130,1],R.Purple=[128,0,128,1],R.DarkMagenta=[139,0,139,1],R.DarkViolet=[148,0,211,1],R.DarkSlateBlue=[72,61,139,1],R.BlueViolet=[138,43,226,1],R.DarkOrchid=[153,50,204,1],R.Fuchsia=[255,0,255,1],R.Magenta=[255,0,255,1],R.SlateBlue=[106,90,205,1],R.MediumSlateBlue=[123,104,238,1],R.MediumOrchid=[186,85,211,1],R.MediumPurple=[147,112,219,1],R.Orchid=[218,112,214,1],R.Violet=[238,130,238,1],R.Plum=[221,160,221,1],R.Thistle=[216,191,216,1],R.Lavender=[230,230,250,1],R.MistyRose=[255,228,225,1],R.AntiqueWhite=[250,235,215,1],R.Linen=[250,240,230,1],R.Beige=[245,245,220,1],R.WhiteSmoke=[245,245,245,1],R.LavenderBlush=[255,240,245,1],R.OldLace=[253,245,230,1],R.AliceBlue=[240,248,255,1],R.Seashell=[255,245,238,1],R.GhostWhite=[248,248,255,1],R.Honeydew=[240,255,240,1],R.FloralWhite=[255,250,240,1],R.Azure=[240,255,255,1],R.MintCream=[245,255,250,1],R.Snow=[255,250,250,1],R.Ivory=[255,255,240,1],R.White=[255,255,255,1],R.Black=[0,0,0,1],R.DarkSlateGray=[47,79,79,1],R.DimGray=[105,105,105,1],R.SlateGray=[112,128,144,1],R.Gray=[128,128,128,1],R.LightSlateGray=[119,136,153,1],R.DarkGray=[169,169,169,1],R.Silver=[192,192,192,1],R.LightGray=[211,211,211,1],R.Gainsboro=[220,220,220,1],R.RebeccaPurple=[102,51,153,1];class B{}var I,L,D,G,U,W,j;B.FPS_DISPLAY_TEXT_FONT_SIZE=12,B.FPS_DISPLAY_TEXT_COLOR=[0,0,0,.5],B.FPS_DISPLAY_UPDATE_INTERVAL=500,B.DEFAULT_SCENE_BACKGROUND_COLOR=R.WhiteSmoke,B.DEFAULT_SHAPE_FILL_COLOR=R.Red,B.DEFAULT_FONT_COLOR=R.Black,B.DEFAULT_FONT_SIZE=16,B.LIMITED_FPS_RATE=5,function(t){t.entity="Entity",t.scene="Scene",t.sprite="Sprite",t.label="Label",t.textline="TextLine",t.shape="Shape",t.composite="Composite"}(I||(I={}));class N{constructor(t,e){null!=t&&null!=e?(this.x=t,this.y=e):(this.x=0,this.y=0)}}!function(t){t.topToTopOf="topToTopOf",t.topToBottomOf="topToBottomOf",t.bottomToTopOf="bottomToTopOf",t.bottomToBottomOf="bottomToBottomOf",t.startToStartOf="startToStartOf",t.startToEndOf="startToEndOf",t.endToEndOf="endToEndOf",t.endToStartOf="endToStartOf"}(L||(L={}));class z{constructor(t,e){this.verticalConstraint=!1,this.focalEntityMinimum=!1,this.alterEntityMinimum=!1,this.verticalTypes=[L.topToTopOf,L.topToBottomOf,L.bottomToTopOf,L.bottomToBottomOf],this.focalEntityMinimumTypes=[L.topToTopOf,L.topToBottomOf,L.startToStartOf,L.startToEndOf],this.alterEntityMinimumTypes=[L.topToTopOf,L.bottomToTopOf,L.startToStartOf,L.endToStartOf],this.type=t,this.alterEntity=e,this.verticalTypes.includes(t)?(this.verticalConstraint=!0,this.focalEntityMinimumTypes.includes(t)?this.focalEntityMinimum=!0:this.focalEntityMinimum=!1,this.alterEntityMinimumTypes.includes(t)?this.alterEntityMinimum=!0:this.alterEntityMinimum=!1):(this.verticalConstraint=!1,this.focalEntityMinimumTypes.includes(t)?this.focalEntityMinimum=!0:this.focalEntityMinimum=!1,this.alterEntityMinimumTypes.includes(t)?this.alterEntityMinimum=!0:this.alterEntityMinimum=!1)}}class H{constructor(t=0,e=0){this.width=t,this.height=e,this.width=t,this.height=e}}class V{static generate(){let t=(new Date).getTime(),e=performance&&performance.now&&1e3*performance.now()||0;return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(n=>{let r=16*Math.random();return t>0?(r=(t+r)%16|0,t=Math.floor(t/16)):(r=(e+r)%16|0,e=Math.floor(e/16)),("x"==n?r:7&r|8).toString(16)}))}}function Y(t,e){t.isDrawable&&function(t,e){e.anchorPoint&&(t.anchorPoint=e.anchorPoint),e.zPosition&&(t.zPosition=e.zPosition)}(t,e),t.isText&&function(t,e){e.text&&(t.text=e.text),e.fontName&&(t.fontName=e.fontName),e.fontColor&&(t.fontColor=e.fontColor),e.fontSize&&(t.fontSize=e.fontSize)}(t,e)}class q{constructor(t={}){this.type=I.entity,this.isDrawable=!1,this.isShape=!1,this.isText=!1,this.position=new N(0,0),this.scale=1,this.isUserInteractionEnabled=!1,this.hidden=!1,this.layout={},this.children=new Array,this.absolutePosition=new N(0,0),this.size=new H(0,0),this.absoluteScale=1,this.actions=new Array,this.originalActions=new Array,this.eventListeners=new Array,this.uuid=V.generate(),this.needsInitialization=!0,this.userData={},this.loopMessages=new Set,this.toString=()=>this.name!==this.uuid?`"${this.name}" (${this.type}, ${this.uuid})`:`"${this.type} (${this.uuid})`,void 0===t.name?this.name=this.uuid:this.name=t.name,t.position&&(this.position=t.position),t.scale&&(this.scale=t.scale),t.isUserInteractionEnabled&&(this.isUserInteractionEnabled=t.isUserInteractionEnabled),t.layout&&(this.layout=t.layout)}initialize(){throw new Error("initialize() called in abstract base class Entity.")}addChild(t){if(t.type==I.scene)throw new Error("A scene cannot be the child of an entity. A scene can only be added to a game object");if(t.parent=this,this.children.map((t=>t.name)).includes(t.name))throw new Error(`Cannot add child entity ${t.toString()} to parent entity ${this.toString()}. A child with name "${t.name}" already exists on parent.`);this.children.push(t)}removeAllChildren(){for(;this.children.length;)this.children.pop()}removeChild(t){if(!this.children.includes(t))throw new Error(`cannot remove entity ${t} from parent ${this} because the entity is not currently a child of the parent`);this.children=this.children.filter((t=>t!=t))}descendant(t){const e=this.descendants.filter((e=>e.name===t)).find(Boolean);if(void 0===e)throw new Error(`descendant with name ${t} not found on parent ${this.toString()}`);return e}get descendants(){function t(e,n){n.push(e),e.children.forEach((e=>t(e,n)))}const e=new Array;return this.children.forEach((n=>t(n,e))),e}onTapDown(t,e=!0){const n={eventType:"tapdown",entityName:this.name,callback:t};e&&(this.eventListeners=this.eventListeners.filter((t=>t.entityName!==n.entityName))),this.eventListeners.push(n)}parseLayoutConstraints(t,e){const n=new Array;return Object.values(L).forEach((r=>{if(void 0!==t[r]){let i,a="";if(t[r]instanceof q)i=t[r];else{const n=t[r];i=e.filter((t=>t.name===n)).find(Boolean),a=`. sibling entity named "${n}" has not been added to the game object`}if(void 0===i)throw new Error("could not find sibling entity for constraint"+a);const o=new z(r,i);n.push(o)}})),n}calculateYFromConstraint(t,e,n,r){let i=t.alterEntity.absolutePosition.y;return t.alterEntityMinimum?t.alterEntity.type!==I.scene&&(i-=.5*t.alterEntity.size.height*r):t.alterEntity.type!==I.scene?i+=.5*t.alterEntity.size.height*r:i+=t.alterEntity.size.height*r,t.focalEntityMinimum?(i+=.5*this.size.height*r,i+=e*r):(i-=.5*this.size.height*r,i-=n*r),i}calculateXFromConstraint(t,e,n,r){let i=t.alterEntity.absolutePosition.x;return t.alterEntityMinimum?t.alterEntity.type!==I.scene&&(i-=.5*t.alterEntity.size.width*r):t.alterEntity.type!==I.scene?i+=.5*t.alterEntity.size.width*r:i+=t.alterEntity.size.width*r,t.focalEntityMinimum?(i+=.5*this.size.width*r,i+=e*r):(i-=.5*this.size.width*r,i-=n*r),i}update(){var t,n,r,i,a,o,s,l,c,u,h,f,d,p,m,g;if(this.needsInitialization&&(this.initialize(),this.needsInitialization=!1),void 0===this.parent)this.absolutePosition.x=this.position.x*this.scale,this.absolutePosition.y=this.position.y*this.scale,this.absoluteScale=this.scale;else if(this.absoluteScale=this.parent.absoluteScale*this.scale,void 0===(null===(t=this.layout)||void 0===t?void 0:t.constraints))this.absolutePosition.x=this.parent.absolutePosition.x+this.position.x*this.parent.absoluteScale,this.absolutePosition.y=this.parent.absolutePosition.y+this.position.y*this.parent.absoluteScale;else{const t=null!==(i=null===(r=null===(n=this.layout)||void 0===n?void 0:n.constraints)||void 0===r?void 0:r.horizontalBias)&&void 0!==i?i:.5,e=null!==(s=null===(o=null===(a=this.layout)||void 0===a?void 0:a.constraints)||void 0===o?void 0:o.verticalBias)&&void 0!==s?s:.5,y=null!==(c=null===(l=this.layout)||void 0===l?void 0:l.marginTop)&&void 0!==c?c:0,v=null!==(h=null===(u=this.layout)||void 0===u?void 0:u.marginBottom)&&void 0!==h?h:0,w=null!==(d=null===(f=this.layout)||void 0===f?void 0:f.marginStart)&&void 0!==d?d:0,b=null!==(m=null===(p=this.layout)||void 0===p?void 0:p.marginEnd)&&void 0!==m?m:0,A=this.parseLayoutConstraints(null===(g=this.layout)||void 0===g?void 0:g.constraints,this.parentSceneAsEntity.descendants),S=this.parent.absoluteScale,T=A.filter((t=>t.verticalConstraint)).map((t=>this.calculateYFromConstraint(t,y,v,S)));0===T.length||(1===T.length?this.absolutePosition.y=T[0]:2===T.length&&(this.absolutePosition.y=Math.min(T[0],T[1])+e*Math.abs(T[0]-T[1])));const C=A.filter((t=>!t.verticalConstraint)).map((t=>this.calculateXFromConstraint(t,w,b,S)));0===C.length||(1===C.length?this.absolutePosition.x=C[0]:2===C.length&&(this.absolutePosition.x=Math.min(C[0],C[1])+t*Math.abs(C[0]-C[1])))}const y=this.actions.filter((t=>t.runDuringTransition&&!t.completed)),v=this.actions.filter((t=>!t.runDuringTransition&&!t.completed));y.length>0?(y.forEach((t=>{-1===t.runStartTime&&(t.runStartTime=Globals.now)})),y.forEach((t=>e.evaluateAction(t,this,Globals.now,Globals.deltaTime)))):v.length>0&&(v.forEach((t=>{-1===t.runStartTime&&(t.runStartTime=Globals.now)})),v.forEach((t=>e.evaluateAction(t,this,Globals.now,Globals.deltaTime))));const w=new Map;this.children.forEach((t=>{var e;w.set(t.uuid,function(t,e){const n=new Array;return void 0===e||Object.values(L).forEach((r=>{if(void 0!==e[r]){let i,a="";if(e[r]instanceof q)i=e[r];else{const n=e[r];let o;o=t.type===I.scene?t.descendants:t.parentSceneAsEntity.descendants,i=o.filter((t=>t.name===n)).find(Boolean),void 0===i&&(a=`. sibling entity named "${n}" has not been added to the game object`)}if(void 0===i)throw new Error("error getting uuid of sibling contraint"+a);i!==t&&n.push(i.uuid)}})),n}(this,null===(e=t.layout)||void 0===e?void 0:e.constraints))}));const b=this.findTopologicalSort(w);if(b.length>0){const t=b.reverse(),e=new Array;t.forEach((t=>{const n=this.children.filter((e=>e.uuid===t)).find(Boolean);if(void 0===n)throw new Error("error in dag topological sort");e.push(n)})),e.forEach((t=>t.update()))}else this.children.forEach((t=>t.update()))}drawChildren(t){this.children.filter((t=>!t.hidden&&t.isDrawable)).map((t=>t)).sort(((t,e)=>t.zPosition-e.zPosition)).forEach((e=>e.draw(t)))}run(t,n){this.actions.push(...t.initialize(this,n)),this.originalActions=this.actions.filter((t=>!1===t.runDuringTransition)).map((t=>e.cloneAction(t,n)))}removeAction(t){this.actions=this.actions.filter((e=>e.key!==t))}removeAllActions(){for(;this.actions.length;)this.actions.pop()}static getEntityOptions(t){return{name:t.name,position:t.position,scale:t.scale,isUserInteractionEnabled:t.isUserInteractionEnabled,hidden:t.hidden}}static getDrawableOptions(t){return{anchorPoint:t.anchorPoint,zPosition:t.zPosition}}static getTextOptions(t){return{text:t.text,fontName:t.fontName,fontColor:t.fontColor,fontSize:t.fontSize}}get canvasKit(){let t;return t=this.type===I.scene?this:this.parentSceneAsEntity,t.game.canvasKit}get parentSceneAsEntity(){if(this.type===I.scene)throw new Error(`Entity ${this} is a scene and cannot have a parent scene`);if(this.parent&&this.parent.type===I.scene)return this.parent;if(this.parent)return this.parent.parentSceneAsEntity;throw new Error(`Entity ${this} has not been added to a scene`)}findTopologicalSort(t){var e;const n=[],r=new Map;t.forEach(((t,e)=>{r.has(e)||r.set(e,0),t.forEach((t=>{r.has(t)?r.set(t,r.get(t)+1):r.set(t,1)}))}));const i=[];for(r.forEach(((t,e)=>{0==t&&i.push(e)}));i.length>0;){const a=i.shift();if(void 0===a)throw"bad";n.push(a),t.has(a)&&(null===(e=t.get(a))||void 0===e||e.forEach((t=>{if(r.has(t)&&r.get(t)>0){const e=r.get(t)-1;r.set(t,e),0==e&&i.push(t)}})))}return n}}class $ extends q{constructor(t={}){super(t),this.type=I.sprite,this.isDrawable=!0,this.anchorPoint=new N(.5,.5),this.zPosition=0,this._imageName="",Y(this,t),t.imageName&&(this.imageName=t.imageName)}initialize(){const t=this.parentSceneAsEntity.game.session;if(!t)throw new Error("activity is undefined");const e=t.imageManager,n=this.parentSceneAsEntity.game.uuid;if(this.loadedImage=e.getLoadedImage(n,this._imageName),!this.loadedImage)throw new Error(`could not create sprite. the image named ${this._imageName} has not been loaded`);this.size.width=this.loadedImage.width,this.size.height=this.loadedImage.height}set imageName(t){this._imageName=t,this.needsInitialization=!0}get imageName(){return this._imageName}update(){super.update()}draw(t){if(!this.hidden){if(this.loadedImage){t.save();const e=Globals.canvasScale/this.absoluteScale;t.scale(1/e,1/e);const n=(this.absolutePosition.x-this.size.width*this.anchorPoint.x*this.absoluteScale)*e,r=(this.absolutePosition.y-this.size.height*this.anchorPoint.y*this.absoluteScale)*e;t.drawImage(this.loadedImage.image,n,r),t.restore()}super.drawChildren(t)}}}class X extends q{constructor(t={}){super(t),this.type=I.scene,this.isDrawable=!0,this.anchorPoint=new N(0,0),this.zPosition=0,this._backgroundColor=B.DEFAULT_SCENE_BACKGROUND_COLOR,this._active=!1,this._transitioning=!1,Y(this,t),t.backgroundColor&&(this.backgroundColor=t.backgroundColor)}initialize(){this.scale=Globals.rootScale,this.size.width=this.game.canvasCssWidth,this.size.height=this.game.canvasCssHeight,this.backgroundPaint=new this.canvasKit.Paint,this.backgroundPaint.setColor(this.canvasKit.Color(this.backgroundColor[0],this.backgroundColor[1],this.backgroundColor[2],this.backgroundColor[3])),this.backgroundPaint.setStyle(this.canvasKit.PaintStyle.Fill)}set game(t){this._game=t}get game(){if(void 0===this._game)throw new Error("no active game");return this._game}get backgroundColor(){return this._backgroundColor}set backgroundColor(t){this._backgroundColor=t,this.needsInitialization=!0}setup(t){this._setupCallback=t}draw(t){t.save();const e=Globals.canvasScale/this.absoluteScale;t.scale(1/e,1/e);const n=this.canvasKit.RRectXY(this.canvasKit.LTRBRect(this.position.x*e*Globals.rootScale,this.position.y*e*Globals.rootScale,(this.position.x+this.size.width)*e*Globals.rootScale,(this.position.y+this.size.height)*e*Globals.rootScale),0,0);t.drawRRect(n,this.backgroundPaint),t.restore(),super.drawChildren(t)}}class K{constructor(){this.duration=0}static push(t,e){return new Q(t,e)}}class Q extends K{constructor(t,e){super(),this.type=D.push,this.direction=t,this.duration=e}}!function(t){t.push="Push"}(D||(D={})),function(t){t.up="Up",t.down="Down",t.right="Right",t.left="Left"}(G||(G={}));class Z{constructor(t,e){this.scene=t,this.transition=e}}class J{constructor(t,e={}){this.uuid=V.generate(),this.data={trials:new Array,metadata:{userAgent:""}},this.trialIndex=0,this.drawnFrames=0,this.lastFpsUpdate=0,this.nextFpsUpdate=0,this.fps=0,this.animationFramesRequested=0,this.limitFps=!1,this.unitTesting=!1,this.gameStopRequested=!1,this.canvasCssWidth=0,this.canvasCssHeight=0,this.scenes=new Array,this.incomingSceneTransitions=new Array;const{parameters:n}=t,r=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]])}return n}(t,["parameters"]);this.options=Object.assign({},r),this.options.parameters=Object.assign({},n),Object.keys(e).forEach((t=>{if(!n||!(t in n))throw new Error(`game ${this.options.name} does not have a parameter named ${t}`);this.options.parameters&&this.options.parameters[t]&&(this.options.parameters[t].value=e[t])}))}get canvasKit(){if(!this._canvasKit)throw new Error("canvaskit is undefined");return this._canvasKit}set canvasKit(t){this._canvasKit=t}get session(){if(!this._session)throw new Error("session is undefined");return this._session}set session(t){this._session=t}addScene(t){t.game=this,t.needsInitialization=!0,this.scenes.push(t)}addScenes(t){t.forEach((t=>{this.addScene(t)}))}presentScene(t,e){let n;if("string"==typeof t){if(n=this.scenes.filter((e=>e.name===t)).find(Boolean),void 0===n)throw new Error(`scene ${t} not found`)}else n=t;n.initialize(),n.needsInitialization=!1;const r=new Z(n,e);this.currentSceneSnapshot=void 0,this.incomingSceneTransitions.push(r),void 0!==n.game.bodyBackgroundColor?document.body.style.backgroundColor=`rgb(${n.game.bodyBackgroundColor[0]},${n.game.bodyBackgroundColor[1]},${n.game.bodyBackgroundColor[2]},${n.game.bodyBackgroundColor[3]})`:document.body.style.backgroundColor=`rgb(${n.backgroundColor[0]},${n.backgroundColor[1]},${n.backgroundColor[2]},${n.backgroundColor[3]})`}getParameter(t){if(void 0!==this.options.parameters&&Object.keys(this.options.parameters).includes(t))return this.options.parameters[t].value;throw new Error(`game parameter ${t} not found`)}start(t){var e,n;const r=this.options;this.unitTesting=null!==(e=r._unitTesting)&&void 0!==e&&e;let i,a=0;if(this.unitTesting||(a=window.performance.now()),this.setupHtmlCanvases(r.canvasId,r.width,r.height,r.stretch),this.showFps=null!==(n=r.showFps)&&void 0!==n&&n,this.bodyBackgroundColor=r.bodyBackgroundColor,this.initData(),this.setupCanvasKitSurface(),this.setupFpsFont(),this.setupEventHandlers(),this.unitTesting||console.log(`Game.init() took ${(window.performance.now()-a).toFixed(0)} ms`),void 0!==t){if(t instanceof X)i=t;else if(i=i=this.scenes.filter((e=>e.name===t)).find(Boolean),void 0===i)throw new Error(`cannot start game. scene named "${t}" has not been added to the game object`)}else{if(void 0===this.entryScene)throw new Error("cannot start game. the game object's entryScene has not been assigned");if(this.entryScene instanceof X)i=this.entryScene;else if(i=i=this.scenes.filter((t=>t.name===this.entryScene)).find(Boolean),void 0===i)throw new Error(`cannot start game. scene named "${t}" has not been added to the game object`)}if(this.presentScene(i),void 0===this.surface)throw new Error("CanvasKit surface is undefined");this.surface.requestAnimationFrame(this.loop.bind(this))}stop(){this.currentScene&&(this.currentScene._active=!1),this.gameStopRequested=!0}initData(){var t;this.trialIndex=0,this.data={trials:new Array,metadata:{userAgent:navigator.userAgent}};const e=null!==(t=this.options.trialSchema)&&void 0!==t?t:{},n=Object.entries(e),r=["number","string","boolean","object"];for(const[t,e]of n)if(!r.includes(e.type))throw new Error(`invalid schema. variable ${t} is type ${e.type}. type must be number, string, boolean, or object`)}addTrialData(t,e){if(!this.options.trialSchema)throw new Error("no trial schema were provided in GameOptions. cannot add trial data");if(this.data.trials.length<this.trialIndex+1){const t={},e=Object.entries(this.options.trialSchema);for(const[n]of e)t[n]=null;this.data.trials.push(t)}if(!(t in this.options.trialSchema))throw new Error(`trial variable ${t} not defined in schema`);const n=this.options.trialSchema[t].type,r=typeof e;if(r!==n)throw new Error(`type for variable ${t} (value: ${e}) is "${r}". Based on schema for this variable, expected type was "${n}"`);this.data.trials[this.trialIndex][t]=e}trialComplete(){var t,e,n;this.trialIndex++,(null===(t=this.session.options.gameCallbacks)||void 0===t?void 0:t.onGameTrialComplete)&&this.session.options.gameCallbacks.onGameTrialComplete({trialIndex:this.trialIndex-1,gameParameters:null!==(e=this.options.parameters)&&void 0!==e?e:{},gameData:this.data,trialSchema:null!==(n=this.options.trialSchema)&&void 0!==n?n:{},gameUuid:this.uuid,gameName:this.options.name})}end(){var t;(null===(t=this.session.options.gameCallbacks)||void 0===t?void 0:t.onGameLifecycleChange)&&this.session.options.gameCallbacks.onGameLifecycleChange({ended:!0,gameUuid:this.uuid,gameName:this.options.name})}setupHtmlCanvases(t,e,n,r){let i;if(Globals.canvasScale=Math.round(100*window.devicePixelRatio)/100,void 0===t){const t=document.getElementsByTagName("canvas");let e=new Array;for(let n=0;n<t.length;n++)e.push(t[n]);if(e=e.filter((t=>"m2c2kitscratchcanvas"!==t.id)),0===e.length)throw new Error("no html canvas tag was found in the html");e.length>1&&console.warn("warning: more than one html canvas was found. Using the first one"),i=t[0]}else if(i=document.getElementById(t),void 0===i)throw new Error(`could not find canvas HTML element with id "${t}"`);if(r||window.innerWidth<e||window.innerHeight<n){const t=n/e,r=window.innerHeight/window.innerWidth;Globals.rootScale=r<t?window.innerHeight/n:window.innerWidth/e}i.style.width=Globals.rootScale*e+"px",i.style.height=Globals.rootScale*n+"px",i.width=Globals.rootScale*e*Globals.canvasScale,i.height=Globals.rootScale*n*Globals.canvasScale,this.htmlCanvas=i,this.canvasCssWidth=e,this.canvasCssHeight=n,Globals.canvasCssWidth=e,Globals.canvasCssHeight=n}setupCanvasKitSurface(){if(void 0===this.htmlCanvas)throw new Error("main html canvas is undefined");const t=this.canvasKit.MakeCanvasSurface(this.htmlCanvas);if(null===t)throw new Error("could not make CanvasKit surface from canvas HTML element");this.surface=t,console.log("CanvasKit surface is backed by "+(this.surface.reportBackendTypeIsGPU()?"GPU":"CPU")),this.surface.getCanvas().scale(Globals.canvasScale,Globals.canvasScale)}setupFpsFont(){this.fpsTextFont=new this.canvasKit.Font(null,B.FPS_DISPLAY_TEXT_FONT_SIZE*Globals.canvasScale),this.fpsTextPaint=new this.canvasKit.Paint,this.fpsTextPaint.setColor(this.canvasKit.Color(B.FPS_DISPLAY_TEXT_COLOR[0],B.FPS_DISPLAY_TEXT_COLOR[1],B.FPS_DISPLAY_TEXT_COLOR[2],B.FPS_DISPLAY_TEXT_COLOR[3])),this.fpsTextPaint.setAntiAlias(!0)}setupEventHandlers(){if(void 0===this.htmlCanvas)throw new Error("main html canvas is undefined");this.htmlCanvas.addEventListener("mousedown",this.htmlCanvasMouseDownHandler.bind(this)),this.htmlCanvas.addEventListener("touchstart",this.htmlCanvasTouchStartHandler.bind(this))}loop(t){if(!this.gameStopRequested){if(this.animationFramesRequested++,!this.limitFps||this.animationFramesRequested%Math.round(60/B.LIMITED_FPS_RATE)==0){if(void 0===this.currentScene&&0===this.incomingSceneTransitions.length)throw new Error("Can not run game without a current or incoming scene");this.updateGameTime(),this.handleIncomingSceneTransitions(this.incomingSceneTransitions),this.update(),this.draw(t),this.incomingSceneTransitions.length>0&&(this.currentSceneSnapshot=this.takeCurrentSceneSnapshot())}if(this.priorUpdateTime=Globals.now,void 0===this.surface)throw new Error("CanvasKit surface is undefined");this.surface.requestAnimationFrame(this.loop.bind(this))}}updateGameTime(){Globals.now=window.performance.now(),this.priorUpdateTime?Globals.deltaTime=Globals.now-this.priorUpdateTime:Globals.deltaTime=0}handleIncomingSceneTransitions(t){if(t.length>0&&this.currentSceneSnapshot){const e=t.shift();if(void 0===e)throw new Error("no incoming scene transition");const n=e.scene,r=e.transition,i=this.currentSceneSnapshot;if(!i)throw new Error("no outgoing scene image");const a=new X({name:"outgoingScene"});a.size.width=this.canvasCssWidth,a.size.height=this.canvasCssHeight,this.addScene(a),i||console.log("outgoingSceneImage is undefined/null");const o=new u("outgoingSceneSnapshot",i,this.canvasCssWidth,this.canvasCssHeight);this.session.imageManager.addLoadedImage(o,this.uuid);const s=new $({name:"outgoingSceneSprite",imageName:"outgoingSceneSnapshot",position:new N(this.canvasCssWidth/Globals.rootScale/2,this.canvasCssHeight/Globals.rootScale/2)});s.scale=1/Globals.rootScale,a.addChild(s),a._active=!0,n!==this.currentScene&&this.currentScene&&(this.currentScene._active=!1),this.currentScene=n,this.currentScene._active=!0,n._setupCallback&&n._setupCallback(n),a&&n&&(r?this.animateSceneTransition(n,r,a):a._active=!1)}}update(){this.scenes.filter((t=>t._active)).forEach((t=>t.update()))}draw(t){this.scenes.filter((t=>t._active)).forEach((e=>e.draw(t))),this.drawnFrames++,this.showFps&&this.drawFps(t)}takeCurrentSceneSnapshot(){if(void 0===this.surface)throw new Error("CanvasKit surface is undefined");return this.surface.makeImageSnapshot()}animateSceneTransition(t,n,r){const i=n.duration;switch(t._transitioning=!0,r._transitioning=!0,n.type){case D.push:switch(n.direction){case G.left:t.position.x=t.size.width,t.run(e.Sequence([e.Move({point:new N(0,0),duration:i,runDuringTransition:!0}),e.Custom({callback:()=>{t._transitioning=!1},runDuringTransition:!0})])),r.run(e.Sequence([e.Move({point:new N(-r.size.width,0),duration:i,runDuringTransition:!0}),e.Custom({callback:()=>{r._active=!1,r._transitioning=!1,r.game.currentSceneSnapshot&&r.game.currentSceneSnapshot.delete()},runDuringTransition:!0})]));break;case G.right:t.position.x=-t.size.width,t.run(e.Sequence([e.Move({point:new N(0,0),duration:i,runDuringTransition:!0}),e.Custom({callback:()=>{t._transitioning=!1},runDuringTransition:!0})])),r.run(e.Sequence([e.Move({point:new N(r.size.width,0),duration:i,runDuringTransition:!0}),e.Custom({callback:()=>{r._active=!1,r._transitioning=!1,r.game.currentSceneSnapshot&&r.game.currentSceneSnapshot.delete()},runDuringTransition:!0})]));break;case G.up:t.position.y=t.size.height,t.run(e.Sequence([e.Move({point:new N(0,0),duration:i,runDuringTransition:!0}),e.Custom({callback:()=>{t._transitioning=!1},runDuringTransition:!0})])),r.run(e.Sequence([e.Move({point:new N(0,-r.size.height),duration:i,runDuringTransition:!0}),e.Custom({callback:()=>{r._active=!1,r._transitioning=!1,r.game.currentSceneSnapshot&&r.game.currentSceneSnapshot.delete()},runDuringTransition:!0})]));break;case G.down:t.position.y=-t.size.height,t.run(e.Sequence([e.Move({point:new N(0,0),duration:i,runDuringTransition:!0}),e.Custom({callback:()=>{t._transitioning=!1},runDuringTransition:!0})])),r.run(e.Sequence([e.Move({point:new N(0,r.size.height),duration:i,runDuringTransition:!0}),e.Custom({callback:()=>{r._active=!1,r._transitioning=!1,r.game.currentSceneSnapshot&&r.game.currentSceneSnapshot.delete()},runDuringTransition:!0})]));break;default:throw new Error("unknown transition direction")}break;default:throw new Error("unknown transition type")}}drawFps(t){if(0===this.lastFpsUpdate)this.lastFpsUpdate=Globals.now,this.nextFpsUpdate=Globals.now+B.FPS_DISPLAY_UPDATE_INTERVAL;else{Globals.now>=this.nextFpsUpdate&&(this.fps=this.drawnFrames/((Globals.now-this.lastFpsUpdate)/1e3),this.drawnFrames=0,this.lastFpsUpdate=Globals.now,this.nextFpsUpdate=Globals.now+B.FPS_DISPLAY_UPDATE_INTERVAL),t.save();const e=Globals.canvasScale;if(t.scale(1/e,1/e),!this.fpsTextFont||!this.fpsTextPaint)throw new Error("fps font or paint is undefined");t.drawText("FPS: "+this.fps.toFixed(2),0,0+B.FPS_DISPLAY_TEXT_FONT_SIZE*e,this.fpsTextPaint,this.fpsTextFont),t.restore()}}createEventListener(t,e,n,r=!0){const i=this.entities.filter((t=>t.name===e));i.length>1&&console.warn(`warning: createEventListener() found more than one entity with name ${e}. Event listener will be attached to first entity found. All entities that receive tap events should be uniquely named`);const a=i.filter((t=>t.name===e)).find(Boolean);if(void 0===a)throw new Error(`could not create event listener. entity with name ${e} could not be found in the game entity tree`);if("tapdown"!==t)throw new Error(`could not create event listener: event type ${t} is not known`);a.onTapDown(n,r)}get entities(){function t(e,n){n.push(e),e.children.forEach((e=>t(e,n)))}const e=new Array;return this.scenes.forEach((n=>t(n,e))),e}htmlCanvasMouseDownHandler(t){t.preventDefault();const e=this.currentScene;if(!e||!this.sceneCanReceiveUserInteraction(e))return;const n=t.offsetX,r=t.offsetY;this.processTaps(e,n,r)}htmlCanvasTouchStartHandler(t){t.preventDefault();const e=this.currentScene;if(!e||!this.sceneCanReceiveUserInteraction(e))return;const n=t.target.getBoundingClientRect(),r=t.touches.item(0);if(null===r)return void console.warn("warning: canvas received touchstart event, but TouchList was empty");const i=r.pageX-n.x,a=r.pageY-n.y;this.processTaps(e,i,a)}sceneCanReceiveUserInteraction(t){var e;return t.game===(null===(e=t.game.session)||void 0===e?void 0:e.currentActivity)&&!1===t._transitioning}processTaps(t,e,n){t.isUserInteractionEnabled&&this.tapIsWithinEntityBounds(t,e,n)&&this.handleEntityTapped(t,e,n),t.children&&t.children.filter((t=>!t.hidden)).forEach((t=>this.processTaps(t,e,n)))}handleEntityTapped(t,e,n){t.eventListeners.filter((t=>"tapdown"===t.eventType)).forEach((r=>{if(r.entityName===t.name){const i=this.calculateEntityAbsoluteBoundingBox(t),a=(e-i.xMin)/(i.xMax-i.xMin)*t.size.width,o=(n-i.yMin)/(i.yMax-i.yMin)*t.size.height,s={target:t,point:new N(a,o)};r.callback(s)}}))}tapIsWithinEntityBounds(t,e,n){if(!t.isDrawable)throw"only drawable entities can receive tap events";if(0===t.size.width||0===t.size.height)return console.warn(`warning: entity ${t.toString()} has isUserInteractionEnabled = true, but has no tappable area. Size is ${t.size.width}, ${t.size.height}`),!1;if(t.type===I.textline&&isNaN(t.size.width))return console.warn(`warning: entity ${t.toString()} is a textline with width = NaN. A textline must have its width manually set.`),!1;const r=this.calculateEntityAbsoluteBoundingBox(t);return!!(t.isUserInteractionEnabled&&e>=r.xMin&&e<=r.xMax&&n>=r.yMin&&n<=r.yMax)}calculateEntityAbsoluteBoundingBox(t){const e=t.anchorPoint,n=t.absoluteScale;return{xMin:t.absolutePosition.x-t.size.width*e.x*n,xMax:t.absolutePosition.x+t.size.width*(1-e.x)*n,yMin:t.absolutePosition.y-t.size.height*e.y*n,yMax:t.absolutePosition.y+t.size.height*(1-e.y)*n}}}class tt{constructor(t){this.originTime=-1,this.startTime=-1,this.stopTime=-1,this.stopped=!0,this._elapsed=-1,this.name=t}static Start(t){let e=this._timers.filter((e=>e.name===t)).find(Boolean);void 0===e&&(e=new tt(t),e.originTime=window.performance.now(),e._elapsed=0,this._timers.push(e)),e.startTime=window.performance.now(),e.stopped=!1}static Stop(t){const e=this._timers.filter((e=>e.name===t)).find(Boolean);if(void 0===e)throw new Error("timer with this name does not exist");if(!0===e.stopped)throw new Error("timer is already stopped");e.stopTime=window.performance.now(),e._elapsed=e._elapsed+e.stopTime-e.startTime,e.stopped=!0}static Restart(t){const e=this._timers.filter((e=>e.name===t)).find(Boolean);if(void 0===e)throw new Error("timer with this name does not exist");e.startTime=window.performance.now(),e._elapsed=0,e.stopped=!1,console.log("timer restarted")}static Elapsed(t){const e=this._timers.filter((e=>e.name===t)).find(Boolean);if(void 0===e)throw new Error("timer with this name does not exist");return e.stopped?e._elapsed:e._elapsed+window.performance.now()-e.startTime}static Remove(t){if(void 0===this._timers.filter((e=>e.name===t)).find(Boolean))throw new Error("timer with this name does not exist");this._timers.filter((e=>e.name!=t))}static Exists(t){return this._timers.some((e=>e.name===t))}static RemoveAll(){this._timers=new Array}}tt._timers=new Array;class et{constructor(t){this.uuid=V.generate(),this.options=t,this.fontManager=new M,this.imageManager=new p,this.options.activities.forEach((t=>t.session=this))}init(){return l(this,void 0,void 0,(function*(){tt.Start("activityInit");const[t]=yield this.getAsynchronousAssets();this.loadAssets(t),console.log(`Activity.init() took ${tt.Elapsed("activityInit").toFixed(0)} ms`),tt.Remove("activityInit")}))}start(){var t;this.currentActivity=this.options.activities.find(Boolean),this.logStartingActivity(),null===(t=this.currentActivity)||void 0===t||t.start()}advanceToNextActivity(){if(!this.currentActivity)throw new Error("error in advanceToNextActivity(): no current activity");if(!this.nextActivity)throw new Error("error in advanceToNextActivity(): no next activity");this.currentActivity.stop(),this.currentActivity=this.nextActivity,this.logStartingActivity(),this.currentActivity.start()}get nextActivity(){if(!this.currentActivity)throw new Error("error in get nextActivity(): no current activity");if(this.options.activities.indexOf(this.currentActivity)===this.options.activities.length-1)return;const t=this.options.activities.indexOf(this.currentActivity);return this.options.activities[t+1]}logStartingActivity(){var t,e,n;if(this.currentActivity instanceof J){const r=(null===(t=this.currentActivity)||void 0===t?void 0:t.options.version)?`, version ${null===(e=this.currentActivity)||void 0===e?void 0:e.options.version}`:"";console.log(`starting game: ${(null===(n=this.currentActivity)||void 0===n?void 0:n.options.name)+r}`)}}getAsynchronousAssets(){return l(this,void 0,void 0,(function*(){const t=this.loadCanvasKit(),e=this.fontManager.fetchFonts(this.getFontsConfigurationFromGames()),n=this.imageManager.renderImages(this.getImagesConfigurationFromGames());return yield Promise.all([t,e,n])}))}loadCanvasKit(){return O({locateFile:t=>t})}loadAssets(t){this.assignCanvasKit(t),this.fontManager.loadAllGamesFontData(),this.imageManager.loadAllGamesRenderedImages()}assignCanvasKit(t){this.canvasKit=t,this.fontManager.canvasKit=this.canvasKit,this.imageManager.canvasKit=this.canvasKit,this.options.activities.filter((t=>t instanceof J)).forEach((e=>{e.canvasKit=t}))}getFontsConfigurationFromGames(){return this.options.activities.filter((t=>t instanceof J)).map((t=>{var e;const n=t;return{uuid:n.uuid,fontUrls:null!==(e=n.options.fontUrls)&&void 0!==e?e:[]}}))}getImagesConfigurationFromGames(){return this.options.activities.filter((t=>t instanceof J)).map((t=>{var e;const n=t;return{uuid:n.uuid,images:null!==(e=n.options.images)&&void 0!==e?e:[]}}))}}class nt extends q{constructor(t={}){super(t),this.type=I.composite,this.compositeType="<compositeType>",this.isDrawable=!0,this.anchorPoint=new N(.5,.5),this.zPosition=0,Y(this,t)}initialize(){}update(){super.update()}draw(t){super.drawChildren(t)}}!function(t){t[t.MATCH_CONSTRAINT=0]="MATCH_CONSTRAINT"}(U||(U={})),function(t){t[t.center=0]="center",t[t.left=1]="left",t[t.right=2]="right"}(W||(W={}));class rt extends q{constructor(t={}){super(t),this.type=I.label,this.isDrawable=!0,this.isText=!0,this.anchorPoint=new N(.5,.5),this.zPosition=0,this._text="",this._fontColor=B.DEFAULT_FONT_COLOR,this._fontSize=B.DEFAULT_FONT_SIZE,this._horizontalAlignmentMode=W.center,Y(this,t),t.horizontalAlignmentMode&&(this.horizontalAlignmentMode=t.horizontalAlignmentMode),void 0!==t.preferredMaxLayoutWidth&&(this.preferredMaxLayoutWidth=t.preferredMaxLayoutWidth),t.backgroundColor&&(this.backgroundColor=t.backgroundColor)}initialize(){var t,e,n;let r=this.canvasKit.TextAlign.Center;switch(this.horizontalAlignmentMode){case W.center:r=this.canvasKit.TextAlign.Center;break;case W.left:r=this.canvasKit.TextAlign.Left;break;case W.right:r=this.canvasKit.TextAlign.Right;break;default:throw new Error("unknown horizontalAlignmentMode")}this.paraStyle=new this.canvasKit.ParagraphStyle({textStyle:{color:this.canvasKit.Color(this.fontColor[0],this.fontColor[1],this.fontColor[2],this.fontColor[3]),fontSize:this.fontSize*Globals.canvasScale},textAlign:r}),this.fontName&&this.paraStyle.textStyle&&(this.paraStyle.textStyle.fontFamilies=[this.fontName]),this.backgroundColor&&this.paraStyle.textStyle&&(this.paraStyle.textStyle.backgroundColor=this.backgroundColor);const i=this.parentSceneAsEntity.game.session;if(!i)throw new Error("activity is undefined");const a=i.fontManager;if(void 0===a.fontMgr)throw new Error("no fonts loaded");const o=this.canvasKit.ParagraphBuilder.Make(this.paraStyle,a.fontMgr);this.text||(this.text=""),o.addText(this.text),""===this.text&&console.warn(`warning: empty text in label "${this.name}"`),this.paragraph=o.build();const s=null!==(t=this.preferredMaxLayoutWidth)&&void 0!==t?t:Globals.canvasCssWidth;let l=s;if(0===s||0===this.layout.width){if(void 0===this.parent)throw new Error("width is set to match parent, but entity has no parent");const t=null!==(e=this.layout.marginStart)&&void 0!==e?e:0,r=null!==(n=this.layout.marginEnd)&&void 0!==n?n:0;l=this.parent.size.width-(t+r)}this.paragraph.layout(l*Globals.canvasScale),this.size.width=l,this.size.height=this.paragraph.getHeight()/Globals.canvasScale}get text(){return this._text}set text(t){this._text=t,this.needsInitialization=!0}get fontName(){return this._fontName}set fontName(t){this._fontName=t,this.needsInitialization=!0}get fontColor(){return this._fontColor}set fontColor(t){this._fontColor=t,this.needsInitialization=!0}get fontSize(){return this._fontSize}set fontSize(t){this._fontSize=t,this.needsInitialization=!0}get horizontalAlignmentMode(){return this._horizontalAlignmentMode}set horizontalAlignmentMode(t){this._horizontalAlignmentMode=t,this.needsInitialization=!0}get preferredMaxLayoutWidth(){return this._preferredMaxLayoutWidth}set preferredMaxLayoutWidth(t){this._preferredMaxLayoutWidth=t,this.needsInitialization=!0}get backgroundColor(){return this._backgroundColor}set backgroundColor(t){this._backgroundColor=t,this.needsInitialization=!0}update(){super.update()}draw(t){if(this.parent&&""!==this.text){t.save();const e=Globals.canvasScale/this.absoluteScale;t.scale(1/e,1/e);const n=(this.absolutePosition.x-this.size.width*this.anchorPoint.x*this.absoluteScale)*e,r=(this.absolutePosition.y-this.size.height*this.anchorPoint.y*this.absoluteScale)*e;if(void 0===this.paragraph)throw new Error("no paragraph");t.drawParagraph(this.paragraph,n,r),t.restore()}super.drawChildren(t)}}class it{static FromRangeWithoutReplacement(t,e,n){const r=new Array;for(let i=0;i<t;i++){const i=Math.floor(Math.random()*(n-e))+e;r.includes(i)?t++:r.push(i)}return r}static FromGridWithoutReplacement(t,e,n,r){const i=new Array,a=e*n-1,o=this.FromRangeWithoutReplacement(t,0,a);let s=0,l=NaN;for(;s<t;){const t=o[s]%n,e=(o[s]-t)/n;if(void 0===r||r(e,t))i.push({row:e,column:t}),s++;else{do{l=this.FromRangeWithoutReplacement(1,0,a)[0]}while(o.includes(l));o[s]=l}}return i}}class at{constructor(t){this.origin=t.origin,this.size=t.size,this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height}}!function(t){t[void 0]="Undefined",t.rectangle="Rectangle",t.circle="Circle"}(j||(j={}));class ot extends q{constructor(t={}){super(t),this.type=I.shape,this.isDrawable=!0,this.isShape=!0,this.anchorPoint=new N(.5,.5),this.zPosition=0,this.shapeType=j.undefined,this.cornerRadius=0,this._fillColor=B.DEFAULT_SHAPE_FILL_COLOR,Y(this,t),void 0!==t.circleOfRadius&&(this.circleOfRadius=t.circleOfRadius,this.shapeType=j.circle),t.rect&&(t.rect.size?(this.size.width=t.rect.size.width,this.size.height=t.rect.size.height):void 0!==t.rect.width&&void 0!==t.rect.height&&(this.size.width=t.rect.width,this.size.height=t.rect.height),t.rect.origin?this.position=t.rect.origin:void 0!==t.rect.x&&void 0!==t.rect.y&&(this.position=new N(t.rect.x,t.rect.y)),this.shapeType=j.rectangle),t.cornerRadius&&(this.cornerRadius=t.cornerRadius),t.fillColor&&(this.fillColor=t.fillColor),t.strokeColor&&(this.strokeColor=t.strokeColor),t.lineWidth&&(this.lineWidth=t.lineWidth),t.strokeColor&&void 0===t.lineWidth&&console.warn(`warning: for entity ${this}, strokeColor = ${t.strokeColor} but lineWidth is undefined. In normal usage, both would be set or both would be undefined.`),void 0===t.strokeColor&&t.lineWidth&&console.warn(`warning: for entity ${this}, lineWidth = ${t.lineWidth} but strokeColor is undefined. In normal usage, both would be set or both would be undefined.`)}initialize(){if(this.fillColor){const t=this.canvasKit;this.fillColorPaint=new t.Paint,this.fillColorPaint.setColor(t.Color(this.fillColor[0],this.fillColor[1],this.fillColor[2],this.fillColor[3])),this.fillColorPaint.setStyle(t.PaintStyle.Fill),this.fillColorPaint.setAntiAlias(!0)}if(this.strokeColor){const t=this.canvasKit;this.strokeColorPaint=new t.Paint,this.strokeColorPaint.setColor(t.Color(this.strokeColor[0],this.strokeColor[1],this.strokeColor[2],this.strokeColor[3])),this.strokeColorPaint.setStyle(t.PaintStyle.Stroke),this.strokeColorPaint.setAntiAlias(!0)}}get fillColor(){return this._fillColor}set fillColor(t){this._fillColor=t,this.needsInitialization=!0}get strokeColor(){return this._strokeColor}set strokeColor(t){this._strokeColor=t,this.needsInitialization=!0}update(){super.update()}draw(t){t.save();const e=Globals.canvasScale/this.absoluteScale;if(t.scale(1/e,1/e),this.shapeType===j.circle&&void 0!==this.circleOfRadius){const n=this.absolutePosition.x*e,r=this.absolutePosition.y*e,i=this.circleOfRadius*this.absoluteScale*e;this.fillColor&&this.fillColorPaint&&t.drawCircle(n,r,i,this.fillColorPaint),this.strokeColor&&this.strokeColorPaint&&this.lineWidth&&(this.strokeColorPaint.setStrokeWidth(this.lineWidth*e),t.drawCircle(n,r,i,this.strokeColorPaint))}if(this.shapeType===j.rectangle){const n=this.canvasKit.RRectXY(this.canvasKit.LTRBRect((this.absolutePosition.x-this.anchorPoint.x*this.size.width*this.absoluteScale)*e,(this.absolutePosition.y-this.anchorPoint.y*this.size.height*this.absoluteScale)*e,(this.absolutePosition.x+this.size.width*this.absoluteScale-this.anchorPoint.x*this.size.width*this.absoluteScale)*e,(this.absolutePosition.y+this.size.height*this.absoluteScale-this.anchorPoint.y*this.size.height*this.absoluteScale)*e),this.cornerRadius*e,this.cornerRadius*e);this.fillColor&&this.fillColorPaint&&t.drawRRect(n,this.fillColorPaint),this.strokeColor&&this.strokeColorPaint&&this.lineWidth&&(this.strokeColorPaint.setStrokeWidth(this.lineWidth*e),t.drawRRect(n,this.strokeColorPaint))}t.restore(),super.drawChildren(t)}}class st{static Create(t){return new Array}}class lt extends q{constructor(t={}){var e;super(t),this.type=I.textline,this.isDrawable=!0,this.isText=!0,this.zPosition=0,this.anchorPoint=new N(0,.5),this._text="",this._fontColor=B.DEFAULT_FONT_COLOR,this._fontSize=B.DEFAULT_FONT_SIZE,Y(this,t),this.size.height=this.fontSize,this.size.width=null!==(e=t.width)&&void 0!==e?e:NaN}get text(){return this._text}set text(t){this._text=t,this.needsInitialization=!0}get fontName(){return this._fontName}set fontName(t){this._fontName=t,this.needsInitialization=!0}get fontColor(){return this._fontColor}set fontColor(t){this._fontColor=t,this.needsInitialization=!0}get fontSize(){return this._fontSize}set fontSize(t){this._fontSize=t,this.needsInitialization=!0}update(){super.update()}initialize(){this.paint=new this.canvasKit.Paint,this.paint.setColor(this.canvasKit.Color(this.fontColor[0],this.fontColor[1],this.fontColor[2],this.fontColor[3])),this.paint.setStyle(this.canvasKit.PaintStyle.Fill),this.paint.setAntiAlias(!0);const t=this.parentSceneAsEntity.game.session;if(!t)throw new Error("activity is undefined");const e=t.fontManager,n=this.parentSceneAsEntity.game.uuid;this.fontName?this.font=new this.canvasKit.Font(e.getTypeface(n,this.fontName),this.fontSize*Globals.canvasScale):this.font=new this.canvasKit.Font(null,this.fontSize*Globals.canvasScale)}draw(t){if(this.parent&&this.text){t.save();const e=Globals.canvasScale/this.absoluteScale;t.scale(1/e,1/e);const n=this.absolutePosition.x*e,r=(this.absolutePosition.y+this.size.height*this.anchorPoint.y*this.absoluteScale)*e;if(void 0===this.paint||void 0===this.font)throw new Error(`in TextLine entity ${this}, Paint or Font is undefined.`);t.drawText(this.text,n,r,this.paint,this.font),t.restore()}super.drawChildren(t)}}export{e as Action,nt as Composite,B as Constants,L as ConstraintType,i as CustomAction,U as Dimensions,q as Entity,I as EntityType,M as FontManager,J as Game,c as GlobalVariables,r as GroupAction,p as ImageManager,rt as Label,W as LabelHorizontalAlignmentMode,z as LayoutConstraint,u as LoadedImage,o as MoveAction,N as Point,Q as PushTransition,it as RandomDraws,at as Rect,s as ScaleAction,X as Scene,Z as SceneTransition,n as SequenceAction,et as Session,ot as Shape,j as ShapeType,H as Size,$ as Sprite,st as Story,lt as TextLine,tt as Timer,K as Transition,G as TransitionDirection,D as TransitionType,V as Uuid,a as WaitAction,R as WebColors,Y as handleInterfaceOptions};
|
|
16
16
|
//# sourceMappingURL=index.js.map
|