textmode.js 0.1.6-beta.2 → 0.1.6-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,9 +1,9 @@
1
- var iA = Object.defineProperty;
2
- var sA = (a, A, e) => A in a ? iA(a, A, { enumerable: !0, configurable: !0, writable: !0, value: e }) : a[A] = e;
3
- var o = (a, A, e) => sA(a, typeof A != "symbol" ? A + "" : A, e);
4
- class p extends Error {
1
+ var AA = Object.defineProperty;
2
+ var eA = (n, A, e) => A in n ? AA(n, A, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[A] = e;
3
+ var o = (n, A, e) => eA(n, typeof A != "symbol" ? A + "" : A, e);
4
+ class m extends Error {
5
5
  constructor(e, t, r = {}) {
6
- const i = p.createFormattedMessage(e, r);
6
+ const i = m.createFormattedMessage(e, r);
7
7
  super(i);
8
8
  o(this, "originalError");
9
9
  o(this, "context");
@@ -19,9 +19,9 @@ class p extends Error {
19
19
 
20
20
  📋 Context:`;
21
21
  for (const [i, s] of Object.entries(t)) {
22
- const n = p.formatValue(s);
22
+ const a = m.formatValue(s);
23
23
  r += `
24
- - ${i}: ${n}`;
24
+ - ${i}: ${a}`;
25
25
  }
26
26
  }
27
27
  return r += `
@@ -38,16 +38,16 @@ class p extends Error {
38
38
  if (typeof e == "string") return `"${e}"`;
39
39
  if (typeof e == "number" || typeof e == "boolean") return String(e);
40
40
  if (Array.isArray(e))
41
- return e.length === 0 ? "[]" : e.length <= 5 ? `[${e.map((t) => p.formatValue(t)).join(", ")}]` : `[${e.slice(0, 3).map((t) => p.formatValue(t)).join(", ")}, ... +${e.length - 3} more]`;
41
+ return e.length === 0 ? "[]" : e.length <= 5 ? `[${e.map((t) => m.formatValue(t)).join(", ")}]` : `[${e.slice(0, 3).map((t) => m.formatValue(t)).join(", ")}, ... +${e.length - 3} more]`;
42
42
  if (typeof e == "object") {
43
43
  const t = Object.keys(e);
44
- return t.length === 0 ? "{}" : t.length <= 3 ? `{ ${t.map((s) => `${s}: ${p.formatValue(e[s])}`).join(", ")} }` : `{ ${t.slice(0, 2).map((i) => `${i}: ${p.formatValue(e[i])}`).join(", ")}, ... +${t.length - 2} more }`;
44
+ return t.length === 0 ? "{}" : t.length <= 3 ? `{ ${t.map((s) => `${s}: ${m.formatValue(e[s])}`).join(", ")} }` : `{ ${t.slice(0, 2).map((i) => `${i}: ${m.formatValue(e[i])}`).join(", ")}, ... +${t.length - 2} more }`;
45
45
  }
46
46
  return String(e);
47
47
  }
48
48
  }
49
- var nA = /* @__PURE__ */ ((a) => (a[a.SILENT = 0] = "SILENT", a[a.WARNING = 1] = "WARNING", a[a.ERROR = 2] = "ERROR", a[a.THROW = 3] = "THROW", a))(nA || {});
50
- const b = class b {
49
+ var tA = /* @__PURE__ */ ((n) => (n[n.SILENT = 0] = "SILENT", n[n.WARNING = 1] = "WARNING", n[n.ERROR = 2] = "ERROR", n[n.THROW = 3] = "THROW", n))(tA || {});
50
+ const y = class y {
51
51
  constructor() {
52
52
  o(this, "_options", {
53
53
  globalLevel: 3
@@ -55,7 +55,7 @@ const b = class b {
55
55
  });
56
56
  }
57
57
  static getInstance() {
58
- return b._instance || (b._instance = new b()), b._instance;
58
+ return y._instance || (y._instance = new y()), y._instance;
59
59
  }
60
60
  /**
61
61
  * Handle an error based on the configured settings
@@ -71,15 +71,15 @@ const b = class b {
71
71
  return console.group(
72
72
  `%c${r} Oops! (╯°□°)╯︵ Something went wrong in your code.`,
73
73
  "color: #f44336; font-weight: bold; background: #ffebee; padding: 2px 6px; border-radius: 3px;"
74
- ), console.warn(p.createFormattedMessage(A, e)), console.groupEnd(), !1;
74
+ ), console.warn(m.createFormattedMessage(A, e)), console.groupEnd(), !1;
75
75
  case 2:
76
76
  return console.group(
77
77
  `%c${r} Oops! (╯°□°)╯︵ Something went wrong in your code.`,
78
78
  "color: #f44336; font-weight: bold; background: #ffebee; padding: 2px 6px; border-radius: 3px;"
79
- ), console.error(p.createFormattedMessage(A, e)), console.groupEnd(), !1;
79
+ ), console.error(m.createFormattedMessage(A, e)), console.groupEnd(), !1;
80
80
  case 3:
81
81
  default:
82
- const i = new p(A, t, e);
82
+ const i = new m(A, t, e);
83
83
  throw console.group(
84
84
  `%c${r} Oops! (╯°□°)╯︵ Something went wrong in your code.`,
85
85
  "color: #d32f2f; font-weight: bold; background: #ffcdd2; padding: 2px 6px; border-radius: 3px;"
@@ -103,10 +103,19 @@ const b = class b {
103
103
  this._options.globalLevel = A;
104
104
  }
105
105
  };
106
- o(b, "_instance", null);
107
- let V = b;
108
- const f = V.getInstance();
109
- class oA {
106
+ o(y, "_instance", null);
107
+ let k = y;
108
+ const d = k.getInstance(), Z = /* @__PURE__ */ new WeakMap(), rA = /* @__PURE__ */ new WeakMap();
109
+ function U(n, A) {
110
+ Z.set(n, A);
111
+ }
112
+ function $(n) {
113
+ return Z.get(n);
114
+ }
115
+ function M(n, A) {
116
+ rA.set(n, A);
117
+ }
118
+ const S = class S {
110
119
  constructor(A, e, t = e, r = {}) {
111
120
  o(this, "gl");
112
121
  o(this, "_framebuffer");
@@ -116,6 +125,8 @@ class oA {
116
125
  o(this, "options");
117
126
  o(this, "previousState", null);
118
127
  o(this, "_pixels", null);
128
+ // Tracks the last upload origin; no longer required for rendering since we flip at upload time
129
+ o(this, "_isFromCanvasSource", !1);
119
130
  this.gl = A, this._width = e, this._height = t, this.options = {
120
131
  filter: "nearest",
121
132
  wrap: "clamp",
@@ -124,6 +135,20 @@ class oA {
124
135
  ...r
125
136
  }, this._texture = this.createTexture(), this._framebuffer = A.createFramebuffer(), this.attachTexture();
126
137
  }
138
+ getMaxTextureUnits() {
139
+ let A = S.maxTextureUnitsMap.get(this.gl);
140
+ return A === void 0 && (A = this.gl.getParameter(this.gl.MAX_TEXTURE_IMAGE_UNITS), S.maxTextureUnitsMap.set(this.gl, A)), A;
141
+ }
142
+ /**
143
+ * Unbind the provided texture from any texture unit where it is currently bound.
144
+ * This prevents framebuffer-texture feedback loops when rendering to this framebuffer.
145
+ */
146
+ unbindTextureAcrossUnits(A) {
147
+ const e = this.gl, t = e.getParameter(e.ACTIVE_TEXTURE), r = this.getMaxTextureUnits();
148
+ for (let i = 0; i < r; i++)
149
+ e.activeTexture(e.TEXTURE0 + i), e.getParameter(e.TEXTURE_BINDING_2D) === A && e.bindTexture(e.TEXTURE_2D, null);
150
+ e.activeTexture(t);
151
+ }
127
152
  createTexture() {
128
153
  const { gl: A } = this, e = A.createTexture();
129
154
  A.bindTexture(A.TEXTURE_2D, e);
@@ -143,14 +168,18 @@ class oA {
143
168
  */
144
169
  update(A) {
145
170
  const { gl: e } = this;
146
- A instanceof HTMLVideoElement && A.readyState < 2 || (e.bindTexture(e.TEXTURE_2D, this._texture), e.texImage2D(e.TEXTURE_2D, 0, e.RGBA, e.RGBA, e.UNSIGNED_BYTE, A), e.bindTexture(e.TEXTURE_2D, null));
171
+ if (A instanceof HTMLVideoElement && A.readyState < 2)
172
+ return;
173
+ e.bindTexture(e.TEXTURE_2D, this._texture);
174
+ const t = e.getParameter(e.UNPACK_FLIP_Y_WEBGL);
175
+ e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL, 1), e.texImage2D(e.TEXTURE_2D, 0, e.RGBA, e.RGBA, e.UNSIGNED_BYTE, A), e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL, t ? 1 : 0), e.bindTexture(e.TEXTURE_2D, null), this._isFromCanvasSource = !1;
147
176
  }
148
177
  /**
149
178
  * Update the framebuffer texture with pixel data
150
179
  */
151
180
  updatePixels(A, e, t) {
152
181
  const { gl: r } = this;
153
- r.bindTexture(r.TEXTURE_2D, this._texture), r.texImage2D(r.TEXTURE_2D, 0, r.RGBA, e, t, 0, r.RGBA, r.UNSIGNED_BYTE, A), r.bindTexture(r.TEXTURE_2D, null);
182
+ r.bindTexture(r.TEXTURE_2D, this._texture), r.texImage2D(r.TEXTURE_2D, 0, r.RGBA, e, t, 0, r.RGBA, r.UNSIGNED_BYTE, A), r.bindTexture(r.TEXTURE_2D, null), this._isFromCanvasSource = !1;
154
183
  }
155
184
  /**
156
185
  * Resize the framebuffer
@@ -167,7 +196,7 @@ class oA {
167
196
  this.previousState = {
168
197
  framebuffer: A.getParameter(A.FRAMEBUFFER_BINDING),
169
198
  viewport: A.getParameter(A.VIEWPORT)
170
- }, A.bindFramebuffer(A.FRAMEBUFFER, this._framebuffer), A.viewport(0, 0, this._width, this._height);
199
+ }, A.bindFramebuffer(A.FRAMEBUFFER, this._framebuffer), A.viewport(0, 0, this._width, this._height), this.unbindTextureAcrossUnits(this._texture), M(A, !0), U(A, [0, 0, this._width, this._height]), this._isFromCanvasSource = !1;
171
200
  }
172
201
  /**
173
202
  * End rendering to this framebuffer and restore previous state
@@ -175,7 +204,7 @@ class oA {
175
204
  end() {
176
205
  if (!this.previousState) return;
177
206
  const { gl: A } = this;
178
- A.bindFramebuffer(A.FRAMEBUFFER, this.previousState.framebuffer), A.viewport(...this.previousState.viewport), this.previousState = null;
207
+ A.bindFramebuffer(A.FRAMEBUFFER, this.previousState.framebuffer), A.viewport(...this.previousState.viewport), M(A, !!this.previousState.framebuffer), U(A, this.previousState.viewport), this.previousState = null;
179
208
  }
180
209
  /**
181
210
  * Load pixel data from the framebuffer into the pixels array
@@ -189,16 +218,16 @@ class oA {
189
218
  get(A, e, t, r) {
190
219
  const { gl: i } = this;
191
220
  if (A === void 0 && e === void 0) {
192
- const s = new Uint8Array(this._width * this._height * 4), n = i.getParameter(i.FRAMEBUFFER_BINDING);
193
- return i.bindFramebuffer(i.FRAMEBUFFER, this._framebuffer), i.readPixels(0, 0, this._width, this._height, i.RGBA, i.UNSIGNED_BYTE, s), i.bindFramebuffer(i.FRAMEBUFFER, n), s;
221
+ const s = new Uint8Array(this._width * this._height * 4), a = i.getParameter(i.FRAMEBUFFER_BINDING);
222
+ return i.bindFramebuffer(i.FRAMEBUFFER, this._framebuffer), i.readPixels(0, 0, this._width, this._height, i.RGBA, i.UNSIGNED_BYTE, s), i.bindFramebuffer(i.FRAMEBUFFER, a), s;
194
223
  } else if (t === void 0 && r === void 0) {
195
224
  (A < 0 || e < 0 || A >= this._width || e >= this._height) && (console.warn("The x and y values passed to Framebuffer.get are outside of its range and will be clamped."), A = Math.max(0, Math.min(A, this._width - 1)), e = Math.max(0, Math.min(e, this._height - 1)));
196
- const s = new Uint8Array(4), n = i.getParameter(i.FRAMEBUFFER_BINDING);
197
- return i.bindFramebuffer(i.FRAMEBUFFER, this._framebuffer), i.readPixels(A, e, 1, 1, i.RGBA, i.UNSIGNED_BYTE, s), i.bindFramebuffer(i.FRAMEBUFFER, n), [s[0], s[1], s[2], s[3]];
225
+ const s = new Uint8Array(4), a = i.getParameter(i.FRAMEBUFFER_BINDING);
226
+ return i.bindFramebuffer(i.FRAMEBUFFER, this._framebuffer), i.readPixels(A, e, 1, 1, i.RGBA, i.UNSIGNED_BYTE, s), i.bindFramebuffer(i.FRAMEBUFFER, a), [s[0], s[1], s[2], s[3]];
198
227
  } else {
199
228
  A = Math.max(0, Math.min(A, this._width - 1)), e = Math.max(0, Math.min(e, this._height - 1)), t = Math.max(1, Math.min(t, this._width - A)), r = Math.max(1, Math.min(r, this._height - e));
200
- const s = new Uint8Array(t * r * 4), n = i.getParameter(i.FRAMEBUFFER_BINDING);
201
- return i.bindFramebuffer(i.FRAMEBUFFER, this._framebuffer), i.readPixels(A, e, t, r, i.RGBA, i.UNSIGNED_BYTE, s), i.bindFramebuffer(i.FRAMEBUFFER, n), s;
229
+ const s = new Uint8Array(t * r * 4), a = i.getParameter(i.FRAMEBUFFER_BINDING);
230
+ return i.bindFramebuffer(i.FRAMEBUFFER, this._framebuffer), i.readPixels(A, e, t, r, i.RGBA, i.UNSIGNED_BYTE, s), i.bindFramebuffer(i.FRAMEBUFFER, a), s;
202
231
  }
203
232
  }
204
233
  /**
@@ -224,248 +253,15 @@ class oA {
224
253
  get pixels() {
225
254
  return this._pixels;
226
255
  }
227
- }
228
- class K {
229
- constructor(A, e, t) {
230
- o(this, "gl");
231
- o(this, "x");
232
- o(this, "y");
233
- this.gl = A, this.x = e, this.y = t;
234
- }
235
- }
236
- class y {
237
- constructor(A, e, t, r, i) {
238
- /** The WebGL rendering context */
239
- o(this, "gl");
240
- /** The vertex buffer containing position and texture coordinates */
241
- o(this, "vertexBuffer");
242
- /** The number of vertices in this geometry (always 6 for two triangles) */
243
- o(this, "vertexCount", 6);
244
- /** Bytes per vertex: depends on position format (vec2 vs vec3) */
245
- o(this, "bytesPerVertex");
246
- this.gl = A, this.bytesPerVertex = 16;
247
- const s = A.getParameter(A.VIEWPORT), n = s[2], g = s[3], B = A.getParameter(A.FRAMEBUFFER_BINDING) !== null, h = e / n * 2 - 1, E = (e + r) / n * 2 - 1;
248
- let l, c;
249
- B ? (l = t / g * 2 - 1, c = (t + i) / g * 2 - 1) : (l = 1 - t / g * 2, c = 1 - (t + i) / g * 2);
250
- let d, u, m, D;
251
- d = h, m = E, u = l, D = c;
252
- const C = this.generateVertices(d, u, m, D);
253
- this.vertexBuffer = A.createBuffer(), A.bindBuffer(A.ARRAY_BUFFER, this.vertexBuffer), A.bufferData(A.ARRAY_BUFFER, C, A.STATIC_DRAW);
254
- }
255
- /**
256
- * Generate vertex data for the rectangle with texture coordinates
257
- * @private
258
- */
259
- generateVertices(A, e, t, r) {
260
- return new Float32Array([
261
- A,
262
- r,
263
- 0,
264
- 1,
265
- // bottom-left
266
- t,
267
- r,
268
- 1,
269
- 1,
270
- // bottom-right
271
- A,
272
- e,
273
- 0,
274
- 0,
275
- // top-left
276
- A,
277
- e,
278
- 0,
279
- 0,
280
- // top-left
281
- t,
282
- r,
283
- 1,
284
- 1,
285
- // bottom-right
286
- t,
287
- e,
288
- 1,
289
- 0
290
- // top-right
291
- ]);
292
- }
293
- /**
294
- * Render the rectangle using position and texture coordinate attributes
295
- */
296
- render() {
297
- this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.vertexBuffer);
298
- const A = this.gl.getParameter(this.gl.CURRENT_PROGRAM);
299
- let e = this.gl.getAttribLocation(A, "a_position"), t = this.gl.getAttribLocation(A, "a_texCoord");
300
- this.gl.enableVertexAttribArray(e), this.gl.vertexAttribPointer(e, 2, this.gl.FLOAT, !1, this.bytesPerVertex, 0), this.gl.enableVertexAttribArray(t), this.gl.vertexAttribPointer(t, 2, this.gl.FLOAT, !1, this.bytesPerVertex, 8), this.gl.drawArrays(this.gl.TRIANGLES, 0, this.vertexCount), this.gl.disableVertexAttribArray(e), this.gl.disableVertexAttribArray(t);
301
- }
302
- }
303
- class aA extends K {
304
- constructor(e, t, r, i, s) {
305
- super(e, t, r);
306
- o(this, "width");
307
- o(this, "height");
308
- this.width = i, this.height = s;
309
- }
310
- /**
311
- * Render the filled rectangle using the existing Rectangle geometry.
312
- */
313
- renderFill() {
314
- new y(this.gl, this.x, this.y, this.width, this.height).render();
315
- }
316
- /**
317
- * Render the stroke rectangle as four separate Rectangle instances for each edge.
318
- * This approach ensures clean corners with proper overlap and leverages existing geometry.
319
- * @param weight The stroke thickness in pixels
320
- */
321
- renderStroke(e) {
322
- if (e <= 0) return;
323
- const t = new y(this.gl, this.x, this.y, this.width, e), r = new y(this.gl, this.x + this.width - e, this.y, e, this.height), i = new y(this.gl, this.x, this.y + this.height - e, this.width, e), s = new y(this.gl, this.x, this.y, e, this.height);
324
- t.render(), r.render(), i.render(), s.render();
325
- }
326
- }
327
- class gA {
328
- constructor(A, e, t, r, i, s) {
329
- /** The WebGL rendering context */
330
- o(this, "gl");
331
- /** The vertex buffer containing position and texture coordinates */
332
- o(this, "vertexBuffer");
333
- /** The number of vertices in this geometry (always 6 for two triangles) */
334
- o(this, "vertexCount", 6);
335
- /** Bytes per vertex: vec2+vec2 = 16 bytes */
336
- o(this, "bytesPerVertex");
337
- this.gl = A, this.bytesPerVertex = 16;
338
- const n = A.getParameter(A.VIEWPORT), g = n[2], B = n[3], h = A.getParameter(A.FRAMEBUFFER_BINDING) !== null, E = r - e, l = i - t, c = Math.sqrt(E * E + l * l);
339
- if (c === 0) {
340
- const rA = this.generateVertices(0, 0, 0, 0);
341
- this.vertexBuffer = A.createBuffer(), A.bindBuffer(A.ARRAY_BUFFER, this.vertexBuffer), A.bufferData(A.ARRAY_BUFFER, rA, A.STATIC_DRAW);
342
- return;
343
- }
344
- const d = E / c, m = -(l / c), D = d, C = s / 2, P = e + m * C, F = t + D * C, v = e - m * C, I = t - D * C, R = r + m * C, T = i + D * C, j = r - m * C, W = i - D * C, Z = P / g * 2 - 1, q = v / g * 2 - 1, AA = R / g * 2 - 1, eA = j / g * 2 - 1;
345
- let M, G, U, Y;
346
- h ? (M = F / B * 2 - 1, G = I / B * 2 - 1, U = T / B * 2 - 1, Y = W / B * 2 - 1) : (M = 1 - F / B * 2, G = 1 - I / B * 2, U = 1 - T / B * 2, Y = 1 - W / B * 2);
347
- const tA = this.generateLineVertices(
348
- Z,
349
- M,
350
- q,
351
- G,
352
- AA,
353
- U,
354
- eA,
355
- Y
356
- );
357
- this.vertexBuffer = A.createBuffer(), A.bindBuffer(A.ARRAY_BUFFER, this.vertexBuffer), A.bufferData(A.ARRAY_BUFFER, tA, A.STATIC_DRAW);
358
- }
359
- /**
360
- * Generate vertex data for a rectangle representing the line with texture coordinates
361
- * @private
362
- */
363
- generateVertices(A, e, t, r) {
364
- return new Float32Array([
365
- A,
366
- r,
367
- 0,
368
- 1,
369
- // bottom-left
370
- t,
371
- r,
372
- 1,
373
- 1,
374
- // bottom-right
375
- A,
376
- e,
377
- 0,
378
- 0,
379
- // top-left
380
- A,
381
- e,
382
- 0,
383
- 0,
384
- // top-left
385
- t,
386
- r,
387
- 1,
388
- 1,
389
- // bottom-right
390
- t,
391
- e,
392
- 1,
393
- 0
394
- // top-right
395
- ]);
256
+ /** True if the last content update came from a canvas/video or raw pixels (top-left origin). False if rendered via FBO (bottom-left). */
257
+ get isFromCanvasSource() {
258
+ return this._isFromCanvasSource;
396
259
  }
397
- /**
398
- * Generate vertex data for the line rectangle with texture coordinates
399
- * Uses the four corners calculated based on line direction and thickness
400
- * @private
401
- */
402
- generateLineVertices(A, e, t, r, i, s, n, g) {
403
- return new Float32Array([
404
- A,
405
- e,
406
- 0,
407
- 0,
408
- // corner1 (start + perpendicular)
409
- t,
410
- r,
411
- 0,
412
- 1,
413
- // corner2 (start - perpendicular)
414
- i,
415
- s,
416
- 1,
417
- 0,
418
- // corner3 (end + perpendicular)
419
- t,
420
- r,
421
- 0,
422
- 1,
423
- // corner2 (start - perpendicular)
424
- n,
425
- g,
426
- 1,
427
- 1,
428
- // corner4 (end - perpendicular)
429
- i,
430
- s,
431
- 1,
432
- 0
433
- // corner3 (end + perpendicular)
434
- ]);
435
- }
436
- /**
437
- * Render the line using position and texture coordinate attributes
438
- */
439
- render() {
440
- this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.vertexBuffer);
441
- const A = this.gl.getParameter(this.gl.CURRENT_PROGRAM);
442
- let e = this.gl.getAttribLocation(A, "a_position"), t = this.gl.getAttribLocation(A, "a_texCoord");
443
- this.gl.enableVertexAttribArray(e), this.gl.vertexAttribPointer(e, 2, this.gl.FLOAT, !1, this.bytesPerVertex, 0), this.gl.enableVertexAttribArray(t), this.gl.vertexAttribPointer(t, 2, this.gl.FLOAT, !1, this.bytesPerVertex, 8), this.gl.drawArrays(this.gl.TRIANGLES, 0, this.vertexCount), this.gl.disableVertexAttribArray(e), this.gl.disableVertexAttribArray(t);
444
- }
445
- }
446
- class BA extends K {
447
- constructor(e, t, r, i, s) {
448
- super(e, t, r);
449
- o(this, "x2");
450
- o(this, "y2");
451
- this.x2 = i, this.y2 = s;
452
- }
453
- /**
454
- * Lines don't support fill rendering - this method does nothing.
455
- * Lines are rendered only with stroke properties.
456
- */
457
- renderFill() {
458
- }
459
- /**
460
- * Render the line with the specified stroke weight.
461
- * @param weight The stroke thickness in pixels
462
- */
463
- renderStroke(e) {
464
- if (e <= 0) return;
465
- new gA(this.gl, this.x, this.y, this.x2, this.y2, e).render();
466
- }
467
- }
468
- class w {
260
+ };
261
+ /** Cache for MAX_TEXTURE_IMAGE_UNITS per-context */
262
+ o(S, "maxTextureUnitsMap", /* @__PURE__ */ new WeakMap());
263
+ let O = S;
264
+ class _ {
469
265
  constructor(A, e, t) {
470
266
  o(this, "gl");
471
267
  o(this, "program");
@@ -612,13 +408,15 @@ class w {
612
408
  this.textureUnitCounter = 0;
613
409
  }
614
410
  }
615
- var _ = "attribute vec2 a_position;attribute vec2 a_texCoord;varying vec2 v_uv;uniform float u_rotation;uniform vec2 u_center;uniform float u_aspectRatio;mat2 rotate2D(float angle){float s=sin(angle);float c=cos(angle);return mat2(c,-s,s,c);}void main(){v_uv=a_texCoord;vec2 pos=a_position;pos-=u_center;pos.x*=u_aspectRatio;pos=rotate2D(-u_rotation)*pos;pos.x/=u_aspectRatio;pos+=u_center;gl_Position=vec4(pos,0.0,1.0);}", hA = "precision lowp float;uniform sampler2D u_texture;varying vec2 v_uv;void main(){gl_FragColor=texture2D(u_texture,v_uv);}", EA = "precision lowp float;uniform vec4 u_color;void main(){gl_FragColor=u_color;}";
616
- class lA {
411
+ var w = "attribute vec2 a_position;attribute vec2 a_texCoord;varying vec2 v_uv;uniform float u_rotation;uniform vec2 u_center;uniform float u_aspectRatio;mat2 rotate2D(float angle){float s=sin(angle);float c=cos(angle);return mat2(c,-s,s,c);}void main(){v_uv=a_texCoord;vec2 pos=a_position;pos-=u_center;pos.x*=u_aspectRatio;pos=rotate2D(-u_rotation)*pos;pos.x/=u_aspectRatio;pos+=u_center;gl_Position=vec4(pos,0.0,1.0);}", iA = "precision lowp float;uniform sampler2D u_texture;varying vec2 v_uv;void main(){gl_FragColor=texture2D(u_texture,v_uv);}", sA = "precision lowp float;uniform vec4 u_color;void main(){gl_FragColor=u_color;}";
412
+ class aA {
617
413
  constructor(A) {
618
414
  o(this, "gl");
619
415
  o(this, "imageShader");
620
416
  o(this, "solidColorShader");
621
417
  o(this, "currentShader", null);
418
+ // Cached attrib locations for current program
419
+ o(this, "attribCache");
622
420
  // Fill state management - default: white fill enabled
623
421
  o(this, "currentFillColor", [1, 1, 1, 1]);
624
422
  o(this, "fillMode", !0);
@@ -631,13 +429,18 @@ class lA {
631
429
  // in degrees
632
430
  // State stack for push/pop functionality
633
431
  o(this, "stateStack", []);
634
- this.gl = A, this.imageShader = new w(this.gl, _, hA), this.solidColorShader = new w(this.gl, _, EA), this.gl.enable(this.gl.BLEND), this.gl.blendEquation(this.gl.FUNC_ADD), this.gl.blendFunc(this.gl.ONE, this.gl.ONE_MINUS_SRC_ALPHA);
432
+ // ----- Immediate-mode helpers that use a single static VBO (no per-call allocation) -----
433
+ o(this, "unitBuffer", null);
434
+ o(this, "bytesPerVertex", 16);
435
+ // vec2 + vec2
436
+ o(this, "scratchFramebuffer", null);
437
+ this.gl = A, this.imageShader = new _(this.gl, w, iA), this.solidColorShader = new _(this.gl, w, sA), this.attribCache = /* @__PURE__ */ new Map(), this.gl.enable(this.gl.BLEND), this.gl.blendEquation(this.gl.FUNC_ADD), this.gl.blendFunc(this.gl.ONE, this.gl.ONE_MINUS_SRC_ALPHA), U(this.gl, [0, 0, this.gl.canvas.width, this.gl.canvas.height]), M(this.gl, !1);
635
438
  }
636
439
  /**
637
440
  * Set the current shader
638
441
  */
639
442
  shader(A) {
640
- this.currentShader = A, A.use();
443
+ this.currentShader !== A && (this.currentShader = A, A.use());
641
444
  }
642
445
  /**
643
446
  * Sets the fill color for subsequent rendering operations
@@ -729,13 +532,13 @@ class lA {
729
532
  * across frames and be managed by push/pop or explicit calls.
730
533
  */
731
534
  reset() {
732
- this.currentShader = null, this.stateStack = [], this.currentRotation = 0, this.fillMode = !0, this.strokeMode = !0, this.currentFillColor = [1, 1, 1, 1], this.currentStrokeColor = [0, 0, 0, 1], this.currentStrokeWeight = 1;
535
+ this.currentShader = null, this.stateStack = [], this.currentRotation = 0;
733
536
  }
734
537
  createShader(A, e) {
735
- return new w(this.gl, A, e);
538
+ return new _(this.gl, A, e);
736
539
  }
737
540
  createFilterShader(A) {
738
- return new w(this.gl, _, A);
541
+ return new _(this.gl, w, A);
739
542
  }
740
543
  /**
741
544
  * Set a uniform value for the current shader
@@ -747,18 +550,22 @@ class lA {
747
550
  * Draw a rectangle with the current fill and/or stroke settings
748
551
  */
749
552
  rect(A, e, t, r) {
750
- const i = new aA(this.gl, A, e, t, r);
751
553
  if (this.currentShader !== null) {
752
554
  if (this.currentRotation !== 0) {
753
- const { centerX: E, centerY: l, radians: c, aspectRatio: d } = this.calculateRotationParams(A, e, t, r);
754
- this.setUniform("u_rotation", c), this.setUniform("u_center", [E, l]), this.setUniform("u_aspectRatio", d);
555
+ const { centerX: l, centerY: c, radians: f, aspectRatio: u } = this.calculateRotationParams(A, e, t, r);
556
+ this.setUniform("u_rotation", f), this.setUniform("u_center", [l, c]), this.setUniform("u_aspectRatio", u);
755
557
  } else
756
558
  this.setUniform("u_rotation", 0), this.setUniform("u_center", [0, 0]), this.setUniform("u_aspectRatio", 1);
757
- i.renderFill(), this.currentShader = null;
559
+ this.drawRectImmediate(A, e, t, r), this.currentShader = null;
758
560
  return;
759
561
  }
760
- const s = this.solidColorShader, { centerX: n, centerY: g, radians: B, aspectRatio: h } = this.calculateRotationParams(A, e, t, r);
761
- this.fillMode && (this.shader(s), this.setUniform("u_color", this.currentFillColor), this.setUniform("u_rotation", B), this.setUniform("u_center", [n, g]), this.setUniform("u_aspectRatio", h), i.renderFill()), this.strokeMode && (this.shader(s), this.setUniform("u_color", this.currentStrokeColor), this.setUniform("u_rotation", B), this.setUniform("u_center", [n, g]), this.setUniform("u_aspectRatio", h), i.renderStroke(this.currentStrokeWeight)), this.currentShader = null;
562
+ const s = this.solidColorShader, a = this.currentRotation !== 0;
563
+ let g = 0, B = 0, E = 0, h = 1;
564
+ if (a) {
565
+ const l = this.calculateRotationParams(A, e, t, r);
566
+ g = l.centerX, B = l.centerY, E = l.radians, h = l.aspectRatio;
567
+ }
568
+ this.fillMode && (this.shader(s), this.setUniform("u_color", this.currentFillColor), a && (this.setUniform("u_rotation", E), this.setUniform("u_center", [g, B]), this.setUniform("u_aspectRatio", h)), this.drawRectImmediate(A, e, t, r)), this.strokeMode && this.currentStrokeWeight > 0 && (this.shader(s), this.setUniform("u_color", this.currentStrokeColor), a && (this.setUniform("u_rotation", E), this.setUniform("u_center", [g, B]), this.setUniform("u_aspectRatio", h)), this.drawRectStrokeImmediate(A, e, t, r, this.currentStrokeWeight));
762
569
  }
763
570
  /**
764
571
  * Draw a line from (x1, y1) to (x2, y2) with the current stroke settings.
@@ -769,35 +576,38 @@ class lA {
769
576
  * @param y2 Y-coordinate of the line end point
770
577
  */
771
578
  line(A, e, t, r) {
772
- if (!this.strokeMode) return;
773
- const i = new BA(this.gl, A, e, t, r);
774
579
  if (this.currentShader !== null) {
580
+ const C = (A + t) / 2, P = (e + r) / 2, p = Math.abs(t - A) || 1, D = Math.abs(r - e) || 1;
775
581
  if (this.currentRotation !== 0) {
776
- const u = (A + t) / 2, m = (e + r) / 2, D = Math.abs(t - A), C = Math.abs(r - e), { centerX: P, centerY: F, radians: v, aspectRatio: I } = this.calculateRotationParams(u - D / 2, m - C / 2, D, C);
777
- this.setUniform("u_rotation", v), this.setUniform("u_center", [P, F]), this.setUniform("u_aspectRatio", I);
582
+ const { centerX: x, centerY: I, radians: b, aspectRatio: v } = this.calculateRotationParams(C - p / 2, P - D / 2, p, D);
583
+ this.setUniform("u_rotation", b), this.setUniform("u_center", [x, I]), this.setUniform("u_aspectRatio", v);
778
584
  } else
779
585
  this.setUniform("u_rotation", 0), this.setUniform("u_center", [0, 0]), this.setUniform("u_aspectRatio", 1);
780
- i.renderStroke(this.currentStrokeWeight), this.currentShader = null;
586
+ const R = this.currentStrokeWeight > 0 ? this.currentStrokeWeight : 1;
587
+ this.drawLineImmediate(A, e, t, r, R), this.currentShader = null;
781
588
  return;
782
589
  }
783
- const s = this.solidColorShader, n = (A + t) / 2, g = (e + r) / 2, B = Math.abs(t - A), h = Math.abs(r - e), { centerX: E, centerY: l, radians: c, aspectRatio: d } = this.calculateRotationParams(n - B / 2, g - h / 2, B, h);
784
- this.shader(s), this.setUniform("u_color", this.currentStrokeColor), this.setUniform("u_rotation", c), this.setUniform("u_center", [E, l]), this.setUniform("u_aspectRatio", d), i.renderStroke(this.currentStrokeWeight), this.currentShader = null;
590
+ if (!this.strokeMode || this.currentStrokeWeight <= 0) return;
591
+ const s = this.solidColorShader, a = (A + t) / 2, g = (e + r) / 2, B = Math.abs(t - A) || 1, E = Math.abs(r - e) || 1, h = this.currentRotation !== 0;
592
+ let l = 0, c = 0, f = 0, u = 1;
593
+ if (h) {
594
+ const C = this.calculateRotationParams(a - B / 2, g - E / 2, B, E);
595
+ l = C.centerX, c = C.centerY, f = C.radians, u = C.aspectRatio;
596
+ }
597
+ this.shader(s), this.setUniform("u_color", this.currentStrokeColor), h && (this.setUniform("u_rotation", f), this.setUniform("u_center", [l, c]), this.setUniform("u_aspectRatio", u)), this.drawLineImmediate(A, e, t, r, this.currentStrokeWeight);
785
598
  }
786
599
  /**
787
600
  * Calculate rotation parameters for built-in shaders (NDC coordinates)
788
601
  */
789
602
  calculateRotationParams(A, e, t, r) {
790
- const i = this.gl.getParameter(this.gl.VIEWPORT), s = i[2], n = i[3], g = s / n, B = this.gl.getParameter(this.gl.FRAMEBUFFER_BINDING) !== null, h = A + t / 2, E = e + r / 2, l = h / s * 2 - 1;
791
- let c;
792
- B ? c = E / n * 2 - 1 : c = 1 - E / n * 2;
793
- const d = this.currentRotation * Math.PI / 180;
794
- return { centerX: l, centerY: c, radians: d, aspectRatio: g };
603
+ const i = $(this.gl) || [0, 0, this.gl.canvas.width, this.gl.canvas.height], s = i[2], a = i[3], g = s / a, B = A + t / 2, E = e + r / 2, h = B / s * 2 - 1, l = 1 - E / a * 2, c = this.currentRotation * Math.PI / 180;
604
+ return { centerX: h, centerY: l, radians: c, aspectRatio: g };
795
605
  }
796
606
  /**
797
607
  * Create a new framebuffer
798
608
  */
799
609
  createFramebuffer(A, e, t = {}) {
800
- return new oA(this.gl, A, e, t);
610
+ return new O(this.gl, A, e, t);
801
611
  }
802
612
  /**
803
613
  * Fill the current framebuffer with a solid color
@@ -812,11 +622,10 @@ class lA {
812
622
  this.gl.clearColor(A, e, t, r), this.gl.clear(this.gl.COLOR_BUFFER_BIT);
813
623
  }
814
624
  /**
815
- * Ensure viewport matches canvas dimensions, optionally using custom dimensions for CSS transforms
625
+ * Ensure viewport matches canvas dimensions
816
626
  */
817
- resetViewport(A, e) {
818
- const t = A || this.gl.canvas.width, r = e || this.gl.canvas.height;
819
- this.gl.viewport(0, 0, t, r);
627
+ resetViewport() {
628
+ this.gl.viewport(0, 0, this.gl.canvas.width, this.gl.canvas.height), U(this.gl, [0, 0, this.gl.canvas.width, this.gl.canvas.height]), M(this.gl, !1);
820
629
  }
821
630
  /**
822
631
  * Get the WebGL context
@@ -829,26 +638,133 @@ class lA {
829
638
  * This method is idempotent and safe to call multiple times.
830
639
  */
831
640
  dispose() {
832
- this.imageShader.dispose(), this.solidColorShader.dispose(), this.imageShader = null, this.solidColorShader = null, this.currentShader = null, this.stateStack = [];
641
+ this.scratchFramebuffer && (this.scratchFramebuffer.dispose(), this.scratchFramebuffer = null), this.imageShader.dispose(), this.solidColorShader.dispose(), this.imageShader = null, this.solidColorShader = null, this.currentShader = null, this.stateStack = [];
833
642
  }
834
643
  /**
835
644
  * Render a framebuffer at a specific position with optional scaling
836
645
  */
837
646
  image(A, e, t, r, i) {
647
+ const s = this.gl, a = r ?? A.width, g = i ?? A.height, B = s.getParameter(s.FRAMEBUFFER_BINDING);
648
+ if (B && A.framebuffer === B) {
649
+ (!this.scratchFramebuffer || this.scratchFramebuffer.width !== a || this.scratchFramebuffer.height !== g) && (this.scratchFramebuffer && this.scratchFramebuffer.dispose(), this.scratchFramebuffer = this.createFramebuffer(a, g)), this.scratchFramebuffer.begin(), this.clear(0, 0, 0, 0), this.shader(this.imageShader), this.setUniform("u_texture", A.texture), this.setUniform("u_rotation", 0), this.setUniform("u_center", [0, 0]), this.setUniform("u_aspectRatio", 1), this.drawRectImmediate(0, 0, a, g), this.scratchFramebuffer.end(), this.shader(this.imageShader);
650
+ const h = this.currentRotation !== 0 ? this.calculateRotationParams(e, t, a, g) : { centerX: 0, centerY: 0, radians: 0, aspectRatio: 1 };
651
+ this.setUniform("u_texture", this.scratchFramebuffer.texture), this.setUniform("u_rotation", h.radians), this.setUniform("u_center", [h.centerX, h.centerY]), this.setUniform("u_aspectRatio", h.aspectRatio), this.drawRectImmediate(e, t, a, g), s.bindTexture(s.TEXTURE_2D, null), this.currentShader = null;
652
+ return;
653
+ }
838
654
  this.shader(this.imageShader), this.setUniform("u_texture", A.texture);
839
- const { centerX: s, centerY: n, radians: g, aspectRatio: B } = this.calculateRotationParams(
655
+ const E = this.currentRotation !== 0 ? this.calculateRotationParams(e, t, a, g) : { centerX: 0, centerY: 0, radians: 0, aspectRatio: 1 };
656
+ this.setUniform("u_rotation", E.radians), this.setUniform("u_center", [E.centerX, E.centerY]), this.setUniform("u_aspectRatio", E.aspectRatio), this.drawRectImmediate(e, t, a, g), s.bindTexture(s.TEXTURE_2D, null), this.currentShader = null;
657
+ }
658
+ ensureUnitBuffer() {
659
+ if (this.unitBuffer) return;
660
+ const A = this.gl;
661
+ this.unitBuffer = A.createBuffer(), A.bindBuffer(A.ARRAY_BUFFER, this.unitBuffer);
662
+ }
663
+ enableAttribs() {
664
+ const A = this.gl, e = A.getParameter(A.CURRENT_PROGRAM);
665
+ let t = this.attribCache.get(e);
666
+ return t || (t = {
667
+ a_position: A.getAttribLocation(e, "a_position"),
668
+ a_texCoord: A.getAttribLocation(e, "a_texCoord")
669
+ }, this.attribCache.set(e, t)), A.enableVertexAttribArray(t.a_position), A.vertexAttribPointer(t.a_position, 2, A.FLOAT, !1, this.bytesPerVertex, 0), A.enableVertexAttribArray(t.a_texCoord), A.vertexAttribPointer(t.a_texCoord, 2, A.FLOAT, !1, this.bytesPerVertex, 8), { positionLoc: t.a_position, texLoc: t.a_texCoord };
670
+ }
671
+ disableAttribs(A, e) {
672
+ const t = this.gl;
673
+ t.disableVertexAttribArray(A), t.disableVertexAttribArray(e);
674
+ }
675
+ uploadQuadNDC(A, e, t, r) {
676
+ const i = this.gl;
677
+ this.ensureUnitBuffer(), i.bindBuffer(i.ARRAY_BUFFER, this.unitBuffer);
678
+ const s = 0, a = 0, g = 1, B = 1, E = new Float32Array([
679
+ A,
680
+ r,
681
+ 0,
682
+ s,
683
+ // bottom-left
684
+ t,
685
+ r,
686
+ 1,
687
+ a,
688
+ // bottom-right
689
+ A,
840
690
  e,
691
+ 0,
692
+ g,
693
+ // top-left
694
+ A,
695
+ e,
696
+ 0,
697
+ g,
698
+ // top-left
841
699
  t,
842
- r ?? A.width,
843
- i ?? A.height
844
- );
845
- this.setUniform("u_rotation", g), this.setUniform("u_center", [s, n]), this.setUniform("u_aspectRatio", B), this.rect(e, t, r ?? A.width, i ?? A.height);
700
+ r,
701
+ 1,
702
+ a,
703
+ // bottom-right
704
+ t,
705
+ e,
706
+ 1,
707
+ B
708
+ // top-right
709
+ ]);
710
+ i.bufferData(i.ARRAY_BUFFER, E, i.DYNAMIC_DRAW);
711
+ }
712
+ toNDC(A, e) {
713
+ const t = this.gl, r = $(t) || [0, 0, t.canvas.width, t.canvas.height], i = r[2], s = r[3], a = A / i * 2 - 1, g = 1 - e / s * 2;
714
+ return { nx: a, ny: g };
715
+ }
716
+ drawRectImmediate(A, e, t, r) {
717
+ const i = this.toNDC(A, e), s = this.toNDC(A + t, e + r);
718
+ this.uploadQuadNDC(i.nx, i.ny, s.nx, s.ny);
719
+ const a = this.enableAttribs();
720
+ this.gl.drawArrays(this.gl.TRIANGLES, 0, 6), this.disableAttribs(a.positionLoc, a.texLoc);
721
+ }
722
+ drawRectStrokeImmediate(A, e, t, r, i) {
723
+ this.drawRectImmediate(A, e, t, i), this.drawRectImmediate(A + t - i, e, i, r), this.drawRectImmediate(A, e + r - i, t, i), this.drawRectImmediate(A, e, i, r);
724
+ }
725
+ drawLineImmediate(A, e, t, r, i) {
726
+ const s = t - A, a = r - e, g = Math.hypot(s, a);
727
+ if (g === 0) {
728
+ this.drawRectImmediate(A - i / 2, e - i / 2, i, i);
729
+ return;
730
+ }
731
+ const B = s / g, h = -(a / g), l = B, c = i / 2, f = A + h * c, u = e + l * c, C = A - h * c, P = e - l * c, p = t + h * c, D = r + l * c, R = t - h * c, x = r - l * c, I = this.toNDC(f, u), b = this.toNDC(C, P), v = this.toNDC(p, D), W = this.toNDC(R, x), F = this.gl;
732
+ this.ensureUnitBuffer(), F.bindBuffer(F.ARRAY_BUFFER, this.unitBuffer);
733
+ const q = new Float32Array([
734
+ I.nx,
735
+ I.ny,
736
+ 0,
737
+ 0,
738
+ b.nx,
739
+ b.ny,
740
+ 0,
741
+ 1,
742
+ v.nx,
743
+ v.ny,
744
+ 1,
745
+ 0,
746
+ b.nx,
747
+ b.ny,
748
+ 0,
749
+ 1,
750
+ W.nx,
751
+ W.ny,
752
+ 1,
753
+ 1,
754
+ v.nx,
755
+ v.ny,
756
+ 1,
757
+ 0
758
+ ]);
759
+ F.bufferData(F.ARRAY_BUFFER, q, F.DYNAMIC_DRAW);
760
+ const X = this.enableAttribs();
761
+ F.drawArrays(F.TRIANGLES, 0, 6), this.disableAttribs(X.positionLoc, X.texLoc);
846
762
  }
847
763
  }
848
764
  var Q = {};
849
- Q.parse = function(a) {
850
- var A = function(i, s, n, g) {
851
- var B = Q.T, h = {
765
+ Q.parse = function(n) {
766
+ var A = function(i, s, a, g) {
767
+ var B = Q.T, E = {
852
768
  cmap: B.cmap,
853
769
  head: B.head,
854
770
  hhea: B.hhea,
@@ -856,119 +772,119 @@ Q.parse = function(a) {
856
772
  hmtx: B.hmtx,
857
773
  loca: B.loca,
858
774
  glyf: B.glyf
859
- }, E = { _data: i, _index: s, _offset: n };
860
- for (var l in h) {
861
- var c = Q.findTable(i, l, n);
775
+ }, h = { _data: i, _index: s, _offset: a };
776
+ for (var l in E) {
777
+ var c = Q.findTable(i, l, a);
862
778
  if (c) {
863
- var d = c[0], u = g[d];
864
- u == null && (u = h[l].parseTab(i, d, c[1], E)), E[l] = g[d] = u;
779
+ var f = c[0], u = g[f];
780
+ u == null && (u = E[l].parseTab(i, f, c[1], h)), h[l] = g[f] = u;
865
781
  }
866
782
  }
867
- return E;
868
- }, e = new Uint8Array(a), t = {}, r = A(e, 0, 0, t);
783
+ return h;
784
+ }, e = new Uint8Array(n), t = {}, r = A(e, 0, 0, t);
869
785
  return [r];
870
786
  };
871
- Q.findTable = function(a, A, e) {
872
- for (var t = Q.B, r = t.readUshort(a, e + 4), i = e + 12, s = 0; s < r; s++) {
873
- var n = t.readASCII(a, i, 4);
874
- t.readUint(a, i + 4);
875
- var g = t.readUint(a, i + 8), B = t.readUint(a, i + 12);
876
- if (n == A) return [g, B];
787
+ Q.findTable = function(n, A, e) {
788
+ for (var t = Q.B, r = t.readUshort(n, e + 4), i = e + 12, s = 0; s < r; s++) {
789
+ var a = t.readASCII(n, i, 4);
790
+ t.readUint(n, i + 4);
791
+ var g = t.readUint(n, i + 8), B = t.readUint(n, i + 12);
792
+ if (a == A) return [g, B];
877
793
  i += 16;
878
794
  }
879
795
  return null;
880
796
  };
881
797
  Q.T = {};
882
798
  Q.B = {
883
- readShort: function(a, A) {
799
+ readShort: function(n, A) {
884
800
  var e = Q.B.t.uint16;
885
- return e[0] = a[A] << 8 | a[A + 1], Q.B.t.int16[0];
801
+ return e[0] = n[A] << 8 | n[A + 1], Q.B.t.int16[0];
886
802
  },
887
- readUshort: function(a, A) {
888
- return a[A] << 8 | a[A + 1];
803
+ readUshort: function(n, A) {
804
+ return n[A] << 8 | n[A + 1];
889
805
  },
890
- readUshorts: function(a, A, e) {
806
+ readUshorts: function(n, A, e) {
891
807
  for (var t = [], r = 0; r < e; r++)
892
- t.push(Q.B.readUshort(a, A + r * 2));
808
+ t.push(Q.B.readUshort(n, A + r * 2));
893
809
  return t;
894
810
  },
895
- readUint: function(a, A) {
811
+ readUint: function(n, A) {
896
812
  var e = Q.B.t.uint8;
897
- return e[3] = a[A], e[2] = a[A + 1], e[1] = a[A + 2], e[0] = a[A + 3], Q.B.t.uint32[0];
813
+ return e[3] = n[A], e[2] = n[A + 1], e[1] = n[A + 2], e[0] = n[A + 3], Q.B.t.uint32[0];
898
814
  },
899
- readASCII: function(a, A, e) {
900
- for (var t = "", r = 0; r < e; r++) t += String.fromCharCode(a[A + r]);
815
+ readASCII: function(n, A, e) {
816
+ for (var t = "", r = 0; r < e; r++) t += String.fromCharCode(n[A + r]);
901
817
  return t;
902
818
  },
903
819
  // Simplified typed array buffer - only what's needed
904
820
  t: function() {
905
- var a = new ArrayBuffer(8);
821
+ var n = new ArrayBuffer(8);
906
822
  return {
907
- uint8: new Uint8Array(a),
908
- int16: new Int16Array(a),
909
- uint16: new Uint16Array(a),
910
- uint32: new Uint32Array(a)
823
+ uint8: new Uint8Array(n),
824
+ int16: new Int16Array(n),
825
+ uint16: new Uint16Array(n),
826
+ uint32: new Uint32Array(n)
911
827
  };
912
828
  }()
913
829
  };
914
830
  Q.T.cmap = {
915
- parseTab: function(a, A, e) {
831
+ parseTab: function(n, A, e) {
916
832
  var t = { tables: [], ids: {}, off: A };
917
- a = new Uint8Array(a.buffer, A, e), A = 0;
833
+ n = new Uint8Array(n.buffer, A, e), A = 0;
918
834
  var r = Q.B, i = r.readUshort, s = Q.T.cmap;
919
- i(a, A), A += 2;
920
- var n = i(a, A);
835
+ i(n, A), A += 2;
836
+ var a = i(n, A);
921
837
  A += 2;
922
- for (var g = [], B = 0; B < n; B++) {
923
- var h = i(a, A);
838
+ for (var g = [], B = 0; B < a; B++) {
839
+ var E = i(n, A);
924
840
  A += 2;
925
- var E = i(a, A);
841
+ var h = i(n, A);
926
842
  A += 2;
927
- var l = r.readUint(a, A);
843
+ var l = r.readUint(n, A);
928
844
  A += 4;
929
- var c = "p" + h + "e" + E, d = g.indexOf(l);
930
- if (d == -1) {
931
- d = t.tables.length;
845
+ var c = "p" + E + "e" + h, f = g.indexOf(l);
846
+ if (f == -1) {
847
+ f = t.tables.length;
932
848
  var u = {};
933
849
  g.push(l);
934
- var m = u.format = i(a, l);
935
- m == 4 ? u = s.parse4(a, l, u) : m == 12 && (u = s.parse12(a, l, u)), t.tables.push(u);
850
+ var C = u.format = i(n, l);
851
+ C == 4 ? u = s.parse4(n, l, u) : C == 12 && (u = s.parse12(n, l, u)), t.tables.push(u);
936
852
  }
937
- t.ids[c] != null && console.log("multiple tables for one platform+encoding: " + c), t.ids[c] = d;
853
+ t.ids[c] != null && console.log("multiple tables for one platform+encoding: " + c), t.ids[c] = f;
938
854
  }
939
855
  return t;
940
856
  },
941
- parse4: function(a, A, e) {
857
+ parse4: function(n, A, e) {
942
858
  var t = Q.B, r = t.readUshort, i = t.readUshorts, s = A;
943
859
  A += 2;
944
- var n = r(a, A);
945
- A += 2, r(a, A), A += 2;
946
- var g = r(a, A);
860
+ var a = r(n, A);
861
+ A += 2, r(n, A), A += 2;
862
+ var g = r(n, A);
947
863
  A += 2;
948
864
  var B = g >>> 1;
949
- e.searchRange = r(a, A), A += 2, e.entrySelector = r(a, A), A += 2, e.rangeShift = r(a, A), A += 2, e.endCount = i(a, A, B), A += B * 2, A += 2, e.startCount = i(a, A, B), A += B * 2, e.idDelta = [];
950
- for (var h = 0; h < B; h++)
951
- e.idDelta.push(t.readShort(a, A)), A += 2;
952
- return e.idRangeOffset = i(a, A, B), A += B * 2, e.glyphIdArray = i(a, A, s + n - A >> 1), e;
865
+ e.searchRange = r(n, A), A += 2, e.entrySelector = r(n, A), A += 2, e.rangeShift = r(n, A), A += 2, e.endCount = i(n, A, B), A += B * 2, A += 2, e.startCount = i(n, A, B), A += B * 2, e.idDelta = [];
866
+ for (var E = 0; E < B; E++)
867
+ e.idDelta.push(t.readShort(n, A)), A += 2;
868
+ return e.idRangeOffset = i(n, A, B), A += B * 2, e.glyphIdArray = i(n, A, s + a - A >> 1), e;
953
869
  },
954
- parse12: function(a, A, e) {
870
+ parse12: function(n, A, e) {
955
871
  var t = Q.B, r = t.readUint;
956
- A += 4, r(a, A), A += 4, r(a, A), A += 4;
957
- var i = r(a, A) * 3;
872
+ A += 4, r(n, A), A += 4, r(n, A), A += 4;
873
+ var i = r(n, A) * 3;
958
874
  A += 4;
959
- for (var s = e.groups = new Uint32Array(i), n = 0; n < i; n += 3)
960
- s[n] = r(a, A + (n << 2)), s[n + 1] = r(a, A + (n << 2) + 4), s[n + 2] = r(a, A + (n << 2) + 8);
875
+ for (var s = e.groups = new Uint32Array(i), a = 0; a < i; a += 3)
876
+ s[a] = r(n, A + (a << 2)), s[a + 1] = r(n, A + (a << 2) + 4), s[a + 2] = r(n, A + (a << 2) + 8);
961
877
  return e;
962
878
  }
963
879
  };
964
880
  Q.T.head = {
965
- parseTab: function(a, A, e) {
881
+ parseTab: function(n, A, e) {
966
882
  var t = Q.B, r = {};
967
- return A += 18, r.unitsPerEm = t.readUshort(a, A), A += 2, A += 16, r.xMin = t.readShort(a, A), A += 2, r.yMin = t.readShort(a, A), A += 2, r.xMax = t.readShort(a, A), A += 2, r.yMax = t.readShort(a, A), A += 2, A += 6, r.indexToLocFormat = t.readShort(a, A), r;
883
+ return A += 18, r.unitsPerEm = t.readUshort(n, A), A += 2, A += 16, r.xMin = t.readShort(n, A), A += 2, r.yMin = t.readShort(n, A), A += 2, r.xMax = t.readShort(n, A), A += 2, r.yMax = t.readShort(n, A), A += 2, A += 6, r.indexToLocFormat = t.readShort(n, A), r;
968
884
  }
969
885
  };
970
886
  Q.T.hhea = {
971
- parseTab: function(a, A, e) {
887
+ parseTab: function(n, A, e) {
972
888
  var t = Q.B, r = {};
973
889
  A += 4;
974
890
  for (var i = [
@@ -989,84 +905,84 @@ Q.T.hhea = {
989
905
  "metricDataFormat",
990
906
  "numberOfHMetrics"
991
907
  ], s = 0; s < i.length; s++) {
992
- var n = i[s], g = n == "advanceWidthMax" || n == "numberOfHMetrics" ? t.readUshort : t.readShort;
993
- r[n] = g(a, A + s * 2);
908
+ var a = i[s], g = a == "advanceWidthMax" || a == "numberOfHMetrics" ? t.readUshort : t.readShort;
909
+ r[a] = g(n, A + s * 2);
994
910
  }
995
911
  return r;
996
912
  }
997
913
  };
998
914
  Q.T.hmtx = {
999
- parseTab: function(a, A, e, t) {
1000
- for (var r = Q.B, i = [], s = [], n = t.maxp.numGlyphs, g = t.hhea.numberOfHMetrics, B = 0, h = 0, E = 0; E < g; )
1001
- B = r.readUshort(a, A + (E << 2)), h = r.readShort(a, A + (E << 2) + 2), i.push(B), s.push(h), E++;
1002
- for (; E < n; )
1003
- i.push(B), s.push(h), E++;
915
+ parseTab: function(n, A, e, t) {
916
+ for (var r = Q.B, i = [], s = [], a = t.maxp.numGlyphs, g = t.hhea.numberOfHMetrics, B = 0, E = 0, h = 0; h < g; )
917
+ B = r.readUshort(n, A + (h << 2)), E = r.readShort(n, A + (h << 2) + 2), i.push(B), s.push(E), h++;
918
+ for (; h < a; )
919
+ i.push(B), s.push(E), h++;
1004
920
  return { aWidth: i, lsBearing: s };
1005
921
  }
1006
922
  };
1007
923
  Q.T.maxp = {
1008
- parseTab: function(a, A, e) {
924
+ parseTab: function(n, A, e) {
1009
925
  var t = Q.B, r = t.readUshort, i = {};
1010
- return t.readUint(a, A), A += 4, i.numGlyphs = r(a, A), A += 2, i;
926
+ return t.readUint(n, A), A += 4, i.numGlyphs = r(n, A), A += 2, i;
1011
927
  }
1012
928
  };
1013
929
  Q.T.loca = {
1014
- parseTab: function(a, A, e, t) {
1015
- var r = Q.B, i = [], s = t.head.indexToLocFormat, n = t.maxp.numGlyphs + 1;
1016
- if (s == 0) for (var g = 0; g < n; g++) i.push(r.readUshort(a, A + (g << 1)) << 1);
1017
- if (s == 1) for (var g = 0; g < n; g++) i.push(r.readUint(a, A + (g << 2)));
930
+ parseTab: function(n, A, e, t) {
931
+ var r = Q.B, i = [], s = t.head.indexToLocFormat, a = t.maxp.numGlyphs + 1;
932
+ if (s == 0) for (var g = 0; g < a; g++) i.push(r.readUshort(n, A + (g << 1)) << 1);
933
+ if (s == 1) for (var g = 0; g < a; g++) i.push(r.readUint(n, A + (g << 2)));
1018
934
  return i;
1019
935
  }
1020
936
  };
1021
937
  Q.T.glyf = {
1022
- parseTab: function(a, A, e, t) {
938
+ parseTab: function(n, A, e, t) {
1023
939
  for (var r = [], i = t.maxp.numGlyphs, s = 0; s < i; s++) r.push(null);
1024
940
  return r;
1025
941
  },
1026
- _parseGlyf: function(a, A) {
1027
- var e = Q.B, t = a._data, r = a.loca;
942
+ _parseGlyf: function(n, A) {
943
+ var e = Q.B, t = n._data, r = n.loca;
1028
944
  if (r[A] == r[A + 1]) return null;
1029
- var i = Q.findTable(t, "glyf", a._offset)[0] + r[A], s = {};
945
+ var i = Q.findTable(t, "glyf", n._offset)[0] + r[A], s = {};
1030
946
  if (s.noc = e.readShort(t, i), i += 2, s.xMin = e.readShort(t, i), i += 2, s.yMin = e.readShort(t, i), i += 2, s.xMax = e.readShort(t, i), i += 2, s.yMax = e.readShort(t, i), i += 2, s.xMin >= s.xMax || s.yMin >= s.yMax) return null;
1031
947
  if (s.noc > 0) {
1032
948
  s.endPts = [];
1033
- for (var n = 0; n < s.noc; n++)
949
+ for (var a = 0; a < s.noc; a++)
1034
950
  s.endPts.push(e.readUshort(t, i)), i += 2;
1035
951
  var g = e.readUshort(t, i);
1036
952
  if (i += 2, t.length - i < g) return null;
1037
953
  i += g;
1038
954
  var B = s.endPts[s.noc - 1] + 1;
1039
955
  s.flags = [];
1040
- for (var n = 0; n < B; n++) {
1041
- var h = t[i];
1042
- if (i++, s.flags.push(h), h & 8) {
1043
- var E = t[i];
956
+ for (var a = 0; a < B; a++) {
957
+ var E = t[i];
958
+ if (i++, s.flags.push(E), E & 8) {
959
+ var h = t[i];
1044
960
  i++;
1045
- for (var l = 0; l < E; l++)
1046
- s.flags.push(h), n++;
961
+ for (var l = 0; l < h; l++)
962
+ s.flags.push(E), a++;
1047
963
  }
1048
964
  }
1049
965
  s.xs = [];
1050
- for (var n = 0; n < B; n++) {
1051
- var c = (s.flags[n] & 2) != 0, d = (s.flags[n] & 16) != 0;
1052
- c ? (s.xs.push(d ? t[i] : -t[i]), i++) : d ? s.xs.push(0) : (s.xs.push(e.readShort(t, i)), i += 2);
966
+ for (var a = 0; a < B; a++) {
967
+ var c = (s.flags[a] & 2) != 0, f = (s.flags[a] & 16) != 0;
968
+ c ? (s.xs.push(f ? t[i] : -t[i]), i++) : f ? s.xs.push(0) : (s.xs.push(e.readShort(t, i)), i += 2);
1053
969
  }
1054
970
  s.ys = [];
1055
- for (var n = 0; n < B; n++) {
1056
- var c = (s.flags[n] & 4) != 0, d = (s.flags[n] & 32) != 0;
1057
- c ? (s.ys.push(d ? t[i] : -t[i]), i++) : d ? s.ys.push(0) : (s.ys.push(e.readShort(t, i)), i += 2);
971
+ for (var a = 0; a < B; a++) {
972
+ var c = (s.flags[a] & 4) != 0, f = (s.flags[a] & 32) != 0;
973
+ c ? (s.ys.push(f ? t[i] : -t[i]), i++) : f ? s.ys.push(0) : (s.ys.push(e.readShort(t, i)), i += 2);
1058
974
  }
1059
- for (var u = 0, m = 0, n = 0; n < B; n++)
1060
- u += s.xs[n], m += s.ys[n], s.xs[n] = u, s.ys[n] = m;
975
+ for (var u = 0, C = 0, a = 0; a < B; a++)
976
+ u += s.xs[a], C += s.ys[a], s.xs[a] = u, s.ys[a] = C;
1061
977
  } else
1062
978
  s.parts = [];
1063
979
  return s;
1064
980
  }
1065
981
  };
1066
982
  typeof module < "u" && module.exports ? module.exports = Q : typeof window < "u" && (window.Typr = Q);
1067
- const QA = `data:font/truetype;charset=utf-8;base64,AAEAAAAKAIAAAwAgT1MvMs+QEyQAAAEoAAAAYGNtYXAg7yVJAAAFjAAACSBnbHlmuHLTdAAAErQAAGi0aGVhZFvXdUwAAACsAAAANmhoZWELAQUCAAAA5AAAACRobXR4BACDgAAAAYgAAAQEbG9jYQAy54AAAA6sAAAECG1heHABIgCCAAABCAAAACBuYW1lVs/OSgAAe2gAAAOicG9zdABpADQAAH8MAAAAIAABAAAAAQAAzOWHqV8PPPUAAAQAAAAAAHxiGCcAAAAAfGIYJwAAAAAEAAQAAAAACAACAAEAAAAAAAEAAAQAAAAAAAQAAAAAAAcAAAEAAAAAAAAAAAAAAAAAAAEBAAEAAAEBAIAAIAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAgQAAZAABQAEAgACAAAAAAACAAIAAAACAAAzAMwAAAAABAAAAAAAAACAAACLAABw4wAAAAAAAAAAWUFMLgBAACAmawQAAAAAAAQAAAAAAAFRAAAAAAMABAAAAAAgAAAEAAAABAAAAAQAAAAEAAGABAABAAQAAIAEAACABAAAgAQAAIAEAAGABAABAAQAAQAEAACABAABAAQAAIAEAACABAABAAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAABAAQAAIAEAAEABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAABAAQAAIAEAAEABAAAgAQAAIAEAAEABAAAgAQAAIAEAACABAAAgAQAAIAEAAEABAAAgAQAAIAEAAGABAAAgAQAAIAEAAGABAAAgAQAAIAEAACABAAAgAQAAIAEAAEABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAABgAQAAQAEAACABAAAAAQAAgAEAACABAAAgAQAAIAEAACABAACAAQAAAAEAAIABAABgAQAAgAEAACABAAAgAQAAAAEAACABAAAAAQAAAAEAAAABAAAAAQAAAAEAAIABAADAAQAAAAEAAAABAAAgAQAAYAEAAAABAAAAAQAAIAEAAAA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AIAAAACA/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
983
+ const oA = `data:font/truetype;charset=utf-8;base64,AAEAAAAKAIAAAwAgT1MvMs+QEyQAAAEoAAAAYGNtYXAg7yVJAAAFjAAACSBnbHlmuHLTdAAAErQAAGi0aGVhZFvXdUwAAACsAAAANmhoZWELAQUCAAAA5AAAACRobXR4BACDgAAAAYgAAAQEbG9jYQAy54AAAA6sAAAECG1heHABIgCCAAABCAAAACBuYW1lVs/OSgAAe2gAAAOicG9zdABpADQAAH8MAAAAIAABAAAAAQAAzOWHqV8PPPUAAAQAAAAAAHxiGCcAAAAAfGIYJwAAAAAEAAQAAAAACAACAAEAAAAAAAEAAAQAAAAAAAQAAAAAAAcAAAEAAAAAAAAAAAAAAAAAAAEBAAEAAAEBAIAAIAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAgQAAZAABQAEAgACAAAAAAACAAIAAAACAAAzAMwAAAAABAAAAAAAAACAAACLAABw4wAAAAAAAAAAWUFMLgBAACAmawQAAAAAAAQAAAAAAAFRAAAAAAMABAAAAAAgAAAEAAAABAAAAAQAAAAEAAGABAABAAQAAIAEAACABAAAgAQAAIAEAAGABAABAAQAAQAEAACABAABAAQAAIAEAACABAABAAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAABAAQAAIAEAAEABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAABAAQAAIAEAAEABAAAgAQAAIAEAAEABAAAgAQAAIAEAACABAAAgAQAAIAEAAEABAAAgAQAAIAEAAGABAAAgAQAAIAEAAGABAAAgAQAAIAEAACABAAAgAQAAIAEAAEABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAABgAQAAQAEAACABAAAAAQAAgAEAACABAAAgAQAAIAEAACABAACAAQAAAAEAAIABAABgAQAAgAEAACABAAAgAQAAAAEAACABAAAAAQAAAAEAAAABAAAAAQAAAAEAAIABAADAAQAAAAEAAAABAAAgAQAAYAEAAAABAAAAAQAAIAEAAAA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AIAAAACA/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
1068
984
  `;
1069
- class cA {
985
+ class nA {
1070
986
  /**
1071
987
  * Extracts all available characters from a font's cmap tables.
1072
988
  * @param font The parsed font object from Typr
@@ -1117,9 +1033,9 @@ class cA {
1117
1033
  return e;
1118
1034
  for (let t = 0; t < A.groups.length; t += 3) {
1119
1035
  const r = A.groups[t], i = A.groups[t + 1], s = A.groups[t + 2];
1120
- for (let n = r; n <= i; n++)
1121
- if (s + (n - r) > 0) {
1122
- const B = String.fromCodePoint(n);
1036
+ for (let a = r; a <= i; a++)
1037
+ if (s + (a - r) > 0) {
1038
+ const B = String.fromCodePoint(a);
1123
1039
  e.push(B);
1124
1040
  }
1125
1041
  }
@@ -1163,7 +1079,7 @@ class cA {
1163
1079
  return !(e >= 0 && e <= 31 && e !== 9 && e !== 10 && e !== 13 || e >= 127 && e <= 159);
1164
1080
  }
1165
1081
  }
1166
- class uA {
1082
+ class gA {
1167
1083
  /**
1168
1084
  * Creates a new TextureAtlasCreation instance.
1169
1085
  * @param renderer The WebGL renderer instance
@@ -1183,13 +1099,13 @@ class uA {
1183
1099
  * @returns Object containing framebuffer, columns, and rows
1184
1100
  */
1185
1101
  createTextureAtlas(A, e, t, r) {
1186
- const i = A.length, s = Math.ceil(Math.sqrt(i)), n = Math.ceil(i / s), g = e.width * s, B = e.height * n;
1102
+ const i = A.length, s = Math.ceil(Math.sqrt(i)), a = Math.ceil(i / s), g = e.width * s, B = e.height * a;
1187
1103
  this._setupCanvas(g, B, t, r), this._renderCharactersToCanvas(A, e, s, t), this._applyBlackWhiteThreshold();
1188
- const h = this._renderer.createFramebuffer(g, B, { filter: "nearest" });
1189
- return h.update(this._textureCanvas), {
1190
- framebuffer: h,
1104
+ const E = this._renderer.createFramebuffer(g, B, { filter: "nearest" });
1105
+ return E.update(this._textureCanvas), {
1106
+ framebuffer: E,
1191
1107
  columns: s,
1192
- rows: n
1108
+ rows: a
1193
1109
  };
1194
1110
  }
1195
1111
  /**
@@ -1213,8 +1129,8 @@ class uA {
1213
1129
  */
1214
1130
  _renderCharactersToCanvas(A, e, t, r) {
1215
1131
  for (let i = 0; i < A.length; i++) {
1216
- const s = i % t, n = Math.floor(i / t), g = s * e.width + e.width * 0.5, B = n * e.height + e.height * 0.5, h = Math.round(g - e.width * 0.5), E = Math.round(B - r * 0.5);
1217
- this._textureContext.fillText(A[i].character, h, E);
1132
+ const s = i % t, a = Math.floor(i / t), g = s * e.width + e.width * 0.5, B = a * e.height + e.height * 0.5, E = Math.round(g - e.width * 0.5), h = Math.round(B - r * 0.5);
1133
+ this._textureContext.fillText(A[i].character, E, h);
1218
1134
  }
1219
1135
  }
1220
1136
  /**
@@ -1226,13 +1142,13 @@ class uA {
1226
1142
  _applyBlackWhiteThreshold(A = 128) {
1227
1143
  const e = this._textureContext.getImageData(0, 0, this._textureCanvas.width, this._textureCanvas.height), t = e.data;
1228
1144
  for (let r = 0; r < t.length; r += 4) {
1229
- const i = 0.299 * t[r] + 0.587 * t[r + 1] + 0.114 * t[r + 2], s = A + 32, n = i > s ? 255 : 0;
1230
- t[r] = n, t[r + 1] = n, t[r + 2] = n;
1145
+ const i = 0.299 * t[r] + 0.587 * t[r + 1] + 0.114 * t[r + 2], s = A + 32, a = i > s ? 255 : 0;
1146
+ t[r] = a, t[r + 1] = a, t[r + 2] = a;
1231
1147
  }
1232
1148
  this._textureContext.putImageData(e, 0, 0);
1233
1149
  }
1234
1150
  }
1235
- class dA {
1151
+ class BA {
1236
1152
  /**
1237
1153
  * Creates a new MetricsCalculation instance.
1238
1154
  */
@@ -1253,7 +1169,7 @@ class dA {
1253
1169
  this._tempContext.font = `${e}px ${t}`;
1254
1170
  let r = 0, i = 0;
1255
1171
  for (const s of A) {
1256
- const n = this._tempContext.measureText(s), g = n.width, B = n.actualBoundingBoxAscent + n.actualBoundingBoxDescent;
1172
+ const a = this._tempContext.measureText(s), g = a.width, B = a.actualBoundingBoxAscent + a.actualBoundingBoxDescent;
1257
1173
  g > 0 && (r = Math.max(r, g), i = Math.max(i, B));
1258
1174
  }
1259
1175
  return {
@@ -1262,7 +1178,7 @@ class dA {
1262
1178
  };
1263
1179
  }
1264
1180
  }
1265
- class fA {
1181
+ class EA {
1266
1182
  /**
1267
1183
  * Creates TextmodeCharacter objects with unique color assignments.
1268
1184
  * @param characters Array of character strings
@@ -1272,16 +1188,16 @@ class fA {
1272
1188
  createCharacterObjects(A, e) {
1273
1189
  return A.map((t, r) => {
1274
1190
  const i = t.codePointAt(0) || 0, s = this._generateCharacterColor(r);
1275
- let n = 0;
1191
+ let a = 0;
1276
1192
  if (e.hmtx && e.hmtx.aWidth) {
1277
1193
  const g = this._getGlyphIndex(e, i);
1278
- g > 0 && e.hmtx.aWidth[g] !== void 0 && (n = e.hmtx.aWidth[g]);
1194
+ g > 0 && e.hmtx.aWidth[g] !== void 0 && (a = e.hmtx.aWidth[g]);
1279
1195
  }
1280
1196
  return {
1281
1197
  character: t,
1282
1198
  unicode: i,
1283
1199
  color: s,
1284
- advanceWidth: n
1200
+ advanceWidth: a
1285
1201
  };
1286
1202
  });
1287
1203
  }
@@ -1304,9 +1220,9 @@ class fA {
1304
1220
  {
1305
1221
  const s = r.idRangeOffset[i] / 2 + (e - r.startCount[i]) - (r.startCount.length - i);
1306
1222
  if (s >= 0 && s < r.glyphIdArray.length) {
1307
- const n = r.glyphIdArray[s];
1308
- if (n !== 0)
1309
- return n + r.idDelta[i] & 65535;
1223
+ const a = r.glyphIdArray[s];
1224
+ if (a !== 0)
1225
+ return a + r.idDelta[i] & 65535;
1310
1226
  }
1311
1227
  }
1312
1228
  }
@@ -1329,7 +1245,7 @@ class fA {
1329
1245
  * @returns RGB color as a tuple [r, g, b], or [0, 0, 0] if not found
1330
1246
  */
1331
1247
  getCharacterColor(A, e) {
1332
- if (!f.validate(
1248
+ if (!d.validate(
1333
1249
  typeof A == "string" && A.length === 1,
1334
1250
  "Character must be a single character string.",
1335
1251
  { method: "getCharacterColor", providedValue: A }
@@ -1345,14 +1261,14 @@ class fA {
1345
1261
  * @returns Array of RGB colors for each character
1346
1262
  */
1347
1263
  getCharacterColors(A, e) {
1348
- return f.validate(
1264
+ return d.validate(
1349
1265
  typeof A == "string" && A.length > 0,
1350
1266
  "Characters must be a string with at least one character.",
1351
1267
  { method: "getCharacterColors", providedValue: A }
1352
1268
  ) ? A.split("").map((t) => this.getCharacterColor(t, e) || [0, 0, 0]) : [[0, 0, 0]];
1353
1269
  }
1354
1270
  }
1355
- class CA {
1271
+ class hA {
1356
1272
  /**
1357
1273
  * Creates a new TextmodeFont instance.
1358
1274
  * @param renderer Renderer instance for texture creation
@@ -1374,7 +1290,7 @@ class CA {
1374
1290
  o(this, "_textureAtlas");
1375
1291
  o(this, "_metricsCalculator");
1376
1292
  o(this, "_characterColorMapper");
1377
- this._fontSize = e, this._characterExtractor = new cA(), this._textureAtlas = new uA(A), this._metricsCalculator = new dA(), this._characterColorMapper = new fA();
1293
+ this._fontSize = e, this._characterExtractor = new nA(), this._textureAtlas = new gA(A), this._metricsCalculator = new BA(), this._characterColorMapper = new EA();
1378
1294
  }
1379
1295
  /**
1380
1296
  * Initializes the font manager by loading the font and creating the texture atlas.
@@ -1387,10 +1303,10 @@ class CA {
1387
1303
  if (A) {
1388
1304
  const t = await fetch(A);
1389
1305
  if (!t.ok)
1390
- throw new p(`Failed to load font file: ${t.status} ${t.statusText}`);
1306
+ throw new m(`Failed to load font file: ${t.status} ${t.statusText}`);
1391
1307
  e = await t.arrayBuffer();
1392
1308
  } else
1393
- e = await (await fetch(QA)).arrayBuffer();
1309
+ e = await (await fetch(oA)).arrayBuffer();
1394
1310
  await this._loadFontFace(e), this._font = Q.parse(e)[0], await this._initializeFont();
1395
1311
  }
1396
1312
  /**
@@ -1423,7 +1339,7 @@ class CA {
1423
1339
  try {
1424
1340
  const e = await fetch(A);
1425
1341
  if (!e.ok)
1426
- throw new p(`Failed to load font file: ${e.status} ${e.statusText}`);
1342
+ throw new m(`Failed to load font file: ${e.status} ${e.statusText}`);
1427
1343
  const t = await e.arrayBuffer();
1428
1344
  await this._loadFontFace(t);
1429
1345
  const r = Q.parse(t);
@@ -1431,7 +1347,7 @@ class CA {
1431
1347
  throw new Error("Failed to parse font file");
1432
1348
  this._font = r[0], await this._initializeFont();
1433
1349
  } catch (e) {
1434
- throw new p(`Failed to load font: ${e instanceof Error ? e.message : "Unknown error"}`, e);
1350
+ throw new m(`Failed to load font: ${e instanceof Error ? e.message : "Unknown error"}`, e);
1435
1351
  }
1436
1352
  }
1437
1353
  /**
@@ -1528,7 +1444,7 @@ class CA {
1528
1444
  return this._font;
1529
1445
  }
1530
1446
  }
1531
- class mA {
1447
+ class lA {
1532
1448
  /**
1533
1449
  * Create a new grid instance.
1534
1450
  * @param canvas The canvas element used to determine the grid dimensions.
@@ -1565,9 +1481,8 @@ class mA {
1565
1481
  */
1566
1482
  reset() {
1567
1483
  if (!this._fixedDimensions) {
1568
- const A = this._canvas.getBoundingClientRect();
1569
- let e = Math.round(A.width), t = Math.round(A.height);
1570
- [this._cols, this._rows] = [Math.floor(e / this._cellWidth), Math.floor(t / this._cellHeight)];
1484
+ const A = this._canvas.width, e = this._canvas.height;
1485
+ [this._cols, this._rows] = [Math.floor(A / this._cellWidth), Math.floor(e / this._cellHeight)];
1571
1486
  }
1572
1487
  this._resizeGrid();
1573
1488
  }
@@ -1575,9 +1490,8 @@ class mA {
1575
1490
  * Reset the total grid width & height, and the offset to the outer canvas.
1576
1491
  */
1577
1492
  _resizeGrid() {
1578
- const A = this._canvas.getBoundingClientRect();
1579
- let e = Math.round(A.width), t = Math.round(A.height);
1580
- this._width = this._cols * this._cellWidth, this._height = this._rows * this._cellHeight, this._offsetX = Math.floor((e - this._width) / 2), this._offsetY = Math.floor((t - this._height) / 2);
1493
+ const A = this._canvas.width, e = this._canvas.height;
1494
+ this._width = this._cols * this._cellWidth, this._height = this._rows * this._cellHeight, this._offsetX = Math.floor((A - this._width) / 2), this._offsetY = Math.floor((e - this._height) / 2);
1581
1495
  }
1582
1496
  /**
1583
1497
  * Re-assign the grid cell dimensions and `reset()` the grid.
@@ -1665,7 +1579,7 @@ class mA {
1665
1579
  return this._offsetY;
1666
1580
  }
1667
1581
  }
1668
- class DA {
1582
+ class QA {
1669
1583
  constructor(A, e = !1, t = {}) {
1670
1584
  o(this, "_canvas");
1671
1585
  o(this, "captureSource");
@@ -1681,12 +1595,12 @@ class DA {
1681
1595
  t.width = A || 800, t.height = e || 600, document.body.appendChild(t);
1682
1596
  else {
1683
1597
  const i = this.captureSource.getBoundingClientRect();
1684
- let s = Math.round(i.width), n = Math.round(i.height);
1598
+ let s = Math.round(i.width), a = Math.round(i.height);
1685
1599
  if (this.captureSource instanceof HTMLVideoElement) {
1686
- const h = this.captureSource;
1687
- (s === 0 || n === 0) && h.videoWidth > 0 && h.videoHeight > 0 && (s = h.videoWidth, n = h.videoHeight);
1600
+ const E = this.captureSource;
1601
+ (s === 0 || a === 0) && E.videoWidth > 0 && E.videoHeight > 0 && (s = E.videoWidth, a = E.videoHeight);
1688
1602
  }
1689
- t.width = s, t.height = n, t.style.position = "absolute", t.style.pointerEvents = "none";
1603
+ t.width = s, t.height = a, t.style.position = "absolute", t.style.pointerEvents = "none";
1690
1604
  const g = window.getComputedStyle(this.captureSource);
1691
1605
  let B = parseInt(g.zIndex || "0", 10);
1692
1606
  isNaN(B) && (B = 0), t.style.zIndex = (B + 1).toString(), this.positionOverlayCanvas(t), (r = this.captureSource.parentNode) == null || r.insertBefore(t, this.captureSource.nextSibling);
@@ -1729,22 +1643,14 @@ class DA {
1729
1643
  powerPreference: "high-performance"
1730
1644
  }, e = this._canvas.getContext("webgl2", A) || this._canvas.getContext("webgl", A);
1731
1645
  if (!e)
1732
- throw new p("WebGL context could not be created. Ensure your browser supports WebGL.");
1646
+ throw new m("WebGL context could not be created. Ensure your browser supports WebGL.");
1733
1647
  return e;
1734
1648
  }
1735
1649
  /**
1736
1650
  * Get the effective rendering dimensions accounting for CSS transforms
1737
1651
  */
1738
1652
  getEffectiveRenderingDimensions() {
1739
- if (!this._canvas)
1740
- return { width: 0, height: 0 };
1741
- const A = this._canvas.getBoundingClientRect(), e = Math.round(A.width), t = Math.round(A.height);
1742
- if (this._isStandalone) {
1743
- const r = this._canvas.width, i = this._canvas.height;
1744
- if (e !== r || t !== i)
1745
- return { width: e, height: t };
1746
- }
1747
- return { width: this._canvas.width, height: this._canvas.height };
1653
+ return this._canvas ? { width: this._canvas.width, height: this._canvas.height } : { width: 0, height: 0 };
1748
1654
  }
1749
1655
  /**
1750
1656
  * Check if the canvas is affected by CSS transforms
@@ -1790,7 +1696,7 @@ class DA {
1790
1696
  return this._canvas.height;
1791
1697
  }
1792
1698
  }
1793
- class x {
1699
+ class T {
1794
1700
  /**
1795
1701
  * Creates a new TextmodeConverter instance.
1796
1702
  * @param renderer Renderer instance for texture creation
@@ -1869,7 +1775,7 @@ class x {
1869
1775
  return this._options;
1870
1776
  }
1871
1777
  }
1872
- class pA {
1778
+ class cA {
1873
1779
  /**
1874
1780
  * Create a new color palette instance.
1875
1781
  * @param renderer The renderer instance.
@@ -1924,18 +1830,18 @@ class pA {
1924
1830
  return this._framebuffer.texture;
1925
1831
  }
1926
1832
  }
1927
- class z extends x {
1833
+ class z extends T {
1928
1834
  constructor(e, t, r, i = {}) {
1929
1835
  super(e, t, r, i);
1930
1836
  o(this, "palette");
1931
- this.palette = new pA(this.renderer, this.fontManager.getCharacterColors(" .:-=+*%@#"));
1837
+ this.palette = new cA(this.renderer, this.fontManager.getCharacterColors(" .:-=+*%@#"));
1932
1838
  }
1933
1839
  /**
1934
1840
  * Sets the characters used for mapping.
1935
1841
  * @param characters The characters to use for mapping, usually ordered from darkest to brightest.
1936
1842
  */
1937
1843
  characters(e) {
1938
- f.validate(
1844
+ d.validate(
1939
1845
  this.fontManager.hasAllCharacters(e),
1940
1846
  "One or more characters do not exist in the current font.",
1941
1847
  { method: "characters", providedValue: e }
@@ -1950,25 +1856,25 @@ class z extends x {
1950
1856
  * @param a Alpha component (0-255).
1951
1857
  */
1952
1858
  characterColor(e, t, r, i = 255) {
1953
- let s, n, g, B;
1859
+ let s, a, g, B;
1954
1860
  if (typeof e == "string") {
1955
- const h = this.parseHexColor(e);
1956
- if (!h) {
1957
- f.validate(
1861
+ const E = this.parseHexColor(e);
1862
+ if (!E) {
1863
+ d.validate(
1958
1864
  !1,
1959
1865
  "Invalid hex color format. Use '#FF0000', '#F00', 'FF0000', or 'F00'.",
1960
1866
  { method: "characterColor", providedValue: e }
1961
1867
  );
1962
1868
  return;
1963
1869
  }
1964
- [s, n, g, B] = h;
1965
- } else if (s = e, n = t !== void 0 ? t : e, g = r !== void 0 ? r : e, B = i, !f.validate(
1966
- [s, n, g, B].every((h) => h >= 0 && h <= 255),
1870
+ [s, a, g, B] = E;
1871
+ } else if (s = e, a = t !== void 0 ? t : e, g = r !== void 0 ? r : e, B = i, !d.validate(
1872
+ [s, a, g, B].every((E) => E >= 0 && E <= 255),
1967
1873
  "Character color values must be between 0 and 255",
1968
- { method: "characterColor", providedValues: { r: s, g: n, b: g, a: B } }
1874
+ { method: "characterColor", providedValues: { r: s, g: a, b: g, a: B } }
1969
1875
  ))
1970
1876
  return;
1971
- this._options.characterColor = [s / 255, n / 255, g / 255, B / 255];
1877
+ this._options.characterColor = [s / 255, a / 255, g / 255, B / 255];
1972
1878
  }
1973
1879
  /**
1974
1880
  * Sets the character color mode.
@@ -1977,7 +1883,7 @@ class z extends x {
1977
1883
  * @param mode The color mode to use for characters.
1978
1884
  */
1979
1885
  characterColorMode(e) {
1980
- f.validate(
1886
+ d.validate(
1981
1887
  ["sampled", "fixed"].includes(e),
1982
1888
  "Invalid character color mode. Must be 'sampled' or 'fixed'.",
1983
1889
  { method: "characterColorMode", providedValue: e }
@@ -1992,25 +1898,25 @@ class z extends x {
1992
1898
  * @param a Alpha component (0-255).
1993
1899
  */
1994
1900
  cellColor(e, t, r, i = 255) {
1995
- let s, n, g, B;
1901
+ let s, a, g, B;
1996
1902
  if (typeof e == "string") {
1997
- const h = this.parseHexColor(e);
1998
- if (!h) {
1999
- f.validate(
1903
+ const E = this.parseHexColor(e);
1904
+ if (!E) {
1905
+ d.validate(
2000
1906
  !1,
2001
1907
  "Invalid hex color format. Use '#FF0000', '#F00', 'FF0000', or 'F00'.",
2002
1908
  { method: "cellColor", providedValue: e }
2003
1909
  );
2004
1910
  return;
2005
1911
  }
2006
- [s, n, g, B] = h;
2007
- } else if (s = e, n = t !== void 0 ? t : e, g = r !== void 0 ? r : e, B = i, !f.validate(
2008
- [s, n, g, B].every((h) => h >= 0 && h <= 255),
1912
+ [s, a, g, B] = E;
1913
+ } else if (s = e, a = t !== void 0 ? t : e, g = r !== void 0 ? r : e, B = i, !d.validate(
1914
+ [s, a, g, B].every((E) => E >= 0 && E <= 255),
2009
1915
  "Cell color values must be between 0 and 255",
2010
- { method: "cellColor", providedValues: { r: s, g: n, b: g, a: B } }
1916
+ { method: "cellColor", providedValues: { r: s, g: a, b: g, a: B } }
2011
1917
  ))
2012
1918
  return;
2013
- this._options.cellColor = [s / 255, n / 255, g / 255, B / 255];
1919
+ this._options.cellColor = [s / 255, a / 255, g / 255, B / 255];
2014
1920
  }
2015
1921
  /**
2016
1922
  * Sets the cell color mode.
@@ -2019,7 +1925,7 @@ class z extends x {
2019
1925
  * @param mode The color mode to use for background cells.
2020
1926
  */
2021
1927
  cellColorMode(e) {
2022
- f.validate(
1928
+ d.validate(
2023
1929
  ["sampled", "fixed"].includes(e),
2024
1930
  "Invalid cell color mode. Must be 'sampled' or 'fixed'.",
2025
1931
  { method: "cellColorMode", providedValue: e }
@@ -2030,7 +1936,7 @@ class z extends x {
2030
1936
  * @param invert If `true`, the character color becomes the cell color and vice versa.
2031
1937
  */
2032
1938
  invert(e) {
2033
- f.validate(
1939
+ d.validate(
2034
1940
  typeof e == "boolean" || typeof e == "number" && Number.isInteger(e),
2035
1941
  "Invert must be a boolean value or an integer (0 for false, any other number for true).",
2036
1942
  { method: "invert", providedValue: e }
@@ -2041,7 +1947,7 @@ class z extends x {
2041
1947
  * @param angle The rotation angle in degrees.
2042
1948
  */
2043
1949
  rotation(e) {
2044
- if (!f.validate(
1950
+ if (!d.validate(
2045
1951
  typeof e == "number",
2046
1952
  "Rotation angle must be a number.",
2047
1953
  { method: "rotation", providedValue: e }
@@ -2056,7 +1962,7 @@ class z extends x {
2056
1962
  * @param flip If `true`, characters are flipped horizontally. If `false`, no flip is applied.
2057
1963
  */
2058
1964
  flipHorizontally(e) {
2059
- f.validate(
1965
+ d.validate(
2060
1966
  typeof e == "boolean" || typeof e == "number" && Number.isInteger(e),
2061
1967
  "Flip horizontally must be a boolean value or an integer (0 for false, any other number for true).",
2062
1968
  { method: "flipHorizontally", providedValue: e }
@@ -2067,7 +1973,7 @@ class z extends x {
2067
1973
  * @param flip If `true`, characters are flipped vertically. If `false`, no flip is applied.
2068
1974
  */
2069
1975
  flipVertically(e) {
2070
- f.validate(
1976
+ d.validate(
2071
1977
  typeof e == "boolean" || typeof e == "number" && Number.isInteger(e),
2072
1978
  "Flip vertically must be a boolean value or an integer (0 for false, any other number for true).",
2073
1979
  { method: "flipVertically", providedValue: e }
@@ -2086,8 +1992,8 @@ class z extends x {
2086
1992
  return [t, r, i, 255];
2087
1993
  }
2088
1994
  }
2089
- var PA = "precision lowp float;uniform sampler2D u_sketchTexture;uniform vec2 u_gridCellDimensions;uniform vec2 u_brightnessRange;varying vec2 v_uv;void main(){vec2 cellCenter=(floor(v_uv*u_gridCellDimensions)+vec2(0.5))/u_gridCellDimensions;vec4 color=texture2D(u_sketchTexture,cellCenter);float brightness=dot(color.rgb,vec3(0.299,0.587,0.114));float brightnessValue=brightness*255.0;if(brightnessValue>=u_brightnessRange.x&&brightnessValue<=u_brightnessRange.y){gl_FragColor=color;}else{gl_FragColor=vec4(0.0);}}", wA = "precision lowp float;uniform sampler2D u_sampleTexture;uniform vec4 u_fillColor;uniform bool u_useFixedColor;varying vec2 v_uv;void main(){vec4 sampleColor=texture2D(u_sampleTexture,v_uv);if(sampleColor.a>0.0){if(u_useFixedColor){gl_FragColor=u_fillColor;}else{gl_FragColor=sampleColor;}}else{gl_FragColor=vec4(0.0);}}", _A = "precision lowp float;uniform sampler2D u_sampleTexture;uniform bool u_invert;uniform bool u_flipHorizontally;uniform bool u_flipVertically;varying vec2 v_uv;void main(){vec4 sampleColor=texture2D(u_sampleTexture,v_uv);if(sampleColor.a>0.0){float invertValue=u_invert ? 1.0 : 0.0;float flipHValue=u_flipHorizontally ? 1.0 : 0.0;float flipVValue=u_flipVertically ? 1.0 : 0.0;gl_FragColor=vec4(invertValue,flipHValue,flipVValue,1.0);}else{gl_FragColor=vec4(0.0);}}", IA = "precision lowp float;uniform sampler2D u_sampleTexture;uniform vec4 u_rotationColor;varying vec2 v_uv;void main(){vec4 sampleColor=texture2D(u_sampleTexture,v_uv);if(sampleColor.a>0.0){gl_FragColor=u_rotationColor;}else{gl_FragColor=vec4(0.0);}}", vA = "precision lowp float;uniform sampler2D u_colorSampleFramebuffer;uniform sampler2D u_charPaletteTexture;uniform vec2 u_charPaletteSize;uniform vec2 u_brightnessRange;varying vec2 v_uv;void main(){vec4 color=texture2D(u_colorSampleFramebuffer,v_uv);if(color.a==0.0){gl_FragColor=vec4(0.0);return;}float brightness=dot(color.rgb,vec3(0.299,0.587,0.114))*255.0;vec2 range=u_brightnessRange;if(brightness<range.x||brightness>range.y){gl_FragColor=vec4(0.0);return;}float t=(brightness-range.x)/(range.y-range.x);float idx=clamp(floor(t*u_charPaletteSize.x),0.0,u_charPaletteSize.x-1.0);vec3 charColor=texture2D(u_charPaletteTexture,vec2((idx+0.5)/u_charPaletteSize.x,0.0)).rgb;gl_FragColor=vec4(charColor,1.0);}";
2090
- const bA = {
1995
+ var uA = "precision lowp float;uniform sampler2D u_sketchTexture;uniform vec2 u_gridCellDimensions;uniform vec2 u_brightnessRange;varying vec2 v_uv;void main(){vec2 cellCenter=(floor(v_uv*u_gridCellDimensions)+vec2(0.5))/u_gridCellDimensions;vec4 color=texture2D(u_sketchTexture,cellCenter);float brightness=dot(color.rgb,vec3(0.299,0.587,0.114));float brightnessValue=brightness*255.0;if(brightnessValue>=u_brightnessRange.x&&brightnessValue<=u_brightnessRange.y){gl_FragColor=color;}else{gl_FragColor=vec4(0.0);}}", dA = "precision lowp float;uniform sampler2D u_sampleTexture;uniform vec4 u_fillColor;uniform bool u_useFixedColor;varying vec2 v_uv;void main(){vec4 sampleColor=texture2D(u_sampleTexture,v_uv);if(sampleColor.a>0.0){if(u_useFixedColor){gl_FragColor=u_fillColor;}else{gl_FragColor=sampleColor;}}else{gl_FragColor=vec4(0.0);}}", fA = "precision lowp float;uniform sampler2D u_sampleTexture;uniform bool u_invert;uniform bool u_flipHorizontally;uniform bool u_flipVertically;varying vec2 v_uv;void main(){vec4 sampleColor=texture2D(u_sampleTexture,v_uv);if(sampleColor.a>0.0){float invertValue=u_invert ? 1.0 : 0.0;float flipHValue=u_flipHorizontally ? 1.0 : 0.0;float flipVValue=u_flipVertically ? 1.0 : 0.0;gl_FragColor=vec4(invertValue,flipHValue,flipVValue,1.0);}else{gl_FragColor=vec4(0.0);}}", CA = "precision lowp float;uniform sampler2D u_sampleTexture;uniform vec4 u_rotationColor;varying vec2 v_uv;void main(){vec4 sampleColor=texture2D(u_sampleTexture,v_uv);if(sampleColor.a>0.0){gl_FragColor=u_rotationColor;}else{gl_FragColor=vec4(0.0);}}", mA = "precision lowp float;uniform sampler2D u_colorSampleFramebuffer;uniform sampler2D u_charPaletteTexture;uniform vec2 u_charPaletteSize;uniform vec2 u_brightnessRange;varying vec2 v_uv;void main(){vec4 color=texture2D(u_colorSampleFramebuffer,v_uv);if(color.a==0.0){gl_FragColor=vec4(0.0);return;}float brightness=dot(color.rgb,vec3(0.299,0.587,0.114))*255.0;vec2 range=u_brightnessRange;if(brightness<range.x||brightness>range.y){gl_FragColor=vec4(0.0);return;}float t=(brightness-range.x)/(range.y-range.x);float idx=clamp(floor(t*u_charPaletteSize.x),0.0,u_charPaletteSize.x-1.0);vec3 charColor=texture2D(u_charPaletteTexture,vec2((idx+0.5)/u_charPaletteSize.x,0.0)).rgb;gl_FragColor=vec4(charColor,1.0);}";
1996
+ const DA = {
2091
1997
  /** Enable/disable the renderer */
2092
1998
  enabled: !0,
2093
1999
  /** Characters used for brightness mapping (from darkest to brightest) */
@@ -2113,7 +2019,7 @@ const bA = {
2113
2019
  /** Range of brightness values to map to ASCII characters */
2114
2020
  brightnessRange: [0, 255]
2115
2021
  };
2116
- class k extends z {
2022
+ class V extends z {
2117
2023
  /**
2118
2024
  * Creates a new TextmodeBrightnessConverter instance.
2119
2025
  * @param renderer Renderer instance for texture creation
@@ -2122,14 +2028,14 @@ class k extends z {
2122
2028
  * @ignore
2123
2029
  */
2124
2030
  constructor(e, t, r) {
2125
- super(e, t, r, { ...bA });
2031
+ super(e, t, r, { ...DA });
2126
2032
  o(this, "sampleShader");
2127
2033
  o(this, "colorFillShader");
2128
2034
  o(this, "charMappingShader");
2129
2035
  o(this, "transformFillShader");
2130
2036
  o(this, "rotationFillShader");
2131
2037
  o(this, "sampleFramebuffer");
2132
- this.sampleShader = new w(e.context, _, PA), this.colorFillShader = new w(e.context, _, wA), this.transformFillShader = new w(e.context, _, _A), this.rotationFillShader = new w(e.context, _, IA), this.charMappingShader = new w(e.context, _, vA), this.sampleFramebuffer = this.renderer.createFramebuffer(this.grid.cols, this.grid.rows);
2038
+ this.sampleShader = new _(e.context, w, uA), this.colorFillShader = new _(e.context, w, dA), this.transformFillShader = new _(e.context, w, fA), this.rotationFillShader = new _(e.context, w, CA), this.charMappingShader = new _(e.context, w, mA), this.sampleFramebuffer = this.renderer.createFramebuffer(this.grid.cols, this.grid.rows);
2133
2039
  }
2134
2040
  convert(e) {
2135
2041
  this.sampleFramebuffer.begin(), this.renderer.clear(), this.renderer.shader(this.sampleShader), this.renderer.setUniform("u_sketchTexture", e), this.renderer.setUniform("u_gridCellDimensions", [this.grid.cols, this.grid.rows]), this.renderer.setUniform("u_brightnessRange", this._options.brightnessRange), this.renderer.rect(0, 0, this.grid.cols, this.grid.rows), this.sampleFramebuffer.end(), this._primaryColorFramebuffer.begin(), this.renderer.clear(), this.renderer.shader(this.colorFillShader), this.renderer.setUniform("u_sampleTexture", this.sampleFramebuffer.texture), this.renderer.setUniform("u_fillColor", this._options.characterColor), this.renderer.setUniform("u_useFixedColor", this._options.characterColorMode === "fixed"), this.renderer.rect(0, 0, this.grid.cols, this.grid.rows), this._primaryColorFramebuffer.end(), this._secondaryColorFramebuffer.begin(), this.renderer.clear(), this.renderer.shader(this.colorFillShader), this.renderer.setUniform("u_sampleTexture", this.sampleFramebuffer.texture), this.renderer.setUniform("u_fillColor", this._options.cellColor), this.renderer.setUniform("u_useFixedColor", this._options.cellColorMode === "fixed"), this.renderer.rect(0, 0, this.grid.cols, this.grid.rows), this._secondaryColorFramebuffer.end(), this._transformFramebuffer.begin(), this.renderer.clear(), this.renderer.shader(this.transformFillShader), this.renderer.setUniform("u_sampleTexture", this.sampleFramebuffer.texture), this.renderer.setUniform("u_invert", this._options.invert), this.renderer.setUniform("u_flipHorizontally", this._options.flipHorizontally), this.renderer.setUniform("u_flipVertically", this._options.flipVertically), this.renderer.rect(0, 0, this.grid.cols, this.grid.rows), this._transformFramebuffer.end(), this._rotationFramebuffer.begin(), this.renderer.clear(), this.renderer.shader(this.rotationFillShader), this.renderer.setUniform("u_sampleTexture", this.sampleFramebuffer.texture), this.renderer.setUniform("u_rotationColor", this._options.rotation), this.renderer.rect(0, 0, this.grid.cols, this.grid.rows), this._rotationFramebuffer.end(), this._characterFramebuffer.begin(), this.renderer.clear(0, 0, 0, 0), this.renderer.shader(this.charMappingShader), this.renderer.setUniform("u_colorSampleFramebuffer", this.sampleFramebuffer.texture), this.renderer.setUniform("u_charPaletteTexture", this.palette.texture), this.renderer.setUniform("u_charPaletteSize", [this.palette.colors.length, 1]), this.renderer.setUniform("u_brightnessRange", this._options.brightnessRange), this.renderer.rect(0, 0, this.grid.cols, this.grid.rows), this._characterFramebuffer.end();
@@ -2145,21 +2051,21 @@ class k extends z {
2145
2051
  * @param range Array of two numbers `[min, max]`, where `min` is darkest and `max` is brightest.
2146
2052
  */
2147
2053
  brightnessRange(e) {
2148
- f.validate(
2054
+ d.validate(
2149
2055
  Array.isArray(e) && e.length === 2 && e.every((t) => typeof t == "number" && t >= 0 && t <= 255),
2150
2056
  "Brightness range must be an array of two numbers between 0 and 255.",
2151
2057
  { method: "brightnessRange", providedValue: e }
2152
2058
  ) && (this._options.brightnessRange = e);
2153
2059
  }
2154
2060
  }
2155
- const LA = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2061
+ const MA = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2156
2062
  __proto__: null,
2157
- TextmodeBrightnessConverter: k,
2158
- TextmodeConverter: x,
2063
+ TextmodeBrightnessConverter: V,
2064
+ TextmodeConverter: T,
2159
2065
  TextmodeFeatureConverter: z
2160
2066
  }, Symbol.toStringTag, { value: "Module" }));
2161
- var xA = "precision mediump float;uniform sampler2D u_characterTexture;uniform vec2 u_charsetDimensions;uniform sampler2D u_primaryColorTexture;uniform sampler2D u_secondaryColorTexture;uniform sampler2D u_transformTexture;uniform sampler2D u_asciiCharacterTexture;uniform sampler2D u_rotationTexture;uniform sampler2D u_captureTexture;uniform vec2 u_captureDimensions;uniform int u_backgroundMode;uniform vec2 u_gridCellDimensions;uniform vec2 u_gridPixelDimensions;mat2 rotate2D(float angle){float s=sin(angle);float c=cos(angle);return mat2(c,-s,s,c);}void main(){vec2 adjustedCoord=gl_FragCoord.xy/u_gridPixelDimensions;vec2 gridCoord=adjustedCoord*u_gridCellDimensions;vec2 cellCoord=floor(gridCoord);vec2 charIndexTexCoord=(cellCoord+0.5)/u_gridCellDimensions;vec4 primaryColor=texture2D(u_primaryColorTexture,charIndexTexCoord);vec4 secondaryColor=texture2D(u_secondaryColorTexture,charIndexTexCoord);vec4 transformColor=texture2D(u_transformTexture,charIndexTexCoord);bool isInverted=transformColor.r>0.5;bool flipHorizontal=transformColor.g>0.5;bool flipVertical=transformColor.b>0.5;vec4 encodedIndexVec=texture2D(u_asciiCharacterTexture,charIndexTexCoord);if(encodedIndexVec.a<0.01){gl_FragColor=(u_backgroundMode==0)? vec4(0.0):texture2D(u_captureTexture,gl_FragCoord.xy/u_captureDimensions);return;}int charIndex=int(encodedIndexVec.r*255.0+0.5)+int(encodedIndexVec.g*255.0+0.5)*256;int charCol=int(mod(float(charIndex),u_charsetDimensions.x));int charRow=charIndex/int(u_charsetDimensions.x);vec2 charCoord=vec2(charCol,charRow)/u_charsetDimensions;vec4 rotationColor=texture2D(u_rotationTexture,charIndexTexCoord);float scaledAngle=rotationColor.r*255.0+rotationColor.g;float rotationAngle=(scaledAngle*360.0/255.0)*0.017453292;vec2 fractionalPart=fract(gridCoord)-0.5;if(flipHorizontal)fractionalPart.x=-fractionalPart.x;if(flipVertical)fractionalPart.y=-fractionalPart.y;fractionalPart=rotate2D(rotationAngle)*fractionalPart+0.5;vec2 cellSize=1.0/u_charsetDimensions;vec2 texCoord=charCoord+fractionalPart*cellSize;vec2 cellMax=charCoord+cellSize;if(any(lessThan(texCoord,charCoord))||any(greaterThan(texCoord,cellMax))){gl_FragColor=isInverted ? primaryColor : secondaryColor;return;}vec4 charTexel=texture2D(u_characterTexture,texCoord);if(isInverted)charTexel.rgb=1.0-charTexel.rgb;gl_FragColor=mix(secondaryColor,primaryColor,charTexel);}";
2162
- class FA {
2067
+ var pA = "precision mediump float;uniform sampler2D u_characterTexture;uniform vec2 u_charsetDimensions;uniform sampler2D u_primaryColorTexture;uniform sampler2D u_secondaryColorTexture;uniform sampler2D u_transformTexture;uniform sampler2D u_asciiCharacterTexture;uniform sampler2D u_rotationTexture;uniform sampler2D u_captureTexture;uniform vec2 u_captureDimensions;uniform int u_backgroundMode;uniform vec2 u_gridCellDimensions;uniform vec2 u_gridPixelDimensions;mat2 rotate2D(float angle){float s=sin(angle);float c=cos(angle);return mat2(c,-s,s,c);}void main(){vec2 adjustedCoord=gl_FragCoord.xy/u_gridPixelDimensions;vec2 gridCoord=adjustedCoord*u_gridCellDimensions;vec2 cellCoord=floor(gridCoord);vec2 charIndexTexCoord=(cellCoord+0.5)/u_gridCellDimensions;vec4 primaryColor=texture2D(u_primaryColorTexture,charIndexTexCoord);vec4 secondaryColor=texture2D(u_secondaryColorTexture,charIndexTexCoord);vec4 transformColor=texture2D(u_transformTexture,charIndexTexCoord);bool isInverted=transformColor.r>0.5;bool flipHorizontal=transformColor.g>0.5;bool flipVertical=transformColor.b>0.5;vec4 encodedIndexVec=texture2D(u_asciiCharacterTexture,charIndexTexCoord);if(encodedIndexVec.a<0.01){gl_FragColor=(u_backgroundMode==0)? vec4(0.0):texture2D(u_captureTexture,gl_FragCoord.xy/u_captureDimensions);return;}int charIndex=int(encodedIndexVec.r*255.0+0.5)+int(encodedIndexVec.g*255.0+0.5)*256;int charCol=int(mod(float(charIndex),u_charsetDimensions.x));int charRow=charIndex/int(u_charsetDimensions.x);float flippedRow=(u_charsetDimensions.y-1.0)-float(charRow);vec2 charCoord=vec2(float(charCol),flippedRow)/u_charsetDimensions;vec4 rotationColor=texture2D(u_rotationTexture,charIndexTexCoord);float scaledAngle=rotationColor.r*255.0+rotationColor.g;float rotationAngle=(scaledAngle*360.0/255.0)*0.017453292;vec2 fractionalPart=fract(gridCoord)-0.5;if(flipHorizontal)fractionalPart.x=-fractionalPart.x;if(flipVertical)fractionalPart.y=-fractionalPart.y;fractionalPart=rotate2D(rotationAngle)*fractionalPart+0.5;vec2 cellSize=1.0/u_charsetDimensions;vec2 texCoord=charCoord+fractionalPart*cellSize;vec2 cellMax=charCoord+cellSize;if(any(lessThan(texCoord,charCoord))||any(greaterThan(texCoord,cellMax))){gl_FragColor=isInverted ? primaryColor : secondaryColor;return;}vec4 charTexel=texture2D(u_characterTexture,texCoord);if(isInverted)charTexel.rgb=1.0-charTexel.rgb;gl_FragColor=mix(secondaryColor,primaryColor,charTexel);}";
2068
+ class PA {
2163
2069
  /**
2164
2070
  * Creates an instance of TextmodeConversionPipeline.
2165
2071
  * @param renderer The renderer to use for the pipeline.
@@ -2179,9 +2085,9 @@ class FA {
2179
2085
  o(this, "_secondaryColorFramebuffer");
2180
2086
  o(this, "_rotationFramebuffer");
2181
2087
  o(this, "_transformFramebuffer");
2182
- this.renderer = A, this.font = e, this.grid = t, this._asciiShader = this.renderer.createShader(_, xA), this.converters = [
2183
- { name: "brightness", converter: new k(A, e, t) },
2184
- { name: "custom", converter: new x(A, e, t) }
2088
+ this.renderer = A, this.font = e, this.grid = t, this._asciiShader = this.renderer.createShader(w, pA), this.converters = [
2089
+ { name: "brightness", converter: new V(A, e, t) },
2090
+ { name: "custom", converter: new T(A, e, t) }
2185
2091
  ], this._characterFramebuffer = this.renderer.createFramebuffer(t.cols, t.rows), this._primaryColorFramebuffer = this.renderer.createFramebuffer(t.cols, t.rows), this._secondaryColorFramebuffer = this.renderer.createFramebuffer(t.cols, t.rows), this._rotationFramebuffer = this.renderer.createFramebuffer(t.cols, t.rows), this._transformFramebuffer = this.renderer.createFramebuffer(t.cols, t.rows), this._resultFramebuffer = this.renderer.createFramebuffer(this.grid.width, this.grid.height);
2186
2092
  }
2187
2093
  /**
@@ -2210,15 +2116,15 @@ class FA {
2210
2116
  * @returns The requested `TextmodeConverter` instance.
2211
2117
  */
2212
2118
  get(A) {
2213
- if (!f.validate(
2119
+ if (!d.validate(
2214
2120
  typeof A == "string" && A.length > 0,
2215
2121
  "Converter name must be a non-empty string.",
2216
2122
  { method: "converter", providedValue: A }
2217
2123
  ))
2218
2124
  return;
2219
2125
  const e = this.converters.find((r) => r.name === A), t = e == null ? void 0 : e.converter;
2220
- if (f.validate(
2221
- t instanceof x,
2126
+ if (d.validate(
2127
+ t instanceof T,
2222
2128
  `Converter "${A}" is not a valid TextmodeConverter.`,
2223
2129
  { method: "converter", providedValue: A, converterInstance: t }
2224
2130
  ))
@@ -2231,33 +2137,33 @@ class FA {
2231
2137
  * @returns The newly created {@link TextmodeConverter} instance or `void` if the addition failed.
2232
2138
  */
2233
2139
  add(A, e) {
2234
- if (!f.validate(
2140
+ if (!d.validate(
2235
2141
  typeof A == "string" && A.length > 0,
2236
2142
  "Converter name must be a non-empty string.",
2237
2143
  { method: "add", providedValue: A }
2238
- ) || !f.validate(
2144
+ ) || !d.validate(
2239
2145
  e === "brightness" || e === "custom",
2240
2146
  `Converter type must be either "brightness" or "custom". Provided: ${e}`,
2241
2147
  { method: "add", providedValue: e }
2242
2148
  ))
2243
2149
  return;
2244
2150
  let t;
2245
- return e === "brightness" ? t = new k(this.renderer, this.font, this.grid) : t = new x(this.renderer, this.font, this.grid), this.converters.push({ name: A, converter: t }), t;
2151
+ return e === "brightness" ? t = new V(this.renderer, this.font, this.grid) : t = new T(this.renderer, this.font, this.grid), this.converters.push({ name: A, converter: t }), t;
2246
2152
  }
2247
2153
  /**
2248
2154
  * Removes a converter from the pipeline by name or instance.
2249
2155
  * @param nameOrInstance The unique name of the converter or the converter instance to remove.
2250
2156
  */
2251
2157
  remove(A) {
2252
- if (!f.validate(
2253
- typeof A == "string" || A instanceof x,
2158
+ if (!d.validate(
2159
+ typeof A == "string" || A instanceof T,
2254
2160
  "Parameter must be either a string (converter name) or a TextmodeConverter instance.",
2255
2161
  { method: "remove", providedValue: A }
2256
2162
  ))
2257
2163
  return;
2258
2164
  let e = -1;
2259
2165
  if (typeof A == "string") {
2260
- if (!f.validate(
2166
+ if (!d.validate(
2261
2167
  A.length > 0,
2262
2168
  "Converter name must be a non-empty string.",
2263
2169
  { method: "remove", providedValue: A }
@@ -2266,7 +2172,7 @@ class FA {
2266
2172
  e = this.converters.findIndex((t) => t.name === A);
2267
2173
  } else
2268
2174
  e = this.converters.findIndex((t) => t.converter === A);
2269
- f.validate(
2175
+ d.validate(
2270
2176
  e !== -1,
2271
2177
  typeof A == "string" ? `Converter with name "${A}" not found in pipeline.` : "Converter instance not found in pipeline.",
2272
2178
  { method: "remove", providedValue: A, convertersCount: this.converters.length }
@@ -2345,13 +2251,13 @@ class L {
2345
2251
  * @returns Object containing all pixel data arrays
2346
2252
  */
2347
2253
  extractFramebufferData(A) {
2348
- const e = A.get("brightness"), t = e == null ? void 0 : e.characterFramebuffer, r = e == null ? void 0 : e.primaryColorFramebuffer, i = e == null ? void 0 : e.secondaryColorFramebuffer, s = e == null ? void 0 : e.transformFramebuffer, n = e == null ? void 0 : e.rotationFramebuffer;
2349
- return t == null || t.loadPixels(), r == null || r.loadPixels(), i == null || i.loadPixels(), s == null || s.loadPixels(), n == null || n.loadPixels(), {
2254
+ const e = A.get("brightness"), t = e == null ? void 0 : e.characterFramebuffer, r = e == null ? void 0 : e.primaryColorFramebuffer, i = e == null ? void 0 : e.secondaryColorFramebuffer, s = e == null ? void 0 : e.transformFramebuffer, a = e == null ? void 0 : e.rotationFramebuffer;
2255
+ return t == null || t.loadPixels(), r == null || r.loadPixels(), i == null || i.loadPixels(), s == null || s.loadPixels(), a == null || a.loadPixels(), {
2350
2256
  characterPixels: (t == null ? void 0 : t.pixels) || new Uint8Array(0),
2351
2257
  primaryColorPixels: (r == null ? void 0 : r.pixels) || new Uint8Array(0),
2352
2258
  secondaryColorPixels: (i == null ? void 0 : i.pixels) || new Uint8Array(0),
2353
2259
  transformPixels: (s == null ? void 0 : s.pixels) || new Uint8Array(0),
2354
- rotationPixels: (n == null ? void 0 : n.pixels) || new Uint8Array(0)
2260
+ rotationPixels: (a == null ? void 0 : a.pixels) || new Uint8Array(0)
2355
2261
  };
2356
2262
  }
2357
2263
  /**
@@ -2437,7 +2343,7 @@ class H {
2437
2343
  return `'textmode-export'-${this.generateTimestamp()}`;
2438
2344
  }
2439
2345
  }
2440
- class yA extends L {
2346
+ class _A extends L {
2441
2347
  /**
2442
2348
  * Extracts transform data from transform pixels
2443
2349
  * @param transformPixels Transform framebuffer pixels
@@ -2446,9 +2352,9 @@ class yA extends L {
2446
2352
  * @returns Transform data object
2447
2353
  */
2448
2354
  extractTransformData(A, e, t) {
2449
- const r = A[t], i = A[t + 1], s = A[t + 2], n = r === 255, g = i === 255, B = s === 255, h = e[t], E = e[t + 1], l = h + E / 255, c = Math.round(l * 360 / 255 * 100) / 100;
2355
+ const r = A[t], i = A[t + 1], s = A[t + 2], a = r === 255, g = i === 255, B = s === 255, E = e[t], h = e[t + 1], l = E + h / 255, c = Math.round(l * 360 / 255 * 100) / 100;
2450
2356
  return {
2451
- isInverted: n,
2357
+ isInverted: a,
2452
2358
  flipHorizontal: g,
2453
2359
  flipVertical: B,
2454
2360
  rotation: c
@@ -2481,33 +2387,33 @@ class yA extends L {
2481
2387
  let r = 0;
2482
2388
  for (let i = 0; i < e.rows; i++)
2483
2389
  for (let s = 0; s < e.cols; s++) {
2484
- const n = r * 4, g = this.getCharacterIndex(
2390
+ const a = r * 4, g = this.getCharacterIndex(
2485
2391
  A.characterPixels,
2486
- n
2392
+ a
2487
2393
  );
2488
- let B = this.pixelsToRGBA(A.primaryColorPixels, n), h = this.pixelsToRGBA(A.secondaryColorPixels, n);
2489
- const E = this.extractTransformData(
2394
+ let B = this.pixelsToRGBA(A.primaryColorPixels, a), E = this.pixelsToRGBA(A.secondaryColorPixels, a);
2395
+ const h = this.extractTransformData(
2490
2396
  A.transformPixels,
2491
2397
  A.rotationPixels,
2492
- n
2398
+ a
2493
2399
  );
2494
- if (E.isInverted) {
2400
+ if (h.isInverted) {
2495
2401
  const c = B;
2496
- B = h, h = c;
2402
+ B = E, E = c;
2497
2403
  }
2498
2404
  const l = this.calculateCellPosition(s, i, e);
2499
2405
  t.push({
2500
2406
  charIndex: g,
2501
2407
  primaryColor: B,
2502
- secondaryColor: h,
2503
- transform: E,
2408
+ secondaryColor: E,
2409
+ transform: h,
2504
2410
  position: l
2505
2411
  }), r++;
2506
2412
  }
2507
2413
  return t;
2508
2414
  }
2509
2415
  }
2510
- class TA {
2416
+ class wA {
2511
2417
  /**
2512
2418
  * Gets the glyph index for a given Unicode code point in a Typr.js font
2513
2419
  * @param fontData The Typr.js font data
@@ -2526,9 +2432,9 @@ class TA {
2526
2432
  {
2527
2433
  const s = r.idRangeOffset[i] / 2 + (e - r.startCount[i]) - (r.startCount.length - i);
2528
2434
  if (s >= 0 && s < r.glyphIdArray.length) {
2529
- const n = r.glyphIdArray[s];
2530
- if (n !== 0)
2531
- return n + r.idDelta[i] & 65535;
2435
+ const a = r.glyphIdArray[s];
2436
+ if (a !== 0)
2437
+ return a + r.idDelta[i] & 65535;
2532
2438
  }
2533
2439
  }
2534
2440
  }
@@ -2578,34 +2484,34 @@ class TA {
2578
2484
  */
2579
2485
  glyphToSVGPath(A, e, t, r) {
2580
2486
  if (!A || !A.xs) return "";
2581
- const { xs: i, ys: s, endPts: n, flags: g } = A;
2582
- if (!i || !s || !n || !g) return "";
2583
- let B = "", h = 0;
2584
- for (let E = 0; E < n.length; E++) {
2585
- const l = n[E];
2586
- if (!(l < h)) {
2587
- if (l >= h) {
2588
- const c = e + i[h] * r, d = t - s[h] * r;
2589
- B += `M${c.toFixed(2)},${d.toFixed(2)}`;
2590
- let u = h + 1;
2487
+ const { xs: i, ys: s, endPts: a, flags: g } = A;
2488
+ if (!i || !s || !a || !g) return "";
2489
+ let B = "", E = 0;
2490
+ for (let h = 0; h < a.length; h++) {
2491
+ const l = a[h];
2492
+ if (!(l < E)) {
2493
+ if (l >= E) {
2494
+ const c = e + i[E] * r, f = t - s[E] * r;
2495
+ B += `M${c.toFixed(2)},${f.toFixed(2)}`;
2496
+ let u = E + 1;
2591
2497
  for (; u <= l; )
2592
2498
  if ((g[u] & 1) !== 0) {
2593
- const D = e + i[u] * r, C = t - s[u] * r;
2594
- B += `L${D.toFixed(2)},${C.toFixed(2)}`, u++;
2499
+ const P = e + i[u] * r, p = t - s[u] * r;
2500
+ B += `L${P.toFixed(2)},${p.toFixed(2)}`, u++;
2595
2501
  } else {
2596
- const D = e + i[u] * r, C = t - s[u] * r;
2597
- let P = u + 1 > l ? h : u + 1;
2598
- if ((g[P] & 1) !== 0) {
2599
- const v = e + i[P] * r, I = t - s[P] * r;
2600
- B += `Q${D.toFixed(2)},${C.toFixed(2)} ${v.toFixed(2)},${I.toFixed(2)}`, u = P + 1;
2502
+ const P = e + i[u] * r, p = t - s[u] * r;
2503
+ let D = u + 1 > l ? E : u + 1;
2504
+ if ((g[D] & 1) !== 0) {
2505
+ const x = e + i[D] * r, I = t - s[D] * r;
2506
+ B += `Q${P.toFixed(2)},${p.toFixed(2)} ${x.toFixed(2)},${I.toFixed(2)}`, u = D + 1;
2601
2507
  } else {
2602
- const v = e + i[P] * r, I = t - s[P] * r, R = (D + v) / 2, T = (C + I) / 2;
2603
- B += `Q${D.toFixed(2)},${C.toFixed(2)} ${R.toFixed(2)},${T.toFixed(2)}`, u = P;
2508
+ const x = e + i[D] * r, I = t - s[D] * r, b = (P + x) / 2, v = (p + I) / 2;
2509
+ B += `Q${P.toFixed(2)},${p.toFixed(2)} ${b.toFixed(2)},${v.toFixed(2)}`, u = D;
2604
2510
  }
2605
2511
  }
2606
2512
  B += "Z";
2607
2513
  }
2608
- h = l + 1;
2514
+ E = l + 1;
2609
2515
  }
2610
2516
  }
2611
2517
  return B;
@@ -2621,14 +2527,14 @@ class TA {
2621
2527
  */
2622
2528
  generateCharacterPath(A, e, t, r, i) {
2623
2529
  try {
2624
- const s = A.codePointAt(0) || 0, n = this.getGlyphIndex(e, s);
2625
- if (n === 0)
2530
+ const s = A.codePointAt(0) || 0, a = this.getGlyphIndex(e, s);
2531
+ if (a === 0)
2626
2532
  return this.createEmptyPath();
2627
2533
  let g = null;
2628
2534
  try {
2629
- e.glyf && e.glyf[n] !== null ? g = e.glyf[n] : Q && Q.T && Q.T.glyf && Q.T.glyf._parseGlyf && (g = Q.T.glyf._parseGlyf(e, n), e.glyf && g && (e.glyf[n] = g));
2535
+ e.glyf && e.glyf[a] !== null ? g = e.glyf[a] : Q && Q.T && Q.T.glyf && Q.T.glyf._parseGlyf && (g = Q.T.glyf._parseGlyf(e, a), e.glyf && g && (e.glyf[a] = g));
2630
2536
  } catch (B) {
2631
- console.warn(`Failed to parse glyph ${n}:`, B);
2537
+ console.warn(`Failed to parse glyph ${a}:`, B);
2632
2538
  }
2633
2539
  return g ? this.createGlyphPath(e, g, t, r, i) : this.createEmptyPath();
2634
2540
  } catch (s) {
@@ -2647,19 +2553,19 @@ class TA {
2647
2553
  * @param advanceWidth Character advance width
2648
2554
  * @returns SVG path data string or null if generation fails
2649
2555
  */
2650
- generatePositionedCharacterPath(A, e, t, r, i, s, n, g) {
2556
+ generatePositionedCharacterPath(A, e, t, r, i, s, a, g) {
2651
2557
  try {
2652
- const B = n / e.head.unitsPerEm, h = g * B, E = t + (i - h) / 2, l = r + (s + n * 0.7) / 2;
2653
- return this.generateCharacterPath(A, e, E, l, n).toSVG() || null;
2558
+ const B = a / e.head.unitsPerEm, E = g * B, h = t + (i - E) / 2, l = r + (s + a * 0.7) / 2;
2559
+ return this.generateCharacterPath(A, e, h, l, a).toSVG() || null;
2654
2560
  } catch (B) {
2655
2561
  return console.warn(`Failed to generate positioned character path for "${A}":`, B), null;
2656
2562
  }
2657
2563
  }
2658
2564
  }
2659
- class SA {
2565
+ class IA {
2660
2566
  constructor() {
2661
2567
  o(this, "pathGenerator");
2662
- this.pathGenerator = new TA();
2568
+ this.pathGenerator = new wA();
2663
2569
  }
2664
2570
  /**
2665
2571
  * Generates the SVG header with metadata
@@ -2711,12 +2617,12 @@ class SA {
2711
2617
  * @returns Transform attribute string or empty string
2712
2618
  */
2713
2619
  generateTransformAttribute(A, e) {
2714
- const { transform: t, position: r } = A, i = r.cellX + e.cellWidth / 2, s = r.cellY + e.cellHeight / 2, n = [];
2620
+ const { transform: t, position: r } = A, i = r.cellX + e.cellWidth / 2, s = r.cellY + e.cellHeight / 2, a = [];
2715
2621
  if (t.flipHorizontal || t.flipVertical) {
2716
2622
  const g = t.flipHorizontal ? -1 : 1, B = t.flipVertical ? -1 : 1;
2717
- n.push(`translate(${i} ${s})`), n.push(`scale(${g} ${B})`), n.push(`translate(${-i} ${-s})`);
2623
+ a.push(`translate(${i} ${s})`), a.push(`scale(${g} ${B})`), a.push(`translate(${-i} ${-s})`);
2718
2624
  }
2719
- return t.rotation && n.push(`rotate(${t.rotation} ${i} ${s})`), n.length ? ` transform="${n.join(" ")}"` : "";
2625
+ return t.rotation && a.push(`rotate(${t.rotation} ${i} ${s})`), a.length ? ` transform="${a.join(" ")}"` : "";
2720
2626
  }
2721
2627
  /**
2722
2628
  * Generates background rectangle for a cell
@@ -2757,10 +2663,10 @@ class SA {
2757
2663
  );
2758
2664
  if (!s)
2759
2665
  return "";
2760
- const n = this.rgbaToColorString(A.primaryColor);
2666
+ const a = this.rgbaToColorString(A.primaryColor);
2761
2667
  return r.drawMode === "stroke" ? `
2762
- <path id="${`path-${A.charIndex}-${A.position.cellX}-${A.position.cellY}`.replace(/\./g, "-")}" d="${s}" stroke="${n}" stroke-width="${r.strokeWidth}" fill="none" />` : `
2763
- <path d="${s}" fill="${n}" />`;
2668
+ <path id="${`path-${A.charIndex}-${A.position.cellX}-${A.position.cellY}`.replace(/\./g, "-")}" d="${s}" stroke="${a}" stroke-width="${r.strokeWidth}" fill="none" />` : `
2669
+ <path d="${s}" fill="${a}" />`;
2764
2670
  }
2765
2671
  /**
2766
2672
  * Generates complete SVG content for a single cell
@@ -2773,10 +2679,10 @@ class SA {
2773
2679
  generateCellContent(A, e, t, r) {
2774
2680
  let i = "";
2775
2681
  i += this.generateCellBackground(A, e, r);
2776
- const s = this.generateTransformAttribute(A, e), n = this.generateCharacterPath(A, e, t, r);
2777
- return n && (s ? (i += `
2778
- <g${s}>`, i += n, i += `
2779
- </g>`) : i += n), i;
2682
+ const s = this.generateTransformAttribute(A, e), a = this.generateCharacterPath(A, e, t, r);
2683
+ return a && (s ? (i += `
2684
+ <g${s}>`, i += a, i += `
2685
+ </g>`) : i += a), i;
2780
2686
  }
2781
2687
  /**
2782
2688
  * Generates the complete SVG content from cell data
@@ -2804,7 +2710,7 @@ class SA {
2804
2710
  `).replace(/[ \t]+$/gm, "");
2805
2711
  }
2806
2712
  }
2807
- class RA extends H {
2713
+ class bA extends H {
2808
2714
  /**
2809
2715
  * Creates a downloadable blob from SVG content
2810
2716
  * @param svgContent The SVG content string
@@ -2834,12 +2740,12 @@ class RA extends H {
2834
2740
  this.downloadSVG(A, e || this.generateDefaultFilename());
2835
2741
  }
2836
2742
  }
2837
- class X {
2743
+ class J {
2838
2744
  constructor() {
2839
2745
  o(this, "dataExtractor");
2840
2746
  o(this, "contentGenerator");
2841
2747
  o(this, "fileHandler");
2842
- this.dataExtractor = new yA(), this.contentGenerator = new SA(), this.fileHandler = new RA();
2748
+ this.dataExtractor = new _A(), this.contentGenerator = new IA(), this.fileHandler = new bA();
2843
2749
  }
2844
2750
  /**
2845
2751
  * Applies default values to SVG export options
@@ -2886,7 +2792,7 @@ class X {
2886
2792
  }
2887
2793
  }
2888
2794
  }
2889
- class MA extends L {
2795
+ class vA extends L {
2890
2796
  /**
2891
2797
  * Extracts character data for TXT generation
2892
2798
  * @param framebufferData Framebuffer pixel data
@@ -2896,16 +2802,16 @@ class MA extends L {
2896
2802
  * @returns 2D array of characters (rows x columns)
2897
2803
  */
2898
2804
  extractCharacterGrid(A, e, t, r = " ") {
2899
- var n;
2805
+ var a;
2900
2806
  const i = [];
2901
2807
  let s = 0;
2902
2808
  for (let g = 0; g < e.rows; g++) {
2903
2809
  const B = [];
2904
- for (let h = 0; h < e.cols; h++) {
2905
- const E = s * 4, l = this.getCharacterIndex(
2810
+ for (let E = 0; E < e.cols; E++) {
2811
+ const h = s * 4, l = this.getCharacterIndex(
2906
2812
  A.characterPixels,
2907
- E
2908
- ), c = ((n = t.characters[l]) == null ? void 0 : n.character) || r;
2813
+ h
2814
+ ), c = ((a = t.characters[l]) == null ? void 0 : a.character) || r;
2909
2815
  B.push(c), s++;
2910
2816
  }
2911
2817
  i.push(B);
@@ -2913,7 +2819,7 @@ class MA extends L {
2913
2819
  return i;
2914
2820
  }
2915
2821
  }
2916
- class GA {
2822
+ class xA {
2917
2823
  /**
2918
2824
  * Generates TXT content from a 2D character array
2919
2825
  * @param characterGrid 2D array of characters (rows x columns)
@@ -2932,7 +2838,7 @@ class GA {
2932
2838
  return t.join(r);
2933
2839
  }
2934
2840
  }
2935
- class UA extends H {
2841
+ class FA extends H {
2936
2842
  /**
2937
2843
  * Saves TXT content as a downloadable file
2938
2844
  * @param content The TXT content to save
@@ -2956,12 +2862,12 @@ class UA extends H {
2956
2862
  return e === ".txt" || e.length <= 4 ? this.generateDefaultFilename() : e;
2957
2863
  }
2958
2864
  }
2959
- class $ {
2865
+ class K {
2960
2866
  constructor() {
2961
2867
  o(this, "dataExtractor");
2962
2868
  o(this, "contentGenerator");
2963
2869
  o(this, "fileHandler");
2964
- this.dataExtractor = new MA(), this.contentGenerator = new GA(), this.fileHandler = new UA();
2870
+ this.dataExtractor = new vA(), this.contentGenerator = new xA(), this.fileHandler = new FA();
2965
2871
  }
2966
2872
  /**
2967
2873
  * Applies default values to TXT export options
@@ -3007,7 +2913,7 @@ class $ {
3007
2913
  }
3008
2914
  }
3009
2915
  }
3010
- class YA extends L {
2916
+ class yA extends L {
3011
2917
  /**
3012
2918
  * Captures the current state of the textmode canvas as image data
3013
2919
  * @param canvas The canvas data containing the rendered textmode graphics
@@ -3019,8 +2925,8 @@ class YA extends L {
3019
2925
  const r = A.canvas;
3020
2926
  if (e === 1 && t === "transparent")
3021
2927
  return r;
3022
- const i = document.createElement("canvas"), s = i.getContext("2d"), n = Math.round(r.width * e), g = Math.round(r.height * e);
3023
- return i.width = n, i.height = g, t !== "transparent" && (s.fillStyle = t, s.fillRect(0, 0, n, g)), s.imageSmoothingEnabled = !1, s.drawImage(
2928
+ const i = document.createElement("canvas"), s = i.getContext("2d"), a = Math.round(r.width * e), g = Math.round(r.height * e);
2929
+ return i.width = a, i.height = g, t !== "transparent" && (s.fillStyle = t, s.fillRect(0, 0, a, g)), s.imageSmoothingEnabled = !1, s.drawImage(
3024
2930
  r,
3025
2931
  0,
3026
2932
  0,
@@ -3028,12 +2934,12 @@ class YA extends L {
3028
2934
  r.height,
3029
2935
  0,
3030
2936
  0,
3031
- n,
2937
+ a,
3032
2938
  g
3033
2939
  ), i;
3034
2940
  }
3035
2941
  }
3036
- class OA {
2942
+ class TA {
3037
2943
  /**
3038
2944
  * Generates image data from canvas
3039
2945
  * @param canvas The canvas containing the image data
@@ -3052,8 +2958,8 @@ class OA {
3052
2958
  */
3053
2959
  async generateImageBlob(A, e) {
3054
2960
  return new Promise((t, r) => {
3055
- const i = this.getMimeType(e.format), s = (n) => {
3056
- n ? t(n) : r(new Error(`Failed to generate ${e.format.toUpperCase()} blob`));
2961
+ const i = this.getMimeType(e.format), s = (a) => {
2962
+ a ? t(a) : r(new Error(`Failed to generate ${e.format.toUpperCase()} blob`));
3057
2963
  };
3058
2964
  e.format === "png" ? A.toBlob(s, i) : A.toBlob(s, i, e.quality);
3059
2965
  });
@@ -3076,16 +2982,16 @@ class OA {
3076
2982
  }
3077
2983
  }
3078
2984
  }
3079
- const J = {
2985
+ const j = {
3080
2986
  png: "image/png",
3081
2987
  jpg: "image/jpeg",
3082
2988
  webp: "image/webp"
3083
- }, O = {
2989
+ }, Y = {
3084
2990
  png: ".png",
3085
2991
  jpg: ".jpg",
3086
2992
  webp: ".webp"
3087
2993
  };
3088
- class VA extends H {
2994
+ class SA extends H {
3089
2995
  /**
3090
2996
  * Saves image content as a downloadable file
3091
2997
  * @param content The image content (data URL or blob)
@@ -3094,7 +3000,7 @@ class VA extends H {
3094
3000
  */
3095
3001
  saveImage(A, e, t) {
3096
3002
  try {
3097
- const r = O[t];
3003
+ const r = Y[t];
3098
3004
  typeof A == "string" ? this.saveImageFromDataURL(A, this.sanitizeFilename(e) + r) : this.saveImageFromBlob(A, this.sanitizeFilename(e) + r);
3099
3005
  } catch (r) {
3100
3006
  throw console.error(`Failed to save ${t.toUpperCase()} image:`, r), new Error(`Image save failed: ${r instanceof Error ? r.message : "Unknown error"}`);
@@ -3129,7 +3035,7 @@ class VA extends H {
3129
3035
  * @returns True if the format is supported for saving
3130
3036
  */
3131
3037
  validateSaveSupport(A) {
3132
- return A in J && A in O;
3038
+ return A in j && A in Y;
3133
3039
  }
3134
3040
  /**
3135
3041
  * Gets the MIME type for the specified image format
@@ -3137,7 +3043,7 @@ class VA extends H {
3137
3043
  * @returns The MIME type string
3138
3044
  */
3139
3045
  getMimeType(A) {
3140
- return J[A];
3046
+ return j[A];
3141
3047
  }
3142
3048
  /**
3143
3049
  * Gets the file extension for the specified image format
@@ -3145,15 +3051,15 @@ class VA extends H {
3145
3051
  * @returns The file extension (including the dot)
3146
3052
  */
3147
3053
  getFileExtension(A) {
3148
- return O[A];
3054
+ return Y[A];
3149
3055
  }
3150
3056
  }
3151
- class kA {
3057
+ class RA {
3152
3058
  constructor() {
3153
3059
  o(this, "dataExtractor");
3154
3060
  o(this, "contentGenerator");
3155
3061
  o(this, "fileHandler");
3156
- this.dataExtractor = new YA(), this.contentGenerator = new OA(), this.fileHandler = new VA();
3062
+ this.dataExtractor = new yA(), this.contentGenerator = new TA(), this.fileHandler = new SA();
3157
3063
  }
3158
3064
  /**
3159
3065
  * Applies default values to image export options
@@ -3236,7 +3142,7 @@ class kA {
3236
3142
  }
3237
3143
  }
3238
3144
  }
3239
- class S {
3145
+ class G {
3240
3146
  constructor(A = null, e = {}) {
3241
3147
  /** The element to capture content from (optional for standalone mode) */
3242
3148
  o(this, "captureSource");
@@ -3280,15 +3186,12 @@ class S {
3280
3186
  * @ignore
3281
3187
  */
3282
3188
  static async create(A = null, e = {}) {
3283
- const t = new S(A, e), r = t._standalone ? e : void 0;
3284
- t.textmodeCanvas = new DA(t.captureSource, t._standalone, r), t._renderer = new lA(t.textmodeCanvas.getWebGLContext());
3189
+ const t = new G(A, e), r = t._standalone ? e : void 0;
3190
+ t.textmodeCanvas = new QA(t.captureSource, t._standalone, r), t._renderer = new aA(t.textmodeCanvas.getWebGLContext());
3285
3191
  let i, s;
3286
- t._standalone ? (i = e.width || 800, s = e.height || 600) : (i = t.textmodeCanvas.width || 800, s = t.textmodeCanvas.height || 600), t._canvasFramebuffer = t._renderer.createFramebuffer(i, s), t._font = new CA(t._renderer, e.fontSize ?? 16), await t._font.initialize(e.fontSource);
3287
- const n = t._font.maxGlyphDimensions;
3288
- return t._grid = new mA(t.textmodeCanvas.canvas, n.width, n.height), t._pipeline = new FA(t._renderer, t._font, t._grid), t.setupEventListeners(), t._standalone && (t.textmodeCanvas.onTransformChange = () => {
3289
- const g = t.textmodeCanvas.getEffectiveRenderingDimensions();
3290
- t._renderer.resetViewport(g.width, g.height), t._mode === "auto" && t.render();
3291
- }), t.startAutoRendering(), t;
3192
+ t._standalone ? (i = e.width || 800, s = e.height || 600) : (i = t.textmodeCanvas.width || 800, s = t.textmodeCanvas.height || 600), t._canvasFramebuffer = t._renderer.createFramebuffer(i, s), t._font = new hA(t._renderer, e.fontSize ?? 16), await t._font.initialize(e.fontSource);
3193
+ const a = t._font.maxGlyphDimensions;
3194
+ return t._grid = new lA(t.textmodeCanvas.canvas, a.width, a.height), t._pipeline = new PA(t._renderer, t._font, t._grid), t.setupEventListeners(), t.startAutoRendering(), t;
3292
3195
  }
3293
3196
  setupEventListeners() {
3294
3197
  this._windowResizeListener = () => {
@@ -3336,7 +3239,7 @@ class S {
3336
3239
  * ```
3337
3240
  */
3338
3241
  toString(A = {}) {
3339
- return new $().generateTXT(this, A);
3242
+ return new K().generateTXT(this, A);
3340
3243
  }
3341
3244
  /**
3342
3245
  * Export the current textmode rendering to a TXT file.
@@ -3361,7 +3264,7 @@ class S {
3361
3264
  * ```
3362
3265
  */
3363
3266
  saveStrings(A = {}) {
3364
- new $().saveTXT(this, A);
3267
+ new K().saveTXT(this, A);
3365
3268
  }
3366
3269
  /**
3367
3270
  * Generate the current textmode rendering as an SVG string.
@@ -3390,7 +3293,7 @@ class S {
3390
3293
  * ```
3391
3294
  */
3392
3295
  toSVG(A = {}) {
3393
- return new X().generateSVG(this, A);
3296
+ return new J().generateSVG(this, A);
3394
3297
  }
3395
3298
  /**
3396
3299
  * Export the current textmode rendering to an SVG file.
@@ -3414,7 +3317,7 @@ class S {
3414
3317
  * ```
3415
3318
  */
3416
3319
  saveSVG(A = {}) {
3417
- new X().saveSVG(this, A);
3320
+ new J().saveSVG(this, A);
3418
3321
  }
3419
3322
  /**
3420
3323
  * Export the current textmode rendering to an image file.
@@ -3445,7 +3348,7 @@ class S {
3445
3348
  * ```
3446
3349
  */
3447
3350
  async saveCanvas(A, e = "png", t = {}) {
3448
- await new kA().saveImage(this.textmodeCanvas, {
3351
+ await new RA().saveImage(this.textmodeCanvas, {
3449
3352
  ...t,
3450
3353
  filename: A,
3451
3354
  format: e
@@ -3529,12 +3432,7 @@ class S {
3529
3432
  }
3530
3433
  }
3531
3434
  resize() {
3532
- if (this.textmodeCanvas.resize(), this._canvasFramebuffer.resize(this.textmodeCanvas.width, this.textmodeCanvas.height), this._grid.resize(), this._pipeline.resize(), this._standalone) {
3533
- const A = this.textmodeCanvas.getEffectiveRenderingDimensions();
3534
- this._renderer.resetViewport(A.width, A.height);
3535
- } else
3536
- this._renderer.resetViewport();
3537
- this._mode !== "manual" && this.render();
3435
+ this.textmodeCanvas.resize(), this._canvasFramebuffer.resize(this.textmodeCanvas.width, this.textmodeCanvas.height), this._grid.resize(), this._pipeline.resize(), this._renderer.resetViewport(), this._mode !== "manual" && this.render();
3538
3436
  }
3539
3437
  /**
3540
3438
  * Start automatic rendering
@@ -3712,7 +3610,7 @@ class S {
3712
3610
  * ```
3713
3611
  */
3714
3612
  redraw(A = 1) {
3715
- if (f.validate(
3613
+ if (d.validate(
3716
3614
  typeof A == "number" && A > 0 && Number.isInteger(A),
3717
3615
  "Redraw count must be a positive integer.",
3718
3616
  { method: "redraw", providedValue: A }
@@ -3768,16 +3666,11 @@ class S {
3768
3666
  * ```
3769
3667
  */
3770
3668
  fontSize(A) {
3771
- if (f.validate(
3669
+ d.validate(
3772
3670
  typeof A == "number" && A > 0,
3773
3671
  "Font size must be a positive number greater than 0.",
3774
3672
  { method: "fontSize", providedValue: A }
3775
- ) && this._font.fontSize !== A)
3776
- if (this._font.setFontSize(A), this._grid.resizeCellPixelDimensions(this._font.maxGlyphDimensions.width, this._font.maxGlyphDimensions.height), this._pipeline.resize(), this._standalone) {
3777
- const e = this.textmodeCanvas.getEffectiveRenderingDimensions();
3778
- this._renderer.resetViewport(e.width, e.height);
3779
- } else
3780
- this._renderer.resetViewport();
3673
+ ) && this._font.fontSize !== A && (this._font.setFontSize(A), this._grid.resizeCellPixelDimensions(this._font.maxGlyphDimensions.width, this._font.maxGlyphDimensions.height), this._pipeline.resize(), this._renderer.resetViewport());
3781
3674
  }
3782
3675
  /**
3783
3676
  * Set a draw callback function that will be executed before each render.
@@ -3844,12 +3737,7 @@ class S {
3844
3737
  * @param height The new height of the canvas.
3845
3738
  */
3846
3739
  resizeCanvas(A, e) {
3847
- if (this.textmodeCanvas.resize(A, e), this._canvasFramebuffer.resize(this.textmodeCanvas.width, this.textmodeCanvas.height), this._grid.resize(), this._pipeline.resize(), this._standalone) {
3848
- const t = this.textmodeCanvas.getEffectiveRenderingDimensions();
3849
- this._renderer.resetViewport(t.width, t.height);
3850
- } else
3851
- this._renderer.resetViewport();
3852
- this._mode !== "manual" && this.render();
3740
+ this.textmodeCanvas.resize(A, e), this._canvasFramebuffer.resize(this.textmodeCanvas.width, this.textmodeCanvas.height), this._grid.resize(), this._pipeline.resize(), this._renderer.resetViewport(), this._mode !== "manual" && this.render();
3853
3741
  }
3854
3742
  /**
3855
3743
  * @inheritDoc TextmodeConversionPipeline.get
@@ -4432,10 +4320,10 @@ class N {
4432
4320
  */
4433
4321
  static async create(A, e = {}) {
4434
4322
  if (A instanceof HTMLCanvasElement || A instanceof HTMLVideoElement)
4435
- return S.create(A, e);
4323
+ return G.create(A, e);
4436
4324
  {
4437
4325
  const t = A || {};
4438
- return S.create(null, t);
4326
+ return G.create(null, t);
4439
4327
  }
4440
4328
  }
4441
4329
  /**
@@ -4449,7 +4337,7 @@ class N {
4449
4337
  * ```
4450
4338
  */
4451
4339
  static setErrorLevel(A) {
4452
- f.setGlobalLevel(A);
4340
+ d.setGlobalLevel(A);
4453
4341
  }
4454
4342
  /**
4455
4343
  * Returns the current version of the `textmode.js` library.
@@ -4460,27 +4348,27 @@ class N {
4460
4348
  * ```
4461
4349
  */
4462
4350
  static get version() {
4463
- return "0.1.6-beta.2";
4351
+ return "0.1.6-beta.4";
4464
4352
  }
4465
4353
  constructor() {
4466
4354
  throw new Error("Textmode is a static class and cannot be instantiated.");
4467
4355
  }
4468
4356
  }
4469
- const HA = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
4357
+ const GA = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
4470
4358
  __proto__: null
4471
- }, Symbol.toStringTag, { value: "Module" })), NA = N.create, WA = N.setErrorLevel, XA = N.version;
4359
+ }, Symbol.toStringTag, { value: "Module" })), YA = N.create, kA = N.setErrorLevel, OA = N.version;
4472
4360
  export {
4473
- DA as TextmodeCanvas,
4474
- FA as TextmodeConversionPipeline,
4475
- nA as TextmodeErrorLevel,
4476
- CA as TextmodeFont,
4477
- mA as TextmodeGrid,
4478
- S as Textmodifier,
4479
- LA as converters,
4480
- NA as create,
4361
+ QA as TextmodeCanvas,
4362
+ PA as TextmodeConversionPipeline,
4363
+ tA as TextmodeErrorLevel,
4364
+ hA as TextmodeFont,
4365
+ lA as TextmodeGrid,
4366
+ G as Textmodifier,
4367
+ MA as converters,
4368
+ YA as create,
4481
4369
  N as default,
4482
- HA as export,
4483
- WA as setErrorLevel,
4370
+ GA as export,
4371
+ kA as setErrorLevel,
4484
4372
  N as textmode,
4485
- XA as version
4373
+ OA as version
4486
4374
  };