@opentui/core 0.0.0-20251202-52296102 → 0.0.0-20251208-bec95e7d

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.
Files changed (43) hide show
  1. package/3d.js +3 -5
  2. package/3d.js.map +2 -2
  3. package/Renderable.d.ts +2 -1
  4. package/{index-re80811e.js → index-crebvcxc.js} +1801 -1307
  5. package/index-crebvcxc.js.map +59 -0
  6. package/index.d.ts +1 -1
  7. package/index.js +265 -93
  8. package/index.js.map +13 -13
  9. package/lib/bunfs.d.ts +7 -0
  10. package/lib/keymapping.d.ts +4 -1
  11. package/lib/yoga.options.d.ts +1 -1
  12. package/package.json +9 -9
  13. package/parser.worker.js +17 -3
  14. package/parser.worker.js.map +6 -5
  15. package/renderables/Diff.d.ts +4 -0
  16. package/renderables/Input.d.ts +10 -0
  17. package/renderables/Select.d.ts +10 -0
  18. package/renderables/TabSelect.d.ts +10 -0
  19. package/renderables/Textarea.d.ts +5 -1
  20. package/renderer.d.ts +19 -0
  21. package/testing/mock-keys.d.ts +12 -0
  22. package/testing/test-recorder.d.ts +44 -0
  23. package/testing.d.ts +1 -0
  24. package/testing.js +69 -4
  25. package/testing.js.map +6 -5
  26. package/index-g8dczzvv.js +0 -33
  27. package/index-g8dczzvv.js.map +0 -9
  28. package/index-re80811e.js.map +0 -55
  29. package/libyoga-2ksztx35.dylib +0 -0
  30. package/libyoga-gh2tjwb7.so +0 -0
  31. package/libyoga-j5nt7np1.dylib +0 -0
  32. package/libyoga-jjdjx62k.js +0 -11
  33. package/libyoga-jjdjx62k.js.map +0 -9
  34. package/libyoga-jkq1dr7g.js +0 -11
  35. package/libyoga-jkq1dr7g.js.map +0 -9
  36. package/libyoga-m7gmcz0e.js +0 -11
  37. package/libyoga-m7gmcz0e.js.map +0 -9
  38. package/libyoga-wnbqxxhv.so +0 -0
  39. package/libyoga-zt51h244.js +0 -11
  40. package/libyoga-zt51h244.js.map +0 -9
  41. package/yoga-jkgc6c1f.dll +0 -0
  42. package/yoga-merwjcba.js +0 -11
  43. package/yoga-merwjcba.js.map +0 -9
@@ -1,1285 +1,1669 @@
1
1
  // @bun
2
- import {
3
- __export,
4
- __require,
5
- __toESM
6
- } from "./index-g8dczzvv.js";
2
+ var __create = Object.create;
3
+ var __getProtoOf = Object.getPrototypeOf;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __toESM = (mod, isNodeMode, target) => {
8
+ target = mod != null ? __create(__getProtoOf(mod)) : {};
9
+ const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
10
+ for (let key of __getOwnPropNames(mod))
11
+ if (!__hasOwnProp.call(to, key))
12
+ __defProp(to, key, {
13
+ get: () => mod[key],
14
+ enumerable: true
15
+ });
16
+ return to;
17
+ };
18
+ var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
19
+ var __export = (target, all) => {
20
+ for (var name in all)
21
+ __defProp(target, name, {
22
+ get: all[name],
23
+ enumerable: true,
24
+ configurable: true,
25
+ set: (newValue) => all[name] = () => newValue
26
+ });
27
+ };
28
+ var __require = import.meta.require;
7
29
 
