@m2c2kit/addons 0.1.1 → 0.1.5

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 CHANGED
@@ -2,11 +2,17 @@ import { Canvas } from 'canvaskit-wasm';
2
2
  import { CompositeOptions, Size, RgbaColor, Composite, Entity, GlobalVariables, TextOptions, IText, StoryOptions, Transition, Story, Scene, LabelHorizontalAlignmentMode } from '@m2c2kit/core';
3
3
 
4
4
  interface GridOptions extends CompositeOptions {
5
+ /** Number of rows in the grid. Must be 1 or greater */
5
6
  rows: number;
7
+ /** Number of columns in the grid. Must be 1 or greater */
6
8
  columns: number;
9
+ /** Size of the grid in pixels */
7
10
  size: Size;
11
+ /** Background color of the grid. Default is a transparent gray */
8
12
  backgroundColor?: RgbaColor;
13
+ /** Width of the grid lines. Default is 1 */
9
14
  gridLineWidth?: number;
15
+ /** Color of the grid lines. Default is red */
10
16
  gridLineColor?: RgbaColor;
11
17
  }
12
18
  interface GridChild {
@@ -25,24 +31,59 @@ declare class Grid extends Composite {
25
31
  cellHeight: number;
26
32
  gridChildren: GridChild[];
27
33
  private gridBackground?;
34
+ /**
35
+ * A rectangular grid that supports placement of entities within the grid's cells.
36
+ *
37
+ * @remarks This composite entity is composed of rectangles and lines. It has convenience functions for placing and clearing entities on the grid by row and column position (zero-based indexing)
38
+ *
39
+ * @param options - {@link GridOptions}
40
+ */
28
41
  constructor(options: GridOptions);
29
42
  initialize(): void;
30
43
  update(): void;
31
44
  draw(canvas: Canvas): void;
45
+ /**
46
+ * Removes all children from the grid, but retains grid lines.
47
+ *
48
+ */
32
49
  removeAllChildren(): void;
50
+ /**
51
+ * Adds an entity to the grid at the specified row and column position.
52
+ *
53
+ * @param entity - entity to add to the grid
54
+ * @param row - row position within grid to add entity; zero-based indexing
55
+ * @param column - column position within grid to add entity; zero-based indexing
56
+ */
33
57
  addAtCell(entity: Entity, row: number, column: number): void;
58
+ /**
59
+ * Removes all child entities at the specified row and column position.
60
+ *
61
+ * @param row - row position within grid at which to remove children; zero-based indexing
62
+ * @param column - column position within grid at which to remove children; zero-based indexing
63
+ */
34
64
  removeAllAtCell(row: number, column: number): void;
65
+ /**
66
+ * Removes the child entity from the grid.
67
+ *
68
+ * @param entity - entity to remove
69
+ */
35
70
  removeChild(entity: Entity): void;
36
71
  }
37
72
 
38
73
  declare global {
39
74
  var Globals: GlobalVariables;
40
- }
75
+ }
76
+ //# sourceMappingURL=Globals.d.ts.map
41
77
 
42
78
  interface ButtonOptions extends CompositeOptions, TextOptions {
79
+ /** Size of button */
43
80
  size?: Size;
81
+ /** Corner radius of button; can be used to make rounded corners */
44
82
  cornerRadius?: number;
83
+ /** Background color of button. Default is WebColors.RoyalBlue */
45
84
  backgroundColor?: RgbaColor;
85
+ /** Color of button text. Default is WebColors.White */
86
+ fontColor?: RgbaColor;
46
87
  }
