textmode.js 0.2.1-beta.3 → 0.2.1-beta.4

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.
@@ -1,15 +1,15 @@
1
1
  var q = Object.defineProperty;
2
2
  var AA = (E, A, t) => A in E ? q(E, A, { enumerable: !0, configurable: !0, writable: !0, value: t }) : E[A] = t;
3
- var Q = (E, A, t) => AA(E, typeof A != "symbol" ? A + "" : A, t);
4
- class I extends Error {
3
+ var n = (E, A, t) => AA(E, typeof A != "symbol" ? A + "" : A, t);
4
+ class f extends Error {
5
5
  constructor(A, t = {}) {
6
- super(I.A(A, t)), this.name = "TextmodeError";
6
+ super(f.A(A, t)), this.name = "TextmodeError";
7
7
  }
8
8
  static A(A, t) {
9
9
  return `${A}${t && Object.keys(t).length > 0 ? `
10
10
 
11
11
  📋 Context:` + Object.entries(t).map(([e, s]) => `
12
- - ${e}: ${I.C(s)}`).join("") : ""}
12
+ - ${e}: ${f.C(s)}`).join("") : ""}
13
13
 
14
14
  ${"↓".repeat(24)}
15
15
  `;
@@ -19,21 +19,21 @@ ${"↓".repeat(24)}
19
19
  if (A === void 0) return "undefined";
20
20
  if (typeof A == "string") return `"${A}"`;
21
21
  if (typeof A == "number" || typeof A == "boolean") return A + "";
22
- if (Array.isArray(A)) return A.length === 0 ? "[]" : A.length <= 5 ? `[${A.map((t) => I.C(t)).join(", ")}]` : `[${A.slice(0, 3).map((t) => I.C(t)).join(", ")}, ... +${A.length - 3} more]`;
22
+ if (Array.isArray(A)) return A.length === 0 ? "[]" : A.length <= 5 ? `[${A.map((t) => f.C(t)).join(", ")}]` : `[${A.slice(0, 3).map((t) => f.C(t)).join(", ")}, ... +${A.length - 3} more]`;
23
23
  if (typeof A == "object") {
24
24
  const t = Object.keys(A);
25
- return t.length === 0 ? "{}" : t.length <= 3 ? `{ ${t.map((e) => `${e}: ${I.C(A[e])}`).join(", ")} }` : `{ ${t.slice(0, 2).map((e) => `${e}: ${I.C(A[e])}`).join(", ")}, ... +${t.length - 2} more }`;
25
+ return t.length === 0 ? "{}" : t.length <= 3 ? `{ ${t.map((e) => `${e}: ${f.C(A[e])}`).join(", ")} }` : `{ ${t.slice(0, 2).map((e) => `${e}: ${f.C(A[e])}`).join(", ")}, ... +${t.length - 2} more }`;
26
26
  }
27
27
  return A + "";
28
28
  }
29
29
  }
30
30
  var tA = ((E) => (E[E.SILENT = 0] = "SILENT", E[E.WARNING = 1] = "WARNING", E[E.ERROR = 2] = "ERROR", E[E.THROW = 3] = "THROW", E))(tA || {});
31
- const y = class y {
31
+ const v = class v {
32
32
  constructor() {
33
- Q(this, "P", { globalLevel: 3 });
33
+ n(this, "P", { globalLevel: 3 });
34
34
  }
35
35
  static u() {
36
- return y.D || (y.D = new y()), y.D;
36
+ return v.D || (v.D = new v()), v.D;
37
37
  }
38
38
  I(A, t) {
39
39
  const e = "%c[textmode.js] Oops! (╯°□°)╯︵ Something went wrong in your code.", s = "color: #f44336; font-weight: bold; background: #ffebee; padding: 2px 6px; border-radius: 3px;";
@@ -41,11 +41,11 @@ const y = class y {
41
41
  case 0:
42
42
  return !1;
43
43
  case 1:
44
- return console.group(e, s), console.warn(I.A(A, t)), console.groupEnd(), !1;
44
+ return console.group(e, s), console.warn(f.A(A, t)), console.groupEnd(), !1;
45
45
  case 2:
46
- return console.group(e, s), console.error(I.A(A, t)), console.groupEnd(), !1;
46
+ return console.group(e, s), console.error(f.A(A, t)), console.groupEnd(), !1;
47
47
  default:
48
- throw new I(A, t);
48
+ throw new f(A, t);
49
49
  }
50
50
  }
51
51
  _(A, t, e) {
@@ -55,30 +55,30 @@ const y = class y {
55
55
  this.P.globalLevel = A;
56
56
  }
57
57
  };
58
- Q(y, "D", null);
59
- let L = y;
60
- const M = L.u(), V = /* @__PURE__ */ new WeakMap();
58
+ n(v, "D", null);
59
+ let Y = v;
60
+ const M = Y.u(), X = /* @__PURE__ */ new WeakMap();
61
61
  function F(E, A) {
62
- V.set(E, A);
62
+ X.set(E, A);
63
63
  }
64
64
  function G(E) {
65
- return V.get(E);
65
+ return X.get(E);
66
66
  }
67
- class X {
67
+ class J {
68
68
  constructor() {
69
- Q(this, "$", 1);
70
- Q(this, "G", 0);
71
- Q(this, "M", 0);
72
- Q(this, "Y", 0);
73
- Q(this, "F", [0, 0, 0]);
74
- Q(this, "R", [1, 1, 1, 1]);
75
- Q(this, "S", [0, 0, 0, 1]);
76
- Q(this, "L", !1);
77
- Q(this, "O", !1);
78
- Q(this, "U", !1);
79
- Q(this, "W", [0, 0]);
80
- Q(this, "H", [0, 0, 0, 1]);
81
- Q(this, "K", []);
69
+ n(this, "$", 1);
70
+ n(this, "G", 0);
71
+ n(this, "M", 0);
72
+ n(this, "Y", 0);
73
+ n(this, "F", [0, 0, 0]);
74
+ n(this, "R", [1, 1, 1, 1]);
75
+ n(this, "S", [0, 0, 0, 1]);
76
+ n(this, "L", !1);
77
+ n(this, "O", !1);
78
+ n(this, "U", !1);
79
+ n(this, "W", [0, 0]);
80
+ n(this, "H", [0, 0, 0, 1]);
81
+ n(this, "K", []);
82
82
  }
83
83
  J() {
84
84
  this.K.push({ V: this.$, Z: this.G, N: this.M, X: this.Y, W: [...this.W], L: this.L, O: this.O, U: this.U, AA: [...this.F], tA: [...this.R], eA: [...this.S] });
@@ -111,10 +111,10 @@ class X {
111
111
  nA(A) {
112
112
  this.Y = A;
113
113
  }
114
- gA(A) {
114
+ oA(A) {
115
115
  this.F = A;
116
116
  }
117
- oA(A, t, e, s = 255) {
117
+ gA(A, t, e, s = 255) {
118
118
  this.R = [A / 255, t / 255, e / 255, s / 255];
119
119
  }
120
120
  aA(A, t, e, s = 255) {
@@ -126,10 +126,10 @@ class X {
126
126
  cA(A) {
127
127
  this.O = A;
128
128
  }
129
- CA(A) {
129
+ lA(A) {
130
130
  this.U = A;
131
131
  }
132
- lA(A) {
132
+ CA(A) {
133
133
  const t = 255 * A / 360, e = Math.floor(t) / 255, s = Math.round(t - Math.floor(t));
134
134
  this.W = [e, s];
135
135
  }
@@ -139,26 +139,26 @@ class X {
139
139
  }
140
140
  class U {
141
141
  constructor(A, t, e = t, s = 1, i = {}, B = null, r = !1) {
142
- Q(this, "PA");
143
- Q(this, "uA");
144
- Q(this, "P");
145
- Q(this, "IA", null);
146
- Q(this, "wA");
147
- Q(this, "fA");
148
- Q(this, "dA", []);
149
- Q(this, "_A");
150
- Q(this, "pA", null);
151
- Q(this, "mA", []);
152
- Q(this, "vA", null);
153
- Q(this, "yA", !1);
154
- Q(this, "bA", null);
155
- this.PA = t, this.uA = e, this.P = { filter: "nearest", wrap: "clamp", format: "rgba", type: "unsigned_byte", ...i }, this.wA = A, this._A = Math.min(Math.max(1, s), 8), this.vA = B, this.yA = !!r, this.bA = this.yA ? new X() : null;
156
- const n = A.getParameter(A.MAX_DRAW_BUFFERS), o = A.getParameter(A.MAX_COLOR_ATTACHMENTS);
157
- this._A = Math.min(this._A, n, o), this.fA = A.createFramebuffer(), this.$A(), this.GA(), this.mA = Array(this._A).fill(null);
142
+ n(this, "PA");
143
+ n(this, "uA");
144
+ n(this, "P");
145
+ n(this, "IA", null);
146
+ n(this, "wA");
147
+ n(this, "fA");
148
+ n(this, "dA", []);
149
+ n(this, "pA");
150
+ n(this, "_A", null);
151
+ n(this, "mA", []);
152
+ n(this, "vA", null);
153
+ n(this, "yA", !1);
154
+ n(this, "bA", null);
155
+ this.PA = t, this.uA = e, this.P = { filter: "nearest", wrap: "clamp", format: "rgba", type: "unsigned_byte", ...i }, this.wA = A, this.pA = Math.min(Math.max(1, s), 8), this.vA = B, this.yA = !!r, this.bA = this.yA ? new J() : null;
156
+ const Q = A.getParameter(A.MAX_DRAW_BUFFERS), o = A.getParameter(A.MAX_COLOR_ATTACHMENTS);
157
+ this.pA = Math.min(this.pA, Q, o), this.fA = A.createFramebuffer(), this.$A(), this.GA(), this.mA = Array(this.pA).fill(null);
158
158
  }
159
159
  $A() {
160
160
  const A = this.wA, t = this.P.filter === "linear" ? A.LINEAR : A.NEAREST, e = this.P.wrap === "repeat" ? A.REPEAT : A.CLAMP_TO_EDGE, s = this.P.type === "float" ? A.FLOAT : A.UNSIGNED_BYTE;
161
- for (let i = 0; i < this._A; i++) {
161
+ for (let i = 0; i < this.pA; i++) {
162
162
  const B = A.createTexture();
163
163
  A.bindTexture(A.TEXTURE_2D, B), A.texParameteri(A.TEXTURE_2D, A.TEXTURE_MIN_FILTER, t), A.texParameteri(A.TEXTURE_2D, A.TEXTURE_MAG_FILTER, t), A.texParameteri(A.TEXTURE_2D, A.TEXTURE_WRAP_S, e), A.texParameteri(A.TEXTURE_2D, A.TEXTURE_WRAP_T, e), A.texImage2D(A.TEXTURE_2D, 0, A.RGBA, this.PA, this.uA, 0, A.RGBA, s, null), this.dA.push(B);
164
164
  }
@@ -166,10 +166,10 @@ class U {
166
166
  }
167
167
  GA() {
168
168
  const A = this.wA;
169
- if (A.bindFramebuffer(A.FRAMEBUFFER, this.fA), this._A === 1) A.framebufferTexture2D(A.FRAMEBUFFER, A.COLOR_ATTACHMENT0, A.TEXTURE_2D, this.dA[0], 0);
169
+ if (A.bindFramebuffer(A.FRAMEBUFFER, this.fA), this.pA === 1) A.framebufferTexture2D(A.FRAMEBUFFER, A.COLOR_ATTACHMENT0, A.TEXTURE_2D, this.dA[0], 0);
170
170
  else {
171
171
  const e = [];
172
- for (let s = 0; s < this._A; s++) {
172
+ for (let s = 0; s < this.pA; s++) {
173
173
  const i = A.COLOR_ATTACHMENT0 + s;
174
174
  A.framebufferTexture2D(A.FRAMEBUFFER, i, A.TEXTURE_2D, this.dA[s], 0), e.push(i);
175
175
  }
@@ -178,25 +178,25 @@ class U {
178
178
  const t = A.checkFramebufferStatus(A.FRAMEBUFFER);
179
179
  t !== A.FRAMEBUFFER_COMPLETE && console.error("GLFramebuffer is not complete:", t), A.bindFramebuffer(A.FRAMEBUFFER, null);
180
180
  }
181
- MA(A) {
181
+ xA(A) {
182
182
  const t = this.wA;
183
183
  t.bindTexture(t.TEXTURE_2D, this.dA[0]), t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL, 1), t.texImage2D(t.TEXTURE_2D, 0, t.RGBA, t.RGBA, t.UNSIGNED_BYTE, A), t.bindTexture(t.TEXTURE_2D, null);
184
184
  }
185
185
  resize(A, t) {
186
- this.PA = A, this.uA = t, this.IA = null, this.mA = Array(this._A).fill(null);
186
+ this.PA = A, this.uA = t, this.IA = null, this.mA = Array(this.pA).fill(null);
187
187
  const e = this.wA, s = this.P.type === "float" ? e.FLOAT : e.UNSIGNED_BYTE;
188
188
  for (const i of this.dA) e.bindTexture(e.TEXTURE_2D, i), e.texImage2D(e.TEXTURE_2D, 0, e.RGBA, this.PA, this.uA, 0, e.RGBA, s, null);
189
189
  e.bindTexture(e.TEXTURE_2D, null);
190
190
  }
191
- xA(A) {
191
+ MA(A) {
192
192
  const t = this.wA, e = this.mA[A];
193
193
  if (e) return e;
194
194
  const s = this.PA, i = this.uA, B = new Uint8Array(s * i * 4), r = t.getParameter(t.READ_FRAMEBUFFER_BINDING);
195
195
  t.bindFramebuffer(t.READ_FRAMEBUFFER, this.fA), t.readBuffer(t.COLOR_ATTACHMENT0 + A), t.readPixels(0, 0, s, i, t.RGBA, t.UNSIGNED_BYTE, B), t.bindFramebuffer(t.READ_FRAMEBUFFER, r);
196
- const n = 4 * s, o = new Uint8Array(B.length);
197
- for (let a = 0; a < i; a++) {
198
- const g = (i - 1 - a) * n, h = a * n;
199
- o.set(B.subarray(g, g + n), h);
196
+ const Q = 4 * s, o = new Uint8Array(B.length);
197
+ for (let g = 0; g < i; g++) {
198
+ const a = (i - 1 - g) * Q, h = g * Q;
199
+ o.set(B.subarray(a, a + Q), h);
200
200
  }
201
201
  return this.mA[A] = o, o;
202
202
  }
@@ -207,19 +207,19 @@ class U {
207
207
  const B = ((e = (t = this.vA).YA) == null ? void 0 : e.call(t)) ?? null;
208
208
  B && this.vA.FA(B), this.yA && this.bA && ((i = (s = this.vA).RA) == null || i.call(s, this.bA));
209
209
  }
210
- this.pA = { framebuffer: A.getParameter(A.FRAMEBUFFER_BINDING), viewport: A.getParameter(A.VIEWPORT) }, A.bindFramebuffer(A.FRAMEBUFFER, this.fA), this.mA = Array(this._A).fill(null);
211
- for (let B = 0; B < this._A; B++) A.clearBufferfv(A.COLOR, B, new Float32Array([0, 0, 0, 0]));
210
+ this._A = { framebuffer: A.getParameter(A.FRAMEBUFFER_BINDING), viewport: A.getParameter(A.VIEWPORT) }, A.bindFramebuffer(A.FRAMEBUFFER, this.fA), this.mA = Array(this.pA).fill(null);
211
+ for (let B = 0; B < this.pA; B++) A.clearBufferfv(A.COLOR, B, new Float32Array([0, 0, 0, 0]));
212
212
  A.viewport(0, 0, this.PA, this.uA), F(A, [0, 0, this.PA, this.uA]);
213
213
  }
214
214
  end() {
215
215
  var t, e, s, i;
216
- if (!this.pA) return;
216
+ if (!this._A) return;
217
217
  const A = this.wA;
218
218
  if (this.vA) {
219
219
  const B = ((e = (t = this.vA).YA) == null ? void 0 : e.call(t)) ?? null;
220
220
  B && this.vA.FA(B);
221
221
  }
222
- A.bindFramebuffer(A.FRAMEBUFFER, this.pA.framebuffer), A.viewport(...this.pA.viewport), F(A, this.pA.viewport), this.pA = null, this.vA && this.yA && this.bA && ((i = (s = this.vA).SA) == null || i.call(s));
222
+ A.bindFramebuffer(A.FRAMEBUFFER, this._A.framebuffer), A.viewport(...this._A.viewport), F(A, this._A.viewport), this._A = null, this.vA && this.yA && this.bA && ((i = (s = this.vA).SA) == null || i.call(s));
223
223
  }
224
224
  kA() {
225
225
  const A = this.wA;
@@ -236,36 +236,40 @@ class U {
236
236
  return [...this.dA];
237
237
  }
238
238
  }
239
- function k(E) {
239
+ function N(E) {
240
240
  return typeof E == "string" ? E : E.sourceCode;
241
241
  }
242
242
  class T {
243
243
  constructor(A, t, e) {
244
- Q(this, "wA");
245
- Q(this, "zA");
246
- Q(this, "LA", /* @__PURE__ */ new Map());
247
- Q(this, "OA", 0);
248
- this.wA = A, this.zA = this.TA(k(t), k(e)), this.UA();
249
- }
250
- UA() {
244
+ n(this, "wA");
245
+ n(this, "zA");
246
+ n(this, "LA", /* @__PURE__ */ new Map());
247
+ n(this, "OA", /* @__PURE__ */ new Map());
248
+ n(this, "TA", 0);
249
+ this.wA = A, this.zA = this.UA(N(t), N(e)), this.WA();
250
+ }
251
+ WA() {
251
252
  const A = this.wA.getProgramParameter(this.zA, this.wA.ACTIVE_UNIFORMS);
252
253
  for (let t = 0; t < A; t++) {
253
254
  const e = this.wA.getActiveUniform(this.zA, t);
254
255
  if (e) {
255
256
  const s = this.wA.getUniformLocation(this.zA, e.name);
256
- s && this.LA.set(e.name, s);
257
+ if (s && (this.LA.set(e.name, s), this.OA.set(e.name, { type: e.type, size: e.size }), e.size > 1)) {
258
+ const i = e.name.replace(/\[.*\]$/, "");
259
+ this.LA.has(i) || (this.LA.set(i, s), this.OA.set(i, { type: e.type, size: e.size }));
260
+ }
257
261
  }
258
262
  }
259
263
  }
260
- TA(A, t) {
261
- const e = this.WA(this.wA.VERTEX_SHADER, A), s = this.WA(this.wA.FRAGMENT_SHADER, t), i = this.wA.createProgram();
264
+ UA(A, t) {
265
+ const e = this.HA(this.wA.VERTEX_SHADER, A), s = this.HA(this.wA.FRAGMENT_SHADER, t), i = this.wA.createProgram();
262
266
  if (this.wA.attachShader(i, e), this.wA.attachShader(i, s), this.wA.linkProgram(i), !this.wA.getProgramParameter(i, this.wA.LINK_STATUS)) {
263
267
  const B = this.wA.getProgramInfoLog(i);
264
268
  throw Error("Shader program link error: " + B);
265
269
  }
266
270
  return this.wA.deleteShader(e), this.wA.deleteShader(s), i;
267
271
  }
268
- WA(A, t) {
272
+ HA(A, t) {
269
273
  const e = this.wA.createShader(A);
270
274
  if (this.wA.shaderSource(e, t), this.wA.compileShader(e), !this.wA.getShaderParameter(e, this.wA.COMPILE_STATUS)) {
271
275
  const s = this.wA.getShaderInfoLog(e);
@@ -273,209 +277,237 @@ class T {
273
277
  }
274
278
  return e;
275
279
  }
276
- HA() {
277
- this.wA.useProgram(this.zA), this.KA();
278
- }
279
280
  KA() {
280
- this.OA = 0;
281
+ this.wA.useProgram(this.zA), this.JA();
281
282
  }
282
- JA(A) {
283
- for (const [t, e] of Object.entries(A)) this.VA(t, e);
283
+ JA() {
284
+ this.TA = 0;
284
285
  }
285
- ZA(A) {
286
+ VA(A) {
287
+ for (const [t, e] of Object.entries(A)) this.ZA(t, e);
288
+ }
289
+ NA(A) {
286
290
  return this.LA.has(A);
287
291
  }
288
- VA(A, t) {
289
- var s;
292
+ XA(A) {
293
+ return this.OA.get(A) || null;
294
+ }
295
+ jA() {
296
+ const A = [];
297
+ for (const [t, e] of this.OA.entries()) A.push({ name: t, ...e });
298
+ return A;
299
+ }
300
+ ZA(A, t) {
301
+ var Q;
290
302
  const e = this.LA.get(A);
291
- if (e) if (typeof t == "number") this.wA.uniform1f(e, t);
292
- else if (typeof t == "boolean") this.wA.uniform1i(e, t ? 1 : 0);
303
+ if (!e) return;
304
+ const s = this.OA.get(A);
305
+ if (!s) return void console.warn(`No type information found for uniform '${A}'`);
306
+ const { type: i, size: B } = s, r = this.wA;
307
+ if (typeof t == "number") switch (i) {
308
+ case r.INT:
309
+ case r.BOOL:
310
+ r.uniform1i(e, t);
311
+ break;
312
+ case r.FLOAT:
313
+ r.uniform1f(e, t);
314
+ break;
315
+ default:
316
+ console.warn(`Unexpected uniform type for scalar '${A}': ${i}`), r.uniform1f(e, t);
317
+ }
318
+ else if (typeof t == "boolean") r.uniform1i(e, t ? 1 : 0);
293
319
  else if (Array.isArray(t)) if (Array.isArray(t[0])) {
294
- const i = t, B = ((s = i[0]) == null ? void 0 : s.length) || 0, r = i.flat();
295
- switch (B) {
296
- case 2:
297
- this.wA.uniform2fv(e, r);
320
+ const o = t, g = ((Q = o[0]) == null ? void 0 : Q.length) || 0, a = o.flat();
321
+ switch (i) {
322
+ case r.FLOAT_VEC2:
323
+ g === 2 ? r.uniform2fv(e, a) : console.warn(`Vector length mismatch for '${A}': expected 2, got ${g}`);
298
324
  break;
299
- case 3:
300
- this.wA.uniform3fv(e, r);
325
+ case r.FLOAT_VEC3:
326
+ g === 3 ? r.uniform3fv(e, a) : console.warn(`Vector length mismatch for '${A}': expected 3, got ${g}`);
301
327
  break;
302
- case 4:
303
- this.wA.uniform4fv(e, r);
328
+ case r.FLOAT_VEC4:
329
+ g === 4 ? r.uniform4fv(e, a) : console.warn(`Vector length mismatch for '${A}': expected 4, got ${g}`);
304
330
  break;
305
331
  default:
306
- return void console.warn(`Unsupported vector array length for '${A}': ${B}`);
332
+ console.warn(`Unsupported uniform type for vector array '${A}': ${i}`);
307
333
  }
308
- } else switch (t.length) {
309
- case 2:
310
- this.wA.uniform2f(e, t[0], t[1]);
334
+ } else switch (i) {
335
+ case r.FLOAT_VEC2:
336
+ t.length === 2 ? r.uniform2f(e, t[0], t[1]) : console.warn(`Vector length mismatch for '${A}': expected 2, got ${t.length}`);
311
337
  break;
312
- case 3:
313
- this.wA.uniform3f(e, t[0], t[1], t[2]);
338
+ case r.FLOAT_VEC3:
339
+ t.length === 3 ? r.uniform3f(e, t[0], t[1], t[2]) : console.warn(`Vector length mismatch for '${A}': expected 3, got ${t.length}`);
314
340
  break;
315
- case 4:
316
- this.wA.uniform4f(e, t[0], t[1], t[2], t[3]);
341
+ case r.FLOAT_VEC4:
342
+ t.length === 4 ? r.uniform4f(e, t[0], t[1], t[2], t[3]) : console.warn(`Vector length mismatch for '${A}': expected 4, got ${t.length}`);
343
+ break;
344
+ case r.INT:
345
+ B > 1 ? r.uniform1iv(e, t) : console.warn(`Array provided for scalar uniform '${A}'`);
346
+ break;
347
+ case r.FLOAT:
348
+ B > 1 ? r.uniform1fv(e, t) : console.warn(`Array provided for scalar uniform '${A}'`);
317
349
  break;
318
350
  default:
319
- return;
351
+ console.warn(`Unsupported uniform type for array '${A}': ${i}`);
320
352
  }
321
353
  else if (t instanceof WebGLTexture) {
322
- const i = this.NA();
323
- this.wA.uniform1i(e, i), this.wA.activeTexture(this.wA.TEXTURE0 + i), this.wA.bindTexture(this.wA.TEXTURE_2D, t);
354
+ const o = this.qA();
355
+ r.uniform1i(e, o), r.activeTexture(r.TEXTURE0 + o), r.bindTexture(r.TEXTURE_2D, t);
324
356
  } else if (t instanceof U) {
325
- const i = this.NA();
326
- this.wA.uniform1i(e, i), this.wA.activeTexture(this.wA.TEXTURE0 + i), this.wA.bindTexture(this.wA.TEXTURE_2D, t.textures[0]);
357
+ const o = this.qA();
358
+ r.uniform1i(e, o), r.activeTexture(r.TEXTURE0 + o), r.bindTexture(r.TEXTURE_2D, t.textures[0]);
327
359
  } else console.warn(`Unsupported uniform type for '${A}':`, typeof t);
328
360
  }
329
- NA() {
330
- return this.OA++;
361
+ qA() {
362
+ return this.TA++;
331
363
  }
332
- get XA() {
364
+ get At() {
333
365
  return this.zA;
334
366
  }
335
367
  kA() {
336
368
  this.wA.deleteProgram(this.zA);
337
369
  }
338
370
  }
339
- const S = `#version 300 es
371
+ const L = `#version 300 es
340
372
  in vec2 a_position;in vec2 a_texCoord;in vec2 a_instancePosition;in vec2 a_instanceSize;in vec3 a_instanceCharacter;in vec4 a_instancePrimaryColor;in vec4 a_instanceSecondaryColor;in vec2 a_instanceRotation;in vec3 a_instanceTransform;in vec3 a_instanceGlobalRotation;in vec2 a_instanceRotationCenter;in vec2 a_instanceBezierCP1;in vec2 a_instanceBezierCP2;in vec2 a_instanceBezierStart;in vec2 a_instanceBezierEnd;in vec2 a_instanceArcAngles;uniform float k;uniform vec2 t;out vec2 v_uv;out vec3 v_character;out vec4 v_primaryColor;out vec4 v_secondaryColor;out vec2 v_rotation;out vec3 v_transform;mat3 A(float B){float C=sin(B),D=cos(B);return mat3(1,0,0,0,D,-C,0,C,D);}mat3 E(float B){float C=sin(B),D=cos(B);return mat3(D,0,C,0,1,0,-C,0,D);}mat3 F(float B){float C=sin(B),D=cos(B);return mat3(D,-C,0,C,D,0,0,0,1);}vec2 G(float t,vec2 H,vec2 I,vec2 J,vec2 K){float L=1.-t,M=L*L,N=t*t;return M*L*H+3.*M*t*I+3.*L*N*J+N*t*K;}vec2 O(float t,vec2 H,vec2 I,vec2 J,vec2 K){float L=1.-t,M=L*L,N=t*t;return-3.*M*H+3.*M*I-6.*L*t*I+6.*L*t*J-3.*N*J+3.*N*K;}void main(){v_uv=a_texCoord;v_character=a_instanceCharacter;v_primaryColor=a_instancePrimaryColor;v_secondaryColor=a_instanceSecondaryColor;v_rotation=a_instanceRotation;v_transform=a_instanceTransform;vec2 P;bool Q=length(a_instanceBezierCP1)+length(a_instanceBezierCP2)+length(a_instanceBezierStart)+length(a_instanceBezierEnd)>0.;bool R=a_instanceArcAngles.x!=0.||a_instanceArcAngles.y!=0.;if(Q){float t=a_position.x;vec2 S=G(t,a_instanceBezierStart,a_instanceBezierCP1,a_instanceBezierCP2,a_instanceBezierEnd);vec2 T=O(t,a_instanceBezierStart,a_instanceBezierCP1,a_instanceBezierCP2,a_instanceBezierEnd);float U=length(T);T=U>0.?T/U:vec2(1,0);P=S+vec2(-T.y,T.x)*a_position.y*a_instanceSize.y;}else if(R){float C=a_instanceArcAngles.x,V=a_instanceArcAngles.y;C=mod(C,6.28318530718);if(C<0.)C+=6.28318530718;V=mod(V,6.28318530718);if(V<0.)V+=6.28318530718;float W=C-V;if(W<=0.)W+=6.28318530718;float X=C-a_position.x*W;vec2 Y=vec2(cos(X),sin(X))*a_position.y;P=Y*a_instanceSize*.5+a_instanceSize*.5+a_instancePosition;}else{P=a_position*a_instanceSize+a_instancePosition;}vec2 Z=(P/t)*2.-1.;Z.y=-Z.y;if(length(a_instanceGlobalRotation)>0.){vec3 a=vec3(Z-a_instanceRotationCenter,0);a.x*=k;if(a_instanceGlobalRotation.x!=0.)a=A(-a_instanceGlobalRotation.x)*a;if(a_instanceGlobalRotation.y!=0.)a=E(-a_instanceGlobalRotation.y)*a;if(a_instanceGlobalRotation.z!=0.)a=F(-a_instanceGlobalRotation.z)*a;a.x/=k;Z=a.xy+a_instanceRotationCenter;}gl_Position=vec4(Z,0,1);}`;
341
373
  class eA {
342
374
  constructor(A) {
343
- Q(this, "jA", /* @__PURE__ */ new Map());
344
- Q(this, "wA");
375
+ n(this, "tt", /* @__PURE__ */ new Map());
376
+ n(this, "wA");
345
377
  this.wA = A;
346
378
  }
347
- qA(A, t) {
348
- if (!this.jA.has(A)) {
379
+ et(A, t) {
380
+ if (!this.tt.has(A)) {
349
381
  const e = t();
350
- this.jA.set(A, e);
382
+ this.tt.set(A, e);
351
383
  }
352
- return this.jA.get(A);
384
+ return this.tt.get(A);
353
385
  }
354
- At() {
355
- return this.qA("mrt-copy", () => new T(this.wA, S, `#version 300 es
386
+ st() {
387
+ return this.et("mrt-copy", () => new T(this.wA, L, `#version 300 es
356
388
  precision highp float;in vec2 v_uv;uniform sampler2D l;uniform sampler2D m;uniform sampler2D n;uniform sampler2D o;uniform sampler2D p;uniform vec2 q;layout(location=0)out vec4 o_character;layout(location=1)out vec4 o_primaryColor;layout(location=2)out vec4 o_secondaryColor;layout(location=3)out vec4 o_rotation;layout(location=4)out vec4 o_transform;void main(){vec2 A=vec2(v_uv.x,1.-v_uv.y);vec2 B=A*q;vec2 C=(floor(B)+0.5f)/q;vec4 D=texture(l,C);vec4 E=texture(m,C);if(E.a==0.){discard;}vec4 F=texture(n,C);vec4 G=texture(o,C);vec4 H=texture(p,C);o_character=D;o_primaryColor=E;o_secondaryColor=F;o_rotation=G;o_transform=H;}`));
357
389
  }
358
390
  YA() {
359
- return this.qA("mrt-draw", () => new T(this.wA, S, `#version 300 es
391
+ return this.et("mrt-draw", () => new T(this.wA, L, `#version 300 es
360
392
  precision highp float;in vec2 v_uv;in vec3 v_character;in vec4 v_primaryColor;in vec4 v_secondaryColor;in vec2 v_rotation;in vec3 v_transform;layout(location=0)out vec4 o_character;layout(location=1)out vec4 o_primaryColor;layout(location=2)out vec4 o_secondaryColor;layout(location=3)out vec4 o_rotation;layout(location=4)out vec4 o_transform;void main(){o_character=vec4(v_character,1.);o_primaryColor=v_primaryColor;o_secondaryColor=v_secondaryColor;o_rotation=vec4(v_rotation,0.,1.);o_transform=vec4(v_transform,1.);}`));
361
393
  }
362
- tt() {
363
- return this.qA("ascii-conversion", () => new T(this.wA, "attribute vec2 a_position;attribute vec2 a_texCoord;varying vec2 v_uv;void main(){v_uv=a_texCoord;gl_Position=vec4(a_position,0.,1.);}", "precision mediump float;uniform sampler2D a;uniform vec2 b;uniform sampler2D d;uniform sampler2D e;uniform sampler2D f;uniform sampler2D c;uniform sampler2D g;uniform vec2 h;uniform vec2 i;uniform vec2 j;mat2 A(float B){float C=sin(B);float c=cos(B);return mat2(c,-C,C,c);}void main(){vec2 D=(gl_FragCoord.xy-j)/i;vec2 E=D*h;vec2 F=floor(E);vec2 G=(F+0.5)/h;vec4 H=texture2D(d,G);vec4 I=texture2D(e,G);vec4 J=texture2D(f,G);bool K=J.r>0.5;bool L=J.g>0.5;bool M=J.b>0.5;vec4 N=texture2D(c,G);int O=int(N.r*255.+0.5)+int(N.g*255.+0.5)*256;int P=int(mod(float(O),b.x));int Q=O/int(b.x);float R=(b.y-1.)-float(Q);vec2 S=vec2(float(P),R)/b;vec4 T=texture2D(g,G);float U=T.r*255.+T.g;float V=-(U*360./255.)*0.017453292;vec2 W=fract(E)-0.5;if(L)W.x=-W.x;if(M)W.y=-W.y;W=A(V)*W+0.5;vec2 X=1./b;vec2 Y=S+W*X;vec2 Z=S+X;if(any(lessThan(Y,S))||any(greaterThan(Y,Z))){gl_FragColor=K?H:I;return;}vec4 a=texture2D(a,Y);if(K)a.rgb=1.-a.rgb;gl_FragColor=mix(I,H,a);}"));
394
+ it() {
395
+ return this.et("ascii-conversion", () => new T(this.wA, "attribute vec2 a_position;attribute vec2 a_texCoord;varying vec2 v_uv;void main(){v_uv=a_texCoord;gl_Position=vec4(a_position,0.,1.);}", "precision mediump float;uniform sampler2D a;uniform vec2 b;uniform sampler2D d;uniform sampler2D e;uniform sampler2D f;uniform sampler2D c;uniform sampler2D g;uniform vec2 h;uniform vec2 i;uniform vec2 j;mat2 A(float B){float C=sin(B);float c=cos(B);return mat2(c,-C,C,c);}void main(){vec2 D=(gl_FragCoord.xy-j)/i;vec2 E=D*h;vec2 F=floor(E);vec2 G=(F+0.5)/h;vec4 H=texture2D(d,G);vec4 I=texture2D(e,G);vec4 J=texture2D(f,G);bool K=J.r>0.5;bool L=J.g>0.5;bool M=J.b>0.5;vec4 N=texture2D(c,G);int O=int(N.r*255.+0.5)+int(N.g*255.+0.5)*256;int P=int(mod(float(O),b.x));int Q=O/int(b.x);float R=(b.y-1.)-float(Q);vec2 S=vec2(float(P),R)/b;vec4 T=texture2D(g,G);float U=T.r*255.+T.g;float V=-(U*360./255.)*0.017453292;vec2 W=fract(E)-0.5;if(L)W.x=-W.x;if(M)W.y=-W.y;W=A(V)*W+0.5;vec2 X=1./b;vec2 Y=S+W*X;vec2 Z=S+X;if(any(lessThan(Y,S))||any(greaterThan(Y,Z))){gl_FragColor=K?H:I;return;}vec4 a=texture2D(a,Y);if(K)a.rgb=1.-a.rgb;gl_FragColor=mix(I,H,a);}"));
364
396
  }
365
- et(A) {
366
- return new T(this.wA, S, A);
397
+ Bt(A) {
398
+ return new T(this.wA, L, A);
367
399
  }
368
- st(A, t) {
400
+ Qt(A, t) {
369
401
  return new T(this.wA, A, t);
370
402
  }
371
403
  kA() {
372
- for (const A of this.jA.values()) A.kA();
373
- this.jA.clear();
404
+ for (const A of this.tt.values()) A.kA();
405
+ this.tt.clear();
374
406
  }
375
407
  }
376
408
  var D = ((E) => (E.RECTANGLE = "rectangle", E.LINE = "line", E.ELLIPSE = "ellipse", E.ARC = "arc", E.TRIANGLE = "triangle", E.BEZIER_CURVE = "bezier_curve", E.CUSTOM = "custom", E))(D || {});
377
409
  class sA {
378
410
  constructor(A) {
379
- Q(this, "wA");
380
- Q(this, "it", /* @__PURE__ */ new Map());
411
+ n(this, "wA");
412
+ n(this, "Et", /* @__PURE__ */ new Map());
381
413
  this.wA = A;
382
414
  }
383
- Bt(A, t, e, s) {
415
+ rt(A, t, e, s) {
384
416
  const i = this.wA;
385
- let B = this.it.get(A);
386
- B || (B = /* @__PURE__ */ new Map(), this.it.set(A, B));
417
+ let B = this.Et.get(A);
418
+ B || (B = /* @__PURE__ */ new Map(), this.Et.set(A, B));
387
419
  let r = B.get(t) || null;
388
420
  if (!r) {
389
421
  r = i.createVertexArray(), B.set(t, r), i.bindVertexArray(r), i.bindBuffer(i.ARRAY_BUFFER, s);
390
- const n = i.getAttribLocation(A, "a_position");
391
- n !== -1 && (i.enableVertexAttribArray(n), i.vertexAttribPointer(n, e.Et.Qt.size, i.FLOAT, !1, e.rt, e.Et.Qt.offset), i.vertexAttribDivisor(n, 0));
422
+ const Q = i.getAttribLocation(A, "a_position");
423
+ Q !== -1 && (i.enableVertexAttribArray(Q), i.vertexAttribPointer(Q, e.ot.nt.size, i.FLOAT, !1, e.gt, e.ot.nt.offset), i.vertexAttribDivisor(Q, 0));
392
424
  const o = i.getAttribLocation(A, "a_texCoord");
393
- o !== -1 && (i.enableVertexAttribArray(o), i.vertexAttribPointer(o, e.Et.nt.size, i.FLOAT, !1, e.rt, e.Et.nt.offset), i.vertexAttribDivisor(o, 0));
425
+ o !== -1 && (i.enableVertexAttribArray(o), i.vertexAttribPointer(o, e.ot.ht.size, i.FLOAT, !1, e.gt, e.ot.ht.offset), i.vertexAttribDivisor(o, 0));
394
426
  }
395
427
  i.bindVertexArray(r);
396
428
  }
397
- gt() {
429
+ ct() {
398
430
  this.wA.bindVertexArray(null);
399
431
  }
400
432
  kA() {
401
433
  const A = this.wA;
402
- for (const [, t] of this.it) for (const [, e] of t) e && A.deleteVertexArray(e);
403
- this.it.clear();
434
+ for (const [, t] of this.Et) for (const [, e] of t) e && A.deleteVertexArray(e);
435
+ this.Et.clear();
404
436
  }
405
437
  }
406
438
  class iA {
407
439
  constructor(A, t) {
408
- Q(this, "ot");
409
- Q(this, "wA");
410
- Q(this, "vA");
411
- Q(this, "ht", null);
412
- Q(this, "ct", null);
413
- this.wA = A, this.ot = new sA(A), this.vA = t;
414
- }
415
- Ct(A, t, e) {
440
+ n(this, "lt");
441
+ n(this, "wA");
442
+ n(this, "vA");
443
+ n(this, "Ct", null);
444
+ n(this, "Dt", null);
445
+ this.wA = A, this.lt = new sA(A), this.vA = t;
446
+ }
447
+ Pt(A, t, e) {
416
448
  const { shader: s } = A, i = G(this.wA) || this.wA.getParameter(this.wA.VIEWPORT);
417
- s.JA({ k: i[2] / i[3], t: [i[2], i[3]] });
449
+ s.VA({ k: i[2] / i[3], t: [i[2], i[3]] });
418
450
  const B = (o) => {
419
- if (!o || !o.lt()) return;
420
- const a = o.unitGeometry, g = o.unitBuffer;
451
+ if (!o || !o.ut()) return;
452
+ const g = o.unitGeometry, a = o.unitBuffer;
421
453
  try {
422
- this.ot.Bt(s.XA, o.type + "", a, g), o.batch.Dt(s), o.batch.Pt(a.ut, a.It);
454
+ this.lt.rt(s.At, o.type + "", g, a), o.batch.It(s), o.batch.wt(g.ft, g.dt);
423
455
  } finally {
424
- o.batch.wt(s), this.ot.gt(), o.ft();
456
+ o.batch._t(s), this.lt.ct(), o.vt();
425
457
  }
426
458
  };
427
- let r = null, n = null;
459
+ let r = null, Q = null;
428
460
  for (const o of t) {
429
461
  if (o.type === D.CUSTOM) {
430
- n && (B(n), r = null, n = null), this.dt(A, o.params, o.state, e.get(D.RECTANGLE));
462
+ Q && (B(Q), r = null, Q = null), this.yt(A, o.params, o.state, e.get(D.RECTANGLE));
431
463
  continue;
432
464
  }
433
- r !== null && o.type !== r && (B(n), r = null, n = null);
434
- let a = n;
435
- a && o.type === r || (a = e.get(o.type) || null, n = a, r = o.type), a && a._t(o.params, o.state);
465
+ r !== null && o.type !== r && (B(Q), r = null, Q = null);
466
+ let g = Q;
467
+ g && o.type === r || (g = e.get(o.type) || null, Q = g, r = o.type), g && g.bt(o.params, o.state);
436
468
  }
437
- B(n);
438
- }
439
- dt(A, t, e, s) {
440
- const { x: i, y: B, width: r, height: n, shader: o, uniforms: a } = t;
441
- if (o === this.vt()) return this.yt(s, o, a, Math.floor(i), Math.floor(B), Math.max(1, Math.floor(r)), Math.max(1, Math.floor(n)), e), void A.shader.HA();
442
- const g = this.bt(Math.max(1, Math.floor(r)), Math.max(1, Math.floor(n)));
443
- g.begin(), this.yt(s, o, a, 0, 0, g.width, g.height, {}), g.end();
444
- const h = this.vt(), c = { l: g.textures[0], m: g.textures[1], n: g.textures[2], o: g.textures[3], p: g.textures[4], q: [g.width, g.height] };
445
- this.yt(s, h, c, Math.floor(i), Math.floor(B), Math.max(1, Math.floor(r)), Math.max(1, Math.floor(n)), e), A.shader.HA();
446
- }
447
- yt(A, t, e, s, i, B, r, n) {
448
- t.HA(), t.JA(e);
469
+ B(Q);
470
+ }
471
+ yt(A, t, e, s) {
472
+ const { x: i, y: B, width: r, height: Q, shader: o, uniforms: g } = t;
473
+ if (o === this.$t()) return this.Gt(s, o, g, Math.floor(i), Math.floor(B), Math.max(1, Math.floor(r)), Math.max(1, Math.floor(Q)), e), void A.shader.KA();
474
+ const a = this.xt(Math.max(1, Math.floor(r)), Math.max(1, Math.floor(Q)));
475
+ a.begin(), this.Gt(s, o, g, 0, 0, a.width, a.height, {}), a.end();
476
+ const h = this.$t(), c = { l: a.textures[0], m: a.textures[1], n: a.textures[2], o: a.textures[3], p: a.textures[4], q: [a.width, a.height] };
477
+ this.Gt(s, h, c, Math.floor(i), Math.floor(B), Math.max(1, Math.floor(r)), Math.max(1, Math.floor(Q)), e), A.shader.KA();
478
+ }
479
+ Gt(A, t, e, s, i, B, r, Q) {
480
+ t.KA(), t.VA(e);
449
481
  const o = this.wA.getParameter(this.wA.VIEWPORT);
450
- if (t.JA({ k: o[2] / o[3], t: [o[2], o[3]] }), A.ft(), A._t({ x: s, y: i, width: B, height: r }, n), A.lt()) {
451
- const a = A.unitGeometry, g = A.unitBuffer;
482
+ if (t.VA({ k: o[2] / o[3], t: [o[2], o[3]] }), A.vt(), A.bt({ x: s, y: i, width: B, height: r }, Q), A.ut()) {
483
+ const g = A.unitGeometry, a = A.unitBuffer;
452
484
  try {
453
- this.ot.Bt(t.XA, A.type + "", a, g), A.batch.Dt(t), A.batch.Pt(a.ut, a.It);
485
+ this.lt.rt(t.At, A.type + "", g, a), A.batch.It(t), A.batch.wt(g.ft, g.dt);
454
486
  } finally {
455
- A.batch.wt(t), this.ot.gt(), A.ft();
487
+ A.batch._t(t), this.lt.ct(), A.vt();
456
488
  }
457
489
  }
458
490
  }
459
- vt() {
460
- return this.vA.At();
491
+ $t() {
492
+ return this.vA.st();
461
493
  }
462
- bt(A, t) {
463
- return this.ht && this.ct && this.ct.w === A && this.ct.h === t || (this.ht && this.ht.kA(), this.ht = new U(this.wA, A, t, 5), this.ct = { w: A, h: t }), this.ht;
494
+ xt(A, t) {
495
+ return this.Ct && this.Dt && this.Dt.w === A && this.Dt.h === t || (this.Ct && this.Ct.kA(), this.Ct = new U(this.wA, A, t, 5), this.Dt = { w: A, h: t }), this.Ct;
464
496
  }
465
497
  }
466
498
  class BA {
467
499
  constructor() {
468
- Q(this, "$t", []);
469
- Q(this, "Gt", 1);
470
- Q(this, "Mt", 0);
471
- }
472
- xt(A) {
473
- if (this.Mt >= this.$t.length) {
474
- const e = { id: this.Gt++, type: A, params: {}, state: { V: 1, Z: 0, N: 0, X: 0, character: [0, 0, 0], charColor: [1, 1, 1, 1], bgColor: [0, 0, 0, 1], flipHorizontally: !1, flipVertically: !1, invert: !1, charRotation: [0, 0] } };
475
- this.$t.push(e);
500
+ n(this, "Mt", []);
501
+ n(this, "Yt", 1);
502
+ n(this, "Ft", 0);
503
+ }
504
+ Rt(A) {
505
+ if (this.Ft >= this.Mt.length) {
506
+ const e = { id: this.Yt++, type: A, params: {}, state: { V: 1, Z: 0, N: 0, X: 0, character: [0, 0, 0], charColor: [1, 1, 1, 1], bgColor: [0, 0, 0, 1], flipHorizontally: !1, flipVertically: !1, invert: !1, charRotation: [0, 0] } };
507
+ this.Mt.push(e);
476
508
  }
477
- const t = this.$t[this.Mt];
478
- switch (t.id = this.Gt++, t.type = A, A) {
509
+ const t = this.Mt[this.Ft];
510
+ switch (t.id = this.Yt++, t.type = A, A) {
479
511
  case D.RECTANGLE:
480
512
  case D.ELLIPSE:
481
513
  t.params && "width" in t.params || (t.params = { x: 0, y: 0, width: 0, height: 0 });
@@ -498,403 +530,403 @@ class BA {
498
530
  default:
499
531
  t.params || (t.params = {});
500
532
  }
501
- return this.Mt++, t;
533
+ return this.Ft++, t;
502
534
  }
503
- Yt(A, t, e, s, i) {
504
- const B = this.xt(D.RECTANGLE);
535
+ St(A, t, e, s, i) {
536
+ const B = this.Rt(D.RECTANGLE);
505
537
  return B.params.x = A, B.params.y = t, B.params.width = e, B.params.height = s, i.BA(B.state), B.id;
506
538
  }
507
- Ft(A, t, e, s, i, B, r) {
508
- const n = this.xt(D.CUSTOM);
509
- return n.params.x = A, n.params.y = t, n.params.width = e, n.params.height = s, n.params.shader = i, n.params.uniforms = B, r.BA(n.state), n.id;
539
+ kt(A, t, e, s, i, B, r) {
540
+ const Q = this.Rt(D.CUSTOM);
541
+ return Q.params.x = A, Q.params.y = t, Q.params.width = e, Q.params.height = s, Q.params.shader = i, Q.params.uniforms = B, r.BA(Q.state), Q.id;
510
542
  }
511
- Rt(A, t, e, s, i, B) {
512
- const r = this.xt(D.LINE);
543
+ zt(A, t, e, s, i, B) {
544
+ const r = this.Rt(D.LINE);
513
545
  return r.params.x1 = A, r.params.y1 = t, r.params.x2 = e, r.params.y2 = s, r.params.thickness = i, B.BA(r.state), r.id;
514
546
  }
515
- St(A, t, e, s, i) {
516
- const B = this.xt(D.ELLIPSE);
547
+ Lt(A, t, e, s, i) {
548
+ const B = this.Rt(D.ELLIPSE);
517
549
  return B.params.x = A, B.params.y = t, B.params.width = e, B.params.height = s, i.BA(B.state), B.id;
518
550
  }
519
- kt(A, t, e, s, i, B, r) {
520
- const n = this.xt(D.ARC);
521
- return n.params.x = A, n.params.y = t, n.params.width = e, n.params.height = s, n.params.start = i, n.params.stop = B, r.BA(n.state), n.id;
551
+ Ot(A, t, e, s, i, B, r) {
552
+ const Q = this.Rt(D.ARC);
553
+ return Q.params.x = A, Q.params.y = t, Q.params.width = e, Q.params.height = s, Q.params.start = i, Q.params.stop = B, r.BA(Q.state), Q.id;
522
554
  }
523
- zt(A, t, e, s, i, B, r) {
524
- const n = this.xt(D.TRIANGLE);
525
- return n.params.x1 = A, n.params.y1 = t, n.params.x2 = e, n.params.y2 = s, n.params.x3 = i, n.params.y3 = B, r.BA(n.state), n.id;
555
+ Tt(A, t, e, s, i, B, r) {
556
+ const Q = this.Rt(D.TRIANGLE);
557
+ return Q.params.x1 = A, Q.params.y1 = t, Q.params.x2 = e, Q.params.y2 = s, Q.params.x3 = i, Q.params.y3 = B, r.BA(Q.state), Q.id;
526
558
  }
527
- Lt(A, t, e, s, i, B, r, n, o, a) {
528
- const g = this.xt(D.BEZIER_CURVE);
529
- return g.params.x1 = A, g.params.y1 = t, g.params.cp1x = e, g.params.cp1y = s, g.params.cp2x = i, g.params.cp2y = B, g.params.x2 = r, g.params.y2 = n, g.params.thickness = o, a.BA(g.state), g.id;
559
+ Ut(A, t, e, s, i, B, r, Q, o, g) {
560
+ const a = this.Rt(D.BEZIER_CURVE);
561
+ return a.params.x1 = A, a.params.y1 = t, a.params.cp1x = e, a.params.cp1y = s, a.params.cp2x = i, a.params.cp2y = B, a.params.x2 = r, a.params.y2 = Q, a.params.thickness = o, g.BA(a.state), a.id;
530
562
  }
531
563
  get length() {
532
- return this.Mt;
564
+ return this.Ft;
533
565
  }
534
566
  get isEmpty() {
535
- return this.Mt === 0;
567
+ return this.Ft === 0;
536
568
  }
537
- Ot() {
538
- this.Mt = 0;
569
+ Wt() {
570
+ this.Ft = 0;
539
571
  }
540
572
  [Symbol.iterator]() {
541
573
  let A = 0;
542
- const t = this.Mt, e = this.$t;
574
+ const t = this.Ft, e = this.Mt;
543
575
  return { next: () => A < t ? { value: e[A++], done: !1 } : { value: void 0, done: !0 } };
544
576
  }
545
577
  }
546
- const v = class v {
547
- static Tt(A, t, e = 0) {
548
- var B, r, n, o, a, g, h, c, l, C;
549
- const s = t || new Float32Array(v.FLOATS_PER_INSTANCE);
578
+ const y = class y {
579
+ static Ht(A, t, e = 0) {
580
+ var B, r, Q, o, g, a, h, c, l, C;
581
+ const s = t || new Float32Array(y.FLOATS_PER_INSTANCE);
550
582
  let i = e;
551
- return s[i++] = A.position[0], s[i++] = A.position[1], s[i++] = A.size[0], s[i++] = A.size[1], s[i++] = A.AA[0], s[i++] = A.AA[1], s[i++] = A.AA[2], s[i++] = A.primaryColor[0], s[i++] = A.primaryColor[1], s[i++] = A.primaryColor[2], s[i++] = A.primaryColor[3], s[i++] = A.secondaryColor[0], s[i++] = A.secondaryColor[1], s[i++] = A.secondaryColor[2], s[i++] = A.secondaryColor[3], s[i++] = A.rotation[0], s[i++] = A.rotation[1], s[i++] = A.transform[0], s[i++] = A.transform[1], s[i++] = A.transform[2], s[i++] = A.globalRotationX, s[i++] = A.globalRotationY, s[i++] = A.globalRotationZ, s[i++] = A.rotationCenter[0], s[i++] = A.rotationCenter[1], s[i++] = ((B = A.arcAngles) == null ? void 0 : B[0]) || 0, s[i++] = ((r = A.arcAngles) == null ? void 0 : r[1]) || 0, s[i++] = ((n = A.bezierControlPoint1) == null ? void 0 : n[0]) || 0, s[i++] = ((o = A.bezierControlPoint1) == null ? void 0 : o[1]) || 0, s[i++] = ((a = A.bezierControlPoint2) == null ? void 0 : a[0]) || 0, s[i++] = ((g = A.bezierControlPoint2) == null ? void 0 : g[1]) || 0, s[i++] = ((h = A.bezierStartPoint) == null ? void 0 : h[0]) || 0, s[i++] = ((c = A.bezierStartPoint) == null ? void 0 : c[1]) || 0, s[i++] = ((l = A.bezierEndPoint) == null ? void 0 : l[0]) || 0, s[i++] = ((C = A.bezierEndPoint) == null ? void 0 : C[1]) || 0, s;
583
+ return s[i++] = A.position[0], s[i++] = A.position[1], s[i++] = A.size[0], s[i++] = A.size[1], s[i++] = A.AA[0], s[i++] = A.AA[1], s[i++] = A.AA[2], s[i++] = A.primaryColor[0], s[i++] = A.primaryColor[1], s[i++] = A.primaryColor[2], s[i++] = A.primaryColor[3], s[i++] = A.secondaryColor[0], s[i++] = A.secondaryColor[1], s[i++] = A.secondaryColor[2], s[i++] = A.secondaryColor[3], s[i++] = A.rotation[0], s[i++] = A.rotation[1], s[i++] = A.transform[0], s[i++] = A.transform[1], s[i++] = A.transform[2], s[i++] = A.globalRotationX, s[i++] = A.globalRotationY, s[i++] = A.globalRotationZ, s[i++] = A.rotationCenter[0], s[i++] = A.rotationCenter[1], s[i++] = ((B = A.arcAngles) == null ? void 0 : B[0]) || 0, s[i++] = ((r = A.arcAngles) == null ? void 0 : r[1]) || 0, s[i++] = ((Q = A.bezierControlPoint1) == null ? void 0 : Q[0]) || 0, s[i++] = ((o = A.bezierControlPoint1) == null ? void 0 : o[1]) || 0, s[i++] = ((g = A.bezierControlPoint2) == null ? void 0 : g[0]) || 0, s[i++] = ((a = A.bezierControlPoint2) == null ? void 0 : a[1]) || 0, s[i++] = ((h = A.bezierStartPoint) == null ? void 0 : h[0]) || 0, s[i++] = ((c = A.bezierStartPoint) == null ? void 0 : c[1]) || 0, s[i++] = ((l = A.bezierEndPoint) == null ? void 0 : l[0]) || 0, s[i++] = ((C = A.bezierEndPoint) == null ? void 0 : C[1]) || 0, s;
552
584
  }
553
- static Ut(A) {
554
- const t = A.length * v.FLOATS_PER_INSTANCE, e = new Float32Array(t);
585
+ static Kt(A) {
586
+ const t = A.length * y.FLOATS_PER_INSTANCE, e = new Float32Array(t);
555
587
  for (let s = 0; s < A.length; s++) {
556
- const i = s * v.FLOATS_PER_INSTANCE;
557
- v.Tt(A[s], e, i);
588
+ const i = s * y.FLOATS_PER_INSTANCE;
589
+ y.Ht(A[s], e, i);
558
590
  }
559
591
  return e;
560
592
  }
561
593
  };
562
- Q(v, "BYTES_PER_INSTANCE", 140), Q(v, "FLOATS_PER_INSTANCE", 35);
563
- let x = v;
594
+ n(y, "BYTES_PER_INSTANCE", 140), n(y, "FLOATS_PER_INSTANCE", 35);
595
+ let R = y;
564
596
  const P = class P {
565
597
  };
566
- Q(P, "STRIDE", x.BYTES_PER_INSTANCE), Q(P, "ATTRIBUTES", { a_instancePosition: { location: -1, size: 2, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 0, divisor: 1 }, a_instanceSize: { location: -1, size: 2, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 8, divisor: 1 }, a_instanceCharacter: { location: -1, size: 3, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 16, divisor: 1 }, a_instancePrimaryColor: { location: -1, size: 4, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 28, divisor: 1 }, a_instanceSecondaryColor: { location: -1, size: 4, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 44, divisor: 1 }, a_instanceRotation: { location: -1, size: 2, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 60, divisor: 1 }, a_instanceTransform: { location: -1, size: 3, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 68, divisor: 1 }, a_instanceGlobalRotation: { location: -1, size: 3, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 80, divisor: 1 }, a_instanceRotationCenter: { location: -1, size: 2, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 92, divisor: 1 }, a_instanceArcAngles: { location: -1, size: 2, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 100, divisor: 1 }, a_instanceBezierCP1: { location: -1, size: 2, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 108, divisor: 1 }, a_instanceBezierCP2: { location: -1, size: 2, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 116, divisor: 1 }, a_instanceBezierStart: { location: -1, size: 2, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 124, divisor: 1 }, a_instanceBezierEnd: { location: -1, size: 2, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 132, divisor: 1 } });
567
- let Y = P;
598
+ n(P, "STRIDE", R.BYTES_PER_INSTANCE), n(P, "ATTRIBUTES", { a_instancePosition: { location: -1, size: 2, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 0, divisor: 1 }, a_instanceSize: { location: -1, size: 2, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 8, divisor: 1 }, a_instanceCharacter: { location: -1, size: 3, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 16, divisor: 1 }, a_instancePrimaryColor: { location: -1, size: 4, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 28, divisor: 1 }, a_instanceSecondaryColor: { location: -1, size: 4, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 44, divisor: 1 }, a_instanceRotation: { location: -1, size: 2, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 60, divisor: 1 }, a_instanceTransform: { location: -1, size: 3, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 68, divisor: 1 }, a_instanceGlobalRotation: { location: -1, size: 3, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 80, divisor: 1 }, a_instanceRotationCenter: { location: -1, size: 2, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 92, divisor: 1 }, a_instanceArcAngles: { location: -1, size: 2, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 100, divisor: 1 }, a_instanceBezierCP1: { location: -1, size: 2, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 108, divisor: 1 }, a_instanceBezierCP2: { location: -1, size: 2, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 116, divisor: 1 }, a_instanceBezierStart: { location: -1, size: 2, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 124, divisor: 1 }, a_instanceBezierEnd: { location: -1, size: 2, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 132, divisor: 1 } });
599
+ let S = P;
568
600
  class rA {
569
601
  constructor(A, t = 1e3, e = 1.5) {
570
- Q(this, "wA");
571
- Q(this, "Wt", []);
572
- Q(this, "Ht");
573
- Q(this, "Kt");
574
- Q(this, "Jt", null);
575
- Q(this, "Vt", !0);
576
- Q(this, "Zt", 0);
577
- Q(this, "Nt", /* @__PURE__ */ new Map());
578
- Q(this, "Xt", null);
579
- this.wA = A, this.Ht = t, this.Kt = e, this.jt();
580
- }
581
- _t(A) {
582
- const t = this.Wt.length;
583
- return this.Wt.push(A), this.Vt = !0, t;
602
+ n(this, "wA");
603
+ n(this, "Jt", []);
604
+ n(this, "Vt");
605
+ n(this, "Zt");
606
+ n(this, "Nt", null);
607
+ n(this, "Xt", !0);
608
+ n(this, "jt", 0);
609
+ n(this, "qt", /* @__PURE__ */ new Map());
610
+ n(this, "Ae", null);
611
+ this.wA = A, this.Vt = t, this.Zt = e, this.te();
612
+ }
613
+ bt(A) {
614
+ const t = this.Jt.length;
615
+ return this.Jt.push(A), this.Xt = !0, t;
584
616
  }
585
617
  get count() {
586
- return this.Wt.length;
618
+ return this.Jt.length;
587
619
  }
588
620
  get isEmpty() {
589
- return this.Wt.length === 0;
621
+ return this.Jt.length === 0;
590
622
  }
591
623
  clear() {
592
- this.Wt.length = 0, this.Vt = !0;
624
+ this.Jt.length = 0, this.Xt = !0;
593
625
  }
594
- qt(A) {
595
- if (A <= this.Ht) return;
596
- const t = Math.ceil(A * this.Kt);
597
- this.Ht = t, this.jt();
626
+ ee(A) {
627
+ if (A <= this.Vt) return;
628
+ const t = Math.ceil(A * this.Zt);
629
+ this.Vt = t, this.te();
598
630
  }
599
- jt() {
631
+ te() {
600
632
  const A = this.wA;
601
- this.Jt && A.deleteBuffer(this.Jt), this.Jt = A.createBuffer();
602
- const t = this.Ht * x.BYTES_PER_INSTANCE;
603
- A.bindBuffer(A.ARRAY_BUFFER, this.Jt), A.bufferData(A.ARRAY_BUFFER, t, A.DYNAMIC_DRAW), A.bindBuffer(A.ARRAY_BUFFER, null), this.Vt = !0, this.Zt = 0;
604
- }
605
- Ae() {
606
- if (!this.Vt || this.Wt.length === 0) return;
607
- const A = this.wA, t = this.Wt.length;
608
- this.qt(t), (!this.Xt || this.Xt.length < t * x.FLOATS_PER_INSTANCE) && (this.Xt = new Float32Array(t * x.FLOATS_PER_INSTANCE));
609
- const e = x.Ut(this.Wt);
610
- A.bindBuffer(A.ARRAY_BUFFER, this.Jt), t <= this.Zt ? A.bufferSubData(A.ARRAY_BUFFER, 0, e) : A.bufferData(A.ARRAY_BUFFER, e, A.DYNAMIC_DRAW), A.bindBuffer(A.ARRAY_BUFFER, null), this.Vt = !1, this.Zt = t;
611
- }
612
- te(A) {
613
- let t = this.Nt.get(A);
633
+ this.Nt && A.deleteBuffer(this.Nt), this.Nt = A.createBuffer();
634
+ const t = this.Vt * R.BYTES_PER_INSTANCE;
635
+ A.bindBuffer(A.ARRAY_BUFFER, this.Nt), A.bufferData(A.ARRAY_BUFFER, t, A.DYNAMIC_DRAW), A.bindBuffer(A.ARRAY_BUFFER, null), this.Xt = !0, this.jt = 0;
636
+ }
637
+ se() {
638
+ if (!this.Xt || this.Jt.length === 0) return;
639
+ const A = this.wA, t = this.Jt.length;
640
+ this.ee(t), (!this.Ae || this.Ae.length < t * R.FLOATS_PER_INSTANCE) && (this.Ae = new Float32Array(t * R.FLOATS_PER_INSTANCE));
641
+ const e = R.Kt(this.Jt);
642
+ A.bindBuffer(A.ARRAY_BUFFER, this.Nt), t <= this.jt ? A.bufferSubData(A.ARRAY_BUFFER, 0, e) : A.bufferData(A.ARRAY_BUFFER, e, A.DYNAMIC_DRAW), A.bindBuffer(A.ARRAY_BUFFER, null), this.Xt = !1, this.jt = t;
643
+ }
644
+ ie(A) {
645
+ let t = this.qt.get(A);
614
646
  if (!t) {
615
647
  t = /* @__PURE__ */ new Map();
616
648
  const e = this.wA;
617
- for (const s in Y.ATTRIBUTES) {
649
+ for (const s in S.ATTRIBUTES) {
618
650
  const i = e.getAttribLocation(A, s);
619
651
  i !== -1 && t.set(s, i);
620
652
  }
621
- this.Nt.set(A, t);
653
+ this.qt.set(A, t);
622
654
  }
623
655
  return t;
624
656
  }
625
- Dt(A) {
626
- if (!this.Jt || this.Wt.length === 0) return;
627
- const t = this.wA, e = A.XA;
628
- this.Ae();
629
- const s = this.te(e);
630
- t.bindBuffer(t.ARRAY_BUFFER, this.Jt);
657
+ It(A) {
658
+ if (!this.Nt || this.Jt.length === 0) return;
659
+ const t = this.wA, e = A.At;
660
+ this.se();
661
+ const s = this.ie(e);
662
+ t.bindBuffer(t.ARRAY_BUFFER, this.Nt);
631
663
  for (const [i, B] of s) {
632
- const r = Y.ATTRIBUTES[i];
664
+ const r = S.ATTRIBUTES[i];
633
665
  r && (t.enableVertexAttribArray(B), t.vertexAttribPointer(B, r.size, r.type, r.normalized, r.stride, r.offset), t.vertexAttribDivisor(B, r.divisor));
634
666
  }
635
667
  }
636
- wt(A) {
637
- const t = this.wA, e = this.te(A.XA);
668
+ _t(A) {
669
+ const t = this.wA, e = this.ie(A.At);
638
670
  for (const [, s] of e) t.disableVertexAttribArray(s), t.vertexAttribDivisor(s, 0);
639
671
  }
640
- Pt(A, t) {
641
- this.Wt.length !== 0 && this.wA.drawArraysInstanced(A, 0, t, this.Wt.length);
672
+ wt(A, t) {
673
+ this.Jt.length !== 0 && this.wA.drawArraysInstanced(A, 0, t, this.Jt.length);
642
674
  }
643
675
  kA() {
644
676
  const A = this.wA;
645
- this.Jt && (A.deleteBuffer(this.Jt), this.Jt = null), this.Wt.length = 0, this.Nt.clear(), this.Xt = null;
677
+ this.Nt && (A.deleteBuffer(this.Nt), this.Nt = null), this.Jt.length = 0, this.qt.clear(), this.Ae = null;
646
678
  }
647
679
  }
648
680
  class b {
649
681
  constructor(A, t, e, s) {
650
- Q(this, "wA");
651
- Q(this, "ee");
652
- Q(this, "se");
653
- Q(this, "ie");
654
- Q(this, "Be", null);
655
- this.wA = A, this.ee = t, this.se = e, this.ie = s;
682
+ n(this, "wA");
683
+ n(this, "Be");
684
+ n(this, "Qe");
685
+ n(this, "Ee");
686
+ n(this, "re", null);
687
+ this.wA = A, this.Be = t, this.Qe = e, this.Ee = s;
656
688
  const i = this.wA.createBuffer();
657
689
  if (!i) throw Error("Failed to create unit geometry buffer");
658
- this.wA.bindBuffer(this.wA.ARRAY_BUFFER, i), this.wA.bufferData(this.wA.ARRAY_BUFFER, this.ie.Qe, this.wA.STATIC_DRAW), this.wA.bindBuffer(this.wA.ARRAY_BUFFER, null), this.Be = i;
690
+ this.wA.bindBuffer(this.wA.ARRAY_BUFFER, i), this.wA.bufferData(this.wA.ARRAY_BUFFER, this.Ee.ne, this.wA.STATIC_DRAW), this.wA.bindBuffer(this.wA.ARRAY_BUFFER, null), this.re = i;
659
691
  }
660
692
  get type() {
661
- return this.se;
693
+ return this.Qe;
662
694
  }
663
695
  get unitGeometry() {
664
- return this.ie;
696
+ return this.Ee;
665
697
  }
666
698
  get unitBuffer() {
667
- return this.Be;
699
+ return this.re;
668
700
  }
669
701
  get batch() {
670
- return this.ee;
702
+ return this.Be;
671
703
  }
672
- ft() {
673
- this.ee.clear();
704
+ vt() {
705
+ this.Be.clear();
674
706
  }
675
- lt() {
676
- return !this.ee.isEmpty;
707
+ ut() {
708
+ return !this.Be.isEmpty;
677
709
  }
678
710
  kA() {
679
- this.ee.kA(), this.Be && (this.wA.deleteBuffer(this.Be), this.Be = null);
711
+ this.Be.kA(), this.re && (this.wA.deleteBuffer(this.re), this.re = null);
680
712
  }
681
- Ee(A, t, e, s, i) {
682
- const B = this.re(A, t, e, s, i.rotationX || 0, i.rotationY || 0, i.rotationZ || 0);
713
+ oe(A, t, e, s, i) {
714
+ const B = this.ge(A, t, e, s, i.rotationX || 0, i.rotationY || 0, i.rotationZ || 0);
683
715
  return { position: [A, t], size: [e, s], AA: i.character || [0, 0, 0], primaryColor: i.charColor || [1, 1, 1, 1], secondaryColor: i.bgColor || [0, 0, 0, 1], rotation: i.charRotation || [0, 0], transform: [i.invert ? 1 : 0, i.flipHorizontally ? 1 : 0, i.flipVertically ? 1 : 0], globalRotationX: B.radiansX, globalRotationY: B.radiansY, globalRotationZ: B.radiansZ, rotationCenter: [B.centerX, B.centerY] };
684
716
  }
685
- ne(A, t) {
717
+ ae(A, t) {
686
718
  const e = G(this.wA) || [0, 0, this.wA.canvas.width, this.wA.canvas.height];
687
719
  return { nx: A / e[2] * 2 - 1, ny: 1 - t / e[3] * 2 };
688
720
  }
689
- ge(A, t, e) {
690
- const s = this.ne(t, e);
721
+ he(A, t, e) {
722
+ const s = this.ae(t, e);
691
723
  A.rotationCenter = [s.nx, s.ny];
692
724
  }
693
- re(A, t, e, s, i, B, r) {
694
- const n = G(this.wA) || [0, 0, this.wA.canvas.width, this.wA.canvas.height], o = n[2], a = n[3];
695
- return { centerX: (A + e / 2) / o * 2 - 1, centerY: 1 - (t + s / 2) / a * 2, radiansX: -i * Math.PI / 180, radiansY: -B * Math.PI / 180, radiansZ: -r * Math.PI / 180, aspectRatio: o / a };
725
+ ge(A, t, e, s, i, B, r) {
726
+ const Q = G(this.wA) || [0, 0, this.wA.canvas.width, this.wA.canvas.height], o = Q[2], g = Q[3];
727
+ return { centerX: (A + e / 2) / o * 2 - 1, centerY: 1 - (t + s / 2) / g * 2, radiansX: -i * Math.PI / 180, radiansY: -B * Math.PI / 180, radiansZ: -r * Math.PI / 180, aspectRatio: o / g };
696
728
  }
697
729
  }
698
- const EA = { Qe: new Float32Array([0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1]), It: 6, ut: WebGL2RenderingContext.TRIANGLES, rt: 16, Et: { Qt: { size: 2, offset: 0 }, nt: { size: 2, offset: 8 } } };
730
+ const EA = { ne: new Float32Array([0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1]), dt: 6, ft: WebGL2RenderingContext.TRIANGLES, gt: 16, ot: { nt: { size: 2, offset: 0 }, ht: { size: 2, offset: 8 } } };
699
731
  class QA extends b {
700
732
  constructor(A, t) {
701
733
  super(A, t, D.RECTANGLE, EA);
702
734
  }
703
- _t(A, t) {
704
- const e = this.Ee(A.x, A.y, A.width, A.height, t);
705
- return this.ee._t(e);
735
+ bt(A, t) {
736
+ const e = this.oe(A.x, A.y, A.width, A.height, t);
737
+ return this.Be.bt(e);
706
738
  }
707
739
  }
708
- const nA = { Qe: new Float32Array([0, -0.5, 0, 0, 1, -0.5, 1, 0, 0, 0.5, 0, 1, 0, 0.5, 0, 1, 1, -0.5, 1, 0, 1, 0.5, 1, 1]), It: 6, ut: WebGL2RenderingContext.TRIANGLES, rt: 16, Et: { Qt: { size: 2, offset: 0 }, nt: { size: 2, offset: 8 } } };
740
+ const nA = { ne: new Float32Array([0, -0.5, 0, 0, 1, -0.5, 1, 0, 0, 0.5, 0, 1, 0, 0.5, 0, 1, 1, -0.5, 1, 0, 1, 0.5, 1, 1]), dt: 6, ft: WebGL2RenderingContext.TRIANGLES, gt: 16, ot: { nt: { size: 2, offset: 0 }, ht: { size: 2, offset: 8 } } };
709
741
  class oA extends b {
710
742
  constructor(A, t) {
711
743
  super(A, t, D.LINE, nA);
712
744
  }
713
- _t(A, t) {
714
- const e = A.x2 - A.x1, s = A.y2 - A.y1, i = Math.hypot(e, s), B = Math.atan2(s, e), r = A.thickness || t.lineWeight || 1, n = A.x1 + e / 2, o = A.y1 + s / 2, a = n - i / 2, g = o, h = { character: t.character, charColor: t.charColor, bgColor: t.bgColor, charRotation: t.charRotation, flipHorizontally: t.flipHorizontally, flipVertically: t.flipVertically, invert: t.invert, rotationX: t.rotationX || 0, rotationY: t.rotationY || 0, rotationZ: (t.rotationZ || 0) + 180 * B / Math.PI, lineWeight: r }, c = this.Ee(a, g, i, r, h);
715
- return this.ge(c, n, o), this.ee._t(c);
745
+ bt(A, t) {
746
+ const e = A.x2 - A.x1, s = A.y2 - A.y1, i = Math.hypot(e, s), B = Math.atan2(s, e), r = A.thickness || t.lineWeight || 1, Q = A.x1 + e / 2, o = A.y1 + s / 2, g = Q - i / 2, a = o, h = { character: t.character, charColor: t.charColor, bgColor: t.bgColor, charRotation: t.charRotation, flipHorizontally: t.flipHorizontally, flipVertically: t.flipVertically, invert: t.invert, rotationX: t.rotationX || 0, rotationY: t.rotationY || 0, rotationZ: (t.rotationZ || 0) + 180 * B / Math.PI, lineWeight: r }, c = this.oe(g, a, i, r, h);
747
+ return this.he(c, Q, o), this.Be.bt(c);
716
748
  }
717
749
  }
718
- const gA = { Qe: function(E = 32) {
750
+ const gA = { ne: function(E = 32) {
719
751
  const A = [], t = 2 * Math.PI / E;
720
752
  for (let e = 0; e < E; e++) {
721
- const s = e * t, i = (e + 1) % E * t, B = Math.cos(s), r = Math.sin(s), n = 0.5 * (B + 1), o = 0.5 * (r + 1), a = Math.cos(i), g = Math.sin(i), h = 0.5 * (a + 1), c = 0.5 * (g + 1);
722
- A.push(0, 0, 0.5, 0.5, B, r, n, o, a, g, h, c);
753
+ const s = e * t, i = (e + 1) % E * t, B = Math.cos(s), r = Math.sin(s), Q = 0.5 * (B + 1), o = 0.5 * (r + 1), g = Math.cos(i), a = Math.sin(i), h = 0.5 * (g + 1), c = 0.5 * (a + 1);
754
+ A.push(0, 0, 0.5, 0.5, B, r, Q, o, g, a, h, c);
723
755
  }
724
756
  return new Float32Array(A);
725
- }(32), It: 96, ut: WebGL2RenderingContext.TRIANGLES, rt: 16, Et: { Qt: { size: 2, offset: 0 }, nt: { size: 2, offset: 8 } } };
757
+ }(32), dt: 96, ft: WebGL2RenderingContext.TRIANGLES, gt: 16, ot: { nt: { size: 2, offset: 0 }, ht: { size: 2, offset: 8 } } };
726
758
  class aA extends b {
727
759
  constructor(A, t) {
728
760
  super(A, t, D.ELLIPSE, gA);
729
761
  }
730
- _t(A, t) {
731
- const e = this.Ee(A.x, A.y, A.width, A.height, t);
732
- return this.ge(e, A.x, A.y), this.ee._t(e);
762
+ bt(A, t) {
763
+ const e = this.oe(A.x, A.y, A.width, A.height, t);
764
+ return this.he(e, A.x, A.y), this.Be.bt(e);
733
765
  }
734
766
  }
735
- let hA = { Qe: function(E) {
767
+ let hA = { ne: function(E) {
736
768
  const A = [];
737
769
  for (let t = 0; t < E; t++) {
738
770
  const e = t / E, s = (t + 1) / E;
739
771
  A.push(e, 0, e, 0, e, 1, e, 1, s, 1, s, 1);
740
772
  }
741
773
  return new Float32Array(A);
742
- }(32), It: 96, ut: WebGL2RenderingContext.TRIANGLES, rt: 16, Et: { Qt: { size: 2, offset: 0 }, nt: { size: 2, offset: 8 } } };
774
+ }(32), dt: 96, ft: WebGL2RenderingContext.TRIANGLES, gt: 16, ot: { nt: { size: 2, offset: 0 }, ht: { size: 2, offset: 8 } } };
743
775
  class cA extends b {
744
776
  constructor(A, t) {
745
777
  super(A, t, D.ARC, hA);
746
778
  }
747
- _t(A, t) {
748
- const e = A.x - A.width / 2, s = A.y - A.height / 2, i = A.start * Math.PI / 180, B = A.stop * Math.PI / 180, r = this.Ee(e, s, A.width, A.height, t);
749
- return this.ge(r, A.x, A.y), r.arcAngles = [i, B], this.ee._t(r);
779
+ bt(A, t) {
780
+ const e = A.x - A.width / 2, s = A.y - A.height / 2, i = A.start * Math.PI / 180, B = A.stop * Math.PI / 180, r = this.oe(e, s, A.width, A.height, t);
781
+ return this.he(r, A.x, A.y), r.arcAngles = [i, B], this.Be.bt(r);
750
782
  }
751
783
  }
752
- const lA = { Qe: new Float32Array([0, 0, 0, 0, 1, 0, 1, 0, 0.5, 1, 0.5, 1]), It: 3, ut: WebGL2RenderingContext.TRIANGLES, rt: 16, Et: { Qt: { size: 2, offset: 0 }, nt: { size: 2, offset: 8 } } };
784
+ const lA = { ne: new Float32Array([0, 0, 0, 0, 1, 0, 1, 0, 0.5, 1, 0.5, 1]), dt: 3, ft: WebGL2RenderingContext.TRIANGLES, gt: 16, ot: { nt: { size: 2, offset: 0 }, ht: { size: 2, offset: 8 } } };
753
785
  class CA extends b {
754
786
  constructor(A, t) {
755
787
  super(A, t, D.TRIANGLE, lA);
756
788
  }
757
- _t(A, t) {
758
- const e = Math.min(A.x1, A.x2, A.x3), s = Math.max(A.x1, A.x2, A.x3), i = Math.min(A.y1, A.y2, A.y3), B = s - e, r = Math.max(A.y1, A.y2, A.y3) - i, n = this.Ee(e, i, B, r, t), o = e + 0.5 * B, a = i + r * (1 / 3);
759
- return this.ge(n, o, a), this.ee._t(n);
789
+ bt(A, t) {
790
+ const e = Math.min(A.x1, A.x2, A.x3), s = Math.max(A.x1, A.x2, A.x3), i = Math.min(A.y1, A.y2, A.y3), B = s - e, r = Math.max(A.y1, A.y2, A.y3) - i, Q = this.oe(e, i, B, r, t), o = e + 0.5 * B, g = i + r * (1 / 3);
791
+ return this.he(Q, o, g), this.Be.bt(Q);
760
792
  }
761
793
  }
762
- function H(E, A, t, e, s) {
794
+ function W(E, A, t, e, s) {
763
795
  const i = 1 - E, B = i * i, r = E * E;
764
796
  return B * i * A + 3 * B * E * t + 3 * i * r * e + r * E * s;
765
797
  }
766
- const DA = { Qe: function(E = 16) {
798
+ const DA = { ne: function(E = 16) {
767
799
  const A = [];
768
800
  for (let t = 0; t < E; t++) {
769
801
  const e = t / E, s = (t + 1) / E;
770
802
  A.push(e, -0.5, e, 0), A.push(s, -0.5, s, 0), A.push(e, 0.5, e, 1), A.push(e, 0.5, e, 1), A.push(s, -0.5, s, 0), A.push(s, 0.5, s, 1);
771
803
  }
772
804
  return new Float32Array(A);
773
- }(16), It: 96, ut: WebGL2RenderingContext.TRIANGLES, rt: 16, Et: { Qt: { size: 2, offset: 0 }, nt: { size: 2, offset: 8 } } };
805
+ }(16), dt: 96, ft: WebGL2RenderingContext.TRIANGLES, gt: 16, ot: { nt: { size: 2, offset: 0 }, ht: { size: 2, offset: 8 } } };
774
806
  class PA extends b {
775
807
  constructor(A, t) {
776
808
  super(A, t, D.BEZIER_CURVE, DA);
777
809
  }
778
- _t(A, t) {
779
- const e = t.lineWeight || 1, s = H(0.5, A.x1, A.cp1x, A.cp2x, A.x2), i = H(0.5, A.y1, A.cp1y, A.cp2y, A.y2), B = { character: t.character, charColor: t.charColor, bgColor: t.bgColor, charRotation: t.charRotation, flipHorizontally: t.flipHorizontally, flipVertically: t.flipVertically, invert: t.invert, rotationX: t.rotationX || 0, rotationY: t.rotationY || 0, rotationZ: t.rotationZ || 0, lineWeight: e }, r = this.Ee(0, 0, 1, e, B);
780
- return this.ge(r, s, i), r.bezierStartPoint = [A.x1, A.y1], r.bezierControlPoint1 = [A.cp1x, A.cp1y], r.bezierControlPoint2 = [A.cp2x, A.cp2y], r.bezierEndPoint = [A.x2, A.y2], this.ee._t(r);
810
+ bt(A, t) {
811
+ const e = t.lineWeight || 1, s = W(0.5, A.x1, A.cp1x, A.cp2x, A.x2), i = W(0.5, A.y1, A.cp1y, A.cp2y, A.y2), B = { character: t.character, charColor: t.charColor, bgColor: t.bgColor, charRotation: t.charRotation, flipHorizontally: t.flipHorizontally, flipVertically: t.flipVertically, invert: t.invert, rotationX: t.rotationX || 0, rotationY: t.rotationY || 0, rotationZ: t.rotationZ || 0, lineWeight: e }, r = this.oe(0, 0, 1, e, B);
812
+ return this.he(r, s, i), r.bezierStartPoint = [A.x1, A.y1], r.bezierControlPoint1 = [A.cp1x, A.cp1y], r.bezierControlPoint2 = [A.cp2x, A.cp2y], r.bezierEndPoint = [A.x2, A.y2], this.Be.bt(r);
781
813
  }
782
814
  }
783
815
  class uA {
784
816
  constructor(A) {
785
- Q(this, "wA");
786
- Q(this, "oe", null);
787
- Q(this, "ae");
788
- Q(this, "he", null);
789
- Q(this, "ce", {});
790
- Q(this, "Ce", null);
791
- Q(this, "le", /* @__PURE__ */ new Map());
792
- Q(this, "De");
793
- Q(this, "Pe");
794
- Q(this, "ue");
795
- Q(this, "K", []);
796
- this.wA = A, this.ae = new eA(A), this.ue = new X(), this.De = new iA(A, this), this.Pe = new BA(), this.Ce = A.createBuffer(), F(this.wA, [0, 0, this.wA.canvas.width, this.wA.canvas.height]);
797
- }
798
- Ie(A) {
799
- let t = this.le.get(A);
817
+ n(this, "wA");
818
+ n(this, "ce", null);
819
+ n(this, "le");
820
+ n(this, "Ce", null);
821
+ n(this, "De", {});
822
+ n(this, "Pe", null);
823
+ n(this, "ue", /* @__PURE__ */ new Map());
824
+ n(this, "Ie");
825
+ n(this, "we");
826
+ n(this, "fe");
827
+ n(this, "K", []);
828
+ this.wA = A, this.le = new eA(A), this.fe = new J(), this.Ie = new iA(A, this), this.we = new BA(), this.Pe = A.createBuffer(), F(this.wA, [0, 0, this.wA.canvas.width, this.wA.canvas.height]);
829
+ }
830
+ de(A) {
831
+ let t = this.ue.get(A);
800
832
  if (t) return t;
801
833
  const e = new rA(this.wA);
802
- return t = (0, { [D.RECTANGLE]: () => new QA(this.wA, e), [D.LINE]: () => new oA(this.wA, e), [D.ELLIPSE]: () => new aA(this.wA, e), [D.ARC]: () => new cA(this.wA, e), [D.TRIANGLE]: () => new CA(this.wA, e), [D.BEZIER_CURVE]: () => new PA(this.wA, e) }[A])(), this.le.set(A, t), t;
834
+ return t = (0, { [D.RECTANGLE]: () => new QA(this.wA, e), [D.LINE]: () => new oA(this.wA, e), [D.ELLIPSE]: () => new aA(this.wA, e), [D.ARC]: () => new cA(this.wA, e), [D.TRIANGLE]: () => new CA(this.wA, e), [D.BEZIER_CURVE]: () => new PA(this.wA, e) }[A])(), this.ue.set(A, t), t;
803
835
  }
804
- we(A) {
805
- this.oe !== A && (this.oe = A, A.HA());
836
+ pe(A) {
837
+ this.ce !== A && (this.ce = A, A.KA());
806
838
  }
807
- fe(A, t) {
808
- return this.ae.st(A, t);
839
+ _e(A, t) {
840
+ return this.le.Qt(A, t);
809
841
  }
810
- At() {
811
- return this.ae.At();
842
+ st() {
843
+ return this.le.st();
812
844
  }
813
845
  YA() {
814
- return this.ae.YA();
846
+ return this.le.YA();
815
847
  }
816
- tt() {
817
- return this.ae.tt();
848
+ it() {
849
+ return this.le.it();
818
850
  }
819
- de(A) {
820
- this.he = A, A && (this.ce = {});
851
+ me(A) {
852
+ this.Ce = A, A && (this.De = {});
821
853
  }
822
- VA(A, t) {
823
- this.ce[A] = t;
854
+ ZA(A, t) {
855
+ this.De[A] = t;
824
856
  }
825
- _e(A) {
826
- Object.assign(this.ce, A);
857
+ ve(A) {
858
+ Object.assign(this.De, A);
827
859
  }
828
- et(A) {
829
- return this.ae.et(A);
860
+ Bt(A) {
861
+ return this.le.Bt(A);
830
862
  }
831
- pe(A, t, e, s, i) {
832
- const B = this.At(), r = { l: A.textures[0], m: A.textures[1], n: A.textures[2], o: A.textures[3], p: A.textures[4], q: [A.width, A.height] };
833
- this.Pe.Ft(t, e, s, i, B, r, this.ue);
863
+ ye(A, t, e, s, i) {
864
+ const B = this.st(), r = { l: A.textures[0], m: A.textures[1], n: A.textures[2], o: A.textures[3], p: A.textures[4], q: [A.width, A.height] };
865
+ this.we.kt(t, e, s, i, B, r, this.fe);
834
866
  }
835
- me(A, t, e, s) {
867
+ be(A, t, e, s) {
836
868
  var C;
837
- const i = this.wA, B = i.canvas.width, r = i.canvas.height, n = A / B * 2 - 1, o = (A + e) / B * 2 - 1, a = 1 - t / r * 2, g = 1 - (t + s) / r * 2, h = new Float32Array([n, g, o, g, n, a, o, g, o, a, n, a]);
838
- i.bindBuffer(i.ARRAY_BUFFER, this.Ce), i.bufferData(i.ARRAY_BUFFER, h, i.DYNAMIC_DRAW);
839
- const c = ((C = this.oe) == null ? void 0 : C.XA) || i.getParameter(i.CURRENT_PROGRAM), l = c ? i.getAttribLocation(c, "a_position") : -1;
869
+ const i = this.wA, B = i.canvas.width, r = i.canvas.height, Q = A / B * 2 - 1, o = (A + e) / B * 2 - 1, g = 1 - t / r * 2, a = 1 - (t + s) / r * 2, h = new Float32Array([Q, a, o, a, Q, g, o, a, o, g, Q, g]);
870
+ i.bindBuffer(i.ARRAY_BUFFER, this.Pe), i.bufferData(i.ARRAY_BUFFER, h, i.DYNAMIC_DRAW);
871
+ const c = ((C = this.ce) == null ? void 0 : C.At) || i.getParameter(i.CURRENT_PROGRAM), l = c ? i.getAttribLocation(c, "a_position") : -1;
840
872
  l !== -1 && (i.enableVertexAttribArray(l), i.vertexAttribPointer(l, 2, i.FLOAT, !1, 8, 0)), i.drawArrays(i.TRIANGLES, 0, 6), l !== -1 && i.disableVertexAttribArray(l);
841
873
  }
842
- ve(A, t, e, s) {
843
- this.he ? (this.Pe.Ft(A, t, e, s, this.he, { ...this.ce }, this.ue), this.he = null, this.ce = {}) : this.Pe.Yt(A, t, e, s, this.ue);
874
+ $e(A, t, e, s) {
875
+ this.Ce ? (this.we.kt(A, t, e, s, this.Ce, { ...this.De }, this.fe), this.Ce = null, this.De = {}) : this.we.St(A, t, e, s, this.fe);
844
876
  }
845
- ye(A, t, e, s) {
846
- this.Pe.Rt(A, t, e, s, this.ue.lineWeight, this.ue);
877
+ Ge(A, t, e, s) {
878
+ this.we.zt(A, t, e, s, this.fe.lineWeight, this.fe);
847
879
  }
848
- be(A, t, e, s) {
849
- this.Pe.St(A, t, e, s, this.ue);
880
+ xe(A, t, e, s) {
881
+ this.we.Lt(A, t, e, s, this.fe);
850
882
  }
851
- $e(A, t, e, s, i, B) {
852
- this.Pe.zt(A, t, e, s, i, B, this.ue);
883
+ Me(A, t, e, s, i, B) {
884
+ this.we.Tt(A, t, e, s, i, B, this.fe);
853
885
  }
854
- Ge(A, t, e, s, i, B, r, n) {
855
- const o = this.ue.lineWeight;
856
- this.Pe.Lt(A, t, e, s, i, B, r, n, o, this.ue);
886
+ Ye(A, t, e, s, i, B, r, Q) {
887
+ const o = this.fe.lineWeight;
888
+ this.we.Ut(A, t, e, s, i, B, r, Q, o, this.fe);
857
889
  }
858
- Me(A, t, e = 1, s = {}) {
890
+ Fe(A, t, e = 1, s = {}) {
859
891
  return new U(this.wA, A, t, e, s, this, !0);
860
892
  }
861
- xe(A, t, e, s, i, B) {
862
- this.Pe.kt(A, t, e, s, i, B, this.ue);
893
+ Re(A, t, e, s, i, B) {
894
+ this.we.Ot(A, t, e, s, i, B, this.fe);
863
895
  }
864
- Ye(A, t = A, e = A, s = 255) {
865
- this.state.DA(A, t, e, s), this.Ot(A / 255, t / 255, e / 255, s / 255);
896
+ Se(A, t = A, e = A, s = 255) {
897
+ this.state.DA(A, t, e, s), this.Wt(A / 255, t / 255, e / 255, s / 255);
866
898
  }
867
- Ot(A = 0, t = 0, e = 0, s = 0) {
899
+ Wt(A = 0, t = 0, e = 0, s = 0) {
868
900
  this.wA.clearColor(A, t, e, s), this.wA.clear(this.wA.COLOR_BUFFER_BIT);
869
901
  }
870
- Fe() {
902
+ ke() {
871
903
  this.wA.viewport(0, 0, this.wA.canvas.width, this.wA.canvas.height), F(this.wA, [0, 0, this.wA.canvas.width, this.wA.canvas.height]);
872
904
  }
873
905
  get context() {
874
906
  return this.wA;
875
907
  }
876
908
  get state() {
877
- return this.ue;
909
+ return this.fe;
878
910
  }
879
911
  RA(A) {
880
- this.K.push(this.ue), this.ue = A;
912
+ this.K.push(this.fe), this.fe = A;
881
913
  }
882
914
  SA() {
883
915
  const A = this.K.pop();
884
- A && (this.ue = A);
916
+ A && (this.fe = A);
885
917
  }
886
918
  FA(A) {
887
919
  const t = A, e = G(this.wA) ?? this.wA.getParameter(this.wA.VIEWPORT), s = { shader: t, gl: this.wA, viewport: e };
888
- this.we(t);
920
+ this.pe(t);
889
921
  const i = /* @__PURE__ */ new Set();
890
- for (const B of this.Pe) B.type === D.CUSTOM ? i.add(D.RECTANGLE) : i.add(B.type);
891
- for (const B of i) B !== D.CUSTOM && this.Ie(B);
892
- this.De.Ct(s, this.Pe, this.le), this.Pe.Ot();
922
+ for (const B of this.we) B.type === D.CUSTOM ? i.add(D.RECTANGLE) : i.add(B.type);
923
+ for (const B of i) B !== D.CUSTOM && this.de(B);
924
+ this.Ie.Pt(s, this.we, this.ue), this.we.Wt();
893
925
  }
894
926
  kA() {
895
- this.wA.deleteBuffer(this.Ce), this.Pe.Ot();
896
- for (const A of this.le.values()) A.kA();
897
- this.ae.kA();
927
+ this.wA.deleteBuffer(this.Pe), this.we.Wt();
928
+ for (const A of this.ue.values()) A.kA();
929
+ this.le.kA();
898
930
  }
899
931
  }
900
932
  const u = { readShort: (E, A) => (u.t.uint16[0] = E[A] << 8 | E[A + 1], u.t.int16[0]), readUshort: (E, A) => E[A] << 8 | E[A + 1], readUshorts(E, A, t) {
@@ -917,18 +949,18 @@ const u = { readShort: (E, A) => (u.t.uint16[0] = E[A] << 8 | E[A + 1], u.t.int1
917
949
  const s = u, i = s.readUshort, B = i(E, A += 2);
918
950
  A += 2;
919
951
  const r = [];
920
- for (let n = 0; n < B; n++) {
921
- const o = i(E, A), a = i(E, A += 2);
952
+ for (let Q = 0; Q < B; Q++) {
953
+ const o = i(E, A), g = i(E, A += 2);
922
954
  A += 2;
923
- const g = s.readUint(E, A);
955
+ const a = s.readUint(E, A);
924
956
  A += 4;
925
- const h = `p${o}e${a}`;
926
- let c = r.indexOf(g);
957
+ const h = `p${o}e${g}`;
958
+ let c = r.indexOf(a);
927
959
  if (c === -1) {
928
960
  let l;
929
- c = e.tables.length, r.push(g);
930
- const C = i(E, g);
931
- l = C === 4 ? this.parse4(E, g) : C === 12 ? this.parse12(E, g) : { format: C }, e.tables.push(l);
961
+ c = e.tables.length, r.push(a);
962
+ const C = i(E, a);
963
+ l = C === 4 ? this.parse4(E, a) : C === 12 ? this.parse12(E, a) : { format: C }, e.tables.push(l);
932
964
  }
933
965
  e.ids[h] = c;
934
966
  }
@@ -936,10 +968,10 @@ const u = { readShort: (E, A) => (u.t.uint16[0] = E[A] << 8 | E[A + 1], u.t.int1
936
968
  }, parse4(E, A) {
937
969
  const t = u, e = t.readUshort, s = t.readUshorts, i = A, B = e(E, A += 2);
938
970
  A += 2;
939
- const r = e(E, A += 2) >>> 1, n = { format: 4, searchRange: e(E, A += 2), entrySelector: 0, rangeShift: 0, endCount: [], startCount: [], idDelta: [], idRangeOffset: [], glyphIdArray: [] };
940
- A += 2, n.entrySelector = e(E, A), A += 2, n.rangeShift = e(E, A), A += 2, n.endCount = s(E, A, r), A += 2 * r, A += 2, n.startCount = s(E, A, r), A += 2 * r;
941
- for (let o = 0; o < r; o++) n.idDelta.push(t.readShort(E, A)), A += 2;
942
- return n.idRangeOffset = s(E, A, r), A += 2 * r, n.glyphIdArray = s(E, A, i + B - A >> 1), n;
971
+ const r = e(E, A += 2) >>> 1, Q = { format: 4, searchRange: e(E, A += 2), entrySelector: 0, rangeShift: 0, endCount: [], startCount: [], idDelta: [], idRangeOffset: [], glyphIdArray: [] };
972
+ A += 2, Q.entrySelector = e(E, A), A += 2, Q.rangeShift = e(E, A), A += 2, Q.endCount = s(E, A, r), A += 2 * r, A += 2, Q.startCount = s(E, A, r), A += 2 * r;
973
+ for (let o = 0; o < r; o++) Q.idDelta.push(t.readShort(E, A)), A += 2;
974
+ return Q.idRangeOffset = s(E, A, r), A += 2 * r, Q.glyphIdArray = s(E, A, i + B - A >> 1), Q;
943
975
  }, parse12(E, A) {
944
976
  const t = u.readUint;
945
977
  t(E, A += 4), t(E, A += 4);
@@ -948,7 +980,7 @@ const u = { readShort: (E, A) => (u.t.uint16[0] = E[A] << 8 | E[A + 1], u.t.int1
948
980
  const s = new Uint32Array(3 * e);
949
981
  for (let i = 0; i < 3 * e; i += 3) s[i] = t(E, A + (i << 2)), s[i + 1] = t(E, A + (i << 2) + 4), s[i + 2] = t(E, A + (i << 2) + 8);
950
982
  return { format: 12, groups: s };
951
- } }, IA = { parseTab(E, A, t) {
983
+ } }, fA = { parseTab(E, A, t) {
952
984
  const e = u;
953
985
  A += 18;
954
986
  const s = e.readUshort(E, A);
@@ -959,39 +991,39 @@ const u = { readShort: (E, A) => (u.t.uint16[0] = E[A] << 8 | E[A + 1], u.t.int1
959
991
  A += 2;
960
992
  const r = e.readShort(E, A);
961
993
  A += 2;
962
- const n = e.readShort(E, A);
963
- return A += 2, A += 6, { unitsPerEm: s, xMin: i, yMin: B, xMax: r, yMax: n, indexToLocFormat: e.readShort(E, A) };
964
- } }, fA = { parseTab(E, A, t) {
994
+ const Q = e.readShort(E, A);
995
+ return A += 2, A += 6, { unitsPerEm: s, xMin: i, yMin: B, xMax: r, yMax: Q, indexToLocFormat: e.readShort(E, A) };
996
+ } }, IA = { parseTab(E, A, t) {
965
997
  const e = u;
966
998
  A += 4;
967
999
  const s = ["ascender", "descender", "lineGap", "advanceWidthMax", "minLeftSideBearing", "minRightSideBearing", "xMaxExtent", "caretSlopeRise", "caretSlopeRun", "caretOffset", "res0", "res1", "res2", "res3", "metricDataFormat", "numberOfHMetrics"], i = {};
968
1000
  for (let B = 0; B < s.length; B++) {
969
- const r = s[B], n = r === "advanceWidthMax" || r === "numberOfHMetrics" ? e.readUshort : e.readShort;
970
- i[r] = n(E, A + 2 * B);
1001
+ const r = s[B], Q = r === "advanceWidthMax" || r === "numberOfHMetrics" ? e.readUshort : e.readShort;
1002
+ i[r] = Q(E, A + 2 * B);
971
1003
  }
972
1004
  return i;
973
1005
  } }, dA = { parseTab(E, A, t, e) {
974
- const s = u, i = [], B = [], r = e.maxp.numGlyphs, n = e.hhea.numberOfHMetrics;
975
- let o = 0, a = 0, g = 0;
976
- for (; g < n; ) o = s.readUshort(E, A + (g << 2)), a = s.readShort(E, A + (g << 2) + 2), i.push(o), B.push(a), g++;
977
- for (; g < r; ) i.push(o), B.push(a), g++;
1006
+ const s = u, i = [], B = [], r = e.maxp.numGlyphs, Q = e.hhea.numberOfHMetrics;
1007
+ let o = 0, g = 0, a = 0;
1008
+ for (; a < Q; ) o = s.readUshort(E, A + (a << 2)), g = s.readShort(E, A + (a << 2) + 2), i.push(o), B.push(g), a++;
1009
+ for (; a < r; ) i.push(o), B.push(g), a++;
978
1010
  return { aWidth: i, lsBearing: B };
979
- } }, N = { cmap: wA, head: IA, hhea: fA, maxp: { parseTab(E, A, t) {
1011
+ } }, V = { cmap: wA, head: fA, hhea: IA, maxp: { parseTab(E, A, t) {
980
1012
  const e = u;
981
1013
  return e.readUint(E, A), A += 4, { numGlyphs: e.readUshort(E, A) };
982
1014
  } }, hmtx: dA, loca: { parseTab(E, A, t, e) {
983
1015
  const s = u, i = [], B = e.head.indexToLocFormat, r = e.maxp.numGlyphs + 1;
984
- if (B === 0) for (let n = 0; n < r; n++) i.push(s.readUshort(E, A + (n << 1)) << 1);
985
- else if (B === 1) for (let n = 0; n < r; n++) i.push(s.readUint(E, A + (n << 2)));
1016
+ if (B === 0) for (let Q = 0; Q < r; Q++) i.push(s.readUshort(E, A + (Q << 1)) << 1);
1017
+ else if (B === 1) for (let Q = 0; Q < r; Q++) i.push(s.readUint(E, A + (Q << 2)));
986
1018
  return i;
987
1019
  } }, glyf: { parseTab(E, A, t, e) {
988
1020
  const s = [], i = e.maxp.numGlyphs;
989
1021
  for (let B = 0; B < i; B++) s.push(null);
990
1022
  return s;
991
- }, Re(E, A) {
992
- const t = u, e = E.Se, s = E.loca;
1023
+ }, ze(E, A) {
1024
+ const t = u, e = E.Le, s = E.loca;
993
1025
  if (s[A] === s[A + 1]) return null;
994
- const i = m.findTable(e, "glyf", E.ke);
1026
+ const i = m.findTable(e, "glyf", E.Oe);
995
1027
  if (!i) return null;
996
1028
  let B = i[0] + s[A];
997
1029
  const r = {};
@@ -999,9 +1031,9 @@ const u = { readShort: (E, A) => (u.t.uint16[0] = E[A] << 8 | E[A + 1], u.t.int1
999
1031
  if (r.noc > 0) {
1000
1032
  r.endPts = [];
1001
1033
  for (let h = 0; h < r.noc; h++) r.endPts.push(t.readUshort(e, B)), B += 2;
1002
- const n = t.readUshort(e, B);
1003
- if (B += 2, e.length - B < n) return null;
1004
- B += n;
1034
+ const Q = t.readUshort(e, B);
1035
+ if (B += 2, e.length - B < Q) return null;
1036
+ B += Q;
1005
1037
  const o = r.endPts[r.noc - 1] + 1;
1006
1038
  r.flags = [];
1007
1039
  for (let h = 0; h < o; h++) {
@@ -1022,18 +1054,18 @@ const u = { readShort: (E, A) => (u.t.uint16[0] = E[A] << 8 | E[A + 1], u.t.int1
1022
1054
  const c = r.flags[h], l = !!(32 & c);
1023
1055
  4 & c ? (r.ys.push(l ? e[B] : -e[B]), B++) : l ? r.ys.push(0) : (r.ys.push(t.readShort(e, B)), B += 2);
1024
1056
  }
1025
- let a = 0, g = 0;
1026
- for (let h = 0; h < o; h++) a += r.xs[h], g += r.ys[h], r.xs[h] = a, r.ys[h] = g;
1057
+ let g = 0, a = 0;
1058
+ for (let h = 0; h < o; h++) g += r.xs[h], a += r.ys[h], r.xs[h] = g, r.ys[h] = a;
1027
1059
  } else r.parts = [], r.endPts = [], r.flags = [], r.xs = [], r.ys = [];
1028
1060
  return r;
1029
1061
  } } }, m = { parse: (E) => [((A, t, e, s) => {
1030
- const i = N, B = { Se: A, ze: t, ke: e };
1062
+ const i = V, B = { Le: A, Te: t, Oe: e };
1031
1063
  for (const r in i) {
1032
- const n = r, o = m.findTable(A, n, e);
1064
+ const Q = r, o = m.findTable(A, Q, e);
1033
1065
  if (o) {
1034
- const [a, g] = o;
1035
- let h = s[a];
1036
- h == null && (h = i[n].parseTab(A, a, g, B), s[a] = h), B[n] = h;
1066
+ const [g, a] = o;
1067
+ let h = s[g];
1068
+ h == null && (h = i[Q].parseTab(A, g, a, B), s[g] = h), B[Q] = h;
1037
1069
  }
1038
1070
  }
1039
1071
  return B;
@@ -1043,45 +1075,45 @@ const u = { readShort: (E, A) => (u.t.uint16[0] = E[A] << 8 | E[A + 1], u.t.int1
1043
1075
  for (let B = 0; B < s; B++) {
1044
1076
  const r = e.readASCII(E, i, 4);
1045
1077
  e.readUint(E, i + 4);
1046
- const n = e.readUint(E, i + 8), o = e.readUint(E, i + 12);
1047
- if (r === A) return [n, o];
1078
+ const Q = e.readUint(E, i + 8), o = e.readUint(E, i + 12);
1079
+ if (r === A) return [Q, o];
1048
1080
  i += 16;
1049
1081
  }
1050
1082
  return null;
1051
- }, T: N, B: u };
1083
+ }, T: V, B: u };
1052
1084
  class _ {
1053
1085
  constructor() {
1054
- Q(this, "Le", /* @__PURE__ */ new Map());
1055
- Q(this, "Oe", /* @__PURE__ */ new Map());
1086
+ n(this, "Ue", /* @__PURE__ */ new Map());
1087
+ n(this, "We", /* @__PURE__ */ new Map());
1056
1088
  }
1057
- Te(A, t) {
1058
- const e = `${this.Ue(A)}_${t}`;
1059
- if (this.Le.has(e)) return this.Le.get(e);
1089
+ He(A, t) {
1090
+ const e = `${this.Ke(A)}_${t}`;
1091
+ if (this.Ue.has(e)) return this.Ue.get(e);
1060
1092
  const s = A.cmap;
1061
- if (!s || !s.tables) return this.Le.set(e, 0), 0;
1093
+ if (!s || !s.tables) return this.Ue.set(e, 0), 0;
1062
1094
  let i = 0;
1063
- for (const B of s.tables) if (B.format === 4 ? i = this.We(t, B) : B.format === 12 && (i = this.He(t, B)), i > 0) break;
1064
- return this.Le.set(e, i), i;
1095
+ for (const B of s.tables) if (B.format === 4 ? i = this.Je(t, B) : B.format === 12 && (i = this.Ve(t, B)), i > 0) break;
1096
+ return this.Ue.set(e, i), i;
1065
1097
  }
1066
- Ke(A, t) {
1098
+ Ze(A, t) {
1067
1099
  const e = t.codePointAt(0);
1068
- return e === void 0 ? 0 : this.Te(A, e);
1100
+ return e === void 0 ? 0 : this.He(A, e);
1069
1101
  }
1070
- Je(A, t) {
1102
+ Ne(A, t) {
1071
1103
  const e = A.hmtx;
1072
1104
  return e && e.aWidth && e.aWidth.length !== 0 ? t < e.aWidth.length ? e.aWidth[t] : e.aWidth[e.aWidth.length - 1] : 0;
1073
1105
  }
1074
- Ve(A, t) {
1106
+ Xe(A, t) {
1075
1107
  const e = t / A.head.unitsPerEm, s = A.hhea.ascender * e, i = A.hhea.descender * e, B = A.hhea.lineGap * e;
1076
1108
  return { ascender: s, descender: i, lineGap: B, lineHeight: s - i + B, unitsPerEm: A.head.unitsPerEm, scale: e };
1077
1109
  }
1078
- Ze() {
1079
- this.Le.clear(), this.Oe.clear();
1110
+ je() {
1111
+ this.Ue.clear(), this.We.clear();
1080
1112
  }
1081
- Ue(A) {
1082
- return `${A.ke}_${A.Se.length}`;
1113
+ Ke(A) {
1114
+ return `${A.Oe}_${A.Le.length}`;
1083
1115
  }
1084
- We(A, t) {
1116
+ Je(A, t) {
1085
1117
  const e = t.endCount.length;
1086
1118
  let s = -1;
1087
1119
  for (let i = 0; i < e; i++) if (A <= t.endCount[i]) {
@@ -1099,7 +1131,7 @@ class _ {
1099
1131
  }
1100
1132
  return 0;
1101
1133
  }
1102
- He(A, t) {
1134
+ Ve(A, t) {
1103
1135
  const e = t.groups.length / 3;
1104
1136
  for (let s = 0; s < e; s++) {
1105
1137
  const i = t.groups[3 * s], B = t.groups[3 * s + 1], r = t.groups[3 * s + 2];
@@ -1110,43 +1142,43 @@ class _ {
1110
1142
  }
1111
1143
  class pA {
1112
1144
  constructor(A) {
1113
- Q(this, "Ne");
1114
- this.Ne = A;
1145
+ n(this, "qe");
1146
+ this.qe = A;
1115
1147
  }
1116
- Xe(A) {
1148
+ As(A) {
1117
1149
  var e;
1118
1150
  const t = [];
1119
1151
  return (e = A.cmap) != null && e.tables ? (A.cmap.tables.forEach((s) => {
1120
1152
  if (s.format === 4) {
1121
- const i = this.je(s);
1153
+ const i = this.ts(s);
1122
1154
  t.push(...i);
1123
1155
  } else if (s.format === 12) {
1124
- const i = this.qe(s);
1156
+ const i = this.es(s);
1125
1157
  t.push(...i);
1126
1158
  }
1127
1159
  }), [...new Set(t)]) : [];
1128
1160
  }
1129
- As(A, t) {
1130
- return this.Ne.Ke(A, t) > 0;
1161
+ ss(A, t) {
1162
+ return this.qe.Ze(A, t) > 0;
1131
1163
  }
1132
- ts(A, t) {
1133
- for (const e of t) if (!this.As(A, e)) return !1;
1164
+ Bs(A, t) {
1165
+ for (const e of t) if (!this.ss(A, e)) return !1;
1134
1166
  return !0;
1135
1167
  }
1136
- es(A, t) {
1137
- return t.filter((e) => this.As(A, e));
1168
+ Qs(A, t) {
1169
+ return t.filter((e) => this.ss(A, e));
1138
1170
  }
1139
- ss(A) {
1140
- return A.filter((t) => this.Bs(t));
1171
+ Es(A) {
1172
+ return A.filter((t) => this.rs(t));
1141
1173
  }
1142
- je(A) {
1174
+ ts(A) {
1143
1175
  const t = [];
1144
1176
  if (!(A.startCount && A.endCount && A.idRangeOffset && A.idDelta)) return t;
1145
1177
  for (let e = 0; e < A.startCount.length; e++) {
1146
1178
  const s = A.startCount[e], i = A.endCount[e];
1147
1179
  if (s !== 65535 || i !== 65535) {
1148
1180
  for (let B = s; B <= i; B++)
1149
- if (this.Qs(A, B, e) > 0) try {
1181
+ if (this.ns(A, B, e) > 0) try {
1150
1182
  const r = String.fromCodePoint(B);
1151
1183
  t.push(r);
1152
1184
  } catch {
@@ -1155,21 +1187,21 @@ class pA {
1155
1187
  }
1156
1188
  return t;
1157
1189
  }
1158
- qe(A) {
1190
+ es(A) {
1159
1191
  const t = [];
1160
1192
  if (!A.groups) return t;
1161
1193
  for (let e = 0; e < A.groups.length; e += 3) {
1162
1194
  const s = A.groups[e], i = A.groups[e + 1], B = A.groups[e + 2];
1163
1195
  for (let r = s; r <= i; r++)
1164
1196
  if (B + (r - s) > 0) try {
1165
- const n = String.fromCodePoint(r);
1166
- t.push(n);
1197
+ const Q = String.fromCodePoint(r);
1198
+ t.push(Q);
1167
1199
  } catch {
1168
1200
  }
1169
1201
  }
1170
1202
  return t;
1171
1203
  }
1172
- Qs(A, t, e) {
1204
+ ns(A, t, e) {
1173
1205
  if (A.idRangeOffset[e] === 0) return t + A.idDelta[e] & 65535;
1174
1206
  {
1175
1207
  const s = A.idRangeOffset[e] / 2 + (t - A.startCount[e]) - (A.startCount.length - e);
@@ -1180,278 +1212,278 @@ class pA {
1180
1212
  }
1181
1213
  return 0;
1182
1214
  }
1183
- Bs(A) {
1215
+ rs(A) {
1184
1216
  const t = A.codePointAt(0) || 0;
1185
1217
  return !(t >= 0 && t <= 31 && t !== 9 && t !== 10 && t !== 13 || t >= 127 && t <= 159);
1186
1218
  }
1187
1219
  }
1188
1220
  class mA {
1189
1221
  constructor() {
1190
- Q(this, "Es");
1222
+ n(this, "gs");
1191
1223
  const A = new _();
1192
- this.Es = new pA(A);
1224
+ this.gs = new pA(A);
1193
1225
  }
1194
1226
  extractCharacters(A) {
1195
- return this.Es.Xe(A);
1227
+ return this.gs.As(A);
1196
1228
  }
1197
1229
  filterProblematicCharacters(A) {
1198
- return this.Es.ss(A);
1230
+ return this.gs.Es(A);
1199
1231
  }
1200
1232
  characterExists(A, t) {
1201
- return this.Es.As(A, t);
1233
+ return this.gs.ss(A, t);
1202
1234
  }
1203
1235
  allCharactersExist(A, t) {
1204
- return this.Es.ts(A, t);
1236
+ return this.gs.Bs(A, t);
1205
1237
  }
1206
1238
  }
1207
- class vA {
1239
+ class yA {
1208
1240
  constructor(A) {
1209
- Q(this, "rs");
1210
- Q(this, "ns");
1211
- Q(this, "vA");
1212
- Q(this, "gs");
1213
- this.vA = A, this.gs = new _(), this.rs = document.createElement("canvas"), this.ns = this.rs.getContext("2d", { willReadFrequently: !0, alpha: !1 });
1241
+ n(this, "hs");
1242
+ n(this, "cs");
1243
+ n(this, "vA");
1244
+ n(this, "ls");
1245
+ this.vA = A, this.ls = new _(), this.hs = document.createElement("canvas"), this.cs = this.hs.getContext("2d", { willReadFrequently: !0, alpha: !1 });
1214
1246
  }
1215
1247
  createTextureAtlas(A, t, e, s) {
1216
- const i = A.length, B = Math.ceil(Math.sqrt(i)), r = Math.ceil(i / B), n = t.width * B, o = t.height * r, a = typeof s == "object" ? s : null;
1217
- this.hs(n, o), this.cs(A, t, B, e, a);
1218
- const g = this.vA.Me(n, o, 1, { filter: "nearest" });
1219
- return g.MA(this.rs), { framebuffer: g, columns: B, rows: r };
1248
+ const i = A.length, B = Math.ceil(Math.sqrt(i)), r = Math.ceil(i / B), Q = t.width * B, o = t.height * r, g = typeof s == "object" ? s : null;
1249
+ this.Cs(Q, o), this.Ds(A, t, B, e, g);
1250
+ const a = this.vA.Fe(Q, o, 1, { filter: "nearest" });
1251
+ return a.xA(this.hs), { framebuffer: a, columns: B, rows: r };
1220
1252
  }
1221
- hs(A, t) {
1222
- this.rs.width = A, this.rs.height = t, this.rs.style.width = A + "px", this.rs.style.height = A + "px", this.ns.imageSmoothingEnabled = !1, this.rs.style.imageRendering = "pixelated", this.ns.fillStyle = "black", this.ns.fillRect(0, 0, A, t), this.ns.textBaseline = "top", this.ns.textAlign = "left", this.ns.fillStyle = "white";
1253
+ Cs(A, t) {
1254
+ this.hs.width = A, this.hs.height = t, this.hs.style.width = A + "px", this.hs.style.height = A + "px", this.cs.imageSmoothingEnabled = !1, this.hs.style.imageRendering = "pixelated", this.cs.fillStyle = "black", this.cs.fillRect(0, 0, A, t), this.cs.textBaseline = "top", this.cs.textAlign = "left", this.cs.fillStyle = "white";
1223
1255
  }
1224
- cs(A, t, e, s, i) {
1256
+ Ds(A, t, e, s, i) {
1225
1257
  const B = s / i.head.unitsPerEm;
1226
1258
  for (let r = 0; r < A.length; r++) {
1227
- const n = r % e, o = Math.floor(r / e), a = A[r].character, g = this.Cs(i, a);
1228
- if (!g) continue;
1229
- const h = a.codePointAt(0) || 0, c = this.gs.Te(i, h), l = this.ls(i, c) * B, C = n * t.width, f = o * t.height, w = C + 0.5 * t.width, d = f + 0.5 * t.height, p = Math.round(w - 0.5 * t.width), R = Math.round(d - 0.5 * s), Z = p + 0.5 * (t.width - l), j = R + i.hhea.ascender * B;
1230
- this.Ds(g, Z, j, B);
1259
+ const Q = r % e, o = Math.floor(r / e), g = A[r].character, a = this.Ps(i, g);
1260
+ if (!a) continue;
1261
+ const h = g.codePointAt(0) || 0, c = this.ls.He(i, h), l = this.us(i, c) * B, C = Q * t.width, I = o * t.height, w = C + 0.5 * t.width, d = I + 0.5 * t.height, p = Math.round(w - 0.5 * t.width), x = Math.round(d - 0.5 * s), Z = p + 0.5 * (t.width - l), j = x + i.hhea.ascender * B;
1262
+ this.Is(a, Z, j, B);
1231
1263
  }
1232
1264
  }
1233
- Cs(A, t) {
1234
- const e = t.codePointAt(0) || 0, s = this.gs.Te(A, e);
1265
+ Ps(A, t) {
1266
+ const e = t.codePointAt(0) || 0, s = this.ls.He(A, e);
1235
1267
  if (s === 0) return null;
1236
1268
  if (A.glyf && A.glyf[s] !== null) return A.glyf[s];
1237
1269
  if (m && m.T && m.T.glyf) {
1238
- const i = m.T.glyf.Re(A, s);
1270
+ const i = m.T.glyf.ze(A, s);
1239
1271
  return A.glyf && i && (A.glyf[s] = i), i;
1240
1272
  }
1241
1273
  return null;
1242
1274
  }
1243
- ls(A, t) {
1275
+ us(A, t) {
1244
1276
  const e = A.hmtx;
1245
1277
  return e && e.aWidth ? t < e.aWidth.length ? e.aWidth[t] : e.aWidth[e.aWidth.length - 1] : 0;
1246
1278
  }
1247
- Ds(A, t, e, s) {
1279
+ Is(A, t, e, s) {
1248
1280
  if (!A || !A.xs || A.noc === 0) return;
1249
- const { xs: i, ys: B, endPts: r, flags: n } = A;
1250
- if (!(i && B && r && n)) return;
1251
- this.ns.beginPath();
1281
+ const { xs: i, ys: B, endPts: r, flags: Q } = A;
1282
+ if (!(i && B && r && Q)) return;
1283
+ this.cs.beginPath();
1252
1284
  let o = 0;
1253
- for (let a = 0; a < r.length; a++) {
1254
- const g = r[a];
1255
- if (!(g < o)) {
1256
- if (g >= o) {
1285
+ for (let g = 0; g < r.length; g++) {
1286
+ const a = r[g];
1287
+ if (!(a < o)) {
1288
+ if (a >= o) {
1257
1289
  const h = t + i[o] * s, c = e - B[o] * s;
1258
- this.ns.moveTo(h, c);
1290
+ this.cs.moveTo(h, c);
1259
1291
  let l = o + 1;
1260
- for (; l <= g; )
1261
- if (1 & n[l]) {
1262
- const C = t + i[l] * s, f = e - B[l] * s;
1263
- this.ns.lineTo(C, f), l++;
1292
+ for (; l <= a; )
1293
+ if (1 & Q[l]) {
1294
+ const C = t + i[l] * s, I = e - B[l] * s;
1295
+ this.cs.lineTo(C, I), l++;
1264
1296
  } else {
1265
- const C = t + i[l] * s, f = e - B[l] * s;
1266
- let w = l + 1 > g ? o : l + 1;
1267
- if (1 & n[w]) {
1297
+ const C = t + i[l] * s, I = e - B[l] * s;
1298
+ let w = l + 1 > a ? o : l + 1;
1299
+ if (1 & Q[w]) {
1268
1300
  const d = t + i[w] * s, p = e - B[w] * s;
1269
- this.ns.quadraticCurveTo(C, f, d, p), l = w + 1;
1301
+ this.cs.quadraticCurveTo(C, I, d, p), l = w + 1;
1270
1302
  } else {
1271
- const d = (C + (t + i[w] * s)) / 2, p = (f + (e - B[w] * s)) / 2;
1272
- this.ns.quadraticCurveTo(C, f, d, p), l = w;
1303
+ const d = (C + (t + i[w] * s)) / 2, p = (I + (e - B[w] * s)) / 2;
1304
+ this.cs.quadraticCurveTo(C, I, d, p), l = w;
1273
1305
  }
1274
1306
  }
1275
- this.ns.closePath();
1307
+ this.cs.closePath();
1276
1308
  }
1277
- o = g + 1;
1309
+ o = a + 1;
1278
1310
  }
1279
1311
  }
1280
- this.ns.fill();
1312
+ this.cs.fill();
1281
1313
  }
1282
1314
  }
1283
- class yA {
1315
+ class vA {
1284
1316
  constructor() {
1285
- Q(this, "Ne");
1286
- this.Ne = new _();
1317
+ n(this, "qe");
1318
+ this.qe = new _();
1287
1319
  }
1288
1320
  calculateMaxGlyphDimensions(A, t, e) {
1289
1321
  let s = 0;
1290
- const i = this.Ne.Ve(e, t), B = i.lineHeight;
1322
+ const i = this.qe.Xe(e, t), B = i.lineHeight;
1291
1323
  for (const r of A) {
1292
- const n = this.Ne.Ke(e, r);
1293
- if (n === 0) continue;
1294
- const o = this.Ne.Je(e, n) * i.scale;
1324
+ const Q = this.qe.Ze(e, r);
1325
+ if (Q === 0) continue;
1326
+ const o = this.qe.Ne(e, Q) * i.scale;
1295
1327
  s = Math.max(s, o);
1296
1328
  }
1297
1329
  return { width: Math.ceil(s), height: Math.ceil(B) };
1298
1330
  }
1299
1331
  getCharacterAdvanceWidth(A, t, e) {
1300
- const s = this.Ne.Ve(e, t), i = this.Ne.Ke(e, A);
1301
- return this.Ne.Je(e, i) * s.scale;
1332
+ const s = this.qe.Xe(e, t), i = this.qe.Ze(e, A);
1333
+ return this.qe.Ne(e, i) * s.scale;
1302
1334
  }
1303
1335
  getFontMetrics(A, t) {
1304
- return this.Ne.Ve(t, A);
1336
+ return this.qe.Xe(t, A);
1305
1337
  }
1306
- Ze() {
1307
- this.Ne.Ze();
1338
+ je() {
1339
+ this.qe.je();
1308
1340
  }
1309
1341
  }
1310
- class xA {
1342
+ class RA {
1311
1343
  constructor() {
1312
- Q(this, "gs");
1313
- this.gs = new _();
1344
+ n(this, "ls");
1345
+ this.ls = new _();
1314
1346
  }
1315
1347
  createCharacterObjects(A, t) {
1316
1348
  return A.map((e, s) => {
1317
- const i = e.codePointAt(0) || 0, B = this.Ps(s);
1349
+ const i = e.codePointAt(0) || 0, B = this.ws(s);
1318
1350
  let r = 0;
1319
1351
  if (t.hmtx && t.hmtx.aWidth) {
1320
- const n = this.gs.Te(t, i);
1321
- n > 0 && t.hmtx.aWidth[n] !== void 0 && (r = t.hmtx.aWidth[n]);
1352
+ const Q = this.ls.He(t, i);
1353
+ Q > 0 && t.hmtx.aWidth[Q] !== void 0 && (r = t.hmtx.aWidth[Q]);
1322
1354
  }
1323
1355
  return { character: e, unicode: i, color: B, advanceWidth: r };
1324
1356
  });
1325
1357
  }
1326
- Ps(A) {
1358
+ ws(A) {
1327
1359
  return [A % 256 / 255, Math.floor(A / 256) % 256 / 255, Math.floor(A / 65536) % 256 / 255];
1328
1360
  }
1329
- us(A, t) {
1361
+ fs(A, t) {
1330
1362
  if (!M._(typeof A == "string", "Character must be a string.", { method: "getCharacterColor", providedValue: A })) return [0, 0, 0];
1331
1363
  const e = t.find((s) => s.character === A);
1332
1364
  return e ? e.color : [0, 0, 0];
1333
1365
  }
1334
- Is(A, t) {
1335
- return M._(typeof A == "string" && A.length > 0, "Characters must be a string with at least one character.", { method: "getCharacterColors", providedValue: A }) ? Array.from(A).map((e) => this.us(e, t) || [0, 0, 0]) : [[0, 0, 0]];
1366
+ ds(A, t) {
1367
+ return M._(typeof A == "string" && A.length > 0, "Characters must be a string with at least one character.", { method: "getCharacterColors", providedValue: A }) ? Array.from(A).map((e) => this.fs(e, t) || [0, 0, 0]) : [[0, 0, 0]];
1336
1368
  }
1337
1369
  }
1338
1370
  class bA {
1339
1371
  constructor(A, t = 16) {
1340
- Q(this, "ws");
1341
- Q(this, "fs", []);
1342
- Q(this, "ds");
1343
- Q(this, "_s", 16);
1344
- Q(this, "ps", 0);
1345
- Q(this, "vs", 0);
1346
- Q(this, "bs", { width: 0, height: 0 });
1347
- Q(this, "$s");
1348
- Q(this, "Gs");
1349
- Q(this, "Ms");
1350
- Q(this, "Ys");
1351
- Q(this, "Fs");
1352
- this._s = t, this.Gs = new mA(), this.Ms = new vA(A), this.Ys = new yA(), this.Fs = new xA();
1353
- }
1354
- async Rs(A) {
1372
+ n(this, "ps");
1373
+ n(this, "_s", []);
1374
+ n(this, "vs");
1375
+ n(this, "bs", 16);
1376
+ n(this, "$s", 0);
1377
+ n(this, "Gs", 0);
1378
+ n(this, "Ms", { width: 0, height: 0 });
1379
+ n(this, "Ys");
1380
+ n(this, "Fs");
1381
+ n(this, "Rs");
1382
+ n(this, "Ss");
1383
+ n(this, "ks");
1384
+ this.bs = t, this.Fs = new mA(), this.Rs = new yA(A), this.Ss = new vA(), this.ks = new RA();
1385
+ }
1386
+ async zs(A) {
1355
1387
  let t;
1356
1388
  if (A) {
1357
1389
  const e = await fetch(A);
1358
- if (!e.ok) throw new I(`Failed to load font file: ${e.status} ${e.statusText}`);
1390
+ if (!e.ok) throw new f(`Failed to load font file: ${e.status} ${e.statusText}`);
1359
1391
  t = await e.arrayBuffer();
1360
1392
  } else
1361
1393
  t = await (await fetch(`data:font/truetype;charset=utf-8;base64,AAEAAAAKAIAAAwAgT1MvMs+QEyQAAAEoAAAAYGNtYXAg7yVJAAAFjAAACSBnbHlmuHLTdAAAErQAAGi0aGVhZFvXdUwAAACsAAAANmhoZWELAQUCAAAA5AAAACRobXR4BACDgAAAAYgAAAQEbG9jYQAy54AAAA6sAAAECG1heHABIgCCAAABCAAAACBuYW1lVs/OSgAAe2gAAAOicG9zdABpADQAAH8MAAAAIAABAAAAAQAAzOWHqV8PPPUAAAQAAAAAAHxiGCcAAAAAfGIYJwAAAAAEAAQAAAAACAACAAEAAAAAAAEAAAQAAAAAAAQAAAAAAAcAAAEAAAAAAAAAAAAAAAAAAAEBAAEAAAEBAIAAIAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAgQAAZAABQAEAgACAAAAAAACAAIAAAACAAAzAMwAAAAABAAAAAAAAACAAACLAABw4wAAAAAAAAAAWUFMLgBAACAmawQAAAAAAAQAAAAAAAFRAAAAAAMABAAAAAAgAAAEAAAABAAAAAQAAAAEAAGABAABAAQAAIAEAACABAAAgAQAAIAEAAGABAABAAQAAQAEAACABAABAAQAAIAEAACABAABAAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAABAAQAAIAEAAEABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAABAAQAAIAEAAEABAAAgAQAAIAEAAEABAAAgAQAAIAEAACABAAAgAQAAIAEAAEABAAAgAQAAIAEAAGABAAAgAQAAIAEAAGABAAAgAQAAIAEAACABAAAgAQAAIAEAAEABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAABgAQAAQAEAACABAAAAAQAAgAEAACABAAAgAQAAIAEAACABAACAAQAAAAEAAIABAABgAQAAgAEAACABAAAgAQAAAAEAACABAAAAAQAAAAEAAAABAAAAAQAAAAEAAIABAADAAQAAAAEAAAABAAAgAQAAYAEAAAABAAAAAQAAIAEAAAABAAAgAQAAIAEAACABAAAAAQAAIAEAAAABAAAAAQAAIAEAAGABAAAAAQAAAAEAAAABAAAAAQAAIAEAACABAAAAAQAAIAEAACABAAAAAQAAIAEAACABAAAgAQAAAAEAACABAAAAAQAAAAEAAEABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAACAAQAAIAEAAAABAAAAAQAAAAEAACABAABAAQAAQAEAAEABAABAAQAAIAEAACABAAAAAQAAAAEAAAABAABAAQAAAAEAACABAAAAAQAAAAEAAIABAAAgAQAAAAEAAAABAAAAAQAAAAEAAAABAABgAQAAAAEAAAABAABgAQAAAAEAAGABAABgAQAAYAEAAAABAAAAAQAAAAEAAAABAABgAQAAYAEAAAABAAAAAQAAAAEAAAABAABgAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAABgAQAAAAEAAGABAABgAQAAAAEAAAABAABgAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAYAEAAAABAAAAAQAAQAEAACABAAAAAQAAAAEAAAABAAAgAQAAIAEAACABAAAgAQAAIAEAAAABAABAAQAAIAEAACABAAAgAQAAIAEAAEABAAAgAQAAIAEAACABAAAgAQAAIAEAAEABAAAgAAAAAIAAAADAAAAFAADAAEAAASaAAQEhgAAAJ4AgAAGAB4AfgCjAKUApwCsALIAtwC9AL8AxwDJANEA1gDcAOIA7wD0APcA/AD/AZIDkwOYA6MDpgOpA7EDtQPAA8QDxiAiIDwgfyCnIZUhqCIaIh8iKSJIImEiZSMCIxAjISUAJQIlDCUQJRQlGCUcJSQlLCU0JTwlbCWAJYQliCWMJZMloSWsJbIluiW8JcQlyyXZJjwmQCZCJmAmYyZmJmv//wAAACAAoQClAKcAqgCwALUAugC/AMQAyQDRANYA3ADfAOQA8QD2APkA/wGSA5MDmAOjA6YDqQOxA7QDwAPDA8YgIiA8IH8gpyGQIagiGSIeIikiSCJhImQjAiMQIyAlACUCJQwlECUUJRglHCUkJSwlNCU8JVAlgCWEJYgljCWQJaAlrCWyJbolvCXEJcsl2CY6JkAmQiZgJmMmZSZq////4v/A/7//vv+8/7n/t/+1/7T/sP+v/6j/pP+f/53/nP+b/5r/mf+X/wX9Bf0B/Pf89fzz/Oz86vzg/N783eCC4GngJ+AA3xjfBt6W3pPeit5s3lTeUt223andmtu827vbstuv26zbqdum25/bmNuR24rbd9tk22HbXttb21jbTNtC2z3bNts12y7bKNsc2rzaudq42pvamdqY2pUAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEhgAAAJ4AgAAGAB4AfgCjAKUApwCsALIAtwC9AL8AxwDJANEA1gDcAOIA7wD0APcA/AD/AZIDkwOYA6MDpgOpA7EDtQPAA8QDxiAiIDwgfyCnIZUhqCIaIh8iKSJIImEiZSMCIxAjISUAJQIlDCUQJRQlGCUcJSQlLCU0JTwlbCWAJYQliCWMJZMloSWsJbIluiW8JcQlyyXZJjwmQCZCJmAmYyZmJmv//wAAACAAoQClAKcAqgCwALUAugC/AMQAyQDRANYA3ADfAOQA8QD2APkA/wGSA5MDmAOjA6YDqQOxA7QDwAPDA8YgIiA8IH8gpyGQIagiGSIeIikiSCJhImQjAiMQIyAlACUCJQwlECUUJRglHCUkJSwlNCU8JVAlgCWEJYgljCWQJaAlrCWyJbolvCXEJcsl2CY6JkAmQiZgJmMmZSZq////4v/A/7//vv+8/7n/t/+1/7T/sP+v/6j/pP+f/53/nP+b/5r/mf+X/wX9Bf0B/Pf89fzz/Oz86vzg/N783eCC4GngJ+AA3xjfBt6W3pPeit5s3lTeUt223andmtu827vbstuv26zbqdum25/bmNuR24rbd9tk22HbXttb21jbTNtC2z3bNts12y7bKNsc2rzaudq42pvamdqY2pUAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAABwAAABIAAAAegAAALwAAADuAAAA9wAAARQAAAExAAABWgAAAW0AAAF7AAABhAAAAY0AAAGvAAAB0gAAAecAAAIOAAACNQAAAk8AAAJsAAACjgAAAqYAAALOAAAC5gAAAvQAAAMHAAADLgAAAzwAAANjAAADhQAAA6UAAAPCAAAD4AAAA/0AAAQaAAAEPAAABEwAAARrAAAEfgAABJEAAASpAAAE0AAABNsAAAT4AAAFFQAABS0AAAVDAAAFZQAABYcAAAWuAAAFvAAABc8AAAXnAAAGBAAABisAAAZDAAAGZQAABnMAAAaVAAAGowAABsUAAAbOAAAG3gAABvYAAAcMAAAHKQAABz8AAAdaAAAHbQAAB4oAAAedAAAHqwAAB8MAAAfgAAAH7gAACAsAAAgjAAAIOwAACFEAAAhsAAAIfAAACJkAAAi2AAAIzgAACOYAAAkDAAAJKgAACUIAAAlfAAAJfAAACYUAAAmiAAAJugAACdcAAAngAAAKBwAACi4AAApgAAAKeQAACokAAAq4AAAKwQAACs8AAArYAAAK8QAACw4AAAshAAALSAAAC1gAAAt1AAALjQAAC5sAAAu0AAALzQAAC9YAAAvhAAAL6gAAC/4AAAwRAAAMJAAADDQAAAxHAAAMUgAADGoAAAyCAAAMlwAADKUAAAy/AAAM0gAADN0AAAz8AAANDwAADSkAAA0yAAANTAAADVUAAA1jAAANfAAADYcAAA2VAAANqQAADcIAAA3mAAAN7wAADg4AAA4XAAAOQQAADloAAA5qAAAOcwAADoYAAA6PAAAOogAADrIAAA7FAAAPCwAADxsAAA8uAAAPRwAAD1AAAA+HAAAPoAAAD6kAAA/CAAAP3wAAD/wAABAZAAAQNgAAEE4AABBfAAAQlQAAEJ4AABCxAAAQugAAEOEAABEnAAARUwAAEWYAABF+AAARlgAAEbgAABJrAAASfgAAEpEAABKpAAASwQAAEswAABLcAAATCAAAExMAABMrAAATQwAAE1sAABNzAAATmgAAE8YAABPeAAAT5wAAE/AAABQSAAAUKgAAFEIAABRaAAAUYwAAFGwAABSOAAAUngAAFLsAABTYAAAU/wAAFSEAABVNAAAVZQAAFX0AABWVAAAVngAAFacAABXTAAAWBAAAFg0AABYvAAAWOgAAFkUAABZxAAAWhAAAFpIAABagAAAWrgAAFrwAABbVAAAW7QAAFxkAABd0AAAXzwAAF/wAABgUAAAYJQAAGC4AABhBAAAYXgAAGHEAABiYAAAYvAAAGOAAABkYAAAZPwAAGWYAABmNAAAZtAAAGdYAABn9AAAaEAAAGi0AAIBgACAAoAEAAADAAcAAAEBAQEBAQEBAYABAAAA/wAAAAEAAAD/AAQAAAD+AAAA/4AAAP8AAAAAAgEAAoADgAQAAAMABwAAAQEBAQEBAQEBAAEAAAD/AAGAAQAAAP8ABAAAAP6AAAABgAAA/oAAAAACAIAAgAQAA4AAGwAfAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQAAAACAAAABAAAAAIAAAP+AAAAAgAAA/4AAAP8AAAD/gAAA/wAAAP+AAAAAgAAA/4AAAACAAQAAAACAAAADgAAA/4AAAACAAAD/gAAA/4AAAP8AAAD/gAAA/4AAAACAAAD/gAAAAIAAAACAAAABAAAAAIAAAP+A/wAAAAEAAAMAgACABAAEAAAbAB8AIwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAgAAgAAAAQAAAP8AAAABAAAAAIAAAP+AAAD/AAAA/4AAAP8AAAABAAAA/wAAAP+AAAAAgAAAAQD/gAAAAIAAAACAAAAAgAAABAAAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAD/gP+AAAAAgP8A/4AAAACAAAAABQCAAIAEAAOAAAUAHQAjACkALwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAAA/4AAAP+AAgABAAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAAAAIAAAACA/YAAgAAAAIAAAP8AAoABAAAA/4AAAP+A/4AAgAAAAIAAAP8AA4AAAP8AAAAAgAAAAIAAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAACAAAAAgAAAAAAAAP+AAAD/gAAAAAAAAP8AAAAAgAAAAAAAAP+AAAD/gAAAAAAAAwCAAIAEAAQAABcAHQAjAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAIAAAAAgAAA/4AAAACAAAAAgAAA/4AAAACAAAD9AAAA/4AAAACAAAD/gAAAAIAAgAAAAIAAAACAAAD/AAAAAQAAAP+AAAAEAAAA/4AAAP8AAAD/gAAAAIAAAP8AAAD/gAAA/4AAAACAAAABAAAAAIAAAAEAAAAAAP+AAAD/gAAAAQD+gP8AAAAAgAAAAIAAAAABAYACgAKABAAAAwAAAQEBAQGAAQAAAP8ABAAAAP6AAAAAAAABAQAAgAMABAAAEwAAAQEBAQEBAQEBAQEBAQEBAQEBAQECAAEAAAD/gAAA/4AAAACAAAAAgAAA/wAAAP+AAAD/gAAAAIAAAACABAAAAP+AAAD/gAAA/oAAAP+AAAD/gAAAAIAAAACAAAABgAAAAIAAAAAAAAEBAACAAwAEAAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQAAAACAAAAAgAAA/4AAAP+AAAD/AAAAAIAAAACAAAD/gAAA/4AEAAAA/4AAAP+AAAD+gAAA/4AAAP+AAAAAgAAAAIAAAAGAAAAAgAAAAAAABQCAAYADgAQAAAMABwATABcAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAIAAAP+AAYAAgAAA/4D/AAEAAAABAAAA/wAAAP8AAAD/AAAAAQD/gACAAAD/gAGAAIAAAP+ABAAAAP+AAAAAgAAA/4AAAAAAAAD/gAAA/4AAAP+AAAAAgAAAAIAAAP8AAAD/gAAAAIAAAP+AAAAAAAABAQAAgAOAAwAACwAAAQEBAQEBAQEBAQEBAgAAgAAAAQAAAP8AAAD/gAAA/wAAAAEAAwAAAP8AAAD/gAAA/wAAAAEAAAAAgAAAAAAAAQCAAAACAAGAAAcAAAEBAQEBAQEBAQABAAAA/4AAAP8AAAAAgAGAAAD/AAAA/4AAAACAAAAAAAABAIABgAOAAgAAAwAAAQEBAQCAAwAAAP0AAgAAAP+AAAAAAAABAQAAgAIAAYAAAwAAAQEBAQEAAQAAAP8AAYAAAP8AAAAAAAABAIAAgAQAA4AAFwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAwABAAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAAAAIAAAACAA4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAACAAAAAgAAAAAAAAwCAAIADgAQAAAsAEQAXAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAIAAAAAgAAA/4AAAP4AAAD/gAAAAIAAgAAAAIAAAACAAAD/gAAA/4AAAAEAAAAEAAAA/4AAAP2AAAD/gAAAAIAAAAKAAAAAAP8AAAAAgAAAAID/AP+AAAD/AAAAAYAAAAABAIAAgAOABAAADQAAAQEBAQEBAQEBAQEBAQEBgAEAAAABAAAA/QAAAAEAAAD/AAAAAIAAAACABAAAAP0AAAD/gAAAAIAAAAGAAAAAgAAAAIAAAAABAIAAgAOABAAAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAgAAAACAAAD/gAAA/4AAAP+AAAABgAAA/QAAAACAAAAAgAAAAIAAAACAAAD/AAAA/wAAAACABAAAAP+AAAD/AAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAACAAAABAAAA/wAAAAEAAAAAAAABAIAAgAOABAAAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAgAAAACAAAD/gAAAAIAAAP+AAAD+AAAA/4AAAAEAAAABAAAA/wAAAAEAAAD/AAAA/wAAAACABAAAAP+AAAD/AAAA/4AAAP8AAAD/gAAAAIAAAACAAAD/gAAAAQAAAACAAAABAAAA/4AAAACAAAAAAAABAIAAgAOABAAAEQAAAQEBAQEBAQEBAQEBAQEBAQEBAYABAAAA/4AAAP+AAAABAAAAAQAAAP8AAAD+AAAAAIAAAACABAAAAP+AAAD/gAAA/wAAAAEAAAD9gAAAAQAAAAGAAAAAgAAAAAEAgACAA4AEAAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQCAAwAAAP4AAAABgAAAAIAAAP+AAAD+AAAA/4AAAAEAAAABAAAA/gAEAAAA/4AAAP8AAAD/gAAA/wAAAP+AAAAAgAAAAIAAAP+AAAABAAAAAAAAAgCAAIADgAQAABMAFwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQACAAAAAIAAAP8AAAD/AAAAAYAAAACAAAD/gAAA/gAAAP+AAAAAgACAAAABAAAABAAAAP+AAAD/gAAAAIAAAP8AAAD/gAAA/wAAAP+AAAAAgAAAAoAAAP6A/wAAAAEAAAEAgACAA4AEAAAPAAABAQEBAQEBAQEBAQEBAQEBAIADAAAA/4AAAP+AAAD/AAAAAIAAAACAAAD+gAAA/4AEAAAA/oAAAP+AAAD+gAAAAYAAAACAAAABAAAA/4AAAAAAAAMAgACAA4AEAAATABcAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAgAAAACAAAD/gAAAAIAAAP+AAAD+AAAA/4AAAACAAAD/gAAAAIAAgAAAAQAAAP8AAAABAAAABAAAAP+AAAD/AAAA/4AAAP8AAAD/gAAAAIAAAAEAAAAAgAAAAQAAAAAA/wAAAAEA/oD/AAAAAQAAAAACAIAAgAOABAAACwAPAAABAQEBAQEBAQEBAQEBAQEBAQACAAAAAIAAAP8AAAD+gAAA/4AAAACAAIAAAAEAAAAEAAAA/4AAAP0AAAABAAAAAIAAAAGAAAAAAP6AAAABgAACAQABAAIAA4AAAwAHAAABAQEBAQEBAQEAAQAAAP8AAAABAAAA/wADgAAA/wAAAP+AAAD/AAAAAAIAgACAAgADgAADAAsAAAEBAQEBAQEBAQEBAQEAAQAAAP8AAAABAAAA/4AAAP8AAAAAgAOAAAD/AAAA/4AAAP8AAAD/gAAAAIAAAAABAQAAgAOABAAAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQKAAQAAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAP8AAAD/gAAA/4AAAP+AAAAAgAAAAIAAAACABAAAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAAAACAIABgAOAAwAAAwAHAAABAQEBAQEBAQCAAwAAAP0AAAADAAAA/QADAAAA/4AAAP+AAAD/gAAAAAEAgACAAwAEAAAbAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAIABAAAAAIAAAACAAAAAgAAA/4AAAP+AAAD/gAAA/wAAAACAAAAAgAAAAIAAAP+AAAD/gAAA/4AEAAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAAAAAAIAgACAA4AEAAATABcAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAgAAAACAAAD/gAAA/4AAAP8AAAAAgAAAAIAAAP8AAAD/AAAAAIAAgAEAAAD/AAQAAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAAAgAAA/4AAAACAAAD+AAAA/wAAAAACAIAAgAOABAAAEQAVAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQACAAAAAIAAAP6AAAAAgAAA/wAAAAGAAAD+AAAA/4AAAACAAgAAgAAA/4AEAAAA/4AAAP6AAAABAAAAAIAAAP2AAAD/gAAAAIAAAAKAAAD+AAAA/4AAAAAAAAIAgACAA4AEAAAPABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAYABAAAAAIAAAACAAAD/AAAA/wAAAP8AAAAAgAAAAIAAAAAAAQAAAAQAAAD/gAAA/4AAAP2AAAABAAAA/wAAAAKAAAAAgAAA/4D/AAAAAQAAAwCAAIADgAQAAAsADwATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQCAAoAAAACAAAD/gAAAAIAAAP+AAAD9gAEAAAABAAAA/wAAAAEAAAAEAAAA/4AAAP8AAAD/gAAA/wAAAP+AAAADAP8AAAABAP6A/wAAAAEAAAAAAQCAAIADgAQAABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQACAAAAAIAAAP8AAAD/AAAAAQAAAAEAAAD/gAAA/gAAAP+AAAAAgAQAAAD/gAAA/4AAAACAAAD9gAAAAIAAAP+AAAD/gAAAAIAAAAKAAAAAAAACAIAAgAOABAAACwATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQCAAgAAAACAAAAAgAAA/4AAAP+AAAD+AAEAAAAAgAAAAIAAAP+AAAAEAAAA/4AAAP+AAAD+gAAA/4AAAP+AAAADAP2AAAAAgAAAAYAAAACAAAEAgACAA4AEAAAXAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAIAAAAAgAAA/wAAAP8AAAABAAAA/wAAAAEAAAABAAAA/4AAAP4AAAD/gAAAAIAEAAAA/4AAAP+AAAAAgAAA/wAAAP+AAAD/AAAAAIAAAP+AAAD/gAAAAIAAAAKAAAAAAAABAIAAgAOABAAACQAAAQEBAQEBAQEBAQCAAwAAAP4AAAABAAAA/wAAAP8ABAAAAP+AAAD/AAAA/4AAAP6AAAAAAQCAAIADgAQAABUAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAIAAAAAgAAA/wAAAP8AAAABAAAA/4AAAAGAAAD/gAAA/gAAAP+AAAAAgAQAAAD/gAAA/4AAAACAAAD9gAAAAQAAAACAAAD+gAAA/4AAAACAAAACgAAAAAEAgACAA4AEAAALAAABAQEBAQEBAQEBAQEAgAEAAAABAAAAAQAAAP8AAAD/AAAA/wAEAAAA/gAAAAIAAAD8gAAAAQAAAP8AAAAAAAABAIAAgAOABAAACwAAAQEBAQEBAQEBAQEBAIADAAAA/wAAAAEAAAD9AAAAAQAAAP8ABAAAAP+AAAD9gAAA/4AAAACAAAACgAAAAAAAAQCAAIAEAAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEBAAMAAAD/gAAA/4AAAP4AAAD/gAAAAQAAAAEAAAD+gAQAAAD/gAAA/YAAAP+AAAAAgAAAAQAAAP8AAAACgAAAAAAAAQCAAIADgAQAABsAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAgAEAAAAAgAAAAIAAAAEAAAD/gAAA/4AAAP+AAAAAgAAAAIAAAACAAAD/AAAA/4AAAP+AAAD/AAQAAAD/AAAAAIAAAACAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAD/AAAAAAAAAQCAAIADgAQAAAUAAAEBAQEBAQCAAQAAAAIAAAD9AAQAAAD9AAAA/4AAAAABAIAAgAQABAAAEwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEAgAEAAAAAgAAAAIAAAACAAAABAAAA/wAAAP+AAAD/gAAA/4AAAP8ABAAAAP+AAAD/gAAAAIAAAACAAAD8gAAAAgAAAP+AAAAAgAAA/gAAAAAAAAEAgACABAAEAAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQCAAQAAAACAAAAAgAAAAIAAAAEAAAD/AAAA/4AAAP+AAAD/gAAA/wAEAAAA/4AAAP+AAAD/gAAAAYAAAPyAAAABAAAAAIAAAACAAAD+AAAAAAAAAgCAAIADgAQAAAsADwAAAQEBAQEBAQEBAQEBAQEBAQEAAgAAAACAAAD/gAAA/gAAAP+AAAAAgACAAAABAAAABAAAAP+AAAD9gAAA/4AAAACAAAACgAAAAAD9gAAAAoAAAgCAAIADgAQAAAkADQAAAQEBAQEBAQEBAQEBAQEAgAKAAAAAgAAA/4AAAP6AAAD/AAEAAAABAAAABAAAAP+AAAD+gAAA/4AAAP8AAAADAP6AAAABgAAAAAIAgACABAAEAAAPABcAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAgAAAACAAAAAgAAA/4AAAP+AAAD+AAAA/4AAAACAAIAAAAEAAAD/gAAAAIAAAAQAAAD/gAAA/gAAAP8AAAAAgAAA/4AAAACAAAACgAAAAAD9gAAAAIAAAACAAAABgAACAIAAgAOABAAAEwAXAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAgAKAAAAAgAAA/4AAAP+AAAAAgAAAAIAAAP8AAAD/gAAA/4AAAP8AAQAAAAEAAAAEAAAA/4AAAP8AAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAD/AAAAAwD/AAAAAQAAAQCAAIADgAQAABsAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAIAAAAAgAAA/wAAAP8AAAABgAAAAIAAAP+AAAD+AAAA/4AAAAEAAAABAAAA/oAAAP+AAAAAgAQAAAD/gAAA/4AAAACAAAD/AAAA/4AAAP8AAAD/gAAAAIAAAACAAAD/gAAAAQAAAACAAAABAAAAAAAAAQCAAIADgAQAAAcAAAEBAQEBAQEBAIADAAAA/wAAAP8AAAD/AAQAAAD/gAAA/QAAAAMAAAAAAAABAIAAgAOABAAACwAAAQEBAQEBAQEBAQEBAIABAAAAAQAAAAEAAAD/gAAA/gAAAP+ABAAAAP0AAAADAAAA/QAAAP+AAAAAgAAAAAAAAQCAAIADgAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEAgAEAAAABAAAAAQAAAP+AAAD/gAAA/wAAAP+AAAD/gAQAAAD+AAAAAgAAAP4AAAD/AAAA/4AAAACAAAABAAAAAAAAAQCAAIAEAAQAABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAIABAAAAAIAAAACAAAAAgAAAAQAAAP8AAAD/gAAA/4AAAP+AAAD/AAQAAAD+AAAAAIAAAP+AAAACAAAA/IAAAACAAAAAgAAA/4AAAP+AAAAAAAABAIAAgAOABAAAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQCAAQAAAAEAAAABAAAA/4AAAP+AAAAAgAAAAIAAAP8AAAD/AAAA/wAAAACAAAAAgAAA/4AAAP+ABAAAAP8AAAABAAAA/wAAAP+AAAD/gAAA/4AAAP8AAAABAAAA/wAAAAEAAAAAgAAAAIAAAACAAAAAAAABAIAAgAOABAAADwAAAQEBAQEBAQEBAQEBAQEBAQCAAQAAAAEAAAABAAAA/4AAAP+AAAD/AAAA/4AAAP+ABAAAAP6AAAABgAAA/oAAAP+AAAD+gAAAAYAAAACAAAAAAAABAIAAgAOABAAAFwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAIADAAAA/4AAAP+AAAD/gAAA/4AAAAIAAAD9AAAAAIAAAACAAAAAgAAAAIAAAP4ABAAAAP8AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAAEAAAAAgAAAAIAAAACAAAAAgAAAAAAAAQEAAIADAAQAAAcAAAEBAQEBAQEBAQACAAAA/wAAAAEAAAD+AAQAAAD/gAAA/YAAAP+AAAAAAAABAIAAgAQAA4AAFwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAIABAAAAAIAAAACAAAAAgAAAAIAAAACAAAD/AAAA/4AAAP+AAAD/gAAA/4AAAP+AA4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAACAAAAAgAAAAAAAAQEAAIADAAQAAAcAAAEBAQEBAQEBAQACAAAA/gAAAAEAAAD/AAQAAAD8gAAAAIAAAAKAAAAAAAABAIACAAQABAAAFwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAgAAgAAAAIAAAACAAAAAgAAA/wAAAP+AAAD/gAAA/4AAAP8AAAAAgAAAAIAAAACABAAAAP+AAAD/gAAA/4AAAP+AAAAAgAAAAIAAAP+AAAD/gAAAAIAAAACAAAAAgAAAAAAAAQCAAIADgAEAAAMAAAEBAQEAgAMAAAD9AAEAAAD/gAAAAAAAAQEAAoACgAQAAAkAAAEBAQEBAQEBAQEBAAEAAAAAgAAA/4AAAP+AAAD/gAQAAAD/gAAA/wAAAACAAAAAgAAAAAEAgACAA4ADAAAPAAABAQEBAQEBAQEBAQEBAQEBAQACgAAA/4AAAP+AAAD/AAAAAQAAAP6AAAD/gAAAAIADAAAA/YAAAACAAAABgAAA/oAAAP+AAAAAgAAAAYAAAAAAAAIAgACAA4AEAAAJAA0AAAEBAQEBAQEBAQEBAQEBAIABAAAAAYAAAACAAAD/gAAA/YABAAAAAQAAAAQAAAD/AAAA/4AAAP6AAAD/gAAAAgD+gAAAAYAAAAABAIAAgAOAAwAAEwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAIAAAAAgAAA/wAAAP8AAAABAAAAAQAAAP+AAAD+AAAA/4AAAACAAwAAAP+AAAD/gAAAAIAAAP6AAAAAgAAA/4AAAP+AAAAAgAAAAYAAAAAAAAIAgACAA4AEAAAJAA0AAAEBAQEBAQEBAQEBAQEBAoABAAAA/YAAAP+AAAAAgAAAAYD/AAAAAQAAAAQAAAD8gAAAAIAAAAGAAAAAgAAA/4D+gAAAAYAAAAACAIAAgAOAAwAADQARAAABAQEBAQEBAQEBAQEBAQEBAQEBAAIAAAAAgAAA/gAAAAGAAAD+AAAA/4AAAACAAIAAAAEAAAADAAAA/4AAAP8AAAD/gAAA/4AAAACAAAABgAAAAAD/gAAAAIAAAAABAQAAgAOAA4AACwAAAQEBAQEBAQEBAQEBAYACAAAA/oAAAAEAAAD/AAAA/wAAAACAA4AAAP+AAAD/AAAA/4AAAP8AAAACgAAAAAAAAgCAAIADgAOAAA8AEwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAIAAAAAgAAA/4AAAP4AAAABgAAA/oAAAP+AAAAAgACAAAABAAAAA4AAAP+AAAD+AAAA/4AAAACAAAAAgAAAAIAAAAEAAAAAAP8AAAABAAABAIAAgAOABAAACwAAAQEBAQEBAQEBAQEBAIABAAAAAYAAAACAAAD/AAAA/wAAAP8ABAAAAP8AAAD/gAAA/gAAAAIAAAD+AAAAAAAAAgGAAIACgAQAAAMABwAAAQEBAQEBAQEBgAEAAAD/AAAAAQAAAP8ABAAAAP+AAAD/gAAA/YAAAAACAIAAgAOABAAAAwAPAAABAQEBAQEBAQEBAQEBAQEBAoABAAAA/wAAAAEAAAD/gAAA/gAAAP+AAAABAAAAAQAEAAAA/4AAAP+AAAD+AAAA/4AAAACAAAABAAAA/wAAAAABAIAAgAOAA4AAEwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEAgAEAAAAAgAAAAQAAAP+AAAAAgAAAAIAAAP8AAAD/gAAA/4AAAP8AA4AAAP8AAAAAgAAA/4AAAP8AAAD/gAAA/4AAAACAAAAAgAAA/wAAAAAAAAEBgACAAwAEAAAHAAABAQEBAQEBAQGAAQAAAACAAAD/AAAA/4AEAAAA/QAAAP+AAAAAgAAAAAAAAQCAAIAEAAMAABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAAAAIAAAAEAAAAAgAAA/wAAAP+AAAD/gAAA/4AAAP8AAAAAgAMAAAD/gAAAAIAAAP+AAAD+AAAAAYAAAP+AAAAAgAAA/oAAAAIAAAAAAAABAIAAgAOAAwAADwAAAQEBAQEBAQEBAQEBAQEBAQCAAQAAAACAAAABAAAAAIAAAP8AAAD/gAAA/4AAAP8AAwAAAP+AAAAAgAAA/4AAAP4AAAABgAAA/4AAAP8AAAAAAAACAIAAgAOAAwAACwAPAAABAQEBAQEBAQEBAQEBAQEBAQACAAAAAIAAAP+AAAD+AAAA/4AAAACAAIAAAAEAAAADAAAA/4AAAP6AAAD/gAAAAIAAAAGAAAAAAP6AAAABgAACAIAAgAOAAwAACQANAAABAQEBAQEBAQEBAQEBAQCAAoAAAACAAAD/gAAA/oAAAP8AAQAAAAEAAAADAAAA/4AAAP+AAAD/gAAA/wAAAAIA/4AAAACAAAAAAgCAAIAEAAMAAA0AEQAAAQEBAQEBAQEBAQEBAQEBAQEBAQACgAAAAIAAAP+AAAD/AAAA/oAAAP+AAAAAgACAAAABAAAAAwAAAP6AAAD/gAAA/4AAAAEAAAAAgAAAAIAAAAAA/4AAAACAAAAAAQEAAIADgAMAAAkAAAEBAQEBAQEBAQEBAAIAAAAAgAAA/wAAAP+AAAD/AAMAAAD/gAAA/wAAAAEAAAD+AAAAAAEAgACABAADAAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEAAoAAAP6AAAABgAAAAIAAAP+AAAD9AAAAAgAAAP6AAAD/gAAAAIADAAAA/4AAAP+AAAD/gAAA/4AAAP+AAAAAgAAAAIAAAACAAAAAgAAAAAAAAQCAAIADgAOAABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAAAAQAAAP8AAAAAgAAAAQAAAP+AAAD+gAAA/4AAAP+AAAAAgAOAAAD/gAAA/4AAAP6AAAAAgAAA/4AAAP+AAAAAgAAAAYAAAACAAAAAAAABAIAAgAOAAwAADwAAAQEBAQEBAQEBAQEBAQEBAQCAAQAAAACAAAAAgAAAAQAAAP+AAAD/gAAA/oAAAP+AAwAAAP4AAAAAgAAAAYAAAP2AAAAAgAAA/4AAAACAAAAAAAABAIAAgAOAAwAADwAAAQEBAQEBAQEBAQEBAQEBAQCAAQAAAAEAAAABAAAA/4AAAP+AAAD/AAAA/4AAAP+AAwAAAP6AAAABgAAA/oAAAP+AAAD/gAAAAIAAAACAAAAAAAABAIAAgAQAAwAAEwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEAgAEAAAAAgAAAAIAAAACAAAABAAAA/4AAAP8AAAD/gAAA/wAAAP+AAwAAAP6AAAAAgAAA/4AAAAGAAAD+AAAA/4AAAACAAAD/gAAAAIAAAAAAAAEAgACAA4ADAAAbAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAIABAAAAAQAAAAEAAAD/gAAA/4AAAACAAAAAgAAA/wAAAP8AAAD/AAAAAIAAAACAAAD/gAAA/4ADAAAA/4AAAACAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACAAAD/gAAAAIAAAACAAAAAgAAAAIAAAAAAAAEAgACAA4ADAAAPAAABAQEBAQEBAQEBAQEBAQEBAIABAAAAAQAAAAEAAAD/gAAA/gAAAAGAAAD+gAAA/4ADAAAA/wAAAAEAAAD+AAAA/4AAAACAAAAAgAAAAIAAAAAAAAEAgACAA4ADAAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQCAAwAAAP+AAAD/gAAA/4AAAAGAAAD9AAAAAIAAAACAAAAAgAAA/oADAAAA/4AAAP+AAAD/gAAA/4AAAP+AAAAAgAAAAIAAAACAAAAAgAAAAAAAAQCAAIADAAQAABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAYABgAAA/wAAAP+AAAAAgAAAAQAAAP6AAAD/gAAA/4AAAACAAAAAgAQAAAD/gAAA/wAAAP+AAAD/AAAA/4AAAACAAAABAAAAAIAAAAEAAAAAAAABAYAAgAKABAAAAwAAAQEBAQGAAQAAAP8ABAAAAPyAAAAAAAABAQAAgAOABAAAEwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAGAAAAAgAAAAIAAAP+AAAD/gAAA/oAAAAEAAAAAgAAA/4AAAP8ABAAAAP+AAAD/AAAA/4AAAP8AAAD/gAAAAIAAAAEAAAAAgAAAAQAAAAAAAAEAgAGAA4ADAAAPAAABAQEBAQEBAQEBAQEBAQEBAQABAAAAAQAAAACAAAD/gAAA/wAAAP8AAAD/gAAAAIADAAAA/4AAAACAAAD/AAAA/4AAAACAAAD/gAAAAQAAAAAAAAEAAAAABAAEAAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQAAAYAAAAEAAAAAgAAAAIAAAACAAAD/AAAA/4AAAP+AAAD/AAAA/wAEAAAA/4AAAP+AAAD/gAAA/wAAAP6AAAABAAAAAQAAAACAAAAAgAAAAAAAAQIAAAAEAAQAAAMAAAEBAQECAAIAAAD+AAQAAAD8AAAAAAAAAgCAAIADgAQAABcAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQGAAYAAAP8AAAABAAAA/4AAAP+AAAABgAAA/QAAAACAAAAAgAAA/wAAAACAAAAAgAGAAIAAAP+ABAAAAP+AAAD/AAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAACAAAABAAAAAAAAAP+AAAAAAQCAAIADgAQAABsAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAgAEAAAABAAAAAQAAAP+AAAAAgAAA/wAAAAEAAAD/AAAA/wAAAP8AAAABAAAA/wAAAACAAAD/gAQAAAD+gAAAAYAAAP8AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAACAAAAAgAAAAAAABACAAIAEAAQAABcAGwAfACMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAoAAAP4AAAABgAAAAIAAAACAAAD/gAAA/YAAAAIAAAD+gAAA/4AAAP+AAAAAgAEAAAAAgAAAAQAAgAAA/4D9AACAAAD/gAQAAAD/gAAA/4AAAP+AAAD/gAAA/wAAAP+AAAAAgAAAAIAAAACAAAAAgAAAAQAAAP8A/4AAAACAAQAAAP+AAAD+gAAA/4AAAAAEAIAAgAQAA4AAAwAHAAsADwAAAQEBAQEBAQEBAQEBAQEBAQCAAIAAAP+AAQAAgAAA/4ABAACAAAD/gAEAAIAAAP+AA4AAAP0AAAADAAAA/QAAAAMAAAD9AAAAAwAAAP0AAAAAAQIAAAAEAAQAAAkAAAEBAQEBAQEBAQEDgACAAAD+AAAAAIAAAACAAAAAgAQAAAD8AAAAAQAAAAEAAAABAAAAAAgAAAAABAAEAAADAAcACwAPABMAFwAbAB8AAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAABAAAA/wACAAEAAAD/AP8AAQAAAP8AAgABAAAA/wD9AAEAAAD/AAIAAQAAAP8A/wABAAAA/wACAAEAAAD/AAQAAAD/AAAAAQAAAP8AAAAAAAAA/wAAAAEAAAD/AAAAAAAAAP8AAAABAAAA/wAAAAAAAAD/AAAAAQAAAP8AAAAAAQIAAAADAAQAAAMAAAEBAQECAAEAAAD/AAQAAAD8AAAAAAAAAgGAAIACgAQAAAMABwAAAQEBAQEBAQEBgAEAAAD/AAAAAQAAAP8ABAAAAP6AAAD/gAAA/oAAAAABAgAAAAQAAgAAAwAAAQEBAQIAAgAAAP4AAgAAAP4AAAAAAAAEAIAAAAQABAAAAwAHAAsADwAAAQEBAQEBAQEBAQEBAQEBAQCAAIAAAP+AAQAAgAAA/4ABAACAAAD/gAEAAIAAAP+ABAAAAPwAAAAEAAAA/AAAAAQAAAD8AAAABAAAAPwAAAAAAQCAAIADgAOAABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAoABAAAA/oAAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAAEAAAD/gAOAAAD+AAAA/wAAAACAAAAAgAAAAIAAAACAAAAAgAAA/wAAAAEAAAAAAAABAAAAAAQABAAACwAAAQEBAQEBAQEBAQEBAAAEAAAA/gAAAP+AAAD/gAAA/4AAAP+ABAAAAPwAAAAAgAAAAIAAAACAAAAAgAAAAAAAAQCAAIAEAAOAABsAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAgACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAOAAAD/gAAAAIAAAP8AAAABAAAA/oAAAAGAAAD9AAAAAIAAAP+AAAABAAAA/wAAAAGAAAD+gAAAAAAAAQAAAAACAAQAAAkAAAEBAQEBAQEBAQEAAACAAAAAgAAAAIAAAACAAAD+AAQAAAD/AAAA/wAAAP8AAAD/AAAAAAEAAAAABAAEAAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQKAAYAAAP8AAAD/AAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAAAAQAEAAAA/wAAAP+AAAD/gAAA/wAAAP8AAAABgAAAAQAAAACAAAAAgAAAAAAAAQAAAAAEAAIAAA8AAAEBAQEBAQEBAQEBAQEBAQEBgAEAAAAAgAAAAIAAAACAAAD8AAAAAIAAAACAAAAAgAIAAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAAAgAAAAAAAAgAAAAAEAAQAAAMABwAAAQEBAQEBAQEAAAIAAAD+AAIAAgAAAP4ABAAAAP4AAAAAAAAA/gAAAAAEAAACAAQABAAAAwAHAAsADwAAAQEBAQEBAQEBAQEBAQEBAQAAAQAAAP8AAgABAAAA/wD/AAEAAAD/AAIAAQAAAP8ABAAAAP8AAAABAAAA/wAAAAAAAAD/AAAAAQAAAP8AAAAABAIAAAAEAAQAAAMABwALAA8AAAEBAQEBAQEBAQEBAQEBAQECAAEAAAD/AAEAAQAAAP8A/wABAAAA/wABAAEAAAD/AAQAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAEDAAAABAAEAAADAAABAQEBAwABAAAA/wAEAAAA/AAAAAAAAAEAAAAABAAEAAAFAAABAQEBAQEAAAQAAAD9AAAA/wAEAAAA/wAAAP0AAAAAAQAAAAABAAQAAAMAAAEBAQEAAAEAAAD/AAQAAAD8AAAAAAAAAwCAAIADAAOAAAMABwALAAABAQEBAQEBAQEBAQEAgACAAAD/gAEAAIAAAP+AAQAAgAAA/4ADgAAA/QAAAAMAAAD9AAAAAwAAAP0AAAAAAAABAYABgAQABAAACwAAAQEBAQEBAQEBAQEBAYABAAAAAIAAAAEAAAD+gAAA/4AAAP+ABAAAAP8AAAD/gAAA/wAAAACAAAAAgAAAAAAAAQAAAYACgAQAAAsAAAEBAQEBAQEBAQEBAQGAAQAAAP+AAAD/gAAA/oAAAAEAAAAAgAQAAAD+gAAA/4AAAP+AAAABAAAAAIAAAAAAAAEAAAAABAAEAAAJAAABAQEBAQEBAQEBAwABAAAA/AAAAAEAAAABAAAAAQAEAAAA/AAAAAKAAAAAgAAAAIAAAAABAIAAgAMABAAACwAAAQEBAQEBAQEBAQEBAgABAAAA/4AAAP6AAAD/gAAAAIAAAAEABAAAAP0AAAD/gAAAAIAAAAEAAAAAgAAAAAAAAQAAAAAEAAQAAAUAAAEBAQEBAQAAAQAAAAMAAAD8AAQAAAD9AAAA/wAAAAACAIAAgAMAAoAACwAPAAABAQEBAQEBAQEBAQEBAQEBAQABgAAAAIAAAP+AAAD+gAAAAQAAAP8A/4AAgAAA/4ACgAAA/4AAAP8AAAD/gAAAAIAAAAEAAAAAAAAA/wAAAAACAIAAgAMABAAACwAPAAABAQEBAQEBAQEBAQEBAQEBAgABAAAA/4AAAP6AAAABAAAA/wAAAAEA/oAAgAAA/4AEAAAA/QAAAP+AAAAAgAAAAQAAAACAAAD/gAAA/wAAAAABAIAAgAQABAAADQAAAQEBAQEBAQEBAQEBAQECAAIAAAD/AAAA/4AAAP6AAAD/gAAAAIAAAAEABAAAAP+AAAD9gAAA/4AAAACAAAABAAAAAIAAAAACAAAAAAQABAAAAwAHAAABAQEBAQEBAQAABAAAAPwAAQAAAAIAAAAEAAAA/AAAAAMA/gAAAAIAAAEAgACABAAEAAARAAABAQEBAQEBAQEBAQEBAQEBAQECAAIAAAD/AAAAAQAAAP8AAAD/gAAA/oAAAP+AAAAAgAAAAQAEAAAA/4AAAP+AAAD/gAAA/oAAAP+AAAAAgAAAAQAAAACAAAAAAQAAAAACgAKAAAsAAAEBAQEBAQEBAQEBAQAAAYAAAACAAAAAgAAA/wAAAP+AAAD/AAKAAAD/gAAA/4AAAP6AAAABAAAAAIAAAAAAAAEAAAAABAAEAAAFAAABAQEBAQEAAAQAAAD/AAAA/QAEAAAA/AAAAAMAAAAAAQCAAIAEAAQAABUAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQECAAIAAAD/AAAAAQAAAP8AAAABAAAA/wAAAP+AAAD+gAAA/4AAAACAAAABAAQAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAIAAAAEAAAAAgAAAAAEBgAAABAACgAALAAABAQEBAQEBAQEBAQECgAGAAAD/AAAA/4AAAP8AAAAAgAAAAIACgAAA/wAAAP+AAAD/AAAAAYAAAACAAAAAAAABAAAAAAQABAAAEQAAAQEBAQEBAQEBAQEBAQEBAQEBAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAPwABAAAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAAEAAAAABAABAAADAAABAQEBAAAEAAAA/AABAAAA/wAAAAAAAAEAAAAABAAEAAARAAABAQEBAQEBAQEBAQEBAQEBAQEDgACAAAD8AAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAEAAAA/AAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAAQAAAgAEAAQAAAMAAAEBAQEAAAQAAAD8AAQAAAD+AAAAAAAAAgCAAIACAAOAAAMABwAAAQEBAQEBAQEAgACAAAD/gAEAAIAAAP+AA4AAAP0AAAADAAAA/QAAAAAEAIAAgAQABAAAAwAHAAsADwAAAQEBAQEBAQEBAQEBAQEBAQCAA4AAAPyAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAABAAAAPyAAAADAP+AAAAAgP8A/4AAAACA/wD/gAAAAIAAAQAAAAAEAAQAAAUAAAEBAQEBAQMAAQAAAPwAAAADAAQAAAD8AAAAAQAAAAACAIAAgAQABAAAAwAHAAABAQEBAQEBAQCAA4AAAPyAAYAAAACAAAAEAAAA/IAAAAIA/4AAAACAAAMAgACABAAEAAADAAcACwAAAQEBAQEBAQEBAQEBAIADgAAA/IAAgAAAAIAAAAGAAAAAgAAABAAAAPyAAAADAP+AAAAAgP4A/4AAAACAAAAABAAAAIAEAAQAAAMABwALAA8AAAEBAQEBAQEBAQEBAQEBAQEAAAQAAAD8AAAABAAAAPwAAAAEAAAA/AAAAAQAAAD8AAQAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAAYAgACABAAEAAADAAcACwAPABMAFwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAIADgAAA/IAAgAAAAIAAAAGAAAAAgAAA/oAAAACAAAD+gAAAAIAAAAGAAAAAgAAABAAAAPyAAAADAP+AAAAAgAAA/4AAAACA/wD/gAAAAID/AP+AAAAAgAAA/4AAAACAAAEAgACAAQADgAADAAABAQEBAIAAgAAA/4ADgAAA/QAAAAAAAAUAgACABAAEAAADAAcACwAPABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAIADgAAA/IAAgAAAAIAAAAGAAAAAgAAA/YAAAACAAAABgAAAAIAAAAQAAAD8gAAAAwD/gAAAAIAAAP+AAAAAgP4A/4AAAACAAAD/gAAAAIAAAAABAAADAAQABAAAAwAAAQEBAQAABAAAAPwABAAAAP8AAAAAAAAHAIAAgAQABAAAAwAHAAsADwATABcAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQCAA4AAAPyAAIAAAACAAAABgAAAAIAAAP2AAAAAgAAAAYAAAACAAAD9gAAAAIAAAAGAAAAAgAAABAAAAPyAAAADAP+AAAAAgAAA/4AAAACA/wD/gAAAAIAAAP+AAAAAgP8A/4AAAACAAAD/gAAAAIAAAAAEAAAAAAQAAgAAAwAHAAsADwAAAQEBAQEBAQEBAQEBAQEBAQAAAQAAAP8AAgABAAAA/wD/AAEAAAD/AAIAAQAAAP8AAgAAAP8AAAABAAAA/wAAAAAAAAD/AAAAAQAAAP8AAAAAAQAAAAAEAAQAAAkAAAEBAQEBAQEBAQEAAAEAAAABAAAAAQAAAAEAAAD8AAQAAAD/gAAA/4AAAP+AAAD9gAAAAAEBAAAAAgAEAAADAAABAQEBAQABAAAA/wAEAAAA/AAAAAAAAAEAAAAABAAEAAALAAABAQEBAQEBAQEBAQECgAGAAAD8AAAAAIAAAACAAAAAgAAAAQAEAAAA/AAAAAGAAAABAAAAAIAAAACAAAAAAAABAAABAAQAAgAAAwAAAQEBAQAABAAAAPwAAgAAAP8AAAAAAAABAAAAAAQABAAACwAAAQEBAQEBAQEBAQEBAgACAAAA/AAAAACAAAAAgAAAAIAAAACABAAAAPwAAAACAAAAAIAAAACAAAAAgAAAAAAAAQAAAAAEAAIAAAkAAAEBAQEBAQEBAQEDAAEAAAD8AAAAAQAAAAEAAAABAAIAAAD+AAAAAIAAAACAAAAAgAAAAAEAAAAABAAEAAALAAABAQEBAQEBAQEBAQEAAAIAAAAAgAAAAIAAAACAAAAAgAAA/AAEAAAA/4AAAP+AAAD/gAAA/4AAAP4AAAAAAAADAAAAAAQABAAAGwAnADMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAEAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAD/AAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAIAAYAAAACAAAD/gAAA/4AAAP+AAAD/gP4AAIAAAACAAAAAgAAAAIAAAP6AAAD/gAQAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAQAAAP+AAAD+gAAAAIAAAACAAAAAgAAA/oAAAP+AAAD/gAAA/4AAAP+AAAAAgAAAAAAAAQAAAAAEAAIAAAkAAAEBAQEBAQEBAQEAAAEAAAABAAAAAQAAAAEAAAD8AAIAAAD/gAAA/4AAAP+AAAD/gAAAAAEAAAAABAAEAAALAAABAQEBAQEBAQEBAQEAAAGAAAABAAAAAIAAAACAAAAAgAAA/AAEAAAA/4AAAP+AAAD/gAAA/wAAAP6AAAAAAAAEAAAAgAQABAAAAwAHAAsADwAAAQEBAQEBAQEBAQEBAQEBAQCAAYAAAP6AAgABgAAA/oD9gAGAAAD+gAIAAYAAAP6ABAAAAP6AAAABgAAA/oAAAP+AAAD+gAAAAYAAAP6AAAAAAQIAAgAEAAQAAAMAAAEBAQECAAIAAAD+AAQAAAD+AAAAAAAABACAAIAEAAQAAAMABwAjACcAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAAD/AAGAAQAAAP8A/gAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4ABgACAAAD/gAQAAAD/gAAAAIAAAP+AAAAAAAAA/wAAAP+AAAD/gAAAAIAAAACAAAABAAAA/oAAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAAGAAAD/gAAAAAQAAAAABAAEAAADAAcACwAPAAABAQEBAQEBAQEBAQEBAQEBAAAAgAAA/4ADgACAAAD/gPyAAIAAAP+AA4AAgAAA/4AEAAAA/4AAAACAAAD/gAAA/QAAAP+AAAAAgAAA/4AAAAABAAAAAAIAAgAAAwAAAQEBAQAAAgAAAP4AAgAAAP4AAAAAAAAEAAAAAAIABAAAAwAHAAsADwAAAQEBAQEBAQEBAQEBAQEBAQAAAQAAAP8AAQABAAAA/wD/AAEAAAD/AAEAAQAAAP8ABAAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAQCAAQADgAOAABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAYABAAAA/4AAAAGAAAD+gAAAAIAAAP8AAAD/gAAA/4AAAACAAAAAgAOAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAACAAAAAAAABAQABAAOABAAAEwAAAQEBAQEBAQEBAQEBAQEBAQEBAQECAACAAAAAgAAAAIAAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACABAAAAP+AAAD/gAAA/wAAAACAAAD+gAAAAYAAAP+AAAABAAAAAIAAAAAAAAEBAAEABAADgAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQIAAQAAAACAAAAAgAAA/4AAAP+AAAD/AAAAAIAAAP6AAAABgAAA/4ADgAAA/4AAAP+AAAD/gAAA/4AAAP+AAAAAgAAAAIAAAACAAAAAgAAAAAAAAQEAAIADgAOAABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAgAAgAAAAIAAAACAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAOAAAD+gAAAAIAAAP8AAAD/gAAA/4AAAACAAAAAgAAAAQAAAP+AAAAAAAABAQAAgAOABAAADwAAAQEBAQEBAQEBAQEBAQEBAQIAAIAAAACAAAAAgAAA/4AAAP6AAAD/gAAAAIAAAACABAAAAP8AAAD/AAAA/wAAAP+AAAAAgAAAAQAAAAEAAAAAAAACAIAAgAOAA4AAAwAJAAABAQEBAQEBAQEBAIADAAAA/QAAgAAAAgAAAP8AAAADgAAA/QAAAAKA/gAAAAEAAAABAAAAAAIAgACABAAEAAAbACcAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQECAACAAAAAgAAAAIAAAACAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAAAgAAAAAD/gAAAAIAAAACAAAAAgAAA/4AAAAQAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAA/4D/gAAA/4AAAP+AAAAAgAAAAIAAAACAAAEAAAIABAADAAADAAABAQEBAAAEAAAA/AADAAAA/wAAAAAAAAEAAAAABAAEAAALAAABAQEBAQEBAQEBAQEAAAQAAAD/gAAA/4AAAP+AAAD/gAAA/gAEAAAA/gAAAP+AAAD/gAAA/4AAAP+AAAAAAAABAAACAAIABAAAAwAAAQEBAQAAAgAAAP4ABAAAAP4AAAAAAAACAQAAgAOAA4AAFwAbAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAYABgAAAAIAAAP8AAAAAgAAAAIAAAP8AAAD/gAAA/wAAAACAAAAAgAAA/wAAAACAAIAAAACAAAADgAAA/wAAAP+AAAD/gAAA/4AAAP+AAAAAgAAA/4AAAACAAAAAgAAAAIAAAACAAAAAgP+AAAAAgAADAAAAAAQABAAACwAnADMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAgAGAAAD/gAAA/4AAAP+AAAD/gAAAAIACgAEAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgACAAIAAAP+AAAD+gAAAAIAAAACAAAAAgAQAAAD/gAAA/4AAAP+AAAD/gAAAAYAAAACAAAD/AAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAQAAAACAAAAAgAAAAIAAAACAAAAAgAAA/oAAAP6AAAD/gAAAAIAAAACAAAAAgAAAAAAAAgCAAIADgAQAAA8AHwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAAABAAAAAIAAAP+AAAD/AAAA/wAAAP+AAAAAgAAAAQAAAAEAAAAAgAAA/4AAAP8AAAD/AAAA/4AAAACABAAAAP+AAAAAgAAA/wAAAP+AAAAAgAAA/4AAAAEAAAD+gAAA/4AAAACAAAD/AAAA/4AAAACAAAD/gAAAAQAAAAABAAAAAAQAA4AACwAAAQEBAQEBAQEBAQEBAQACAAAAAIAAAACAAAD8AAAAAIAAAACAA4AAAP+AAAD/gAAA/YAAAAKAAAAAgAAAAAAAAQAAAAACAAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEAAACAAAAAgAAAAIAAAACAAAD/gAAA/4AAAP+AAAD/gAQAAAD/gAAA/4AAAP+AAAD/AAAA/4AAAP+AAAD/gAAAAAAAAQIAAAAEAAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEDgACAAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAAAgAQAAAD8AAAAAIAAAACAAAAAgAAAAQAAAACAAAAAgAAAAAAAAQCAAIAEAAQAABcAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQIAAIAAAACAAAAAgAAAAIAAAP+AAAD/AAAA/4AAAP8AAAD/gAAAAIAAAACAAAAAgAQAAAD/gAAA/4AAAP+AAAD/gAAA/oAAAAEAAAD/AAAAAYAAAACAAAAAgAAAAIAAAAAAACAAAAAABAAEAAADAAcACwAPABMAFwAbAB8AIwAnACsALwAzADcAOwA/AEMARwBLAE8AUwBXAFsAXwBjAGcAawBvAHMAdwB7AH8AAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAgAAA/4ABAACAAAD/gAEAAIAAAP+AAQAAgAAA/4D9gACAAAD/gAEAAIAAAP+AAQAAgAAA/4ABAACAAAD/gPyAAIAAAP+AAQAAgAAA/4ABAACAAAD/gAEAAIAAAP+A/YAAgAAA/4ABAACAAAD/gAEAAIAAAP+AAQAAgAAA/4D8gACAAAD/gAEAAIAAAP+AAQAAgAAA/4ABAACAAAD/gP2AAIAAAP+AAQAAgAAA/4ABAACAAAD/gAEAAIAAAP+A/IAAgAAA/4ABAACAAAD/gAEAAIAAAP+AAQAAgAAA/4D9gACAAAD/gAEAAIAAAP+AAQAAgAAA/4ABAACAAAD/gAQAAAD/gAAAAIAAAP+AAAAAgAAA/4AAAACAAAD/gAAAAAAAAP+AAAAAgAAA/4AAAACAAAD/gAAAAIAAAP+AAAAAAAAA/4AAAACAAAD/gAAAAIAAAP+AAAAAgAAA/4AAAAAAAAD/gAAAAIAAAP+AAAAAgAAA/4AAAACAAAD/gAAAAAAAAP+AAAAAgAAA/4AAAACAAAD/gAAAAIAAAP+AAAAAAAAA/4AAAACAAAD/gAAAAIAAAP+AAAAAgAAA/4AAAAAAAAD/gAAAAIAAAP+AAAAAgAAA/4AAAACAAAD/gAAAAAAAAP+AAAAAgAAA/4AAAACAAAD/gAAAAIAAAP+AAAAAAQAAAAAEAAQAAAsAAAEBAQEBAQEBAQEBAQAABAAAAP6AAAD/AAAA/4AAAP+AAAD/gAQAAAD8AAAAAIAAAACAAAAAgAAAAQAAAAAAAAEAAAAABAAEAAALAAABAQEBAQEBAQEBAQEAAAQAAAD/gAAA/4AAAP+AAAD/AAAA/oAEAAAA/oAAAP8AAAD/gAAA/4AAAP+AAAAAAAABAAABgAKABAAADwAAAQEBAQEBAQEBAQEBAQEBAQAAAQAAAACAAAAAgAAAAIAAAP8AAAD/gAAA/4AAAP+ABAAAAP+AAAD/gAAA/4AAAP8AAAAAgAAAAIAAAACAAAAAAAABAAAAAAKABAAADwAAAQEBAQEBAQEBAQEBAQEBAQAAAQAAAACAAAAAgAAAAIAAAP8AAAD/gAAA/4AAAP+ABAAAAP+AAAD/gAAA/4AAAP2AAAACAAAAAIAAAACAAAAAAAABAYAAAAQAAoAABQAAAQEBAQEBAYACgAAA/oAAAP8AAoAAAP8AAAD+gAAAAAEAAAAABAAEAAAJAAABAQEBAQEBAQEBAAACgAAAAIAAAACAAAAAgAAA/AAEAAAA/wAAAP8AAAD/AAAA/wAAAAACAAAAAAQABAAAGwAfAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQGAAQAAAACAAAAAgAAAAIAAAP+AAAD/gAAA/4AAAP8AAAD/gAAA/4AAAP+AAAAAgAAAAIAAAACAAAAAAAEAAAAEAAAA/4AAAP+AAAD/gAAA/wAAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAP8A/wAAAAEAAAEBgAGABAAEAAAFAAABAQEBAQEBgAEAAAABgAAA/YAEAAAA/oAAAP8AAAAAAQAAAAACgAKAAA8AAAEBAQEBAQEBAQEBAQEBAQEBgAEAAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAKAAAD/AAAA/4AAAP+AAAD/gAAAAQAAAACAAAAAgAAAAAAAAQGAAAAEAAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEDAAEAAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAQAAAD/AAAA/4AAAP+AAAD+AAAAAoAAAACAAAAAgAAAAAAAAQGAAAAEAAKAAA8AAAEBAQEBAQEBAQEBAQEBAQEBgAEAAAAAgAAAAIAAAACAAAD/AAAA/4AAAP+AAAD/gAKAAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAAAAAAAAQGAAYAEAAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEDAAEAAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAQAAAD/AAAA/4AAAP+AAAD/gAAAAQAAAACAAAAAgAAAAAAAAQAAAAAEAAQAABsAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAEAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAD/AAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAQAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAAAAAQAAAAAEAAQAAB8AAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAABAAAAAIAAAAEAAAAAgAAAAQAAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP8AAAAAgAAAAIAAAP+AAAD/gAQAAAD/gAAA/4AAAACAAAAAgAAA/wAAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAAEAAAAAgAAAAQAAAACAAAAAAAABAAABgAQABAAADwAAAQEBAQEBAQEBAQEBAQEBAQAAAQAAAACAAAAAgAAAAgAAAP2AAAD/gAAA/4AAAP+ABAAAAP+AAAD/gAAA/4AAAP8AAAAAgAAAAIAAAACAAAAAAAABAAABgAQAAoAAAwAAAQEBAQAABAAAAPwAAoAAAP8AAAAAAAABAYAAAAKABAAAAwAAAQEBAQGAAQAAAP8ABAAAAPwAAAAAAAABAYAAAAQABAAAFwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAwABAAAA/4AAAP+AAAAAgAAAAIAAAP8AAAD/gAAA/4AAAP+AAAAAgAAAAIAAAACABAAAAP8AAAD/gAAA/wAAAP+AAAD/AAAAAIAAAACAAAAAgAAAAQAAAACAAAAAgAAAAAAAAQAAAAAEAAKAAA8AAAEBAQEBAQEBAQEBAQEBAQEAAAKAAAAAgAAAAIAAAACAAAD/AAAA/4AAAP+AAAD+AAKAAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAAAAAAAAQAAAYAEAAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEDAAEAAAD/gAAA/4AAAP+AAAD9gAAAAgAAAACAAAAAgAQAAAD/AAAA/4AAAP+AAAD/gAAAAQAAAACAAAAAgAAAAAAAAQAAAgAEAAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEAAAQAAAD/gAAA/4AAAP+AAAD/AAAA/4AAAP+AAAD/gAQAAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAAAgAAAAAAAAQAAAYACgAKAAAMAAAEBAQEAAAKAAAD9gAKAAAD/AAAAAAAAAQGAAAACgAKAAAMAAAEBAQEBgAEAAAD/AAKAAAD9gAAAAAAAAQAAAYAEAAQAABcAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAQAAAACAAAABAAAAAIAAAAEAAAD/gAAA/4AAAP+AAAD/AAAA/4AAAP+AAAD/gAQAAAD/gAAA/4AAAACAAAAAgAAA/wAAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAAAAAAEAAAAABAAEAAAJAAABAQEBAQEBAQEBAYACgAAA/AAAAACAAAAAgAAAAIAEAAAA/AAAAAEAAAABAAAAAQAAAAABAAAAAAQABAAAEwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEDAAEAAAD/gAAA/4AAAP+AAAD/AAAA/oAAAAEAAAABAAAAAIAAAACABAAAAP6AAAD/AAAA/4AAAP+AAAD/gAAAAQAAAACAAAAAgAAAAQAAAAAAAAEAAAAABAAEAAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQAAAQAAAACAAAAAgAAAAQAAAAEAAAD+gAAA/wAAAP+AAAD/gAAA/4AEAAAA/wAAAP8AAAD/gAAA/4AAAP8AAAAAgAAAAIAAAACAAAABAAAAAAAAAQAAAAAEAAQAABsAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEDAAEAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAQAAAD/AAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAQAAAACAAAAAgAAAAIAAAACAAAAAgAAAAAAAAQAAAAACgAQAABcAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAQAAAACAAAAAgAAAAIAAAP+AAAD/gAAA/4AAAP8AAAAAgAAAAIAAAP+AAAD/gAQAAAD/gAAA/4AAAP+AAAD/AAAA/4AAAP+AAAD/gAAAAQAAAACAAAABAAAAAIAAAAAAAAEAAAAABAAEAAAfAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAQAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAP8AAAD/gAAA/wAAAP+AAAD/AAAAAIAAAACAAAD/gAAA/4AEAAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/wAAAACAAAAAgAAA/4AAAP+AAAABAAAAAIAAAAEAAAAAgAAAAAAAAQAAAAACgAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEBgAEAAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAQAAAD9gAAA/4AAAP+AAAD/gAAAAQAAAACAAAAAgAAAAAAAAQGAAAAEAAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEBgAEAAAAAgAAAAIAAAACAAAD/AAAA/4AAAP+AAAD/gAQAAAD+AAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAAAAAAAAQAAAAAEAAKAAA8AAAEBAQEBAQEBAQEBAQEBAQEBgAKAAAD+AAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAKAAAD/AAAA/4AAAP+AAAD/gAAAAQAAAACAAAAAgAAAAAAAAQGAAYACgAQAAAMAAAEBAQEBgAEAAAD/AAQAAAD9gAAAAAAAAQGAAYAEAAKAAAMAAAEBAQEBgAKAAAD9gAKAAAD/AAAAAAAAAQAAAAAEAAQAAB8AAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAwABAAAA/4AAAP+AAAAAgAAAAIAAAP8AAAD/gAAA/wAAAP+AAAD/AAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAQAAAD/AAAA/4AAAP8AAAD/gAAA/wAAAACAAAAAgAAA/4AAAP+AAAABAAAAAIAAAACAAAAAgAAAAIAAAACAAAAAAAABAAAAAAQABAAAIwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAABAAAAAIAAAAEAAAAAgAAAAQAAAP+AAAD/gAAAAIAAAACAAAD/AAAA/4AAAP8AAAD/gAAA/wAAAACAAAAAgAAA/4AAAP+ABAAAAP+AAAD/gAAAAIAAAACAAAD/AAAA/4AAAP8AAAD/gAAA/wAAAACAAAAAgAAA/4AAAP+AAAABAAAAAIAAAAEAAAAAgAAAAAAAAQGAAYACgAKAAAMAAAEBAQEBgAEAAAD/AAKAAAD/AAAAAAAAAQAAAAAEAAKAABcAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQGAAQAAAACAAAAAgAAAAIAAAP8AAAD/gAAA/wAAAP+AAAD/AAAAAIAAAACAAAAAgAKAAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAD/gAAA/4AAAAEAAAAAgAAAAIAAAAAAAAEAAAGAAoAEAAAFAAABAQEBAQEBgAEAAAD9gAAAAYAEAAAA/YAAAAEAAAAAAQAAAAACgAKAAAUAAAEBAQEBAQAAAoAAAP8AAAD+gAKAAAD9gAAAAYAAAAABAAAAAAQABAAAHwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAEAAAAAgAAAAQAAAACAAAABAAAA/4AAAP+AAAAAgAAAAIAAAP8AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+ABAAAAP+AAAD/gAAAAIAAAACAAAD/AAAA/4AAAP8AAAD/gAAA/wAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAAAAAAEAAAAABAAEAAALAAABAQEBAQEBAQEBAQEBgAEAAAABgAAA/oAAAP8AAAD+gAAAAYAEAAAA/oAAAP8AAAD+gAAAAYAAAAEAAAAAAAABAAAAAAQAAoAABwAAAQEBAQEBAQEAAAQAAAD+gAAA/wAAAP6AAoAAAP8AAAD+gAAAAYAAAAAAAAEBgAAABAAEAAAHAAABAQEBAQEBAQGAAQAAAAGAAAD+gAAA/wAEAAAA/oAAAP8AAAD+gAAAAAAAAQAAAAACgAQAAAcAAAEBAQEBAQEBAYABAAAA/wAAAP6AAAABgAQAAAD8AAAAAYAAAAEAAAAAAAABAAABgAQABAAABwAAAQEBAQEBAQEBgAEAAAABgAAA/AAAAAGABAAAAP6AAAD/AAAAAQAAAAAAAAQBAAEAAwADAAADAAcACwAPAAABAQEBAQEBAQEBAQEBAQEBAYABAAAA/wD/gACAAAD/gAGAAIAAAP+A/wABAAAA/wADAAAA/4AAAAAAAAD/AAAAAQAAAP8AAAAAAAAA/4AAAAACAIAAgAOAA4AACwAPAAABAQEBAQEBAQEBAQEBAQEBAQACAAAAAIAAAP+AAAD+AAAA/4AAAACAAIAAAAEAAAADgAAA/4AAAP4AAAD/gAAAAIAAAAIAAAD/gP8AAAABAAACAAAAAAQABAAAEwAfAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAgAAAACAAAAAgAAA/4AAAP+AAAD+AAAA/4AAAP+AAAAAgAAAAIAAgAAA/4AAAACAAAABAAAAAIAAAP+AAAAEAAAA/4AAAP+AAAD+AAAA/4AAAP+AAAAAgAAAAIAAAAIAAAAAgAAA/4D/gAAA/wAAAP+AAAAAgAAAAQAAAACAABAAAAAABAAEAAADAAcACwAPABMAFwAbAB8AIwAnACsALwAzADcAOwA/AAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAYAAgAAA/4ACAACAAAD/gP2AAIAAAP+AAgAAgAAA/4D9gACAAAD/gAIAAIAAAP+A/YAAgAAA/4ACAACAAAD/gP+AAIAAAP+AAgAAgAAA/4D9gACAAAD/gAIAAIAAAP+A/YAAgAAA/4ACAACAAAD/gP2AAIAAAP+AAgAAgAAA/4AEAAAA/4AAAACAAAD/gAAAAAAAAP+AAAAAgAAA/4AAAAAAAAD/gAAAAIAAAP+AAAAAAAAA/4AAAACAAAD/gAAAAAAAAP+AAAAAgAAA/4AAAAAAAAD/gAAAAIAAAP+AAAAAAAAA/4AAAACAAAD/gAAAAAAAAP+AAAAAgAAA/4AAAAAQAAAAAAQABAAAAwAHAAsADwATABcAGwAfACMAJwArAC8AMwA3ADsAPwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAIAAAP+AAgAAgAAA/4D+gACAAAD/gAIAAIAAAP+A/oAAgAAA/4ACAACAAAD/gP6AAIAAAP+AAgAAgAAA/4D8gACAAAD/gAIAAIAAAP+A/oAAgAAA/4ACAACAAAD/gP6AAIAAAP+AAgAAgAAA/4D+gACAAAD/gAIAAIAAAP+ABAAAAP+AAAAAgAAA/4AAAAAAAAD/gAAAAIAAAP+AAAAAAAAA/4AAAACAAAD/gAAAAAAAAP+AAAAAgAAA/4AAAAAAAAD/gAAAAIAAAP+AAAAAAAAA/4AAAACAAAD/gAAAAAAAAP+AAAAAgAAA/4AAAAAAAAD/gAAAAIAAAP+AAAAAAwCAAIADgAQAABcAGwAfAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQIAAIAAAAEAAAD/AAAAAIAAAP+AAAABAAAA/wAAAP+AAAD/AAAA/4AAAACAAAABAP+AAAAAgAAA/4AAAACAAAAEAAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAAAAYAAAACAAAD/gP+AAAAAgP8A/4AAAACAAAAAAQCAAIADgAOAAA8AAAEBAQEBAQEBAQEBAQEBAQEBAAIAAAAAgAAA/4AAAP+AAAD/AAAA/4AAAP+AAAAAgAOAAAD/gAAA/wAAAP+AAAD/AAAAAQAAAACAAAABAAAAAAAAAgCAAIADgAOAAAMACQAAAQEBAQEBAQEBAQCAAwAAAP0AAYAAAP8AAAACAAAAA4AAAP0AAAACgP8AAAD/AAAAAgAAAAABAIAAgAOAA4AAAwAAAQEBAQCAAwAAAP0AA4AAAP0AAAAAAAACAIAAgAOAA4AAAwALAAABAQEBAQEBAQEBAQEAgAMAAAD9AACAAAACAAAA/4AAAP8AAAADgAAA/QAAAAKA/gAAAAIAAAD/AAAAAQAAAQAAAAAEAAQAABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQACAAAAAIAAAACAAAD/gAAA/4AAAP4AAAD/gAAA/4AAAACAAAAAgAQAAAD/gAAA/4AAAP4AAAD/gAAA/4AAAACAAAAAgAAAAgAAAACAAAAAAAABAQABAAMAAwAACwAAAQEBAQEBAQEBAQEBAYABAAAAAIAAAP+AAAD/AAAA/4AAAACAAwAAAP+AAAD/AAAA/4AAAACAAAABAAAAAAAAAQCAAQAEAAQAABsAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQECAACAAAAAgAAAAQAAAP+AAAD/gAAAAIAAAP8AAAD/gAAA/wAAAACAAAD/gAAA/4AAAAEAAAAAgAQAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAAAgAAA/4AAAACAAAAAgAAAAIAAAACAAAAAgAAAAAAABgCAAIAEAAQAAAMABwALAA8AEwAXAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAgAOAAAD8gAEAAAAAgAAAAIAAAACAAAD+AAAAAIAAAAGAAAAAgAAA/gAAAAGAAAAEAAAA/IAAAAMA/wAAAAEAAAD/AAAAAQD+gP+AAAAAgAAA/4AAAACA/4D/gAAAAIAABgCAAIAEAAQAAAMABwALAA8AEwAXAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAgAOAAAD8gAEAAAAAgAAAAIAAAACAAAD+gAAAAYAAAP4AAAAAgAAAAYAAAACAAAAEAAAA/IAAAAMA/wAAAAEAAAD/AAAAAQD+gP+AAAAAgP+A/4AAAACAAAD/gAAAAIAABgCAAIAEAAQAABMAFwAbAB8AIwAnAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAgAAgAAAAIAAAAEAAAD/AAAA/4AAAP+AAAD/gAAA/wAAAAEAAAAAgAAAAAAAgAAA/oAAgAAA/4ACAACAAAD/gP4AAIAAAP+AAgAAgAAA/4AEAAAA/wAAAP+AAAD/gAAA/4AAAP8AAAABAAAAAIAAAACAAAAAgAAA/4D/gAAAAIABAAAA/4AAAACAAAD/gAAA/oAAAP+AAAAAgAAA/4AAAAACAQAAgAOABAAAFwAbAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAYABgAAAAIAAAP+AAAD/gAAAAIAAAP+AAAD/gAAA/4AAAACAAAD/gAAAAQAAAP8A/4AAgAAA/4AEAAAA/4AAAP8AAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAAAgAAAAIAAAAEAAAAAAAAA/wAAAAACAIAAgAQABAAAFwAbAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAYACgAAA/4AAAP+AAAD/gAAAAIAAAP+AAAD+gAAAAQAAAP8AAAABAAAAAIAAAP8A/wAAgAAA/4AEAAAA/gAAAAEAAAD/gAAA/4AAAP8AAAD/gAAAAIAAAAEAAAAAgAAAAIAAAACAAAD+gAAA/wAAAAABAIAAgAQABAAAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQIAAIAAAACAAAAAgAAAAIAAAP8AAAD/gAAAAIAAAP6AAAAAgAAA/4AAAP8AAAAAgAAAAIAAAACABAAAAP+AAAD/gAAA/4AAAP8AAAAAgAAA/wAAAP+AAAAAgAAAAQAAAP+AAAABAAAAAIAAAACAAAAAAAABAIAAgAQABAAAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQGAAYAAAP+AAAAAgAAAAQAAAP8AAAD/gAAAAIAAAP6AAAAAgAAA/4AAAP8AAAABAAAAAIAAAP+ABAAAAP8AAAD/gAAAAIAAAP6AAAAAgAAA/wAAAP+AAAAAgAAAAQAAAP+AAAABgAAA/4AAAACAAAAAAAABAIAAgAQABAAAFwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAAAAIAAAAEAAAAAgAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACABAAAAP+AAAAAgAAA/4AAAP6AAAD/gAAA/4AAAP+AAAAAgAAAAIAAAACAAAABgAAAAAAAAQCAAIAEAAQAABsAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQECAACAAAAAgAAAAIAAAACAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAAAgAQAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAAAAAQEAAIADgAQAAAsAAAEBAQEBAQEBAQEBAQIAAYAAAP8AAAD/gAAA/wAAAACAAAAAgAQAAAD/AAAA/gAAAP+AAAABAAAAAIAAAAAAAAEAgACABAAEAAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQGAAoAAAP+AAAD/AAAAAIAAAACAAAD+gAAA/4AAAP8AAAAAgAAAAIAEAAAA/QAAAP+AAAABAAAAAIAAAAEAAAD+AAAA/4AAAAEAAAAAgAAAAAAAAAAYASYAAQAAAAAAAAAIAAAAAQAAAAAAAQAIAAgAAQAAAAAAAgAHABAAAQAAAAAAAwAIABcAAQAAAAAABAAQAB8AAQAAAAAABQALAC8AAQAAAAAABgAIADoAAQAAAAAACQAJAEIAAQAAAAAACgA6AEsAAQAAAAAADQARAIUAAQAAAAAADgAyAJYAAQAAAAAAEwAMAMgAAwABBAkAAAAQANQAAwABBAkAAQAQAOQAAwABBAkAAgAOAPQAAwABBAkAAwAQAQIAAwABBAkABAAgARIAAwABBAkABQAWATIAAwABBAkABgAQAUgAAwABBAkACQASAVgAAwABBAkACgB0AWoAAwABBAkADQAiAd4AAwABBAkADgBkAgAAAwABBAkAEwAYAmQoYykgMjAyMlVyc2FGb250UmVndWxhclVyc2FGb250VXJzYUZvbnQgUmVndWxhclZlcnNpb24gMS4wVXJzYUZvbnRVcnNhRnJhbmtBbiBvcGVuIGxpY2VuY2UgZ2VuZXJhbCBwdXJwb3NlIHRleHRtb2RlIGZvbnQgYnkgVXJzYUZyYW5rQ0MwIDEuMCBVbml2ZXJzYWxodHRwczovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4wL0hlbGxvIFdvcmxkIQAoAGMAKQAgADIAMAAyADIAVQByAHMAYQBGAG8AbgB0AFIAZQBnAHUAbABhAHIAVQByAHMAYQBGAG8AbgB0AFUAcgBzAGEARgBvAG4AdAAgAFIAZQBnAHUAbABhAHIAVgBlAHIAcwBpAG8AbgAgADEALgAwAFUAcgBzAGEARgBvAG4AdABVAHIAcwBhAEYAcgBhAG4AawBBAG4AIABvAHAAZQBuACAAbABpAGMAZQBuAGMAZQAgAGcAZQBuAGUAcgBhAGwAIABwAHUAcgBwAG8AcwBlACAAdABlAHgAdABtAG8AZABlACAAZgBvAG4AdAAgAGIAeQAgAFUAcgBzAGEARgByAGEAbgBrAEMAQwAwACAAMQAuADAAIABVAG4AaQB2AGUAcgBzAGEAbABoAHQAdABwAHMAOgAvAC8AYwByAGUAYQB0AGkAdgBlAGMAbwBtAG0AbwBuAHMALgBvAHIAZwAvAHAAdQBiAGwAaQBjAGQAbwBtAGEAaQBuAC8AegBlAHIAbwAvADEALgAwAC8ASABlAGwAbABvACAAVwBvAHIAbABkACEAAAADAAAAAAAAAGYAMwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==\r
1362
1394
  `)).arrayBuffer();
1363
- await this.Ss(t), this.ws = m.parse(t)[0], await this.ks();
1395
+ await this.Ls(t), this.ps = m.parse(t)[0], await this.Os();
1364
1396
  }
1365
- zs(A) {
1366
- if (A === void 0) return this._s;
1367
- this._s = A, this.bs = this.Ys.calculateMaxGlyphDimensions(this.fs.map((e) => e.character), this._s, this.ws);
1368
- const t = this.Ms.createTextureAtlas(this.fs, this.bs, this._s, this.ws);
1369
- this.ds = t.framebuffer, this.ps = t.columns, this.vs = t.rows;
1397
+ Ts(A) {
1398
+ if (A === void 0) return this.bs;
1399
+ this.bs = A, this.Ms = this.Ss.calculateMaxGlyphDimensions(this._s.map((e) => e.character), this.bs, this.ps);
1400
+ const t = this.Rs.createTextureAtlas(this._s, this.Ms, this.bs, this.ps);
1401
+ this.vs = t.framebuffer, this.$s = t.columns, this.Gs = t.rows;
1370
1402
  }
1371
- async Ls(A) {
1403
+ async Us(A) {
1372
1404
  try {
1373
1405
  const t = await fetch(A);
1374
- if (!t.ok) throw new I(`Failed to load font file: ${t.status} ${t.statusText}`);
1406
+ if (!t.ok) throw new f(`Failed to load font file: ${t.status} ${t.statusText}`);
1375
1407
  const e = await t.arrayBuffer();
1376
- await this.Ss(e);
1408
+ await this.Ls(e);
1377
1409
  const s = m.parse(e);
1378
1410
  if (!s || s.length === 0) throw Error("Failed to parse font file");
1379
- this.ws = s[0], await this.ks();
1411
+ this.ps = s[0], await this.Os();
1380
1412
  } catch (t) {
1381
- throw new I("Failed to load font: " + (t instanceof Error ? t.message : "Unknown error"), t);
1413
+ throw new f("Failed to load font: " + (t instanceof Error ? t.message : "Unknown error"), t);
1382
1414
  }
1383
1415
  }
1384
- async Ss(A) {
1416
+ async Ls(A) {
1385
1417
  const t = Date.now();
1386
- this.$s = new FontFace("CustomFont_" + t, A), await this.$s.load(), document.fonts.add(this.$s);
1418
+ this.Ys = new FontFace("CustomFont_" + t, A), await this.Ys.load(), document.fonts.add(this.Ys);
1387
1419
  }
1388
- async ks() {
1389
- const A = this.Gs.extractCharacters(this.ws), t = this.Gs.filterProblematicCharacters(A);
1390
- this.fs = this.Fs.createCharacterObjects(t, this.ws), this.bs = this.Ys.calculateMaxGlyphDimensions(t, this._s, this.ws);
1391
- const e = this.Ms.createTextureAtlas(this.fs, this.bs, this._s, this.ws);
1392
- this.ds = e.framebuffer, this.ps = e.columns, this.vs = e.rows;
1420
+ async Os() {
1421
+ const A = this.Fs.extractCharacters(this.ps), t = this.Fs.filterProblematicCharacters(A);
1422
+ this._s = this.ks.createCharacterObjects(t, this.ps), this.Ms = this.Ss.calculateMaxGlyphDimensions(t, this.bs, this.ps);
1423
+ const e = this.Rs.createTextureAtlas(this._s, this.Ms, this.bs, this.ps);
1424
+ this.vs = e.framebuffer, this.$s = e.columns, this.Gs = e.rows;
1393
1425
  }
1394
- us(A) {
1395
- return this.Fs.us(A, this.fs);
1426
+ fs(A) {
1427
+ return this.ks.fs(A, this._s);
1396
1428
  }
1397
- Is(A) {
1398
- return this.Fs.Is(A, this.fs);
1429
+ ds(A) {
1430
+ return this.ks.ds(A, this._s);
1399
1431
  }
1400
1432
  kA() {
1401
- this.ds.kA(), document.fonts.delete(this.$s);
1433
+ this.vs.kA(), document.fonts.delete(this.Ys);
1402
1434
  }
1403
1435
  get fontFramebuffer() {
1404
- return this.ds;
1436
+ return this.vs;
1405
1437
  }
1406
1438
  get characters() {
1407
- return this.fs;
1439
+ return this._s;
1408
1440
  }
1409
1441
  get textureColumns() {
1410
- return this.ps;
1442
+ return this.$s;
1411
1443
  }
1412
1444
  get textureRows() {
1413
- return this.vs;
1445
+ return this.Gs;
1414
1446
  }
1415
1447
  get maxGlyphDimensions() {
1416
- return this.bs;
1448
+ return this.Ms;
1417
1449
  }
1418
1450
  get fontSize() {
1419
- return this._s;
1451
+ return this.bs;
1420
1452
  }
1421
1453
  get font() {
1422
- return this.ws;
1454
+ return this.ps;
1423
1455
  }
1424
1456
  }
1425
- class RA {
1457
+ class xA {
1426
1458
  constructor(A, t, e) {
1427
- Q(this, "Os");
1428
- Q(this, "Ts");
1429
- Q(this, "PA");
1430
- Q(this, "uA");
1431
- Q(this, "Us");
1432
- Q(this, "Ws");
1433
- Q(this, "Hs");
1434
- Q(this, "Ks");
1435
- Q(this, "Js");
1436
- this.Hs = A, this.Ks = t, this.Js = e, this.iA();
1459
+ n(this, "Ws");
1460
+ n(this, "Hs");
1461
+ n(this, "PA");
1462
+ n(this, "uA");
1463
+ n(this, "Ks");
1464
+ n(this, "Js");
1465
+ n(this, "Vs");
1466
+ n(this, "Zs");
1467
+ n(this, "Ns");
1468
+ this.Vs = A, this.Zs = t, this.Ns = e, this.iA();
1437
1469
  }
1438
1470
  iA() {
1439
- this.Os = Math.floor(this.Hs.width / this.Ks), this.Ts = Math.floor(this.Hs.height / this.Js), this.PA = this.Os * this.Ks, this.uA = this.Ts * this.Js, this.Us = Math.floor((this.Hs.width - this.PA) / 2), this.Ws = Math.floor((this.Hs.height - this.uA) / 2);
1471
+ this.Ws = Math.floor(this.Vs.width / this.Zs), this.Hs = Math.floor(this.Vs.height / this.Ns), this.PA = this.Ws * this.Zs, this.uA = this.Hs * this.Ns, this.Ks = Math.floor((this.Vs.width - this.PA) / 2), this.Js = Math.floor((this.Vs.height - this.uA) / 2);
1440
1472
  }
1441
- Vs(A, t) {
1442
- this.Ks = A, this.Js = t, this.iA();
1473
+ Xs(A, t) {
1474
+ this.Zs = A, this.Ns = t, this.iA();
1443
1475
  }
1444
1476
  get cellWidth() {
1445
- return this.Ks;
1477
+ return this.Zs;
1446
1478
  }
1447
1479
  get cellHeight() {
1448
- return this.Js;
1480
+ return this.Ns;
1449
1481
  }
1450
1482
  get cols() {
1451
- return this.Os;
1483
+ return this.Ws;
1452
1484
  }
1453
1485
  get rows() {
1454
- return this.Ts;
1486
+ return this.Hs;
1455
1487
  }
1456
1488
  get width() {
1457
1489
  return this.PA;
@@ -1460,302 +1492,302 @@ class RA {
1460
1492
  return this.uA;
1461
1493
  }
1462
1494
  get offsetX() {
1463
- return this.Us;
1495
+ return this.Ks;
1464
1496
  }
1465
1497
  get offsetY() {
1466
- return this.Ws;
1498
+ return this.Js;
1467
1499
  }
1468
1500
  }
1469
1501
  class TA {
1470
1502
  constructor(A = {}) {
1471
- Q(this, "Hs");
1472
- Q(this, "Zs");
1473
- Q(this, "Ns");
1474
- A.canvas ? (this.Hs = A.canvas, this.Ns = !1) : (this.Hs = this.Xs(A.width, A.height), this.Ns = !0), this.Hs.style.imageRendering = "pixelated";
1503
+ n(this, "Vs");
1504
+ n(this, "js");
1505
+ n(this, "qs");
1506
+ A.canvas ? (this.Vs = A.canvas, this.qs = !1) : (this.Vs = this.Ai(A.width, A.height), this.qs = !0), this.Vs.style.imageRendering = "pixelated";
1475
1507
  }
1476
- Xs(A, t) {
1508
+ Ai(A, t) {
1477
1509
  const e = document.createElement("canvas");
1478
1510
  return e.className = "textmodeCanvas", e.style.imageRendering = "pixelated", e.width = A || 800, e.height = t || 600, document.body.appendChild(e), e;
1479
1511
  }
1480
- js(A, t) {
1481
- this.Hs.width = A ?? this.Hs.width, this.Hs.height = t ?? this.Hs.height;
1512
+ ti(A, t) {
1513
+ this.Vs.width = A ?? this.Vs.width, this.Vs.height = t ?? this.Vs.height;
1482
1514
  }
1483
- qs() {
1484
- const A = this.Hs.getContext("webgl2", { alpha: !0, premultipliedAlpha: !1, preserveDrawingBuffer: !0, antialias: !1, depth: !1, stencil: !1, powerPreference: "high-performance" });
1485
- if (!A) throw new I("`textmode.js` requires WebGL2 support.");
1515
+ ei() {
1516
+ const A = this.Vs.getContext("webgl2", { alpha: !0, premultipliedAlpha: !1, preserveDrawingBuffer: !0, antialias: !1, depth: !1, stencil: !1, powerPreference: "high-performance" });
1517
+ if (!A) throw new f("`textmode.js` requires WebGL2 support.");
1486
1518
  return A;
1487
1519
  }
1488
1520
  kA() {
1489
- this.Zs && this.Zs.disconnect();
1490
- const A = this.Hs.getContext("webgl") || this.Hs.getContext("webgl2");
1521
+ this.js && this.js.disconnect();
1522
+ const A = this.Vs.getContext("webgl") || this.Vs.getContext("webgl2");
1491
1523
  if (A) {
1492
1524
  const t = A.getExtension("WEBGL_lose_context");
1493
1525
  t && t.loseContext();
1494
1526
  }
1495
- this.Ns && this.Hs.parentNode && this.Hs.parentNode.removeChild(this.Hs);
1527
+ this.qs && this.Vs.parentNode && this.Vs.parentNode.removeChild(this.Vs);
1496
1528
  }
1497
1529
  get canvas() {
1498
- return this.Hs;
1530
+ return this.Vs;
1499
1531
  }
1500
1532
  get width() {
1501
- return this.Hs.width;
1533
+ return this.Vs.width;
1502
1534
  }
1503
1535
  get height() {
1504
- return this.Hs.height;
1536
+ return this.Vs.height;
1505
1537
  }
1506
1538
  }
1507
1539
  class MA {
1508
1540
  constructor(A = 60) {
1509
- Q(this, "Ai");
1510
- Q(this, "ti");
1511
- Q(this, "ei", null);
1512
- Q(this, "si", 0);
1513
- Q(this, "ii", !0);
1514
- Q(this, "Bi", 0);
1515
- Q(this, "Qi", 0);
1516
- Q(this, "Ei", []);
1517
- Q(this, "ri", 10);
1518
- Q(this, "ni", 0);
1519
- this.Ai = A, this.ti = 1e3 / A;
1541
+ n(this, "si");
1542
+ n(this, "ii");
1543
+ n(this, "Bi", null);
1544
+ n(this, "Qi", 0);
1545
+ n(this, "Ei", !0);
1546
+ n(this, "ri", 0);
1547
+ n(this, "ni", 0);
1548
+ n(this, "oi", []);
1549
+ n(this, "gi", 10);
1550
+ n(this, "ai", 0);
1551
+ this.si = A, this.ii = 1e3 / A;
1520
1552
  }
1521
1553
  start(A) {
1522
- if (!this.ii) return;
1523
- this.si = performance.now();
1554
+ if (!this.Ei) return;
1555
+ this.Qi = performance.now();
1524
1556
  const t = (e) => {
1525
- if (!this.ii) return void (this.ei = null);
1526
- const s = e - this.si;
1527
- s >= this.ti && (A(), this.si = e - s % this.ti), this.ii && (this.ei = requestAnimationFrame(t));
1557
+ if (!this.Ei) return void (this.Bi = null);
1558
+ const s = e - this.Qi;
1559
+ s >= this.ii && (A(), this.Qi = e - s % this.ii), this.Ei && (this.Bi = requestAnimationFrame(t));
1528
1560
  };
1529
- this.ei = requestAnimationFrame(t);
1561
+ this.Bi = requestAnimationFrame(t);
1530
1562
  }
1531
1563
  stop() {
1532
- this.ei && (cancelAnimationFrame(this.ei), this.ei = null);
1564
+ this.Bi && (cancelAnimationFrame(this.Bi), this.Bi = null);
1533
1565
  }
1534
1566
  pause() {
1535
- this.ii && (this.ii = !1, this.stop());
1567
+ this.Ei && (this.Ei = !1, this.stop());
1536
1568
  }
1537
1569
  resume(A) {
1538
- this.ii || (this.ii = !0, this.start(A));
1570
+ this.Ei || (this.Ei = !0, this.start(A));
1539
1571
  }
1540
1572
  frameRate(A, t) {
1541
- if (A === void 0) return this.Bi;
1542
- this.Ai = A, this.ti = 1e3 / A, this.ii && t && (this.stop(), this.start(t));
1573
+ if (A === void 0) return this.ri;
1574
+ this.si = A, this.ii = 1e3 / A, this.Ei && t && (this.stop(), this.start(t));
1543
1575
  }
1544
1576
  measureFrameRate() {
1545
1577
  const A = performance.now();
1546
- if (this.Qi > 0) {
1547
- const t = A - this.Qi;
1548
- this.Ei.push(t), this.Ei.length > this.ri && this.Ei.shift();
1549
- const e = this.Ei.reduce((s, i) => s + i, 0) / this.Ei.length;
1550
- this.Bi = 1e3 / e;
1578
+ if (this.ni > 0) {
1579
+ const t = A - this.ni;
1580
+ this.oi.push(t), this.oi.length > this.gi && this.oi.shift();
1581
+ const e = this.oi.reduce((s, i) => s + i, 0) / this.oi.length;
1582
+ this.ri = 1e3 / e;
1551
1583
  }
1552
- this.Qi = A;
1584
+ this.ni = A;
1553
1585
  }
1554
1586
  get isLooping() {
1555
- return this.ii;
1587
+ return this.Ei;
1556
1588
  }
1557
1589
  get frameRateLimit() {
1558
- return this.Ai;
1590
+ return this.si;
1559
1591
  }
1560
1592
  get currentFrameRate() {
1561
- return this.Bi;
1593
+ return this.ri;
1562
1594
  }
1563
1595
  get frameCount() {
1564
- return this.ni;
1596
+ return this.ai;
1565
1597
  }
1566
1598
  set frameCount(A) {
1567
- this.ni = A;
1599
+ this.ai = A;
1568
1600
  }
1569
1601
  incrementFrame() {
1570
- this.ni++;
1602
+ this.ai++;
1571
1603
  }
1572
1604
  resetFrameCount() {
1573
- this.ni = 0;
1605
+ this.ai = 0;
1574
1606
  }
1575
1607
  }
1576
1608
  class FA {
1577
1609
  constructor() {
1578
- Q(this, "gi", /* @__PURE__ */ new Map());
1579
- Q(this, "oi", null);
1580
- Q(this, "ai", null);
1581
- Q(this, "hi");
1582
- Q(this, "ci");
1583
- Q(this, "Ci", !1);
1584
- Q(this, "li");
1585
- Q(this, "Di");
1586
- Q(this, "Pi", { ArrowUp: "UP_ARROW", ArrowDown: "DOWN_ARROW", ArrowLeft: "LEFT_ARROW", ArrowRight: "RIGHT_ARROW", F1: "F1", F2: "F2", F3: "F3", F4: "F4", F5: "F5", F6: "F6", F7: "F7", F8: "F8", F9: "F9", F10: "F10", F11: "F11", F12: "F12", Enter: "ENTER", Return: "RETURN", Tab: "TAB", Escape: "ESCAPE", Backspace: "BACKSPACE", Delete: "DELETE", Insert: "INSERT", Home: "HOME", End: "END", PageUp: "PAGE_UP", PageDown: "PAGE_DOWN", Shift: "SHIFT", Control: "CONTROL", Alt: "ALT", Meta: "META", " ": "SPACE" });
1587
- }
1588
- ui() {
1589
- this.Ci || (this.hi = (A) => {
1590
- this.Ii(A);
1591
- }, this.ci = (A) => {
1592
- this.wi(A);
1593
- }, window.addEventListener("keydown", this.hi, { passive: !1 }), window.addEventListener("keyup", this.ci, { passive: !1 }), this.Ci = !0);
1610
+ n(this, "hi", /* @__PURE__ */ new Map());
1611
+ n(this, "ci", null);
1612
+ n(this, "li", null);
1613
+ n(this, "Ci");
1614
+ n(this, "Di");
1615
+ n(this, "Pi", !1);
1616
+ n(this, "ui");
1617
+ n(this, "Ii");
1618
+ n(this, "wi", { ArrowUp: "UP_ARROW", ArrowDown: "DOWN_ARROW", ArrowLeft: "LEFT_ARROW", ArrowRight: "RIGHT_ARROW", F1: "F1", F2: "F2", F3: "F3", F4: "F4", F5: "F5", F6: "F6", F7: "F7", F8: "F8", F9: "F9", F10: "F10", F11: "F11", F12: "F12", Enter: "ENTER", Return: "RETURN", Tab: "TAB", Escape: "ESCAPE", Backspace: "BACKSPACE", Delete: "DELETE", Insert: "INSERT", Home: "HOME", End: "END", PageUp: "PAGE_UP", PageDown: "PAGE_DOWN", Shift: "SHIFT", Control: "CONTROL", Alt: "ALT", Meta: "META", " ": "SPACE" });
1594
1619
  }
1595
1620
  fi() {
1596
- this.Ci && (window.removeEventListener("keydown", this.hi), window.removeEventListener("keyup", this.ci), this.Ci = !1, this.gi.clear(), this.oi = null, this.ai = null);
1621
+ this.Pi || (this.Ci = (A) => {
1622
+ this.di(A);
1623
+ }, this.Di = (A) => {
1624
+ this.pi(A);
1625
+ }, window.addEventListener("keydown", this.Ci, { passive: !1 }), window.addEventListener("keyup", this.Di, { passive: !1 }), this.Pi = !0);
1597
1626
  }
1598
- di(A) {
1599
- this.li = A;
1627
+ _i() {
1628
+ this.Pi && (window.removeEventListener("keydown", this.Ci), window.removeEventListener("keyup", this.Di), this.Pi = !1, this.hi.clear(), this.ci = null, this.li = null);
1600
1629
  }
1601
- _i(A) {
1602
- this.Di = A;
1630
+ mi(A) {
1631
+ this.ui = A;
1603
1632
  }
1604
- pi(A) {
1605
- const t = this.mi(A), e = this.gi.get(A) || this.gi.get(t);
1633
+ yi(A) {
1634
+ this.Ii = A;
1635
+ }
1636
+ bi(A) {
1637
+ const t = this.$i(A), e = this.hi.get(A) || this.hi.get(t);
1606
1638
  return (e == null ? void 0 : e.isPressed) || !1;
1607
1639
  }
1608
- yi() {
1609
- return this.oi;
1640
+ Gi() {
1641
+ return this.ci;
1610
1642
  }
1611
- bi() {
1612
- return this.ai;
1643
+ xi() {
1644
+ return this.li;
1613
1645
  }
1614
- $i() {
1646
+ Mi() {
1615
1647
  const A = [];
1616
- for (const [t, e] of this.gi) e.isPressed && A.push(t);
1648
+ for (const [t, e] of this.hi) e.isPressed && A.push(t);
1617
1649
  return A;
1618
1650
  }
1619
- Gi() {
1620
- return { ctrl: this.pi("Control"), shift: this.pi("Shift"), alt: this.pi("Alt"), meta: this.pi("Meta") };
1651
+ Yi() {
1652
+ return { ctrl: this.bi("Control"), shift: this.bi("Shift"), alt: this.bi("Alt"), meta: this.bi("Meta") };
1621
1653
  }
1622
- Mi() {
1623
- this.gi.clear(), this.oi = null, this.ai = null;
1654
+ Fi() {
1655
+ this.hi.clear(), this.ci = null, this.li = null;
1624
1656
  }
1625
- Ii(A) {
1657
+ di(A) {
1626
1658
  const t = A.key, e = Date.now();
1627
- this.gi.has(t) || this.gi.set(t, { isPressed: !1, lastPressTime: 0, lastReleaseTime: 0 });
1628
- const s = this.gi.get(t);
1629
- if (!s.isPressed && (s.isPressed = !0, s.lastPressTime = e, this.oi = t, this.li)) {
1659
+ this.hi.has(t) || this.hi.set(t, { isPressed: !1, lastPressTime: 0, lastReleaseTime: 0 });
1660
+ const s = this.hi.get(t);
1661
+ if (!s.isPressed && (s.isPressed = !0, s.lastPressTime = e, this.ci = t, this.ui)) {
1630
1662
  const i = { key: t, keyCode: A.keyCode, ctrlKey: A.ctrlKey, shiftKey: A.shiftKey, altKey: A.altKey, metaKey: A.metaKey, isPressed: !0, originalEvent: A };
1631
- this.li(i);
1663
+ this.ui(i);
1632
1664
  }
1633
1665
  }
1634
- wi(A) {
1666
+ pi(A) {
1635
1667
  const t = A.key, e = Date.now();
1636
- this.gi.has(t) || this.gi.set(t, { isPressed: !1, lastPressTime: 0, lastReleaseTime: 0 });
1637
- const s = this.gi.get(t);
1638
- if (s.isPressed = !1, s.lastReleaseTime = e, this.ai = t, this.Di) {
1668
+ this.hi.has(t) || this.hi.set(t, { isPressed: !1, lastPressTime: 0, lastReleaseTime: 0 });
1669
+ const s = this.hi.get(t);
1670
+ if (s.isPressed = !1, s.lastReleaseTime = e, this.li = t, this.Ii) {
1639
1671
  const i = { key: t, keyCode: A.keyCode, ctrlKey: A.ctrlKey, shiftKey: A.shiftKey, altKey: A.altKey, metaKey: A.metaKey, isPressed: !1, originalEvent: A };
1640
- this.Di(i);
1672
+ this.Ii(i);
1641
1673
  }
1642
1674
  }
1643
- mi(A) {
1644
- return this.Pi[A] || A.toLowerCase();
1675
+ $i(A) {
1676
+ return this.wi[A] || A.toLowerCase();
1645
1677
  }
1646
1678
  }
1647
1679
  class GA {
1648
1680
  constructor(A) {
1649
- Q(this, "Hs");
1650
- Q(this, "xi");
1651
- Q(this, "Yi", { x: -1, y: -1 });
1652
- Q(this, "Fi", { x: -1, y: -1 });
1653
- Q(this, "Ri", null);
1654
- Q(this, "Si");
1655
- Q(this, "ki");
1656
- Q(this, "zi");
1657
- Q(this, "Li");
1658
- Q(this, "Oi");
1659
- Q(this, "Ti");
1660
- Q(this, "Ci", !1);
1661
- Q(this, "Ui");
1662
- Q(this, "Wi");
1663
- Q(this, "Hi");
1664
- Q(this, "Ki");
1665
- Q(this, "Ji");
1666
- this.Hs = A;
1667
- }
1668
- Rs(A) {
1669
- this.xi = A, this.Vi();
1670
- }
1671
- ui() {
1672
- if (this.Ci) return;
1673
- const A = this.Hs.canvas;
1674
- this.Si = (t) => {
1675
- this.Zi(t), this.Ni(t);
1676
- }, this.ki = () => {
1677
- this.Fi = { ...this.Yi }, this.Yi.x = -1, this.Yi.y = -1, this.Ri = null;
1678
- }, this.zi = (t) => {
1679
- this.Zi(t), this.Xi(t);
1680
- }, this.Li = (t) => {
1681
- this.Zi(t), this.ji(t);
1682
- }, this.Oi = (t) => {
1683
- this.Zi(t), this.qi(t);
1684
- }, this.Ti = (t) => {
1685
- this.Zi(t), this.AB(t);
1686
- }, A.addEventListener("mousemove", this.Si, { passive: !0 }), A.addEventListener("mouseleave", this.ki, { passive: !0 }), A.addEventListener("mousedown", this.zi, { passive: !0 }), A.addEventListener("mouseup", this.Li, { passive: !0 }), A.addEventListener("click", this.Oi, { passive: !0 }), A.addEventListener("wheel", this.Ti, { passive: !1 }), this.Ci = !0;
1681
+ n(this, "Vs");
1682
+ n(this, "Ri");
1683
+ n(this, "Si", { x: -1, y: -1 });
1684
+ n(this, "ki", { x: -1, y: -1 });
1685
+ n(this, "zi", null);
1686
+ n(this, "Li");
1687
+ n(this, "Oi");
1688
+ n(this, "Ti");
1689
+ n(this, "Ui");
1690
+ n(this, "Wi");
1691
+ n(this, "Hi");
1692
+ n(this, "Pi", !1);
1693
+ n(this, "Ki");
1694
+ n(this, "Ji");
1695
+ n(this, "Vi");
1696
+ n(this, "Zi");
1697
+ n(this, "Ni");
1698
+ this.Vs = A;
1699
+ }
1700
+ zs(A) {
1701
+ this.Ri = A, this.Xi();
1687
1702
  }
1688
1703
  fi() {
1689
- if (!this.Ci) return;
1690
- const A = this.Hs.canvas;
1691
- A.removeEventListener("mousemove", this.Si), A.removeEventListener("mouseleave", this.ki), A.removeEventListener("mousedown", this.zi), A.removeEventListener("mouseup", this.Li), A.removeEventListener("click", this.Oi), A.removeEventListener("wheel", this.Ti), this.Ci = !1;
1692
- }
1693
- Vi() {
1694
- if (this.Ci) try {
1695
- if (this.Ri) {
1696
- const A = new MouseEvent("mousemove", { clientX: this.Ri.x, clientY: this.Ri.y, bubbles: !1, cancelable: !1 });
1697
- this.Zi(A);
1698
- } else this.Yi.x !== -1 && this.Yi.y !== -1 && (this.Yi.x >= this.xi.cols || this.Yi.y >= this.xi.rows) && (this.Yi.x = -1, this.Yi.y = -1);
1704
+ if (this.Pi) return;
1705
+ const A = this.Vs.canvas;
1706
+ this.Li = (t) => {
1707
+ this.ji(t), this.qi(t);
1708
+ }, this.Oi = () => {
1709
+ this.ki = { ...this.Si }, this.Si.x = -1, this.Si.y = -1, this.zi = null;
1710
+ }, this.Ti = (t) => {
1711
+ this.ji(t), this.AB(t);
1712
+ }, this.Ui = (t) => {
1713
+ this.ji(t), this.tB(t);
1714
+ }, this.Wi = (t) => {
1715
+ this.ji(t), this.eB(t);
1716
+ }, this.Hi = (t) => {
1717
+ this.ji(t), this.sB(t);
1718
+ }, A.addEventListener("mousemove", this.Li, { passive: !0 }), A.addEventListener("mouseleave", this.Oi, { passive: !0 }), A.addEventListener("mousedown", this.Ti, { passive: !0 }), A.addEventListener("mouseup", this.Ui, { passive: !0 }), A.addEventListener("click", this.Wi, { passive: !0 }), A.addEventListener("wheel", this.Hi, { passive: !1 }), this.Pi = !0;
1719
+ }
1720
+ _i() {
1721
+ if (!this.Pi) return;
1722
+ const A = this.Vs.canvas;
1723
+ A.removeEventListener("mousemove", this.Li), A.removeEventListener("mouseleave", this.Oi), A.removeEventListener("mousedown", this.Ti), A.removeEventListener("mouseup", this.Ui), A.removeEventListener("click", this.Wi), A.removeEventListener("wheel", this.Hi), this.Pi = !1;
1724
+ }
1725
+ Xi() {
1726
+ if (this.Pi) try {
1727
+ if (this.zi) {
1728
+ const A = new MouseEvent("mousemove", { clientX: this.zi.x, clientY: this.zi.y, bubbles: !1, cancelable: !1 });
1729
+ this.ji(A);
1730
+ } else this.Si.x !== -1 && this.Si.y !== -1 && (this.Si.x >= this.Ri.cols || this.Si.y >= this.Ri.rows) && (this.Si.x = -1, this.Si.y = -1);
1699
1731
  } catch {
1700
- this.Yi.x = -1, this.Yi.y = -1;
1732
+ this.Si.x = -1, this.Si.y = -1;
1701
1733
  }
1702
1734
  }
1703
- tB(A) {
1704
- this.Ui = A;
1705
- }
1706
- di(A) {
1707
- this.Wi = A;
1708
- }
1709
- _i(A) {
1710
- this.Hi = A;
1711
- }
1712
- eB(A) {
1735
+ iB(A) {
1713
1736
  this.Ki = A;
1714
1737
  }
1715
- sB(A) {
1738
+ mi(A) {
1716
1739
  this.Ji = A;
1717
1740
  }
1718
- iB() {
1719
- return { x: this.Yi.x, y: this.Yi.y };
1741
+ yi(A) {
1742
+ this.Vi = A;
1720
1743
  }
1721
- Ni(A) {
1722
- if (this.Ki) {
1723
- const t = { position: { ...this.Yi }, previousPosition: { ...this.Fi }, originalEvent: A };
1724
- this.Ki(t);
1725
- }
1744
+ BB(A) {
1745
+ this.Zi = A;
1726
1746
  }
1727
- Xi(A) {
1728
- if (this.Wi) {
1729
- const t = { position: { ...this.Yi }, previousPosition: { ...this.Fi }, button: A.button, originalEvent: A };
1730
- this.Wi(t);
1731
- }
1747
+ QB(A) {
1748
+ this.Ni = A;
1732
1749
  }
1733
- ji(A) {
1734
- if (this.Hi) {
1735
- const t = { position: { ...this.Yi }, previousPosition: { ...this.Fi }, button: A.button, originalEvent: A };
1736
- this.Hi(t);
1737
- }
1750
+ EB() {
1751
+ return { x: this.Si.x, y: this.Si.y };
1738
1752
  }
1739
1753
  qi(A) {
1740
- if (this.Ui) {
1741
- const t = { position: { ...this.Yi }, previousPosition: { ...this.Fi }, button: A.button, originalEvent: A };
1742
- this.Ui(t);
1754
+ if (this.Zi) {
1755
+ const t = { position: { ...this.Si }, previousPosition: { ...this.ki }, originalEvent: A };
1756
+ this.Zi(t);
1743
1757
  }
1744
1758
  }
1745
1759
  AB(A) {
1746
1760
  if (this.Ji) {
1747
- const t = { position: { ...this.Yi }, previousPosition: { ...this.Fi }, delta: { x: A.deltaX, y: A.deltaY }, originalEvent: A };
1761
+ const t = { position: { ...this.Si }, previousPosition: { ...this.ki }, button: A.button, originalEvent: A };
1748
1762
  this.Ji(t);
1749
1763
  }
1750
1764
  }
1751
- Zi(A) {
1752
- const t = this.Hs.canvas;
1753
- this.Fi = { ...this.Yi }, this.Ri = { x: A.clientX, y: A.clientY };
1754
- const e = t.getBoundingClientRect(), s = A.clientX - e.left, i = A.clientY - e.top, B = t.width / e.width, r = i * (t.height / e.height), n = s * B - this.xi.offsetX, o = r - this.xi.offsetY, a = Math.floor(n / this.xi.cellWidth), g = Math.floor(o / this.xi.cellHeight);
1755
- a >= 0 && a < this.xi.cols && g >= 0 && g < this.xi.rows ? (this.Yi.x = a, this.Yi.y = g) : (this.Yi.x = -1, this.Yi.y = -1);
1765
+ tB(A) {
1766
+ if (this.Vi) {
1767
+ const t = { position: { ...this.Si }, previousPosition: { ...this.ki }, button: A.button, originalEvent: A };
1768
+ this.Vi(t);
1769
+ }
1770
+ }
1771
+ eB(A) {
1772
+ if (this.Ki) {
1773
+ const t = { position: { ...this.Si }, previousPosition: { ...this.ki }, button: A.button, originalEvent: A };
1774
+ this.Ki(t);
1775
+ }
1776
+ }
1777
+ sB(A) {
1778
+ if (this.Ni) {
1779
+ const t = { position: { ...this.Si }, previousPosition: { ...this.ki }, delta: { x: A.deltaX, y: A.deltaY }, originalEvent: A };
1780
+ this.Ni(t);
1781
+ }
1782
+ }
1783
+ ji(A) {
1784
+ const t = this.Vs.canvas;
1785
+ this.ki = { ...this.Si }, this.zi = { x: A.clientX, y: A.clientY };
1786
+ const e = t.getBoundingClientRect(), s = A.clientX - e.left, i = A.clientY - e.top, B = t.width / e.width, r = i * (t.height / e.height), Q = s * B - this.Ri.offsetX, o = r - this.Ri.offsetY, g = Math.floor(Q / this.Ri.cellWidth), a = Math.floor(o / this.Ri.cellHeight);
1787
+ g >= 0 && g < this.Ri.cols && a >= 0 && a < this.Ri.rows ? (this.Si.x = g, this.Si.y = a) : (this.Si.x = -1, this.Si.y = -1);
1756
1788
  }
1757
1789
  }
1758
- const YA = (E) => class extends E {
1790
+ const SA = (E) => class extends E {
1759
1791
  rotate(A = 0, t = 0, e = 0) {
1760
1792
  this.vA.state.EA(A), this.vA.state.rA(t), this.vA.state.nA(e);
1761
1793
  }
@@ -1775,25 +1807,25 @@ const YA = (E) => class extends E {
1775
1807
  this.vA.state.sA();
1776
1808
  }
1777
1809
  rect(A, t, e = 1, s = 1) {
1778
- this.vA.ve(A, t, e, s);
1810
+ this.vA.$e(A, t, e, s);
1779
1811
  }
1780
1812
  point(A, t) {
1781
- this.vA.ve(A, t, 1, 1);
1813
+ this.vA.$e(A, t, 1, 1);
1782
1814
  }
1783
1815
  line(A, t, e, s) {
1784
- this.vA.ye(A, t, e, s);
1816
+ this.vA.Ge(A, t, e, s);
1785
1817
  }
1786
1818
  lineWeight(A) {
1787
1819
  this.vA.state.QA(A);
1788
1820
  }
1789
1821
  background(A, t = A, e = A, s = 255) {
1790
- this.vA.Ye(A, t, e, s);
1822
+ this.vA.Se(A, t, e, s);
1791
1823
  }
1792
1824
  char(A) {
1793
- this.vA.state.gA(this.ws.us(A));
1825
+ this.vA.state.oA(this.ps.fs(A));
1794
1826
  }
1795
1827
  charColor(A, t, e) {
1796
- this.vA.state.oA(A, t, e);
1828
+ this.vA.state.gA(A, t, e);
1797
1829
  }
1798
1830
  cellColor(A, t, e) {
1799
1831
  this.vA.state.aA(A, t, e);
@@ -1805,110 +1837,110 @@ const YA = (E) => class extends E {
1805
1837
  this.vA.state.cA(A);
1806
1838
  }
1807
1839
  charRotation(A) {
1808
- this.vA.state.lA(A);
1840
+ this.vA.state.CA(A);
1809
1841
  }
1810
1842
  invert(A) {
1811
- this.vA.state.CA(A);
1843
+ this.vA.state.lA(A);
1812
1844
  }
1813
1845
  clear() {
1814
- this.vA.Ye(0, 0, 0, 0);
1846
+ this.vA.Se(0, 0, 0, 0);
1815
1847
  }
1816
1848
  ellipse(A, t, e, s) {
1817
- this.vA.be(A, t, e / 2, s / 2);
1849
+ this.vA.xe(A, t, e / 2, s / 2);
1818
1850
  }
1819
1851
  triangle(A, t, e, s, i, B) {
1820
- this.vA.$e(A, t, e, s, i, B);
1852
+ this.vA.Me(A, t, e, s, i, B);
1821
1853
  }
1822
- bezierCurve(A, t, e, s, i, B, r, n) {
1823
- this.vA.Ge(A, t, e, s, i, B, r, n);
1854
+ bezierCurve(A, t, e, s, i, B, r, Q) {
1855
+ this.vA.Ye(A, t, e, s, i, B, r, Q);
1824
1856
  }
1825
1857
  arc(A, t, e, s, i, B) {
1826
- this.vA.xe(A, t, e, s, i, B);
1858
+ this.vA.Re(A, t, e, s, i, B);
1827
1859
  }
1828
1860
  shader(A) {
1829
- this.vA.de(A);
1861
+ this.vA.me(A);
1830
1862
  }
1831
1863
  setUniform(A, t) {
1832
- this.vA.VA(A, t);
1864
+ this.vA.ZA(A, t);
1833
1865
  }
1834
1866
  setUniforms(A) {
1835
- this.vA._e(A);
1867
+ this.vA.ve(A);
1836
1868
  }
1837
1869
  createFilterShader(A) {
1838
- return this.vA.et(A);
1870
+ return this.vA.Bt(A);
1839
1871
  }
1840
1872
  createFramebuffer(A) {
1841
- return this.vA.Me(A.width, A.height, 5, { filter: "nearest", wrap: "clamp", format: "rgba", type: "unsigned_byte" });
1873
+ return this.vA.Fe(A.width, A.height, 5, { filter: "nearest", wrap: "clamp", format: "rgba", type: "unsigned_byte" });
1842
1874
  }
1843
1875
  image(A, t, e, s, i) {
1844
- this.vA.pe(A, t, e, s ?? A.width, i ?? A.height);
1876
+ this.vA.ye(A, t, e, s ?? A.width, i ?? A.height);
1845
1877
  }
1846
1878
  };
1847
1879
  class O {
1848
- BB(A) {
1849
- const t = A.xA(0), e = A.xA(1), s = A.xA(2), i = A.xA(3);
1850
- return { characterPixels: t, primaryColorPixels: e, secondaryColorPixels: s, transformPixels: A.xA(4), rotationPixels: i };
1880
+ rB(A) {
1881
+ const t = A.MA(0), e = A.MA(1), s = A.MA(2), i = A.MA(3);
1882
+ return { characterPixels: t, primaryColorPixels: e, secondaryColorPixels: s, transformPixels: A.MA(4), rotationPixels: i };
1851
1883
  }
1852
- QB(A, t) {
1884
+ nB(A, t) {
1853
1885
  return A[t] + (A[t + 1] << 8);
1854
1886
  }
1855
- EB(A, t) {
1887
+ oB(A, t) {
1856
1888
  return { r: A[t], g: A[t + 1], b: A[t + 2], a: A[t + 3] };
1857
1889
  }
1858
1890
  }
1859
- class W {
1860
- rB(A, t) {
1891
+ class z {
1892
+ gB(A, t) {
1861
1893
  return new Blob([A], { type: t });
1862
1894
  }
1863
- nB(A, t, e) {
1895
+ aB(A, t, e) {
1864
1896
  try {
1865
- const s = this.rB(A, e), i = URL.createObjectURL(s), B = document.createElement("a");
1897
+ const s = this.gB(A, e), i = URL.createObjectURL(s), B = document.createElement("a");
1866
1898
  B.href = i, B.download = t, B.style.display = "none", B.rel = "noopener", document.body.appendChild(B), B.click(), document.body.removeChild(B), URL.revokeObjectURL(i);
1867
1899
  } catch (s) {
1868
1900
  throw console.error("Failed to download file:", s), Error("File download failed: " + (s instanceof Error ? s.message : "Unknown error"));
1869
1901
  }
1870
1902
  }
1871
- gB() {
1903
+ hB() {
1872
1904
  return (/* @__PURE__ */ new Date()).toISOString().slice(0, 19).replace(/:/g, "-");
1873
1905
  }
1874
- oB() {
1906
+ cB() {
1875
1907
  const A = /* @__PURE__ */ new Date();
1876
1908
  return { date: A.toISOString().split("T")[0], time: A.toTimeString().split(" ")[0].replace(/:/g, "-") };
1877
1909
  }
1878
- aB(A) {
1910
+ lB(A) {
1879
1911
  return A.replace(/[<>:"/\\|?*]/g, "_").replace(/\s+/g, "_").replace(/_{2,}/g, "_").replace(/^_+|_+$/g, "").substring(0, 255);
1880
1912
  }
1881
- hB() {
1882
- return "textmode-export-" + this.gB();
1913
+ CB() {
1914
+ return "textmode-export-" + this.hB();
1883
1915
  }
1884
1916
  }
1885
1917
  class _A extends O {
1886
- cB(A, t, e) {
1887
- const s = A[e] === 255, i = A[e + 1] === 255, B = A[e + 2] === 255, r = t[e], n = t[e + 1];
1888
- return { isInverted: s, flipHorizontal: i, flipVertical: B, rotation: Math.round(360 * (r + n / 255) / 255 * 100) / 100 };
1918
+ DB(A, t, e) {
1919
+ const s = A[e] === 255, i = A[e + 1] === 255, B = A[e + 2] === 255, r = t[e], Q = t[e + 1];
1920
+ return { isInverted: s, flipHorizontal: i, flipVertical: B, rotation: Math.round(360 * (r + Q / 255) / 255 * 100) / 100 };
1889
1921
  }
1890
- CB(A, t, e) {
1922
+ PB(A, t, e) {
1891
1923
  return { x: A, y: t, cellX: A * e.cellWidth, cellY: t * e.cellHeight };
1892
1924
  }
1893
- lB(A, t) {
1925
+ uB(A, t) {
1894
1926
  const e = [];
1895
1927
  let s = 0;
1896
1928
  for (let i = 0; i < t.rows; i++) for (let B = 0; B < t.cols; B++) {
1897
- const r = 4 * s, n = this.QB(A.characterPixels, r);
1898
- let o = this.EB(A.primaryColorPixels, r), a = this.EB(A.secondaryColorPixels, r);
1899
- const g = this.cB(A.transformPixels, A.rotationPixels, r);
1900
- if (g.isInverted) {
1929
+ const r = 4 * s, Q = this.nB(A.characterPixels, r);
1930
+ let o = this.oB(A.primaryColorPixels, r), g = this.oB(A.secondaryColorPixels, r);
1931
+ const a = this.DB(A.transformPixels, A.rotationPixels, r);
1932
+ if (a.isInverted) {
1901
1933
  const c = o;
1902
- o = a, a = c;
1934
+ o = g, g = c;
1903
1935
  }
1904
- const h = this.CB(B, i, t);
1905
- e.push({ charIndex: n, primaryColor: o, secondaryColor: a, transform: g, position: h }), s++;
1936
+ const h = this.PB(B, i, t);
1937
+ e.push({ charIndex: Q, primaryColor: o, secondaryColor: g, transform: a, position: h }), s++;
1906
1938
  }
1907
1939
  return e;
1908
1940
  }
1909
1941
  }
1910
- class SA {
1911
- DB(A, t) {
1942
+ class LA {
1943
+ IB(A, t) {
1912
1944
  const e = A.cmap;
1913
1945
  for (const s of e.tables) if (s.format === 4) {
1914
1946
  const i = s;
@@ -1917,165 +1949,165 @@ class SA {
1917
1949
  {
1918
1950
  const r = i.idRangeOffset[B] / 2 + (t - i.startCount[B]) - (i.startCount.length - B);
1919
1951
  if (r >= 0 && r < i.glyphIdArray.length) {
1920
- const n = i.glyphIdArray[r];
1921
- if (n !== 0) return n + i.idDelta[B] & 65535;
1952
+ const Q = i.glyphIdArray[r];
1953
+ if (Q !== 0) return Q + i.idDelta[B] & 65535;
1922
1954
  }
1923
1955
  }
1924
1956
  }
1925
1957
  } else if (s.format === 12) {
1926
1958
  const i = s;
1927
1959
  for (let B = 0; B < i.groups.length; B += 3) {
1928
- const r = i.groups[B], n = i.groups[B + 1], o = i.groups[B + 2];
1929
- if (t >= r && t <= n) return o + (t - r);
1960
+ const r = i.groups[B], Q = i.groups[B + 1], o = i.groups[B + 2];
1961
+ if (t >= r && t <= Q) return o + (t - r);
1930
1962
  }
1931
1963
  }
1932
1964
  return 0;
1933
1965
  }
1934
- PB(A, t, e, s, i) {
1966
+ wB(A, t, e, s, i) {
1935
1967
  const B = i / A.head.unitsPerEm;
1936
- return { getBoundingBox: () => ({ x1: e + t.xMin * B, y1: s + -t.yMax * B, x2: e + t.xMax * B, y2: s + -t.yMin * B }), toSVG: () => this.uB(t, e, s, B) };
1968
+ return { getBoundingBox: () => ({ x1: e + t.xMin * B, y1: s + -t.yMax * B, x2: e + t.xMax * B, y2: s + -t.yMin * B }), toSVG: () => this.fB(t, e, s, B) };
1937
1969
  }
1938
- uB(A, t, e, s) {
1970
+ fB(A, t, e, s) {
1939
1971
  if (!A || !A.xs) return "";
1940
- const { xs: i, ys: B, endPts: r, flags: n } = A;
1941
- if (!(i && B && r && n)) return "";
1942
- let o = "", a = 0;
1943
- for (let g = 0; g < r.length; g++) {
1944
- const h = r[g];
1945
- if (!(h < a)) {
1946
- if (h >= a) {
1947
- const c = t + i[a] * s, l = e - B[a] * s;
1972
+ const { xs: i, ys: B, endPts: r, flags: Q } = A;
1973
+ if (!(i && B && r && Q)) return "";
1974
+ let o = "", g = 0;
1975
+ for (let a = 0; a < r.length; a++) {
1976
+ const h = r[a];
1977
+ if (!(h < g)) {
1978
+ if (h >= g) {
1979
+ const c = t + i[g] * s, l = e - B[g] * s;
1948
1980
  o += `M${c.toFixed(2)},${l.toFixed(2)}`;
1949
- let C = a + 1;
1981
+ let C = g + 1;
1950
1982
  for (; C <= h; )
1951
- if (1 & n[C]) {
1952
- const f = t + i[C] * s, w = e - B[C] * s;
1953
- o += `L${f.toFixed(2)},${w.toFixed(2)}`, C++;
1983
+ if (1 & Q[C]) {
1984
+ const I = t + i[C] * s, w = e - B[C] * s;
1985
+ o += `L${I.toFixed(2)},${w.toFixed(2)}`, C++;
1954
1986
  } else {
1955
- const f = t + i[C] * s, w = e - B[C] * s;
1956
- let d = C + 1 > h ? a : C + 1;
1957
- if (1 & n[d]) {
1958
- const p = t + i[d] * s, R = e - B[d] * s;
1959
- o += `Q${f.toFixed(2)},${w.toFixed(2)} ${p.toFixed(2)},${R.toFixed(2)}`, C = d + 1;
1987
+ const I = t + i[C] * s, w = e - B[C] * s;
1988
+ let d = C + 1 > h ? g : C + 1;
1989
+ if (1 & Q[d]) {
1990
+ const p = t + i[d] * s, x = e - B[d] * s;
1991
+ o += `Q${I.toFixed(2)},${w.toFixed(2)} ${p.toFixed(2)},${x.toFixed(2)}`, C = d + 1;
1960
1992
  } else {
1961
- const p = (f + (t + i[d] * s)) / 2, R = (w + (e - B[d] * s)) / 2;
1962
- o += `Q${f.toFixed(2)},${w.toFixed(2)} ${p.toFixed(2)},${R.toFixed(2)}`, C = d;
1993
+ const p = (I + (t + i[d] * s)) / 2, x = (w + (e - B[d] * s)) / 2;
1994
+ o += `Q${I.toFixed(2)},${w.toFixed(2)} ${p.toFixed(2)},${x.toFixed(2)}`, C = d;
1963
1995
  }
1964
1996
  }
1965
1997
  o += "Z";
1966
1998
  }
1967
- a = h + 1;
1999
+ g = h + 1;
1968
2000
  }
1969
2001
  }
1970
2002
  return o;
1971
2003
  }
1972
- IB(A, t, e, s, i) {
1973
- const B = A.codePointAt(0) || 0, r = this.DB(t, B);
1974
- let n = null;
1975
- return t.glyf && t.glyf[r] !== null ? n = t.glyf[r] : (n = m.T.glyf.Re(t, r), t.glyf[r] = n), this.PB(t, n, e, s, i);
2004
+ dB(A, t, e, s, i) {
2005
+ const B = A.codePointAt(0) || 0, r = this.IB(t, B);
2006
+ let Q = null;
2007
+ return t.glyf && t.glyf[r] !== null ? Q = t.glyf[r] : (Q = m.T.glyf.ze(t, r), t.glyf[r] = Q), this.wB(t, Q, e, s, i);
1976
2008
  }
1977
- wB(A, t, e, s, i, B, r, n) {
1978
- const o = e + (i - n * (r / t.head.unitsPerEm)) / 2, a = s + (B + 0.7 * r) / 2;
1979
- return this.IB(A, t, o, a, r).toSVG() || null;
2009
+ pB(A, t, e, s, i, B, r, Q) {
2010
+ const o = e + (i - Q * (r / t.head.unitsPerEm)) / 2, g = s + (B + 0.7 * r) / 2;
2011
+ return this.dB(A, t, o, g, r).toSVG() || null;
1980
2012
  }
1981
2013
  }
1982
- class LA {
2014
+ class YA {
1983
2015
  constructor() {
1984
- Q(this, "fB");
1985
- this.fB = new SA();
2016
+ n(this, "_B");
2017
+ this._B = new LA();
1986
2018
  }
1987
- dB(A) {
2019
+ mB(A) {
1988
2020
  const { width: t, height: e } = A;
1989
2021
  return `<?xml version="1.0" encoding="UTF-8"?><svg width="${t}" height="${e}" viewBox="0 0 ${t} ${e}" xmlns="http://www.w3.org/2000/svg"><title>textmode.js sketch</title>`;
1990
2022
  }
1991
- _B() {
2023
+ vB() {
1992
2024
  return "</g></svg>";
1993
2025
  }
1994
- pB(A, t) {
2026
+ yB(A, t) {
1995
2027
  if (!t.includeBackgroundRectangles) return "";
1996
2028
  const [e, s, i, B] = t.backgroundColor;
1997
2029
  return `<rect width="${A.width}" height="${A.height}" fill="rgba(${e},${s},${i},${B / 255})"/>`;
1998
2030
  }
1999
- mB(A, t) {
2031
+ bB(A, t) {
2000
2032
  const { transform: e, position: s } = A;
2001
2033
  if (!e.flipHorizontal && !e.flipVertical && !e.rotation) return "";
2002
2034
  const i = s.cellX + t.cellWidth / 2, B = s.cellY + t.cellHeight / 2, r = [];
2003
2035
  if (e.flipHorizontal || e.flipVertical) {
2004
- const n = e.flipHorizontal ? -1 : 1, o = e.flipVertical ? -1 : 1;
2005
- r.push(`translate(${i} ${B})scale(${n} ${o})translate(${-i} ${-B})`);
2036
+ const Q = e.flipHorizontal ? -1 : 1, o = e.flipVertical ? -1 : 1;
2037
+ r.push(`translate(${i} ${B})scale(${Q} ${o})translate(${-i} ${-B})`);
2006
2038
  }
2007
2039
  return e.rotation && r.push(`rotate(${e.rotation} ${i} ${B})`), ` transform="${r.join(" ")}"`;
2008
2040
  }
2009
- vB(A, t, e) {
2041
+ $B(A, t, e) {
2010
2042
  if (!e.includeBackgroundRectangles || A.secondaryColor.a === 0) return "";
2011
- const { position: s } = A, { r: i, g: B, b: r, a: n } = A.secondaryColor, o = `rgba(${i},${B},${r},${n / 255})`;
2043
+ const { position: s } = A, { r: i, g: B, b: r, a: Q } = A.secondaryColor, o = `rgba(${i},${B},${r},${Q / 255})`;
2012
2044
  return e.drawMode === "stroke" ? `<rect x="${s.cellX}" y="${s.cellY}" width="${t.cellWidth}" height="${t.cellHeight}" stroke="${o}" fill="none" stroke-width="${e.strokeWidth}"/>` : `<rect x="${s.cellX}" y="${s.cellY}" width="${t.cellWidth}" height="${t.cellHeight}" fill="${o}"/>`;
2013
2045
  }
2014
- IB(A, t, e, s) {
2046
+ dB(A, t, e, s) {
2015
2047
  const i = e.characters[A.charIndex];
2016
2048
  if (!i) return "";
2017
- const B = this.fB.wB(i.character, e.font, A.position.cellX, A.position.cellY, t.cellWidth, t.cellHeight, e.fontSize, i.advanceWidth);
2049
+ const B = this._B.pB(i.character, e.font, A.position.cellX, A.position.cellY, t.cellWidth, t.cellHeight, e.fontSize, i.advanceWidth);
2018
2050
  if (!B) return "";
2019
- const { r, g: n, b: o, a } = A.primaryColor, g = `rgba(${r},${n},${o},${a / 255})`;
2020
- return s.drawMode === "stroke" ? `<path d="${B}" stroke="${g}" stroke-width="${s.strokeWidth}" fill="none"/>` : `<path d="${B}" fill="${g}"/>`;
2051
+ const { r, g: Q, b: o, a: g } = A.primaryColor, a = `rgba(${r},${Q},${o},${g / 255})`;
2052
+ return s.drawMode === "stroke" ? `<path d="${B}" stroke="${a}" stroke-width="${s.strokeWidth}" fill="none"/>` : `<path d="${B}" fill="${a}"/>`;
2021
2053
  }
2022
- yB(A, t, e, s) {
2023
- const i = [], B = this.vB(A, t, s);
2054
+ GB(A, t, e, s) {
2055
+ const i = [], B = this.$B(A, t, s);
2024
2056
  B && i.push(B);
2025
- const r = this.IB(A, t, e, s);
2057
+ const r = this.dB(A, t, e, s);
2026
2058
  if (r) {
2027
- const n = this.mB(A, t);
2028
- i.push(n ? `<g${n}>${r}</g>` : r);
2059
+ const Q = this.bB(A, t);
2060
+ i.push(Q ? `<g${Q}>${r}</g>` : r);
2029
2061
  }
2030
2062
  return i.join("");
2031
2063
  }
2032
- bB(A, t, e, s) {
2033
- const i = [this.dB(t), this.pB(t, s), '<g id="ascii-cells">'];
2034
- for (const B of A) i.push(this.yB(B, t, e, s));
2035
- return i.push(this._B()), i.join("");
2064
+ xB(A, t, e, s) {
2065
+ const i = [this.mB(t), this.yB(t, s), '<g id="ascii-cells">'];
2066
+ for (const B of A) i.push(this.GB(B, t, e, s));
2067
+ return i.push(this.vB()), i.join("");
2036
2068
  }
2037
- $B(A) {
2069
+ MB(A) {
2038
2070
  return A.replace(/<path[^>]*d=""[^>]*\/>/g, "").replace(/\s+/g, " ").replace(/> </g, "><");
2039
2071
  }
2040
2072
  }
2041
- class UA extends W {
2042
- GB(A) {
2043
- return this.rB(A, "image/svg+xml;charset=utf-8");
2073
+ class UA extends z {
2074
+ YB(A) {
2075
+ return this.gB(A, "image/svg+xml;charset=utf-8");
2044
2076
  }
2045
- MB(A, t) {
2046
- this.nB(A, this.aB(t) + ".svg", "image/svg+xml;charset=utf-8");
2077
+ FB(A, t) {
2078
+ this.aB(A, this.lB(t) + ".svg", "image/svg+xml;charset=utf-8");
2047
2079
  }
2048
- xB(A, t) {
2049
- this.MB(A, t || this.hB());
2080
+ RB(A, t) {
2081
+ this.FB(A, t || this.CB());
2050
2082
  }
2051
2083
  }
2052
- class J {
2084
+ class $ {
2053
2085
  constructor() {
2054
- Q(this, "YB");
2055
- Q(this, "FB");
2056
- Q(this, "RB");
2057
- this.YB = new _A(), this.FB = new LA(), this.RB = new UA();
2086
+ n(this, "SB");
2087
+ n(this, "kB");
2088
+ n(this, "zB");
2089
+ this.SB = new _A(), this.kB = new YA(), this.zB = new UA();
2058
2090
  }
2059
- SB(A) {
2060
- return { includeBackgroundRectangles: A.includeBackgroundRectangles ?? !0, drawMode: A.drawMode ?? "fill", strokeWidth: A.strokeWidth ?? 1, backgroundColor: A.backgroundColor ?? [0, 0, 0, 0], filename: A.filename || this.RB.hB() };
2091
+ LB(A) {
2092
+ return { includeBackgroundRectangles: A.includeBackgroundRectangles ?? !0, drawMode: A.drawMode ?? "fill", strokeWidth: A.strokeWidth ?? 1, backgroundColor: A.backgroundColor ?? [0, 0, 0, 0], filename: A.filename || this.zB.CB() };
2061
2093
  }
2062
- kB(A, t = {}) {
2063
- const e = this.YB.lB(this.YB.BB(A.pipeline), A.grid), s = this.FB.bB(e, A.grid, A.font, this.SB(t));
2064
- return this.FB.$B(s);
2094
+ OB(A, t = {}) {
2095
+ const e = this.SB.uB(this.SB.rB(A.pipeline), A.grid), s = this.kB.xB(e, A.grid, A.font, this.LB(t));
2096
+ return this.kB.MB(s);
2065
2097
  }
2066
- xB(A, t = {}) {
2067
- this.RB.xB(this.kB(A, t), t.filename);
2098
+ RB(A, t = {}) {
2099
+ this.zB.RB(this.OB(A, t), t.filename);
2068
2100
  }
2069
2101
  }
2070
2102
  class OA extends O {
2071
- zB(A, t, e, s = " ") {
2103
+ TB(A, t, e, s = " ") {
2072
2104
  var r;
2073
2105
  const i = [];
2074
2106
  let B = 0;
2075
- for (let n = 0; n < t.rows; n++) {
2107
+ for (let Q = 0; Q < t.rows; Q++) {
2076
2108
  const o = [];
2077
- for (let a = 0; a < t.cols; a++) {
2078
- const g = 4 * B, h = this.QB(A.characterPixels, g), c = ((r = e.characters[h]) == null ? void 0 : r.character) || s;
2109
+ for (let g = 0; g < t.cols; g++) {
2110
+ const a = 4 * B, h = this.nB(A.characterPixels, a), c = ((r = e.characters[h]) == null ? void 0 : r.character) || s;
2079
2111
  o.push(c), B++;
2080
2112
  }
2081
2113
  i.push(o);
@@ -2083,8 +2115,8 @@ class OA extends O {
2083
2115
  return i;
2084
2116
  }
2085
2117
  }
2086
- class WA {
2087
- LB(A, t) {
2118
+ class zA {
2119
+ UB(A, t) {
2088
2120
  const e = [];
2089
2121
  for (const i of A) {
2090
2122
  let B = i.join("");
@@ -2096,56 +2128,56 @@ class WA {
2096
2128
  return e.join(s);
2097
2129
  }
2098
2130
  }
2099
- class zA extends W {
2100
- OB(A, t) {
2101
- const e = this.TB(t);
2102
- this.nB(A, e, "text/plain;charset=utf-8");
2131
+ class kA extends z {
2132
+ WB(A, t) {
2133
+ const e = this.HB(t);
2134
+ this.aB(A, e, "text/plain;charset=utf-8");
2103
2135
  }
2104
- TB(A) {
2105
- let t = this.aB(A);
2106
- return t === ".txt" || t.length <= 4 ? this.hB() : t;
2136
+ HB(A) {
2137
+ let t = this.lB(A);
2138
+ return t === ".txt" || t.length <= 4 ? this.CB() : t;
2107
2139
  }
2108
2140
  }
2109
- class K {
2141
+ class H {
2110
2142
  constructor() {
2111
- Q(this, "YB");
2112
- Q(this, "FB");
2113
- Q(this, "RB");
2114
- this.YB = new OA(), this.FB = new WA(), this.RB = new zA();
2143
+ n(this, "SB");
2144
+ n(this, "kB");
2145
+ n(this, "zB");
2146
+ this.SB = new OA(), this.kB = new zA(), this.zB = new kA();
2115
2147
  }
2116
- SB(A) {
2117
- return { preserveTrailingSpaces: A.preserveTrailingSpaces ?? !1, lineEnding: A.lineEnding ?? "lf", emptyCharacter: A.emptyCharacter ?? " ", filename: A.filename || this.RB.hB() };
2148
+ LB(A) {
2149
+ return { preserveTrailingSpaces: A.preserveTrailingSpaces ?? !1, lineEnding: A.lineEnding ?? "lf", emptyCharacter: A.emptyCharacter ?? " ", filename: A.filename || this.zB.CB() };
2118
2150
  }
2119
- UB(A, t = {}) {
2120
- const e = this.SB(t), s = this.YB.zB(this.YB.BB(A.pipeline), A.grid, A.font, e.emptyCharacter);
2121
- return this.FB.LB(s, e);
2151
+ KB(A, t = {}) {
2152
+ const e = this.LB(t), s = this.SB.TB(this.SB.rB(A.pipeline), A.grid, A.font, e.emptyCharacter);
2153
+ return this.kB.UB(s, e);
2122
2154
  }
2123
- OB(A, t = {}) {
2124
- this.RB.OB(this.UB(A, t), t.filename);
2155
+ WB(A, t = {}) {
2156
+ this.zB.WB(this.KB(A, t), t.filename);
2125
2157
  }
2126
2158
  }
2127
- class kA extends O {
2128
- WB(A, t = 1, e = "transparent") {
2159
+ class NA extends O {
2160
+ JB(A, t = 1, e = "transparent") {
2129
2161
  const s = A.canvas;
2130
2162
  if (t === 1 && e === "transparent") return s;
2131
- const i = document.createElement("canvas"), B = i.getContext("2d"), r = Math.round(s.width * t), n = Math.round(s.height * t);
2132
- return i.width = r, i.height = n, e !== "transparent" && (B.fillStyle = e, B.fillRect(0, 0, r, n)), B.imageSmoothingEnabled = !1, B.drawImage(s, 0, 0, s.width, s.height, 0, 0, r, n), i;
2163
+ const i = document.createElement("canvas"), B = i.getContext("2d"), r = Math.round(s.width * t), Q = Math.round(s.height * t);
2164
+ return i.width = r, i.height = Q, e !== "transparent" && (B.fillStyle = e, B.fillRect(0, 0, r, Q)), B.imageSmoothingEnabled = !1, B.drawImage(s, 0, 0, s.width, s.height, 0, 0, r, Q), i;
2133
2165
  }
2134
2166
  }
2135
- class HA {
2136
- HB(A, t) {
2137
- const e = this.KB(t.format);
2167
+ class WA {
2168
+ VB(A, t) {
2169
+ const e = this.ZB(t.format);
2138
2170
  return t.format === "png" ? A.toDataURL(e) : A.toDataURL(e, t.quality);
2139
2171
  }
2140
- async JB(A, t) {
2172
+ async NB(A, t) {
2141
2173
  return new Promise((e, s) => {
2142
- const i = this.KB(t.format), B = (r) => {
2174
+ const i = this.ZB(t.format), B = (r) => {
2143
2175
  r ? e(r) : s(Error(`Failed to generate ${t.format.toUpperCase()} blob`));
2144
2176
  };
2145
2177
  t.format === "png" ? A.toBlob(B, i) : A.toBlob(B, i, t.quality);
2146
2178
  });
2147
2179
  }
2148
- KB(A) {
2180
+ ZB(A) {
2149
2181
  switch (A) {
2150
2182
  case "png":
2151
2183
  return "image/png";
@@ -2158,12 +2190,12 @@ class HA {
2158
2190
  }
2159
2191
  }
2160
2192
  }
2161
- const NA = { png: "image/png", jpg: "image/jpeg", webp: "image/webp" }, $ = { png: ".png", jpg: ".jpg", webp: ".webp" };
2162
- class JA extends W {
2163
- VB(A, t, e) {
2164
- this.ZB(A, this.aB(t) + $[e]);
2193
+ const VA = { png: "image/png", jpg: "image/jpeg", webp: "image/webp" }, K = { png: ".png", jpg: ".jpg", webp: ".webp" };
2194
+ class $A extends z {
2195
+ XB(A, t, e) {
2196
+ this.jB(A, this.lB(t) + K[e]);
2165
2197
  }
2166
- ZB(A, t) {
2198
+ jB(A, t) {
2167
2199
  const e = URL.createObjectURL(A);
2168
2200
  try {
2169
2201
  const s = document.createElement("a");
@@ -2172,227 +2204,233 @@ class JA extends W {
2172
2204
  URL.revokeObjectURL(e);
2173
2205
  }
2174
2206
  }
2175
- NB(A) {
2176
- return A in NA && A in $;
2207
+ qB(A) {
2208
+ return A in VA && A in K;
2177
2209
  }
2178
2210
  }
2179
- class KA {
2211
+ class HA {
2180
2212
  constructor() {
2181
- Q(this, "YB");
2182
- Q(this, "FB");
2183
- Q(this, "RB");
2184
- this.YB = new kA(), this.FB = new HA(), this.RB = new JA();
2213
+ n(this, "SB");
2214
+ n(this, "kB");
2215
+ n(this, "zB");
2216
+ this.SB = new NA(), this.kB = new WA(), this.zB = new $A();
2185
2217
  }
2186
- SB(A) {
2187
- return { format: A.format ?? "png", quality: A.quality ?? 1, scale: A.scale ?? 1, backgroundColor: A.backgroundColor ?? "transparent", filename: A.filename || this.RB.hB() };
2218
+ LB(A) {
2219
+ return { format: A.format ?? "png", quality: A.quality ?? 1, scale: A.scale ?? 1, backgroundColor: A.backgroundColor ?? "transparent", filename: A.filename || this.zB.CB() };
2188
2220
  }
2189
- XB(A) {
2190
- if (!this.RB.NB(A.format)) throw Error(`Saving '${A.format}' files is not supported`);
2221
+ AQ(A) {
2222
+ if (!this.zB.qB(A.format)) throw Error(`Saving '${A.format}' files is not supported`);
2191
2223
  if (A.quality < 0 || A.quality > 1) throw Error("Image quality must be between 0.0 and 1.0");
2192
2224
  if (A.scale <= 0) throw Error("Scale factor must be greater than 0");
2193
2225
  A.format === "jpg" && A.backgroundColor === "transparent" && (A.backgroundColor = "black");
2194
2226
  }
2195
- async JB(A, t) {
2196
- if (t.scale === 1 && t.backgroundColor === "transparent") return await this.FB.JB(A.canvas, t);
2197
- const e = this.YB.WB(A, t.scale, t.backgroundColor);
2198
- return await this.FB.JB(e, t);
2227
+ async NB(A, t) {
2228
+ if (t.scale === 1 && t.backgroundColor === "transparent") return await this.kB.NB(A.canvas, t);
2229
+ const e = this.SB.JB(A, t.scale, t.backgroundColor);
2230
+ return await this.kB.NB(e, t);
2199
2231
  }
2200
- async VB(A, t = {}) {
2201
- const e = this.SB(t);
2202
- this.XB(e);
2203
- const s = await this.JB(A, e);
2204
- this.RB.VB(s, e.filename, e.format);
2232
+ async XB(A, t = {}) {
2233
+ const e = this.LB(t);
2234
+ this.AQ(e);
2235
+ const s = await this.NB(A, e);
2236
+ this.zB.XB(s, e.filename, e.format);
2205
2237
  }
2206
2238
  }
2207
- const $A = (E) => class extends E {
2208
- jB() {
2209
- this.vA.FA(this.qB);
2239
+ const KA = (E) => class extends E {
2240
+ tQ() {
2241
+ this.vA.FA(this.eQ);
2210
2242
  }
2211
2243
  toString(A = {}) {
2212
- return this.jB(), new K().UB({ pipeline: this.AQ, grid: this.xi, font: this.ws }, A);
2244
+ return this.tQ(), new H().KB({ pipeline: this.sQ, grid: this.Ri, font: this.ps }, A);
2213
2245
  }
2214
2246
  saveStrings(A = {}) {
2215
- this.jB(), new K().OB({ pipeline: this.AQ, grid: this.xi, font: this.ws }, A);
2247
+ this.tQ(), new H().WB({ pipeline: this.sQ, grid: this.Ri, font: this.ps }, A);
2216
2248
  }
2217
2249
  toSVG(A = {}) {
2218
- return this.jB(), new J().kB({ pipeline: this.AQ, grid: this.xi, font: this.ws }, A);
2250
+ return this.tQ(), new $().OB({ pipeline: this.sQ, grid: this.Ri, font: this.ps }, A);
2219
2251
  }
2220
2252
  saveSVG(A = {}) {
2221
- this.jB(), new J().xB({ pipeline: this.AQ, grid: this.xi, font: this.ws }, A);
2253
+ this.tQ(), new $().RB({ pipeline: this.sQ, grid: this.Ri, font: this.ps }, A);
2222
2254
  }
2223
2255
  async saveCanvas(A = {}) {
2224
- await new KA().VB(this.Hs, A);
2256
+ await new HA().XB(this.Vs, A);
2225
2257
  }
2226
- }, VA = (E) => class extends E {
2258
+ }, XA = (E) => class extends E {
2227
2259
  async loadFont(A) {
2228
- return this.ws.Ls(A).then(() => {
2229
- const t = this.ws.maxGlyphDimensions;
2230
- this.xi.Vs(t.width, t.height), this.AQ.resize(this.xi.cols, this.xi.rows), this.vA.Fe(), this.tQ.Vi();
2260
+ return this.ps.Us(A).then(() => {
2261
+ const t = this.ps.maxGlyphDimensions;
2262
+ this.Ri.Xs(t.width, t.height), this.sQ.resize(this.Ri.cols, this.Ri.rows), this.vA.ke(), this.iQ.Xi();
2231
2263
  });
2232
2264
  }
2233
2265
  fontSize(A) {
2234
- if (!M._(typeof A == "number" && A > 0, "Font size must be a positive number greater than 0.", { method: "fontSize", providedValue: A }) || this.ws.fontSize === A) return;
2235
- this.ws.zs(A);
2236
- const t = this.ws.maxGlyphDimensions;
2237
- this.xi.Vs(t.width, t.height), this.AQ.resize(this.xi.cols, this.xi.rows), this.vA.Fe(), this.tQ.Vi();
2266
+ if (!M._(typeof A == "number" && A > 0, "Font size must be a positive number greater than 0.", { method: "fontSize", providedValue: A }) || this.ps.fontSize === A) return;
2267
+ this.ps.Ts(A);
2268
+ const t = this.ps.maxGlyphDimensions;
2269
+ this.Ri.Xs(t.width, t.height), this.sQ.resize(this.Ri.cols, this.Ri.rows), this.vA.ke(), this.iQ.Xi();
2238
2270
  }
2239
- }, XA = (E) => class extends E {
2271
+ glyphColor(A) {
2272
+ return this.ps.fs(A);
2273
+ }
2274
+ glyphColors(A) {
2275
+ return this.ps.ds(A);
2276
+ }
2277
+ }, JA = (E) => class extends E {
2240
2278
  get frameCount() {
2241
- return this.eQ.frameCount;
2279
+ return this.BQ.frameCount;
2242
2280
  }
2243
2281
  set frameCount(A) {
2244
- this.eQ.frameCount = A;
2282
+ this.BQ.frameCount = A;
2245
2283
  }
2246
2284
  frameRate(A) {
2247
- return A === void 0 ? this.eQ.currentFrameRate : this.eQ.frameRate(A, () => this.sQ());
2285
+ return A === void 0 ? this.BQ.currentFrameRate : this.BQ.frameRate(A, () => this.QQ());
2248
2286
  }
2249
2287
  noLoop() {
2250
- this.eQ.pause();
2288
+ this.BQ.pause();
2251
2289
  }
2252
2290
  loop() {
2253
- this.eQ.resume(() => this.sQ());
2291
+ this.BQ.resume(() => this.QQ());
2254
2292
  }
2255
2293
  redraw(A = 1) {
2256
- if (M._(typeof A == "number" && A > 0 && Number.isInteger(A), "Redraw count must be a positive integer.", { method: "redraw", providedValue: A })) for (let t = 0; t < A; t++) this.sQ();
2294
+ if (M._(typeof A == "number" && A > 0 && Number.isInteger(A), "Redraw count must be a positive integer.", { method: "redraw", providedValue: A })) for (let t = 0; t < A; t++) this.QQ();
2257
2295
  }
2258
2296
  isLooping() {
2259
- return this.eQ.isLooping;
2297
+ return this.BQ.isLooping;
2260
2298
  }
2261
2299
  }, ZA = (E) => class extends E {
2262
2300
  constructor(...A) {
2263
2301
  super(...A);
2264
2302
  }
2265
2303
  mouseClicked(A) {
2266
- this.tQ.tB(A);
2304
+ this.iQ.iB(A);
2267
2305
  }
2268
2306
  mousePressed(A) {
2269
- this.tQ.di(A);
2307
+ this.iQ.mi(A);
2270
2308
  }
2271
2309
  mouseReleased(A) {
2272
- this.tQ._i(A);
2310
+ this.iQ.yi(A);
2273
2311
  }
2274
2312
  mouseMoved(A) {
2275
- this.tQ.eB(A);
2313
+ this.iQ.BB(A);
2276
2314
  }
2277
2315
  mouseScrolled(A) {
2278
- this.tQ.sB(A);
2316
+ this.iQ.QB(A);
2279
2317
  }
2280
2318
  get mouse() {
2281
- return this.tQ.iB();
2319
+ return this.iQ.EB();
2282
2320
  }
2283
2321
  }, jA = (E) => class extends E {
2284
2322
  constructor(...A) {
2285
2323
  super(...A);
2286
2324
  }
2287
2325
  keyPressed(A) {
2288
- this.iQ.di(A);
2326
+ this.EQ.mi(A);
2289
2327
  }
2290
2328
  keyReleased(A) {
2291
- this.iQ._i(A);
2329
+ this.EQ.yi(A);
2292
2330
  }
2293
2331
  isKeyPressed(A) {
2294
- return this.iQ.pi(A);
2332
+ return this.EQ.bi(A);
2295
2333
  }
2296
2334
  get lastKeyPressed() {
2297
- return this.iQ.yi();
2335
+ return this.EQ.Gi();
2298
2336
  }
2299
2337
  get lastKeyReleased() {
2300
- return this.iQ.bi();
2338
+ return this.EQ.xi();
2301
2339
  }
2302
2340
  get pressedKeys() {
2303
- return this.iQ.$i();
2341
+ return this.EQ.Mi();
2304
2342
  }
2305
2343
  get modifierState() {
2306
- return this.iQ.Gi();
2344
+ return this.EQ.Yi();
2307
2345
  }
2308
2346
  };
2309
2347
  class qA {
2310
2348
  constructor() {
2311
- Q(this, "vA");
2312
- Q(this, "ws");
2313
- Q(this, "Hs");
2314
- Q(this, "xi");
2315
- Q(this, "eQ");
2316
- Q(this, "tQ");
2317
- Q(this, "iQ");
2318
- Q(this, "qB");
2319
- Q(this, "AQ");
2320
- Q(this, "BQ");
2321
- }
2322
- sQ() {
2349
+ n(this, "vA");
2350
+ n(this, "ps");
2351
+ n(this, "Vs");
2352
+ n(this, "Ri");
2353
+ n(this, "BQ");
2354
+ n(this, "iQ");
2355
+ n(this, "EQ");
2356
+ n(this, "eQ");
2357
+ n(this, "sQ");
2358
+ n(this, "rQ");
2359
+ }
2360
+ QQ() {
2323
2361
  }
2324
2362
  }
2325
2363
  class At extends function(t, ...e) {
2326
2364
  return e.reduce((s, i) => i(s), t);
2327
- }(qA, YA, $A, VA, XA, ZA, jA) {
2365
+ }(qA, SA, KA, XA, JA, ZA, jA) {
2328
2366
  constructor(t = {}) {
2329
2367
  super();
2330
- Q(this, "QQ", !1);
2331
- Q(this, "EQ", () => {
2368
+ n(this, "nQ", !1);
2369
+ n(this, "oQ", () => {
2332
2370
  });
2333
- Q(this, "rQ", () => {
2371
+ n(this, "gQ", () => {
2334
2372
  });
2335
- Q(this, "nQ", () => {
2373
+ n(this, "aQ", () => {
2336
2374
  });
2337
- Q(this, "gQ");
2338
- this.Hs = new TA(t), this.vA = new uA(this.Hs.qs()), this.ws = new bA(this.vA, t.fontSize ?? 16), this.eQ = new MA(t.frameRate ?? 60), this.tQ = new GA(this.Hs), this.iQ = new FA(), this.qB = this.vA.YA(), this.BQ = this.vA.tt(), this.oQ(t);
2339
- }
2340
- async oQ(t) {
2341
- await this.ws.Rs(t.fontSource);
2342
- const e = this.ws.maxGlyphDimensions;
2343
- this.xi = new RA(this.Hs.canvas, e.width, e.height), this.tQ.Rs(this.xi), this.AQ = this.vA.Me(this.xi.cols, this.xi.rows, 5), this.aQ(), this.EQ(), this.eQ.start(() => this.sQ());
2344
- }
2345
- aQ() {
2346
- this.gQ = () => {
2347
- this.nQ();
2348
- }, window.addEventListener("resize", this.gQ), this.tQ.ui(), this.iQ.ui(), window.addEventListener("blur", () => {
2349
- this.iQ.Mi();
2375
+ n(this, "hQ");
2376
+ this.Vs = new TA(t), this.vA = new uA(this.Vs.ei()), this.ps = new bA(this.vA, t.fontSize ?? 16), this.BQ = new MA(t.frameRate ?? 60), this.iQ = new GA(this.Vs), this.EQ = new FA(), this.eQ = this.vA.YA(), this.rQ = this.vA.it(), this.cQ(t);
2377
+ }
2378
+ async cQ(t) {
2379
+ await this.ps.zs(t.fontSource);
2380
+ const e = this.ps.maxGlyphDimensions;
2381
+ this.Ri = new xA(this.Vs.canvas, e.width, e.height), this.iQ.zs(this.Ri), this.sQ = this.vA.Fe(this.Ri.cols, this.Ri.rows, 5), this.lQ(), this.oQ(), this.BQ.start(() => this.QQ());
2382
+ }
2383
+ lQ() {
2384
+ this.hQ = () => {
2385
+ this.aQ();
2386
+ }, window.addEventListener("resize", this.hQ), this.iQ.fi(), this.EQ.fi(), window.addEventListener("blur", () => {
2387
+ this.EQ.Fi();
2350
2388
  });
2351
2389
  }
2352
- sQ() {
2353
- if (this.eQ.measureFrameRate(), this.eQ.incrementFrame(), this.QQ) return;
2354
- this.AQ.begin(), this.vA.we(this.qB), this.rQ(), this.vA.FA(this.qB), this.AQ.end();
2390
+ QQ() {
2391
+ if (this.BQ.measureFrameRate(), this.BQ.incrementFrame(), this.nQ) return;
2392
+ this.sQ.begin(), this.vA.pe(this.eQ), this.gQ(), this.vA.FA(this.eQ), this.sQ.end();
2355
2393
  const t = this.vA.state.canvasBackgroundColor;
2356
- this.vA.Ot(t[0], t[1], t[2], t[3]), this.vA.we(this.BQ), this.BQ.JA({ a: this.ws.fontFramebuffer, b: [this.ws.textureColumns, this.ws.textureRows], c: this.AQ.textures[0], d: this.AQ.textures[1], e: this.AQ.textures[2], f: this.AQ.textures[4], g: this.AQ.textures[3], h: [this.xi.cols, this.xi.rows], i: [this.xi.width, this.xi.height], j: [this.xi.offsetX, this.xi.offsetY], k: this.xi.width / this.xi.height }), this.vA.me(this.xi.offsetX, this.xi.offsetY, this.xi.width, this.xi.height);
2394
+ this.vA.Wt(t[0], t[1], t[2], t[3]), this.vA.pe(this.rQ), this.rQ.VA({ a: this.ps.fontFramebuffer, b: [this.ps.textureColumns, this.ps.textureRows], c: this.sQ.textures[0], d: this.sQ.textures[1], e: this.sQ.textures[2], f: this.sQ.textures[4], g: this.sQ.textures[3], h: [this.Ri.cols, this.Ri.rows], i: [this.Ri.width, this.Ri.height], j: [this.Ri.offsetX, this.Ri.offsetY], k: this.Ri.width / this.Ri.height }), this.vA.be(this.Ri.offsetX, this.Ri.offsetY, this.Ri.width, this.Ri.height);
2357
2395
  }
2358
2396
  setup(t) {
2359
- this.EQ = t;
2397
+ this.oQ = t;
2360
2398
  }
2361
2399
  draw(t) {
2362
- this.rQ = t;
2400
+ this.gQ = t;
2363
2401
  }
2364
2402
  windowResized(t) {
2365
- this.nQ = t;
2403
+ this.aQ = t;
2366
2404
  }
2367
2405
  resizeCanvas(t, e) {
2368
- this.Hs.js(t, e), this.xi.iA(), this.AQ.resize(this.xi.cols, this.xi.rows), this.vA.Fe(), this.tQ.Vi(), this.sQ();
2406
+ this.Vs.ti(t, e), this.Ri.iA(), this.sQ.resize(this.Ri.cols, this.Ri.rows), this.vA.ke(), this.iQ.Xi(), this.QQ();
2369
2407
  }
2370
2408
  destroy() {
2371
- this.QQ || (this.eQ.stop(), window.removeEventListener("resize", this.gQ), this.tQ.fi(), this.iQ.fi(), this.ws.kA(), this.vA.kA(), this.QQ = !0);
2409
+ this.nQ || (this.BQ.stop(), window.removeEventListener("resize", this.hQ), this.iQ._i(), this.EQ._i(), this.ps.kA(), this.vA.kA(), this.nQ = !0);
2372
2410
  }
2373
2411
  get grid() {
2374
- return this.xi;
2412
+ return this.Ri;
2375
2413
  }
2376
2414
  get font() {
2377
- return this.ws;
2415
+ return this.ps;
2378
2416
  }
2379
2417
  get width() {
2380
- return this.Hs.width;
2418
+ return this.Vs.width;
2381
2419
  }
2382
2420
  get height() {
2383
- return this.Hs.height;
2421
+ return this.Vs.height;
2384
2422
  }
2385
2423
  get canvas() {
2386
- return this.Hs.canvas;
2424
+ return this.Vs.canvas;
2387
2425
  }
2388
2426
  get isDisposed() {
2389
- return this.QQ;
2427
+ return this.nQ;
2390
2428
  }
2391
2429
  get drawFramebuffer() {
2392
- return this.AQ;
2430
+ return this.sQ;
2393
2431
  }
2394
2432
  }
2395
- class z {
2433
+ class k {
2396
2434
  constructor() {
2397
2435
  }
2398
2436
  static create(A = {}) {
@@ -2402,20 +2440,20 @@ class z {
2402
2440
  M.v(A);
2403
2441
  }
2404
2442
  static get version() {
2405
- return "0.2.1-beta.3";
2443
+ return "0.2.1-beta.4";
2406
2444
  }
2407
2445
  }
2408
- const et = Object.freeze(Object.defineProperty({ __proto__: null }, Symbol.toStringTag, { value: "Module" })), st = z.create, it = z.setErrorLevel, Bt = z.version;
2446
+ const et = Object.freeze(Object.defineProperty({ __proto__: null }, Symbol.toStringTag, { value: "Module" })), st = k.create, it = k.setErrorLevel, Bt = k.version;
2409
2447
  export {
2410
2448
  TA as TextmodeCanvas,
2411
2449
  tA as TextmodeErrorLevel,
2412
2450
  bA as TextmodeFont,
2413
2451
  U as TextmodeFramebuffer,
2414
- RA as TextmodeGrid,
2452
+ xA as TextmodeGrid,
2415
2453
  At as Textmodifier,
2416
2454
  st as create,
2417
2455
  et as export,
2418
2456
  it as setErrorLevel,
2419
- z as textmode,
2457
+ k as textmode,
2420
2458
  Bt as version
2421
2459
  };