8
- // ../../node_modules/bun-yoga/dist/index.js
9
- var exports_dist = {};
10
- __export(exports_dist, {
11
- default: () => dist_default,
30
+ // ../../node_modules/yoga-layout/dist/src/index.js
31
+ var exports_src = {};
32
+ __export(exports_src, {
33
+ default: () => src_default,
12
34
  Wrap: () => Wrap,
13
- WRAP_WRAP_REVERSE: () => WRAP_WRAP_REVERSE,
14
- WRAP_WRAP: () => WRAP_WRAP,
15
- WRAP_NO_WRAP: () => WRAP_NO_WRAP,
16
35
  Unit: () => Unit,
17
36
  PositionType: () => PositionType,
18
- POSITION_TYPE_STATIC: () => POSITION_TYPE_STATIC,
19
- POSITION_TYPE_RELATIVE: () => POSITION_TYPE_RELATIVE,
20
- POSITION_TYPE_ABSOLUTE: () => POSITION_TYPE_ABSOLUTE,
21
37
  Overflow: () => Overflow,
22
- OVERFLOW_VISIBLE: () => OVERFLOW_VISIBLE,
23
- OVERFLOW_SCROLL: () => OVERFLOW_SCROLL,
24
- OVERFLOW_HIDDEN: () => OVERFLOW_HIDDEN,
25
38
  NodeType: () => NodeType,
26
- Node: () => Node,
27
39
  MeasureMode: () => MeasureMode,
28
40
  LogLevel: () => LogLevel,
29
41
  Justify: () => Justify,
30
- JUSTIFY_SPACE_EVENLY: () => JUSTIFY_SPACE_EVENLY,
31
- JUSTIFY_SPACE_BETWEEN: () => JUSTIFY_SPACE_BETWEEN,
32
- JUSTIFY_SPACE_AROUND: () => JUSTIFY_SPACE_AROUND,
33
- JUSTIFY_FLEX_START: () => JUSTIFY_FLEX_START,
34
- JUSTIFY_FLEX_END: () => JUSTIFY_FLEX_END,
35
- JUSTIFY_CENTER: () => JUSTIFY_CENTER,
36
42
  Gutter: () => Gutter,
37
43
  FlexDirection: () => FlexDirection,
38
- FLEX_DIRECTION_ROW_REVERSE: () => FLEX_DIRECTION_ROW_REVERSE,
39
- FLEX_DIRECTION_ROW: () => FLEX_DIRECTION_ROW,
40
- FLEX_DIRECTION_COLUMN_REVERSE: () => FLEX_DIRECTION_COLUMN_REVERSE,
41
- FLEX_DIRECTION_COLUMN: () => FLEX_DIRECTION_COLUMN,
42
44
  ExperimentalFeature: () => ExperimentalFeature,
43
45
  Errata: () => Errata,
44
46
  Edge: () => Edge,
45
- EDGE_VERTICAL: () => EDGE_VERTICAL,
46
- EDGE_TOP: () => EDGE_TOP,
47
- EDGE_START: () => EDGE_START,
48
- EDGE_RIGHT: () => EDGE_RIGHT,
49
- EDGE_LEFT: () => EDGE_LEFT,
50
- EDGE_HORIZONTAL: () => EDGE_HORIZONTAL,
51
- EDGE_END: () => EDGE_END,
52
- EDGE_BOTTOM: () => EDGE_BOTTOM,
53
- EDGE_ALL: () => EDGE_ALL,
54
47
  Display: () => Display,
55
48
  Direction: () => Direction,
56
49
  Dimension: () => Dimension,
57
- DISPLAY_NONE: () => DISPLAY_NONE,
58
- DISPLAY_FLEX: () => DISPLAY_FLEX,
59
- DIRECTION_RTL: () => DIRECTION_RTL,
60
- DIRECTION_LTR: () => DIRECTION_LTR,
61
- DIRECTION_INHERIT: () => DIRECTION_INHERIT,
62
- Config: () => Config,
63
50
  BoxSizing: () => BoxSizing,
64
- Align: () => Align,
65
- ALIGN_STRETCH: () => ALIGN_STRETCH,
66
- ALIGN_SPACE_EVENLY: () => ALIGN_SPACE_EVENLY,
67
- ALIGN_SPACE_BETWEEN: () => ALIGN_SPACE_BETWEEN,
68
- ALIGN_SPACE_AROUND: () => ALIGN_SPACE_AROUND,
69
- ALIGN_FLEX_START: () => ALIGN_FLEX_START,
70
- ALIGN_FLEX_END: () => ALIGN_FLEX_END,
71
- ALIGN_CENTER: () => ALIGN_CENTER,
72
- ALIGN_BASELINE: () => ALIGN_BASELINE,
73
- ALIGN_AUTO: () => ALIGN_AUTO
74
- });
75
- import { dlopen, suffix, JSCallback, FFIType } from "bun:ffi";
76
- import { join } from "path";
77
- import { existsSync } from "fs";
78
- var __dirname = "/Users/runner/work/opentui/opentui/node_modules/bun-yoga/dist";
79
- var embeddedLib = await (async () => {
80
- try {
81
- if (process.platform === "darwin" && process.arch === "arm64") {
82
- return (await import("./libyoga-m7gmcz0e.js", { with: { type: "file" } })).default;
83
- } else if (process.platform === "darwin" && process.arch === "x64") {
84
- return (await import("./libyoga-jkq1dr7g.js", { with: { type: "file" } })).default;
85
- } else if (process.platform === "linux" && process.arch === "x64") {
86
- return (await import("./libyoga-zt51h244.js", { with: { type: "file" } })).default;
87
- } else if (process.platform === "linux" && process.arch === "arm64") {
88
- return (await import("./libyoga-jjdjx62k.js", { with: { type: "file" } })).default;
89
- } else if (process.platform === "win32") {
90
- return (await import("./yoga-merwjcba.js", { with: { type: "file" } })).default;
91
- }
92
- } catch {}
93
- return;
94
- })();
95
- function getLibPath() {
96
- if (process.platform === "win32") {
97
- if (existsSync(join(__dirname, "..", "zig-out", "lib", `yoga.${suffix}`))) {
98
- return join(__dirname, "..", "zig-out", "lib", `yoga.${suffix}`);
99
- }
100
- if (existsSync(join(__dirname, "..", "zig-out", "bin", `yoga.${suffix}`))) {
101
- return join(__dirname, "..", "zig-out", "bin", `yoga.${suffix}`);
102
- }
103
- } else {
104
- if (existsSync(join(__dirname, "..", "zig-out", "lib", `libyoga.${suffix}`))) {
105
- return join(__dirname, "..", "zig-out", "lib", `libyoga.${suffix}`);
106
- }
107
- }
108
- if (embeddedLib && existsSync(embeddedLib)) {
109
- return embeddedLib;
110
- }
111
- throw new Error(`Could not find native library. Platform: ${process.platform}-${process.arch}
112
- Make sure to run 'zig build' or install the package with binaries.`);
113
- }
114
- var Align = {
115
- Auto: 0,
116
- FlexStart: 1,
117
- Center: 2,
118
- FlexEnd: 3,
119
- Stretch: 4,
120
- Baseline: 5,
121
- SpaceBetween: 6,
122
- SpaceAround: 7,
123
- SpaceEvenly: 8
124
- };
125
- var BoxSizing = {
126
- BorderBox: 0,
127
- ContentBox: 1
128
- };
129
- var Dimension = {
130
- Width: 0,
131
- Height: 1
132
- };
133
- var Direction = {
134
- Inherit: 0,
135
- LTR: 1,
136
- RTL: 2
137
- };
138
- var Display = {
139
- Flex: 0,
140
- None: 1,
141
- Contents: 2
142
- };
143
- var Edge = {
144
- Left: 0,
145
- Top: 1,
146
- Right: 2,
147
- Bottom: 3,
148
- Start: 4,
149
- End: 5,
150
- Horizontal: 6,
151
- Vertical: 7,
152
- All: 8
153
- };
154
- var Errata = {
155
- None: 0,
156
- StretchFlexBasis: 1,
157
- AbsolutePositionWithoutInsetsExcludesPadding: 2,
158
- AbsolutePercentAgainstInnerSize: 4,
159
- All: 2147483647,
160
- Classic: 2147483646
161
- };
162
- var ExperimentalFeature = {
163
- WebFlexBasis: 0
164
- };
165
- var FlexDirection = {
166
- Column: 0,
167
- ColumnReverse: 1,
168
- Row: 2,
169
- RowReverse: 3
170
- };
171
- var Gutter = {
172
- Column: 0,
173
- Row: 1,
174
- All: 2
175
- };
176
- var Justify = {
177
- FlexStart: 0,
178
- Center: 1,
179
- FlexEnd: 2,
180
- SpaceBetween: 3,
181
- SpaceAround: 4,
182
- SpaceEvenly: 5
183
- };
184
- var LogLevel = {
185
- Error: 0,
186
- Warn: 1,
187
- Info: 2,
188
- Debug: 3,
189
- Verbose: 4,
190
- Fatal: 5
191
- };
192
- var MeasureMode = {
193
- Undefined: 0,
194
- Exactly: 1,
195
- AtMost: 2
196
- };
197
- var NodeType = {
198
- Default: 0,
199
- Text: 1
200
- };
201
- var Overflow = {
202
- Visible: 0,
203
- Hidden: 1,
204
- Scroll: 2
205
- };
206
- var PositionType = {
207
- Static: 0,
208
- Relative: 1,
209
- Absolute: 2
210
- };
211
- var Unit = {
212
- Undefined: 0,
213
- Point: 1,
214
- Percent: 2,
215
- Auto: 3
216
- };
217
- var Wrap = {
218
- NoWrap: 0,
219
- Wrap: 1,
220
- WrapReverse: 2
221
- };
222
- var EDGE_LEFT = Edge.Left;
223
- var EDGE_TOP = Edge.Top;
224
- var EDGE_RIGHT = Edge.Right;
225
- var EDGE_BOTTOM = Edge.Bottom;
226
- var EDGE_START = Edge.Start;
227
- var EDGE_END = Edge.End;
228
- var EDGE_HORIZONTAL = Edge.Horizontal;
229
- var EDGE_VERTICAL = Edge.Vertical;
230
- var EDGE_ALL = Edge.All;
231
- var FLEX_DIRECTION_COLUMN = FlexDirection.Column;
232
- var FLEX_DIRECTION_COLUMN_REVERSE = FlexDirection.ColumnReverse;
233
- var FLEX_DIRECTION_ROW = FlexDirection.Row;
234
- var FLEX_DIRECTION_ROW_REVERSE = FlexDirection.RowReverse;
235
- var JUSTIFY_FLEX_START = Justify.FlexStart;
236
- var JUSTIFY_CENTER = Justify.Center;
237
- var JUSTIFY_FLEX_END = Justify.FlexEnd;
238
- var JUSTIFY_SPACE_BETWEEN = Justify.SpaceBetween;
239
- var JUSTIFY_SPACE_AROUND = Justify.SpaceAround;
240
- var JUSTIFY_SPACE_EVENLY = Justify.SpaceEvenly;
241
- var ALIGN_AUTO = Align.Auto;
242
- var ALIGN_FLEX_START = Align.FlexStart;
243
- var ALIGN_CENTER = Align.Center;
244
- var ALIGN_FLEX_END = Align.FlexEnd;
245
- var ALIGN_STRETCH = Align.Stretch;
246
- var ALIGN_BASELINE = Align.Baseline;
247
- var ALIGN_SPACE_BETWEEN = Align.SpaceBetween;
248
- var ALIGN_SPACE_AROUND = Align.SpaceAround;
249
- var ALIGN_SPACE_EVENLY = Align.SpaceEvenly;
250
- var WRAP_NO_WRAP = Wrap.NoWrap;
251
- var WRAP_WRAP = Wrap.Wrap;
252
- var WRAP_WRAP_REVERSE = Wrap.WrapReverse;
253
- var OVERFLOW_VISIBLE = Overflow.Visible;
254
- var OVERFLOW_HIDDEN = Overflow.Hidden;
255
- var OVERFLOW_SCROLL = Overflow.Scroll;
256
- var DISPLAY_FLEX = Display.Flex;
257
- var DISPLAY_NONE = Display.None;
258
- var POSITION_TYPE_STATIC = PositionType.Static;
259
- var POSITION_TYPE_RELATIVE = PositionType.Relative;
260
- var POSITION_TYPE_ABSOLUTE = PositionType.Absolute;
261
- var DIRECTION_INHERIT = Direction.Inherit;
262
- var DIRECTION_LTR = Direction.LTR;
263
- var DIRECTION_RTL = Direction.RTL;
264
- function parseValue(value) {
265
- if (value === undefined) {
266
- return { unit: Unit.Undefined, asNumber: undefined };
267
- }
268
- if (value === "auto") {
269
- return { unit: Unit.Auto, asNumber: undefined };
270
- }
271
- if (typeof value === "string" && value.endsWith("%")) {
272
- return { unit: Unit.Percent, asNumber: parseFloat(value) };
273
- }
274
- return { unit: Unit.Point, asNumber: value };
275
- }
276
- var UNDEFINED_VALUE = { unit: Unit.Undefined, value: NaN };
277
- function unpackValue(packed) {
278
- const p = BigInt(packed);
279
- const unit = Number(p & 0xffffffffn);
280
- const valueBits = Number(p >> 32n & 0xffffffffn);
281
- const buffer = new ArrayBuffer(4);
282
- const view = new DataView(buffer);
283
- view.setUint32(0, valueBits, true);
284
- const value = view.getFloat32(0, true);
285
- return { unit, value };
286
- }
287
- var lib = dlopen(getLibPath(), {
288
- ygConfigNew: { args: [], returns: "ptr" },
289
- ygConfigFree: { args: ["ptr"], returns: "void" },
290
- ygConfigGetDefault: { args: [], returns: "ptr" },
291
- ygConfigSetUseWebDefaults: { args: ["ptr", "bool"], returns: "void" },
292
- ygConfigGetUseWebDefaults: { args: ["ptr"], returns: "bool" },
293
- ygConfigSetPointScaleFactor: { args: ["ptr", "f32"], returns: "void" },
294
- ygConfigGetPointScaleFactor: { args: ["ptr"], returns: "f32" },
295
- ygConfigSetErrata: { args: ["ptr", "i32"], returns: "void" },
296
- ygConfigGetErrata: { args: ["ptr"], returns: "i32" },
297
- ygConfigSetExperimentalFeatureEnabled: {
298
- args: ["ptr", "i32", "bool"],
299
- returns: "void"
300
- },
301
- ygConfigIsExperimentalFeatureEnabled: {
302
- args: ["ptr", "i32"],
303
- returns: "bool"
304
- },
305
- ygNodeNew: { args: [], returns: "ptr" },
306
- ygNodeNewWithConfig: { args: ["ptr"], returns: "ptr" },
307
- ygNodeClone: { args: ["ptr"], returns: "ptr" },
308
- ygNodeFree: { args: ["ptr"], returns: "void" },
309
- ygNodeFreeRecursive: { args: ["ptr"], returns: "void" },
310
- ygNodeReset: { args: ["ptr"], returns: "void" },
311
- ygNodeCopyStyle: { args: ["ptr", "ptr"], returns: "void" },
312
- ygNodeSetIsReferenceBaseline: { args: ["ptr", "bool"], returns: "void" },
313
- ygNodeIsReferenceBaseline: { args: ["ptr"], returns: "bool" },
314
- ygNodeSetAlwaysFormsContainingBlock: {
315
- args: ["ptr", "bool"],
316
- returns: "void"
317
- },
318
- ygNodeInsertChild: { args: ["ptr", "ptr", "u64"], returns: "void" },
319
- ygNodeRemoveChild: { args: ["ptr", "ptr"], returns: "void" },
320
- ygNodeRemoveAllChildren: { args: ["ptr"], returns: "void" },
321
- ygNodeGetChild: { args: ["ptr", "u64"], returns: "ptr" },
322
- ygNodeGetChildCount: { args: ["ptr"], returns: "u64" },
323
- ygNodeGetParent: { args: ["ptr"], returns: "ptr" },
324
- ygNodeCalculateLayout: { args: ["ptr", "f32", "f32", "i32"], returns: "void" },
325
- ygNodeGetHasNewLayout: { args: ["ptr"], returns: "bool" },
326
- ygNodeSetHasNewLayout: { args: ["ptr", "bool"], returns: "void" },
327
- ygNodeMarkDirty: { args: ["ptr"], returns: "void" },
328
- ygNodeIsDirty: { args: ["ptr"], returns: "bool" },
329
- ygNodeLayoutGetLeft: { args: ["ptr"], returns: "f32" },
330
- ygNodeLayoutGetTop: { args: ["ptr"], returns: "f32" },
331
- ygNodeLayoutGetRight: { args: ["ptr"], returns: "f32" },
332
- ygNodeLayoutGetBottom: { args: ["ptr"], returns: "f32" },
333
- ygNodeLayoutGetWidth: { args: ["ptr"], returns: "f32" },
334
- ygNodeLayoutGetHeight: { args: ["ptr"], returns: "f32" },
335
- ygNodeLayoutGetBorder: { args: ["ptr", "i32"], returns: "f32" },
336
- ygNodeLayoutGetMargin: { args: ["ptr", "i32"], returns: "f32" },
337
- ygNodeLayoutGetPadding: { args: ["ptr", "i32"], returns: "f32" },
338
- ygNodeStyleSetDirection: { args: ["ptr", "i32"], returns: "void" },
339
- ygNodeStyleGetDirection: { args: ["ptr"], returns: "i32" },
340
- ygNodeStyleSetFlexDirection: { args: ["ptr", "i32"], returns: "void" },
341
- ygNodeStyleGetFlexDirection: { args: ["ptr"], returns: "i32" },
342
- ygNodeStyleSetJustifyContent: { args: ["ptr", "i32"], returns: "void" },
343
- ygNodeStyleGetJustifyContent: { args: ["ptr"], returns: "i32" },
344
- ygNodeStyleSetAlignContent: { args: ["ptr", "i32"], returns: "void" },
345
- ygNodeStyleGetAlignContent: { args: ["ptr"], returns: "i32" },
346
- ygNodeStyleSetAlignItems: { args: ["ptr", "i32"], returns: "void" },
347
- ygNodeStyleGetAlignItems: { args: ["ptr"], returns: "i32" },
348
- ygNodeStyleSetAlignSelf: { args: ["ptr", "i32"], returns: "void" },
349
- ygNodeStyleGetAlignSelf: { args: ["ptr"], returns: "i32" },
350
- ygNodeStyleSetPositionType: { args: ["ptr", "i32"], returns: "void" },
351
- ygNodeStyleGetPositionType: { args: ["ptr"], returns: "i32" },
352
- ygNodeStyleSetFlexWrap: { args: ["ptr", "i32"], returns: "void" },
353
- ygNodeStyleGetFlexWrap: { args: ["ptr"], returns: "i32" },
354
- ygNodeStyleSetOverflow: { args: ["ptr", "i32"], returns: "void" },
355
- ygNodeStyleGetOverflow: { args: ["ptr"], returns: "i32" },
356
- ygNodeStyleSetDisplay: { args: ["ptr", "i32"], returns: "void" },
357
- ygNodeStyleGetDisplay: { args: ["ptr"], returns: "i32" },
358
- ygNodeStyleSetBoxSizing: { args: ["ptr", "i32"], returns: "void" },
359
- ygNodeStyleGetBoxSizing: { args: ["ptr"], returns: "i32" },
360
- ygNodeStyleSetFlex: { args: ["ptr", "f32"], returns: "void" },
361
- ygNodeStyleGetFlex: { args: ["ptr"], returns: "f32" },
362
- ygNodeStyleSetFlexGrow: { args: ["ptr", "f32"], returns: "void" },
363
- ygNodeStyleGetFlexGrow: { args: ["ptr"], returns: "f32" },
364
- ygNodeStyleSetFlexShrink: { args: ["ptr", "f32"], returns: "void" },
365
- ygNodeStyleGetFlexShrink: { args: ["ptr"], returns: "f32" },
366
- ygNodeStyleSetFlexBasis: { args: ["ptr", "f32"], returns: "void" },
367
- ygNodeStyleSetFlexBasisPercent: { args: ["ptr", "f32"], returns: "void" },
368
- ygNodeStyleSetFlexBasisAuto: { args: ["ptr"], returns: "void" },
369
- ygNodeStyleSetPosition: { args: ["ptr", "i32", "f32"], returns: "void" },
370
- ygNodeStyleSetPositionPercent: { args: ["ptr", "i32", "f32"], returns: "void" },
371
- ygNodeStyleSetPositionAuto: { args: ["ptr", "i32"], returns: "void" },
372
- ygNodeStyleSetMargin: { args: ["ptr", "i32", "f32"], returns: "void" },
373
- ygNodeStyleSetMarginPercent: { args: ["ptr", "i32", "f32"], returns: "void" },
374
- ygNodeStyleSetMarginAuto: { args: ["ptr", "i32"], returns: "void" },
375
- ygNodeStyleSetPadding: { args: ["ptr", "i32", "f32"], returns: "void" },
376
- ygNodeStyleSetPaddingPercent: { args: ["ptr", "i32", "f32"], returns: "void" },
377
- ygNodeStyleSetBorder: { args: ["ptr", "i32", "f32"], returns: "void" },
378
- ygNodeStyleGetBorder: { args: ["ptr", "i32"], returns: "f32" },
379
- ygNodeStyleSetGap: { args: ["ptr", "i32", "f32"], returns: "void" },
380
- ygNodeStyleSetGapPercent: { args: ["ptr", "i32", "f32"], returns: "void" },
381
- ygNodeStyleSetWidth: { args: ["ptr", "f32"], returns: "void" },
382
- ygNodeStyleSetWidthPercent: { args: ["ptr", "f32"], returns: "void" },
383
- ygNodeStyleSetWidthAuto: { args: ["ptr"], returns: "void" },
384
- ygNodeStyleSetHeight: { args: ["ptr", "f32"], returns: "void" },
385
- ygNodeStyleSetHeightPercent: { args: ["ptr", "f32"], returns: "void" },
386
- ygNodeStyleSetHeightAuto: { args: ["ptr"], returns: "void" },
387
- ygNodeStyleSetMinWidth: { args: ["ptr", "f32"], returns: "void" },
388
- ygNodeStyleSetMinWidthPercent: { args: ["ptr", "f32"], returns: "void" },
389
- ygNodeStyleSetMinHeight: { args: ["ptr", "f32"], returns: "void" },
390
- ygNodeStyleSetMinHeightPercent: { args: ["ptr", "f32"], returns: "void" },
391
- ygNodeStyleSetMaxWidth: { args: ["ptr", "f32"], returns: "void" },
392
- ygNodeStyleSetMaxWidthPercent: { args: ["ptr", "f32"], returns: "void" },
393
- ygNodeStyleSetMaxHeight: { args: ["ptr", "f32"], returns: "void" },
394
- ygNodeStyleSetMaxHeightPercent: { args: ["ptr", "f32"], returns: "void" },
395
- ygNodeStyleSetAspectRatio: { args: ["ptr", "f32"], returns: "void" },
396
- ygNodeStyleGetAspectRatio: { args: ["ptr"], returns: "f32" },
397
- ygNodeSetContext: { args: ["ptr", "ptr"], returns: "void" },
398
- ygNodeGetContext: { args: ["ptr"], returns: "ptr" },
399
- ygNodeSetMeasureFunc: { args: ["ptr", "ptr"], returns: "void" },
400
- ygNodeUnsetMeasureFunc: { args: ["ptr"], returns: "void" },
401
- ygNodeHasMeasureFunc: { args: ["ptr"], returns: "bool" },
402
- ygNodeSetBaselineFunc: { args: ["ptr", "ptr"], returns: "void" },
403
- ygNodeUnsetBaselineFunc: { args: ["ptr"], returns: "void" },
404
- ygNodeHasBaselineFunc: { args: ["ptr"], returns: "bool" },
405
- ygNodeSetDirtiedFunc: { args: ["ptr", "ptr"], returns: "void" },
406
- ygNodeUnsetDirtiedFunc: { args: ["ptr"], returns: "void" },
407
- ygNodeGetDirtiedFunc: { args: ["ptr"], returns: "ptr" },
408
- ygCreateSize: { args: ["f32", "f32"], returns: "u64" },
409
- ygStoreMeasureResult: { args: ["f32", "f32"], returns: "void" },
410
- ygStoreBaselineResult: { args: ["f32"], returns: "void" },
411
- ygNodeSetMeasureFuncTrampoline: { args: ["ptr", "ptr"], returns: "void" },
412
- ygNodeUnsetMeasureFuncTrampoline: { args: ["ptr"], returns: "void" },
413
- ygNodeSetBaselineFuncTrampoline: { args: ["ptr", "ptr"], returns: "void" },
414
- ygNodeUnsetBaselineFuncTrampoline: { args: ["ptr"], returns: "void" },
415
- ygNodeFreeCallbacks: { args: ["ptr"], returns: "void" },
416
- ygNodeStyleGetWidthPacked: { args: ["ptr"], returns: "u64" },
417
- ygNodeStyleGetHeightPacked: { args: ["ptr"], returns: "u64" },
418
- ygNodeStyleGetMinWidthPacked: { args: ["ptr"], returns: "u64" },
419
- ygNodeStyleGetMinHeightPacked: { args: ["ptr"], returns: "u64" },
420
- ygNodeStyleGetMaxWidthPacked: { args: ["ptr"], returns: "u64" },
421
- ygNodeStyleGetMaxHeightPacked: { args: ["ptr"], returns: "u64" },
422
- ygNodeStyleGetMarginPacked: { args: ["ptr", "i32"], returns: "u64" },
423
- ygNodeStyleGetPaddingPacked: { args: ["ptr", "i32"], returns: "u64" },
424
- ygNodeStyleGetPositionPacked: { args: ["ptr", "i32"], returns: "u64" },
425
- ygNodeStyleGetGapPacked: { args: ["ptr", "i32"], returns: "u64" },
426
- ygNodeStyleGetFlexBasisPacked: { args: ["ptr"], returns: "u64" }
51
+ Align: () => Align
427
52
  });
428
- var yg = lib.symbols;
429
53
 
430
- class Node {
431
- ptr;
432
- _freed = false;
433
- measureCallback = null;
434
- baselineCallback = null;
435
- dirtiedCallback = null;
436
- constructor(ptr) {
437
- this.ptr = ptr;
438
- }
439
- isFreed() {
440
- return this._freed;
441
- }
442
- static create(config) {
443
- const ptr = config ? yg.ygNodeNewWithConfig(config["ptr"]) : yg.ygNodeNew();
444
- if (!ptr)
445
- throw new Error("Failed to create node");
446
- return new Node(ptr);
447
- }
448
- static createDefault() {
449
- return Node.create();
450
- }
451
- static createWithConfig(config) {
452
- return Node.create(config);
453
- }
454
- static destroy(node) {
455
- node.free();
456
- }
457
- free() {
458
- if (this._freed)
459
- return;
460
- this.unsetMeasureFunc();
461
- this.unsetBaselineFunc();
462
- this.unsetDirtiedFunc();
463
- yg.ygNodeFree(this.ptr);
464
- this._freed = true;
465
- }
466
- freeRecursive() {
467
- if (this._freed)
468
- return;
469
- this.cleanupCallbacks();
470
- yg.ygNodeFreeRecursive(this.ptr);
471
- this._freed = true;
472
- }
473
- reset() {
474
- if (this._freed)
475
- return;
476
- this.cleanupCallbacks();
477
- yg.ygNodeReset(this.ptr);
478
- }
479
- cleanupCallbacks() {
480
- if (this.measureCallback) {
481
- this.measureCallback.close();
482
- this.measureCallback = null;
483
- }
484
- if (this.baselineCallback) {
485
- this.baselineCallback.close();
486
- this.baselineCallback = null;
487
- }
488
- if (this.dirtiedCallback) {
489
- this.dirtiedCallback.close();
490
- this.dirtiedCallback = null;
491
- }
492
- }
493
- clone() {
494
- if (this._freed)
495
- throw new Error("Cannot clone freed node");
496
- const ptr = yg.ygNodeClone(this.ptr);
497
- if (!ptr)
498
- throw new Error("Failed to clone node");
499
- return new Node(ptr);
500
- }
501
- copyStyle(node) {
502
- if (this._freed)
503
- return;
504
- yg.ygNodeCopyStyle(this.ptr, node.ptr);
505
- }
506
- setIsReferenceBaseline(isReferenceBaseline) {
507
- if (this._freed)
508
- return;
509
- yg.ygNodeSetIsReferenceBaseline(this.ptr, isReferenceBaseline);
510
- }
511
- isReferenceBaseline() {
512
- if (this._freed)
513
- return false;
514
- return yg.ygNodeIsReferenceBaseline(this.ptr);
515
- }
516
- setAlwaysFormsContainingBlock(alwaysFormsContainingBlock) {
517
- if (this._freed)
518
- return;
519
- yg.ygNodeSetAlwaysFormsContainingBlock(this.ptr, alwaysFormsContainingBlock);
520
- }
521
- insertChild(child, index) {
522
- if (this._freed)
523
- return;
524
- yg.ygNodeInsertChild(this.ptr, child.ptr, index);
525
- }
526
- removeChild(child) {
527
- if (this._freed)
528
- return;
529
- yg.ygNodeRemoveChild(this.ptr, child.ptr);
530
- }
531
- removeAllChildren() {
532
- if (this._freed)
533
- return;
534
- yg.ygNodeRemoveAllChildren(this.ptr);
535
- }
536
- getChild(index) {
537
- if (this._freed)
538
- return null;
539
- const ptr = yg.ygNodeGetChild(this.ptr, index);
540
- return ptr ? new Node(ptr) : null;
541
- }
542
- getChildCount() {
543
- if (this._freed)
544
- return 0;
545
- return Number(yg.ygNodeGetChildCount(this.ptr));
546
- }
547
- getParent() {
548
- if (this._freed)
549
- return null;
550
- const ptr = yg.ygNodeGetParent(this.ptr);
551
- return ptr ? new Node(ptr) : null;
552
- }
553
- calculateLayout(width, height, direction = Direction.LTR) {
554
- if (this._freed)
555
- return;
556
- const w = width === "auto" || width === undefined ? NaN : width;
557
- const h = height === "auto" || height === undefined ? NaN : height;
558
- yg.ygNodeCalculateLayout(this.ptr, w, h, direction);
559
- }
560
- hasNewLayout() {
561
- if (this._freed)
562
- return false;
563
- return yg.ygNodeGetHasNewLayout(this.ptr);
564
- }
565
- markLayoutSeen() {
566
- if (this._freed)
567
- return;
568
- yg.ygNodeSetHasNewLayout(this.ptr, false);
569
- }
570
- markDirty() {
571
- if (this._freed)
572
- return;
573
- yg.ygNodeMarkDirty(this.ptr);
574
- }
575
- isDirty() {
576
- if (this._freed)
577
- return true;
578
- return yg.ygNodeIsDirty(this.ptr);
579
- }
580
- getComputedLayout() {
581
- if (this._freed)
582
- return { left: 0, top: 0, right: 0, bottom: 0, width: 0, height: 0 };
583
- return {
584
- left: yg.ygNodeLayoutGetLeft(this.ptr),
585
- top: yg.ygNodeLayoutGetTop(this.ptr),
586
- right: yg.ygNodeLayoutGetRight(this.ptr),
587
- bottom: yg.ygNodeLayoutGetBottom(this.ptr),
588
- width: yg.ygNodeLayoutGetWidth(this.ptr),
589
- height: yg.ygNodeLayoutGetHeight(this.ptr)
590
- };
591
- }
592
- getComputedLeft() {
593
- if (this._freed)
594
- return 0;
595
- return yg.ygNodeLayoutGetLeft(this.ptr);
596
- }
597
- getComputedTop() {
598
- if (this._freed)
599
- return 0;
600
- return yg.ygNodeLayoutGetTop(this.ptr);
601
- }
602
- getComputedRight() {
603
- if (this._freed)
604
- return 0;
605
- return yg.ygNodeLayoutGetRight(this.ptr);
606
- }
607
- getComputedBottom() {
608
- if (this._freed)
609
- return 0;
610
- return yg.ygNodeLayoutGetBottom(this.ptr);
611
- }
612
- getComputedWidth() {
613
- if (this._freed)
614
- return 0;
615
- return yg.ygNodeLayoutGetWidth(this.ptr);
616
- }
617
- getComputedHeight() {
618
- if (this._freed)
619
- return 0;
620
- return yg.ygNodeLayoutGetHeight(this.ptr);
621
- }
622
- getComputedBorder(edge) {
623
- if (this._freed)
624
- return 0;
625
- return yg.ygNodeLayoutGetBorder(this.ptr, edge);
626
- }
627
- getComputedMargin(edge) {
628
- if (this._freed)
629
- return 0;
630
- return yg.ygNodeLayoutGetMargin(this.ptr, edge);
631
- }
632
- getComputedPadding(edge) {
633
- if (this._freed)
634
- return 0;
635
- return yg.ygNodeLayoutGetPadding(this.ptr, edge);
636
- }
637
- setDirection(direction) {
638
- if (this._freed)
639
- return;
640
- yg.ygNodeStyleSetDirection(this.ptr, direction);
641
- }
642
- getDirection() {
643
- if (this._freed)
644
- return Direction.Inherit;
645
- return yg.ygNodeStyleGetDirection(this.ptr);
646
- }
647
- setFlexDirection(flexDirection) {
648
- if (this._freed)
649
- return;
650
- yg.ygNodeStyleSetFlexDirection(this.ptr, flexDirection);
651
- }
652
- getFlexDirection() {
653
- if (this._freed)
654
- return FlexDirection.Column;
655
- return yg.ygNodeStyleGetFlexDirection(this.ptr);
656
- }
657
- setJustifyContent(justifyContent) {
658
- if (this._freed)
659
- return;
660
- yg.ygNodeStyleSetJustifyContent(this.ptr, justifyContent);
661
- }
662
- getJustifyContent() {
663
- if (this._freed)
664
- return Justify.FlexStart;
665
- return yg.ygNodeStyleGetJustifyContent(this.ptr);
666
- }
667
- setAlignContent(alignContent) {
668
- if (this._freed)
669
- return;
670
- yg.ygNodeStyleSetAlignContent(this.ptr, alignContent);
671
- }
672
- getAlignContent() {
673
- if (this._freed)
674
- return Align.Auto;
675
- return yg.ygNodeStyleGetAlignContent(this.ptr);
676
- }
677
- setAlignItems(alignItems) {
678
- if (this._freed)
679
- return;
680
- yg.ygNodeStyleSetAlignItems(this.ptr, alignItems);
681
- }
682
- getAlignItems() {
683
- if (this._freed)
684
- return Align.Auto;
685
- return yg.ygNodeStyleGetAlignItems(this.ptr);
686
- }
687
- setAlignSelf(alignSelf) {
688
- if (this._freed)
689
- return;
690
- yg.ygNodeStyleSetAlignSelf(this.ptr, alignSelf);
691
- }
692
- getAlignSelf() {
693
- if (this._freed)
694
- return Align.Auto;
695
- return yg.ygNodeStyleGetAlignSelf(this.ptr);
696
- }
697
- setPositionType(positionType) {
698
- if (this._freed)
699
- return;
700
- yg.ygNodeStyleSetPositionType(this.ptr, positionType);
701
- }
702
- getPositionType() {
703
- if (this._freed)
704
- return PositionType.Static;
705
- return yg.ygNodeStyleGetPositionType(this.ptr);
706
- }
707
- setFlexWrap(flexWrap) {
708
- if (this._freed)
709
- return;
710
- yg.ygNodeStyleSetFlexWrap(this.ptr, flexWrap);
711
- }
712
- getFlexWrap() {
713
- if (this._freed)
714
- return Wrap.NoWrap;
715
- return yg.ygNodeStyleGetFlexWrap(this.ptr);
716
- }
717
- setOverflow(overflow) {
718
- if (this._freed)
719
- return;
720
- yg.ygNodeStyleSetOverflow(this.ptr, overflow);
721
- }
722
- getOverflow() {
723
- if (this._freed)
724
- return Overflow.Visible;
725
- return yg.ygNodeStyleGetOverflow(this.ptr);
726
- }
727
- setDisplay(display) {
728
- if (this._freed)
729
- return;
730
- yg.ygNodeStyleSetDisplay(this.ptr, display);
731
- }
732
- getDisplay() {
733
- if (this._freed)
734
- return Display.Flex;
735
- return yg.ygNodeStyleGetDisplay(this.ptr);
736
- }
737
- setBoxSizing(boxSizing) {
738
- if (this._freed)
739
- return;
740
- yg.ygNodeStyleSetBoxSizing(this.ptr, boxSizing);
741
- }
742
- getBoxSizing() {
743
- if (this._freed)
744
- return BoxSizing.BorderBox;
745
- return yg.ygNodeStyleGetBoxSizing(this.ptr);
746
- }
747
- setFlex(flex) {
748
- if (this._freed)
749
- return;
750
- yg.ygNodeStyleSetFlex(this.ptr, flex);
751
- }
752
- getFlex() {
753
- if (this._freed)
754
- return NaN;
755
- return yg.ygNodeStyleGetFlex(this.ptr);
756
- }
757
- setFlexGrow(flexGrow) {
758
- if (this._freed)
759
- return;
760
- yg.ygNodeStyleSetFlexGrow(this.ptr, flexGrow);
761
- }
762
- getFlexGrow() {
763
- if (this._freed)
764
- return NaN;
765
- return yg.ygNodeStyleGetFlexGrow(this.ptr);
766
- }
767
- setFlexShrink(flexShrink) {
768
- if (this._freed)
769
- return;
770
- yg.ygNodeStyleSetFlexShrink(this.ptr, flexShrink);
771
- }
772
- getFlexShrink() {
773
- if (this._freed)
774
- return NaN;
775
- return yg.ygNodeStyleGetFlexShrink(this.ptr);
776
- }
777
- setFlexBasis(flexBasis) {
778
- if (this._freed)
779
- return;
780
- const { unit, asNumber } = parseValue(flexBasis);
781
- if (unit === Unit.Auto) {
782
- yg.ygNodeStyleSetFlexBasisAuto(this.ptr);
783
- } else if (unit === Unit.Percent) {
784
- yg.ygNodeStyleSetFlexBasisPercent(this.ptr, asNumber);
785
- } else if (unit === Unit.Point && asNumber !== undefined) {
786
- yg.ygNodeStyleSetFlexBasis(this.ptr, asNumber);
787
- }
788
- }
789
- setFlexBasisPercent(flexBasis) {
790
- if (this._freed)
791
- return;
792
- if (flexBasis !== undefined) {
793
- yg.ygNodeStyleSetFlexBasisPercent(this.ptr, flexBasis);
794
- }
795
- }
796
- setFlexBasisAuto() {
797
- if (this._freed)
798
- return;
799
- yg.ygNodeStyleSetFlexBasisAuto(this.ptr);
800
- }
801
- setPosition(edge, position) {
802
- if (this._freed)
803
- return;
804
- const { unit, asNumber } = parseValue(position);
805
- if (unit === Unit.Percent) {
806
- yg.ygNodeStyleSetPositionPercent(this.ptr, edge, asNumber);
807
- } else if (unit === Unit.Point && asNumber !== undefined) {
808
- yg.ygNodeStyleSetPosition(this.ptr, edge, asNumber);
809
- }
810
- }
811
- setPositionPercent(edge, position) {
812
- if (this._freed)
813
- return;
814
- if (position !== undefined) {
815
- yg.ygNodeStyleSetPositionPercent(this.ptr, edge, position);
816
- }
817
- }
818
- setPositionAuto(edge) {
819
- if (this._freed)
820
- return;
821
- yg.ygNodeStyleSetPositionAuto(this.ptr, edge);
822
- }
823
- setMargin(edge, margin) {
824
- if (this._freed)
825
- return;
826
- const { unit, asNumber } = parseValue(margin);
827
- if (unit === Unit.Auto) {
828
- yg.ygNodeStyleSetMarginAuto(this.ptr, edge);
829
- } else if (unit === Unit.Percent) {
830
- yg.ygNodeStyleSetMarginPercent(this.ptr, edge, asNumber);
831
- } else if (unit === Unit.Point && asNumber !== undefined) {
832
- yg.ygNodeStyleSetMargin(this.ptr, edge, asNumber);
833
- }
834
- }
835
- setMarginPercent(edge, margin) {
836
- if (this._freed)
837
- return;
838
- if (margin !== undefined) {
839
- yg.ygNodeStyleSetMarginPercent(this.ptr, edge, margin);
840
- }
841
- }
842
- setMarginAuto(edge) {
843
- if (this._freed)
844
- return;
845
- yg.ygNodeStyleSetMarginAuto(this.ptr, edge);
846
- }
847
- setPadding(edge, padding) {
848
- if (this._freed)
849
- return;
850
- const { unit, asNumber } = parseValue(padding);
851
- if (unit === Unit.Percent) {
852
- yg.ygNodeStyleSetPaddingPercent(this.ptr, edge, asNumber);
853
- } else if (unit === Unit.Point && asNumber !== undefined) {
854
- yg.ygNodeStyleSetPadding(this.ptr, edge, asNumber);
855
- }
856
- }
857
- setPaddingPercent(edge, padding) {
858
- if (this._freed)
859
- return;
860
- if (padding !== undefined) {
861
- yg.ygNodeStyleSetPaddingPercent(this.ptr, edge, padding);
862
- }
863
- }
864
- setBorder(edge, border) {
865
- if (this._freed)
866
- return;
867
- if (border !== undefined) {
868
- yg.ygNodeStyleSetBorder(this.ptr, edge, border);
869
- }
870
- }
871
- getBorder(edge) {
872
- if (this._freed)
873
- return NaN;
874
- return yg.ygNodeStyleGetBorder(this.ptr, edge);
875
- }
876
- setGap(gutter, gap) {
877
- if (this._freed)
878
- return;
879
- const { unit, asNumber } = parseValue(gap);
880
- if (unit === Unit.Percent) {
881
- yg.ygNodeStyleSetGapPercent(this.ptr, gutter, asNumber);
882
- } else if (unit === Unit.Point && asNumber !== undefined) {
883
- yg.ygNodeStyleSetGap(this.ptr, gutter, asNumber);
884
- }
885
- }
886
- setGapPercent(gutter, gap) {
887
- if (this._freed)
888
- return;
889
- if (gap !== undefined) {
890
- yg.ygNodeStyleSetGapPercent(this.ptr, gutter, gap);
891
- }
892
- }
893
- setWidth(width) {
894
- if (this._freed)
895
- return;
896
- const { unit, asNumber } = parseValue(width);
897
- if (unit === Unit.Auto) {
898
- yg.ygNodeStyleSetWidthAuto(this.ptr);
899
- } else if (unit === Unit.Percent) {
900
- yg.ygNodeStyleSetWidthPercent(this.ptr, asNumber);
901
- } else if (unit === Unit.Point && asNumber !== undefined) {
902
- yg.ygNodeStyleSetWidth(this.ptr, asNumber);
903
- }
904
- }
905
- setWidthPercent(width) {
906
- if (this._freed)
907
- return;
908
- if (width !== undefined) {
909
- yg.ygNodeStyleSetWidthPercent(this.ptr, width);
910
- }
911
- }
912
- setWidthAuto() {
913
- if (this._freed)
914
- return;
915
- yg.ygNodeStyleSetWidthAuto(this.ptr);
916
- }
917
- setHeight(height) {
918
- if (this._freed)
919
- return;
920
- const { unit, asNumber } = parseValue(height);
921
- if (unit === Unit.Auto) {
922
- yg.ygNodeStyleSetHeightAuto(this.ptr);
923
- } else if (unit === Unit.Percent) {
924
- yg.ygNodeStyleSetHeightPercent(this.ptr, asNumber);
925
- } else if (unit === Unit.Point && asNumber !== undefined) {
926
- yg.ygNodeStyleSetHeight(this.ptr, asNumber);
927
- }
928
- }
929
- setHeightPercent(height) {
930
- if (this._freed)
931
- return;
932
- if (height !== undefined) {
933
- yg.ygNodeStyleSetHeightPercent(this.ptr, height);
934
- }
935
- }
936
- setHeightAuto() {
937
- if (this._freed)
938
- return;
939
- yg.ygNodeStyleSetHeightAuto(this.ptr);
940
- }
941
- setMinWidth(minWidth) {
942
- if (this._freed)
943
- return;
944
- const { unit, asNumber } = parseValue(minWidth);
945
- if (unit === Unit.Percent) {
946
- yg.ygNodeStyleSetMinWidthPercent(this.ptr, asNumber);
947
- } else if (unit === Unit.Point && asNumber !== undefined) {
948
- yg.ygNodeStyleSetMinWidth(this.ptr, asNumber);
949
- }
950
- }
951
- setMinWidthPercent(minWidth) {
952
- if (this._freed)
953
- return;
954
- if (minWidth !== undefined) {
955
- yg.ygNodeStyleSetMinWidthPercent(this.ptr, minWidth);
956
- }
957
- }
958
- setMinHeight(minHeight) {
959
- if (this._freed)
960
- return;
961
- const { unit, asNumber } = parseValue(minHeight);
962
- if (unit === Unit.Percent) {
963
- yg.ygNodeStyleSetMinHeightPercent(this.ptr, asNumber);
964
- } else if (unit === Unit.Point && asNumber !== undefined) {
965
- yg.ygNodeStyleSetMinHeight(this.ptr, asNumber);
966
- }
967
- }
968
- setMinHeightPercent(minHeight) {
969
- if (this._freed)
970
- return;
971
- if (minHeight !== undefined) {
972
- yg.ygNodeStyleSetMinHeightPercent(this.ptr, minHeight);
54
+ // ../../node_modules/yoga-layout/dist/binaries/yoga-wasm-base64-esm.js
55
+ var loadYoga = (() => {
56
+ var _scriptDir = import.meta.url;
57
+ return function(loadYoga2) {
58
+ loadYoga2 = loadYoga2 || {};
59
+ var h;
60
+ h || (h = typeof loadYoga2 !== "undefined" ? loadYoga2 : {});
61
+ var aa, ca;
62
+ h.ready = new Promise(function(a, b) {
63
+ aa = a;
64
+ ca = b;
65
+ });
66
+ var da = Object.assign({}, h), q = "";
67
+ typeof document != "undefined" && document.currentScript && (q = document.currentScript.src);
68
+ _scriptDir && (q = _scriptDir);
69
+ q.indexOf("blob:") !== 0 ? q = q.substr(0, q.replace(/[?#].*/, "").lastIndexOf("/") + 1) : q = "";
70
+ var ea = h.print || console.log.bind(console), v = h.printErr || console.warn.bind(console);
71
+ Object.assign(h, da);
72
+ da = null;
73
+ var w;
74
+ h.wasmBinary && (w = h.wasmBinary);
75
+ var noExitRuntime = h.noExitRuntime || true;
76
+ typeof WebAssembly != "object" && x("no native wasm support detected");
77
+ var fa, ha = false;
78
+ function z(a, b, c) {
79
+ c = b + c;
80
+ for (var d = "";!(b >= c); ) {
81
+ var e = a[b++];
82
+ if (!e)
83
+ break;
84
+ if (e & 128) {
85
+ var f = a[b++] & 63;
86
+ if ((e & 224) == 192)
87
+ d += String.fromCharCode((e & 31) << 6 | f);
88
+ else {
89
+ var g = a[b++] & 63;
90
+ e = (e & 240) == 224 ? (e & 15) << 12 | f << 6 | g : (e & 7) << 18 | f << 12 | g << 6 | a[b++] & 63;
91
+ 65536 > e ? d += String.fromCharCode(e) : (e -= 65536, d += String.fromCharCode(55296 | e >> 10, 56320 | e & 1023));
92
+ }
93
+ } else
94
+ d += String.fromCharCode(e);
95
+ }
96
+ return d;
97
+ }
98
+ var ia, ja, A, C, ka, D, E, la, ma;
99
+ function na() {
100
+ var a = fa.buffer;
101
+ ia = a;
102
+ h.HEAP8 = ja = new Int8Array(a);
103
+ h.HEAP16 = C = new Int16Array(a);
104
+ h.HEAP32 = D = new Int32Array(a);
105
+ h.HEAPU8 = A = new Uint8Array(a);
106
+ h.HEAPU16 = ka = new Uint16Array(a);
107
+ h.HEAPU32 = E = new Uint32Array(a);
108
+ h.HEAPF32 = la = new Float32Array(a);
109
+ h.HEAPF64 = ma = new Float64Array(a);
110
+ }
111
+ var oa, pa = [], qa = [], ra = [];
112
+ function sa() {
113
+ var a = h.preRun.shift();
114
+ pa.unshift(a);
115
+ }
116
+ var F = 0, ta = null, G = null;
117
+ function x(a) {
118
+ if (h.onAbort)
119
+ h.onAbort(a);
120
+ a = "Aborted(" + a + ")";
121
+ v(a);
122
+ ha = true;
123
+ a = new WebAssembly.RuntimeError(a + ". Build with -sASSERTIONS for more info.");
124
+ ca(a);
125
+ throw a;
126
+ }
127
+ function ua(a) {
128
+ return a.startsWith("data:application/octet-stream;base64,");
129
+ }
130
+ var H;
131
+ H = "data:application/octet-stream;base64,AGFzbQEAAAABugM3YAF/AGACf38AYAF/AX9gA39/fwBgAn98AGACf38Bf2ADf39/AX9gBH9/f30BfWADf398AGAAAGAEf39/fwBgAX8BfGACf38BfGAFf39/f38Bf2AAAX9gA39/fwF9YAZ/f31/fX8AYAV/f39/fwBgAn9/AX1gBX9/f319AX1gAX8BfWADf35/AX5gB39/f39/f38AYAZ/f39/f38AYAR/f39/AX9gBn9/f319fQF9YAR/f31/AGADf399AX1gBn98f39/fwF/YAR/fHx/AGACf30AYAh/f39/f39/fwBgDX9/f39/f39/f39/f38AYAp/f39/f39/f39/AGAFf39/f38BfGAEfHx/fwF9YA1/fX1/f399fX9/f39/AX9gB39/f319f38AYAJ+fwF/YAN/fX0BfWABfAF8YAN/fHwAYAR/f319AGAHf39/fX19fQF9YA1/fX99f31/fX19fX1/AX9gC39/f39/f399fX19AX9gCH9/f39/f319AGAEf39+fgBgB39/f39/f38Bf2ACfH8BfGAFf398fH8AYAN/f38BfGAEf39/fABgA39/fQBgBn9/fX99fwF/ArUBHgFhAWEAHwFhAWIAAwFhAWMACQFhAWQAFgFhAWUAEQFhAWYAIAFhAWcAAAFhAWgAIQFhAWkAAwFhAWoAAAFhAWsAFwFhAWwACgFhAW0ABQFhAW4AAwFhAW8AAQFhAXAAFwFhAXEABgFhAXIAAAFhAXMAIgFhAXQACgFhAXUADQFhAXYAFgFhAXcAAgFhAXgAAwFhAXkAGAFhAXoAAgFhAUEAAQFhAUIAEQFhAUMAAQFhAUQAAAOiAqACAgMSBwcACRkDAAoRBgYKEwAPDxMBBiMTCgcHGgMUASQFJRQHAwMKCgMmAQYYDxobFAAKBw8KBwMDAgkCAAAFGwACBwIHBgIDAQMIDAABKAkHBQURACkZASoAAAIrLAIALQcHBy4HLwkFCgMCMA0xAgMJAgACAQYKAQIBBQEACQIFAQEABQAODQ0GFQIBHBUGAgkCEAAAAAUyDzMMBQYINAUCAwUODg41AgMCAgIDBgICNgIBDAwMAQsLCwsLCx0CAAIAAAABABABBQICAQMCEgMMCwEBAQEBAQsLAQICAwICAgICAgIDAgIICAEICAgEBAQEBAQEBAQABAQABAQEBAAEBAQBAQEICAEBAQEBAQEBCAgBAQEAAg4CAgUBAR4DBAcBcAHUAdQBBQcBAYACgIACBg0CfwFBkMQEC38BQQALByQIAUUCAAFGAG0BRwCwAQFIAK8BAUkAYQFKAQABSwAjAUwApgEJjQMBAEEBC9MBqwGqAaUB5QHiAZwB0AFazwHOAVlZWpsBmgGZAc0BzAHLAcoBWpgByQFZWVqbAZoBmQHIAccBxgGjAZcBpAGWAaMBvQKVAbwCxQG7Ajq6Ajq5ApQBuAI+twI+xAFqwwFqwgFqaWjBAcABvwGhAZcBtgK+AbUClgGhAbQCmAGzAjqxAjqwAr0BrwKuAq0CrAKrAqoCqAKnAqYCpQKkAqMCogKhArwBoAKfAp4CnQKcApsCmgKZApgClwKWApUClAKTApICkQKQAo8CjgKyAo0CjAKLAooCiAKHAqkChQI+hAK7AYMCggKBAoAC/gH9AfwB+QG6AfgBuQH3AfYB9QH0AfMB8gHxAYYC8AHvAbgB+wH6Ae4B7QG3AesBlQHqATrpAT7oAT7nAZQB0QE67AE+iQLmATrkAeMBOuEB4AHfAT7eAd0B3AG2AdsB2gHZAdgB1wHWAdUBtQHUAdMB0gH/AWloaWiPAZABsgGxAZEBhQGSAbQBswGRAa4BrQGsAakBqAGnAYUBCtj+A6ACMwEBfyAAQQEgABshAAJAA0AgABBhIgENAUGIxAAoAgAiAQRAIAERCQAMAQsLEAIACyABC+0BAgJ9A39DAADAfyEEAkACQAJAAkAgAkEHcSIGDgUCAQEBAAELQQMhBQwBCyAGQQFrQQJPDQEgAkHw/wNxQQR2IQcCfSACQQhxBEAgASAHEJ4BvgwBC0EAIAdB/w9xIgFrIAEgAsFBAEgbsgshAyAGQQFGBEAgAyADXA0BQwAAwH8gAyADQwAAgH9bIANDAACA/1tyIgEbIQQgAUUhBQwBCyADIANcDQBBAEECIANDAACAf1sgA0MAAID/W3IiARshBUMAAMB/IAMgARshBAsgACAFOgAEIAAgBDgCAA8LQfQNQakYQTpB+RYQCwALZwIBfQF/QwAAwH8hAgJAAkACQCABQQdxDgQCAAABAAtBxBJBqRhByQBBuhIQCwALIAFB8P8DcUEEdiEDIAFBCHEEQCAAIAMQngG+DwtBACADQf8PcSIAayAAIAHBQQBIG7IhAgsgAgt4AgF/AX0jAEEQayIEJAAgBEEIaiAAQQMgAkECR0EBdCABQf4BcUECRxsgAhAoQwAAwH8hBQJAAkACQCAELQAMQQFrDgIAAQILIAQqAgghBQwBCyAEKgIIIAOUQwrXIzyUIQULIARBEGokACAFQwAAAAAgBSAFWxsLeAIBfwF9IwBBEGsiBCQAIARBCGogAEEBIAJBAkZBAXQgAUH+AXFBAkcbIAIQKEMAAMB/IQUCQAJAAkAgBC0ADEEBaw4CAAECCyAEKgIIIQUMAQsgBCoCCCADlEMK1yM8lCEFCyAEQRBqJAAgBUMAAAAAIAUgBVsbC8wCAQV/IAAEQCAAQQRrIgEoAgAiBSEDIAEhAiAAQQhrKAIAIgAgAEF+cSIERwRAIAEgBGsiAigCBCIAIAIoAgg2AgggAigCCCAANgIEIAQgBWohAwsgASAFaiIEKAIAIgEgASAEakEEaygCAEcEQCAEKAIEIgAgBCgCCDYCCCAEKAIIIAA2AgQgASADaiEDCyACIAM2AgAgA0F8cSACakEEayADQQFyNgIAIAICfyACKAIAQQhrIgFB/wBNBEAgAUEDdkEBawwBCyABQR0gAWciAGt2QQRzIABBAnRrQe4AaiABQf8fTQ0AGkE/IAFBHiAAa3ZBAnMgAEEBdGtBxwBqIgAgAEE/TxsLIgFBBHQiAEHgMmo2AgQgAiAAQegyaiIAKAIANgIIIAAgAjYCACACKAIIIAI2AgRB6DpB6DopAwBCASABrYaENwMACwsOAEHYMigCABEJABBYAAunAQIBfQJ/IABBFGoiByACIAFBAkkiCCAEIAUQNSEGAkAgByACIAggBCAFEC0iBEMAAAAAYCADIARecQ0AIAZDAAAAAGBFBEAgAyEEDAELIAYgAyADIAZdGyEECyAAQRRqIgAgASACIAUQOCAAIAEgAhAwkiAAIAEgAiAFEDcgACABIAIQL5KSIgMgBCADIAReGyADIAQgBCAEXBsgBCAEWyADIANbcRsLvwEBA38gAC0AAEEgcUUEQAJAIAEhAwJAIAIgACIBKAIQIgAEfyAABSABEJ0BDQEgASgCEAsgASgCFCIFa0sEQCABIAMgAiABKAIkEQYAGgwCCwJAIAEoAlBBAEgNACACIQADQCAAIgRFDQEgAyAEQQFrIgBqLQAAQQpHDQALIAEgAyAEIAEoAiQRBgAgBEkNASADIARqIQMgAiAEayECIAEoAhQhBQsgBSADIAIQKxogASABKAIUIAJqNgIUCwsLCwYAIAAQIwtQAAJAAkACQAJAAkAgAg4EBAABAgMLIAAgASABQQxqEEMPCyAAIAEgAUEMaiADEEQPCyAAIAEgAUEMahBCDwsQJAALIAAgASABQQxqIAMQRQttAQF/IwBBgAJrIgUkACAEQYDABHEgAiADTHJFBEAgBSABQf8BcSACIANrIgNBgAIgA0GAAkkiARsQKhogAUUEQANAIAAgBUGAAhAmIANBgAJrIgNB/wFLDQALCyAAIAUgAxAmCyAFQYACaiQAC/ICAgJ/AX4CQCACRQ0AIAAgAToAACAAIAJqIgNBAWsgAToAACACQQNJDQAgACABOgACIAAgAToAASADQQNrIAE6AAAgA0ECayABOgAAIAJBB0kNACAAIAE6AAMgA0EEayABOgAAIAJBCUkNACAAQQAgAGtBA3EiBGoiAyABQf8BcUGBgoQIbCIBNgIAIAMgAiAEa0F8cSIEaiICQQRrIAE2AgAgBEEJSQ0AIAMgATYCCCADIAE2AgQgAkEIayABNgIAIAJBDGsgATYCACAEQRlJDQAgAyABNgIYIAMgATYCFCADIAE2AhAgAyABNgIMIAJBEGsgATYCACACQRRrIAE2AgAgAkEYayABNgIAIAJBHGsgATYCACAEIANBBHFBGHIiBGsiAkEgSQ0AIAGtQoGAgIAQfiEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkEgayICQR9LDQALCyAAC4AEAQN/IAJBgARPBEAgACABIAIQFyAADwsgACACaiEDAkAgACABc0EDcUUEQAJAIABBA3FFBEAgACECDAELIAJFBEAgACECDAELIAAhAgNAIAIgAS0AADoAACABQQFqIQEgAkEBaiICQQNxRQ0BIAIgA0kNAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgACADQQRrIgRLBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAtIAQF/IwBBEGsiBCQAIAQgAzYCDAJAIABFBEBBAEEAIAEgAiAEKAIMEHEMAQsgACgC9AMgACABIAIgBCgCDBBxCyAEQRBqJAALkwECAX0BfyMAQRBrIgYkACAGQQhqIABB6ABqIAAgAkEBdGovAWIQH0MAAMB/IQUCQAJAAkAgBi0ADEEBaw4CAAECCyAGKgIIIQUMAQsgBioCCCADlEMK1yM8lCEFCyAALQADQRB0QYCAwABxBEAgBSAAIAEgAiAEEFQiA0MAAAAAIAMgA1sbkiEFCyAGQRBqJAAgBQu1AQECfyAAKAIEQQFqIgEgACgCACICKALsAyACKALoAyICa0ECdU8EQANAIAAoAggiAUUEQCAAQQA2AgggAEIANwIADwsgACABKAIENgIAIAAgASgCCDYCBCAAIAEoAgA2AgggARAjIAAoAgRBAWoiASAAKAIAIgIoAuwDIAIoAugDIgJrQQJ1Tw0ACwsgACABNgIEIAIgAUECdGooAgAtABdBEHRBgIAwcUGAgCBGBEAgABB9CwuBAQIBfwF9IwBBEGsiAyQAIANBCGogAEEDIAJBAkdBAXQgAUH+AXFBAkcbIAIQU0MAAMB/IQQCQAJAAkAgAy0ADEEBaw4CAAECCyADKgIIIQQMAQsgAyoCCEMAAAAAlEMK1yM8lCEECyADQRBqJAAgBEMAAAAAl0MAAAAAIAQgBFsbC4EBAgF/AX0jAEEQayIDJAAgA0EIaiAAQQEgAkECRkEBdCABQf4BcUECRxsgAhBTQwAAwH8hBAJAAkACQCADLQAMQQFrDgIAAQILIAMqAgghBAwBCyADKgIIQwAAAACUQwrXIzyUIQQLIANBEGokACAEQwAAAACXQwAAAAAgBCAEWxsLeAICfQF/IAAgAkEDdGoiByoC+AMhBkMAAMB/IQUCQAJAAkAgBy0A/ANBAWsOAgABAgsgBiEFDAELIAYgA5RDCtcjPJQhBQsgAC0AF0EQdEGAgMAAcQR9IAUgAEEUaiABIAIgBBBUIgNDAAAAACADIANbG5IFIAULC1EBAX8CQCABKALoAyICIAEoAuwDRwRAIABCADcCBCAAIAE2AgAgAigCAC0AF0EQdEGAgDBxQYCAIEcNASAAEH0PCyAAQgA3AgAgAEEANgIICwvoAgECfwJAIAAgAUYNACABIAAgAmoiBGtBACACQQF0a00EQCAAIAEgAhArDwsgACABc0EDcSEDAkACQCAAIAFJBEAgAwRAIAAhAwwDCyAAQQNxRQRAIAAhAwwCCyAAIQMDQCACRQ0EIAMgAS0AADoAACABQQFqIQEgAkEBayECIANBAWoiA0EDcQ0ACwwBCwJAIAMNACAEQQNxBEADQCACRQ0FIAAgAkEBayICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQQRrIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkEBayICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AA0AgAyABKAIANgIAIAFBBGohASADQQRqIQMgAkEEayICQQNLDQALCyACRQ0AA0AgAyABLQAAOgAAIANBAWohAyABQQFqIQEgAkEBayICDQALCyAAC5QCAgF8AX8CQCAAIAGiIgAQbCIERAAAAAAAAPA/oCAEIAREAAAAAAAAAABjGyIEIARiIgUgBJlELUMc6+I2Gj9jRXJFBEAgACAEoSEADAELIAUgBEQAAAAAAADwv6CZRC1DHOviNho/Y0VyRQRAIAAgBKFEAAAAAAAA8D+gIQAMAQsgACAEoSEAIAIEQCAARAAAAAAAAPA/oCEADAELIAMNACAAAnxEAAAAAAAAAAAgBQ0AGkQAAAAAAADwPyAERAAAAAAAAOA/ZA0AGkQAAAAAAADwP0QAAAAAAAAAACAERAAAAAAAAOC/oJlELUMc6+I2Gj9jGwugIQALIAAgAGIgASABYnIEQEMAAMB/DwsgACABo7YLkwECAX0BfyMAQRBrIgYkACAGQQhqIABB6ABqIAAgAkEBdGovAV4QH0MAAMB/IQUCQAJAAkAgBi0ADEEBaw4CAAECCyAGKgIIIQUMAQsgBioCCCADlEMK1yM8lCEFCyAALQADQRB0QYCAwABxBEAgBSAAIAEgAiAEEFQiA0MAAAAAIAMgA1sbkiEFCyAGQRBqJAAgBQtQAAJAAkACQAJAAkAgAg4EBAABAgMLIAAgASABQR5qEEMPCyAAIAEgAUEeaiADEEQPCyAAIAEgAUEeahBCDwsQJAALIAAgASABQR5qIAMQRQt+AgF/AX0jAEEQayIEJAAgBEEIaiAAQQMgAkECR0EBdCABQf4BcUECRxsgAhBQQwAAwH8hBQJAAkACQCAELQAMQQFrDgIAAQILIAQqAgghBQwBCyAEKgIIIAOUQwrXIzyUIQULIARBEGokACAFQwAAAACXQwAAAAAgBSAFWxsLfgIBfwF9IwBBEGsiBCQAIARBCGogAEEBIAJBAkZBAXQgAUH+AXFBAkcbIAIQUEMAAMB/IQUCQAJAAkAgBC0ADEEBaw4CAAECCyAEKgIIIQUMAQsgBCoCCCADlEMK1yM8lCEFCyAEQRBqJAAgBUMAAAAAl0MAAAAAIAUgBVsbC08AAkACQAJAIANB/wFxIgMOBAACAgECCyABIAEvAABB+P8DcTsAAA8LIAEgAS8AAEH4/wNxQQRyOwAADwsgACABIAJBAUECIANBAUYbEEwLNwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQAgASACIANBAXEEfyABKAIAIABqKAIABSAACxEBAAtiAgJ9An8CQCAAKALkA0UNACAAQfwAaiIDIABBGmoiBC8BABAgIgIgAlwEQCADIABBGGoiBC8BABAgIgIgAlwNASADIAAvARgQIEMAAAAAXkUNAQsgAyAELwEAECAhAQsgAQtfAQN/IAEEQEEMEB4iAyABKQIENwIEIAMhAiABKAIAIgEEQCADIQQDQEEMEB4iAiABKQIENwIEIAQgAjYCACACIQQgASgCACIBDQALCyACIAAoAgA2AgAgACADNgIACwvXawMtfxx9AX4CfwJAIAAtAABBBHEEQCAAKAKgASAMRw0BCyAAKAKkASAAKAL0AygCDEcNAEEAIAAtAKgBIANGDQEaCyAAQoCAgPyLgIDAv383AoADIABCgYCAgBA3AvgCIABCgICA/IuAgMC/fzcC8AIgAEEANgKsAUEBCyErAkACQAJAAkAgACgCCARAIABBFGoiDkECQQEgBhAiIT4gDkECQQEgBhAhITwgDkEAQQEgBhAiITsgDkEAQQEgBhAhIUAgBCABIAUgAiAAKAL4AiAAQfACaiIOKgIAIAAoAvwCIAAqAvQCIAAqAoADIAAqAoQDID4gPJIiPiA7IECSIjwgACgC9AMiEBB7DQEgACgCrAEiEUUNAyAAQbABaiETA0AgBCABIAUgAiATIB1BGGxqIg4oAgggDioCACAOKAIMIA4qAgQgDioCECAOKgIUID4gPCAQEHsNAiAdQQFqIh0gEUcNAAsMAgsgCEUEQCAAKAKsASITRQ0CIABBsAFqIRADQAJAAkAgECAdQRhsIhFqIg4qAgAiPiA+XCABIAFcckUEQCA+IAGTi0MXt9E4XQ0BDAILIAEgAVsgPiA+W3INAQsCQCAQIBFqIhEqAgQiPiA+XCACIAJcckUEQCA+IAKTi0MXt9E4XQ0BDAILIAIgAlsgPiA+W3INAQsgESgCCCAERw0AIBEoAgwgBUYNAwsgEyAdQQFqIh1HDQALDAILAkAgAEHwAmoiDioCACI+ID5cIAEgAVxyRQRAID4gAZOLQxe30ThdDQEMBAsgASABWyA+ID5bcg0DCyAOQQAgACgC/AIgBUYbQQAgACgC+AIgBEYbQQACfyACIAJcIg4gACoC9AIiPiA+XHJFBEAgPiACk4tDF7fROF0MAQtBACA+ID5bDQAaIA4LGyEOCyAORSArcgRAIA4hHQwCCyAAIA4qAhA4ApQDIAAgDioCFDgCmAMgCkEMQRAgCBtqIgMgAygCAEEBajYCACAOIR0MAgtBACEdCyAGIUAgByFHIAtBAWohIiMAQaABayINJAACQAJAIARBAUYgASABW3JFBEAgDUGqCzYCICAAQQVB2CUgDUEgahAsDAELIAVBAUYgAiACW3JFBEAgDUHZCjYCECAAQQVB2CUgDUEQahAsDAELIApBAEEEIAgbaiILIAsoAgBBAWo2AgAgACAALQCIA0H8AXEgAC0AFEEDcSILIANBASADGyIsIAsbIg9BA3FyOgCIAyAAQawDaiIQIA9BAUdBA3QiC2ogAEEUaiIUQQNBAiAPQQJGGyIRIA8gQBAiIgY4AgAgECAPQQFGQQN0Ig5qIBQgESAPIEAQISIHOAIAIAAgFEEAIA8gQBAiIjw4ArADIAAgFEEAIA8gQBAhIjs4ArgDIABBvANqIhAgC2ogFCARIA8QMDgCACAOIBBqIBQgESAPEC84AgAgACAUQQAgDxAwOALAAyAAIBRBACAPEC84AsgDIAsgAEHMA2oiC2ogFCARIA8gQBA4OAIAIAsgDmogFCARIA8gQBA3OAIAIAAgFEEAIA8gQBA4OALQAyAAIBRBACAPIEAQNyI6OALYAyAGIAeSIT4gPCA7kiE8AkACQCAAKAIIIgsEQEMAAMB/IAEgPpMgBEEBRhshBkMAAMB/IAIgPJMgBUEBRhshPiAAAn0gBCAFckUEQCAAIABBAiAPIAYgQCBAECU4ApQDIABBACAPID4gRyBAECUMAQsgBEEDTyAFQQNPcg0EIA1BiAFqIAAgBiAGIAAqAswDIAAqAtQDkiAAKgK8A5IgACoCxAOSIjyTIgdDAAAAACAHQwAAAABeGyAGIAZcG0GBgAggBEEDdEH4//8HcXZB/wFxID4gPiAAKgLQAyA6kiAAKgLAA5IgACoCyAOSIjuTIgdDAAAAACAHQwAAAABeGyA+ID5cG0GBgAggBUEDdEH4//8HcXZB/wFxIAsREAAgDSoCjAEiPUMAAAAAYCANKgKIASIHQwAAAABgcUUEQCANID27OQMIIA0gB7s5AwAgAEEBQdwdIA0QLCANKgKMASIHQwAAAAAgB0MAAAAAXhshPSANKgKIASIHQwAAAAAgB0MAAAAAXhshBwsgCiAKKAIUQQFqNgIUIAogCUECdGoiCSAJKAIYQQFqNgIYIAAgAEECIA8gPCAHkiAGIARBAWtBAkkbIEAgQBAlOAKUAyAAQQAgDyA7ID2SID4gBUEBa0ECSRsgRyBAECULOAKYAwwBCwJAIAAoAuADRQRAIAAoAuwDIAAoAugDa0ECdSELDAELIA1BiAFqIAAQMgJAIA0oAogBRQRAQQAhCyANKAKMAUUNAQsgDUGAAWohEEEAIQsDQCANQQA2AoABIA0gDSkDiAE3A3ggECANKAKQARA8IA1BiAFqEC4gDSgCgAEiCQRAA0AgCSgCACEOIAkQJyAOIgkNAAsLIAtBAWohCyANQQA2AoABIA0oAowBIA0oAogBcg0ACwsgDSgCkAEiCUUNAANAIAkoAgAhDiAJECcgDiIJDQALCyALRQRAIAAgAEECIA8gBEEBa0EBSwR9IAEgPpMFIAAqAswDIAAqAtQDkiAAKgK8A5IgACoCxAOSCyBAIEAQJTgClAMgACAAQQAgDyAFQQFrQQFLBH0gAiA8kwUgACoC0AMgACoC2AOSIAAqAsADkiAAKgLIA5ILIEcgQBAlOAKYAwwBCwJAIAgNACAFQQJGIAIgPJMiBiAGW3EgBkMAAAAAX3EgBCAFckUgBEECRiABID6TIgdDAAAAAF9xcnJFDQAgACAAQQIgD0MAAAAAQwAAAAAgByAHQwAAAABdGyAHIARBAkYbIAcgB1wbIEAgQBAlOAKUAyAAIABBACAPQwAAAABDAAAAACAGIAZDAAAAAF0bIAYgBUECRhsgBiAGXBsgRyBAECU4ApgDDAELIAAQTyAAIAAtAIgDQfsBcToAiAMgABBeQQMhEyAALQAUQQJ2QQNxIQkCQAJAIA9BAkcNAAJAIAlBAmsOAgIAAQtBAiETDAELIAkhEwsgAC8AFSEnIBQgEyAPIEAQOCEGIBQgEyAPEDAhByAUIBMgDyBAEDchOyAUIBMgDxAvITpBACEQIBQgEUEAIBNBAkkbIhYgDyBAEDghPyAUIBYgDxAwIT0gFCAWIA8gQBA3IUEgFCAWIA8QLyFEIBQgFiAPIEAQYCFCIBQgFiAPEEshQyAAIA9BACABID6TIlAgBiAHkiA7IDqSkiJKID8gPZIgQSBEkpIiRiATQQFLIhkbIEAgQBB6ITsgACAPQQEgAiA8kyJRIEYgSiAZGyBHIEAQeiFFAkACQCAEIAUgGRsiHA0AIA1BiAFqIAAQMgJAAkAgDSgCiAEiDiANKAKMASIJckUNAANAIA4oAuwDIA4oAugDIg5rQQJ1IAlNDQQCQCAOIAlBAnRqKAIAIgkQeUUNACAQDQIgCRA7IgYgBlsgBotDF7fROF1xDQIgCRBAIgYgBlwEQCAJIRAMAQsgCSEQIAaLQxe30ThdDQILIA1BiAFqEC4gDSgCjAEiCSANKAKIASIOcg0ACwwBC0EAIRALIA0oApABIglFDQADQCAJKAIAIQ4gCRAnIA4iCQ0ACwsgDUGIAWogABAyIA0oAowBIQkCQCANKAKIASIORQRAQwAAAAAhPSAJRQ0BCyBFIEVcIiMgBUEAR3IhKCA7IDtcIiQgBEEAR3IhKUMAAAAAIT0DQCAOKALsAyAOKALoAyIOa0ECdSAJTQ0CIA4gCUECdGooAgAiDhB4AkAgDi8AFSAOLQAXQRB0ciIJQYCAMHFBgIAQRgRAIA4QdyAOIA4tAAAiCUEBciIOQfsBcSAOIAlBBHEbOgAADAELIAgEfyAOIA4tABRBA3EiCSAPIAkbIDsgRRB2IA4vABUgDi0AF0EQdHIFIAkLQYDgAHFBgMAARg0AIA5BFGohEQJAIA4gEEYEQCAQQQA2ApwBIBAgDDYCmAFDAAAAACEHDAELIBQtAABBAnZBA3EhCQJAAkAgD0ECRw0AQQMhEgJAIAlBAmsOAgIAAQtBAiESDAELIAkhEgsgDUGAgID+BzYCaCANQYCAgP4HNgJQIA1B+ABqIA5B/ABqIhcgDi8BHhAfIDsgRSASQQFLIh4bIT4CQAJAAkACQCANLQB8IgkOBAABAQABCwJAIBcgDi8BGBAgIgYgBlwNACAXIA4vARgQIEMAAAAAXkUNACAOKAL0Ay0ACEEBcSIJDQBDAADAf0MAAAAAIAkbIQcMAgtDAADAfyEGDAILIA0qAnghB0MAAMB/IQYCQCAJQQFrDgIBAAILIAcgPpRDCtcjPJQhBgwBCyAHIQYLIA4tABdBEHRBgIDAAHEEQCAGIBEgD0GBAiASQQN0dkEBcSA7EFQiBkMAAAAAIAYgBlsbkiEGCyAOKgL4AyEHQQAhH0EAIRgCQAJAAkAgDi0A/ANBAWsOAgEAAgsgOyAHlEMK1yM8lCEHCyAHIAdcDQAgB0MAAAAAYCEYCyAOKgKABCEHAkACQAJAIA4tAIQEQQFrDgIBAAILIEUgB5RDCtcjPJQhBwsgByAHXA0AIAdDAAAAAGAhHwsCQCAOAn0gBiAGXCIJID4gPlxyRQRAIA4qApwBIgcgB1sEQCAOKAL0Ay0AEEEBcUUNAyAOKAKYASAMRg0DCyARIBIgDyA7EDggESASIA8QMJIgESASIA8gOxA3IBEgEiAPEC+SkiIHIAYgBiAHXRsgByAGIAkbIAYgBlsgByAHW3EbDAELIBggHnEEQCARQQIgDyA7EDggEUECIA8QMJIgEUECIA8gOxA3IBFBAiAPEC+SkiIHIA4gD0EAIDsgOxAxIgYgBiAHXRsgByAGIAYgBlwbIAYgBlsgByAHW3EbDAELIB4gH0VyRQRAIBFBACAPIDsQOCARQQAgDxAwkiARQQAgDyA7EDcgEUEAIA8QL5KSIgcgDiAPQQEgRSA7EDEiBiAGIAddGyAHIAYgBiAGXBsgBiAGWyAHIAdbcRsMAQtBASEaIA1BATYCZCANQQE2AnggEUECQQEgOxAiIBFBAkEBIDsQIZIhPiARQQBBASA7ECIhPCARQQBBASA7ECEhOkMAAMB/IQdBASEVQwAAwH8hBiAYBEAgDiAPQQAgOyA7EDEhBiANQQA2AnggDSA+IAaSIgY4AmhBACEVCyA8IDqSITwgHwRAIA4gD0EBIEUgOxAxIQcgDUEANgJkIA0gPCAHkiIHOAJQQQAhGgsCQAJAAkAgAC0AF0EQdEGAgAxxQYCACEYiCSASQQJJIiBxRQRAIAkgJHINAiAGIAZcDQEMAgsgJCAGIAZbcg0CC0ECIRUgDUECNgJ4IA0gOzgCaCA7IQYLAkAgIEEBIAkbBEAgCSAjcg0CIAcgB1wNAQwCCyAjIAcgB1tyDQELQQIhGiANQQI2AmQgDSBFOAJQIEUhBwsCQCAXIA4vAXoQICI6IDpcDQACfyAVIB5yRQRAIBcgDi8BehAgIQcgDUEANgJkIA0gPCAGID6TIAeVkjgCUEEADAELIBogIHINASAXIA4vAXoQICEGIA1BADYCeCANIAYgByA8k5QgPpI4AmhBAAshGkEAIRULIA4vABZBD3EiCUUEQCAALQAVQQR2IQkLAkAgFUUgCUEFRiAeciAYIClyIAlBBEdycnINACANQQA2AnggDSA7OAJoIBcgDi8BehAgIgYgBlwNAEEAIRogFyAOLwF6ECAhBiANQQA2AmQgDSA7ID6TIAaVOAJQCyAOLwAWQQ9xIhhFBEAgAC0AFUEEdiEYCwJAICAgKHIgH3IgGEEFRnIgGkUgGEEER3JyDQAgDUEANgJkIA0gRTgCUCAXIA4vAXoQICIGIAZcDQAgFyAOLwF6ECAhBiANQQA2AnggDSAGIEUgPJOUOAJoCyAOIA9BAiA7IDsgDUH4AGogDUHoAGoQPyAOIA9BACBFIDsgDUHkAGogDUHQAGoQPyAOIA0qAmggDSoCUCAPIA0oAnggDSgCZCA7IEVBAEEFIAogIiAMED0aIA4gEkECdEH8JWooAgBBAnRqKgKUAyEGIBEgEiAPIDsQOCARIBIgDxAwkiARIBIgDyA7EDcgESASIA8QL5KSIgcgBiAGIAddGyAHIAYgBiAGXBsgBiAGWyAHIAdbcRsLIgc4ApwBCyAOIAw2ApgBCyA9IAcgESATQQEgOxAiIBEgE0EBIDsQIZKSkiE9CyANQYgBahAuIA0oAowBIgkgDSgCiAEiDnINAAsLIA0oApABIgkEQANAIAkoAgAhDiAJECcgDiIJDQALCyA7IEUgGRshByA9QwAAAACSIQYgC0ECTwRAIBQgEyAHEE0gC0EBa7OUIAaSIQYLIEIgQ5IhPiAFIAQgGRshGiBHIEAgGRshTSBAIEcgGRshSSANQdAAaiAAEDJBACAcIAYgB14iCxsgHCAcQQJGGyAcICdBgIADcSIfGyEeIBQgFiBFIDsgGRsiRBBNIU8gDSgCVCIRIA0oAlAiCXIEQEEBQQIgRCBEXCIpGyEtIAtFIBxBAUZyIS4gE0ECSSEZIABB8gBqIS8gAEH8AGohMCATQQJ0IgtB7CVqITEgC0HcJWohMiAWQQJ0Ig5B7CVqIRwgDkHcJWohICALQfwlaiEkIA5B/CVqISMgGkEARyIzIAhyITQgGkUiNSAIQQFzcSE2IBogH3JFITcgDUHwAGohOCANQYABaiEnQYECIBNBA3R2Qf8BcSEoIBpBAWtBAkkhOQNAIA1BADYCgAEgDUIANwN4AkAgACgC7AMiCyAAKALoAyIORg0AIAsgDmsiC0EASA0DIA1BiAFqIAtBAnVBACAnEEohECANKAKMASANKAJ8IA0oAngiC2siDmsgCyAOEDMhDiANIA0oAngiCzYCjAEgDSAONgJ4IA0pA5ABIVYgDSANKAJ8Ig42ApABIA0oAoABIRIgDSBWNwJ8IA0gEjYClAEgECALNgIAIAsgDkcEQCANIA4gCyAOa0EDakF8cWo2ApABCyALRQ0AIAsQJwsgFC0AACIOQQJ2QQNxIQsCQAJAIA5BA3EiDiAsIA4bIhJBAkcNAEEDIRACQCALQQJrDgICAAELQQIhEAwBCyALIRALIAAvABUhCyAUIBAgBxBNIT8CQCAJIBFyRQRAQwAAAAAhQ0EAIRFDAAAAACFCQwAAAAAhQUEAIRUMAQsgC0GAgANxISUgEEECSSEYIBBBAnQiC0HsJWohISALQdwlaiEqQQAhFUMAAAAAIUEgESEOQwAAAAAhQkMAAAAAIUNBACEXQwAAAAAhPQNAIAkoAuwDIAkoAugDIglrQQJ1IA5NDQQCQCAJIA5BAnRqKAIAIgkvABUgCS0AF0EQdHIiC0GAgDBxQYCAEEYgC0GA4ABxQYDAAEZyDQAgDUGIAWoiESAJQRRqIgsgKigCACADECggDS0AjAEhJiARIAsgISgCACADECggDS0AjAEhESAJIBs2AtwDIBUgJkEDRmohFSARQQNGIREgCyAQQQEgOxAiIUsgCyAQQQEgOxAhIU4gCSAXIAkgFxsiF0YhJiAJKgKcASE8IAsgEiAYIEkgQBA1IToCQCALIBIgGCBJIEAQLSIGQwAAAABgIAYgPF1xDQAgOkMAAAAAYEUEQCA8IQYMAQsgOiA8IDogPF4bIQYLIBEgFWohFQJAICVFQwAAAAAgPyAmGyI8IEsgTpIiOiA9IAaSkpIgB15Fcg0AIA0oAnggDSgCfEYNACAOIREMAwsgCRB5BEAgQiAJEDuSIUIgQyAJEEAgCSoCnAGUkyFDCyBBIDwgOiAGkpIiBpIhQSA9IAaSIT0gDSgCfCILIA0oAoABRwRAIAsgCTYCACANIAtBBGo2AnwMAQsgCyANKAJ4ayILQQJ1IhFBAWoiDkGAgICABE8NBSANQYgBakH/////AyALQQF1IiYgDiAOICZJGyALQfz///8HTxsgESAnEEohDiANKAKQASAJNgIAIA0gDSgCkAFBBGo2ApABIA0oAowBIA0oAnwgDSgCeCIJayILayAJIAsQMyELIA0gDSgCeCIJNgKMASANIAs2AnggDSkDkAEhViANIA0oAnwiCzYCkAEgDSgCgAEhESANIFY3AnwgDSARNgKUASAOIAk2AgAgCSALRwRAIA0gCyAJIAtrQQNqQXxxajYCkAELIAlFDQAgCRAnCyANQQA2AnAgDSANKQNQNwNoIDggDSgCWBA8IA1B0ABqEC4gDSgCcCIJBEADQCAJKAIAIQsgCRAnIAsiCQ0ACwtBACERIA1BADYCcCANKAJUIg4gDSgCUCIJcg0ACwtDAACAPyBCIEJDAACAP10bIEIgQkMAAAAAXhshPCANKAJ8IRcgDSgCeCEJAn0CQAJ9AkACQAJAIB5FDQAgFCAPQQAgQCBAEDUhBiAUIA9BACBAIEAQLSE6IBQgD0EBIEcgQBA1IT8gFCAPQQEgRyBAEC0hPSAGID8gE0EBSyILGyBKkyIGIAZbIAYgQV5xDQEgOiA9IAsbIEqTIgYgBlsgBiBBXXENASAAKAL0Ay0AFEEBcQ0AIEEgPEMAAAAAWw0DGiAAEDsiBiAGXA0CIEEgABA7QwAAAABbDQMaDAILIAchBgsgBiAGWw0CIAYhBwsgBwshBiBBjEMAAAAAIEFDAAAAAF0bIT8gBgwBCyAGIEGTIT8gBgshByA2RQRAAkAgCSAXRgRAQwAAAAAhQQwBC0MAAIA/IEMgQ0MAAIA/XRsgQyBDQwAAAABeGyE9QwAAAAAhQSAJIQ4DQCAOKAIAIgsqApwBITogC0EUaiIQIA8gGSBJIEAQNSFCAkAgECAPIBkgSSBAEC0iBkMAAAAAYCAGIDpdcQ0AIEJDAAAAAGBFBEAgOiEGDAELIEIgOiA6IEJdGyEGCwJAID9DAAAAAF0EQCAGIAsQQIyUIjpDAAAAAF4gOkMAAAAAXXJFDQEgCyATIA8gPyA9lSA6lCAGkiJCIAcgOxAlITogQiBCXCA6IDpcciA6IEJbcg0BIEEgOiAGk5IhQSALEEAgCyoCnAGUID2SIT0MAQsgP0MAAAAAXkUNACALEDsiQkMAAAAAXiBCQwAAAABdckUNACALIBMgDyA/IDyVIEKUIAaSIkMgByA7ECUhOiBDIENcIDogOlxyIDogQ1tyDQAgPCBCkyE8IEEgOiAGk5IhQQsgDkEEaiIOIBdHDQALID8gQZMiQiA9lSFLIEIgPJUhTiAALwAVQYCAA3FFIC5yISVDAAAAACFBIAkhCwNAIAsoAgAiDioCnAEhPCAOQRRqIhggDyAZIEkgQBA1IToCQCAYIA8gGSBJIEAQLSIGQwAAAABgIAYgPF1xDQAgOkMAAAAAYEUEQCA8IQYMAQsgOiA8IDogPF4bIQYLAn0gDiATIA8CfSBCQwAAAABdBEAgBiAGIA4QQIyUIjxDAAAAAFsNAhogBiA8kiA9QwAAAABbDQEaIEsgPJQgBpIMAQsgBiBCQwAAAABeRQ0BGiAGIA4QOyI8QwAAAABeIDxDAAAAAF1yRQ0BGiBOIDyUIAaSCyAHIDsQJQshQyAYIBNBASA7ECIhPCAYIBNBASA7ECEhOiAYIBZBASA7ECIhUiAYIBZBASA7ECEhUyANIEMgPCA6kiJUkiJVOAJoIA1BADYCYCBSIFOSITwCQCAOQfwAaiIQIA4vAXoQICI6IDpbBEAgECAOLwF6ECAhOiANQQA2AmQgDSA8IFUgVJMiPCA6lCA8IDqVIBkbkjgCeAwBCyAjKAIAIRACQCApDQAgDiAQQQN0aiIhKgL4AyE6QQAhEgJAAkACQCAhLQD8A0EBaw4CAQACCyBEIDqUQwrXIzyUIToLIDogOlwNACA6QwAAAABgIRILICUgNSASQQFzcXFFDQAgDi8AFkEPcSISBH8gEgUgAC0AFUEEdgtBBEcNACANQYgBaiAYICAoAgAgDxAoIA0tAIwBQQNGDQAgDUGIAWogGCAcKAIAIA8QKCANLQCMAUEDRg0AIA1BADYCZCANIEQ4AngMAQsgDkH4A2oiEiAQQQN0aiIQKgIAIToCQAJAAkACQCAQLQAEQQFrDgIBAAILIEQgOpRDCtcjPJQhOgsgOkMAAAAAYA0BCyANIC02AmQgDSBEOAJ4DAELAkACfwJAAkACQCAWQQJrDgICAAELIDwgDiAPQQAgRCA7EDGSITpBAAwCC0EBIRAgDSA8IA4gD0EBIEQgOxAxkiI6OAJ4IBNBAU0NDAwCCyA8IA4gD0EAIEQgOxAxkiE6QQALIRAgDSA6OAJ4CyANIDMgEiAQQQN0ajEABEIghkKAgICAIFFxIDogOlxyNgJkCyAOIA8gEyAHIDsgDUHgAGogDUHoAGoQPyAOIA8gFiBEIDsgDUHkAGogDUH4AGoQPyAOICMoAgBBA3RqIhAqAvgDIToCQAJAAkACQCAQLQD8A0EBaw4CAQACCyBEIDqUQwrXIzyUIToLQQEhECA6QwAAAABgDQELQQEhECAOLwAWQQ9xIhIEfyASBSAALQAVQQR2C0EERw0AIA1BiAFqIBggICgCACAPECggDS0AjAFBA0YNACANQYgBaiAYIBwoAgAgDxAoIA0tAIwBQQNGIRALIA4gDSoCaCI8IA0qAngiOiATQQFLIhIbIDogPCASGyAALQCIA0EDcSANKAJgIhggDSgCZCIhIBIbICEgGCASGyA7IEUgCCAQcSIQQQRBByAQGyAKICIgDBA9GiBBIEMgBpOSIUEgAAJ/IAAtAIgDIhBBBHFFBEBBACAOLQCIA0EEcUUNARoLQQQLIBBB+wFxcjoAiAMgC0EEaiILIBdHDQALCyA/IEGTIT8LIAAgAC0AiAMiC0H7AXFBBCA/QwAAAABdQQJ0IAtBBHFBAnYbcjoAiAMgFCATIA8gQBBgIBQgEyAPEEuSITogFCATIA8gQBB/IBQgEyAPEFKSIUsgFCATIAcQTSFCAn8CQAJ9ID9DAAAAAF5FIB5BAkdyRQRAIA1BiAFqIDAgLyAkKAIAQQF0ai8BABAfAkAgDS0AjAEEQCAUIA8gKCBJIEAQNSIGIAZbDQELQwAAAAAMAgtDAAAAACAUIA8gKCBJIEAQNSA6kyBLkyAHID+TkyI/QwAAAABeRQ0BGgsgP0MAAAAAYEUNASA/CyE8IBQtAABBBHZBB3EMAQsgPyE8IBQtAABBBHZBB3EiC0EAIAtBA2tBA08bCyELQwAAAAAhBgJAAkAgFQ0AQwAAAAAhPQJAAkACQAJAAkAgC0EBaw4FAAECBAMGCyA8QwAAAD+UIT0MBQsgPCE9DAQLIBcgCWsiC0EFSQ0CIEIgPCALQQJ1QQFrs5WSIUIMAgsgQiA8IBcgCWtBAnVBAWqzlSI9kiFCDAILIDxDAAAAP5QgFyAJa0ECdbOVIj0gPZIgQpIhQgwBC0MAAAAAIT0LIDogPZIhPSAAEHwhEgJAIAkgF0YiGARAQwAAAAAhP0MAAAAAIToMAQsgF0EEayElIDwgFbOVIU4gMigCACEhQwAAAAAhOkMAAAAAIT8gCSELA0AgDUGIAWogCygCACIOQRRqIhAgISAPECggPUMAAACAIE5DAAAAgCA8QwAAAABeGyJBIA0tAIwBQQNHG5IhPSAIBEACfwJAAkACQAJAIBNBAWsOAwECAwALQQEhFSAOQaADagwDC0EDIRUgDkGoA2oMAgtBACEVIA5BnANqDAELQQIhFSAOQaQDagshKiAOIBVBAnRqICoqAgAgPZI4ApwDCyAlKAIAIRUgDUGIAWogECAxKAIAIA8QKCA9QwAAAIAgQiAOIBVGG5JDAAAAgCBBIA0tAIwBQQNHG5IhPQJAIDRFBEAgPSAQIBNBASA7ECIgECATQQEgOxAhkiAOKgKcAZKSIT0gRCEGDAELIA4gEyA7EF0gPZIhPSASBEAgDhBOIUEgEEEAIA8gOxBBIUMgDioCmAMgEEEAQQEgOxAiIBBBAEEBIDsQIZKSIEEgQ5IiQZMiQyA/ID8gQ10bIEMgPyA/ID9cGyA/ID9bIEMgQ1txGyE/IEEgOiA6IEFdGyBBIDogOiA6XBsgOiA6WyBBIEFbcRshOgwBCyAOIBYgOxBdIkEgBiAGIEFdGyBBIAYgBiAGXBsgBiAGWyBBIEFbcRshBgsgC0EEaiILIBdHDQALCyA/IDqSIAYgEhshQQJ9IDkEQCAAIBYgDyBGIEGSIE0gQBAlIEaTDAELIEQgQSA3GyFBIEQLIT8gH0UEQCAAIBYgDyBGIEGSIE0gQBAlIEaTIUELIEsgPZIhPAJAIAhFDQAgCSELIBgNAANAIAsoAgAiFS8AFkEPcSIORQRAIAAtABVBBHYhDgsCQAJAAkACQCAOQQRrDgIAAQILIA1BiAFqIBVBFGoiECAgKAIAIA8QKEEEIQ4gDS0AjAFBA0YNASANQYgBaiAQIBwoAgAgDxAoIA0tAIwBQQNGDQEgFSAjKAIAQQN0aiIOKgL4AyE9AkACQAJAIA4tAPwDQQFrDgIBAAILIEQgPZRDCtcjPJQhPQsgPiEGID1DAAAAAGANAwsgFSAkKAIAQQJ0aioClAMhBiANIBVB/ABqIg4gFS8BehAgIjogOlsEfSAQIBZBASA7ECIgECAWQQEgOxAhkiAGIA4gFS8BehAgIjqUIAYgOpUgGRuSBSBBCzgCeCANIAYgECATQQEgOxAiIBAgE0EBIDsQIZKSOAKIASANQQA2AmggDUEANgJkIBUgDyATIAcgOyANQegAaiANQYgBahA/IBUgDyAWIEQgOyANQeQAaiANQfgAahA/IA0qAngiOiANKgKIASI9IBNBAUsiGCIOGyEGIB9BAEcgAC8AFUEPcUEER3EiECAZcSA9IDogDhsiOiA6XHIhDiAVIDogBiAPIA4gECAYcSAGIAZcciA7IEVBAUECIAogIiAMED0aID4hBgwCC0EFQQEgFC0AAEEIcRshDgsgFSAWIDsQXSEGIA1BiAFqIBVBFGoiECAgKAIAIhggDxAoID8gBpMhOgJAIA0tAIwBQQNHBEAgHCgCACESDAELIA1BiAFqIBAgHCgCACISIA8QKCANLQCMAUEDRw0AID4gOkMAAAA/lCIGQwAAAAAgBkMAAAAAXhuSIQYMAQsgDUGIAWogECASIA8QKCA+IQYgDS0AjAFBA0YNACANQYgBaiAQIBggDxAoIA0tAIwBQQNGBEAgPiA6QwAAAAAgOkMAAAAAXhuSIQYMAQsCQAJAIA5BAWsOAgIAAQsgPiA6QwAAAD+UkiEGDAELID4gOpIhBgsCfwJAAkACQAJAIBZBAWsOAwECAwALQQEhECAVQaADagwDC0EDIRAgFUGoA2oMAgtBACEQIBVBnANqDAELQQIhECAVQaQDagshDiAVIBBBAnRqIAYgTCAOKgIAkpI4ApwDIAtBBGoiCyAXRw0ACwsgCQRAIAkQJwsgPCBIIDwgSF4bIDwgSCBIIEhcGyBIIEhbIDwgPFtxGyFIIEwgT0MAAAAAIBsbIEGSkiFMIBtBAWohGyANKAJQIgkgEXINAAsLAkAgCEUNACAfRQRAIAAQfEUNAQsgACAWIA8CfSBGIESSIBpFDQAaIAAgFkECdEH8JWooAgBBA3RqIgkqAvgDIQYCQAJAAkAgCS0A/ANBAWsOAgEAAgsgTSAGlEMK1yM8lCEGCyAGQwAAAABgRQ0AIAAgD0GBAiAWQQN0dkEBcSBNIEAQMQwBCyBGIEySCyBHIEAQJSEGQwAAAAAhPCAALwAVQQ9xIQkCQAJAAkACQAJAAkACQAJAAkAgBiBGkyBMkyIGQwAAAABgRQRAQwAAAAAhQyAJQQJrDgICAQcLQwAAAAAhQyAJQQJrDgcBAAUGBAIDBgsgPiAGkiE+DAULID4gBkMAAAA/lJIhPgwECyAGIBuzIjqVITwgPiAGIDogOpKVkiE+DAMLID4gBiAbQQFqs5UiPJIhPgwCCyAbQQJJBEAMAgsgDUGIAWogABAyIAYgG0EBa7OVITwMAgsgBiAbs5UhQwsgDUGIAWogABAyIBtFDQELIBZBAnQiCUHcJWohECAJQfwlaiERIA1BOGohGCANQcgAaiEZIA1B8ABqIRUgDUGQAWohHCANQYABaiEfQQAhEgNAIA1BADYCgAEgDSANKQOIATcDeCAfIA0oApABEDwgDUEANgJwIA0gDSkDeCJWNwNoIBUgDSgCgAEiCxA8IA0oAmwhCQJAAkAgDSgCaCIOBEBDAAAAACE6QwAAAAAhP0MAAAAAIQYMAQtDAAAAACE6QwAAAAAhP0MAAAAAIQYgCUUNAQsDQCAOKALsAyAOKALoAyIOa0ECdSAJTQ0FAkAgDiAJQQJ0aigCACIJLwAVIAktABdBEHRyIhdBgIAwcUGAgBBGIBdBgOAAcUGAwABGcg0AIAkoAtwDIBJHDQIgCUEUaiEOIAkgESgCAEECdGoqApQDIj1DAAAAAGAEfyA9IA4gFkEBIDsQIiAOIBZBASA7ECGSkiI9IAYgBiA9XRsgPSAGIAYgBlwbIAYgBlsgPSA9W3EbIQYgCS0AFgUgF0EIdgtBD3EiFwR/IBcFIAAtABVBBHYLQQVHDQAgFC0AAEEIcUUNACAJEE4gDkEAIA8gOxBBkiI9ID8gPSA/XhsgPSA/ID8gP1wbID8gP1sgPSA9W3EbIj8gCSoCmAMgDkEAQQEgOxAiIA5BAEEBIDsQIZKSID2TIj0gOiA6ID1dGyA9IDogOiA6XBsgOiA6WyA9ID1bcRsiOpIiPSAGIAYgPV0bID0gBiAGIAZcGyAGIAZbID0gPVtxGyEGCyANQQA2AkggDSANKQNoNwNAIBkgDSgCcBA8IA1B6ABqEC4gDSgCSCIJBEADQCAJKAIAIQ4gCRAnIA4iCQ0ACwsgDUEANgJIIA0oAmwiCSANKAJoIg5yDQALCyANIA0pA2g3A4gBIBwgDSgCcBB1IA0gVjcDaCAVIAsQdSA+IE9DAAAAACASG5IhPiBDIAaSIT0gDSgCbCEJAkAgDSgCaCIOIA0oAogBRgRAIAkgDSgCjAFGDQELID4gP5IhQiA+ID2SIUsgPCA9kiEGA0AgDigC7AMgDigC6AMiDmtBAnUgCU0NBQJAIA4gCUECdGooAgAiCS8AFSAJLQAXQRB0ciIXQYCAMHFBgIAQRiAXQYDgAHFBgMAARnINACAJQRRqIQ4CQAJAAkACQAJAAkAgF0EIdkEPcSIXBH8gFwUgAC0AFUEEdgtBAWsOBQEDAgQABgsgFC0AAEEIcQ0ECyAOIBYgDyA7EFEhOiAJIBAoAgBBAnRqID4gOpI4ApwDDAQLIA4gFiAPIDsQYiE/AkACQAJAAkAgFkECaw4CAgABCyAJKgKUAyE6QQIhDgwCC0EBIQ4gCSoCmAMhOgJAIBYOAgIADwtBAyEODAELIAkqApQDITpBACEOCyAJIA5BAnRqIEsgP5MgOpM4ApwDDAMLAkACQAJAAkAgFkECaw4CAgABCyAJKgKUAyE/QQIhDgwCC0EBIQ4gCSoCmAMhPwJAIBYOAgIADgtBAyEODAELIAkqApQDIT9BACEOCyAJIA5BAnRqID4gPSA/k0MAAAA/lJI4ApwDDAILIA4gFiAPIDsQQSE6IAkgECgCAEECdGogPiA6kjgCnAMgCSARKAIAQQN0aiIXKgL4AyE/AkACQAJAIBctAPwDQQFrDgIBAAILIEQgP5RDCtcjPJQhPwsgP0MAAAAAYA0CCwJAAkACfSATQQFNBEAgCSoCmAMgDiAWQQEgOxAiIA4gFkEBIDsQIZKSITogBgwBCyAGITogCSoClAMgDiATQQEgOxAiIA4gE0EBIDsQIZKSCyI/ID9cIAkqApQDIkEgQVxyRQRAID8gQZOLQxe30ThdDQEMAgsgPyA/WyBBIEFbcg0BCyAJKgKYAyJBIEFcIg4gOiA6XHJFBEAgOiBBk4tDF7fROF1FDQEMAwsgOiA6Ww0AIA4NAgsgCSA/IDogD0EAQQAgOyBFQQFBAyAKICIgDBA9GgwBCyAJIEIgCRBOkyAOQQAgDyBEEFGSOAKgAwsgDUEANgI4IA0gDSkDaDcDMCAYIA0oAnAQPCANQegAahAuIA0oAjgiCQRAA0AgCSgCACEOIAkQJyAOIgkNAAsLIA1BADYCOCANKAJsIQkgDSgCaCIOIA0oAogBRw0AIAkgDSgCjAFHDQALCyANKAJwIgkEQANAIAkoAgAhDiAJECcgDiIJDQALCyALBEADQCALKAIAIQkgCxAnIAkiCw0ACwsgPCA+kiA9kiE+IBJBAWoiEiAbRw0ACwsgDSgCkAEiCUUNAANAIAkoAgAhCyAJECcgCyIJDQALCyAAQZQDaiIQIABBAiAPIFAgQCBAECU4AgAgAEGYA2oiESAAQQAgDyBRIEcgQBAlOAIAAkAgEEGBAiATQQN0dkEBcUECdGoCfQJAIB5BAUcEQCAALQAXQQNxIglBAkYgHkECR3INAQsgACATIA8gSCBJIEAQJQwBCyAeQQJHIAlBAkdyDQEgSiAAIA8gEyBIIEkgQBB0Ij4gSiAHkiIGIAYgPl4bID4gBiAGIAZcGyAGIAZbID4gPltxGyIGIAYgSl0bIEogBiAGIAZcGyAGIAZbIEogSltxGws4AgALAkAgEEGBAiAWQQN0dkEBcUECdGoCfQJAIBpBAUcEQCAaQQJHIgkgAC0AF0EDcSILQQJGcg0BCyAAIBYgDyBGIEySIE0gQBAlDAELIAkgC0ECR3INASBGIAAgDyAWIEYgTJIgTSBAEHQiByBGIESSIgYgBiAHXhsgByAGIAYgBlwbIAYgBlsgByAHW3EbIgYgBiBGXRsgRiAGIAYgBlwbIAYgBlsgRiBGW3EbCzgCAAsCQCAIRQ0AAkAgAC8AFUGAgANxQYCAAkcNACANQYgBaiAAEDIDQCANKAKMASIJIA0oAogBIgtyRQRAIA0oApABIglFDQIDQCAJKAIAIQsgCRAnIAsiCQ0ACwwCCyALKALsAyALKALoAyILa0ECdSAJTQ0DIAsgCUECdGooAgAiCS8AFUGA4ABxQYDAAEcEQCAJAn8CQAJAAkAgFkECaw4CAAECCyAJQZQDaiEOIBAqAgAgCSoCnAOTIQZBAAwCCyAJQZQDaiEOIBAqAgAgCSoCpAOTIQZBAgwBCyARKgIAIQYCQAJAIBYOAgABCgsgCUGYA2ohDiAGIAkqAqADkyEGQQEMAQsgCUGYA2ohDiAGIAkqAqgDkyEGQQMLQQJ0aiAGIA4qAgCTOAKcAwsgDUGIAWoQLgwACwALAkAgEyAWckEBcUUNACAWQQFxIRQgE0EBcSEVIA1BiAFqIAAQMgNAIA0oAowBIgkgDSgCiAEiC3JFBEAgDSgCkAEiCUUNAgNAIAkoAgAhCyAJECcgCyIJDQALDAILIAsoAuwDIAsoAugDIgtrQQJ1IAlNDQMCQCALIAlBAnRqKAIAIgkvABUgCS0AF0EQdHIiC0GAgDBxQYCAEEYgC0GA4ABxQYDAAEZyDQAgFQRAAn8CfwJAAkACQCATQQFrDgMAAQINCyAJQZgDaiEOIAlBqANqIQtBASESIBEMAwsgCUGUA2ohDkECIRIgCUGcA2oMAQsgCUGUA2ohDkEAIRIgCUGkA2oLIQsgEAshGyAJIBJBAnRqIBsqAgAgDioCAJMgCyoCAJM4ApwDCyAURQ0AAn8CfwJAAkACQCAWQQFrDgMAAQIMCyAJQZgDaiELIAlBqANqIRJBASEXIBEMAwsgCUGUA2ohCyAJQZwDaiESQQIMAQsgCUGUA2ohCyAJQaQDaiESQQALIRcgEAshDiAJIBdBAnRqIA4qAgAgCyoCAJMgEioCAJM4ApwDCyANQYgBahAuDAALAAsgAC8AFUGA4ABxICJBAUZyRQRAIAAtAABBCHFFDQELIAAgACAeIAQgE0EBSxsgDyAKICIgDEMAAAAAQwAAAAAgOyBFEH4aCyANKAJYIglFDQIDQCAJKAIAIQsgCRAnIAsiCQ0ACwwCCxACAAsgABBeCyANQaABaiQADAELECQACyAAIAM6AKgBIAAgACgC9AMoAgw2AqQBIB0NACAKIAooAggiAyAAKAKsASIOQQFqIgkgAyAJSxs2AgggDkEIRgRAIABBADYCrAFBACEOCyAIBH8gAEHwAmoFIAAgDkEBajYCrAEgACAOQRhsakGwAWoLIgMgBTYCDCADIAQ2AgggAyACOAIEIAMgATgCACADIAAqApQDOAIQIAMgACoCmAM4AhRBACEdCyAIBEAgACAAKQKUAzcCjAMgACAALQAAIgNBAXIiBEH7AXEgBCADQQRxGzoAAAsgACAMNgKgASArIB1Fcgs1AQF/IAEgACgCBCICQQF1aiEBIAAoAgAhACABIAJBAXEEfyABKAIAIABqKAIABSAACxECAAt9ACAAQRRqIgAgAUGBAiACQQN0dkH/AXEgAyAEEC0gACACQQEgBBAiIAAgAkEBIAQQIZKSIQQCQAJAAkACQCAFKAIADgMAAQADCyAGKgIAIgMgAyAEIAMgBF0bIAQgBFwbIQQMAQsgBCAEXA0BIAVBAjYCAAsgBiAEOAIACwuMAQIBfwF9IAAoAuQDRQRAQwAAAAAPCyAAQfwAaiIBIAAvARwQICICIAJbBEAgASAALwEcECAPCwJAIAAoAvQDLQAIQQFxDQAgASAALwEYECAiAiACXA0AIAEgAC8BGBAgQwAAAABdRQ0AIAEgAC8BGBAgjA8LQwAAgD9DAAAAACAAKAL0Ay0ACEEBcRsLcAIBfwF9IwBBEGsiBCQAIARBCGogACABQQJ0QdwlaigCACACEChDAADAfyEFAkACQAJAIAQtAAxBAWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwtHAQF/IAIvAAYiA0EHcQRAIAAgAUHoAGogAxAfDwsgAUHoAGohASACLwAOIgNBB3EEQCAAIAEgAxAfDwsgACABIAIvABAQHwtHAQF/IAIvAAIiA0EHcQRAIAAgAUHoAGogAxAfDwsgAUHoAGohASACLwAOIgNBB3EEQCAAIAEgAxAfDwsgACABIAIvABAQHwt7AAJAAkACQAJAIANBAWsOAgABAgsgAi8ACiIDQQdxRQ0BDAILIAIvAAgiA0EHcUUNAAwBCyACLwAEIgNBB3EEQAwBCyABQegAaiEBIAIvAAwiA0EHcQRAIAAgASADEB8PCyAAIAEgAi8AEBAfDwsgACABQegAaiADEB8LewACQAJAAkACQCADQQFrDgIAAQILIAIvAAgiA0EHcUUNAQwCCyACLwAKIgNBB3FFDQAMAQsgAi8AACIDQQdxBEAMAQsgAUHoAGohASACLwAMIgNBB3EEQCAAIAEgAxAfDwsgACABIAIvABAQHw8LIAAgAUHoAGogAxAfC84BAgN/An0jAEEQayIDJABBASEEIANBCGogAEH8AGoiBSAAIAFBAXRqQe4AaiIBLwEAEB8CQAJAIAMqAggiByACKgIAIgZcBEAgByAHWwRAIAItAAQhAgwCCyAGIAZcIQQLIAItAAQhAiAERQ0AIAMtAAwgAkH/AXFGDQELIAUgASAGIAIQOQNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLIANBEGokAAuFAQIDfwF+AkAgAEKAgICAEFQEQCAAIQUMAQsDQCABQQFrIgEgAEIKgCIFQvYBfiAAfKdBMHI6AAAgAEL/////nwFWIQIgBSEAIAINAAsLIAWnIgIEQANAIAFBAWsiASACQQpuIgNB9gFsIAJqQTByOgAAIAJBCUshBCADIQIgBA0ACwsgAQs3AQJ/QQQQHiICIAE2AgBBBBAeIgMgATYCAEHBOyAAQeI7QfooQb8BIAJB4jtB/ihBwAEgAxAHCw8AIAAgASACQQFBAhCLAQteAQF/IABBADYCDCAAIAM2AhACQCABBEAgAUGAgICABE8NASABQQJ0EB4hBAsgACAENgIAIAAgBCACQQJ0aiICNgIIIAAgBCABQQJ0ajYCDCAAIAI2AgQgAA8LEFgAC3kCAX8BfSMAQRBrIgMkACADQQhqIAAgAUECdEHcJWooAgAgAhBTQwAAwH8hBAJAAkACQCADLQAMQQFrDgIAAQILIAMqAgghBAwBCyADKgIIQwAAAACUQwrXIzyUIQQLIANBEGokACAEQwAAAACXQwAAAAAgBCAEWxsLnAoBC38jAEEQayIIJAAgASABLwAAQXhxIANyIgM7AAACQAJAAkACQAJAAkACQAJAAkACQCADQQhxBEAgA0H//wNxIgZBBHYhBCAGQT9NBH8gACAEQQJ0akEEagUgBEEEayIEIAAoAhgiACgCBCAAKAIAIgBrQQJ1Tw0CIAAgBEECdGoLIAI4AgAMCgsCfyACi0MAAABPXQRAIAKoDAELQYCAgIB4CyIEQf8PakH+H0sgBLIgAlxyRQRAIANBD3FBACAEa0GAEHIgBCACQwAAAABdG0EEdHIhAwwKCyAAIAAvAQAiC0EBajsBACALQYAgTw0DIAtBA00EQCAAIAtBAnRqIAI4AgQMCQsgACgCGCIDRQRAQRgQHiIDQgA3AgAgA0IANwIQIANCADcCCCAAIAM2AhgLAkAgAygCBCIEIAMoAghHBEAgBCACOAIAIAMgBEEEajYCBAwBCyAEIAMoAgAiB2siBEECdSIJQQFqIgZBgICAgARPDQECf0H/////AyAEQQF1IgUgBiAFIAZLGyAEQfz///8HTxsiBkUEQEEAIQUgCQwBCyAGQYCAgIAETw0GIAZBAnQQHiEFIAMoAgQgAygCACIHayIEQQJ1CyEKIAUgCUECdGoiCSACOAIAIAkgCkECdGsgByAEEDMhByADIAUgBkECdGo2AgggAyAJQQRqNgIEIAMoAgAhBCADIAc2AgAgBEUNACAEECMLIAAoAhgiBigCECIDIAYoAhQiAEEFdEcNByADQQFqQQBIDQAgA0H+////A0sNASADIABBBnQiACADQWBxQSBqIgQgACAESxsiAE8NByAAQQBODQILEAIAC0H/////ByEAIANB/////wdPDQULIAhBADYCCCAIQgA3AwAgCCAAEJ8BIAYoAgwhBCAIIAgoAgQiByAGKAIQIgBBH3FqIABBYHFqIgM2AgQgB0UEQCADQQFrIQUMAwsgA0EBayIFIAdBAWtzQR9LDQIgCCgCACEKDAMLQZUlQeEXQSJB3BcQCwALEFgACyAIKAIAIgogBUEFdkEAIANBIU8bQQJ0akEANgIACyAKIAdBA3ZB/P///wFxaiEDAkAgB0EfcSIHRQRAIABBAEwNASAAQSBtIQUgAEEfakE/TwRAIAMgBCAFQQJ0EDMaCyAAIAVBBXRrIgBBAEwNASADIAVBAnQiBWoiAyADKAIAQX9BICAAa3YiAEF/c3EgBCAFaigCACAAcXI2AgAMAQsgAEEATA0AQX8gB3QhDEEgIAdrIQkgAEEgTgRAIAxBf3MhDSADKAIAIQUDQCADIAUgDXEgBCgCACIFIAd0cjYCACADIAMoAgQgDHEgBSAJdnIiBTYCBCAEQQRqIQQgA0EEaiEDIABBP0shDiAAQSBrIQAgDg0ACyAAQQBMDQELIAMgAygCAEF/IAkgCSAAIAAgCUobIgVrdiAMcUF/c3EgBCgCAEF/QSAgAGt2cSIEIAd0cjYCACAAIAVrIgBBAEwNACADIAUgB2pBA3ZB/P///wFxaiIDIAMoAgBBf0EgIABrdkF/c3EgBCAFdnI2AgALIAYoAgwhACAGIAo2AgwgBiAIKAIEIgM2AhAgBiAIKAIINgIUIABFDQAgABAjIAYoAhAhAwsgBiADQQFqNgIQIAYoAgwgA0EDdkH8////AXFqIgAgACgCAEF+IAN3cTYCACABLwAAIQMLIANBB3EgC0EEdHJBCHIhAwsgASADOwAAIAhBEGokAAuPAQIBfwF9IwBBEGsiAyQAIANBCGogAEHoAGogAEHUAEHWACABQf4BcUECRhtqLwEAIgEgAC8BWCABQQdxGxAfQwAAwH8hBAJAAkACQCADLQAMQQFrDgIAAQILIAMqAgghBAwBCyADKgIIIAKUQwrXIzyUIQQLIANBEGokACAEQwAAAACXQwAAAAAgBCAEWxsL2AICBH8BfSMAQSBrIgMkAAJAIAAoAgwiAQRAIAAgACoClAMgACoCmAMgAREnACIFIAVbDQEgA0GqHjYCACAAQQVB2CUgAxAsECQACyADQRBqIAAQMgJAIAMoAhAiAiADKAIUIgFyRQ0AAkADQCABIAIoAuwDIAIoAugDIgJrQQJ1SQRAIAIgAUECdGooAgAiASgC3AMNAyABLwAVIAEtABdBEHRyIgJBgOAAcUGAwABHBEAgAkEIdkEPcSICBH8gAgUgAC0AFUEEdgtBBUYEQCAALQAUQQhxDQQLIAEtAABBAnENAyAEIAEgBBshBAsgA0EQahAuIAMoAhQiASADKAIQIgJyDQEMAwsLEAIACyABIQQLIAMoAhgiAQRAA0AgASgCACECIAEQIyACIgENAAsLIARFBEAgACoCmAMhBQwBCyAEEE4gBCoCoAOSIQULIANBIGokACAFC6EDAQh/AkAgACgC6AMiBSAAKALsAyIHRwRAA0AgACAFKAIAIgIoAuQDRwRAAkAgACgC9AMoAgAiAQRAIAIgACAGIAERBgAiAQ0BC0GIBBAeIgEgAigCEDYCECABIAIpAgg3AgggASACKQIANwIAIAFBFGogAkEUakHoABArGiABQgA3AoABIAFB/ABqIgNBADsBACABQgA3AogBIAFCADcCkAEgAyACQfwAahCgASABQZgBaiACQZgBakHQAhArGiABQQA2AvADIAFCADcC6AMgAigC7AMiAyACKALoAyIERwRAIAMgBGsiBEEASA0FIAEgBBAeIgM2AuwDIAEgAzYC6AMgASADIARqNgLwAyACKALoAyIEIAIoAuwDIghHBEADQCADIAQoAgA2AgAgA0EEaiEDIARBBGoiBCAIRw0ACwsgASADNgLsAwsgASACKQL0AzcC9AMgASACKAKEBDYChAQgASACKQL8AzcC/AMgAUEANgLkAwsgBSABNgIAIAEgADYC5AMLIAZBAWohBiAFQQRqIgUgB0cNAAsLDwsQAgALUAACQAJAAkACQAJAIAIOBAQAAQIDCyAAIAEgAUEwahBDDwsgACABIAFBMGogAxBEDwsgACABIAFBMGoQQg8LECQACyAAIAEgAUEwaiADEEULcAIBfwF9IwBBEGsiBCQAIARBCGogACABQQJ0QdwlaigCACACEDZDAADAfyEFAkACQAJAIAQtAAxBAWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwt5AgF/AX0jAEEQayIDJAAgA0EIaiAAIAFBAnRB7CVqKAIAIAIQU0MAAMB/IQQCQAJAAkAgAy0ADEEBaw4CAAECCyADKgIIIQQMAQsgAyoCCEMAAAAAlEMK1yM8lCEECyADQRBqJAAgBEMAAAAAl0MAAAAAIAQgBFsbC1QAAkACQAJAAkACQCACDgQEAAECAwsgACABIAFBwgBqEEMPCyAAIAEgAUHCAGogAxBEDwsgACABIAFBwgBqEEIPCxAkAAsgACABIAFBwgBqIAMQRQsvACAAIAJFQQF0IgIgASADEGAgACACIAEQS5IgACACIAEgAxB/IAAgAiABEFKSkgvOAQIDfwJ9IwBBEGsiAyQAQQEhBCADQQhqIABB/ABqIgUgACABQQF0akH2AGoiAS8BABAfAkACQCADKgIIIgcgAioCACIGXARAIAcgB1sEQCACLQAEIQIMAgsgBiAGXCEECyACLQAEIQIgBEUNACADLQAMIAJB/wFxRg0BCyAFIAEgBiACEDkDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCyADQRBqJAALzgECA38CfSMAQRBrIgMk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AWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwscACAAIAFBCCACpyACQiCIpyADpyADQiCIpxAVCwUAEFgACzkAIABFBEBBAA8LAn8gAUGAf3FBgL8DRiABQf8ATXJFBEBB/DtBGTYCAEF/DAELIAAgAToAAEEBCwvEAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQQlrDhIACgsMCgsCAwQFDAsMDAoLBwgJCyACIAIoAgAiAUEEajYCACAAIAEoAgA2AgAPCwALIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LAAsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKwMAOQMADwsgACACIAMRAQALDwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMAC84BAgN/An0jAEEQayIDJABBASEEIANBCGogAEH8AGoiBSAAIAFBAXRqQegAaiIBLwEAEB8CQAJAIAMqAggiByACKgIAIgZcBEAgByAHWwRAIAItAAQhAgwCCyAGIAZcIQQLIAItAAQhAiAERQ0AIAMtAAwgAkH/AXFGDQELIAUgASAGIAIQOQNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLIANBEGokAAtdAQR/IAAoAgAhAgNAIAIsAAAiAxBXBEBBfyEEIAAgAkEBaiICNgIAIAFBzJmz5gBNBH9BfyADQTBrIgMgAUEKbCIEaiADIARB/////wdzShsFIAQLIQEMAQsLIAELrhQCEn8BfiMAQdAAayIIJAAgCCABNgJMIAhBN2ohFyAIQThqIRQCQAJAAkACQANAIAEhDSAHIA5B/////wdzSg0BIAcgDmohDgJAAkACQCANIgctAAAiCQRAA0ACQAJAIAlB/wFxIgFFBEAgByEBDAELIAFBJUcNASAH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IQEgAEIANwIEIAAgATYCACABIAA2AgQgAkEQaiQAIAALGwEBfyAABEAgACgCACIBBEAgARAjCyAAECMLC0kBAn9BBBAeIQFBIBAeIgBBADYCHCAAQoCAgICAgIDAPzcCFCAAQgA3AgwgAEEAOgAIIABBAzYCBCAAQQA2AgAgASAANgIAIAELIAAgAkEFR0EAIAIbRQRAQbgwIAMgBBBJDwsgAyAEEHALIgEBfiABIAKtIAOtQiCGhCAEIAARFQAiBUIgiKckASAFpwuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGECsaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEECsaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACCwQAQgALBABBAAuKBQIGfgJ/IAEgASgCAEEHakF4cSIBQRBqNgIAIAAhCSABKQMAIQMgASkDCCEGIwBBIGsiCCQAAkAgBkL///////////8AgyIEQoCAgICAgMCAPH0gBEKAgICAgIDA/8MAfVQEQCAGQgSGIANCPIiEIQQgA0L//////////w+DIgNCgYCAgICAgIAIWgRAIARCgYCAgICAgIDAAHwhAgwCCyAEQoCAgICAgICAQH0hAiADQoCAgICAgICACFINASACIARCAYN8IQIMAQsgA1AgBEKAgICAgIDA//8AVCAEQoCAgICAgMD//wBRG0UEQCAGQgSGIANCPIiEQv////////8Dg0KAgICAgICA/P8AhCECDAELQoCAgICAgID4/wAhAiAEQv///////7//wwBWDQBCACECIARCMIinIgBBkfcASQ0AIAMhAiAGQv///////z+DQoCAgICAgMAAhCIFIQcCQCAAQYH3AGsiAUHAAHEEQCACIAFBQGqthiEHQgAhAgwBCyABRQ0AIAcgAa0iBIYgAkHAACABa62IhCEHIAIgBIYhAgsgCCACNwMQIAggBzcDGAJAQYH4ACAAayIAQcAAcQRAIAUgAEFAaq2IIQNCACEFDAELIABFDQAgBUHAACAAa62GIAMgAK0iAoiEIQMgBSACiCEFCyAIIAM3AwAgCCAF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ASAAKAIAIQAgASACQQFxBH8gASgCACAAaigCAAUgAAsRCwALYQECfyMAQRBrIgIkACABIAAoAgQiA0EBdWohASAAKAIAIQAgAiABIANBAXEEfyABKAIAIABqKAIABSAACxEBAEEQEB4iACACKQMINwMIIAAgAikDADcDACACQRBqJAAgAAtjAQJ/IwBBEGsiAyQAIAEgACgCBCIEQQF1aiEBIAAoAgAhACADIAEgAiAEQQFxBH8gASgCACAAaigCAAUgAAsRAwBBEBAeIgAgAykDCDcDCCAAIAMpAwA3AwAgA0EQaiQAIAALNwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQAgASACIANBAXEEfyABKAIAIABqKAIABSAACxEEAAs5AQF/IAEgACgCBCIEQQF1aiEBIAAoAgAhACABIAIgAyAEQQFxBH8gASgCACAAaigCAAUgAAsRCAALCQAgASAAEQIACwUAQcM7Cw8AIAEgACgCAGogAjYCAAsNACABIAAoAgBqKAIACxgBAX9BEBAeIgBCADcDCCAAQQA2AgAgAAsYAQF/QRAQHiIAQgA3AwAgAEIANwMIIAALDABBMBAeQQBBMBAqCzcBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAIAEgAiADQQFxBH8gASgCACAAaigCAAUgAAsRHgALBQBBvjsLIQAgACABKAIAIAEgASwAC0EASBtBuzsgAigCABAQNgIACyoBAX9BDBAeIgFBADoABCABIAAoAgA2AgggAEEANgIAIAFB2Cc2AgAgAQsFAEG7OwsFAEG4OwshACAAIAEoAgAgASABLAALQQBIG0GkOyACKAIAEBA2AgAL2AEBBH8jAEEgayIDJAAgASgCACIEQfD///8HSQRAAkACQCAEQQtPBEAgBEEPckEBaiIFEB4hBiADIAVBgICAgHhyNgIQIAMgBjYCCCADIAQ2AgwgBCAGaiEFDAELIAMgBDoAEyADQQhqIgYgBGohBSAERQ0BCyAGIAFBBGogBBArGgsgBUEAOgAAIAMgAjYCACADQRhqIANBCGogAyAAEQMAIAMoAhgQHSADKAIYIgAQBiADKAIAEAYgAywAE0EASARAIAMoAggQIwsgA0EgaiQAIAAPCxACAAsqAQF/QQwQHiIBQQA6AAQgASAAKAIANgIIIABBADYCACABQeAmNgIA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AkEIaiAIIAYQHyACIAcgAC8AABAfQQEhAyACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSADC0UNAiACLQAMIAItAARHDQILIABBAmohAEEBIQMgBCEGQQEhBCAGRQ0ACyABLwB6IgBBB3FFBEAgBS0AekEHcUUNAgsgCCAAECAiCiAHIAUvAHoQICILWw0BIAogClsNACALIAtcDQELIAFBFGogBUEUakHoABArGiABQfwAaiAFQfwAahCgAQNAIAEtAAAiAEEEcQ0BIAEgAEEEcjoAACABKAIQIgAEQCABIAARAAALIAFBgICA/gc2ApwBIAEoAuQDIgENAAsLIAJBEGokAAvGAwEEfyMAQaAEayICJAAgACgCBCEBIABBADYCBCABBEAgASABKAIAKAIEEQAACyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALAkAgACgCACIAKALoAyAAKALsA0YEQCAAKALkAw0BIAAgAkEYaiAAKAL0AxBcIgEpAgA3AgAgACABKAIQNgIQIAAgASkCCDcCCCAAQRRqIAFBFGpB6AAQKxogACABKQKMATcCjAEgACABKQKEATcChAEgACABKQJ8NwJ8IAEoApQBIQQgAUEANgKUASAAKAKUASEDIAAgBDYClAEgAwRAIAMQWwsgAEGYAWogAUGYAWpB0AIQKxogACgC6AMiAwRAIAAgAzYC7AMgAxAjCyAAIAEoAugDNgLoAyAAIAEoAuwDNgLsAyAAIAEoAvADNgLwAyABQQA2AvADIAFCADcC6AMgACABKQL8AzcC/AMgACABKQL0AzcC9AMgACABKAKEBDYChAQgASgClAEhACABQQA2ApQBIAAEQCAAEFsLIAJBoARqJAAPCyACQfAcNgIQIABBBUHYJSACQRBqECwQJAALIAJB5hE2AgAgAEEFQdglIAIQLBAkAAsLAEEMEB4gABCiAQsLAEEMEB5BABCiAQsNACAAKAIALQAIQQFxCwoAIAAoAgAoAhQLGQAgAUH/AXEEQBACAAsgACgCACgCEEEBcQsYACAAKAIAIgAgAC0ACEH+AXEgAXI6AAgLJgAgASAAKAIAIgAoAhRHBEAgACABNgIUIAAgACgCDEEBajYCDAsLkgEBAn8jAEEQayICJAAgACgCACEAIAFDAAAAAGAEQCABIAAqAhhcBEAgACABOAIYIAAgACgCDEEBajYCDAsgAkEQaiQADwsgAkGIFDYCACMAQRBrIgMkACADIAI2AgwCQCAARQRAQbgwQdglIAIQSRoMAQsgAEEAQQVB2CUgAiAAKAIEEQ0AGgsgA0EQaiQAECQACz8AIAFB/wFxRQRAIAIgACgCACIAKAIQIgFBAXFHBEAgACABQX5xIAJyNgIQIAAgACgCDEEBajYCDAsPCxACAAsL4CYjAEGACAuBHk9ubHkgbGVhZiBub2RlcyB3aXRoIGN1c3RvbSBtZWFzdXJlIGZ1bmN0aW9ucyBzaG91bGQgbWFudWFsbHkgbWFyayB0aGVtc2VsdmVzIGFzIGRpcnR5AGlzRGlydHkAbWFya0RpcnR5AGRlc3Ryb3kAc2V0RGlzcGxheQBnZXREaXNwbGF5AHNldEZsZXgALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweABzZXRGbGV4R3JvdwBnZXRGbGV4R3JvdwBzZXRPdmVyZmxvdwBnZXRPdmVyZmxvdwBoYXNOZXdMYXlvdXQAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodFNpemluZ01vZGUgbXVzdCBiZSBTaXppbmdNb2RlOjpNYXhDb250ZW50AGF2YWlsYWJsZVdpZHRoIGlzIGluZGVmaW5pdGUgc28gd2lkdGhTaXppbmdNb2RlIG11c3QgYmUgU2l6aW5nTW9kZTo6TWF4Q29udGVudABzZXRBbGlnbkNvbnRlbnQAZ2V0QWxpZ25Db250ZW50AGdldFBhcmVudABpbXBsZW1lbnQAc2V0TWF4SGVpZ2h0UGVyY2VudABzZXRIZWlnaHRQZXJjZW50AHNldE1pbkhlaWdodFBlcmNlbnQAc2V0RmxleEJhc2lzUGVyY2VudABzZXRHYXBQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGhhbmRsZS50eXBlKCkgPT0gU3R5bGVWYWx1ZUhhbmRsZTo6VHlwZTo6UG9pbnQgfHwgaGFuZGxlLnR5cGUoKSA9PSBTdHlsZVZhbHVlSGFuZGxlOjpUeXBlOjpQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHNldFBvaW50U2NhbGVGYWN0b3IATWVhc3VyZUNhbGxiYWNrV3JhcHBlcgBEaXJ0aWVkQ2FsbGJhY2tXcmFwcGVyAENhbm5vdCByZXNldCBhIG5vZGUgc3RpbGwgYXR0YWNoZWQgdG8gYSBvd25lcgBzZXRCb3JkZXIAZ2V0Qm9yZGVyAGdldENvbXB1dGVkQm9yZGVyAGdldE51bWJlcgBoYW5kbGUudHlwZSgpID09IFN0eWxlVmFsdWVIYW5kbGU6OlR5cGU6Ok51bWJlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRQb3NpdGlvbkF1dG8Ac2V0TWFyZ2luQXV0bwBzZXRXaWR0aEF1dG8AU2NhbGUgZmFjdG9yIHNob3VsZCBub3QgYmUgbGVzcyB0aGFuIHplcm8Ac2V0QXNwZWN0UmF0aW8AZ2V0QXNwZWN0UmF0aW8Ac2V0UG9zaXRpb24AZ2V0UG9zaXRpb24Abm90aWZ5T25EZXN0cnVjdGlvbgBzZXRGbGV4RGlyZWN0aW9uAGdldEZsZXhEaXJlY3Rpb24Ac2V0RGlyZWN0aW9uAGdldERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG1hcmtMYXlvdXRTZWVuAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAHNldEFsd2F5c0Zvcm1zQ29udGFpbmluZ0Jsb2NrAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAZ2V0TGVuZ3RoAHdpZHRoAHNldE1heFdpZHRoAGdldE1heFdpZHRoAHNldFdpZHRoAGdldFdpZHRoAHNldE1pbldpZHRoAGdldE1pbldpZHRoAGdldENvbXB1dGVkV2lkdGgAcHVzaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1NtYWxsVmFsdWVCdWZmZXIuaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1N0eWxlVmFsdWVQb29sLmgAdW5zaWduZWQgbG9uZwBzZXRCb3hTaXppbmcAZ2V0Qm94U2l6aW5nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBBdHRlbXB0aW5nIHRvIGNvbnN0cnVjdCBOb2RlIHdpdGggbnVsbCBjb25maWcAY3JlYXRlV2l0aENvbmZpZwBpbmYAc2V0QWxpZ25TZWxmAGdldEFsaWduU2VsZgBTaXplAHZhbHVlAFZhbHVlAGNyZWF0ZQBtZWFzdXJlAHNldFBvc2l0aW9uVHlwZQBnZXRQb3NpdGlvblR5cGUAaXNSZWZlcmVuY2VCYXNlbGluZQBzZXRJc1JlZmVyZW5jZUJhc2VsaW5lAGNvcHlTdHlsZQBkb3VibGUATm9kZQBleHRlbmQAaW5zZXJ0Q2hpbGQAZ2V0Q2hpbGQAcmVtb3ZlQ2hpbGQAdm9pZABzZXRFeHBlcmltZW50YWxGZWF0dXJlRW5hYmxlZABpc0V4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGRpcnRpZWQAQ2Fubm90IHJlc2V0IGEgbm9kZSB3aGljaCBzdGlsbCBoYXMgY2hpbGRyZW4gYXR0YWNoZWQAdW5zZXRNZWFzdXJlRnVuYwB1bnNldERpcnRpZWRGdW5jAHNldEVycmF0YQBnZXRFcnJhdGEATWVhc3VyZSBmdW5jdGlvbiByZXR1cm5lZCBhbiBpbnZhbGlkIGRpbWVuc2lvbiB0byBZb2dhOiBbd2lkdGg9JWYsIGhlaWdodD0lZl0ARXhwZWN0IGN1c3RvbSBiYXNlbGluZSBmdW5jdGlvbiB0byBub3QgcmV0dXJuIE5hTgBOQU4ASU5GAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVk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";
132
+ if (!ua(H)) {
133
+ var va = H;
134
+ H = h.locateFile ? h.locateFile(va, q) : q + va;
135
+ }
136
+ function wa() {
137
+ var a = H;
138
+ try {
139
+ if (a == H && w)
140
+ return new Uint8Array(w);
141
+ if (ua(a))
142
+ try {
143
+ var b = xa(a.slice(37)), c = new Uint8Array(b.length);
144
+ for (a = 0;a < b.length; ++a)
145
+ c[a] = b.charCodeAt(a);
146
+ var d = c;
147
+ } catch (f) {
148
+ throw Error("Converting base64 string to bytes failed.");
149
+ }
150
+ else
151
+ d = undefined;
152
+ var e = d;
153
+ if (e)
154
+ return e;
155
+ throw "both async and sync fetching of the wasm failed";
156
+ } catch (f) {
157
+ x(f);
158
+ }
159
+ }
160
+ function ya() {
161
+ return w || typeof fetch != "function" ? Promise.resolve().then(function() {
162
+ return wa();
163
+ }) : fetch(H, { credentials: "same-origin" }).then(function(a) {
164
+ if (!a.ok)
165
+ throw "failed to load wasm binary file at '" + H + "'";
166
+ return a.arrayBuffer();
167
+ }).catch(function() {
168
+ return wa();
169
+ });
973
170
  }
974
- }
975
- setMaxWidth(maxWidth) {
976
- if (this._freed)
977
- return;
978
- const { unit, asNumber } = parseValue(maxWidth);
979
- if (unit === Unit.Percent) {
980
- yg.ygNodeStyleSetMaxWidthPercent(this.ptr, asNumber);
981
- } else if (unit === Unit.Point && asNumber !== undefined) {
982
- yg.ygNodeStyleSetMaxWidth(this.ptr, asNumber);
171
+ function za(a) {
172
+ for (;0 < a.length; )
173
+ a.shift()(h);
174
+ }
175
+ function Aa(a) {
176
+ if (a === undefined)
177
+ return "_unknown";
178
+ a = a.replace(/[^a-zA-Z0-9_]/g, "$");
179
+ var b = a.charCodeAt(0);
180
+ return 48 <= b && 57 >= b ? "_" + a : a;
181
+ }
182
+ function Ba(a, b) {
183
+ a = Aa(a);
184
+ return function() {
185
+ return b.apply(this, arguments);
186
+ };
983
187
  }
984
- }
985
- setMaxWidthPercent(maxWidth) {
986
- if (this._freed)
987
- return;
988
- if (maxWidth !== undefined) {
989
- yg.ygNodeStyleSetMaxWidthPercent(this.ptr, maxWidth);
188
+ var J = [{}, { value: undefined }, { value: null }, { value: true }, { value: false }], Ca = [];
189
+ function Da(a) {
190
+ var b = Error, c = Ba(a, function(d) {
191
+ this.name = a;
192
+ this.message = d;
193
+ d = Error(d).stack;
194
+ d !== undefined && (this.stack = this.toString() + `
195
+ ` + d.replace(/^Error(:[^\n]*)?\n/, ""));
196
+ });
197
+ c.prototype = Object.create(b.prototype);
198
+ c.prototype.constructor = c;
199
+ c.prototype.toString = function() {
200
+ return this.message === undefined ? this.name : this.name + ": " + this.message;
201
+ };
202
+ return c;
203
+ }
204
+ var K = undefined;
205
+ function L(a) {
206
+ throw new K(a);
207
+ }
208
+ var M = (a) => {
209
+ a || L("Cannot use deleted val. handle = " + a);
210
+ return J[a].value;
211
+ }, Ea = (a) => {
212
+ switch (a) {
213
+ case undefined:
214
+ return 1;
215
+ case null:
216
+ return 2;
217
+ case true:
218
+ return 3;
219
+ case false:
220
+ return 4;
221
+ default:
222
+ var b = Ca.length ? Ca.pop() : J.length;
223
+ J[b] = { ga: 1, value: a };
224
+ return b;
225
+ }
226
+ }, Fa = undefined, Ga = undefined;
227
+ function N(a) {
228
+ for (var b = "";A[a]; )
229
+ b += Ga[A[a++]];
230
+ return b;
231
+ }
232
+ var O = [];
233
+ function Ha() {
234
+ for (;O.length; ) {
235
+ var a = O.pop();
236
+ a.M.$ = false;
237
+ a["delete"]();
238
+ }
239
+ }
240
+ var P = undefined, Q = {};
241
+ function Ia(a, b) {
242
+ for (b === undefined && L("ptr should not be undefined");a.R; )
243
+ b = a.ba(b), a = a.R;
244
+ return b;
245
+ }
246
+ var R = {};
247
+ function Ja(a) {
248
+ a = Ka(a);
249
+ var b = N(a);
250
+ S(a);
251
+ return b;
252
+ }
253
+ function La(a, b) {
254
+ var c = R[a];
255
+ c === undefined && L(b + " has unknown type " + Ja(a));
256
+ return c;
257
+ }
258
+ function Ma() {}
259
+ var Na = false;
260
+ function Oa(a) {
261
+ --a.count.value;
262
+ a.count.value === 0 && (a.T ? a.U.W(a.T) : a.P.N.W(a.O));
263
+ }
264
+ function Pa(a, b, c) {
265
+ if (b === c)
266
+ return a;
267
+ if (c.R === undefined)
268
+ return null;
269
+ a = Pa(a, b, c.R);
270
+ return a === null ? null : c.na(a);
271
+ }
272
+ var Qa = {};
273
+ function Ra(a, b) {
274
+ b = Ia(a, b);
275
+ return Q[b];
276
+ }
277
+ var Sa = undefined;
278
+ function Ta(a) {
279
+ throw new Sa(a);
280
+ }
281
+ function Ua(a, b) {
282
+ b.P && b.O || Ta("makeClassHandle requires ptr and ptrType");
283
+ !!b.U !== !!b.T && Ta("Both smartPtrType and smartPtr must be specified");
284
+ b.count = { value: 1 };
285
+ return T(Object.create(a, { M: { value: b } }));
286
+ }
287
+ function T(a) {
288
+ if (typeof FinalizationRegistry === "undefined")
289
+ return T = (b) => b, a;
290
+ Na = new FinalizationRegistry((b) => {
291
+ Oa(b.M);
292
+ });
293
+ T = (b) => {
294
+ var c = b.M;
295
+ c.T && Na.register(b, { M: c }, b);
296
+ return b;
297
+ };
298
+ Ma = (b) => {
299
+ Na.unregister(b);
300
+ };
301
+ return T(a);
990
302
  }
991
- }
992
- setMaxHeight(maxHeight) {
993
- if (this._freed)
994
- return;
995
- const { unit, asNumber } = parseValue(maxHeight);
996
- if (unit === Unit.Percent) {
997
- yg.ygNodeStyleSetMaxHeightPercent(this.ptr, asNumber);
998
- } else if (unit === Unit.Point && asNumber !== undefined) {
999
- yg.ygNodeStyleSetMaxHeight(this.ptr, asNumber);
303
+ var Va = {};
304
+ function Wa(a) {
305
+ for (;a.length; ) {
306
+ var b = a.pop();
307
+ a.pop()(b);
308
+ }
1000
309
  }
1001
- }
1002
- setMaxHeightPercent(maxHeight) {
1003
- if (this._freed)
1004
- return;
1005
- if (maxHeight !== undefined) {
1006
- yg.ygNodeStyleSetMaxHeightPercent(this.ptr, maxHeight);
310
+ function Xa(a) {
311
+ return this.fromWireType(D[a >> 2]);
1007
312
  }
1008
- }
1009
- setAspectRatio(aspectRatio) {
1010
- if (this._freed)
1011
- return;
1012
- if (aspectRatio !== undefined) {
1013
- yg.ygNodeStyleSetAspectRatio(this.ptr, aspectRatio);
1014
- }
1015
- }
1016
- getAspectRatio() {
1017
- if (this._freed)
1018
- return NaN;
1019
- return yg.ygNodeStyleGetAspectRatio(this.ptr);
1020
- }
1021
- getWidth() {
1022
- if (this._freed)
1023
- return UNDEFINED_VALUE;
1024
- return unpackValue(yg.ygNodeStyleGetWidthPacked(this.ptr));
1025
- }
1026
- getHeight() {
1027
- if (this._freed)
1028
- return UNDEFINED_VALUE;
1029
- return unpackValue(yg.ygNodeStyleGetHeightPacked(this.ptr));
1030
- }
1031
- getMinWidth() {
1032
- if (this._freed)
1033
- return UNDEFINED_VALUE;
1034
- return unpackValue(yg.ygNodeStyleGetMinWidthPacked(this.ptr));
1035
- }
1036
- getMinHeight() {
1037
- if (this._freed)
1038
- return UNDEFINED_VALUE;
1039
- return unpackValue(yg.ygNodeStyleGetMinHeightPacked(this.ptr));
1040
- }
1041
- getMaxWidth() {
1042
- if (this._freed)
1043
- return UNDEFINED_VALUE;
1044
- return unpackValue(yg.ygNodeStyleGetMaxWidthPacked(this.ptr));
1045
- }
1046
- getMaxHeight() {
1047
- if (this._freed)
1048
- return UNDEFINED_VALUE;
1049
- return unpackValue(yg.ygNodeStyleGetMaxHeightPacked(this.ptr));
1050
- }
1051
- getMargin(edge) {
1052
- if (this._freed)
1053
- return UNDEFINED_VALUE;
1054
- return unpackValue(yg.ygNodeStyleGetMarginPacked(this.ptr, edge));
1055
- }
1056
- getPadding(edge) {
1057
- if (this._freed)
1058
- return UNDEFINED_VALUE;
1059
- return unpackValue(yg.ygNodeStyleGetPaddingPacked(this.ptr, edge));
1060
- }
1061
- getPosition(edge) {
1062
- if (this._freed)
1063
- return UNDEFINED_VALUE;
1064
- return unpackValue(yg.ygNodeStyleGetPositionPacked(this.ptr, edge));
1065
- }
1066
- getGap(gutter) {
1067
- if (this._freed)
1068
- return UNDEFINED_VALUE;
1069
- return unpackValue(yg.ygNodeStyleGetGapPacked(this.ptr, gutter));
1070
- }
1071
- getFlexBasis() {
1072
- if (this._freed)
1073
- return UNDEFINED_VALUE;
1074
- return unpackValue(yg.ygNodeStyleGetFlexBasisPacked(this.ptr));
1075
- }
1076
- setMeasureFunc(measureFunc) {
1077
- if (this._freed)
1078
- return;
1079
- this.unsetMeasureFunc();
1080
- if (measureFunc) {
1081
- this.measureCallback = new JSCallback((nodePtr, width, widthMode, height, heightMode) => {
1082
- const result = measureFunc(width, widthMode, height, heightMode);
1083
- yg.ygStoreMeasureResult(result.width, result.height);
1084
- }, {
1085
- args: [
1086
- FFIType.ptr,
1087
- FFIType.f32,
1088
- FFIType.u32,
1089
- FFIType.f32,
1090
- FFIType.u32
1091
- ],
1092
- returns: FFIType.void
313
+ var U = {}, Ya = {};
314
+ function V(a, b, c) {
315
+ function d(k) {
316
+ k = c(k);
317
+ k.length !== a.length && Ta("Mismatched type converter count");
318
+ for (var m = 0;m < a.length; ++m)
319
+ W(a[m], k[m]);
320
+ }
321
+ a.forEach(function(k) {
322
+ Ya[k] = b;
323
+ });
324
+ var e = Array(b.length), f = [], g = 0;
325
+ b.forEach((k, m) => {
326
+ R.hasOwnProperty(k) ? e[m] = R[k] : (f.push(k), U.hasOwnProperty(k) || (U[k] = []), U[k].push(() => {
327
+ e[m] = R[k];
328
+ ++g;
329
+ g === f.length && d(e);
330
+ }));
1093
331
  });
1094
- if (this.measureCallback.ptr) {
1095
- yg.ygNodeSetMeasureFuncTrampoline(this.ptr, this.measureCallback.ptr);
332
+ f.length === 0 && d(e);
333
+ }
334
+ function Za(a) {
335
+ switch (a) {
336
+ case 1:
337
+ return 0;
338
+ case 2:
339
+ return 1;
340
+ case 4:
341
+ return 2;
342
+ case 8:
343
+ return 3;
344
+ default:
345
+ throw new TypeError("Unknown type size: " + a);
1096
346
  }
1097
347
  }
1098
- }
1099
- unsetMeasureFunc() {
1100
- if (this._freed)
1101
- return;
1102
- if (this.measureCallback) {
1103
- this.measureCallback.close();
1104
- this.measureCallback = null;
348
+ function W(a, b, c = {}) {
349
+ if (!("argPackAdvance" in b))
350
+ throw new TypeError("registerType registeredInstance requires argPackAdvance");
351
+ var d = b.name;
352
+ a || L('type "' + d + '" must have a positive integer typeid pointer');
353
+ if (R.hasOwnProperty(a)) {
354
+ if (c.ua)
355
+ return;
356
+ L("Cannot register type '" + d + "' twice");
357
+ }
358
+ R[a] = b;
359
+ delete Ya[a];
360
+ U.hasOwnProperty(a) && (b = U[a], delete U[a], b.forEach((e) => e()));
361
+ }
362
+ function $a(a) {
363
+ L(a.M.P.N.name + " instance already deleted");
364
+ }
365
+ function X() {}
366
+ function ab(a, b, c) {
367
+ if (a[b].S === undefined) {
368
+ var d = a[b];
369
+ a[b] = function() {
370
+ a[b].S.hasOwnProperty(arguments.length) || L("Function '" + c + "' called with an invalid number of arguments (" + arguments.length + ") - expects one of (" + a[b].S + ")!");
371
+ return a[b].S[arguments.length].apply(this, arguments);
372
+ };
373
+ a[b].S = [];
374
+ a[b].S[d.Z] = d;
375
+ }
376
+ }
377
+ function bb(a, b) {
378
+ h.hasOwnProperty(a) ? (L("Cannot register public name '" + a + "' twice"), ab(h, a, a), h.hasOwnProperty(undefined) && L("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"), h[a].S[undefined] = b) : h[a] = b;
379
+ }
380
+ function cb(a, b, c, d, e, f, g, k) {
381
+ this.name = a;
382
+ this.constructor = b;
383
+ this.X = c;
384
+ this.W = d;
385
+ this.R = e;
386
+ this.pa = f;
387
+ this.ba = g;
388
+ this.na = k;
389
+ this.ja = [];
390
+ }
391
+ function db(a, b, c) {
392
+ for (;b !== c; )
393
+ b.ba || L("Expected null or instance of " + c.name + ", got an instance of " + b.name), a = b.ba(a), b = b.R;
394
+ return a;
395
+ }
396
+ function eb(a, b) {
397
+ if (b === null)
398
+ return this.ea && L("null is not a valid " + this.name), 0;
399
+ b.M || L('Cannot pass "' + fb(b) + '" as a ' + this.name);
400
+ b.M.O || L("Cannot pass deleted object as a pointer of type " + this.name);
401
+ return db(b.M.O, b.M.P.N, this.N);
402
+ }
403
+ function gb(a, b) {
404
+ if (b === null) {
405
+ this.ea && L("null is not a valid " + this.name);
406
+ if (this.da) {
407
+ var c = this.fa();
408
+ a !== null && a.push(this.W, c);
409
+ return c;
410
+ }
411
+ return 0;
412
+ }
413
+ b.M || L('Cannot pass "' + fb(b) + '" as a ' + this.name);
414
+ b.M.O || L("Cannot pass deleted object as a pointer of type " + this.name);
415
+ !this.ca && b.M.P.ca && L("Cannot convert argument of type " + (b.M.U ? b.M.U.name : b.M.P.name) + " to parameter type " + this.name);
416
+ c = db(b.M.O, b.M.P.N, this.N);
417
+ if (this.da)
418
+ switch (b.M.T === undefined && L("Passing raw pointer to smart pointer is illegal"), this.Ba) {
419
+ case 0:
420
+ b.M.U === this ? c = b.M.T : L("Cannot convert argument of type " + (b.M.U ? b.M.U.name : b.M.P.name) + " to parameter type " + this.name);
421
+ break;
422
+ case 1:
423
+ c = b.M.T;
424
+ break;
425
+ case 2:
426
+ if (b.M.U === this)
427
+ c = b.M.T;
428
+ else {
429
+ var d = b.clone();
430
+ c = this.xa(c, Ea(function() {
431
+ d["delete"]();
432
+ }));
433
+ a !== null && a.push(this.W, c);
434
+ }
435
+ break;
436
+ default:
437
+ L("Unsupporting sharing policy");
438
+ }
439
+ return c;
440
+ }
441
+ function hb(a, b) {
442
+ if (b === null)
443
+ return this.ea && L("null is not a valid " + this.name), 0;
444
+ b.M || L('Cannot pass "' + fb(b) + '" as a ' + this.name);
445
+ b.M.O || L("Cannot pass deleted object as a pointer of type " + this.name);
446
+ b.M.P.ca && L("Cannot convert argument of type " + b.M.P.name + " to parameter type " + this.name);
447
+ return db(b.M.O, b.M.P.N, this.N);
448
+ }
449
+ function Y(a, b, c, d) {
450
+ this.name = a;
451
+ this.N = b;
452
+ this.ea = c;
453
+ this.ca = d;
454
+ this.da = false;
455
+ this.W = this.xa = this.fa = this.ka = this.Ba = this.wa = undefined;
456
+ b.R !== undefined ? this.toWireType = gb : (this.toWireType = d ? eb : hb, this.V = null);
457
+ }
458
+ function ib(a, b) {
459
+ h.hasOwnProperty(a) || Ta("Replacing nonexistant public symbol");
460
+ h[a] = b;
461
+ h[a].Z = undefined;
462
+ }
463
+ function jb(a, b) {
464
+ var c = [];
465
+ return function() {
466
+ c.length = 0;
467
+ Object.assign(c, arguments);
468
+ if (a.includes("j")) {
469
+ var d = h["dynCall_" + a];
470
+ d = c && c.length ? d.apply(null, [b].concat(c)) : d.call(null, b);
471
+ } else
472
+ d = oa.get(b).apply(null, c);
473
+ return d;
474
+ };
1105
475
  }
1106
- yg.ygNodeUnsetMeasureFuncTrampoline(this.ptr);
1107
- }
1108
- hasMeasureFunc() {
1109
- if (this._freed)
1110
- return false;
1111
- return yg.ygNodeHasMeasureFunc(this.ptr);
1112
- }
1113
- setBaselineFunc(baselineFunc) {
1114
- if (this._freed)
1115
- return;
1116
- this.unsetBaselineFunc();
1117
- if (baselineFunc) {
1118
- this.baselineCallback = new JSCallback((nodePtr, width, height) => {
1119
- const result = baselineFunc(width, height);
1120
- yg.ygStoreBaselineResult(result);
1121
- }, {
1122
- args: [FFIType.ptr, FFIType.f32, FFIType.f32],
1123
- returns: FFIType.void
1124
- });
1125
- if (this.baselineCallback.ptr) {
1126
- yg.ygNodeSetBaselineFuncTrampoline(this.ptr, this.baselineCallback.ptr);
1127
- }
476
+ function Z(a, b) {
477
+ a = N(a);
478
+ var c = a.includes("j") ? jb(a, b) : oa.get(b);
479
+ typeof c != "function" && L("unknown function pointer with signature " + a + ": " + b);
480
+ return c;
481
+ }
482
+ var mb = undefined;
483
+ function nb(a, b) {
484
+ function c(f) {
485
+ e[f] || R[f] || (Ya[f] ? Ya[f].forEach(c) : (d.push(f), e[f] = true));
486
+ }
487
+ var d = [], e = {};
488
+ b.forEach(c);
489
+ throw new mb(a + ": " + d.map(Ja).join([", "]));
490
+ }
491
+ function ob(a, b, c, d, e) {
492
+ var f = b.length;
493
+ 2 > f && L("argTypes array size mismatch! Must at least get return value and 'this' types!");
494
+ var g = b[1] !== null && c !== null, k = false;
495
+ for (c = 1;c < b.length; ++c)
496
+ if (b[c] !== null && b[c].V === undefined) {
497
+ k = true;
498
+ break;
499
+ }
500
+ var m = b[0].name !== "void", l = f - 2, n = Array(l), p = [], r = [];
501
+ return function() {
502
+ arguments.length !== l && L("function " + a + " called with " + arguments.length + " arguments, expected " + l + " args!");
503
+ r.length = 0;
504
+ p.length = g ? 2 : 1;
505
+ p[0] = e;
506
+ if (g) {
507
+ var u = b[1].toWireType(r, this);
508
+ p[1] = u;
509
+ }
510
+ for (var t = 0;t < l; ++t)
511
+ n[t] = b[t + 2].toWireType(r, arguments[t]), p.push(n[t]);
512
+ t = d.apply(null, p);
513
+ if (k)
514
+ Wa(r);
515
+ else
516
+ for (var y = g ? 1 : 2;y < b.length; y++) {
517
+ var B = y === 1 ? u : n[y - 2];
518
+ b[y].V !== null && b[y].V(B);
519
+ }
520
+ u = m ? b[0].fromWireType(t) : undefined;
521
+ return u;
522
+ };
1128
523
  }
1129
- }
1130
- unsetBaselineFunc() {
1131
- if (this._freed)
1132
- return;
1133
- if (this.baselineCallback) {
1134
- this.baselineCallback.close();
1135
- this.baselineCallback = null;
524
+ function pb(a, b) {
525
+ for (var c = [], d = 0;d < a; d++)
526
+ c.push(E[b + 4 * d >> 2]);
527
+ return c;
528
+ }
529
+ function qb(a) {
530
+ 4 < a && --J[a].ga === 0 && (J[a] = undefined, Ca.push(a));
531
+ }
532
+ function fb(a) {
533
+ if (a === null)
534
+ return "null";
535
+ var b = typeof a;
536
+ return b === "object" || b === "array" || b === "function" ? a.toString() : "" + a;
537
+ }
538
+ function rb(a, b) {
539
+ switch (b) {
540
+ case 2:
541
+ return function(c) {
542
+ return this.fromWireType(la[c >> 2]);
543
+ };
544
+ case 3:
545
+ return function(c) {
546
+ return this.fromWireType(ma[c >> 3]);
547
+ };
548
+ default:
549
+ throw new TypeError("Unknown float type: " + a);
550
+ }
551
+ }
552
+ function sb(a, b, c) {
553
+ switch (b) {
554
+ case 0:
555
+ return c ? function(d) {
556
+ return ja[d];
557
+ } : function(d) {
558
+ return A[d];
559
+ };
560
+ case 1:
561
+ return c ? function(d) {
562
+ return C[d >> 1];
563
+ } : function(d) {
564
+ return ka[d >> 1];
565
+ };
566
+ case 2:
567
+ return c ? function(d) {
568
+ return D[d >> 2];
569
+ } : function(d) {
570
+ return E[d >> 2];
571
+ };
572
+ default:
573
+ throw new TypeError("Unknown integer type: " + a);
574
+ }
1136
575
  }
1137
- yg.ygNodeUnsetBaselineFuncTrampoline(this.ptr);
576
+ function tb(a, b) {
577
+ for (var c = "", d = 0;!(d >= b / 2); ++d) {
578
+ var e = C[a + 2 * d >> 1];
579
+ if (e == 0)
580
+ break;
581
+ c += String.fromCharCode(e);
582
+ }
583
+ return c;
584
+ }
585
+ function ub(a, b, c) {
586
+ c === undefined && (c = 2147483647);
587
+ if (2 > c)
588
+ return 0;
589
+ c -= 2;
590
+ var d = b;
591
+ c = c < 2 * a.length ? c / 2 : a.length;
592
+ for (var e = 0;e < c; ++e)
593
+ C[b >> 1] = a.charCodeAt(e), b += 2;
594
+ C[b >> 1] = 0;
595
+ return b - d;
596
+ }
597
+ function vb(a) {
598
+ return 2 * a.length;
599
+ }
600
+ function wb(a, b) {
601
+ for (var c = 0, d = "";!(c >= b / 4); ) {
602
+ var e = D[a + 4 * c >> 2];
603
+ if (e == 0)
604
+ break;
605
+ ++c;
606
+ 65536 <= e ? (e -= 65536, d += String.fromCharCode(55296 | e >> 10, 56320 | e & 1023)) : d += String.fromCharCode(e);
607
+ }
608
+ return d;
609
+ }
610
+ function xb(a, b, c) {
611
+ c === undefined && (c = 2147483647);
612
+ if (4 > c)
613
+ return 0;
614
+ var d = b;
615
+ c = d + c - 4;
616
+ for (var e = 0;e < a.length; ++e) {
617
+ var f = a.charCodeAt(e);
618
+ if (55296 <= f && 57343 >= f) {
619
+ var g = a.charCodeAt(++e);
620
+ f = 65536 + ((f & 1023) << 10) | g & 1023;
621
+ }
622
+ D[b >> 2] = f;
623
+ b += 4;
624
+ if (b + 4 > c)
625
+ break;
626
+ }
627
+ D[b >> 2] = 0;
628
+ return b - d;
629
+ }
630
+ function yb(a) {
631
+ for (var b = 0, c = 0;c < a.length; ++c) {
632
+ var d = a.charCodeAt(c);
633
+ 55296 <= d && 57343 >= d && ++c;
634
+ b += 4;
635
+ }
636
+ return b;
637
+ }
638
+ var zb = {};
639
+ function Ab(a) {
640
+ var b = zb[a];
641
+ return b === undefined ? N(a) : b;
642
+ }
643
+ var Bb = [];
644
+ function Cb(a) {
645
+ var b = Bb.length;
646
+ Bb.push(a);
647
+ return b;
648
+ }
649
+ function Db(a, b) {
650
+ for (var c = Array(a), d = 0;d < a; ++d)
651
+ c[d] = La(E[b + 4 * d >> 2], "parameter " + d);
652
+ return c;
653
+ }
654
+ var Eb = [], Fb = [null, [], []];
655
+ K = h.BindingError = Da("BindingError");
656
+ h.count_emval_handles = function() {
657
+ for (var a = 0, b = 5;b < J.length; ++b)
658
+ J[b] !== undefined && ++a;
659
+ return a;
660
+ };
661
+ h.get_first_emval = function() {
662
+ for (var a = 5;a < J.length; ++a)
663
+ if (J[a] !== undefined)
664
+ return J[a];
665
+ return null;
666
+ };
667
+ Fa = h.PureVirtualError = Da("PureVirtualError");
668
+ for (var Gb = Array(256), Hb = 0;256 > Hb; ++Hb)
669
+ Gb[Hb] = String.fromCharCode(Hb);
670
+ Ga = Gb;
671
+ h.getInheritedInstanceCount = function() {
672
+ return Object.keys(Q).length;
673
+ };
674
+ h.getLiveInheritedInstances = function() {
675
+ var a = [], b;
676
+ for (b in Q)
677
+ Q.hasOwnProperty(b) && a.push(Q[b]);
678
+ return a;
679
+ };
680
+ h.flushPendingDeletes = Ha;
681
+ h.setDelayFunction = function(a) {
682
+ P = a;
683
+ O.length && P && P(Ha);
684
+ };
685
+ Sa = h.InternalError = Da("InternalError");
686
+ X.prototype.isAliasOf = function(a) {
687
+ if (!(this instanceof X && a instanceof X))
688
+ return false;
689
+ var b = this.M.P.N, c = this.M.O, d = a.M.P.N;
690
+ for (a = a.M.O;b.R; )
691
+ c = b.ba(c), b = b.R;
692
+ for (;d.R; )
693
+ a = d.ba(a), d = d.R;
694
+ return b === d && c === a;
695
+ };
696
+ X.prototype.clone = function() {
697
+ this.M.O || $a(this);
698
+ if (this.M.aa)
699
+ return this.M.count.value += 1, this;
700
+ var a = T, b = Object, c = b.create, d = Object.getPrototypeOf(this), e = this.M;
701
+ a = a(c.call(b, d, { M: { value: { count: e.count, $: e.$, aa: e.aa, O: e.O, P: e.P, T: e.T, U: e.U } } }));
702
+ a.M.count.value += 1;
703
+ a.M.$ = false;
704
+ return a;
705
+ };
706
+ X.prototype["delete"] = function() {
707
+ this.M.O || $a(this);
708
+ this.M.$ && !this.M.aa && L("Object already scheduled for deletion");
709
+ Ma(this);
710
+ Oa(this.M);
711
+ this.M.aa || (this.M.T = undefined, this.M.O = undefined);
712
+ };
713
+ X.prototype.isDeleted = function() {
714
+ return !this.M.O;
715
+ };
716
+ X.prototype.deleteLater = function() {
717
+ this.M.O || $a(this);
718
+ this.M.$ && !this.M.aa && L("Object already scheduled for deletion");
719
+ O.push(this);
720
+ O.length === 1 && P && P(Ha);
721
+ this.M.$ = true;
722
+ return this;
723
+ };
724
+ Y.prototype.qa = function(a) {
725
+ this.ka && (a = this.ka(a));
726
+ return a;
727
+ };
728
+ Y.prototype.ha = function(a) {
729
+ this.W && this.W(a);
730
+ };
731
+ Y.prototype.argPackAdvance = 8;
732
+ Y.prototype.readValueFromPointer = Xa;
733
+ Y.prototype.deleteObject = function(a) {
734
+ if (a !== null)
735
+ a["delete"]();
736
+ };
737
+ Y.prototype.fromWireType = function(a) {
738
+ function b() {
739
+ return this.da ? Ua(this.N.X, { P: this.wa, O: c, U: this, T: a }) : Ua(this.N.X, { P: this, O: a });
740
+ }
741
+ var c = this.qa(a);
742
+ if (!c)
743
+ return this.ha(a), null;
744
+ var d = Ra(this.N, c);
745
+ if (d !== undefined) {
746
+ if (d.M.count.value === 0)
747
+ return d.M.O = c, d.M.T = a, d.clone();
748
+ d = d.clone();
749
+ this.ha(a);
750
+ return d;
751
+ }
752
+ d = this.N.pa(c);
753
+ d = Qa[d];
754
+ if (!d)
755
+ return b.call(this);
756
+ d = this.ca ? d.la : d.pointerType;
757
+ var e = Pa(c, this.N, d.N);
758
+ return e === null ? b.call(this) : this.da ? Ua(d.N.X, { P: d, O: e, U: this, T: a }) : Ua(d.N.X, { P: d, O: e });
759
+ };
760
+ mb = h.UnboundTypeError = Da("UnboundTypeError");
761
+ var xa = typeof atob == "function" ? atob : function(a) {
762
+ var b = "", c = 0;
763
+ a = a.replace(/[^A-Za-z0-9\+\/=]/g, "");
764
+ do {
765
+ var d = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(a.charAt(c++));
766
+ var e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(a.charAt(c++));
767
+ var f = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(a.charAt(c++));
768
+ var g = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(a.charAt(c++));
769
+ d = d << 2 | e >> 4;
770
+ e = (e & 15) << 4 | f >> 2;
771
+ var k = (f & 3) << 6 | g;
772
+ b += String.fromCharCode(d);
773
+ f !== 64 && (b += String.fromCharCode(e));
774
+ g !== 64 && (b += String.fromCharCode(k));
775
+ } while (c < a.length);
776
+ return b;
777
+ }, Jb = {
778
+ l: function(a, b, c, d) {
779
+ x("Assertion failed: " + (a ? z(A, a) : "") + ", at: " + [b ? b ? z(A, b) : "" : "unknown filename", c, d ? d ? z(A, d) : "" : "unknown function"]);
780
+ },
781
+ q: function(a, b, c) {
782
+ a = N(a);
783
+ b = La(b, "wrapper");
784
+ c = M(c);
785
+ var d = [].slice, e = b.N, f = e.X, g = e.R.X, k = e.R.constructor;
786
+ a = Ba(a, function() {
787
+ e.R.ja.forEach(function(l) {
788
+ if (this[l] === g[l])
789
+ throw new Fa("Pure virtual function " + l + " must be implemented in JavaScript");
790
+ }.bind(this));
791
+ Object.defineProperty(this, "__parent", { value: f });
792
+ this.__construct.apply(this, d.call(arguments));
793
+ });
794
+ f.__construct = function() {
795
+ this === f && L("Pass correct 'this' to __construct");
796
+ var l = k.implement.apply(undefined, [this].concat(d.call(arguments)));
797
+ Ma(l);
798
+ var n = l.M;
799
+ l.notifyOnDestruction();
800
+ n.aa = true;
801
+ Object.defineProperties(this, { M: { value: n } });
802
+ T(this);
803
+ l = n.O;
804
+ l = Ia(e, l);
805
+ Q.hasOwnProperty(l) ? L("Tried to register registered instance: " + l) : Q[l] = this;
806
+ };
807
+ f.__destruct = function() {
808
+ this === f && L("Pass correct 'this' to __destruct");
809
+ Ma(this);
810
+ var l = this.M.O;
811
+ l = Ia(e, l);
812
+ Q.hasOwnProperty(l) ? delete Q[l] : L("Tried to unregister unregistered instance: " + l);
813
+ };
814
+ a.prototype = Object.create(f);
815
+ for (var m in c)
816
+ a.prototype[m] = c[m];
817
+ return Ea(a);
818
+ },
819
+ j: function(a) {
820
+ var b = Va[a];
821
+ delete Va[a];
822
+ var { fa: c, W: d, ia: e } = b, f = e.map((g) => g.ta).concat(e.map((g) => g.za));
823
+ V([a], f, (g) => {
824
+ var k = {};
825
+ e.forEach((m, l) => {
826
+ var n = g[l], p = m.ra, r = m.sa, u = g[l + e.length], t = m.ya, y = m.Aa;
827
+ k[m.oa] = { read: (B) => n.fromWireType(p(r, B)), write: (B, ba) => {
828
+ var I = [];
829
+ t(y, B, u.toWireType(I, ba));
830
+ Wa(I);
831
+ } };
832
+ });
833
+ return [{ name: b.name, fromWireType: function(m) {
834
+ var l = {}, n;
835
+ for (n in k)
836
+ l[n] = k[n].read(m);
837
+ d(m);
838
+ return l;
839
+ }, toWireType: function(m, l) {
840
+ for (var n in k)
841
+ if (!(n in l))
842
+ throw new TypeError('Missing field: "' + n + '"');
843
+ var p = c();
844
+ for (n in k)
845
+ k[n].write(p, l[n]);
846
+ m !== null && m.push(d, p);
847
+ return p;
848
+ }, argPackAdvance: 8, readValueFromPointer: Xa, V: d }];
849
+ });
850
+ },
851
+ v: function() {},
852
+ B: function(a, b, c, d, e) {
853
+ var f = Za(c);
854
+ b = N(b);
855
+ W(a, {
856
+ name: b,
857
+ fromWireType: function(g) {
858
+ return !!g;
859
+ },
860
+ toWireType: function(g, k) {
861
+ return k ? d : e;
862
+ },
863
+ argPackAdvance: 8,
864
+ readValueFromPointer: function(g) {
865
+ if (c === 1)
866
+ var k = ja;
867
+ else if (c === 2)
868
+ k = C;
869
+ else if (c === 4)
870
+ k = D;
871
+ else
872
+ throw new TypeError("Unknown boolean type size: " + b);
873
+ return this.fromWireType(k[g >> f]);
874
+ },
875
+ V: null
876
+ });
877
+ },
878
+ f: function(a, b, c, d, e, f, g, k, m, l, n, p, r) {
879
+ n = N(n);
880
+ f = Z(e, f);
881
+ k && (k = Z(g, k));
882
+ l && (l = Z(m, l));
883
+ r = Z(p, r);
884
+ var u = Aa(n);
885
+ bb(u, function() {
886
+ nb("Cannot construct " + n + " due to unbound types", [d]);
887
+ });
888
+ V([a, b, c], d ? [d] : [], function(t) {
889
+ t = t[0];
890
+ if (d) {
891
+ var y = t.N;
892
+ var B = y.X;
893
+ } else
894
+ B = X.prototype;
895
+ t = Ba(u, function() {
896
+ if (Object.getPrototypeOf(this) !== ba)
897
+ throw new K("Use 'new' to construct " + n);
898
+ if (I.Y === undefined)
899
+ throw new K(n + " has no accessible constructor");
900
+ var kb = I.Y[arguments.length];
901
+ if (kb === undefined)
902
+ throw new K("Tried to invoke ctor of " + n + " with invalid number of parameters (" + arguments.length + ") - expected (" + Object.keys(I.Y).toString() + ") parameters instead!");
903
+ return kb.apply(this, arguments);
904
+ });
905
+ var ba = Object.create(B, { constructor: { value: t } });
906
+ t.prototype = ba;
907
+ var I = new cb(n, t, ba, r, y, f, k, l);
908
+ y = new Y(n, I, true, false);
909
+ B = new Y(n + "*", I, false, false);
910
+ var lb = new Y(n + " const*", I, false, true);
911
+ Qa[a] = {
912
+ pointerType: B,
913
+ la: lb
914
+ };
915
+ ib(u, t);
916
+ return [y, B, lb];
917
+ });
918
+ },
919
+ d: function(a, b, c, d, e, f, g) {
920
+ var k = pb(c, d);
921
+ b = N(b);
922
+ f = Z(e, f);
923
+ V([], [a], function(m) {
924
+ function l() {
925
+ nb("Cannot call " + n + " due to unbound types", k);
926
+ }
927
+ m = m[0];
928
+ var n = m.name + "." + b;
929
+ b.startsWith("@@") && (b = Symbol[b.substring(2)]);
930
+ var p = m.N.constructor;
931
+ p[b] === undefined ? (l.Z = c - 1, p[b] = l) : (ab(p, b, n), p[b].S[c - 1] = l);
932
+ V([], k, function(r) {
933
+ r = ob(n, [r[0], null].concat(r.slice(1)), null, f, g);
934
+ p[b].S === undefined ? (r.Z = c - 1, p[b] = r) : p[b].S[c - 1] = r;
935
+ return [];
936
+ });
937
+ return [];
938
+ });
939
+ },
940
+ p: function(a, b, c, d, e, f) {
941
+ 0 < b || x();
942
+ var g = pb(b, c);
943
+ e = Z(d, e);
944
+ V([], [a], function(k) {
945
+ k = k[0];
946
+ var m = "constructor " + k.name;
947
+ k.N.Y === undefined && (k.N.Y = []);
948
+ if (k.N.Y[b - 1] !== undefined)
949
+ throw new K("Cannot register multiple constructors with identical number of parameters (" + (b - 1) + ") for class '" + k.name + "'! Overload resolution is currently only performed using the parameter count, not actual type info!");
950
+ k.N.Y[b - 1] = () => {
951
+ nb("Cannot construct " + k.name + " due to unbound types", g);
952
+ };
953
+ V([], g, function(l) {
954
+ l.splice(1, 0, null);
955
+ k.N.Y[b - 1] = ob(m, l, null, e, f);
956
+ return [];
957
+ });
958
+ return [];
959
+ });
960
+ },
961
+ a: function(a, b, c, d, e, f, g, k) {
962
+ var m = pb(c, d);
963
+ b = N(b);
964
+ f = Z(e, f);
965
+ V([], [a], function(l) {
966
+ function n() {
967
+ nb("Cannot call " + p + " due to unbound types", m);
968
+ }
969
+ l = l[0];
970
+ var p = l.name + "." + b;
971
+ b.startsWith("@@") && (b = Symbol[b.substring(2)]);
972
+ k && l.N.ja.push(b);
973
+ var r = l.N.X, u = r[b];
974
+ u === undefined || u.S === undefined && u.className !== l.name && u.Z === c - 2 ? (n.Z = c - 2, n.className = l.name, r[b] = n) : (ab(r, b, p), r[b].S[c - 2] = n);
975
+ V([], m, function(t) {
976
+ t = ob(p, t, l, f, g);
977
+ r[b].S === undefined ? (t.Z = c - 2, r[b] = t) : r[b].S[c - 2] = t;
978
+ return [];
979
+ });
980
+ return [];
981
+ });
982
+ },
983
+ A: function(a, b) {
984
+ b = N(b);
985
+ W(a, { name: b, fromWireType: function(c) {
986
+ var d = M(c);
987
+ qb(c);
988
+ return d;
989
+ }, toWireType: function(c, d) {
990
+ return Ea(d);
991
+ }, argPackAdvance: 8, readValueFromPointer: Xa, V: null });
992
+ },
993
+ n: function(a, b, c) {
994
+ c = Za(c);
995
+ b = N(b);
996
+ W(a, { name: b, fromWireType: function(d) {
997
+ return d;
998
+ }, toWireType: function(d, e) {
999
+ return e;
1000
+ }, argPackAdvance: 8, readValueFromPointer: rb(b, c), V: null });
1001
+ },
1002
+ e: function(a, b, c, d, e) {
1003
+ b = N(b);
1004
+ e === -1 && (e = 4294967295);
1005
+ e = Za(c);
1006
+ var f = (k) => k;
1007
+ if (d === 0) {
1008
+ var g = 32 - 8 * c;
1009
+ f = (k) => k << g >>> g;
1010
+ }
1011
+ c = b.includes("unsigned") ? function(k, m) {
1012
+ return m >>> 0;
1013
+ } : function(k, m) {
1014
+ return m;
1015
+ };
1016
+ W(a, { name: b, fromWireType: f, toWireType: c, argPackAdvance: 8, readValueFromPointer: sb(b, e, d !== 0), V: null });
1017
+ },
1018
+ b: function(a, b, c) {
1019
+ function d(f) {
1020
+ f >>= 2;
1021
+ var g = E;
1022
+ return new e(ia, g[f + 1], g[f]);
1023
+ }
1024
+ var e = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array][b];
1025
+ c = N(c);
1026
+ W(a, { name: c, fromWireType: d, argPackAdvance: 8, readValueFromPointer: d }, { ua: true });
1027
+ },
1028
+ o: function(a, b) {
1029
+ b = N(b);
1030
+ var c = b === "std::string";
1031
+ W(a, { name: b, fromWireType: function(d) {
1032
+ var e = E[d >> 2], f = d + 4;
1033
+ if (c)
1034
+ for (var g = f, k = 0;k <= e; ++k) {
1035
+ var m = f + k;
1036
+ if (k == e || A[m] == 0) {
1037
+ g = g ? z(A, g, m - g) : "";
1038
+ if (l === undefined)
1039
+ var l = g;
1040
+ else
1041
+ l += String.fromCharCode(0), l += g;
1042
+ g = m + 1;
1043
+ }
1044
+ }
1045
+ else {
1046
+ l = Array(e);
1047
+ for (k = 0;k < e; ++k)
1048
+ l[k] = String.fromCharCode(A[f + k]);
1049
+ l = l.join("");
1050
+ }
1051
+ S(d);
1052
+ return l;
1053
+ }, toWireType: function(d, e) {
1054
+ e instanceof ArrayBuffer && (e = new Uint8Array(e));
1055
+ var f, g = typeof e == "string";
1056
+ g || e instanceof Uint8Array || e instanceof Uint8ClampedArray || e instanceof Int8Array || L("Cannot pass non-string to std::string");
1057
+ if (c && g) {
1058
+ var k = 0;
1059
+ for (f = 0;f < e.length; ++f) {
1060
+ var m = e.charCodeAt(f);
1061
+ 127 >= m ? k++ : 2047 >= m ? k += 2 : 55296 <= m && 57343 >= m ? (k += 4, ++f) : k += 3;
1062
+ }
1063
+ f = k;
1064
+ } else
1065
+ f = e.length;
1066
+ k = Ib(4 + f + 1);
1067
+ m = k + 4;
1068
+ E[k >> 2] = f;
1069
+ if (c && g) {
1070
+ if (g = m, m = f + 1, f = A, 0 < m) {
1071
+ m = g + m - 1;
1072
+ for (var l = 0;l < e.length; ++l) {
1073
+ var n = e.charCodeAt(l);
1074
+ if (55296 <= n && 57343 >= n) {
1075
+ var p = e.charCodeAt(++l);
1076
+ n = 65536 + ((n & 1023) << 10) | p & 1023;
1077
+ }
1078
+ if (127 >= n) {
1079
+ if (g >= m)
1080
+ break;
1081
+ f[g++] = n;
1082
+ } else {
1083
+ if (2047 >= n) {
1084
+ if (g + 1 >= m)
1085
+ break;
1086
+ f[g++] = 192 | n >> 6;
1087
+ } else {
1088
+ if (65535 >= n) {
1089
+ if (g + 2 >= m)
1090
+ break;
1091
+ f[g++] = 224 | n >> 12;
1092
+ } else {
1093
+ if (g + 3 >= m)
1094
+ break;
1095
+ f[g++] = 240 | n >> 18;
1096
+ f[g++] = 128 | n >> 12 & 63;
1097
+ }
1098
+ f[g++] = 128 | n >> 6 & 63;
1099
+ }
1100
+ f[g++] = 128 | n & 63;
1101
+ }
1102
+ }
1103
+ f[g] = 0;
1104
+ }
1105
+ } else if (g)
1106
+ for (g = 0;g < f; ++g)
1107
+ l = e.charCodeAt(g), 255 < l && (S(m), L("String has UTF-16 code units that do not fit in 8 bits")), A[m + g] = l;
1108
+ else
1109
+ for (g = 0;g < f; ++g)
1110
+ A[m + g] = e[g];
1111
+ d !== null && d.push(S, k);
1112
+ return k;
1113
+ }, argPackAdvance: 8, readValueFromPointer: Xa, V: function(d) {
1114
+ S(d);
1115
+ } });
1116
+ },
1117
+ i: function(a, b, c) {
1118
+ c = N(c);
1119
+ if (b === 2) {
1120
+ var d = tb;
1121
+ var e = ub;
1122
+ var f = vb;
1123
+ var g = () => ka;
1124
+ var k = 1;
1125
+ } else
1126
+ b === 4 && (d = wb, e = xb, f = yb, g = () => E, k = 2);
1127
+ W(a, { name: c, fromWireType: function(m) {
1128
+ for (var l = E[m >> 2], n = g(), p, r = m + 4, u = 0;u <= l; ++u) {
1129
+ var t = m + 4 + u * b;
1130
+ if (u == l || n[t >> k] == 0)
1131
+ r = d(r, t - r), p === undefined ? p = r : (p += String.fromCharCode(0), p += r), r = t + b;
1132
+ }
1133
+ S(m);
1134
+ return p;
1135
+ }, toWireType: function(m, l) {
1136
+ typeof l != "string" && L("Cannot pass non-string to C++ string type " + c);
1137
+ var n = f(l), p = Ib(4 + n + b);
1138
+ E[p >> 2] = n >> k;
1139
+ e(l, p + 4, n + b);
1140
+ m !== null && m.push(S, p);
1141
+ return p;
1142
+ }, argPackAdvance: 8, readValueFromPointer: Xa, V: function(m) {
1143
+ S(m);
1144
+ } });
1145
+ },
1146
+ k: function(a, b, c, d, e, f) {
1147
+ Va[a] = { name: N(b), fa: Z(c, d), W: Z(e, f), ia: [] };
1148
+ },
1149
+ h: function(a, b, c, d, e, f, g, k, m, l) {
1150
+ Va[a].ia.push({ oa: N(b), ta: c, ra: Z(d, e), sa: f, za: g, ya: Z(k, m), Aa: l });
1151
+ },
1152
+ C: function(a, b) {
1153
+ b = N(b);
1154
+ W(a, {
1155
+ va: true,
1156
+ name: b,
1157
+ argPackAdvance: 0,
1158
+ fromWireType: function() {},
1159
+ toWireType: function() {}
1160
+ });
1161
+ },
1162
+ s: function(a, b, c, d, e) {
1163
+ a = Bb[a];
1164
+ b = M(b);
1165
+ c = Ab(c);
1166
+ var f = [];
1167
+ E[d >> 2] = Ea(f);
1168
+ return a(b, c, f, e);
1169
+ },
1170
+ t: function(a, b, c, d) {
1171
+ a = Bb[a];
1172
+ b = M(b);
1173
+ c = Ab(c);
1174
+ a(b, c, null, d);
1175
+ },
1176
+ g: qb,
1177
+ m: function(a, b) {
1178
+ var c = Db(a, b), d = c[0];
1179
+ b = d.name + "_$" + c.slice(1).map(function(g) {
1180
+ return g.name;
1181
+ }).join("_") + "$";
1182
+ var e = Eb[b];
1183
+ if (e !== undefined)
1184
+ return e;
1185
+ var f = Array(a - 1);
1186
+ e = Cb((g, k, m, l) => {
1187
+ for (var n = 0, p = 0;p < a - 1; ++p)
1188
+ f[p] = c[p + 1].readValueFromPointer(l + n), n += c[p + 1].argPackAdvance;
1189
+ g = g[k].apply(g, f);
1190
+ for (p = 0;p < a - 1; ++p)
1191
+ c[p + 1].ma && c[p + 1].ma(f[p]);
1192
+ if (!d.va)
1193
+ return d.toWireType(m, g);
1194
+ });
1195
+ return Eb[b] = e;
1196
+ },
1197
+ D: function(a) {
1198
+ 4 < a && (J[a].ga += 1);
1199
+ },
1200
+ r: function(a) {
1201
+ var b = M(a);
1202
+ Wa(b);
1203
+ qb(a);
1204
+ },
1205
+ c: function() {
1206
+ x("");
1207
+ },
1208
+ x: function(a, b, c) {
1209
+ A.copyWithin(a, b, b + c);
1210
+ },
1211
+ w: function(a) {
1212
+ var b = A.length;
1213
+ a >>>= 0;
1214
+ if (2147483648 < a)
1215
+ return false;
1216
+ for (var c = 1;4 >= c; c *= 2) {
1217
+ var d = b * (1 + 0.2 / c);
1218
+ d = Math.min(d, a + 100663296);
1219
+ var e = Math;
1220
+ d = Math.max(a, d);
1221
+ e = e.min.call(e, 2147483648, d + (65536 - d % 65536) % 65536);
1222
+ a: {
1223
+ try {
1224
+ fa.grow(e - ia.byteLength + 65535 >>> 16);
1225
+ na();
1226
+ var f = 1;
1227
+ break a;
1228
+ } catch (g) {}
1229
+ f = undefined;
1230
+ }
1231
+ if (f)
1232
+ return true;
1233
+ }
1234
+ return false;
1235
+ },
1236
+ z: function() {
1237
+ return 52;
1238
+ },
1239
+ u: function() {
1240
+ return 70;
1241
+ },
1242
+ y: function(a, b, c, d) {
1243
+ for (var e = 0, f = 0;f < c; f++) {
1244
+ var g = E[b >> 2], k = E[b + 4 >> 2];
1245
+ b += 8;
1246
+ for (var m = 0;m < k; m++) {
1247
+ var l = A[g + m], n = Fb[a];
1248
+ l === 0 || l === 10 ? ((a === 1 ? ea : v)(z(n, 0)), n.length = 0) : n.push(l);
1249
+ }
1250
+ e += k;
1251
+ }
1252
+ E[d >> 2] = e;
1253
+ return 0;
1254
+ }
1255
+ };
1256
+ (function() {
1257
+ function a(e) {
1258
+ h.asm = e.exports;
1259
+ fa = h.asm.E;
1260
+ na();
1261
+ oa = h.asm.J;
1262
+ qa.unshift(h.asm.F);
1263
+ F--;
1264
+ h.monitorRunDependencies && h.monitorRunDependencies(F);
1265
+ F == 0 && (ta !== null && (clearInterval(ta), ta = null), G && (e = G, G = null, e()));
1266
+ }
1267
+ function b(e) {
1268
+ a(e.instance);
1269
+ }
1270
+ function c(e) {
1271
+ return ya().then(function(f) {
1272
+ return WebAssembly.instantiate(f, d);
1273
+ }).then(function(f) {
1274
+ return f;
1275
+ }).then(e, function(f) {
1276
+ v("failed to asynchronously prepare wasm: " + f);
1277
+ x(f);
1278
+ });
1279
+ }
1280
+ var d = { a: Jb };
1281
+ F++;
1282
+ h.monitorRunDependencies && h.monitorRunDependencies(F);
1283
+ if (h.instantiateWasm)
1284
+ try {
1285
+ return h.instantiateWasm(d, a);
1286
+ } catch (e) {
1287
+ v("Module.instantiateWasm callback failed with error: " + e), ca(e);
1288
+ }
1289
+ (function() {
1290
+ return w || typeof WebAssembly.instantiateStreaming != "function" || ua(H) || typeof fetch != "function" ? c(b) : fetch(H, { credentials: "same-origin" }).then(function(e) {
1291
+ return WebAssembly.instantiateStreaming(e, d).then(b, function(f) {
1292
+ v("wasm streaming compile failed: " + f);
1293
+ v("falling back to ArrayBuffer instantiation");
1294
+ return c(b);
1295
+ });
1296
+ });
1297
+ })().catch(ca);
1298
+ return {};
1299
+ })();
1300
+ h.___wasm_call_ctors = function() {
1301
+ return (h.___wasm_call_ctors = h.asm.F).apply(null, arguments);
1302
+ };
1303
+ var Ka = h.___getTypeName = function() {
1304
+ return (Ka = h.___getTypeName = h.asm.G).apply(null, arguments);
1305
+ };
1306
+ h.__embind_initialize_bindings = function() {
1307
+ return (h.__embind_initialize_bindings = h.asm.H).apply(null, arguments);
1308
+ };
1309
+ var Ib = h._malloc = function() {
1310
+ return (Ib = h._malloc = h.asm.I).apply(null, arguments);
1311
+ }, S = h._free = function() {
1312
+ return (S = h._free = h.asm.K).apply(null, arguments);
1313
+ };
1314
+ h.dynCall_jiji = function() {
1315
+ return (h.dynCall_jiji = h.asm.L).apply(null, arguments);
1316
+ };
1317
+ var Kb;
1318
+ G = function Lb() {
1319
+ Kb || Mb();
1320
+ Kb || (G = Lb);
1321
+ };
1322
+ function Mb() {
1323
+ function a() {
1324
+ if (!Kb && (Kb = true, h.calledRun = true, !ha)) {
1325
+ za(qa);
1326
+ aa(h);
1327
+ if (h.onRuntimeInitialized)
1328
+ h.onRuntimeInitialized();
1329
+ if (h.postRun)
1330
+ for (typeof h.postRun == "function" && (h.postRun = [h.postRun]);h.postRun.length; ) {
1331
+ var b = h.postRun.shift();
1332
+ ra.unshift(b);
1333
+ }
1334
+ za(ra);
1335
+ }
1336
+ }
1337
+ if (!(0 < F)) {
1338
+ if (h.preRun)
1339
+ for (typeof h.preRun == "function" && (h.preRun = [h.preRun]);h.preRun.length; )
1340
+ sa();
1341
+ za(pa);
1342
+ 0 < F || (h.setStatus ? (h.setStatus("Running..."), setTimeout(function() {
1343
+ setTimeout(function() {
1344
+ h.setStatus("");
1345
+ }, 1);
1346
+ a();
1347
+ }, 1)) : a());
1348
+ }
1349
+ }
1350
+ if (h.preInit)
1351
+ for (typeof h.preInit == "function" && (h.preInit = [h.preInit]);0 < h.preInit.length; )
1352
+ h.preInit.pop()();
1353
+ Mb();
1354
+ return loadYoga2.ready;
1355
+ };
1356
+ })();
1357
+ var yoga_wasm_base64_esm_default = loadYoga;
1358
+
1359
+ // ../../node_modules/yoga-layout/dist/src/generated/YGEnums.js
1360
+ var Align = /* @__PURE__ */ function(Align2) {
1361
+ Align2[Align2["Auto"] = 0] = "Auto";
1362
+ Align2[Align2["FlexStart"] = 1] = "FlexStart";
1363
+ Align2[Align2["Center"] = 2] = "Center";
1364
+ Align2[Align2["FlexEnd"] = 3] = "FlexEnd";
1365
+ Align2[Align2["Stretch"] = 4] = "Stretch";
1366
+ Align2[Align2["Baseline"] = 5] = "Baseline";
1367
+ Align2[Align2["SpaceBetween"] = 6] = "SpaceBetween";
1368
+ Align2[Align2["SpaceAround"] = 7] = "SpaceAround";
1369
+ Align2[Align2["SpaceEvenly"] = 8] = "SpaceEvenly";
1370
+ return Align2;
1371
+ }({});
1372
+ var BoxSizing = /* @__PURE__ */ function(BoxSizing2) {
1373
+ BoxSizing2[BoxSizing2["BorderBox"] = 0] = "BorderBox";
1374
+ BoxSizing2[BoxSizing2["ContentBox"] = 1] = "ContentBox";
1375
+ return BoxSizing2;
1376
+ }({});
1377
+ var Dimension = /* @__PURE__ */ function(Dimension2) {
1378
+ Dimension2[Dimension2["Width"] = 0] = "Width";
1379
+ Dimension2[Dimension2["Height"] = 1] = "Height";
1380
+ return Dimension2;
1381
+ }({});
1382
+ var Direction = /* @__PURE__ */ function(Direction2) {
1383
+ Direction2[Direction2["Inherit"] = 0] = "Inherit";
1384
+ Direction2[Direction2["LTR"] = 1] = "LTR";
1385
+ Direction2[Direction2["RTL"] = 2] = "RTL";
1386
+ return Direction2;
1387
+ }({});
1388
+ var Display = /* @__PURE__ */ function(Display2) {
1389
+ Display2[Display2["Flex"] = 0] = "Flex";
1390
+ Display2[Display2["None"] = 1] = "None";
1391
+ Display2[Display2["Contents"] = 2] = "Contents";
1392
+ return Display2;
1393
+ }({});
1394
+ var Edge = /* @__PURE__ */ function(Edge2) {
1395
+ Edge2[Edge2["Left"] = 0] = "Left";
1396
+ Edge2[Edge2["Top"] = 1] = "Top";
1397
+ Edge2[Edge2["Right"] = 2] = "Right";
1398
+ Edge2[Edge2["Bottom"] = 3] = "Bottom";
1399
+ Edge2[Edge2["Start"] = 4] = "Start";
1400
+ Edge2[Edge2["End"] = 5] = "End";
1401
+ Edge2[Edge2["Horizontal"] = 6] = "Horizontal";
1402
+ Edge2[Edge2["Vertical"] = 7] = "Vertical";
1403
+ Edge2[Edge2["All"] = 8] = "All";
1404
+ return Edge2;
1405
+ }({});
1406
+ var Errata = /* @__PURE__ */ function(Errata2) {
1407
+ Errata2[Errata2["None"] = 0] = "None";
1408
+ Errata2[Errata2["StretchFlexBasis"] = 1] = "StretchFlexBasis";
1409
+ Errata2[Errata2["AbsolutePositionWithoutInsetsExcludesPadding"] = 2] = "AbsolutePositionWithoutInsetsExcludesPadding";
1410
+ Errata2[Errata2["AbsolutePercentAgainstInnerSize"] = 4] = "AbsolutePercentAgainstInnerSize";
1411
+ Errata2[Errata2["All"] = 2147483647] = "All";
1412
+ Errata2[Errata2["Classic"] = 2147483646] = "Classic";
1413
+ return Errata2;
1414
+ }({});
1415
+ var ExperimentalFeature = /* @__PURE__ */ function(ExperimentalFeature2) {
1416
+ ExperimentalFeature2[ExperimentalFeature2["WebFlexBasis"] = 0] = "WebFlexBasis";
1417
+ return ExperimentalFeature2;
1418
+ }({});
1419
+ var FlexDirection = /* @__PURE__ */ function(FlexDirection2) {
1420
+ FlexDirection2[FlexDirection2["Column"] = 0] = "Column";
1421
+ FlexDirection2[FlexDirection2["ColumnReverse"] = 1] = "ColumnReverse";
1422
+ FlexDirection2[FlexDirection2["Row"] = 2] = "Row";
1423
+ FlexDirection2[FlexDirection2["RowReverse"] = 3] = "RowReverse";
1424
+ return FlexDirection2;
1425
+ }({});
1426
+ var Gutter = /* @__PURE__ */ function(Gutter2) {
1427
+ Gutter2[Gutter2["Column"] = 0] = "Column";
1428
+ Gutter2[Gutter2["Row"] = 1] = "Row";
1429
+ Gutter2[Gutter2["All"] = 2] = "All";
1430
+ return Gutter2;
1431
+ }({});
1432
+ var Justify = /* @__PURE__ */ function(Justify2) {
1433
+ Justify2[Justify2["FlexStart"] = 0] = "FlexStart";
1434
+ Justify2[Justify2["Center"] = 1] = "Center";
1435
+ Justify2[Justify2["FlexEnd"] = 2] = "FlexEnd";
1436
+ Justify2[Justify2["SpaceBetween"] = 3] = "SpaceBetween";
1437
+ Justify2[Justify2["SpaceAround"] = 4] = "SpaceAround";
1438
+ Justify2[Justify2["SpaceEvenly"] = 5] = "SpaceEvenly";
1439
+ return Justify2;
1440
+ }({});
1441
+ var LogLevel = /* @__PURE__ */ function(LogLevel2) {
1442
+ LogLevel2[LogLevel2["Error"] = 0] = "Error";
1443
+ LogLevel2[LogLevel2["Warn"] = 1] = "Warn";
1444
+ LogLevel2[LogLevel2["Info"] = 2] = "Info";
1445
+ LogLevel2[LogLevel2["Debug"] = 3] = "Debug";
1446
+ LogLevel2[LogLevel2["Verbose"] = 4] = "Verbose";
1447
+ LogLevel2[LogLevel2["Fatal"] = 5] = "Fatal";
1448
+ return LogLevel2;
1449
+ }({});
1450
+ var MeasureMode = /* @__PURE__ */ function(MeasureMode2) {
1451
+ MeasureMode2[MeasureMode2["Undefined"] = 0] = "Undefined";
1452
+ MeasureMode2[MeasureMode2["Exactly"] = 1] = "Exactly";
1453
+ MeasureMode2[MeasureMode2["AtMost"] = 2] = "AtMost";
1454
+ return MeasureMode2;
1455
+ }({});
1456
+ var NodeType = /* @__PURE__ */ function(NodeType2) {
1457
+ NodeType2[NodeType2["Default"] = 0] = "Default";
1458
+ NodeType2[NodeType2["Text"] = 1] = "Text";
1459
+ return NodeType2;
1460
+ }({});
1461
+ var Overflow = /* @__PURE__ */ function(Overflow2) {
1462
+ Overflow2[Overflow2["Visible"] = 0] = "Visible";
1463
+ Overflow2[Overflow2["Hidden"] = 1] = "Hidden";
1464
+ Overflow2[Overflow2["Scroll"] = 2] = "Scroll";
1465
+ return Overflow2;
1466
+ }({});
1467
+ var PositionType = /* @__PURE__ */ function(PositionType2) {
1468
+ PositionType2[PositionType2["Static"] = 0] = "Static";
1469
+ PositionType2[PositionType2["Relative"] = 1] = "Relative";
1470
+ PositionType2[PositionType2["Absolute"] = 2] = "Absolute";
1471
+ return PositionType2;
1472
+ }({});
1473
+ var Unit = /* @__PURE__ */ function(Unit2) {
1474
+ Unit2[Unit2["Undefined"] = 0] = "Undefined";
1475
+ Unit2[Unit2["Point"] = 1] = "Point";
1476
+ Unit2[Unit2["Percent"] = 2] = "Percent";
1477
+ Unit2[Unit2["Auto"] = 3] = "Auto";
1478
+ return Unit2;
1479
+ }({});
1480
+ var Wrap = /* @__PURE__ */ function(Wrap2) {
1481
+ Wrap2[Wrap2["NoWrap"] = 0] = "NoWrap";
1482
+ Wrap2[Wrap2["Wrap"] = 1] = "Wrap";
1483
+ Wrap2[Wrap2["WrapReverse"] = 2] = "WrapReverse";
1484
+ return Wrap2;
1485
+ }({});
1486
+ var constants = {
1487
+ ALIGN_AUTO: Align.Auto,
1488
+ ALIGN_FLEX_START: Align.FlexStart,
1489
+ ALIGN_CENTER: Align.Center,
1490
+ ALIGN_FLEX_END: Align.FlexEnd,
1491
+ ALIGN_STRETCH: Align.Stretch,
1492
+ ALIGN_BASELINE: Align.Baseline,
1493
+ ALIGN_SPACE_BETWEEN: Align.SpaceBetween,
1494
+ ALIGN_SPACE_AROUND: Align.SpaceAround,
1495
+ ALIGN_SPACE_EVENLY: Align.SpaceEvenly,
1496
+ BOX_SIZING_BORDER_BOX: BoxSizing.BorderBox,
1497
+ BOX_SIZING_CONTENT_BOX: BoxSizing.ContentBox,
1498
+ DIMENSION_WIDTH: Dimension.Width,
1499
+ DIMENSION_HEIGHT: Dimension.Height,
1500
+ DIRECTION_INHERIT: Direction.Inherit,
1501
+ DIRECTION_LTR: Direction.LTR,
1502
+ DIRECTION_RTL: Direction.RTL,
1503
+ DISPLAY_FLEX: Display.Flex,
1504
+ DISPLAY_NONE: Display.None,
1505
+ DISPLAY_CONTENTS: Display.Contents,
1506
+ EDGE_LEFT: Edge.Left,
1507
+ EDGE_TOP: Edge.Top,
1508
+ EDGE_RIGHT: Edge.Right,
1509
+ EDGE_BOTTOM: Edge.Bottom,
1510
+ EDGE_START: Edge.Start,
1511
+ EDGE_END: Edge.End,
1512
+ EDGE_HORIZONTAL: Edge.Horizontal,
1513
+ EDGE_VERTICAL: Edge.Vertical,
1514
+ EDGE_ALL: Edge.All,
1515
+ ERRATA_NONE: Errata.None,
1516
+ ERRATA_STRETCH_FLEX_BASIS: Errata.StretchFlexBasis,
1517
+ ERRATA_ABSOLUTE_POSITION_WITHOUT_INSETS_EXCLUDES_PADDING: Errata.AbsolutePositionWithoutInsetsExcludesPadding,
1518
+ ERRATA_ABSOLUTE_PERCENT_AGAINST_INNER_SIZE: Errata.AbsolutePercentAgainstInnerSize,
1519
+ ERRATA_ALL: Errata.All,
1520
+ ERRATA_CLASSIC: Errata.Classic,
1521
+ EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS: ExperimentalFeature.WebFlexBasis,
1522
+ FLEX_DIRECTION_COLUMN: FlexDirection.Column,
1523
+ FLEX_DIRECTION_COLUMN_REVERSE: FlexDirection.ColumnReverse,
1524
+ FLEX_DIRECTION_ROW: FlexDirection.Row,
1525
+ FLEX_DIRECTION_ROW_REVERSE: FlexDirection.RowReverse,
1526
+ GUTTER_COLUMN: Gutter.Column,
1527
+ GUTTER_ROW: Gutter.Row,
1528
+ GUTTER_ALL: Gutter.All,
1529
+ JUSTIFY_FLEX_START: Justify.FlexStart,
1530
+ JUSTIFY_CENTER: Justify.Center,
1531
+ JUSTIFY_FLEX_END: Justify.FlexEnd,
1532
+ JUSTIFY_SPACE_BETWEEN: Justify.SpaceBetween,
1533
+ JUSTIFY_SPACE_AROUND: Justify.SpaceAround,
1534
+ JUSTIFY_SPACE_EVENLY: Justify.SpaceEvenly,
1535
+ LOG_LEVEL_ERROR: LogLevel.Error,
1536
+ LOG_LEVEL_WARN: LogLevel.Warn,
1537
+ LOG_LEVEL_INFO: LogLevel.Info,
1538
+ LOG_LEVEL_DEBUG: LogLevel.Debug,
1539
+ LOG_LEVEL_VERBOSE: LogLevel.Verbose,
1540
+ LOG_LEVEL_FATAL: LogLevel.Fatal,
1541
+ MEASURE_MODE_UNDEFINED: MeasureMode.Undefined,
1542
+ MEASURE_MODE_EXACTLY: MeasureMode.Exactly,
1543
+ MEASURE_MODE_AT_MOST: MeasureMode.AtMost,
1544
+ NODE_TYPE_DEFAULT: NodeType.Default,
1545
+ NODE_TYPE_TEXT: NodeType.Text,
1546
+ OVERFLOW_VISIBLE: Overflow.Visible,
1547
+ OVERFLOW_HIDDEN: Overflow.Hidden,
1548
+ OVERFLOW_SCROLL: Overflow.Scroll,
1549
+ POSITION_TYPE_STATIC: PositionType.Static,
1550
+ POSITION_TYPE_RELATIVE: PositionType.Relative,
1551
+ POSITION_TYPE_ABSOLUTE: PositionType.Absolute,
1552
+ UNIT_UNDEFINED: Unit.Undefined,
1553
+ UNIT_POINT: Unit.Point,
1554
+ UNIT_PERCENT: Unit.Percent,
1555
+ UNIT_AUTO: Unit.Auto,
1556
+ WRAP_NO_WRAP: Wrap.NoWrap,
1557
+ WRAP_WRAP: Wrap.Wrap,
1558
+ WRAP_WRAP_REVERSE: Wrap.WrapReverse
1559
+ };
1560
+ var YGEnums_default = constants;
1561
+
1562
+ // ../../node_modules/yoga-layout/dist/src/wrapAssembly.js
1563
+ function wrapAssembly(lib) {
1564
+ function patch(prototype, name, fn) {
1565
+ const original = prototype[name];
1566
+ prototype[name] = function() {
1567
+ for (var _len = arguments.length, args = new Array(_len), _key = 0;_key < _len; _key++) {
1568
+ args[_key] = arguments[_key];
1569
+ }
1570
+ return fn.call(this, original, ...args);
1571
+ };
1138
1572
  }
1139
- hasBaselineFunc() {
1140
- if (this._freed)
1141
- return false;
1142
- return yg.ygNodeHasBaselineFunc(this.ptr);
1573
+ for (const fnName of ["setPosition", "setMargin", "setFlexBasis", "setWidth", "setHeight", "setMinWidth", "setMinHeight", "setMaxWidth", "setMaxHeight", "setPadding", "setGap"]) {
1574
+ const methods = {
1575
+ [Unit.Point]: lib.Node.prototype[fnName],
1576
+ [Unit.Percent]: lib.Node.prototype[`${fnName}Percent`],
1577
+ [Unit.Auto]: lib.Node.prototype[`${fnName}Auto`]
1578
+ };
1579
+ patch(lib.Node.prototype, fnName, function(original) {
1580
+ for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1;_key2 < _len2; _key2++) {
1581
+ args[_key2 - 1] = arguments[_key2];
1582
+ }
1583
+ const value = args.pop();
1584
+ let unit, asNumber;
1585
+ if (value === "auto") {
1586
+ unit = Unit.Auto;
1587
+ asNumber = undefined;
1588
+ } else if (typeof value === "object") {
1589
+ unit = value.unit;
1590
+ asNumber = value.valueOf();
1591
+ } else {
1592
+ unit = typeof value === "string" && value.endsWith("%") ? Unit.Percent : Unit.Point;
1593
+ asNumber = parseFloat(value);
1594
+ if (value !== undefined && !Number.isNaN(value) && Number.isNaN(asNumber)) {
1595
+ throw new Error(`Invalid value ${value} for ${fnName}`);
1596
+ }
1597
+ }
1598
+ if (!methods[unit])
1599
+ throw new Error(`Failed to execute "${fnName}": Unsupported unit '${value}'`);
1600
+ if (asNumber !== undefined) {
1601
+ return methods[unit].call(this, ...args, asNumber);
1602
+ } else {
1603
+ return methods[unit].call(this, ...args);
1604
+ }
1605
+ });
1143
1606
  }
1144
- setDirtiedFunc(dirtiedFunc) {
1145
- if (this._freed)
1146
- return;
1147
- this.unsetDirtiedFunc();
1148
- if (dirtiedFunc) {
1149
- const node = this;
1150
- this.dirtiedCallback = new JSCallback((nodePtr) => {
1151
- dirtiedFunc(node);
1152
- }, {
1153
- args: [FFIType.ptr],
1154
- returns: FFIType.void
1155
- });
1156
- if (this.dirtiedCallback.ptr) {
1157
- yg.ygNodeSetDirtiedFunc(this.ptr, this.dirtiedCallback.ptr);
1607
+ function wrapMeasureFunction(measureFunction) {
1608
+ return lib.MeasureCallback.implement({
1609
+ measure: function() {
1610
+ const {
1611
+ width,
1612
+ height
1613
+ } = measureFunction(...arguments);
1614
+ return {
1615
+ width: width ?? NaN,
1616
+ height: height ?? NaN
1617
+ };
1158
1618
  }
1159
- }
1619
+ });
1160
1620
  }
1161
- unsetDirtiedFunc() {
1162
- if (this._freed)
1163
- return;
1164
- if (this.dirtiedCallback) {
1165
- this.dirtiedCallback.close();
1166
- this.dirtiedCallback = null;
1621
+ patch(lib.Node.prototype, "setMeasureFunc", function(original, measureFunc) {
1622
+ if (measureFunc) {
1623
+ return original.call(this, wrapMeasureFunction(measureFunc));
1624
+ } else {
1625
+ return this.unsetMeasureFunc();
1167
1626
  }
1168
- yg.ygNodeUnsetDirtiedFunc(this.ptr);
1169
- }
1170
- hasDirtiedFunc() {
1171
- if (this._freed)
1172
- return false;
1173
- return yg.ygNodeGetDirtiedFunc(this.ptr) !== null;
1627
+ });
1628
+ function wrapDirtiedFunc(dirtiedFunction) {
1629
+ return lib.DirtiedCallback.implement({
1630
+ dirtied: dirtiedFunction
1631
+ });
1174
1632
  }
1633
+ patch(lib.Node.prototype, "setDirtiedFunc", function(original, dirtiedFunc) {
1634
+ original.call(this, wrapDirtiedFunc(dirtiedFunc));
1635
+ });
1636
+ patch(lib.Config.prototype, "free", function() {
1637
+ lib.Config.destroy(this);
1638
+ });
1639
+ patch(lib.Node, "create", (_, config) => {
1640
+ return config ? lib.Node.createWithConfig(config) : lib.Node.createDefault();
1641
+ });
1642
+ patch(lib.Node.prototype, "free", function() {
1643
+ lib.Node.destroy(this);
1644
+ });
1645
+ patch(lib.Node.prototype, "freeRecursive", function() {
1646
+ for (let t = 0, T = this.getChildCount();t < T; ++t) {
1647
+ this.getChild(0).freeRecursive();
1648
+ }
1649
+ this.free();
1650
+ });
1651
+ patch(lib.Node.prototype, "calculateLayout", function(original) {
1652
+ let width = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : NaN;
1653
+ let height = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : NaN;
1654
+ let direction = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Direction.LTR;
1655
+ return original.call(this, width, height, direction);
1656
+ });
1657
+ return {
1658
+ Config: lib.Config,
1659
+ Node: lib.Node,
1660
+ ...YGEnums_default
1661
+ };
1175
1662
  }
1176
1663
 
1177
- class Config {
1178
- ptr;
1179
- constructor(ptr) {
1180
- this.ptr = ptr;
1181
- }
1182
- static create() {
1183
- const ptr = yg.ygConfigNew();
1184
- if (!ptr)
1185
- throw new Error("Failed to create config");
1186
- return new Config(ptr);
1187
- }
1188
- static destroy(config) {
1189
- config.free();
1190
- }
1191
- free() {
1192
- yg.ygConfigFree(this.ptr);
1193
- }
1194
- setUseWebDefaults(useWebDefaults) {
1195
- yg.ygConfigSetUseWebDefaults(this.ptr, useWebDefaults);
1196
- }
1197
- useWebDefaults() {
1198
- return yg.ygConfigGetUseWebDefaults(this.ptr);
1199
- }
1200
- setPointScaleFactor(pointScaleFactor) {
1201
- yg.ygConfigSetPointScaleFactor(this.ptr, pointScaleFactor);
1202
- }
1203
- getPointScaleFactor() {
1204
- return yg.ygConfigGetPointScaleFactor(this.ptr);
1205
- }
1206
- setErrata(errata) {
1207
- yg.ygConfigSetErrata(this.ptr, errata);
1208
- }
1209
- getErrata() {
1210
- return yg.ygConfigGetErrata(this.ptr);
1211
- }
1212
- setExperimentalFeatureEnabled(feature, enabled) {
1213
- yg.ygConfigSetExperimentalFeatureEnabled(this.ptr, feature, enabled);
1214
- }
1215
- isExperimentalFeatureEnabled(feature) {
1216
- return yg.ygConfigIsExperimentalFeatureEnabled(this.ptr, feature);
1217
- }
1218
- }
1219
- var dist_default = {
1220
- Node,
1221
- Config,
1222
- Align,
1223
- BoxSizing,
1224
- Dimension,
1225
- Direction,
1226
- Display,
1227
- Edge,
1228
- Errata,
1229
- ExperimentalFeature,
1230
- FlexDirection,
1231
- Gutter,
1232
- Justify,
1233
- LogLevel,
1234
- MeasureMode,
1235
- NodeType,
1236
- Overflow,
1237
- PositionType,
1238
- Unit,
1239
- Wrap,
1240
- EDGE_LEFT,
1241
- EDGE_TOP,
1242
- EDGE_RIGHT,
1243
- EDGE_BOTTOM,
1244
- EDGE_START,
1245
- EDGE_END,
1246
- EDGE_HORIZONTAL,
1247
- EDGE_VERTICAL,
1248
- EDGE_ALL,
1249
- FLEX_DIRECTION_COLUMN,
1250
- FLEX_DIRECTION_COLUMN_REVERSE,
1251
- FLEX_DIRECTION_ROW,
1252
- FLEX_DIRECTION_ROW_REVERSE,
1253
- JUSTIFY_FLEX_START,
1254
- JUSTIFY_CENTER,
1255
- JUSTIFY_FLEX_END,
1256
- JUSTIFY_SPACE_BETWEEN,
1257
- JUSTIFY_SPACE_AROUND,
1258
- JUSTIFY_SPACE_EVENLY,
1259
- ALIGN_AUTO,
1260
- ALIGN_FLEX_START,
1261
- ALIGN_CENTER,
1262
- ALIGN_FLEX_END,
1263
- ALIGN_STRETCH,
1264
- ALIGN_BASELINE,
1265
- ALIGN_SPACE_BETWEEN,
1266
- ALIGN_SPACE_AROUND,
1267
- ALIGN_SPACE_EVENLY,
1268
- WRAP_NO_WRAP,
1269
- WRAP_WRAP,
1270
- WRAP_WRAP_REVERSE,
1271
- OVERFLOW_VISIBLE,
1272
- OVERFLOW_HIDDEN,
1273
- OVERFLOW_SCROLL,
1274
- DISPLAY_FLEX,
1275
- DISPLAY_NONE,
1276
- POSITION_TYPE_STATIC,
1277
- POSITION_TYPE_RELATIVE,
1278
- POSITION_TYPE_ABSOLUTE,
1279
- DIRECTION_INHERIT,
1280
- DIRECTION_LTR,
1281
- DIRECTION_RTL
1282
- };
1664
+ // ../../node_modules/yoga-layout/dist/src/index.js
1665
+ var Yoga = wrapAssembly(await yoga_wasm_base64_esm_default());
1666
+ var src_default = Yoga;
1283
1667
 
1284
1668
  // src/lib/border.ts
1285
1669
  var BorderChars = {
@@ -1858,9 +2242,11 @@ var parseKeypress = (s = "", options = {}) => {
1858
2242
  const modifier = parseInt(modifyOtherKeysMatch[1], 10) - 1;
1859
2243
  const charCode = parseInt(modifyOtherKeysMatch[2], 10);
1860
2244
  key.ctrl = !!(modifier & 4);
1861
- key.meta = !!(modifier & 10);
2245
+ key.meta = !!(modifier & 2);
1862
2246
  key.shift = !!(modifier & 1);
1863
2247
  key.option = !!(modifier & 2);
2248
+ key.super = !!(modifier & 8);
2249
+ key.hyper = !!(modifier & 16);
1864
2250
  if (charCode === 13) {
1865
2251
  key.name = "return";
1866
2252
  } else if (charCode === 27) {
@@ -1937,9 +2323,11 @@ var parseKeypress = (s = "", options = {}) => {
1937
2323
  const code = [parts[1], parts[2], parts[4], parts[6]].filter(Boolean).join("");
1938
2324
  const modifier = parseInt(parts[3] || parts[5] || "1", 10) - 1;
1939
2325
  key.ctrl = !!(modifier & 4);
1940
- key.meta = !!(modifier & 10);
2326
+ key.meta = !!(modifier & 2);
1941
2327
  key.shift = !!(modifier & 1);
1942
2328
  key.option = !!(modifier & 2);
2329
+ key.super = !!(modifier & 8);
2330
+ key.hyper = !!(modifier & 16);
1943
2331
  key.code = code;
1944
2332
  const keyNameResult = keyName[code];
1945
2333
  if (keyNameResult) {
@@ -6817,9 +7205,22 @@ function getParsers() {
6817
7205
  }
6818
7206
 
6819
7207
  // src/lib/tree-sitter/client.ts
6820
- import { resolve as resolve2, isAbsolute } from "path";
6821
- import { existsSync as existsSync2 } from "fs";
6822
- import { parse } from "path";
7208
+ import { resolve as resolve2, isAbsolute, parse } from "path";
7209
+ import { existsSync } from "fs";
7210
+
7211
+ // src/lib/bunfs.ts
7212
+ import { basename, join } from "path";
7213
+ function isBunfsPath(path) {
7214
+ return path.includes("$bunfs") || /^B:[\\/]~BUN/i.test(path);
7215
+ }
7216
+ function getBunfsRootPath() {
7217
+ return process.platform === "win32" ? "B:\\~BUN\\root" : "/$bunfs/root";
7218
+ }
7219
+ function normalizeBunfsPath(fileName) {
7220
+ return join(getBunfsRootPath(), basename(fileName));
7221
+ }
7222
+
7223
+ // src/lib/tree-sitter/client.ts
6823
7224
  registerEnvVar({
6824
7225
  name: "OTUI_TREE_SITTER_WORKER_PATH",
6825
7226
  description: "Path to the TreeSitter worker",
@@ -6879,7 +7280,7 @@ class TreeSitterClient extends EventEmitter3 {
6879
7280
  worker_path = this.options.workerPath;
6880
7281
  } else {
6881
7282
  worker_path = new URL("./parser.worker.js", import.meta.url).href;
6882
- if (!existsSync2(resolve2(import.meta.dirname, "parser.worker.js"))) {
7283
+ if (!existsSync(resolve2(import.meta.dirname, "parser.worker.js"))) {
6883
7284
  worker_path = new URL("./parser.worker.ts", import.meta.url).href;
6884
7285
  }
6885
7286
  }
@@ -6941,8 +7342,8 @@ class TreeSitterClient extends EventEmitter3 {
6941
7342
  if (isUrl(path)) {
6942
7343
  return path;
6943
7344
  }
6944
- if (/\$bunfs/.test(path)) {
6945
- return "/$bunfs/root/" + parse(path).base;
7345
+ if (isBunfsPath(path)) {
7346
+ return normalizeBunfsPath(parse(path).base);
6946
7347
  }
6947
7348
  if (!isAbsolute(path)) {
6948
7349
  return resolve2(path);
@@ -8772,8 +9173,8 @@ function createTerminalPalette(stdin, stdout, writeFn, isLegacyTmux) {
8772
9173
  return new TerminalPalette(stdin, stdout, writeFn, isLegacyTmux);
8773
9174
  }
8774
9175
  // src/zig.ts
8775
- import { dlopen as dlopen2, toArrayBuffer as toArrayBuffer4, JSCallback as JSCallback2, ptr as ptr3 } from "bun:ffi";
8776
- import { existsSync as existsSync3 } from "fs";
9176
+ import { dlopen, toArrayBuffer as toArrayBuffer4, JSCallback, ptr as ptr3 } from "bun:ffi";
9177
+ import { existsSync as existsSync2 } from "fs";
8777
9178
  import { EventEmitter as EventEmitter5 } from "events";
8778
9179
 
8779
9180
  // src/buffer.ts
@@ -8840,9 +9241,9 @@ class OptimizedBuffer {
8840
9241
  }
8841
9242
  return this._rawBuffers;
8842
9243
  }
8843
- constructor(lib2, ptr, width, height, options) {
9244
+ constructor(lib, ptr, width, height, options) {
8844
9245
  this.id = options.id || `fb_${OptimizedBuffer.fbIdCounter++}`;
8845
- this.lib = lib2;
9246
+ this.lib = lib;
8846
9247
  this.respectAlpha = options.respectAlpha || false;
8847
9248
  this._width = width;
8848
9249
  this._height = height;
@@ -8850,10 +9251,10 @@ class OptimizedBuffer {
8850
9251
  this.bufferPtr = ptr;
8851
9252
  }
8852
9253
  static create(width, height, widthMethod, options = {}) {
8853
- const lib2 = resolveRenderLib();
9254
+ const lib = resolveRenderLib();
8854
9255
  const respectAlpha = options.respectAlpha || false;
8855
9256
  const id = options.id && options.id.trim() !== "" ? options.id : "unnamed buffer";
8856
- const buffer = lib2.createOptimizedBuffer(width, height, widthMethod, respectAlpha, id);
9257
+ const buffer = lib.createOptimizedBuffer(width, height, widthMethod, respectAlpha, id);
8857
9258
  return buffer;
8858
9259
  }
8859
9260
  get widthMethod() {
@@ -9692,10 +10093,10 @@ var MeasureResultStruct = defineStruct([
9692
10093
  // src/zig.ts
9693
10094
  var module = await import(`@opentui/core-${process.platform}-${process.arch}/index.ts`);
9694
10095
  var targetLibPath = module.default;
9695
- if (/\$bunfs/.test(targetLibPath)) {
10096
+ if (isBunfsPath(targetLibPath)) {
9696
10097
  targetLibPath = targetLibPath.replace("../", "");
9697
10098
  }
9698
- if (!existsSync3(targetLibPath)) {
10099
+ if (!existsSync2(targetLibPath)) {
9699
10100
  throw new Error(`opentui is not supported on the current platform: ${process.platform}-${process.arch}`);
9700
10101
  }
9701
10102
  registerEnvVar({
@@ -9724,7 +10125,7 @@ registerEnvVar({
9724
10125
  });
9725
10126
  function getOpenTUILib(libPath) {
9726
10127
  const resolvedLibPath = libPath || targetLibPath;
9727
- const rawSymbols = dlopen2(resolvedLibPath, {
10128
+ const rawSymbols = dlopen(resolvedLibPath, {
9728
10129
  setLogCallback: {
9729
10130
  args: ["ptr"],
9730
10131
  returns: "void"
@@ -10652,7 +11053,7 @@ class FFIRenderLib {
10652
11053
  if (this.logCallbackWrapper) {
10653
11054
  return;
10654
11055
  }
10655
- const logCallback = new JSCallback2((level, msgPtr, msgLenBigInt) => {
11056
+ const logCallback = new JSCallback((level, msgPtr, msgLenBigInt) => {
10656
11057
  try {
10657
11058
  const msgLen = typeof msgLenBigInt === "bigint" ? Number(msgLenBigInt) : msgLenBigInt;
10658
11059
  if (msgLen === 0 || !msgPtr) {
@@ -10697,7 +11098,7 @@ class FFIRenderLib {
10697
11098
  if (this.eventCallbackWrapper) {
10698
11099
  return;
10699
11100
  }
10700
- const eventCallback = new JSCallback2((namePtr, nameLenBigInt, dataPtr, dataLenBigInt) => {
11101
+ const eventCallback = new JSCallback((namePtr, nameLenBigInt, dataPtr, dataLenBigInt) => {
10701
11102
  try {
10702
11103
  const nameLen = typeof nameLenBigInt === "bigint" ? Number(nameLenBigInt) : nameLenBigInt;
10703
11104
  const dataLen = typeof dataLenBigInt === "bigint" ? Number(dataLenBigInt) : dataLenBigInt;
@@ -11710,13 +12111,13 @@ class TextBuffer {
11710
12111
  _textBytes;
11711
12112
  _memId;
11712
12113
  _appendedChunks = [];
11713
- constructor(lib2, ptr4) {
11714
- this.lib = lib2;
12114
+ constructor(lib, ptr4) {
12115
+ this.lib = lib;
11715
12116
  this.bufferPtr = ptr4;
11716
12117
  }
11717
12118
  static create(widthMethod) {
11718
- const lib2 = resolveRenderLib();
11719
- return lib2.createTextBuffer(widthMethod);
12119
+ const lib = resolveRenderLib();
12120
+ return lib.createTextBuffer(widthMethod);
11720
12121
  }
11721
12122
  guard() {
11722
12123
  if (this._destroyed)
@@ -12024,7 +12425,7 @@ class BaseRenderable extends EventEmitter6 {
12024
12425
  this._visible = value;
12025
12426
  }
12026
12427
  }
12027
- var yogaConfig = dist_default.Config.create();
12428
+ var yogaConfig = src_default.Config.create();
12028
12429
  yogaConfig.setUseWebDefaults(false);
12029
12430
  yogaConfig.setPointScaleFactor(1);
12030
12431
 
@@ -12067,6 +12468,7 @@ class Renderable extends BaseRenderable {
12067
12468
  parent = null;
12068
12469
  childrenPrimarySortDirty = true;
12069
12470
  childrenSortedByPrimaryAxis = [];
12471
+ _shouldUpdateBefore = new Set;
12070
12472
  onLifecyclePass = null;
12071
12473
  renderBefore;
12072
12474
  renderAfter;
@@ -12090,7 +12492,7 @@ class Renderable extends BaseRenderable {
12090
12492
  this.buffered = options.buffered ?? false;
12091
12493
  this._live = options.live ?? false;
12092
12494
  this._liveCount = this._live && this._visible ? 1 : 0;
12093
- this.yogaNode = dist_default.Node.create(yogaConfig);
12495
+ this.yogaNode = src_default.Node.create(yogaConfig);
12094
12496
  this.yogaNode.setDisplay(this._visible ? Display.Flex : Display.None);
12095
12497
  this.setupYogaProperties(options);
12096
12498
  this.applyEventOptions(options);
@@ -12770,6 +13172,7 @@ class Renderable extends BaseRenderable {
12770
13172
  this._childrenInLayoutOrder.push(renderable);
12771
13173
  this.yogaNode.insertChild(childLayoutNode, insertedIndex);
12772
13174
  this.childrenPrimarySortDirty = true;
13175
+ this._shouldUpdateBefore.add(renderable);
12773
13176
  this.requestRender();
12774
13177
  return insertedIndex;
12775
13178
  }
@@ -12822,6 +13225,7 @@ class Renderable extends BaseRenderable {
12822
13225
  const insertedIndex = Math.max(0, Math.min(anchorIndex, this._childrenInLayoutOrder.length));
12823
13226
  this._childrenInLayoutOrder.splice(insertedIndex, 0, renderable);
12824
13227
  this.yogaNode.insertChild(renderable.getLayoutNode(), insertedIndex);
13228
+ this._shouldUpdateBefore.add(renderable);
12825
13229
  this.requestRender();
12826
13230
  return insertedIndex;
12827
13231
  }
@@ -12871,6 +13275,14 @@ class Renderable extends BaseRenderable {
12871
13275
  if (this._isDestroyed)
12872
13276
  return;
12873
13277
  this.updateFromLayout();
13278
+ if (this._shouldUpdateBefore.size > 0) {
13279
+ for (const child of this._shouldUpdateBefore) {
13280
+ if (!child.isDestroyed) {
13281
+ child.updateFromLayout();
13282
+ }
13283
+ }
13284
+ this._shouldUpdateBefore.clear();
13285
+ }
12874
13286
  if (this._isDestroyed)
12875
13287
  return;
12876
13288
  renderList.push({ action: "render", renderable: this });
@@ -13079,7 +13491,7 @@ class RootRenderable extends Renderable {
13079
13491
  if (this.yogaNode) {
13080
13492
  this.yogaNode.free();
13081
13493
  }
13082
- this.yogaNode = dist_default.Node.create(yogaConfig);
13494
+ this.yogaNode = src_default.Node.create(yogaConfig);
13083
13495
  this.yogaNode.setWidth(ctx.width);
13084
13496
  this.yogaNode.setHeight(ctx.height);
13085
13497
  this.yogaNode.setFlexDirection(FlexDirection.Column);
@@ -14137,6 +14549,12 @@ registerEnvVar({
14137
14549
  type: "boolean",
14138
14550
  default: true
14139
14551
  });
14552
+ registerEnvVar({
14553
+ name: "OTUI_DEBUG",
14554
+ description: "Enable debug mode to capture all raw input for debugging purposes.",
14555
+ type: "boolean",
14556
+ default: false
14557
+ });
14140
14558
 
14141
14559
  class MouseEvent {
14142
14560
  type;
@@ -14182,13 +14600,6 @@ var MouseButton;
14182
14600
  MouseButton2[MouseButton2["WHEEL_UP"] = 4] = "WHEEL_UP";
14183
14601
  MouseButton2[MouseButton2["WHEEL_DOWN"] = 5] = "WHEEL_DOWN";
14184
14602
  })(MouseButton ||= {});
14185
- singleton("ProcessExitSignals", () => {
14186
- ["SIGINT", "SIGTERM", "SIGQUIT", "SIGABRT"].forEach((signal) => {
14187
- process.on(signal, () => {
14188
- process.exit();
14189
- });
14190
- });
14191
- });
14192
14603
  var rendererTracker = singleton("RendererTracker", () => {
14193
14604
  const renderers = new Set;
14194
14605
  return {
@@ -14256,11 +14667,14 @@ class CliRenderer extends EventEmitter9 {
14256
14667
  stdin;
14257
14668
  stdout;
14258
14669
  exitOnCtrlC;
14670
+ exitSignals;
14671
+ _exitListenersAdded = false;
14259
14672
  _isDestroyed = false;
14260
14673
  nextRenderBuffer;
14261
14674
  currentRenderBuffer;
14262
14675
  _isRunning = false;
14263
14676
  targetFps = 30;
14677
+ maxFps = 60;
14264
14678
  automaticMemorySnapshot = false;
14265
14679
  memorySnapshotInterval;
14266
14680
  memorySnapshotTimer = null;
@@ -14286,7 +14700,8 @@ class CliRenderer extends EventEmitter9 {
14286
14700
  frameCount = 0;
14287
14701
  lastFpsTime = 0;
14288
14702
  currentFps = 0;
14289
- targetFrameTime = 0;
14703
+ targetFrameTime = 1000 / this.targetFps;
14704
+ minTargetFrameTime = 1000 / this.maxFps;
14290
14705
  immediateRerenderRequested = false;
14291
14706
  updateScheduled = false;
14292
14707
  liveRequestCounter = 0;
@@ -14348,6 +14763,9 @@ class CliRenderer extends EventEmitter9 {
14348
14763
  _onDestroy;
14349
14764
  inputHandlers = [];
14350
14765
  prependedInputHandlers = [];
14766
+ idleResolvers = [];
14767
+ _debugInputs = [];
14768
+ _debugModeEnabled = env.OTUI_DEBUG;
14351
14769
  handleError = ((error) => {
14352
14770
  console.error(error);
14353
14771
  if (this._openConsoleOnError) {
@@ -14389,13 +14807,13 @@ Captured output:
14389
14807
  get controlState() {
14390
14808
  return this._controlState;
14391
14809
  }
14392
- constructor(lib2, rendererPtr, stdin, stdout, width, height, config = {}) {
14810
+ constructor(lib, rendererPtr, stdin, stdout, width, height, config = {}) {
14393
14811
  super();
14394
14812
  rendererTracker.addRenderer(this);
14395
14813
  this.stdin = stdin;
14396
14814
  this.stdout = stdout;
14397
14815
  this.realStdoutWrite = stdout.write;
14398
- this.lib = lib2;
14816
+ this.lib = lib;
14399
14817
  this._terminalWidth = stdout.columns;
14400
14818
  this._terminalHeight = stdout.rows;
14401
14819
  this.width = width;
@@ -14406,12 +14824,16 @@ Captured output:
14406
14824
  capture.on("write", this.captureCallback);
14407
14825
  this.renderOffset = height - this._splitHeight;
14408
14826
  this.height = this._splitHeight;
14409
- lib2.setRenderOffset(rendererPtr, this.renderOffset);
14827
+ lib.setRenderOffset(rendererPtr, this.renderOffset);
14410
14828
  }
14411
14829
  this.rendererPtr = rendererPtr;
14412
14830
  this.exitOnCtrlC = config.exitOnCtrlC === undefined ? true : config.exitOnCtrlC;
14831
+ this.exitSignals = config.exitSignals || ["SIGINT", "SIGTERM", "SIGQUIT", "SIGABRT"];
14413
14832
  this.resizeDebounceDelay = config.debounceDelay || 100;
14414
14833
  this.targetFps = config.targetFps || 30;
14834
+ this.maxFps = config.maxFps || 60;
14835
+ this.targetFrameTime = 1000 / this.targetFps;
14836
+ this.minTargetFrameTime = 1000 / this.maxFps;
14415
14837
  this.memorySnapshotInterval = config.memorySnapshotInterval ?? 0;
14416
14838
  this.gatherStats = config.gatherStats || false;
14417
14839
  this.maxStatSamples = config.maxStatSamples || 300;
@@ -14433,7 +14855,7 @@ Captured output:
14433
14855
  process.on("warning", this.warningHandler);
14434
14856
  process.on("uncaughtException", this.handleError);
14435
14857
  process.on("unhandledRejection", this.handleError);
14436
- process.on("exit", this.exitHandler);
14858
+ process.on("beforeExit", this.exitHandler);
14437
14859
  this._keyHandler = new InternalKeyHandler(config.useKittyKeyboard ?? true);
14438
14860
  this._keyHandler.on("keypress", (event) => {
14439
14861
  if (this.exitOnCtrlC && event.name === "c" && event.ctrl) {
@@ -14443,6 +14865,7 @@ Captured output:
14443
14865
  return;
14444
14866
  }
14445
14867
  });
14868
+ this.addExitListeners();
14446
14869
  this._stdinBuffer = new StdinBuffer({ timeout: 5 });
14447
14870
  this._console = new TerminalConsole(this, config.consoleOptions);
14448
14871
  this.useConsole = config.useConsole ?? true;
@@ -14471,6 +14894,22 @@ Captured output:
14471
14894
  }
14472
14895
  this.setupInput();
14473
14896
  }
14897
+ addExitListeners() {
14898
+ if (this._exitListenersAdded || this.exitSignals.length === 0)
14899
+ return;
14900
+ this.exitSignals.forEach((signal) => {
14901
+ process.addListener(signal, this.exitHandler);
14902
+ });
14903
+ this._exitListenersAdded = true;
14904
+ }
14905
+ removeExitListeners() {
14906
+ if (!this._exitListenersAdded || this.exitSignals.length === 0)
14907
+ return;
14908
+ this.exitSignals.forEach((signal) => {
14909
+ process.removeListener(signal, this.exitHandler);
14910
+ });
14911
+ this._exitListenersAdded = false;
14912
+ }
14474
14913
  get isDestroyed() {
14475
14914
  return this._isDestroyed;
14476
14915
  }
@@ -14507,14 +14946,33 @@ Captured output:
14507
14946
  return this.realStdoutWrite.call(this.stdout, chunk, encoding, callback);
14508
14947
  }
14509
14948
  requestRender() {
14510
- if (!this.rendering && !this.updateScheduled && !this._isRunning && this._controlState !== "explicit_suspended" /* EXPLICIT_SUSPENDED */) {
14949
+ if (this._controlState === "explicit_suspended" /* EXPLICIT_SUSPENDED */) {
14950
+ return;
14951
+ }
14952
+ if (this._isRunning) {
14953
+ return;
14954
+ }
14955
+ if (this.rendering) {
14956
+ this.immediateRerenderRequested = true;
14957
+ return;
14958
+ }
14959
+ if (!this.updateScheduled && !this.renderTimeout) {
14511
14960
  this.updateScheduled = true;
14512
- process.nextTick(() => {
14513
- this.loop();
14514
- this.updateScheduled = false;
14515
- });
14961
+ const now = Date.now();
14962
+ const elapsed = now - this.lastTime;
14963
+ const delay = Math.max(this.minTargetFrameTime - elapsed, 0);
14964
+ if (delay === 0) {
14965
+ process.nextTick(() => this.activateFrame());
14966
+ return;
14967
+ }
14968
+ setTimeout(() => this.activateFrame(), delay);
14516
14969
  }
14517
14970
  }
14971
+ async activateFrame() {
14972
+ await this.loop();
14973
+ this.updateScheduled = false;
14974
+ this.resolveIdleIfNeeded();
14975
+ }
14518
14976
  get useConsole() {
14519
14977
  return this._useConsole;
14520
14978
  }
@@ -14529,6 +14987,26 @@ Captured output:
14529
14987
  get isRunning() {
14530
14988
  return this._isRunning;
14531
14989
  }
14990
+ isIdleNow() {
14991
+ return !this._isRunning && !this.rendering && !this.renderTimeout && !this.updateScheduled && !this.immediateRerenderRequested;
14992
+ }
14993
+ resolveIdleIfNeeded() {
14994
+ if (!this.isIdleNow())
14995
+ return;
14996
+ const resolvers = this.idleResolvers.splice(0);
14997
+ for (const resolve4 of resolvers) {
14998
+ resolve4();
14999
+ }
15000
+ }
15001
+ idle() {
15002
+ if (this._isDestroyed)
15003
+ return Promise.resolve();
15004
+ if (this.isIdleNow())
15005
+ return Promise.resolve();
15006
+ return new Promise((resolve4) => {
15007
+ this.idleResolvers.push(resolve4);
15008
+ });
15009
+ }
14532
15010
  get resolution() {
14533
15011
  return this._resolution;
14534
15012
  }
@@ -14575,6 +15053,9 @@ Captured output:
14575
15053
  get capabilities() {
14576
15054
  return this._capabilities;
14577
15055
  }
15056
+ getDebugInputs() {
15057
+ return [...this._debugInputs];
15058
+ }
14578
15059
  get useKittyKeyboard() {
14579
15060
  return this.lib.getUseKittyKeyboard(this.rendererPtr);
14580
15061
  }
@@ -14751,6 +15232,12 @@ Captured output:
14751
15232
  this.stdin.setEncoding("utf8");
14752
15233
  this.stdin.on("data", this.stdinListener);
14753
15234
  this._stdinBuffer.on("data", (sequence) => {
15235
+ if (this._debugModeEnabled) {
15236
+ this._debugInputs.push({
15237
+ timestamp: new Date().toISOString(),
15238
+ sequence
15239
+ });
15240
+ }
14754
15241
  for (const handler of this.inputHandlers) {
14755
15242
  if (handler(sequence)) {
14756
15243
  return;
@@ -15000,19 +15487,19 @@ Captured output:
15000
15487
  this.lib.dumpStdoutBuffer(this.rendererPtr, timestamp);
15001
15488
  }
15002
15489
  static setCursorPosition(renderer, x, y, visible = true) {
15003
- const lib2 = resolveRenderLib();
15004
- lib2.setCursorPosition(renderer.rendererPtr, x, y, visible);
15490
+ const lib = resolveRenderLib();
15491
+ lib.setCursorPosition(renderer.rendererPtr, x, y, visible);
15005
15492
  }
15006
15493
  static setCursorStyle(renderer, style, blinking = false, color) {
15007
- const lib2 = resolveRenderLib();
15008
- lib2.setCursorStyle(renderer.rendererPtr, style, blinking);
15494
+ const lib = resolveRenderLib();
15495
+ lib.setCursorStyle(renderer.rendererPtr, style, blinking);
15009
15496
  if (color) {
15010
- lib2.setCursorColor(renderer.rendererPtr, color);
15497
+ lib.setCursorColor(renderer.rendererPtr, color);
15011
15498
  }
15012
15499
  }
15013
15500
  static setCursorColor(renderer, color) {
15014
- const lib2 = resolveRenderLib();
15015
- lib2.setCursorColor(renderer.rendererPtr, color);
15501
+ const lib = resolveRenderLib();
15502
+ lib.setCursorColor(renderer.rendererPtr, color);
15016
15503
  }
15017
15504
  setCursorPosition(x, y, visible = true) {
15018
15505
  this.lib.setCursorPosition(this.rendererPtr, x, y, visible);
@@ -15084,6 +15571,7 @@ Captured output:
15084
15571
  this.internalPause();
15085
15572
  this._suspendedMouseEnabled = this._useMouse;
15086
15573
  this.disableMouse();
15574
+ this.removeExitListeners();
15087
15575
  this._stdinBuffer.clear();
15088
15576
  this.stdin.removeListener("data", this.stdinListener);
15089
15577
  this.lib.suspendRenderer(this.rendererPtr);
@@ -15097,6 +15585,7 @@ Captured output:
15097
15585
  this.stdin.setRawMode(true);
15098
15586
  }
15099
15587
  this.stdin.resume();
15588
+ this.addExitListeners();
15100
15589
  setImmediate(() => {
15101
15590
  while (this.stdin.read() !== null) {}
15102
15591
  this.stdin.on("data", this.stdinListener);
@@ -15131,6 +15620,9 @@ Captured output:
15131
15620
  clearTimeout(this.renderTimeout);
15132
15621
  this.renderTimeout = null;
15133
15622
  }
15623
+ if (!this.rendering) {
15624
+ this.resolveIdleIfNeeded();
15625
+ }
15134
15626
  }
15135
15627
  }
15136
15628
  destroy() {
@@ -15183,6 +15675,7 @@ Captured output:
15183
15675
  console.error("Error in onDestroy callback:", e instanceof Error ? e.stack : String(e));
15184
15676
  }
15185
15677
  }
15678
+ this.resolveIdleIfNeeded();
15186
15679
  }
15187
15680
  startRenderLoop() {
15188
15681
  if (!this._isRunning)
@@ -15191,12 +15684,12 @@ Captured output:
15191
15684
  this.frameCount = 0;
15192
15685
  this.lastFpsTime = this.lastTime;
15193
15686
  this.currentFps = 0;
15194
- this.targetFrameTime = 1000 / this.targetFps;
15195
15687
  this.loop();
15196
15688
  }
15197
15689
  async loop() {
15198
15690
  if (this.rendering || this._isDestroyed)
15199
15691
  return;
15692
+ this.renderTimeout = null;
15200
15693
  this.rendering = true;
15201
15694
  if (this.renderTimeout) {
15202
15695
  clearTimeout(this.renderTimeout);
@@ -15231,10 +15724,6 @@ Captured output:
15231
15724
  } catch (error) {
15232
15725
  console.error("Error in frame callback:", error);
15233
15726
  }
15234
- if (this._isDestroyed) {
15235
- this.rendering = false;
15236
- return;
15237
- }
15238
15727
  }
15239
15728
  const end = performance.now();
15240
15729
  this.renderStats.frameCallbackTime = end - start;
@@ -15250,16 +15739,21 @@ Captured output:
15250
15739
  if (this.gatherStats) {
15251
15740
  this.collectStatSample(overallFrameTime);
15252
15741
  }
15253
- if (this._isRunning) {
15254
- const delay = Math.max(1, this.targetFrameTime - Math.floor(overallFrameTime));
15255
- this.renderTimeout = setTimeout(() => this.loop(), delay);
15742
+ if (this._isRunning || this.immediateRerenderRequested) {
15743
+ const targetFrameTime = this.immediateRerenderRequested ? this.minTargetFrameTime : this.targetFrameTime;
15744
+ const delay = Math.max(1, targetFrameTime - Math.floor(overallFrameTime));
15745
+ this.immediateRerenderRequested = false;
15746
+ this.renderTimeout = setTimeout(() => {
15747
+ this.renderTimeout = null;
15748
+ this.loop();
15749
+ }, delay);
15750
+ } else {
15751
+ clearTimeout(this.renderTimeout);
15752
+ this.renderTimeout = null;
15256
15753
  }
15257
15754
  }
15258
15755
  this.rendering = false;
15259
- if (this.immediateRerenderRequested) {
15260
- this.immediateRerenderRequested = false;
15261
- this.loop();
15262
- }
15756
+ this.resolveIdleIfNeeded();
15263
15757
  }
15264
15758
  intermediateRender() {
15265
15759
  this.immediateRerenderRequested = true;
@@ -15449,7 +15943,7 @@ Captured output:
15449
15943
  }
15450
15944
  }
15451
15945
 
15452
- export { Edge, Gutter, MeasureMode, exports_dist, BorderChars, getBorderFromSides, getBorderSides, borderCharsToArray, BorderCharArrays, nonAlphanumericKeys, parseKeypress, KeyEvent, PasteEvent, KeyHandler, InternalKeyHandler, RGBA, hexToRgb, rgbToHex, hsvToRgb, parseColor, fonts, measureText, getCharacterPositions, coordinateToCharacterIndex, renderFontToFrameBuffer, TextAttributes, DebugOverlayCorner, createTextAttributes, visualizeRenderableTree, isStyledText, StyledText, stringToStyledText, black, red, green, yellow, blue, magenta, cyan, white, brightBlack, brightRed, brightGreen, brightYellow, brightBlue, brightMagenta, brightCyan, brightWhite, bgBlack, bgRed, bgGreen, bgYellow, bgBlue, bgMagenta, bgCyan, bgWhite, bold, italic, underline, strikethrough, dim, reverse, blink, fg, bg, t, hastToStyledText, LinearScrollAccel, MacOSScrollAccel, StdinBuffer, parseAlign, parseBoxSizing, parseDimension, parseDirection, parseDisplay, parseEdge, parseFlexDirection, parseGutter, parseJustify, parseLogLevel, parseMeasureMode, parseOverflow, parsePositionType, parseUnit, parseWrap, MouseParser, Selection, convertGlobalToLocalSelection, ASCIIFontSelectionHelper, envRegistry, registerEnvVar, clearEnvCache, generateEnvMarkdown, generateEnvColored, env, treeSitterToTextChunks, treeSitterToStyledText, addDefaultParsers, TreeSitterClient, DataPathsManager, getDataPaths, extToFiletype, pathToFiletype, main, getTreeSitterClient, ExtmarksController, createExtmarksController, TerminalPalette, createTerminalPalette, TextBuffer, LogLevel2 as LogLevel, setRenderLibPath, resolveRenderLib, OptimizedBuffer, h, isVNode, maybeMakeRenderable, wrapWithDelegates, instantiate, delegate, isValidPercentage, LayoutEvents, RenderableEvents, isRenderable, BaseRenderable, Renderable, RootRenderable, ANSI, capture, ConsolePosition, TerminalConsole, getObjectsInViewport, MouseEvent, MouseButton, createCliRenderer, CliRenderEvents, RendererControlState, CliRenderer };
15946
+ export { __toESM, __commonJS, __export, __require, Edge, Gutter, MeasureMode, exports_src, BorderChars, getBorderFromSides, getBorderSides, borderCharsToArray, BorderCharArrays, nonAlphanumericKeys, parseKeypress, KeyEvent, PasteEvent, KeyHandler, InternalKeyHandler, RGBA, hexToRgb, rgbToHex, hsvToRgb, parseColor, fonts, measureText, getCharacterPositions, coordinateToCharacterIndex, renderFontToFrameBuffer, TextAttributes, DebugOverlayCorner, createTextAttributes, visualizeRenderableTree, isStyledText, StyledText, stringToStyledText, black, red, green, yellow, blue, magenta, cyan, white, brightBlack, brightRed, brightGreen, brightYellow, brightBlue, brightMagenta, brightCyan, brightWhite, bgBlack, bgRed, bgGreen, bgYellow, bgBlue, bgMagenta, bgCyan, bgWhite, bold, italic, underline, strikethrough, dim, reverse, blink, fg, bg, t, hastToStyledText, LinearScrollAccel, MacOSScrollAccel, StdinBuffer, parseAlign, parseBoxSizing, parseDimension, parseDirection, parseDisplay, parseEdge, parseFlexDirection, parseGutter, parseJustify, parseLogLevel, parseMeasureMode, parseOverflow, parsePositionType, parseUnit, parseWrap, MouseParser, Selection, convertGlobalToLocalSelection, ASCIIFontSelectionHelper, envRegistry, registerEnvVar, clearEnvCache, generateEnvMarkdown, generateEnvColored, env, treeSitterToTextChunks, treeSitterToStyledText, addDefaultParsers, TreeSitterClient, DataPathsManager, getDataPaths, extToFiletype, pathToFiletype, main, getTreeSitterClient, ExtmarksController, createExtmarksController, TerminalPalette, createTerminalPalette, TextBuffer, LogLevel2 as LogLevel, setRenderLibPath, resolveRenderLib, OptimizedBuffer, h, isVNode, maybeMakeRenderable, wrapWithDelegates, instantiate, delegate, isValidPercentage, LayoutEvents, RenderableEvents, isRenderable, BaseRenderable, Renderable, RootRenderable, ANSI, capture, ConsolePosition, TerminalConsole, getObjectsInViewport, MouseEvent, MouseButton, createCliRenderer, CliRenderEvents, RendererControlState, CliRenderer };
15453
15947
 
15454
- //# debugId=1623532973D99D8964756E2164756E21
15455
- //# sourceMappingURL=index-re80811e.js.map
15948
+ //# debugId=50CCF62F4F782D5964756E2164756E21
15949
+ //# sourceMappingURL=index-crebvcxc.js.map