47
88
  declare class Button extends Composite implements IText {
48
89
  compositeType: string;
@@ -64,53 +105,102 @@ declare class Button extends Composite implements IText {
64
105
  }
65
106
 
66
107
  interface InstructionScene {
108
+ /** Primary instruction text */
67
109
  text?: string;
110
+ /** Margin from left screen edge to primary instruction text. Default is 48 */
68
111
  textMarginStart?: number;
112
+ /** Margin from right to primary instruction text. Default is 48 */
69
113
  textMarginEnd?: number;
114
+ /** Horizontal alignment of primary instruction text. see {@link LabelHorizontalAlignmentMode}. Default is LabelHorizontalAlignmentMode.left. */
70
115
  textAlignmentMode?: LabelHorizontalAlignmentMode;
116
+ /** Default is to center primary instructions vertically within the scene (textVerticalBias = .5). Setting textVerticalBias less than .5 will pull the text towards the top. Setting textVerticalBias greater than .5 will pull the text towards the bottom */
71
117
  textVerticalBias?: number;
118
+ /** Font size of primary instruction text. Default is 16 */
72
119
  textFontSize?: number;
120
+ /** A text heading to appear at the top of the scene */
73
121
  title?: string;
122
+ /** Margin from top of screen edge to title text. Default is 48 */
74
123
  titleMarginTop?: number;
124
+ /** Font size of title text. Default is 16 */
75
125
  titleFontSize?: number;
126
+ /** Optional image to show */
76
127
  image?: string;
128
+ /** Default is to center image vertically within the scene (imageVerticalBias = .5). Setting imageVerticalBias less than .5 will pull the image towards the top. Setting imageVerticalBias greater than .5 will pull the image towards the bottom */
77
129
  imageVerticalBias?: number;
130
+ /** If the image appears below the primary instruction text (imageAboveText = false), this is the margin from the bottom of the primary instruction text to the top of the image */
78
131
  imageMarginTop?: number;
132
+ /** If the image appears above the primary instruction text (imageAboveText = true), this is the margin from the bottom of the image to the top of the primary instruction text */
79
133
  imageMarginBottom?: number;
134
+ /** If an image is provided, should it appear above the primary text? Default is true */
80
135
  imageAboveText?: boolean;
136
+ /** Background color for instruction scene. Will override what is set in InstructionsOptions */
81
137
  backgroundColor?: RgbaColor;
138
+ /** Button text for the back button. Will override what is set in InstructionsOptions */
82
139
  backButtonText?: string;
140
+ /** Button text for the next button. Will override what is set in InstructionsOptions */
83
141
  nextButtonText?: string;
142
+ /** Width of back button. Will override what is set in InstructionsOptions */
84
143
  backButtonWidth?: number;
144
+ /** Width of next button. Will override what is set in InstructionsOptions */
85
145
  nextButtonWidth?: number;
146
+ /** Height of back button. Will override what is set in InstructionsOptions */
86
147
  backButtonHeight?: number;
148
+ /** Height of next button. Will override what is set in InstructionsOptions */
87
149
  nextButtonHeight?: number;
150
+ /** Color of back button. Will override what is set in InstructionsOptions */
88
151
  backButtonBackgroundColor?: RgbaColor;
152
+ /** Color of back button text. Will override what is set in InstructionsOptions */
89
153
  backButtonFontColor?: RgbaColor;
154
+ /** Color of next button. Will override what is set in InstructionsOptions */
90
155
  nextButtonBackgroundColor?: RgbaColor;
156
+ /** Color of next button text. Will override what is set in InstructionsOptions */
91
157
  nextButtonFontColor?: RgbaColor;
158
+ /** Scene transition when advancing to the next instruction scene. Will override what is set in InstructionsOptions */
92
159
  nextSceneTransition?: Transition;
160
+ /** Scene transition when returning to the previous instruction scene. Will override what is set in InstructionsOptions */
93
161
  backSceneTransition?: Transition;
94
162
  }
95
163
  interface InstructionsOptions extends StoryOptions {
164
+ /** Name to prefix to each instruction scene name. For example, if screenNamePrefix is "instructions", instruction scenes will be named "instructions-01", "instructions-02", etc. */
96
165
  sceneNamePrefix: string;
166
+ /** Name of scene that follows the last instruction scene. Clicking the "next" button on the last instruction screen will advance to this screen */
167
+ postInstructionsScene?: string;
168
+ /** Array of instruction scenes that form the instructions */
97
169
  instructionScenes: Array<InstructionScene>;
170
+ /** Background color for instruction scenes. Can be overriden within a single instruction scene */
98
171
  backgroundColor?: RgbaColor;
99
- postInstructionsScene?: string;
172
+ /** Scene transition when advancing to the next instruction scene. Default is push transition, to the left, 500 milliseconds duration. Can be overriden within a single instruction scene */
100
173
  nextSceneTransition?: Transition;
174
+ /** Scene transition when returning to the previous instruction scene. Default is push transition, to the right, 500 milliseconds duration. Can be overriden within a single instruction scene */
101
175
  backSceneTransition?: Transition;
176
+ /** Button text for the back button. Default is "Back". Can be overriden within a single instruction scene */
102
177
  backButtonText?: string;
178
+ /** Button text for the next button. Default is "Next". Can be overriden within a single instruction scene */
103
179
  nextButtonText?: string;
180
+ /** Width of back button. Default is 125. Can be overriden within a single instruction scene */
104
181
  backButtonWidth?: number;
182
+ /** Width of next button. Default is 125. Can be overriden within a single instruction scene */
105
183
  nextButtonWidth?: number;
184
+ /** Height of back button. Default is 50. Can be overriden within a single instruction scene */
106
185
  backButtonHeight?: number;
186
+ /** Height of next button. Default is 50. Can be overriden within a single instruction scene */
107
187
  nextButtonHeight?: number;
188
+ /** Color of back button. Default is WebColors.RoyalBlue. Can be overriden within a single instruction scene */
108
189
  backButtonBackgroundColor?: RgbaColor;
190
+ /** Color of back button text. Default is WebColors.White. Can be overriden within a single instruction scene */
109
191
  backButtonFontColor?: RgbaColor;
192
+ /** Color of next button. Default is WebColors.RoyalBlue. Can be overriden within a single instruction scene */
110
193
  nextButtonBackgroundColor?: RgbaColor;
194
+ /** Color of next button text. Default is WebColors.White. Can be overriden within a single instruction scene */
111
195
  nextButtonFontColor?: RgbaColor;
112
196
  }
113
197
  declare class Instructions extends Story {
198
+ /**
199
+ * Create an array of scenes containing instructions on how to complete the task
200
+ *
201
+ * @param options - {@link InstructionsOptions}
202
+ * @returns
203
+ */
114
204
  static Create(options: InstructionsOptions): Array<Scene>;
115
205
  }
116
206
 
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ var t;!function(t){t.sequence="Sequence",t.group="Group",t.wait="Wait",t.custom="Custom",t.move="Move",t.scale="Scale"}(t||(t={}));class e{constructor(t=!1){this.startOffset=-1,this.endOffset=-1,this.started=!1,this.running=!1,this.completed=!1,this.runStartTime=-1,this.duration=0,this.isParent=!1,this.isChild=!1,this.runDuringTransition=t}static Move(t){var e;return new a(t.point,t.duration,null!==(e=t.runDuringTransition)&&void 0!==e&&e)}static Wait(t){var e;return new o(t.duration,null!==(e=t.runDuringTransition)&&void 0!==e&&e)}static Custom(t){var e;return new i(t.callback,null!==(e=t.runDuringTransition)&&void 0!==e&&e)}static Scale(t){return new s(t.scale,t.duration,t.runDuringTransition)}static Sequence(t){const e=new n(t);return e.children=t,e}static Group(t){const e=new r(t);return e.children=t,e}initialize(n,r){this.assignParents(this,this,r);const i=this.flattenActions(this);return i.forEach((t=>t.duration=this.calculateDuration(t))),this.calculateStartEndOffsets(this),i.filter((e=>e.type!==t.group&&e.type!==t.sequence)).map((t=>e.cloneAction(t,r)))}static cloneAction(n,r){let i;switch(n.type){case t.sequence:{const t=n.children.map((t=>e.cloneAction(t,r)));i=e.Sequence(t);break}case t.group:{const t=n.children.map((t=>e.cloneAction(t,r)));i=e.Sequence(t);break}case t.move:{const t=n;i=e.Move({point:t.point,duration:t.duration,runDuringTransition:t.runDuringTransition});break}case t.custom:{const t=n;i=e.Custom({callback:t.callback,runDuringTransition:t.runDuringTransition});break}case t.scale:{const t=n;i=e.Scale({scale:t.scale,duration:t.duration,runDuringTransition:t.runDuringTransition});break}case t.wait:{const t=n;i=e.Wait({duration:t.duration,runDuringTransition:t.runDuringTransition});break}default:throw new Error("unknown action")}return void 0!==r&&(i.key=r),i.startOffset=n.startOffset,i.endOffset=n.endOffset,i}static evaluateAction(e,n,r,i){if(r<e.runStartTime+e.startOffset)return;if(r>=e.runStartTime+e.startOffset&&r<=e.runStartTime+e.startOffset+e.duration?e.running=!0:e.running=!1,!1===e.running&&!0===e.completed)return;const o=r-(e.runStartTime+e.startOffset);if(e.type===t.custom){const t=e;t.callback(),t.running=!1,t.completed=!0}if(e.type===t.wait){const t=e;r>e.runStartTime+e.startOffset+e.duration&&(t.running=!1,t.completed=!0)}if(e.type===t.move){const t=e;t.started||(t.dx=t.point.x-n.position.x,t.dy=t.point.y-n.position.y,t.started=!0),o<t.duration?(n.position.x=n.position.x+t.dx*(i/t.duration),n.position.y=n.position.y+t.dy*(i/t.duration)):(n.position.x=t.point.x,n.position.y=t.point.y,t.running=!1,t.completed=!0)}if(e.type===t.scale){const t=e;t.started||(t.delta=t.scale-n.scale,t.started=!0),o<t.duration?n.scale=n.scale+t.delta*(i/t.duration):(n.scale=t.scale,t.running=!1,t.completed=!0)}}calculateDuration(e){return e.type===t.group?e.children.map((t=>this.calculateDuration(t))).reduce(((t,e)=>Math.max(t,e)),0):e.type===t.sequence?e.children.map((t=>this.calculateDuration(t))).reduce(((t,e)=>t+e),0):e.duration}calculateStartEndOffsets(e){var n,r,i;let o=0;if(void 0!==e.parent&&(o=e.parent.startOffset),(null===(n=e.parent)||void 0===n?void 0:n.type)===t.group)e.startOffset=o,e.endOffset=e.startOffset+e.duration;else if((null===(r=e.parent)||void 0===r?void 0:r.type)===t.sequence){const t=e.parent;let n=0;for(const r of t.children){if(r===e)break;n+=r.duration}e.startOffset=n,e.endOffset=e.startOffset+e.duration}else e.startOffset=o,e.endOffset=e.startOffset+e.duration;e.isParent&&(null===(i=e.children)||void 0===i||i.forEach((t=>this.calculateStartEndOffsets(t))))}flattenActions(t,e){if(e||(e=new Array).push(t),t.isParent){const n=t,r=n.children;e.push(...r),n.children.filter((t=>t.isParent)).forEach((t=>this.flattenActions(t,e)))}return e}assignParents(t,e,n){if(void 0!==n&&(t.key=n),e||((e=t).parent=void 0),t.isParent){const r=t;r.children.forEach((e=>{e.parent=t})),r.children.filter((t=>t.isParent)).forEach((t=>this.assignParents(t,e,n)))}}}class n extends e{constructor(e){super(),this.type=t.sequence,this.children=e,this.isParent=!0}}class r extends e{constructor(e){super(),this.type=t.group,this.children=new Array,this.children=e,this.isParent=!0}}class i extends e{constructor(e,n=!1){super(n),this.type=t.custom,this.callback=e,this.isParent=!1,this.duration=0}}class o extends e{constructor(e,n){super(n),this.type=t.wait,this.duration=e,this.isParent=!1}}class a extends e{constructor(e,n,r){super(r),this.type=t.move,this.dx=0,this.dy=0,this.duration=n,this.point=e,this.isParent=!1}}class s extends e{constructor(e,n,r=!1){super(r),this.type=t.scale,this.delta=0,this.duration=n,this.scale=e,this.isParent=!1}}function l(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}globalThis.Globals=new class{constructor(){this.now=NaN,this.deltaTime=NaN,this.canvasScale=NaN,this.rootScale=1,this.canvasCssWidth=NaN,this.canvasCssHeight=NaN}};var u,c,h,f,d,p,g,y={exports:{}},m=l(Object.freeze({__proto__:null,path_empty_shim:function(){}})),v=l(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,o;t=t||{},e||(e=void 0!==t?t:{}),e.ready=new Promise((function(t,e){r=t,i=e})),(o=e).Vd=o.Vd||[],o.Vd.push((function(){o.MakeSWCanvasSurface=function(t){var e=t;if("CANVAS"!==e.tagName&&!(e=document.getElementById(t)))throw"Canvas with id "+t+" was not found";return(t=o.MakeSurface(e.width,e.height))&&(t.Nd=e),t},o.MakeCanvasSurface||(o.MakeCanvasSurface=o.MakeSWCanvasSurface),o.MakeSurface=function(t,e){var n={width:t,height:e,colorType:o.ColorType.RGBA_8888,alphaType:o.AlphaType.Unpremul,colorSpace:o.ColorSpace.SRGB},r=t*e*4,i=o._malloc(r);return(n=o.Surface._makeRasterDirect(n,i,4*t))&&(n.Nd=null,n.zf=t,n.wf=e,n.yf=r,n.af=i,n.getCanvas().clear(o.TRANSPARENT)),n},o.MakeRasterDirectSurface=function(t,e,n){return o.Surface._makeRasterDirect(t,e.byteOffset,n)},o.Surface.prototype.flush=function(t){if(o.Od(this.Md),this._flush(),this.Nd){var e=new Uint8ClampedArray(o.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)}},o.Surface.prototype.dispose=function(){this.af&&o._free(this.af),this.delete()},o.Od=o.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=Fe.length;return e||(Fe.push(null),e=1),Fe.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=ze(Be),r={Rf:n,attributes:e,version:e.majorVersion,le:t};return t.canvas&&(t.canvas.vf=r),Be[n]=r,(void 0===e.Gf||e.Gf)&&function(t){if(t||(t=Ge),!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,o){e.drawElementsInstancedANGLE(t,n,r,i,o)})}(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?(je(t),t):0},t.deleteContext=function(t){Ge===Be[t]&&(Ge=null),"object"==typeof JSEvents&&JSEvents.Eg(Be[t].le.canvas),Be[t]&&Be[t].le.canvas&&(Be[t].le.canvas.vf=void 0),Be[t]=null},t._setTextureCleanup({deleteTexture:function(t,e){var n=Fe[e];n&&Be[t].le.deleteTexture(n),Fe[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,o="undefined"!=typeof OffscreenCanvas&&i instanceof OffscreenCanvas;if(!("undefined"!=typeof HTMLCanvasElement&&i instanceof HTMLCanvasElement||o||(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 o=Ge.le,a=o.createTexture();return o.bindTexture(o.TEXTURE_2D,a),2===Ge.version?o.texImage2D(o.TEXTURE_2D,0,o.RGBA,n.width,n.height,0,o.RGBA,o.UNSIGNED_BYTE,e):o.texImage2D(o.TEXTURE_2D,0,o.RGBA,o.RGBA,o.UNSIGNED_BYTE,e),o.bindTexture(o.TEXTURE_2D,null),this.makeImageFromTexture(a,n)},t.MakeLazyImageFromTextureSource=function(e,o){o||(o={height:r(e),width:i(e),colorType:t.ColorType.RGBA_8888,alphaType:t.AlphaType.Unpremul}),o.colorSpace||(o.colorSpace=t.ColorSpace.SRGB);var a={makeTexture:function(){var t=Ge,r=t.le,i=r.createTexture();return r.bindTexture(r.TEXTURE_2D,i),2===t.version?r.texImage2D(r.TEXTURE_2D,0,r.RGBA,o.width,o.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&&(a.freeSrc=function(){e.close()}),t.Image._makeFromGenerator(o,a)},t.Od=function(t){return!!t&&je(t)}}))}(e),function(t){function n(t,e,n,r,i){for(var o=0;o<t.length;o++)e[o*n+(o*i+r+n)%n]=t[o];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 o(t){return(l(255*t[3])<<24|l(255*t[0])<<16|l(255*t[1])<<8|l(255*t[2])<<0)>>>0}function a(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]=o(t.slice(4*r,4*(r+1)));return n}return t instanceof Uint32Array?t:t instanceof Array&&t[0]instanceof Float32Array?t.map(o):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 u(e,n){n&&n._ck||t._free(e)}function c(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=c(e,"HEAPF32"),n.count=e.length/4;else if(e instanceof Uint32Array)n.ce=c(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,o=r/4,a=0;a<e.length;a++)for(var s=0;4>s;s++)t.HEAPF32[o+i]=e[a][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 c(e,"HEAPF32",B),6===e.length&&t.HEAPF32.set(V,6+B/4),B;if(16===e.length){var n=A.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],B}throw"invalid matrix size"}return(n=A.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,B}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 c(t,"HEAPF32",e||I)}function g(t,e,n,r){var i=S.toTypedArray();return i[0]=t,i[1]=e,i[2]=n,i[3]=r,I}function y(e){for(var n=new Float32Array(4),r=0;4>r;r++)n[r]=t.HEAPF32[e/4+r];return n}function m(t,e){return c(t,"HEAPF32",e||W)}function v(t,e){return c(t,"HEAPF32",e||U)}function b(){for(var t=0,e=0;e<arguments.length-1;e+=2)t+=arguments[e]*arguments[e+1];return t}function w(t,e,n){for(var r=Array(t.length),i=0;i<n;i++)for(var o=0;o<n;o++){for(var a=0,s=0;s<n;s++)a+=t[n*i+s]*e[n*s+o];r[i*n+o]=a}return r}function C(t,e){for(var n=w(e[0],e[1],t),r=2;r<e.length;)n=w(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),o=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),o=17*parseInt(e.slice(3,4),16)}return t.Color(r,i,o,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 A,T,S,P,_,M,k,F,x,E,B=Y,L=Y,I=Y,W=Y,z=Y,j=Y,G=Y,N=Y,U=Y,H=Y,V=Float32Array.of(0,0,1),Y=0;t.onRuntimeInitialized=function(){function e(e,n,r,i,o,a){a||(a=4*i.width,i.colorType===t.ColorType.RGBA_F16?a*=2:i.colorType===t.ColorType.RGBA_F32&&(a*=4));var s=a*i.height,l=o?o.byteOffset:t._malloc(s);if(!e._readPixels(i,l,a,n,r))return o||t._free(l),null;if(o)return o.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}S=t.Malloc(Float32Array,4),I=S.byteOffset,T=t.Malloc(Float32Array,16),L=T.byteOffset,A=t.Malloc(Float32Array,9),B=A.byteOffset,x=t.Malloc(Float32Array,12),U=x.byteOffset,E=t.Malloc(Float32Array,12),H=E.byteOffset,P=t.Malloc(Float32Array,4),W=P.byteOffset,_=t.Malloc(Float32Array,4),z=_.byteOffset,M=t.Malloc(Float32Array,3),j=M.byteOffset,k=t.Malloc(Float32Array,3),G=k.byteOffset,F=t.Malloc(Int32Array,4),N=F.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=c(e,"HEAPF32"),r=t.Path._MakeFromCmds(n,e.length);return u(n,e),r},t.Path.MakeFromVerbsPointsWeights=function(e,n,r){var i=c(e,"HEAPU8"),o=c(n,"HEAPF32"),a=c(r,"HEAPF32"),s=t.Path._MakeFromVerbsPointsWeights(i,e.length,o,n.length,a,r&&r.length||0);return u(i,e),u(o,n),u(a,r),s},t.Path.prototype.addArc=function(t,e,n){return t=m(t),this._addArc(t,e,n),this},t.Path.prototype.addOval=function(t,e,n){return void 0===n&&(n=1),t=m(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=c(t,"HEAPF32");return this._addPoly(n,t.length/2,e),u(n,t),this},t.Path.prototype.addRect=function(t,e){return t=m(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=c(t,"HEAPU8"),i=c(e,"HEAPF32"),o=c(n,"HEAPF32");this._addVerbsPointsWeights(r,t.length,i,e.length,o,n&&n.length||0),u(r,t),u(i,e),u(o,n)},t.Path.prototype.arc=function(e,n,r,i,o,a){return e=t.LTRBRect(e-r,n-r,e+r,n+r),o=(o-i)/Math.PI*180-360*!!a,(a=new t.Path).addArc(e,i/Math.PI*180,o),this.addPath(a,!0),a.delete(),this},t.Path.prototype.arcToOval=function(t,e,n,r){return t=m(t),this._arcToOval(t,e,n,r),this},t.Path.prototype.arcToRotated=function(t,e,n,r,i,o,a){return this._arcToRotated(t,e,n,!!r,!!i,o,a),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(W);var e=P.toTypedArray();return t?(t.set(e),t):e.slice()},t.Path.prototype.cubicTo=function(t,e,n,r,i,o){return this._cubicTo(t,e,n,r,i,o),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(W);var e=P.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,o,a){return this._rArcTo(t,e,n,r,i,o,a),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,o){return this._rCubicTo(t,e,n,r,i,o),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,o){return e(this,t,n,r,i,o)},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=m(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?c(t,"HEAPF32",L):(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),L)}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,L}(e),this._concat(e)},t.Canvas.prototype.drawArc=function(e,n,r,i,o){t.Od(this.Md),e=m(e),this._drawArc(e,n,r,i,o)},t.Canvas.prototype.drawAtlas=function(e,n,r,i,o,s,l){if(e&&i&&n&&r&&n.length===r.length){t.Od(this.Md),o||(o=t.BlendMode.SrcOver);var h=c(n,"HEAPF32"),f=c(r,"HEAPF32"),d=r.length/4,p=c(a(s),"HEAPU32");if(l&&"B"in l&&"C"in l)this._drawAtlasCubic(e,f,h,p,d,o,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,o,n,r,i)}u(h,n),u(f,r),u(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,o){t.Od(this.Md),e=g(e,n,r,i),void 0!==o?this._drawColor(e,o):this._drawColor(e)},t.Canvas.prototype.drawDRRect=function(e,n,r){t.Od(this.Md),e=v(e,U),n=v(n,H),this._drawDRRect(e,n,r)},t.Canvas.prototype.drawGlyphs=function(e,n,r,i,o,a){if(!(2*e.length<=n.length))throw"Not enough positions for the array of gyphs";t.Od(this.Md);const s=c(e,"HEAPU16"),l=c(n,"HEAPF32");this._drawGlyphs(e.length,s,l,r,i,o,a),u(l,n),u(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,o,a){t.Od(this.Md),this._drawImageCubic(e,n,r,i,o,a||null)},t.Canvas.prototype.drawImageOptions=function(e,n,r,i,o,a){t.Od(this.Md),this._drawImageOptions(e,n,r,i,o,a||null)},t.Canvas.prototype.drawImageNine=function(e,n,r,i,o){t.Od(this.Md),n=c(n,"HEAP32",N),r=m(r),this._drawImageNine(e,n,r,i,o||null)},t.Canvas.prototype.drawImageRect=function(e,n,r,i,o){t.Od(this.Md),m(n,W),m(r,z),this._drawImageRect(e,W,z,i,!!o)},t.Canvas.prototype.drawImageRectCubic=function(e,n,r,i,o,a){t.Od(this.Md),m(n,W),m(r,z),this._drawImageRectCubic(e,W,z,i,o,a||null)},t.Canvas.prototype.drawImageRectOptions=function(e,n,r,i,o,a){t.Od(this.Md),m(n,W),m(r,z),this._drawImageRectOptions(e,W,z,i,o,a||null)},t.Canvas.prototype.drawLine=function(e,n,r,i,o){t.Od(this.Md),this._drawLine(e,n,r,i,o)},t.Canvas.prototype.drawOval=function(e,n){t.Od(this.Md),e=m(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,o){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=c(e,"HEAPF32"),l=n?c(a(n),"HEAPU32"):Y,h=r?c(r,"HEAPF32"):Y;i||(i=t.BlendMode.Modulate),this._drawPatch(s,l,h,i,o),u(h,r),u(l,n),u(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=c(n,"HEAPF32");this._drawPoints(e,i,n.length/2,r),u(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=m(e),this._drawRect(e,n)},t.Canvas.prototype.drawRect4f=function(e,n,r,i,o){t.Od(this.Md),this._drawRect4f(e,n,r,i,o)},t.Canvas.prototype.drawShadow=function(e,n,r,i,o,a,s){t.Od(this.Md);var l=c(o,"HEAPF32"),h=c(a,"HEAPF32");n=c(n,"HEAPF32",j),r=c(r,"HEAPF32",G),this._drawShadow(e,n,r,i,l,h,s),u(l,o),u(h,a)},t.getShadowLocalBounds=function(t,e,n,r,i,o,a){return t=f(t),n=c(n,"HEAPF32",j),r=c(r,"HEAPF32",G),this._getShadowLocalBounds(t,e,n,r,i,o,W)?(e=P.toTypedArray(),a?(a.set(e),a):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(L),d(L)},t.Canvas.prototype.findMarkedCTM=function(t){return this._findMarkedCTM(t,L)?d(L):null},t.Canvas.prototype.getTotalMatrix=function(){this._getTotalMatrix(B);for(var e=Array(9),n=0;9>n;n++)e[n]=t.HEAPF32[B/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,o,a){return t.Od(this.Md),e(this,n,r,i,o,a)},t.Canvas.prototype.saveLayer=function(t,e,n,r){return e=m(e),this._saveLayer(t||null,e,n||null,r||0)},t.Canvas.prototype.writePixels=function(e,n,r,i,o,a,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);a=a||t.AlphaType.Unpremul,s=s||t.ColorType.RGBA_8888,l=l||t.ColorSpace.SRGB;var f=h*n;return h=c(e,"HEAPU8"),n=this._writePixels({width:n,height:r,colorType:s,alphaType:a,colorSpace:l},h,f,i,o),u(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=c(e,"HEAPF32"),r=t.ColorFilter._makeMatrix(n);return u(n,e),r},t.ContourMeasure.prototype.getPosTan=function(t,e){return this._getPosTan(t,W),t=P.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 o=t.MipmapMode.None;return"mipmap"in n&&(o=n.mipmap),t.ImageFilter._MakeMatrixTransformOptions(e,i,o,r)},t.Paint.prototype.getColor=function(){return this._getColor(I),y(I)},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=g(t,e,n,r),this._setColor(t,i)},t.Path.prototype.getPoint=function(t,e){return this._getPoint(t,W),t=P.toTypedArray(),e?(e[0]=t[0],e[1]=t[1],e):t.slice(0,2)},t.PictureRecorder.prototype.beginRecording=function(t){return t=m(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=c(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=c(e,"HEAPF32");return n=t.PathEffect._MakeDash(r,e.length,n),u(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,o,a,s,l){l=l||null;var d=h(r),p=c(i,"HEAPF32");s=s||0,a=f(a);var g=P.toTypedArray();return g.set(e),g.set(n,2),e=t.Shader._MakeLinearGradient(W,d.ce,d.Ke,p,d.count,o,s,a,l),u(d.ce,r),i&&u(p,i),e},t.Shader.MakeRadialGradient=function(e,n,r,i,o,a,s,l){l=l||null;var d=h(r),p=c(i,"HEAPF32");return s=s||0,a=f(a),e=t.Shader._MakeRadialGradient(e[0],e[1],n,d.ce,d.Ke,p,d.count,o,s,a,l),u(d.ce,r),i&&u(p,i),e},t.Shader.MakeSweepGradient=function(e,n,r,i,o,a,s,l,d,p){p=p||null;var g=h(r),y=c(i,"HEAPF32");return s=s||0,l=l||0,d=d||360,a=f(a),e=t.Shader._MakeSweepGradient(e,n,g.ce,g.Ke,y,g.count,o,l,d,s,a,p),u(g.ce,r),i&&u(y,i),e},t.Shader.MakeTwoPointConicalGradient=function(e,n,r,i,o,a,s,l,d,p){p=p||null;var g=h(o),y=c(a,"HEAPF32");d=d||0,l=f(l);var m=P.toTypedArray();return m.set(e),m.set(r,2),e=t.Shader._MakeTwoPointConicalGradient(W,n,i,g.ce,g.Ke,y,g.count,s,d,l,p),u(g.ce,o),a&&u(y,a),e},t.Vertices.prototype.bounds=function(t){this._bounds(W);var e=P.toTypedArray();return t?(t.set(e),t):e.slice()},t.Vd&&t.Vd.forEach((function(t){t()}))},t.computeTonalColors=function(t){var e=c(t.ambient,"HEAPF32"),n=c(t.spot,"HEAPF32");this._computeTonalColors(e,n);var r={ambient:y(e),spot:y(n)};return u(e,t.ambient),u(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,o,s){var l=o&&o.length||0,u=0;return r&&r.length&&(u|=1),i&&i.length&&(u|=2),void 0===s||s||(u|=4),c(n,"HEAPF32",(e=new t._VerticesBuilder(e,n.length/2,l,u)).positions()),e.texCoords()&&c(r,"HEAPF32",e.texCoords()),e.colors()&&c(a(i),"HEAPU32",e.colors()),e.indices()&&c(o,"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],o=t[6]*r+t[7]*i+t[8],a=t[3]*r+t[4]*i+t[5];e[n]=(t[0]*r+t[1]*i+t[2])/o,e[n+1]=a/o}return e},t.Matrix.multiply=function(){return C(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,b(r,n,1-t,e),r,t,b(-r,e,1-t,n),0,0,1]},t.Matrix.scaled=function(t,e,i,o){i=i||0,o=o||0;var a=n([t,e],r(3),3,0,1);return n([i-t*i,o-e*o],a,3,2,0)},t.Matrix.skewed=function(t,e,i,o){i=i||0,o=o||0;var a=n([t,e],r(3),3,1,-1);return n([-t*i,-e*o],a,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],o=1-n;return[o*r*r+n,o*r*i-e*(t=t[2]),o*r*t+e*i,0,o*r*i+e*t,o*i*i+n,o*i*t-e*r,0,o*r*t-e*i,o*i*t+e*r,o*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 o=t.M44.identity();return n(i,o,4,0,0),n(t.Vector.cross(i,r),o,4,1,0),n(t.Vector.mulScalar(r,-1),o,4,2,0),n(e,o,4,3,0),null===(e=t.M44.invert(o))?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 C(4,arguments)},t.M44.invert=function(t){var e=t[0],n=t[4],r=t[8],i=t[12],o=t[1],a=t[5],s=t[9],l=t[13],u=t[2],c=t[6],h=t[10],f=t[14],d=t[3],p=t[7],g=t[11],y=e*a-n*o,m=e*s-r*o,v=e*l-i*o,b=n*s-r*a,w=n*l-i*a,C=r*l-i*s,A=u*p-c*d,T=u*g-h*d,S=u*(t=t[15])-f*d,P=c*g-h*p,_=c*t-f*p,M=h*t-f*g,k=y*M-m*_+v*P+b*S-w*T+C*A,F=1/k;return 0===k||1/0===F?null:(e=[a*(M*=F)-s*(_*=F)+l*(P*=F),s*(S*=F)-o*M-l*(T*=F),o*_-a*S+l*(A*=F),a*T-o*P-s*A,r*_-n*M-i*P,e*M-r*S+i*T,n*S-e*_-i*A,e*P-n*T+r*A,p*(C*=F)-g*(w*=F)+t*(b*=F),g*(v*=F)-d*C-t*(m*=F),d*w-p*v+t*(y*=F),p*m-d*b-g*y,h*w-c*C-f*b,u*C-h*v+f*m,c*v-u*w-f*y,u*b-c*m+h*y]).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=$[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 o=0;4>o;o++)n[r++]=t[i]*e[o]+t[i+1]*e[o+5]+t[i+2]*e[o+10]+t[i+3]*e[o+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},(X=e).Vd=X.Vd||[],X.Vd.push((function(){function t(t){if(!t||!t.length)return[];for(var e=[],n=0;n<t.length;n+=5){var r=X.LTRBRect(t[n],t[n+1],t[n+2],t[n+3]);r.direction=0===t[n+4]?X.TextDirection.RTL:X.TextDirection.LTR,e.push(r)}return X._free(t.byteOffset),e}function e(t){return void 0===(t=t||{}).weight&&(t.weight=X.FontWeight.Normal),t.width=t.width||X.FontWidth.Normal,t.slant=t.slant||X.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 c(e,"HEAPU32")}function r(t){if(a[t])return a[t];var e=R(t)+1,n=X._malloc(e);return O(t,D,n,e),a[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,u)),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=R(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||X.BLACK})),o=e.map((function(t){return t.blurRadius||0}));t._shadowLen=e.length;for(var a=X._malloc(8*e.length),f=a/4,d=0;d<e.length;d++){var g=e[d].offset||[0,0];X.HEAPF32[f]=g[0],X.HEAPF32[f+1]=g[1],f+=2}t._shadowColorsPtr=h(i).ce,t._shadowOffsetsPtr=a,t._shadowBlurRadiiPtr=c(o,"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})),o=e.map((function(t){return t.value})),t._fontFeatureLen=e.length,t._fontFeatureNamesPtr=n(i),t._fontFeatureValuesPtr=c(o,"HEAPU32")):(t._fontFeatureLen=0,t._fontFeatureNamesPtr=Y,t._fontFeatureValuesPtr=Y)}function o(t){X._free(t._fontFamiliesPtr),X._free(t._shadowColorsPtr),X._free(t._shadowOffsetsPtr),X._free(t._shadowBlurRadiiPtr),X._free(t._fontFeatureNamesPtr),X._free(t._fontFeatureValuesPtr)}X.Paragraph.prototype.getRectsForRange=function(e,n,r,i){return t(e=this._getRectsForRange(e,n,r,i))},X.Paragraph.prototype.getRectsForPlaceholders=function(){return t(this._getRectsForPlaceholders())},X.TypefaceFontProvider.prototype.registerFont=function(t,e){if(!(t=X.Typeface.MakeFreeTypeFaceFromData(t)))return null;e=r(e),this._registerFont(t,e)},X.ParagraphStyle=function(t){if(t.disableHinting=t.disableHinting||!1,t.ellipsis){var i=t.ellipsis;t._ellipsisPtr=r(i),t._ellipsisLen=R(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||X.TextAlign.Start,t.textDirection=t.textDirection||X.TextDirection.LTR,t.textHeightBehavior=t.textHeightBehavior||X.TextHeightBehavior.All,t.textStyle=X.TextStyle(t.textStyle),t},X.TextStyle=function(t){return t.color||(t.color=X.BLACK),t.decoration=t.decoration||0,t.decorationThickness=t.decorationThickness||0,t.decorationStyle=t.decorationStyle||X.DecorationStyle.Solid,t.textBaseline=t.textBaseline||X.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 a={},s=X._malloc(16),l=X._malloc(16),u=X._malloc(16);X.ParagraphBuilder.Make=function(t,e){return i(t.textStyle),e=X.ParagraphBuilder._Make(t,e),o(t.textStyle),e},X.ParagraphBuilder.MakeFromFontProvider=function(t,e){return i(t.textStyle),e=X.ParagraphBuilder._MakeFromFontProvider(t,e),o(t.textStyle),e},X.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 X.ParagraphBuilder._ShapeText(t,e,n)},X.ParagraphBuilder.prototype.pushStyle=function(t){i(t),this._pushStyle(t),o(t)},X.ParagraphBuilder.prototype.pushPaintStyle=function(t,e,n){i(t),this._pushPaintStyle(t,e,n),o(t)},X.ParagraphBuilder.prototype.addPlaceholder=function(t,e,n,r,i){n=n||X.PlaceholderAlignment.Baseline,r=r||X.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,o){var a=R(e),s=t._malloc(a+1);O(e,D,s,a+1),this._drawSimpleText(s,a,n,r,o,i),t._free(s)},t.Font.prototype.getGlyphBounds=function(e,n,r){var i=c(e,"HEAPU16"),o=t._malloc(16*e.length);return this._getGlyphWidthBounds(i,e.length,Y,o,n||null),n=new Float32Array(t.HEAPU8.buffer,o,4*e.length),u(i,e),r?(r.set(n),t._free(o),r):(e=Float32Array.from(n),t._free(o),e)},t.Font.prototype.getGlyphIDs=function(e,n,r){n||(n=e.length);var i=R(e)+1,o=t._malloc(i);return O(e,D,o,i),e=t._malloc(2*n),n=this._getGlyphIDs(o,i-1,n,e),t._free(o),0>n?(t._free(e),null):(o=new Uint16Array(t.HEAPU8.buffer,e,n),r?(r.set(o),t._free(e),r):(r=Uint16Array.from(o),t._free(e),r))},t.Font.prototype.getGlyphIntercepts=function(t,e,n,r){var i=c(t,"HEAPU16"),o=c(e,"HEAPF32");return this._getGlyphIntercepts(i,t.length,!(t&&t._ck),o,e.length,!(e&&e._ck),n,r)},t.Font.prototype.getGlyphWidths=function(e,n,r){var i=c(e,"HEAPU16"),o=t._malloc(4*e.length);return this._getGlyphWidthBounds(i,e.length,o,Y,n||null),n=new Float32Array(t.HEAPU8.buffer,o,e.length),u(i,e),r?(r.set(n),t._free(o),r):(e=Float32Array.from(n),t._free(o),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 o=new Uint8Array(e[i]),a=c(o,"HEAPU8");n.push(a),r.push(o.byteLength)}return n=c(n,"HEAPU32"),r=c(r,"HEAPU32"),e=t.FontMgr._fromData(n,r,e.length),t._free(n),t._free(r),e},t.Typeface.MakeFreeTypeFaceFromData=function(e){var n=c(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=R(e)+1,o=t._malloc(i);return O(e,D,o,i),e=t._malloc(2*n),n=this._getGlyphIDs(o,i-1,n,e),t._free(o),0>n?(t._free(e),null):(o=new Uint16Array(t.HEAPU8.buffer,e,n),r?(r.set(o),t._free(e),r):(r=Uint16Array.from(o),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 o=r.getGlyphIDs(e);o=r.getGlyphWidths(o);for(var a=[],s=(n=new t.ContourMeasureIter(n,!1,1)).next(),l=new Float32Array(4),u=0;u<e.length&&s;u++){var c=o[u];if((i+=c/2)>s.length()){if(s.delete(),!(s=n.next())){e=e.substring(0,u);break}i=c/2}s.getPosTan(i,l);var h=l[2],f=l[3];a.push(h,f,l[0]-c/2*h,l[1]-c/2*f),i+=c/2}return e=this.MakeFromRSXform(e,a,r),s&&s.delete(),n.delete(),e}},t.TextBlob.MakeFromRSXform=function(e,n,r){var i=R(e)+1,o=t._malloc(i);return O(e,D,o,i),e=c(n,"HEAPF32"),r=t.TextBlob._MakeFromRSXform(o,i-1,e,r),t._free(o),r||null},t.TextBlob.MakeFromRSXformGlyphs=function(e,n,r){var i=c(e,"HEAPU16");return n=c(n,"HEAPF32"),r=t.TextBlob._MakeFromRSXformGlyphs(i,2*e.length,n,r),u(i,e),r||null},t.TextBlob.MakeFromGlyphs=function(e,n){var r=c(e,"HEAPU16");return n=t.TextBlob._MakeFromGlyphs(r,2*e.length,n),u(r,e),n||null},t.TextBlob.MakeFromText=function(e,n){var r=R(e)+1,i=t._malloc(r);return O(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 o(t){if(!(t=b.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 a(a){this.Nd=a,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=o(t),n=e.family;e.typeface=w[n]?w[n][(e.style||"normal")+"|"+(e.variant||"normal")+"|"+(e.weight||"normal")]||w[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,o){d(this.Td,t,e,n,n,0,r,i,o)},this.arcTo=function(t,e,n,r,i){c(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,o,a){var s=this.Td;e([t,n,r,i,o,a])&&(s.isEmpty()&&s.moveTo(t,n),s.cubicTo(t,n,r,i,o,a))},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 o=new u(t,n,r,i);return this.Ae.push(o),o}},this.createPattern=function(t,e){return t=new y(t,e),this.Ae.push(t),t},this.createRadialGradient=function(t,n,r,i,o,a){if(e(arguments)){var s=new m(t,n,r,i,o,a);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,o,a,s){d(this.Td,t,e,n,r,i,o,a,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 o=this.Oe(),a=this.xe(o);a&&(this.Nd.save(),this.pe(),this.Nd.drawRect(t.XYWHRect(e,n,r,i),a),this.Nd.restore(),a.dispose()),this.Nd.drawRect(t.XYWHRect(e,n,r,i),o),o.dispose()},this.fillText=function(e,n,r){var i=this.Oe();e=t.TextBlob.MakeFromText(e,this.re);var o=this.xe(i);o&&(this.Nd.save(),this.pe(),this.Nd.drawTextBlob(e,n,r,o),this.Nd.restore(),o.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 o=this.Td;else{if(4!==i.length)throw"invalid arg count, need 3 or 4, got "+i.length;o=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],o.setFillType("nonzero"===r?t.FillType.Winding:t.FillType.EvenOdd),o.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,o,a,s,l){if(e([r,i,o,a,s,l]))if(void 0===o)this.Nd.writePixels(n.data,n.width,n.height,r,i);else if(o=o||0,a=a||0,s=s||n.width,l=l||n.height,0>s&&(o+=s,s=Math.abs(s)),0>l&&(a+=l,l=Math.abs(l)),0>o&&(s+=o,o=0),0>a&&(l+=a,a=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 u=t.XYWHRect(o,a,s,l);r=t.XYWHRect(r+o,i+a,s,l),i=t.Matrix.invert(this.Ud),this.Nd.save(),this.Nd.concat(i),this.Nd.drawImageRect(n,u,r,null,!1),this.Nd.restore(),n.delete()}},this.quadraticCurveTo=function(t,n,r,i){var o=this.Td;e([t,n,r,i])&&(o.isEmpty()&&o.moveTo(t,n),o.quadTo(t,n,r,i))},this.rect=function(n,r,i,o){var a=this.Td;e(n=t.XYWHRect(n,r,i,o))&&a.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,o,a){e(arguments)&&(this.resetTransform(),this.transform(t,n,r,i,o,a))},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 o=this.bf(),a=this.xe(o);a&&(this.Nd.save(),this.pe(),this.Nd.drawRect(t.XYWHRect(e,n,r,i),a),this.Nd.restore(),a.dispose()),this.Nd.drawRect(t.XYWHRect(e,n,r,i),o),o.dispose()},this.strokeText=function(e,n,r){var i=this.bf();e=t.TextBlob.MakeFromText(e,this.re);var o=this.xe(i);o&&(this.Nd.save(),this.pe(),this.Nd.drawTextBlob(e,n,r,o),this.Nd.restore(),o.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,o,a){e=[e,r,o,n,i,a,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 a(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,w[n]||(w[n]={"*":e}),w[n][r]=e},this.makePath2D=function(t){return t=new g(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 o,a="";r<i;)o=n.slice(r,Math.min(r+32768,i)),a+=String.fromCharCode.apply(null,o),r+=32768;n=btoa(a)}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 u(e,n,i,o){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 u(e,n,i,o);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 a=[e,n,i,o];t.Matrix.mapPoints(r,a),r=a[0];var s=a[1],l=a[2];return a=a[3],this.me(),this.Yd=t.Shader.MakeLinearGradient([r,s],[l,a],this.ee,this.$d,t.TileMode.Clamp)}}function c(t,n,r,i,o,a){if(e([n,r,i,o,a])){if(0>a)throw"radii cannot be negative";t.isEmpty()&&t.moveTo(n,r),t.arcToTangent(n,r,i,o,a)}}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,o,a,s){s=(s-a)/Math.PI*180,a=a/Math.PI*180,n=t.LTRBRect(n-i,r-o,n+i,r+o),1e-5>Math.abs(Math.abs(s)-360)?(r=s/2,e.arcToOval(n,a,r,!1),e.arcToOval(n,a+r,r,!1)):e.arcToOval(n,a,s,!1)}function d(n,r,i,o,a,s,l,u,c){if(e([r,i,o,a,s,l,u])){if(0>o||0>a)throw"radii cannot be negative";var h=2*Math.PI,d=l%h;0>d&&(d+=h);var p=d-l;l=d,u+=p,!c&&u-l>=h?u=l+h:c&&l-u>=h?u=l-h:!c&&l>u?u=l+(h-(l-u)%h):c&&l<u&&(u=l-(h-(u-l)%h)),s?(c=t.Matrix.rotated(s,r,i),s=t.Matrix.rotated(-s,r,i),n.transform(s),f(n,r,i,o,a,l,u),n.transform(c)):f(n,r,i,o,a,l,u)}}function p(t,n,r){e([n,r])&&(t.isEmpty()&&t.moveTo(n,r),t.lineTo(n,r))}function g(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,o){d(this.Wd,t,e,n,n,0,r,i,o)},this.arcTo=function(t,e,n,r,i){c(this.Wd,t,e,n,r,i)},this.bezierCurveTo=function(t,n,r,i,o,a){var s=this.Wd;e([t,n,r,i,o,a])&&(s.isEmpty()&&s.moveTo(t,n),s.cubicTo(t,n,r,i,o,a))},this.closePath=function(){h(this.Wd)},this.ellipse=function(t,e,n,r,i,o,a,s){d(this.Wd,t,e,n,r,i,o,a,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 o=this.Wd;e([t,n,r,i])&&(o.isEmpty()&&o.moveTo(t,n),o.quadTo(t,n,r,i))},this.rect=function(n,r,i,o){var a=this.Wd;e(n=t.XYWHRect(n,r,i,o))&&a.addRect(n)}}function y(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 y;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 m(e,n,i,o,a,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 m(e,n,i,o,a,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,o,a];t.Matrix.mapPoints(r,l);var u=l[0],c=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([u,c],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 b=/(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)(.+)/,w={"Noto Mono":{"*":null},monospace:{"*":null}};t._testing.parseFontString=o,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 a,s={};for(a in e)e.hasOwnProperty(a)&&(s[a]=e[a]);var l,u,c,h,f="./this.program";function d(t,e){throw e}l="object"==typeof window,u="function"==typeof importScripts,c="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,h=!l&&!c&&!u;var p,g,y,b,w,C="";c?(C=u?m.dirname(C)+"/":__dirname+"/",p=function(t,e){return b||(b=v),w||(w=m),t=w.normalize(t),b.readFileSync(t,e?null:"utf8")},y=function(t){return(t=p(t,!0)).buffer||(t=new Uint8Array(t)),F(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 Tn))throw t})),process.on("unhandledRejection",ot),d=function(t){process.exit(t)},e.inspect=function(){return"[Emscripten Module object]"}):h?("undefined"!=typeof read&&(p=function(t){return read(t)}),y=function(t){return"function"==typeof readbuffer?new Uint8Array(readbuffer(t)):(F("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||u)&&(u?C=self.location.href:"undefined"!=typeof document&&document.currentScript&&(C=document.currentScript.src),n&&(C=n),C=0!==C.indexOf("blob:")?C.substr(0,C.lastIndexOf("/")+1):"",p=function(t){var e=new XMLHttpRequest;return e.open("GET",t,!1),e.send(null),e.responseText},u&&(y=function(t){var e=new XMLHttpRequest;return e.open("GET",t,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)}),g=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 A=e.print||console.log.bind(console),T=e.printErr||console.warn.bind(console);for(a in s)s.hasOwnProperty(a)&&(e[a]=s[a]);s=null,e.thisProgram&&(f=e.thisProgram),e.quit&&(d=e.quit);var S,P=0;e.wasmBinary&&(S=e.wasmBinary);var _=e.noExitRuntime||!0;"object"!=typeof WebAssembly&&ot("no native wasm support detected");var M,k=!1;function F(t,e){t||ot("Assertion failed: "+e)}var x="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&&x)return x.decode(t.subarray(e,n));for(r="";e<n;){var i=t[e++];if(128&i){var o=63&t[e++];if(192==(224&i))r+=String.fromCharCode((31&i)<<6|o);else{var a=63&t[e++];65536>(i=224==(240&i)?(15&i)<<12|o<<6|a:(7&i)<<18|o<<12|a<<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 B(t,e){return t?E(D,t,e):""}function O(t,e,n,r){if(!(0<r))return 0;var i=n;r=n+r-1;for(var o=0;o<t.length;++o){var a=t.charCodeAt(o);if(55296<=a&&57343>=a&&(a=65536+((1023&a)<<10)|1023&t.charCodeAt(++o)),127>=a){if(n>=r)break;e[n++]=a}else{if(2047>=a){if(n+1>=r)break;e[n++]=192|a>>6}else{if(65535>=a){if(n+2>=r)break;e[n++]=224|a>>12}else{if(n+3>=r)break;e[n++]=240|a>>18,e[n++]=128|a>>12&63}e[n++]=128|a>>6&63}e[n++]=128|63&a}}return e[n]=0,n-i}function R(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 L,I,D,W,z,j,G,N,U,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)&&z[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=W[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)W[e>>1]=t.charCodeAt(i),e+=2;return W[e>>1]=0,e-r}function q(t){return 2*t.length}function X(t,e){for(var n=0,r="";!(n>=e/4);){var i=j[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 $(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 o=t.charCodeAt(i);if(55296<=o&&57343>=o&&(o=65536+((1023&o)<<10)|1023&t.charCodeAt(++i)),j[e>>2]=o,(e+=4)+4>n)break}return j[e>>2]=0,e-r}function Q(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 K(){var t=M.buffer;L=t,e.HEAP8=I=new Int8Array(t),e.HEAP16=W=new Int16Array(t),e.HEAP32=j=new Int32Array(t),e.HEAPU8=D=new Uint8Array(t),e.HEAPU16=z=new Uint16Array(t),e.HEAPU32=G=new Uint32Array(t),e.HEAPF32=N=new Float32Array(t),e.HEAPF64=U=new Float64Array(t)}var J,Z=[],tt=[],et=[];function nt(){var t=e.preRun.shift();Z.unshift(t)}var rt=0,it=null;function ot(t){throw e.onAbort&&e.onAbort(t),T(t),k=!0,t=new WebAssembly.RuntimeError("abort("+t+"). Build with -s ASSERTIONS=1 for more info."),i(t),t}function at(){return st.startsWith("data:application/octet-stream;base64,")}e.preloadedImages={},e.preloadedAudios={};var st="canvaskit.wasm";if(!at()){var lt=st;st=e.locateFile?e.locateFile(lt,C):C+lt}function ut(){var t=st;try{if(t==st&&S)return new Uint8Array(S);if(y)return y(t);throw"both async and sync fetching of the wasm failed"}catch(t){ot(t)}}function ct(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?J.get(r)():J.get(r)(n.df):r(void 0===n.df?null:n.df)}}}function ht(t){this.Rd=t-16,this.ig=function(t){j[this.Rd+8>>2]=t},this.fg=function(t){j[this.Rd+0>>2]=t},this.gg=function(){j[this.Rd+4>>2]=0},this.eg=function(){I[this.Rd+12>>0]=0},this.hg=function(){I[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={},gt={};function yt(t){for(;t.length;){var e=t.pop();t.pop()(e)}}function mt(t){return this.fromWireType(G[t>>2])}var vt={},bt={},wt={};function Ct(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 At(t,e){return t=Ct(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=At(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 St=void 0;function Pt(t){throw new St(t)}function _t(t,e,n){function r(e){(e=n(e)).length!==t.length&&Pt("Mismatched type converter count");for(var r=0;r<t.length;++r)Bt(t[r],e[r])}t.forEach((function(t){wt[t]=e}));var i=Array(e.length),o=[],a=0;e.forEach((function(t,e){bt.hasOwnProperty(t)?i[e]=bt[t]:(o.push(t),vt.hasOwnProperty(t)||(vt[t]=[]),vt[t].push((function(){i[e]=bt[t],++a===o.length&&r(i)})))})),0===o.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 kt=void 0;function Ft(t){for(var e="";D[t];)e+=kt[D[t++]];return e}var xt=void 0;function Et(t){throw new xt(t)}function Bt(t,e,n){if(n=n||{},!("argPackAdvance"in e))throw new TypeError("registerType registeredInstance requires argPackAdvance");var r=e.name;if(t||Et('type "'+r+'" must have a positive integer typeid pointer'),bt.hasOwnProperty(t)){if(n.Sf)return;Et("Cannot register type '"+r+"' twice")}bt[t]=e,delete wt[t],vt.hasOwnProperty(t)&&(e=vt[t],delete vt[t],e.forEach((function(t){t()})))}function Ot(t){Et(t.Ld.Xd.Sd.name+" instance already deleted")}var Rt=!1;function Lt(){}function It(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):(Rt=new FinalizationGroup((function(t){for(var e=t.next();!e.done;e=t.next())(e=e.value).Rd?It(e):console.warn("object already deleted: "+e.Rd)})),Lt=function(t){Rt.unregister(t.Ld)},(Dt=function(t){return Rt.register(t,t.Ld,t.Ld),t})(t))}var Wt=void 0,zt=[];function jt(){for(;zt.length;){var t=zt.pop();t.Ld.De=!1,t.delete()}}function Gt(){}var Nt={};function Ut(t,e,n){if(void 0===t[e].Zd){var r=t[e];t[e]=function(){return t[e].Zd.hasOwnProperty(arguments.length)||Et("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])&&Et("Cannot register public name '"+t+"' twice"),Ut(e,t,t),e.hasOwnProperty(r)&&Et("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,o,a,s){this.name=t,this.constructor=e,this.Ee=n,this.ke=r,this.ie=i,this.Lf=o,this.Ne=a,this.Ff=s,this.bg=[]}function Yt(t,e,n){for(;e!==n;)e.Ne||Et("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&&Et("null is not a valid "+this.name),0):(e.Ld||Et('Cannot pass "'+pe(e)+'" as a '+this.name),e.Ld.Rd||Et("Cannot pass deleted object as a pointer of type "+this.name),Yt(e.Ld.Rd,e.Ld.Xd.Sd,this.Sd))}function Xt(t,e){if(null===e){if(this.ff&&Et("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||Et('Cannot pass "'+pe(e)+'" as a '+this.name),e.Ld.Rd||Et("Cannot pass deleted object as a pointer of type "+this.name),!this.Re&&e.Ld.Xd.Re&&Et("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&&Et("Passing raw pointer to smart pointer is illegal"),this.mg){case 0:e.Ld.ge===this?n=e.Ld.de:Et("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:Et("Unsupporting sharing policy")}return n}function $t(t,e){return null===e?(this.ff&&Et("null is not a valid "+this.name),0):(e.Ld||Et('Cannot pass "'+pe(e)+'" as a '+this.name),e.Ld.Rd||Et("Cannot pass deleted object as a pointer of type "+this.name),e.Ld.Xd.Re&&Et("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 Qt(t,e,n){return e===n?t:void 0===n.ie||null===(t=Qt(t,e,n.ie))?null:n.Ff(t)}var Kt={};function Jt(t,e){return e.Xd&&e.Rd||Pt("makeClassHandle requires ptr and ptrType"),!!e.ge!=!!e.de&&Pt("Both smartPtrType and smartPtr must be specified"),e.count={value:1},Dt(Object.create(t,{Ld:{value:e}}))}function Zt(t,e,n,r,i,o,a,s,l,u,c){this.name=t,this.Sd=e,this.ff=n,this.Re=r,this.Se=i,this.ag=o,this.mg=a,this.tf=s,this.gf=l,this.cg=u,this.ke=c,i||void 0!==e.ie?this.toWireType=Xt:(this.toWireType=r?qt:$t,this.fe=null)}function te(t,n,r){e.hasOwnProperty(t)||Pt("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=Ft(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=J.get(n).apply(null,r),i}}(t,n):J.get(n);return"function"!=typeof r&&Et("unknown function pointer with signature "+t+": "+n),r}var ne=void 0;function re(t){var e=Ft(t=mn(t));return gn(t),e}function ie(t,e){var n=[],r={};throw e.forEach((function t(e){r[e]||bt[e]||(wt[e]?wt[e].forEach(t):(n.push(e),r[e]=!0))})),new ne(t+": "+n.map(re).join([", "]))}function oe(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=At(e.name||"unknownFunctionName",(function(){}));return n.prototype=e.prototype,n=new n,(t=e.apply(n,t))instanceof Object?t:n}function ae(t,e,n,r,i){var o=e.length;2>o&&Et("argTypes array size mismatch! Must at least get return value and 'this' types!");var a=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,u="",c="";for(n=0;n<o-2;++n)u+=(0!==n?", ":"")+"arg"+n,c+=(0!==n?", ":"")+"arg"+n+"Wired";t="return function "+Ct(t)+"("+u+") {\nif (arguments.length !== "+(o-2)+") {\nthrowBindingError('function "+t+" called with ' + arguments.length + ' arguments, expected "+(o-2)+" args!');\n}\n",s&&(t+="var destructors = [];\n");var h=s?"destructors":"null";for(u="throwBindingError invoker fn runDestructors retType classParam".split(" "),r=[Et,r,i,yt,e[0],e[1]],a&&(t+="var thisWired = classParam.toWireType("+h+", this);\n"),n=0;n<o-2;++n)t+="var arg"+n+"Wired = argType"+n+".toWireType("+h+", arg"+n+"); // "+e[n+2].name+"\n",u.push("argType"+n),r.push(e[n+2]);if(a&&(c="thisWired"+(0<c.length?", ":"")+c),t+=(l?"var rv = ":"")+"invoker(fn"+(0<c.length?", ":"")+c+");\n",s)t+="runDestructors(destructors);\n";else for(n=a?1:2;n<e.length;++n)o=1===n?"thisWired":"arg"+(n-2)+"Wired",null!==e[n].fe&&(t+=o+"_dtor("+o+"); // "+e[n].name+"\n",u.push(o+"_dtor"),r.push(e[n].fe));return l&&(t+="var ret = retType.fromWireType(rv);\nreturn ret;\n"),u.push(t+"}\n"),oe(u).apply(null,r)}function se(t,e){for(var n=[],r=0;r<t;r++)n.push(j[(e>>2)+r]);return n}var le=[],ue=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function ce(t){4<t&&0==--ue[t].hf&&(ue[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():ue.length;return ue[e]={hf:1,value:t},e}}function fe(t,e,n){switch(e){case 0:return function(t){return this.fromWireType((n?I:D)[t])};case 1:return function(t){return this.fromWireType((n?W:z)[t>>1])};case 2:return function(t){return this.fromWireType((n?j:G)[t>>2])};default:throw new TypeError("Unknown integer type: "+t)}}function de(t,e){var n=bt[t];return void 0===n&&Et(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 ge(t,e){switch(e){case 2:return function(t){return this.fromWireType(N[t>>2])};case 3:return function(t){return this.fromWireType(U[t>>3])};default:throw new TypeError("Unknown float type: "+t)}}function ye(t,e,n){switch(e){case 0:return n?function(t){return I[t]}:function(t){return D[t]};case 1:return n?function(t){return W[t>>1]}:function(t){return z[t>>1]};case 2:return n?function(t){return j[t>>2]}:function(t){return G[t>>2]};default:throw new TypeError("Unknown integer type: "+t)}}function me(t){return t||Et("Cannot use deleted val. handle = "+t),ue[t].value}var ve={};function be(t){var e=ve[t];return void 0===e?Ft(t):e}var we=[];function Ce(){return"object"==typeof globalThis?globalThis:Function("return this")()}var Ae,Te={};Ae=c?function(){var t=process.hrtime();return 1e3*t[0]+t[1]/1e6}:"undefined"!=typeof dateNow?dateNow:function(){return performance.now()};var Se=1,Pe=[],_e=[],Me=[],ke=[],Fe=[],xe=[],Ee=[],Be=[],Oe=[],Re=[],Le={},Ie={},De=4;function We(t){Ne||(Ne=t)}function ze(t){for(var e=Se++,n=t.length;n<e;n++)t[n]=null;return e}function je(t){return Ge=Be[t],e.zg=ln=Ge&&Ge.le,!(t&&!ln)}var Ge,Ne,Ue=[];function He(t,e,n,r){for(var i=0;i<t;i++){var o=ln[n](),a=o&&ze(r);o?(o.name=a,r[a]=o):We(1282),j[e+4*i>>2]=a}}function Ve(t){var e=R(t)+1,n=pn(e);return O(t,D,n,e),n}function Ye(t){return 0==(t-=5120)?I:1==t?D:2==t?W:4==t?j:6==t?N:5==t||28922==t||28520==t||30779==t||30782==t?G:z}function qe(t,e,n,r,i){t=Ye(t);var o=31-Math.clz32(t.BYTES_PER_ELEMENT),a=De;return t.subarray(i>>o,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<<o)+a-1&-a)>>o)}function Xe(t){var e=ln.Df,n=e.Ze[t];return 0<=n&&(e.Ze[t]=n=ln.getUniformLocation(e,e.uf[t]+(0<n?"["+n+"]":""))),n}var $e,Qe=[],Ke=[],Je={};function Ze(){if(!$e){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 Je)e[t]=Je[t];var n=[];for(t in e)n.push(t+"="+e[t]);$e=n}return $e}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 on(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}St=e.InternalError=Tt("InternalError");for(var an=Array(256),sn=0;256>sn;++sn)an[sn]=String.fromCharCode(sn);kt=an,xt=e.BindingError=Tt("BindingError"),Gt.prototype.isAliasOf=function(t){if(!(this instanceof Gt&&t instanceof Gt))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},Gt.prototype.clone=function(){if(this.Ld.Rd||Ot(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},Gt.prototype.delete=function(){this.Ld.Rd||Ot(this),this.Ld.De&&!this.Ld.Le&&Et("Object already scheduled for deletion"),Lt(this),It(this.Ld),this.Ld.Le||(this.Ld.de=void 0,this.Ld.Rd=void 0)},Gt.prototype.isDeleted=function(){return!this.Ld.Rd},Gt.prototype.deleteLater=function(){return this.Ld.Rd||Ot(this),this.Ld.De&&!this.Ld.Le&&Et("Object already scheduled for deletion"),zt.push(this),1===zt.length&&Wt&&Wt(jt),this.Ld.De=!0,this},Zt.prototype.Mf=function(t){return this.tf&&(t=this.tf(t)),t},Zt.prototype.mf=function(t){this.ke&&this.ke(t)},Zt.prototype.argPackAdvance=8,Zt.prototype.readValueFromPointer=mt,Zt.prototype.deleteObject=function(t){null!==t&&t.delete()},Zt.prototype.fromWireType=function(t){function e(){return this.Se?Jt(this.Sd.Ee,{Xd:this.ag,Rd:n,ge:this,de:t}):Jt(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&&Et("ptr should not be undefined");t.ie;)e=t.Ne(e),t=t.ie;return Kt[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=Qt(n,this.Sd,r.Sd);return null===i?e.call(this):this.Se?Jt(r.Sd.Ee,{Xd:r,Rd:i,ge:this,de:t}):Jt(r.Sd.Ee,{Xd:r,Rd:i})},e.getInheritedInstanceCount=function(){return Object.keys(Kt).length},e.getLiveInheritedInstances=function(){var t,e=[];for(t in Kt)Kt.hasOwnProperty(t)&&e.push(Kt[t]);return e},e.flushPendingDeletes=jt,e.setDelayFunction=function(t){Wt=t,zt.length&&Wt&&Wt(jt)},ne=e.UnboundTypeError=Tt("UnboundTypeError"),e.count_emval_handles=function(){for(var t=0,e=5;e<ue.length;++e)void 0!==ue[e]&&++t;return t},e.get_first_emval=function(){for(var t=5;t<ue.length;++t)if(void 0!==ue[t])return ue[t];return null};for(var ln,un=0;32>un;++un)Ue.push(Array(un));var cn=new Float32Array(288);for(un=0;288>un;++un)Qe[un]=cn.subarray(0,un+1);var hn=new Int32Array(288);for(un=0;288>un;++un)Ke[un]=hn.subarray(0,un+1);var fn={Kb:function(t){return pn(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,o){return o<<=12,0!=(16&r)&&0!=t%65536?e=-28:0!=(32&r)?(t=An(65536,e))?(dn(t,0,e),ft[t]={Zf:t,Yf:e,Af:!0,fd:i,Dg:n,flags:r,offset:o},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=gt[t];delete gt[t];var n=e.gf,r=e.ke,i=e.qf;_t([t],i.map((function(t){return t.Qf})).concat(i.map((function(t){return t.kg}))),(function(t){var o={};return i.forEach((function(e,n){var r=t[n],a=e.Of,s=e.Pf,l=t[n+i.length],u=e.jg,c=e.lg;o[e.Hf]={read:function(t){return r.fromWireType(a(s,t))},write:function(t,e){var n=[];u(c,t,l.toWireType(n,e)),yt(n)}}})),[{name:e.name,fromWireType:function(t){var e,n={};for(e in o)n[e]=o[e].read(t);return r(t),n},toWireType:function(t,e){for(var i in o)if(!(i in e))throw new TypeError('Missing field: "'+i+'"');var a=n();for(i in o)o[i].write(a,e[i]);return null!==t&&t.push(r,a),a},argPackAdvance:8,readValueFromPointer:mt,fe:r}]}))},ob:function(){},Db:function(t,e,n,r,i){var o=Mt(n);Bt(t,{name:e=Ft(e),fromWireType:function(t){return!!t},toWireType:function(t,e){return e?r:i},argPackAdvance:8,readValueFromPointer:function(t){if(1===n)var r=I;else if(2===n)r=W;else{if(4!==n)throw new TypeError("Unknown boolean type size: "+e);r=j}return this.fromWireType(r[t>>o])},fe:null})},m:function(t,e,n,r,i,o,a,s,l,u,c,h,f){c=Ft(c),o=ee(i,o),s&&(s=ee(a,s)),u&&(u=ee(l,u)),f=ee(h,f);var d=Ct(c);Ht(d,(function(){ie("Cannot construct "+c+" due to unbound types",[r])})),_t([t,e,n],r?[r]:[],(function(e){if(e=e[0],r)var n=e.Sd,i=n.Ee;else i=Gt.prototype;e=At(d,(function(){if(Object.getPrototypeOf(this)!==a)throw new xt("Use 'new' to construct "+c);if(void 0===l.ne)throw new xt(c+" has no accessible constructor");var t=l.ne[arguments.length];if(void 0===t)throw new xt("Tried to invoke ctor of "+c+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(l.ne).toString()+") parameters instead!");return t.apply(this,arguments)}));var a=Object.create(i,{constructor:{value:e}});e.prototype=a;var l=new Vt(c,e,a,f,n,o,s,u);n=new Zt(c,l,!0,!1,!1),i=new Zt(c+"*",l,!1,!1,!1);var h=new Zt(c+" 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,o,a){var s=se(n,r);e=Ft(e),o=ee(i,o),_t([],[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):(Ut(l,e,i),l[e].Zd[n-1]=r),_t([],s,(function(t){return t=[t[0],null].concat(t.slice(1)),t=ae(i,t,null,o,a),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,o){F(0<e);var a=se(e,n);i=ee(r,i);var s=[o],l=[];_t([],[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",a)},_t([],a,(function(r){return t.Sd.ne[e-1]=function(){arguments.length!==e-1&&Et(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),yt(l),r[0].fromWireType(t)},[]})),[]}))},c:function(t,e,n,r,i,o,a,s){var l=se(n,r);e=Ft(e),o=ee(i,o),_t([],[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 u=t.Sd.Ee,c=u[e];return void 0===c||void 0===c.Zd&&c.className!==t.name&&c.Be===n-2?(r.Be=n-2,r.className=t.name,u[e]=r):(Ut(u,e,i),u[e].Zd[n-2]=r),_t([],l,(function(r){return r=ae(i,r,t,o,a),void 0===u[e].Zd?(r.Be=n-2,u[e]=r):u[e].Zd[n-2]=r,[]})),[]}))},X:function(t,n,r){t=Ft(t),_t([],[n],(function(n){return n=n[0],e[t]=n.fromWireType(r),[]}))},Cb:function(t,e){Bt(t,{name:e=Ft(e),fromWireType:function(t){var e=ue[t].value;return ce(t),e},toWireType:function(t,e){return he(e)},argPackAdvance:8,readValueFromPointer:mt,fe:null})},k:function(t,e,n,r){function i(){}n=Mt(n),e=Ft(e),i.values={},Bt(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=Ft(e),t=r.constructor,r=Object.create(r.constructor.prototype,{value:{value:n},constructor:{value:At(r.name+"_"+e,(function(){}))}}),t.values[n]=r,t[e]=r},S:function(t,e,n){n=Mt(n),Bt(t,{name:e=Ft(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:ge(e,n),fe:null})},t:function(t,e,n,r,i,o){var a=se(e,n);t=Ft(t),i=ee(r,i),Ht(t,(function(){ie("Cannot call "+t+" due to unbound types",a)}),e-1),_t([],a,(function(n){return n=[n[0],null].concat(n.slice(1)),te(t,ae(t,n,null,i,o),e-1),[]}))},x:function(t,e,n,r,i){function o(t){return t}e=Ft(e),-1===i&&(i=4294967295);var a=Mt(n);if(0===r){var s=32-8*n;o=function(t){return t<<s>>>s}}var l=e.includes("unsigned");Bt(t,{name:e,fromWireType:o,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:ye(e,a,0!==r),fe:null})},u:function(t,e,n){function r(t){var e=G;return new i(L,e[1+(t>>=2)],e[t])}var i=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][e];Bt(t,{name:n=Ft(n),fromWireType:r,argPackAdvance:8,readValueFromPointer:r},{Sf:!0})},p:function(t,e,n,r,i,o,a,s,l,u,c,h){n=Ft(n),o=ee(i,o),s=ee(a,s),u=ee(l,u),h=ee(c,h),_t([t],[e],(function(t){return t=t[0],[new Zt(n,t.Sd,!1,!1,!0,t,r,o,s,u,h)]}))},T:function(t,e){var n="std::string"===(e=Ft(e));Bt(t,{name:e,fromWireType:function(t){var e=G[t>>2];if(n)for(var r=t+4,i=0;i<=e;++i){var o=t+4+i;if(i==e||0==D[o]){if(r=B(r,o-r),void 0===a)var a=r;else a+=String.fromCharCode(0),a+=r;r=o+1}}else{for(a=Array(e),i=0;i<e;++i)a[i]=String.fromCharCode(D[t+4+i]);a=a.join("")}return gn(t),a},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||Et("Cannot pass non-string to std::string");var i=(n&&r?function(){return R(e)}:function(){return e.length})(),o=pn(4+i+1);if(G[o>>2]=i,n&&r)O(e,D,o+4,i+1);else if(r)for(r=0;r<i;++r){var a=e.charCodeAt(r);255<a&&(gn(o),Et("String has UTF-16 code units that do not fit in 8 bits")),D[o+4+r]=a}else for(r=0;r<i;++r)D[o+4+r]=e[r];return null!==t&&t.push(gn,o),o},argPackAdvance:8,readValueFromPointer:mt,fe:function(t){gn(t)}})},I:function(t,e,n){if(n=Ft(n),2===e)var r=V,i=Y,o=q,a=function(){return z},s=1;else 4===e&&(r=X,i=$,o=Q,a=function(){return G},s=2);Bt(t,{name:n,fromWireType:function(t){for(var n,i=G[t>>2],o=a(),l=t+4,u=0;u<=i;++u){var c=t+4+u*e;u!=i&&0!=o[c>>s]||(l=r(l,c-l),void 0===n?n=l:(n+=String.fromCharCode(0),n+=l),l=c+e)}return gn(t),n},toWireType:function(t,r){"string"!=typeof r&&Et("Cannot pass non-string to C++ string type "+n);var a=o(r),l=pn(4+a+e);return G[l>>2]=a>>s,i(r,l+4,a+e),null!==t&&t.push(gn,l),l},argPackAdvance:8,readValueFromPointer:mt,fe:function(t){gn(t)}})},z:function(t,e,n,r,i,o){gt[t]={name:Ft(e),gf:ee(n,r),ke:ee(i,o),qf:[]}},h:function(t,e,n,r,i,o,a,s,l,u){gt[t].qf.push({Hf:Ft(e),Qf:n,Of:ee(r,i),Pf:o,kg:a,jg:ee(s,l),lg:u})},Fb:function(t,e){Bt(t,{Vf:!0,name:e=Ft(e),argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},B:function(t,e,n){t=me(t),e=de(e,"emval::as");var r=[],i=he(r);return j[n>>2]=i,e.toWireType(r,t)},M:function(t,e,n,r,i){t=we[t],e=me(e),n=be(n);var o=[];return j[r>>2]=he(o),t(e,n,o,i)},C:function(t,e,n,r){(t=we[t])(e=me(e),n=be(n),null,r)},E:ce,Ab:function(t){return 0===t?he(Ce()):(t=be(t),he(Ce()[t]))},A:function(t,e){e=function(t,e){for(var n=Array(t),r=0;r<t;++r)n[r]=de(j[(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"],o=[n],a="",s=0;s<t-1;++s)a+=(0!==s?", ":"")+"arg"+s,i.push("argType"+s),o.push(e[1+s]);r="return function "+Ct("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]("+a+");\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=we.length;return we.push(t),e}(t=oe(i).apply(null,o))},K:function(t,e){return he((t=me(t))[e=me(e)])},G:function(t){4<t&&(ue[t].hf+=1)},sb:function(t,n,r,i){t=me(t);var o=Te[n];if(!o){o="";for(var a=0;a<n;++a)o+=(0!==a?", ":"")+"arg"+a;var s="return function emval_allocator_"+n+"(constructor, argTypes, args) {\n";for(a=0;a<n;++a)s+="var argType"+a+" = requireRegisteredType(Module['HEAP32'][(argTypes >>> 2) + "+a+'], "parameter '+a+'");\nvar arg'+a+" = argType"+a+".readValueFromPointer(args);\nargs += argType"+a+"['argPackAdvance'];\n";o=new Function("requireRegisteredType","Module","__emval_register",s+"var obj = new constructor("+o+");\nreturn __emval_register(obj);\n}\n")(de,e,he),Te[n]=o}return o(t,r,i)},ib:function(){return he([])},Ma:function(t){return he(be(t))},jb:function(){return he({})},hb:function(t){return!(t=me(t))},lb:function(t){yt(ue[t].value),ce(t)},w:function(t,e,n){t=me(t),e=me(e),n=me(n),t[e]=n},s:function(t,e){return he(t=(t=de(t,"_emval_take_value")).readValueFromPointer(e))},d:function(){ot()},qb:function(t,e){if(0===t)t=Date.now();else{if(1!==t&&4!==t)return j[yn()>>2]=28,-1;t=Ae()}return j[e>>2]=t/1e3|0,j[e+4>>2]=t%1e3*1e6|0,0},Zc:function(t){ln.activeTexture(t)},_c:function(t,e){ln.attachShader(_e[t],xe[e])},$c:function(t,e,n){ln.bindAttribLocation(_e[t],e,B(n))},_:function(t,e){35051==t?ln.ef=e:35052==t&&(ln.Ce=e),ln.bindBuffer(t,Pe[e])},Z:function(t,e){ln.bindFramebuffer(t,Me[e])},bc:function(t,e){ln.bindRenderbuffer(t,ke[e])},Pb:function(t,e){ln.bindSampler(t,Oe[e])},$:function(t,e){ln.bindTexture(t,Fe[e])},vc:function(t){ln.bindVertexArray(Ee[t])},yc:function(t){ln.bindVertexArray(Ee[t])},aa:function(t,e,n,r){ln.blendColor(t,e,n,r)},ba:function(t){ln.blendEquation(t)},ca:function(t,e){ln.blendFunc(t,e)},Wb:function(t,e,n,r,i,o,a,s,l,u){ln.blitFramebuffer(t,e,n,r,i,o,a,s,l,u)},da:function(t,e,n,r){2<=Ge.version?n?ln.bufferData(t,D,r,n,e):ln.bufferData(t,e,r):ln.bufferData(t,n?D.subarray(n,n+e):e,r)},ea:function(t,e,n,r){2<=Ge.version?ln.bufferSubData(t,e,D,r,n):ln.bufferSubData(t,e,D.subarray(r,r+n))},cc:function(t){return ln.checkFramebufferStatus(t)},L:function(t){ln.clear(t)},Y:function(t,e,n,r){ln.clearColor(t,e,n,r)},P:function(t){ln.clearStencil(t)},fb:function(t,e,n,r){return ln.clientWaitSync(Re[t],e,(n>>>0)+4294967296*r)},fa:function(t,e,n,r){ln.colorMask(!!t,!!e,!!n,!!r)},ga:function(t){ln.compileShader(xe[t])},ha:function(t,e,n,r,i,o,a,s){2<=Ge.version?ln.Ce?ln.compressedTexImage2D(t,e,n,r,i,o,a,s):ln.compressedTexImage2D(t,e,n,r,i,o,D,s,a):ln.compressedTexImage2D(t,e,n,r,i,o,s?D.subarray(s,s+a):null)},ia:function(t,e,n,r,i,o,a,s,l){2<=Ge.version?ln.Ce?ln.compressedTexSubImage2D(t,e,n,r,i,o,a,s,l):ln.compressedTexSubImage2D(t,e,n,r,i,o,a,D,l,s):ln.compressedTexSubImage2D(t,e,n,r,i,o,a,l?D.subarray(l,l+s):null)},ja:function(t,e,n,r,i,o,a,s){ln.copyTexSubImage2D(t,e,n,r,i,o,a,s)},ka:function(){var t=ze(_e),e=ln.createProgram();return e.name=t,e.Ve=e.Te=e.Ue=0,e.jf=1,_e[t]=e,t},la:function(t){var e=ze(xe);return xe[e]=ln.createShader(t),e},ma:function(t){ln.cullFace(t)},na:function(t,e){for(var n=0;n<t;n++){var r=j[e+4*n>>2],i=Pe[r];i&&(ln.deleteBuffer(i),i.name=0,Pe[r]=null,r==ln.ef&&(ln.ef=0),r==ln.Ce&&(ln.Ce=0))}},dc:function(t,e){for(var n=0;n<t;++n){var r=j[e+4*n>>2],i=Me[r];i&&(ln.deleteFramebuffer(i),i.name=0,Me[r]=null)}},oa:function(t){if(t){var e=_e[t];e?(ln.deleteProgram(e),e.name=0,_e[t]=null):We(1281)}},ec:function(t,e){for(var n=0;n<t;n++){var r=j[e+4*n>>2],i=ke[r];i&&(ln.deleteRenderbuffer(i),i.name=0,ke[r]=null)}},Qb:function(t,e){for(var n=0;n<t;n++){var r=j[e+4*n>>2],i=Oe[r];i&&(ln.deleteSampler(i),i.name=0,Oe[r]=null)}},pa:function(t){if(t){var e=xe[t];e?(ln.deleteShader(e),xe[t]=null):We(1281)}},Yb:function(t){if(t){var e=Re[t];e?(ln.deleteSync(e),e.name=0,Re[t]=null):We(1281)}},qa:function(t,e){for(var n=0;n<t;n++){var r=j[e+4*n>>2],i=Fe[r];i&&(ln.deleteTexture(i),i.name=0,Fe[r]=null)}},wc:function(t,e){for(var n=0;n<t;n++){var r=j[e+4*n>>2];ln.deleteVertexArray(Ee[r]),Ee[r]=null}},zc:function(t,e){for(var n=0;n<t;n++){var r=j[e+4*n>>2];ln.deleteVertexArray(Ee[r]),Ee[r]=null}},ra:function(t){ln.depthMask(!!t)},sa:function(t){ln.disable(t)},ta:function(t){ln.disableVertexAttribArray(t)},ua:function(t,e,n){ln.drawArrays(t,e,n)},tc:function(t,e,n,r){ln.drawArraysInstanced(t,e,n,r)},rc:function(t,e,n,r,i){ln.nf.drawArraysInstancedBaseInstanceWEBGL(t,e,n,r,i)},pc:function(t,e){for(var n=Ue[t],r=0;r<t;r++)n[r]=j[e+4*r>>2];ln.drawBuffers(n)},va:function(t,e,n,r){ln.drawElements(t,e,n,r)},uc:function(t,e,n,r,i){ln.drawElementsInstanced(t,e,n,r,i)},sc:function(t,e,n,r,i,o,a){ln.nf.drawElementsInstancedBaseVertexBaseInstanceWEBGL(t,e,n,r,i,o,a)},jc:function(t,e,n,r,i,o){ln.drawElements(t,r,i,o)},wa:function(t){ln.enable(t)},xa:function(t){ln.enableVertexAttribArray(t)},Ub:function(t,e){return(t=ln.fenceSync(t,e))?(e=ze(Re),t.name=e,Re[e]=t,e):0},ya:function(){ln.finish()},za:function(){ln.flush()},fc:function(t,e,n,r){ln.framebufferRenderbuffer(t,e,n,ke[r])},gc:function(t,e,n,r,i){ln.framebufferTexture2D(t,e,n,Fe[r],i)},Aa:function(t){ln.frontFace(t)},Ba:function(t,e){He(t,e,"createBuffer",Pe)},hc:function(t,e){He(t,e,"createFramebuffer",Me)},ic:function(t,e){He(t,e,"createRenderbuffer",ke)},Rb:function(t,e){He(t,e,"createSampler",Oe)},Ca:function(t,e){He(t,e,"createTexture",Fe)},xc:function(t,e){He(t,e,"createVertexArray",Ee)},Ac:function(t,e){He(t,e,"createVertexArray",Ee)},Zb:function(t){ln.generateMipmap(t)},Da:function(t,e,n){n?j[n>>2]=ln.getBufferParameter(t,e):We(1281)},Ea:function(){var t=ln.getError()||Ne;return Ne=0,t},_b:function(t,e,n,r){((t=ln.getFramebufferAttachmentParameter(t,e,n))instanceof WebGLRenderbuffer||t instanceof WebGLTexture)&&(t=0|t.name),j[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=ln.getParameter(34467);n=r?r.length:0;break;case 33309:if(2>Ge.version)return void We(1282);n=2*(ln.getSupportedExtensions()||[]).length;break;case 33307:case 33308:if(2>Ge.version)return void We(1280);n=33307==t?3:0}if(void 0===n)switch(r=ln.getParameter(t),typeof r){case"number":n=r;break;case"boolean":n=r?1:0;break;case"string":return void We(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 We(1280)}else{if(r instanceof Float32Array||r instanceof Uint32Array||r instanceof Int32Array||r instanceof Array){for(t=0;t<r.length;++t)j[e+4*t>>2]=r[t];return}try{n=0|r.name}catch(e){return We(1280),void T("GL_INVALID_ENUM in glGet0v: Unknown object returned from WebGL getParameter("+t+")! (error: "+e+")")}}break;default:return We(1280),void T("GL_INVALID_ENUM in glGet0v: Native code calling glGet0v("+t+") and it returns "+r+" of type "+typeof r+"!")}j[e>>2]=n}else We(1281)}(t,e)},Fa:function(t,e,n,r){null===(t=ln.getProgramInfoLog(_e[t]))&&(t="(unknown error)"),e=0<e&&r?O(t,D,r,e):0,n&&(j[n>>2]=e)},Ga:function(t,e,n){if(n)if(t>=Se)We(1281);else if(t=_e[t],35716==e)null===(t=ln.getProgramInfoLog(t))&&(t="(unknown error)"),j[n>>2]=t.length+1;else if(35719==e){if(!t.Ve)for(e=0;e<ln.getProgramParameter(t,35718);++e)t.Ve=Math.max(t.Ve,ln.getActiveUniform(t,e).name.length+1);j[n>>2]=t.Ve}else if(35722==e){if(!t.Te)for(e=0;e<ln.getProgramParameter(t,35721);++e)t.Te=Math.max(t.Te,ln.getActiveAttrib(t,e).name.length+1);j[n>>2]=t.Te}else if(35381==e){if(!t.Ue)for(e=0;e<ln.getProgramParameter(t,35382);++e)t.Ue=Math.max(t.Ue,ln.getActiveUniformBlockName(t,e).length+1);j[n>>2]=t.Ue}else j[n>>2]=ln.getProgramParameter(t,e);else We(1281)},$b:function(t,e,n){n?j[n>>2]=ln.getRenderbufferParameter(t,e):We(1281)},Ha:function(t,e,n,r){null===(t=ln.getShaderInfoLog(xe[t]))&&(t="(unknown error)"),e=0<e&&r?O(t,D,r,e):0,n&&(j[n>>2]=e)},Mb:function(t,e,n,r){t=ln.getShaderPrecisionFormat(t,e),j[n>>2]=t.rangeMin,j[n+4>>2]=t.rangeMax,j[r>>2]=t.precision},Ia:function(t,e,n){n?35716==e?(null===(t=ln.getShaderInfoLog(xe[t]))&&(t="(unknown error)"),j[n>>2]=t?t.length+1:0):35720==e?(t=ln.getShaderSource(xe[t]),j[n>>2]=t?t.length+1:0):j[n>>2]=ln.getShaderParameter(xe[t],e):We(1281)},J:function(t){var e=Le[t];if(!e){switch(t){case 7939:e=Ve((e=(e=ln.getSupportedExtensions()||[]).concat(e.map((function(t){return"GL_"+t})))).join(" "));break;case 7936:case 7937:case 37445:case 37446:(e=ln.getParameter(t))||We(1280),e=e&&Ve(e);break;case 7938:e=ln.getParameter(7938),e=Ve(e=2<=Ge.version?"OpenGL ES 3.0 ("+e+")":"OpenGL ES 2.0 ("+e+")");break;case 35724:var n=(e=ln.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:We(1280)}Le[t]=e}return e},eb:function(t,e){if(2>Ge.version)return We(1282),0;var n=Ie[t];return n?0>e||e>=n.length?(We(1281),0):n[e]:7939===t?(n=(n=(n=ln.getSupportedExtensions()||[]).concat(n.map((function(t){return"GL_"+t})))).map((function(t){return Ve(t)})),n=Ie[t]=n,0>e||e>=n.length?(We(1281),0):n[e]):(We(1280),0)},Ja:function(t,e){function n(t){return"]"==t.slice(-1)&&t.lastIndexOf("[")}e=B(e);var r,i=(t=_e[t]).Ze,o=t.wg,a=0,s=e,l=n(e);if(!i)for(t.Ze=i={},t.uf={},r=0;r<ln.getProgramParameter(t,35718);++r){var u=ln.getActiveUniform(t,r),c=u.name;u=u.size;var h=n(c);h=0<h?c.slice(0,h):c;var f=t.jf;for(t.jf+=u,o[h]=[u,f],c=0;c<u;++c)i[f]=c,t.uf[f++]=h}return 0<l&&(a=parseInt(e.slice(l+1))>>>0,s=e.slice(0,l)),(o=o[s])&&a<o[0]&&(i[a+=o[1]]=i[a]||ln.getUniformLocation(t,e))?a:-1},Nb:function(t,e,n){for(var r=Ue[e],i=0;i<e;i++)r[i]=j[n+4*i>>2];ln.invalidateFramebuffer(t,r)},Ob:function(t,e,n,r,i,o,a){for(var s=Ue[e],l=0;l<e;l++)s[l]=j[n+4*l>>2];ln.invalidateSubFramebuffer(t,s,r,i,o,a)},Vb:function(t){return ln.isSync(Re[t])},Ka:function(t){return(t=Fe[t])?ln.isTexture(t):0},La:function(t){ln.lineWidth(t)},Na:function(t){t=_e[t],ln.linkProgram(t),t.Ze=0,t.wg={}},nc:function(t,e,n,r,i,o){ln.sf.multiDrawArraysInstancedBaseInstanceWEBGL(t,j,e>>2,j,n>>2,j,r>>2,G,i>>2,o)},oc:function(t,e,n,r,i,o,a,s){ln.sf.multiDrawElementsInstancedBaseVertexBaseInstanceWEBGL(t,j,e>>2,n,j,r>>2,j,i>>2,j,o>>2,G,a>>2,s)},Oa:function(t,e){3317==t&&(De=e),ln.pixelStorei(t,e)},qc:function(t){ln.readBuffer(t)},Pa:function(t,e,n,r,i,o,a){if(2<=Ge.version)if(ln.ef)ln.readPixels(t,e,n,r,i,o,a);else{var s=Ye(o);ln.readPixels(t,e,n,r,i,o,s,a>>31-Math.clz32(s.BYTES_PER_ELEMENT))}else(a=qe(o,i,n,r,a))?ln.readPixels(t,e,n,r,i,o,a):We(1280)},ac:function(t,e,n,r){ln.renderbufferStorage(t,e,n,r)},Xb:function(t,e,n,r,i){ln.renderbufferStorageMultisample(t,e,n,r,i)},Sb:function(t,e,n){ln.samplerParameteri(Oe[t],e,n)},Tb:function(t,e,n){ln.samplerParameteri(Oe[t],e,j[n>>2])},Qa:function(t,e,n,r){ln.scissor(t,e,n,r)},Ra:function(t,e,n,r){for(var i="",o=0;o<e;++o){var a=r?j[r+4*o>>2]:-1;i+=B(j[n+4*o>>2],0>a?void 0:a)}ln.shaderSource(xe[t],i)},Sa:function(t,e,n){ln.stencilFunc(t,e,n)},Ta:function(t,e,n,r){ln.stencilFuncSeparate(t,e,n,r)},Ua:function(t){ln.stencilMask(t)},Va:function(t,e){ln.stencilMaskSeparate(t,e)},Wa:function(t,e,n){ln.stencilOp(t,e,n)},Xa:function(t,e,n,r){ln.stencilOpSeparate(t,e,n,r)},Ya:function(t,e,n,r,i,o,a,s,l){if(2<=Ge.version)if(ln.Ce)ln.texImage2D(t,e,n,r,i,o,a,s,l);else if(l){var u=Ye(s);ln.texImage2D(t,e,n,r,i,o,a,s,u,l>>31-Math.clz32(u.BYTES_PER_ELEMENT))}else ln.texImage2D(t,e,n,r,i,o,a,s,null);else ln.texImage2D(t,e,n,r,i,o,a,s,l?qe(s,a,r,i,l):null)},Za:function(t,e,n){ln.texParameterf(t,e,n)},_a:function(t,e,n){ln.texParameterf(t,e,N[n>>2])},$a:function(t,e,n){ln.texParameteri(t,e,n)},ab:function(t,e,n){ln.texParameteri(t,e,j[n>>2])},kc:function(t,e,n,r,i){ln.texStorage2D(t,e,n,r,i)},bb:function(t,e,n,r,i,o,a,s,l){if(2<=Ge.version)if(ln.Ce)ln.texSubImage2D(t,e,n,r,i,o,a,s,l);else if(l){var u=Ye(s);ln.texSubImage2D(t,e,n,r,i,o,a,s,u,l>>31-Math.clz32(u.BYTES_PER_ELEMENT))}else ln.texSubImage2D(t,e,n,r,i,o,a,s,null);else u=null,l&&(u=qe(s,a,i,o,l)),ln.texSubImage2D(t,e,n,r,i,o,a,s,u)},cb:function(t,e){ln.uniform1f(Xe(t),e)},db:function(t,e,n){if(2<=Ge.version)ln.uniform1fv(Xe(t),N,n>>2,e);else{if(288>=e)for(var r=Qe[e-1],i=0;i<e;++i)r[i]=N[n+4*i>>2];else r=N.subarray(n>>2,n+4*e>>2);ln.uniform1fv(Xe(t),r)}},Vc:function(t,e){ln.uniform1i(Xe(t),e)},Wc:function(t,e,n){if(2<=Ge.version)ln.uniform1iv(Xe(t),j,n>>2,e);else{if(288>=e)for(var r=Ke[e-1],i=0;i<e;++i)r[i]=j[n+4*i>>2];else r=j.subarray(n>>2,n+4*e>>2);ln.uniform1iv(Xe(t),r)}},Xc:function(t,e,n){ln.uniform2f(Xe(t),e,n)},Yc:function(t,e,n){if(2<=Ge.version)ln.uniform2fv(Xe(t),N,n>>2,2*e);else{if(144>=e)for(var r=Qe[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);ln.uniform2fv(Xe(t),r)}},Uc:function(t,e,n){ln.uniform2i(Xe(t),e,n)},Tc:function(t,e,n){if(2<=Ge.version)ln.uniform2iv(Xe(t),j,n>>2,2*e);else{if(144>=e)for(var r=Ke[2*e-1],i=0;i<2*e;i+=2)r[i]=j[n+4*i>>2],r[i+1]=j[n+(4*i+4)>>2];else r=j.subarray(n>>2,n+8*e>>2);ln.uniform2iv(Xe(t),r)}},Sc:function(t,e,n,r){ln.uniform3f(Xe(t),e,n,r)},Rc:function(t,e,n){if(2<=Ge.version)ln.uniform3fv(Xe(t),N,n>>2,3*e);else{if(96>=e)for(var r=Qe[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);ln.uniform3fv(Xe(t),r)}},Qc:function(t,e,n,r){ln.uniform3i(Xe(t),e,n,r)},Pc:function(t,e,n){if(2<=Ge.version)ln.uniform3iv(Xe(t),j,n>>2,3*e);else{if(96>=e)for(var r=Ke[3*e-1],i=0;i<3*e;i+=3)r[i]=j[n+4*i>>2],r[i+1]=j[n+(4*i+4)>>2],r[i+2]=j[n+(4*i+8)>>2];else r=j.subarray(n>>2,n+12*e>>2);ln.uniform3iv(Xe(t),r)}},Oc:function(t,e,n,r,i){ln.uniform4f(Xe(t),e,n,r,i)},Nc:function(t,e,n){if(2<=Ge.version)ln.uniform4fv(Xe(t),N,n>>2,4*e);else{if(72>=e){var r=Qe[4*e-1],i=N;n>>=2;for(var o=0;o<4*e;o+=4){var a=n+o;r[o]=i[a],r[o+1]=i[a+1],r[o+2]=i[a+2],r[o+3]=i[a+3]}}else r=N.subarray(n>>2,n+16*e>>2);ln.uniform4fv(Xe(t),r)}},Bc:function(t,e,n,r,i){ln.uniform4i(Xe(t),e,n,r,i)},Cc:function(t,e,n){if(2<=Ge.version)ln.uniform4iv(Xe(t),j,n>>2,4*e);else{if(72>=e)for(var r=Ke[4*e-1],i=0;i<4*e;i+=4)r[i]=j[n+4*i>>2],r[i+1]=j[n+(4*i+4)>>2],r[i+2]=j[n+(4*i+8)>>2],r[i+3]=j[n+(4*i+12)>>2];else r=j.subarray(n>>2,n+16*e>>2);ln.uniform4iv(Xe(t),r)}},Dc:function(t,e,n,r){if(2<=Ge.version)ln.uniformMatrix2fv(Xe(t),!!n,N,r>>2,4*e);else{if(72>=e)for(var i=Qe[4*e-1],o=0;o<4*e;o+=4)i[o]=N[r+4*o>>2],i[o+1]=N[r+(4*o+4)>>2],i[o+2]=N[r+(4*o+8)>>2],i[o+3]=N[r+(4*o+12)>>2];else i=N.subarray(r>>2,r+16*e>>2);ln.uniformMatrix2fv(Xe(t),!!n,i)}},Ec:function(t,e,n,r){if(2<=Ge.version)ln.uniformMatrix3fv(Xe(t),!!n,N,r>>2,9*e);else{if(32>=e)for(var i=Qe[9*e-1],o=0;o<9*e;o+=9)i[o]=N[r+4*o>>2],i[o+1]=N[r+(4*o+4)>>2],i[o+2]=N[r+(4*o+8)>>2],i[o+3]=N[r+(4*o+12)>>2],i[o+4]=N[r+(4*o+16)>>2],i[o+5]=N[r+(4*o+20)>>2],i[o+6]=N[r+(4*o+24)>>2],i[o+7]=N[r+(4*o+28)>>2],i[o+8]=N[r+(4*o+32)>>2];else i=N.subarray(r>>2,r+36*e>>2);ln.uniformMatrix3fv(Xe(t),!!n,i)}},Fc:function(t,e,n,r){if(2<=Ge.version)ln.uniformMatrix4fv(Xe(t),!!n,N,r>>2,16*e);else{if(18>=e){var i=Qe[16*e-1],o=N;r>>=2;for(var a=0;a<16*e;a+=16){var s=r+a;i[a]=o[s],i[a+1]=o[s+1],i[a+2]=o[s+2],i[a+3]=o[s+3],i[a+4]=o[s+4],i[a+5]=o[s+5],i[a+6]=o[s+6],i[a+7]=o[s+7],i[a+8]=o[s+8],i[a+9]=o[s+9],i[a+10]=o[s+10],i[a+11]=o[s+11],i[a+12]=o[s+12],i[a+13]=o[s+13],i[a+14]=o[s+14],i[a+15]=o[s+15]}}else i=N.subarray(r>>2,r+64*e>>2);ln.uniformMatrix4fv(Xe(t),!!n,i)}},Gc:function(t){t=_e[t],ln.useProgram(t),ln.Df=t},Hc:function(t,e){ln.vertexAttrib1f(t,e)},Ic:function(t,e){ln.vertexAttrib2f(t,N[e>>2],N[e+4>>2])},Jc:function(t,e){ln.vertexAttrib3f(t,N[e>>2],N[e+4>>2],N[e+8>>2])},Kc:function(t,e){ln.vertexAttrib4f(t,N[e>>2],N[e+4>>2],N[e+8>>2],N[e+12>>2])},lc:function(t,e){ln.vertexAttribDivisor(t,e)},mc:function(t,e,n,r,i){ln.vertexAttribIPointer(t,e,n,r,i)},Lc:function(t,e,n,r,i,o){ln.vertexAttribPointer(t,e,n,!!r,i,o)},Mc:function(t,e,n,r){ln.viewport(t,e,n,r)},gb:function(t,e,n,r){ln.waitSync(Re[t],e,(n>>>0)+4294967296*r)},e:function(t,e){throw Cn(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{M.grow(Math.min(2147483648,r)-L.byteLength+65535>>>16),K();var i=1;break t}catch(t){}i=void 0}if(i)return!0}return!1},kb:function(){return Ge?Ge.Rf:0},ub:function(t,e){var n=0;return Ze().forEach((function(r,i){var o=e+n;for(i=j[t+4*i>>2]=o,o=0;o<r.length;++o)I[i++>>0]=r.charCodeAt(o);I[i>>0]=0,n+=r.length+1})),0},vb:function(t,e){var n=Ze();j[t>>2]=n.length;var r=0;return n.forEach((function(t){r+=t.length+1})),j[e>>2]=r,0},Gb:function(t){_||(e.onExit&&e.onExit(t),k=!0),d(t,new Tn(t))},H:function(){return 0},tb:function(t,e){return t=1==t||2==t?2:ot(),I[e>>0]=t,0},nb:function(t,e,n,r,i,o){return t=pt.Nf(t),e=pt.Ef(t,e,n,r),j[o>>2]=e,0},wb:function(t,e,n,r){return t=pt.Nf(t),e=pt.Ef(t,e,n),j[r>>2]=e,0},mb:function(){},N:function(t,e,n,r){for(var i=0,o=0;o<n;o++){for(var a=j[e+8*o>>2],s=j[e+(8*o+4)>>2],l=0;l<s;l++){var u=D[a+l],c=dt[t];0===u||10===u?((1===t?A:T)(E(c,0)),c.length=0):c.push(u)}i+=s}return j[r>>2]=i,0},a:function(){return P},l:function(t,e){var n=bn();try{return J.get(t)(e)}catch(t){if(wn(n),t!==t+0&&"longjmp"!==t)throw t;Cn(1,0)}},o:function(t,e,n){var r=bn();try{return J.get(t)(e,n)}catch(t){if(wn(r),t!==t+0&&"longjmp"!==t)throw t;Cn(1,0)}},g:function(t,e,n,r){var i=bn();try{return J.get(t)(e,n,r)}catch(t){if(wn(i),t!==t+0&&"longjmp"!==t)throw t;Cn(1,0)}},D:function(t,e,n,r,i){var o=bn();try{return J.get(t)(e,n,r,i)}catch(t){if(wn(o),t!==t+0&&"longjmp"!==t)throw t;Cn(1,0)}},Lb:function(t,e,n,r,i,o){var a=bn();try{return J.get(t)(e,n,r,i,o)}catch(t){if(wn(a),t!==t+0&&"longjmp"!==t)throw t;Cn(1,0)}},W:function(t,e,n,r,i,o,a){var s=bn();try{return J.get(t)(e,n,r,i,o,a)}catch(t){if(wn(s),t!==t+0&&"longjmp"!==t)throw t;Cn(1,0)}},V:function(t,e,n,r,i,o,a,s,l,u){var c=bn();try{return J.get(t)(e,n,r,i,o,a,s,l,u)}catch(t){if(wn(c),t!==t+0&&"longjmp"!==t)throw t;Cn(1,0)}},U:function(t){var e=bn();try{J.get(t)()}catch(t){if(wn(e),t!==t+0&&"longjmp"!==t)throw t;Cn(1,0)}},n:function(t,e){var n=bn();try{J.get(t)(e)}catch(t){if(wn(n),t!==t+0&&"longjmp"!==t)throw t;Cn(1,0)}},r:function(t,e,n){var r=bn();try{J.get(t)(e,n)}catch(t){if(wn(r),t!==t+0&&"longjmp"!==t)throw t;Cn(1,0)}},i:function(t,e,n,r){var i=bn();try{J.get(t)(e,n,r)}catch(t){if(wn(i),t!==t+0&&"longjmp"!==t)throw t;Cn(1,0)}},q:function(t,e,n,r,i){var o=bn();try{J.get(t)(e,n,r,i)}catch(t){if(wn(o),t!==t+0&&"longjmp"!==t)throw t;Cn(1,0)}},Jb:function(t,e,n,r,i,o){var a=bn();try{J.get(t)(e,n,r,i,o)}catch(t){if(wn(a),t!==t+0&&"longjmp"!==t)throw t;Cn(1,0)}},Hb:function(t,e,n,r,i,o,a){var s=bn();try{J.get(t)(e,n,r,i,o,a)}catch(t){if(wn(s),t!==t+0&&"longjmp"!==t)throw t;Cn(1,0)}},Ib:function(t,e,n,r,i,o,a,s,l,u){var c=bn();try{J.get(t)(e,n,r,i,o,a,s,l,u)}catch(t){if(wn(c),t!==t+0&&"longjmp"!==t)throw t;Cn(1,0)}},b:function(t){P=t},rb:function(t,e,n,r){return function(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 o(t,e){return i(t,e,"0")}function a(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=on(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>=a(n,t)?0>=a(e,t)?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}var u=j[r+40>>2];for(var c in r={ug:j[r>>2],tg:j[r+4>>2],We:j[r+8>>2],Me:j[r+12>>2],Fe:j[r+16>>2],ae:j[r+20>>2],Xe:j[r+24>>2],Ye:j[r+28>>2],Fg:j[r+32>>2],sg:j[r+36>>2],vg:u?B(u):""},n=B(n),u={"%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(c,"g"),u[c]);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(c in u={"%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 o((t.ae+1900)/100|0,2)},"%d":function(t){return o(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 o(t.We,2)},"%I":function(t){return 0==(t=t.We)?t=12:12<t&&(t-=12),o(t,2)},"%j":function(t){return o(t.Me+en(tn(t.ae+1900)?nn:rn,t.Fe-1),3)},"%m":function(t){return o(t.Fe+1,2)},"%M":function(t){return o(t.tg,2)},"%n":function(){return"\n"},"%p":function(t){return 0<=t.We&&12>t.We?"AM":"PM"},"%S":function(t){return o(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:on(e,7-e.getDay());return 0>a(n,t=new Date(t.ae+1900,t.Fe,t.Me))?o(Math.ceil((31-n.getDate()+(en(tn(t.getFullYear())?nn:rn,t.getMonth()-1)-31)+t.getDate())/7),2):0===a(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=on(new Date(t.ae+1900,0,1),t.Ye);return 0>a(r,n)?"53":0>=a(e,r)?"01":o(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:on(e,0===e.getDay()?1:7-e.getDay()+1);return 0>a(n,t=new Date(t.ae+1900,t.Fe,t.Me))?o(Math.ceil((31-n.getDate()+(en(tn(t.getFullYear())?nn:rn,t.getMonth()-1)-31)+t.getDate())/7),2):0===a(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(c)&&(n=n.replace(new RegExp(c,"g"),u[c](r)));return c=function(t){var e=Array(R(t)+1);return O(t,e,0,e.length),e}(n),c.length>e?0:(I.set(c,t),c.length-1)}(t,e,n,r)}};!function(){function t(t){e.asm=t.exports,M=e.asm.ad,K(),J=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||u)){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 ut()}));if(g)return new Promise((function(t,e){g(st,(function(e){t(new Uint8Array(e))}),e)}))}return Promise.resolve().then((function(){return ut()}))}().then((function(t){return WebAssembly.instantiate(t,o)})).then(t,(function(t){T("failed to asynchronously prepare wasm: "+t),ot(t)}))}var o={a:fn};if(rt++,e.monitorRunDependencies&&e.monitorRunDependencies(rt),e.instantiateWasm)try{return e.instantiateWasm(o,t)}catch(t){return T("Module.instantiateWasm callback failed with error: "+t),!1}(S||"function"!=typeof WebAssembly.instantiateStreaming||at()||st.startsWith("file://")||"function"!=typeof fetch?r(n):fetch(st,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,o).then(n,(function(t){return T("wasm streaming compile failed: "+t),T("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 dn=e._memset=function(){return(dn=e._memset=e.asm.cd).apply(null,arguments)},pn=e._malloc=function(){return(pn=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)},mn=e.___getTypeName=function(){return(mn=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 vn,bn=e.stackSave=function(){return(bn=e.stackSave=e.asm.jd).apply(null,arguments)},wn=e.stackRestore=function(){return(wn=e.stackRestore=e.asm.kd).apply(null,arguments)},Cn=e._setThrew=function(){return(Cn=e._setThrew=e.asm.ld).apply(null,arguments)},An=e._memalign=function(){return(An=e._memalign=e.asm.md).apply(null,arguments)};function Tn(t){this.name="ExitStatus",this.message="Program terminated with exit("+t+")",this.status=t}function Sn(){function t(){if(!vn&&(vn=!0,e.calledRun=!0,!k)){if(ct(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)}ct(et)}}if(!(0<rt)){if(e.preRun)for("function"==typeof e.preRun&&(e.preRun=[e.preRun]);e.preRun.length;)nt();ct(Z),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(){vn||Sn(),vn||(it=t)},e.run=Sn,e.preInit)for("function"==typeof e.preInit&&(e.preInit=[e.preInit]);0<e.preInit.length;)e.preInit.pop()();return Sn(),t.ready});t.exports=r}(y);class b{}b.Transparent=[0,0,0,0],b.MediumVioletRed=[199,21,133,1],b.DeepPink=[255,20,147,1],b.PaleVioletRed=[219,112,147,1],b.HotPink=[255,105,180,1],b.LightPink=[255,182,193,1],b.Pink=[255,192,203,1],b.DarkRed=[139,0,0,1],b.Red=[255,0,0,1],b.Firebrick=[178,34,34,1],b.Crimson=[220,20,60,1],b.IndianRed=[205,92,92,1],b.LightCoral=[240,128,128,1],b.Salmon=[250,128,114,1],b.DarkSalmon=[233,150,122,1],b.LightSalmon=[255,160,122,1],b.OrangeRed=[255,69,0,1],b.Tomato=[255,99,71,1],b.DarkOrange=[255,140,0,1],b.Coral=[255,127,80,1],b.Orange=[255,165,0,1],b.DarkKhaki=[189,183,107,1],b.Gold=[255,215,0,1],b.Khaki=[240,230,140,1],b.PeachPuff=[255,218,185,1],b.Yellow=[255,255,0,1],b.PaleGoldenrod=[238,232,170,1],b.Moccasin=[255,228,181,1],b.PapayaWhip=[255,239,213,1],b.LightGoldenrodYellow=[250,250,210,1],b.LemonChiffon=[255,250,205,1],b.LightYellow=[255,255,224,1],b.Maroon=[128,0,0,1],b.Brown=[165,42,42,1],b.SaddleBrown=[139,69,19,1],b.Sienna=[160,82,45,1],b.Chocolate=[210,105,30,1],b.DarkGoldenrod=[184,134,11,1],b.Peru=[205,133,63,1],b.RosyBrown=[188,143,143,1],b.Goldenrod=[218,165,32,1],b.SandyBrown=[244,164,96,1],b.Tan=[210,180,140,1],b.Burlywood=[222,184,135,1],b.Wheat=[245,222,179,1],b.NavajoWhite=[255,222,173,1],b.Bisque=[255,228,196,1],b.BlanchedAlmond=[255,235,205,1],b.Cornsilk=[255,248,220,1],b.DarkGreen=[0,100,0,1],b.Green=[0,128,0,1],b.DarkOliveGreen=[85,107,47,1],b.ForestGreen=[34,139,34,1],b.SeaGreen=[46,139,87,1],b.Olive=[128,128,0,1],b.OliveDrab=[107,142,35,1],b.MediumSeaGreen=[60,179,113,1],b.LimeGreen=[50,205,50,1],b.Lime=[0,255,0,1],b.SpringGreen=[0,255,127,1],b.MediumSpringGreen=[0,250,154,1],b.DarkSeaGreen=[143,188,143,1],b.MediumAquamarine=[102,205,170,1],b.YellowGreen=[154,205,50,1],b.LawnGreen=[124,252,0,1],b.Chartreuse=[127,255,0,1],b.LightGreen=[144,238,144,1],b.GreenYellow=[173,255,47,1],b.PaleGreen=[152,251,152,1],b.Teal=[0,128,128,1],b.DarkCyan=[0,139,139,1],b.LightSeaGreen=[32,178,170,1],b.CadetBlue=[95,158,160,1],b.DarkTurquoise=[0,206,209,1],b.MediumTurquoise=[72,209,204,1],b.Turquoise=[64,224,208,1],b.Aqua=[0,255,255,1],b.Cyan=[0,255,255,1],b.Aquamarine=[127,255,212,1],b.PaleTurquoise=[175,238,238,1],b.LightCyan=[224,255,255,1],b.Navy=[0,0,128,1],b.DarkBlue=[0,0,139,1],b.MediumBlue=[0,0,205,1],b.Blue=[0,0,255,1],b.MidnightBlue=[25,25,112,1],b.RoyalBlue=[65,105,225,1],b.SteelBlue=[70,130,180,1],b.DodgerBlue=[30,144,255,1],b.DeepSkyBlue=[0,191,255,1],b.CornflowerBlue=[100,149,237,1],b.SkyBlue=[135,206,235,1],b.LightSkyBlue=[135,206,250,1],b.LightSteelBlue=[176,196,222,1],b.LightBlue=[173,216,230,1],b.PowderBlue=[176,224,230,1],b.Indigo=[75,0,130,1],b.Purple=[128,0,128,1],b.DarkMagenta=[139,0,139,1],b.DarkViolet=[148,0,211,1],b.DarkSlateBlue=[72,61,139,1],b.BlueViolet=[138,43,226,1],b.DarkOrchid=[153,50,204,1],b.Fuchsia=[255,0,255,1],b.Magenta=[255,0,255,1],b.SlateBlue=[106,90,205,1],b.MediumSlateBlue=[123,104,238,1],b.MediumOrchid=[186,85,211,1],b.MediumPurple=[147,112,219,1],b.Orchid=[218,112,214,1],b.Violet=[238,130,238,1],b.Plum=[221,160,221,1],b.Thistle=[216,191,216,1],b.Lavender=[230,230,250,1],b.MistyRose=[255,228,225,1],b.AntiqueWhite=[250,235,215,1],b.Linen=[250,240,230,1],b.Beige=[245,245,220,1],b.WhiteSmoke=[245,245,245,1],b.LavenderBlush=[255,240,245,1],b.OldLace=[253,245,230,1],b.AliceBlue=[240,248,255,1],b.Seashell=[255,245,238,1],b.GhostWhite=[248,248,255,1],b.Honeydew=[240,255,240,1],b.FloralWhite=[255,250,240,1],b.Azure=[240,255,255,1],b.MintCream=[245,255,250,1],b.Snow=[255,250,250,1],b.Ivory=[255,255,240,1],b.White=[255,255,255,1],b.Black=[0,0,0,1],b.DarkSlateGray=[47,79,79,1],b.DimGray=[105,105,105,1],b.SlateGray=[112,128,144,1],b.Gray=[128,128,128,1],b.LightSlateGray=[119,136,153,1],b.DarkGray=[169,169,169,1],b.Silver=[192,192,192,1],b.LightGray=[211,211,211,1],b.Gainsboro=[220,220,220,1],b.RebeccaPurple=[102,51,153,1];class w{}w.FPS_DISPLAY_TEXT_FONT_SIZE=12,w.FPS_DISPLAY_TEXT_COLOR=[0,0,0,.5],w.FPS_DISPLAY_UPDATE_INTERVAL=500,w.DEFAULT_SCENE_BACKGROUND_COLOR=b.WhiteSmoke,w.DEFAULT_SHAPE_FILL_COLOR=b.Red,w.DEFAULT_FONT_COLOR=b.Black,w.DEFAULT_FONT_SIZE=16,w.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"}(u||(u={}));class C{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"}(c||(c={}));class A{constructor(t,e){this.verticalConstraint=!1,this.focalEntityMinimum=!1,this.alterEntityMinimum=!1,this.verticalTypes=[c.topToTopOf,c.topToBottomOf,c.bottomToTopOf,c.bottomToBottomOf],this.focalEntityMinimumTypes=[c.topToTopOf,c.topToBottomOf,c.startToStartOf,c.startToEndOf],this.alterEntityMinimumTypes=[c.topToTopOf,c.bottomToTopOf,c.startToStartOf,c.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 T{constructor(t=0,e=0){this.width=t,this.height=e,this.width=t,this.height=e}}function S(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 P{constructor(t={}){this.type=u.entity,this.isDrawable=!1,this.isShape=!1,this.isText=!1,this.position=new C(0,0),this.scale=1,this.isUserInteractionEnabled=!1,this.hidden=!1,this.layout={},this.children=new Array,this.absolutePosition=new C(0,0),this.size=new T(0,0),this.absoluteScale=1,this.actions=new Array,this.originalActions=new Array,this.eventListeners=new Array,this.uuid=class{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)}))}}.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==u.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(c).forEach((r=>{if(void 0!==t[r]){let i,o="";if(t[r]instanceof P)i=t[r];else{const n=t[r];i=e.filter((t=>t.name===n)).find(Boolean),o=`. 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"+o);const a=new A(r,i);n.push(a)}})),n}calculateYFromConstraint(t,e,n,r){let i=t.alterEntity.absolutePosition.y;return t.alterEntityMinimum?t.alterEntity.type!==u.scene&&(i-=.5*t.alterEntity.size.height*r):t.alterEntity.type!==u.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!==u.scene&&(i-=.5*t.alterEntity.size.width*r):t.alterEntity.type!==u.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,o,a,s,l,h,f,d,p,g,y,m,v;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===(a=null===(o=this.layout)||void 0===o?void 0:o.constraints)||void 0===a?void 0:a.verticalBias)&&void 0!==s?s:.5,u=null!==(h=null===(l=this.layout)||void 0===l?void 0:l.marginTop)&&void 0!==h?h:0,c=null!==(d=null===(f=this.layout)||void 0===f?void 0:f.marginBottom)&&void 0!==d?d:0,b=null!==(g=null===(p=this.layout)||void 0===p?void 0:p.marginStart)&&void 0!==g?g:0,w=null!==(m=null===(y=this.layout)||void 0===y?void 0:y.marginEnd)&&void 0!==m?m:0,C=this.parseLayoutConstraints(null===(v=this.layout)||void 0===v?void 0:v.constraints,this.parentSceneAsEntity.descendants),A=this.parent.absoluteScale,T=C.filter((t=>t.verticalConstraint)).map((t=>this.calculateYFromConstraint(t,u,c,A)));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 S=C.filter((t=>!t.verticalConstraint)).map((t=>this.calculateXFromConstraint(t,b,w,A)));0===S.length||(1===S.length?this.absolutePosition.x=S[0]:2===S.length&&(this.absolutePosition.x=Math.min(S[0],S[1])+t*Math.abs(S[0]-S[1])))}const b=this.actions.filter((t=>t.runDuringTransition&&!t.completed)),w=this.actions.filter((t=>!t.runDuringTransition&&!t.completed));b.length>0?(b.forEach((t=>{-1===t.runStartTime&&(t.runStartTime=Globals.now)})),b.forEach((t=>e.evaluateAction(t,this,Globals.now,Globals.deltaTime)))):w.length>0&&(w.forEach((t=>{-1===t.runStartTime&&(t.runStartTime=Globals.now)})),w.forEach((t=>e.evaluateAction(t,this,Globals.now,Globals.deltaTime))));const C=new Map;this.children.forEach((t=>{var e;C.set(t.uuid,function(t,e){const n=new Array;return void 0===e||Object.values(c).forEach((r=>{if(void 0!==e[r]){let i,o="";if(e[r]instanceof P)i=e[r];else{const n=e[r];let a;a=t.type===u.scene?t.descendants:t.parentSceneAsEntity.descendants,i=a.filter((t=>t.name===n)).find(Boolean),void 0===i&&(o=`. 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"+o);i!==t&&n.push(i.uuid)}})),n}(this,null===(e=t.layout)||void 0===e?void 0:e.constraints))}));const A=this.findTopologicalSort(C);if(A.length>0){const t=A.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===u.scene?this:this.parentSceneAsEntity,t.game.canvasKit}get parentSceneAsEntity(){if(this.type===u.scene)throw new Error(`Entity ${this} is a scene and cannot have a parent scene`);if(this.parent&&this.parent.type===u.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 o=i.shift();if(void 0===o)throw"bad";n.push(o),t.has(o)&&(null===(e=t.get(o))||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 P{constructor(t={}){super(t),this.type=u.sprite,this.isDrawable=!0,this.anchorPoint=new C(.5,.5),this.zPosition=0,this._imageName="",S(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 M extends P{constructor(t={}){super(t),this.type=u.scene,this.isDrawable=!0,this.anchorPoint=new C(0,0),this.zPosition=0,this._backgroundColor=w.DEFAULT_SCENE_BACKGROUND_COLOR,this._active=!1,this._transitioning=!1,S(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 F(t,e)}}class F extends k{constructor(t,e){super(),this.type=h.push,this.direction=t,this.duration=e}}(h||(h={})).push="Push",function(t){t.up="Up",t.down="Down",t.right="Right",t.left="Left"}(f||(f={})),new Array;class x extends P{constructor(t={}){super(t),this.type=u.composite,this.compositeType="<compositeType>",this.isDrawable=!0,this.anchorPoint=new C(.5,.5),this.zPosition=0,S(this,t)}initialize(){}update(){super.update()}draw(t){super.drawChildren(t)}}!function(t){t[t.MATCH_CONSTRAINT=0]="MATCH_CONSTRAINT"}(d||(d={})),function(t){t[t.center=0]="center",t[t.left=1]="left",t[t.right=2]="right"}(p||(p={}));class E extends P{constructor(t={}){super(t),this.type=u.label,this.isDrawable=!0,this.isText=!0,this.anchorPoint=new C(.5,.5),this.zPosition=0,this._text="",this._fontColor=w.DEFAULT_FONT_COLOR,this._fontSize=w.DEFAULT_FONT_SIZE,this._horizontalAlignmentMode=p.center,S(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 p.center:r=this.canvasKit.TextAlign.Center;break;case p.left:r=this.canvasKit.TextAlign.Left;break;case p.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 o=i.fontManager;if(void 0===o.fontMgr)throw new Error("no fonts loaded");const a=this.canvasKit.ParagraphBuilder.Make(this.paraStyle,o.fontMgr);this.text||(this.text=""),a.addText(this.text),""===this.text&&console.warn(`warning: empty text in label "${this.name}"`),this.paragraph=a.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 B{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"}(g||(g={}));class O extends P{constructor(t={}){super(t),this.type=u.shape,this.isDrawable=!0,this.isShape=!0,this.anchorPoint=new C(.5,.5),this.zPosition=0,this.shapeType=g.undefined,this.cornerRadius=0,this._fillColor=w.DEFAULT_SHAPE_FILL_COLOR,S(this,t),void 0!==t.circleOfRadius&&(this.circleOfRadius=t.circleOfRadius,this.shapeType=g.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 C(t.rect.x,t.rect.y)),this.shapeType=g.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===g.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===g.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 R extends x{constructor(t){if(super(t),this.compositeType="grid",this.rows=0,this.columns=0,this.gridBackgroundColor=[0,0,233,.25],this.gridLineColor=b.Red,this.gridLineWidth=1,this.gridChildren=new Array,!t.size)throw new Error("grid size must be specified");if(this.size=t.size,!t.rows)throw new Error("rows must be specified");if(!(t.rows>=1))throw new Error("rows must be at least 1");if(this.rows=t.rows,!t.columns)throw new Error("columns must be specified");if(!(t.columns>=1))throw new Error("columns must be at least 1");this.columns=t.columns,t.backgroundColor&&(this.gridBackgroundColor=t.backgroundColor),t.gridLineColor&&(this.gridLineColor=t.gridLineColor),t.gridLineWidth&&(this.gridLineWidth=t.gridLineWidth),this.cellWidth=this.size.width/this.columns,this.cellHeight=this.size.height/this.rows}initialize(){super.removeAllChildren(),this.gridBackground=new O({name:"_"+this.name+"-gridBackground",rect:new B({size:this.size}),fillColor:this.gridBackgroundColor,strokeColor:this.gridLineColor,lineWidth:this.gridLineWidth,isUserInteractionEnabled:this.isUserInteractionEnabled}),this.addChild(this.gridBackground),this.gridBackground.isUserInteractionEnabled=this.isUserInteractionEnabled;for(let t=1;t<this.columns;t++){const e=new O({name:"_"+this.name+"-gridVerticalLine-"+t,rect:new B({size:new T(this.gridLineWidth,this.size.height),origin:new C(-this.size.width/2+this.cellWidth*t,0)}),fillColor:this.gridLineColor});this.gridBackground.addChild(e)}for(let t=1;t<this.rows;t++){const e=new O({name:"_"+this.name+"-gridHorizontalLine-"+t,rect:new B({size:new T(this.size.width,this.gridLineWidth),origin:new C(0,-this.size.height/2+this.cellHeight*t)}),fillColor:this.gridLineColor});this.gridBackground.addChild(e)}this.gridChildren&&this.gridChildren.forEach((t=>{if(!this.cellWidth||!this.cellHeight||!this.gridBackground)throw new Error("cellWidth, cellHeight, or gridBackground undefined or null");const e=-this.size.width/2+this.cellWidth/2+t.column*this.cellWidth,n=-this.size.height/2+this.cellHeight/2+t.row*this.cellHeight;t.entity.position=new C(e,n),this.gridBackground.addChild(t.entity)})),this.needsInitialization=!1}update(){super.update()}draw(t){super.drawChildren(t)}removeAllChildren(){if(0!==this.gridChildren.length){for(;this.gridChildren.length;)this.gridChildren.pop();this.needsInitialization=!0}}addAtCell(t,e,n){(e<0||e>=this.rows||n<0||n>=this.columns)&&console.warn(`warning: addAtCell() requested to add entity at row ${e}, column ${n}. This is outside the bounds of grid ${this.name}, which is size ${this.rows}x${this.columns}. Note that addAtCell() uses zero-based indexing. AddAtCell() will proceed, but may draw entities outside the grid`),this.gridChildren.push({entity:t,row:e,column:n}),this.needsInitialization=!0}removeAllAtCell(t,e){this.gridChildren=this.gridChildren.filter((n=>n.row!=t&&n.column!=e)),this.needsInitialization=!0}removeChild(t){if(!this.gridBackground)throw new Error("gridBackground is null or undefined");this.gridBackground.removeChild(t),this.gridChildren=this.gridChildren.filter((e=>e.entity!=t)),this.needsInitialization=!0}}class L extends x{constructor(t){super(t),this.compositeType="button",this._backgroundColor=b.RoyalBlue,this.size=new T(200,50),this.cornerRadius=9,this.fontSize=20,this.text="",this._fontColor=b.White,t.text&&(this.text=t.text),t.size&&(this.size=t.size),t.cornerRadius&&(this.cornerRadius=t.cornerRadius),t.fontSize&&(this.fontSize=t.fontSize),t.fontColor&&(this.fontColor=t.fontColor),t.backgroundColor&&(this.backgroundColor=t.backgroundColor)}initialize(){this.removeAllChildren(),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);const t=new O({rect:new B({size:this.size}),cornerRadius:this.cornerRadius,fillColor:this._backgroundColor});this.addChild(t);const e=new E({text:this.text,fontSize:this.fontSize,fontColor:this.fontColor});t.addChild(e),this.needsInitialization=!1}get backgroundColor(){return this._backgroundColor}set backgroundColor(t){this._backgroundColor=t,this.needsInitialization=!0}get fontColor(){return this._fontColor}set fontColor(t){this._fontColor=t,this.needsInitialization=!0}update(){super.update()}draw(t){super.drawChildren(t)}}class I extends class{static Create(t){return new Array}}{static Create(t){const e=new Array;return t.instructionScenes.forEach(((n,r)=>{var i,o,a,s,l,u,c,h,g,y,m,v,w,C,A,S,P,F,x,B,O,R,I,D,W,z,j,G,N,U,H,V,Y,q;const X=null!==(o=null!==(i=n.nextSceneTransition)&&void 0!==i?i:t.nextSceneTransition)&&void 0!==o?o:k.push(f.left,500),$=null!==(s=null!==(a=n.backSceneTransition)&&void 0!==a?a:t.backSceneTransition)&&void 0!==s?s:k.push(f.right,500),Q=null!==(u=null!==(l=n.backButtonText)&&void 0!==l?l:t.backButtonText)&&void 0!==u?u:"Back",K=null!==(h=null!==(c=n.nextButtonText)&&void 0!==c?c:t.nextButtonText)&&void 0!==h?h:"Next",J=null!==(y=null!==(g=n.backButtonWidth)&&void 0!==g?g:t.backButtonWidth)&&void 0!==y?y:125,Z=null!==(v=null!==(m=n.nextButtonWidth)&&void 0!==m?m:t.nextButtonWidth)&&void 0!==v?v:125,tt=null!==(C=null!==(w=n.backButtonHeight)&&void 0!==w?w:t.backButtonHeight)&&void 0!==C?C:50,et=null!==(S=null!==(A=n.nextButtonHeight)&&void 0!==A?A:t.nextButtonHeight)&&void 0!==S?S:50,nt=null!==(P=n.backgroundColor)&&void 0!==P?P:t.backgroundColor,rt=null===(F=n.imageAboveText)||void 0===F||F,it=null!==(x=n.imageMarginTop)&&void 0!==x?x:0,ot=null!==(B=n.imageMarginBottom)&&void 0!==B?B:0,at=null!==(O=n.textMarginStart)&&void 0!==O?O:48,st=null!==(R=n.textMarginEnd)&&void 0!==R?R:48,lt=null!==(I=n.textAlignmentMode)&&void 0!==I?I:p.left,ut=null!==(D=n.textFontSize)&&void 0!==D?D:16,ct=null!==(W=n.titleFontSize)&&void 0!==W?W:16,ht=null!==(z=n.titleMarginTop)&&void 0!==z?z:48,ft=null!==(G=null!==(j=n.backButtonBackgroundColor)&&void 0!==j?j:t.backButtonBackgroundColor)&&void 0!==G?G:b.RoyalBlue,dt=null!==(U=null!==(N=n.backButtonFontColor)&&void 0!==N?N:t.backButtonFontColor)&&void 0!==U?U:b.White,pt=null!==(V=null!==(H=n.nextButtonBackgroundColor)&&void 0!==H?H:t.nextButtonBackgroundColor)&&void 0!==V?V:b.RoyalBlue,gt=null!==(q=null!==(Y=n.nextButtonFontColor)&&void 0!==Y?Y:t.nextButtonFontColor)&&void 0!==q?q:b.White,yt=new M({name:t.sceneNamePrefix+"-"+(r+1).toString().padStart(2,"0"),backgroundColor:nt});let mt,vt;if(void 0!==n.title&&(mt=new E({text:n.title,fontSize:ct,layout:{marginTop:ht,constraints:{topToTopOf:yt,startToStartOf:yt,endToEndOf:yt}}}),yt.addChild(mt)),void 0!==n.text&&(vt=new E({text:n.text,preferredMaxLayoutWidth:d.MATCH_CONSTRAINT,horizontalAlignmentMode:lt,fontSize:ut,layout:{marginStart:at,marginEnd:st,constraints:{topToTopOf:yt,bottomToBottomOf:yt,startToStartOf:yt,endToEndOf:yt,verticalBias:n.textVerticalBias}}}),yt.addChild(vt)),void 0!==n.image){let t;t=new _(void 0!==vt?rt?{imageName:n.image,layout:{marginBottom:ot,constraints:{bottomToTopOf:vt,startToStartOf:yt,endToEndOf:yt}}}:{imageName:n.image,layout:{marginTop:it,constraints:{topToBottomOf:vt,startToStartOf:yt,endToEndOf:yt}}}:{imageName:n.image,layout:{constraints:{topToTopOf:yt,bottomToBottomOf:yt,verticalBias:n.imageVerticalBias,startToStartOf:yt,endToEndOf:yt}}}),yt.addChild(t)}if(r>0){const e=new L({text:Q,fontColor:dt,backgroundColor:ft,size:new T(J,tt),layout:{marginStart:32,marginBottom:32,constraints:{bottomToBottomOf:yt,startToStartOf:yt}}});e.isUserInteractionEnabled=!0,e.onTapDown((()=>{yt.game.presentScene(t.sceneNamePrefix+"-"+(r+1-1).toString().padStart(2,"0"),$)})),yt.addChild(e)}const bt=new L({text:K,fontColor:gt,backgroundColor:pt,size:new T(Z,et),layout:{marginEnd:32,marginBottom:32,constraints:{bottomToBottomOf:yt,endToEndOf:yt}}});bt.isUserInteractionEnabled=!0,r!==t.instructionScenes.length-1?bt.onTapDown((()=>{yt.game.presentScene(t.sceneNamePrefix+"-"+(r+1+1).toString().padStart(2,"0"),X)})):void 0!==t.postInstructionsScene?bt.onTapDown((()=>{var e;yt.game.presentScene(null!==(e=t.postInstructionsScene)&&void 0!==e?e:"",X)})):console.warn("warning: instructions postInstructionsScene is not defined"),yt.addChild(bt),e.push(yt)})),e}}export{L as Button,R as Grid,I as Instructions};
2
+ //# sourceMappingURL=index.js.map