@wterm/core 0.5.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -22,7 +22,7 @@ npm install @wterm/core
22
22
 
23
23
  ## Pluggable Cores
24
24
 
25
- `@wterm/core` defines a `TerminalCore` interface that any terminal emulation backend can implement. The built-in `WasmBridge` implements it using wterm's lightweight Zig WASM binary (~12 KB). For additional protocols and proper grapheme handling, use [`@wterm/ghostty`](https://www.npmjs.com/package/@wterm/ghostty), which implements the same interface using libghostty (~400 KB).
25
+ `@wterm/core` defines a `TerminalCore` interface that any terminal emulation backend can implement. The built-in `WasmBridge` implements it using wterm's lightweight Zig WASM binary (~26 KB). For additional protocols and proper grapheme handling, use [`@wterm/ghostty`](https://www.npmjs.com/package/@wterm/ghostty), which implements the same interface using libghostty.
26
26
 
27
27
  ```ts
28
28
  import { WTerm } from "@wterm/dom";
@@ -38,6 +38,38 @@ const term = new WTerm(el, { core });
38
38
 
39
39
  ## API
40
40
 
41
+ ### Terminal row metadata
42
+
43
+ `TerminalCore` optionally exposes `getRowMetadata(row)` for zero-based live
44
+ rows and `getScrollbackRowMetadata(offset)` for history, where offset zero is
45
+ the newest retained row. Both return a caller-owned `TerminalRowMetadata`
46
+ object or `null` when the row is unavailable:
47
+
48
+ ```ts
49
+ import type { TerminalCore } from "@wterm/core";
50
+
51
+ function continuesIntoViewport(core: TerminalCore): boolean | undefined {
52
+ return core.getScrollbackRowMetadata?.(0)?.wrapsToNext;
53
+ }
54
+ ```
55
+
56
+ `wrapsToNext` means the following row continues the same logical line;
57
+ `continuesPrevious` means this row continues the preceding row. Filling the
58
+ rightmost cell alone does not count as wrapping. The first retained row can
59
+ still continue a row that has been discarded.
60
+
61
+ These are current physical-row relationships, not stable line IDs. Read them
62
+ again after output, resize, reset, or screen changes; do not retain row indexes
63
+ across those operations. Ghostty implements both methods with its native wrap
64
+ flags. The lightweight core does not expose them, and older Ghostty WASM
65
+ binaries return `null`. Missing metadata means unknown, not a hard newline.
66
+
67
+ ### Tracked cell positions
68
+
69
+ `TerminalCore.trackPosition?({ row, col })` returns a `TrackedTerminalPosition` or `null`. Coordinates are zero-based cells, with row zero at the oldest retained row. Call `resolve()` for its current `{ row, col }` after scrolling or reflow, and `dispose()` when finished. Resolution returns `null` after pruning, reset, screen switching, core reinitialization, or disposal; invalidated handles never refer to newly allocated positions. Disposal is idempotent.
70
+
71
+ Tracking follows a cell location, not its immutable contents. A caller preserving selected text must also check whether it was overwritten. Ghostty supports up to 64 simultaneous handles and returns `null` for invalid coordinates, exhausted capacity, or an older WASM binary without tracking exports. The built-in core does not provide this optional method.
72
+
41
73
  ### `WasmBridge`
42
74
 
43
75
  Low-level interface to the Zig/WASM terminal state machine. Implements the `TerminalCore` interface.
@@ -50,7 +82,7 @@ bridge.init(80, 24);
50
82
  bridge.writeString("Hello, world!\r\n");
51
83
 
52
84
  const cell = bridge.getCell(0, 0); // { char, chars?, fg, bg, flags, width, linkUri?, linkId?, linkKey? }
53
- const cursor = bridge.getCursor(); // { row, col, visible }
85
+ const cursor = bridge.getCursor(); // { row, col, visible, shape, blinking }
54
86
  ```
55
87
 
56
88
  | Method | Description |
@@ -61,11 +93,12 @@ const cursor = bridge.getCursor(); // { row, col, visible }
61
93
  | `writeRaw(data, afterChunk?)` | Write raw bytes, optionally running a callback after each internal chunk |
62
94
  | `resize(cols, rows)` | Resize the terminal grid |
63
95
  | `getCell(row, col)` | Get cell data, including optional resolved OSC 8 metadata (`linkUri`, explicit `linkId`, and opaque `linkKey`) |
64
- | `getCursor()` | Get cursor state (`{ row, col, visible }`) |
65
- | `getCols()` / `getRows()` | Get current grid dimensions |
96
+ | `getCursor()` | Get cursor state (`{ row, col, visible, shape?, blinking? }`) |
97
+ | `getCols()` / `getRows()` | Get applied grid dimensions after initialization or resize. The built-in core clamps requests to 1–1024 columns and 1–512 rows. |
66
98
  | `isDirtyRow(row)` | Check if a row needs re-rendering |
67
99
  | `clearDirty()` | Reset all dirty-row flags |
68
100
  | `getTitle()` | Get pending title change (or `null`) |
101
+ | `getBellCount()` | Read and clear the number of pending BEL controls; `0` when none |
69
102
  | `getResponse()` | Get pending host response (or `null`) |
70
103
  | `getResourceState()` | Get optional core resource state, including built-in hyperlink identity saturation |
71
104
  | `getScrollbackCount()` | Number of lines in the scrollback buffer |
@@ -75,8 +108,9 @@ const cursor = bridge.getCursor(); // { row, col, visible }
75
108
  | `cursorKeysApp()` | Whether cursor keys are in application mode |
76
109
  | `bracketedPaste()` | Whether bracketed paste mode is active |
77
110
  | `usingAltScreen()` | Whether the alternate screen buffer is active |
78
- | `mouseTracking()` | Active mouse tracking mode (`0`, `1000`, or `1002`) |
79
- | `mouseSgr()` | Whether SGR mouse encoding is active |
111
+ | `mouseTracking()` | Active mouse tracking mode (`0`, `1000`, `1002`, or `1003`) |
112
+ | `mouseSgr()` | Whether cell-coordinate SGR mouse encoding (1006) is active |
113
+ | `mouseEncoding()` | Active mouse wire format (`x10`, `utf8`, `sgr`, `urxvt`, or `sgr-pixels`). The DOM layer handles all five; `sgr-pixels` reports 1-based CSS pixels. |
80
114
  | `focusEvents()` | Whether focus reporting is active |
81
115
  | `synchronizedOutput()` | Whether synchronized output mode (2026) is active |
82
116
  | `synchronizedOutputGeneration()` | Monotonic generation for synchronized output blocks |
@@ -84,8 +118,27 @@ const cursor = bridge.getCursor(); // { row, col, visible }
84
118
 
85
119
  OSC 8 hyperlink metadata is optional so third-party `TerminalCore` implementations remain source-compatible. Cores should expose the resolved URI and an opaque semantic key rather than a private numeric index.
86
120
 
121
+ Wide CJK, fullwidth, and emoji codepoints occupy a leading cell with `width: 2` and a continuation with `width: 0`. Character insertion (`ICH`) and deletion (`DCH`) shift the requested number of columns from the cursor, replacing split wide characters with background-colored spaces. With automatic wrapping disabled, a wide character that cannot fit at the right edge leaves the row unchanged. A one-column terminal consumes wide characters as spaces.
122
+
123
+ `CellData.spacerHead` optionally identifies an empty right-edge cell left when a wide glyph wraps to the next row. Ghostty supplies it in live rows and history. Text extraction should omit these cells and width-zero continuations while preserving real spaces; an absent flag does not identify a spacer.
124
+
125
+ The built-in core supports ASCII (`B`), British (`A`), and DEC Special Graphics (`0`) designations for G0–G3. For example, `\x1b(0lqqk\x1b(B` produces `┌──┐`. SI/SO select G0/G1; `ESC n/o` select G2/G3, and `ESC N/O` select them for one character. Cursor save/restore preserves character-set state. Mapping affects ASCII characters only, so UTF-8 text remains intact.
126
+
127
+ `CursorState.shape` (`"block"`, `"bar"`, or `"underline"`) and `blinking` are
128
+ optional for custom cores. The built-in and Ghostty cores expose both fields
129
+ from DECSCUSR (`CSI Ps SP q`) and cursor blink mode (`CSI ? 12 h/l`). Missing
130
+ fields render as a steady block unless the host sets `cursorBlink`. Style 0
131
+ or an omitted parameter restores the default steady block; styles 1/2, 3/4,
132
+ and 5/6 select blinking/steady block, underline, and bar respectively.
133
+
87
134
  `TerminalCore.kittyKeyboardFlags()` is also optional. The DOM input handler uses it to encode negotiated Kitty keyboard events; cores that omit it retain the existing legacy keyboard behavior.
88
135
 
136
+ The built-in core answers DEC private-mode status queries (`CSI ? Ps $ p`) through `getResponse()`. It reports `1` for set, `2` for reset, and `0` for unrecognized modes, including the current state of synchronized output (`?2026`), bracketed paste (`?2004`), mouse tracking and encoding, focus reporting, cursor modes, and alternate-screen modes. For example, `\x1b[?2026$p` receives `\x1b[?2026;2$y` until mode 2026 is enabled.
137
+
138
+ Primary device-attributes queries (`CSI c` or `CSI 0 c`) receive `\x1b[?1;2c` through `getResponse()`, identifying VT100 advanced-video support. Secondary and private variants receive no reply.
139
+
140
+ An operating-status query (`CSI 5 n`) receives `\x1b[0n`, indicating the terminal is ready. A cursor-position query (`CSI 6 n`) receives `\x1b[row;colR`. These replies share the same response queue as device attributes and preserve query order. Unsupported or malformed status requests receive no reply.
141
+
89
142
  The built-in core reports its fixed hyperlink identity capacity through `getResourceState()`. When `hyperlinks.saturated` is true, new distinct OSC 8 links render as plain text and `hyperlinks.rejected` counts capacity-rejected opens. Existing identities remain valid.
90
143
 
91
144
  ### Optional terminal graphics
@@ -112,6 +165,37 @@ ws.connect();
112
165
  ws.send("ls\n");
113
166
  ```
114
167
 
168
+ Outbound buffering is bounded by default: `maxBufferedBytes` is 1 MiB across
169
+ the transport queue and the current open socket's `bufferedAmount`, and
170
+ `maxBufferedMessages` allows 1,024 messages waiting in the transport. `send()`
171
+ throws `RangeError` before accepting any part of a message that would exceed
172
+ either limit. Catch it and show that input was not accepted; do not silently
173
+ discard the error or automatically retry commands.
174
+
175
+ `highWaterMark` (64 KiB) pauses socket writes; draining resumes at
176
+ `lowWaterMark` (16 KiB). A message larger than the high-water mark is sent intact
177
+ only when the socket buffer is empty. Message order and boundaries are preserved,
178
+ strings use UTF-8, and queued byte arrays are copied. Each drain processes at
179
+ most 64 messages, with 16 ms polling only while an open socket has pending data.
180
+ Browser background throttling can delay draining.
181
+
182
+ Read `bufferedAmount`, `queuedBytes`, `queuedMessages`, and `backpressured` for
183
+ queue state. Use `onBackpressure(paused)` to pause/resume producers; it reports
184
+ transitions at the high/low byte thresholds or when the message queue is full.
185
+ All limits are construction options. Byte/message caps and the high-water mark
186
+ must be positive safe integers, with `0 <= lowWaterMark < highWaterMark <=
187
+ maxBufferedBytes`. If only the byte cap is reduced, the default high-water mark
188
+ is clamped to it and the default low-water mark is one quarter of that value.
189
+
190
+ Before the first connection, sends are queued within these limits. Unexpected
191
+ disconnects retain only messages not yet handed to the socket; already-sent
192
+ bytes have uncertain delivery and are never replayed. `close()` clears the
193
+ transport queue and timers and rejects further sends until `connect()` is
194
+ called. Connecting to a different URL also discards unsent messages. Repeated
195
+ `connect()` calls for the same connecting/open socket do nothing; callbacks from
196
+ replaced sockets are ignored. These are client-side send bounds, not server
197
+ acknowledgments, PTY flow control, or session recovery.
198
+
115
199
  ## License
116
200
 
117
201
  Apache-2.0
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export type { CellData, CursorState, GraphicsResourceState, HyperlinkResourceState, TerminalGraphicsState, TerminalImageData, TerminalImageDescriptor, TerminalImagePlacement, TerminalResourceState, UnhandledSequence, TerminalCore, } from "./terminal-core.js";
1
+ export type { CellData, CursorShape, CursorState, GraphicsResourceState, HyperlinkResourceState, MouseEncoding, TerminalGraphicsState, TerminalImageData, TerminalImageDescriptor, TerminalImagePlacement, TerminalResourceState, TerminalRowMetadata, TerminalPosition, TrackedTerminalPosition, UnhandledSequence, TerminalCore, } from "./terminal-core.js";
2
2
  export { WasmBridge } from "./wasm-bridge.js";
3
3
  export { WebSocketTransport } from "./transport.js";
4
4
  export type { WebSocketTransportOptions } from "./transport.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,QAAQ,EACR,WAAW,EACX,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,YAAY,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,QAAQ,EACR,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,iBAAiB,EACjB,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,YAAY,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -7,6 +7,8 @@ export interface CellData {
7
7
  flags: number;
8
8
  /** Display width: 1 = narrow, 2 = wide leading cell, 0 = wide continuation cell. */
9
9
  width?: number;
10
+ /** Empty right-edge filler left when a wide glyph wraps to the following row. */
11
+ spacerHead?: boolean;
10
12
  /** Resolved 24-bit foreground color (0xRRGGBB). Present when the core provides true color. */
11
13
  fgRgb?: number;
12
14
  /** Resolved 24-bit background color (0xRRGGBB). Present when the core provides true color. */
@@ -18,10 +20,34 @@ export interface CellData {
18
20
  /** Opaque semantic identity used to group cells from the same OSC 8 link. */
19
21
  linkKey?: string;
20
22
  }
23
+ export type CursorShape = "block" | "underline" | "bar";
24
+ /** Soft-wrap relationships for one physical row of the active screen. */
25
+ export interface TerminalRowMetadata {
26
+ /** The following row continues this row without an explicit newline. */
27
+ wrapsToNext: boolean;
28
+ /** This row continues the preceding row, which may have been discarded. */
29
+ continuesPrevious: boolean;
30
+ }
31
+ /** Cell coordinates, with row zero at the oldest retained row. */
32
+ export interface TerminalPosition {
33
+ row: number;
34
+ col: number;
35
+ }
36
+ /** A cell location that follows scrolling and reflow. Release when no longer needed. */
37
+ export interface TrackedTerminalPosition {
38
+ /** Null after disposal, pruning, reset, or a screen switch. Does not track cell contents. */
39
+ resolve(): TerminalPosition | null;
40
+ dispose(): void;
41
+ }
42
+ export type MouseEncoding = "x10" | "utf8" | "sgr" | "urxvt" | "sgr-pixels";
21
43
  export interface CursorState {
22
44
  row: number;
23
45
  col: number;
24
46
  visible: boolean;
47
+ /** Application-requested shape. Omitted by older/custom cores; defaults to block. */
48
+ shape?: CursorShape;
49
+ /** Application-requested blinking. Omitted by older/custom cores; defaults to false. */
50
+ blinking?: boolean;
25
51
  }
26
52
  export interface UnhandledSequence {
27
53
  final: string;
@@ -98,21 +124,31 @@ export interface TerminalCore {
98
124
  writeString(str: string, afterChunk?: () => void): void;
99
125
  writeRaw(data: Uint8Array, afterChunk?: () => void): void;
100
126
  getCell(row: number, col: number): CellData;
127
+ /** Zero-based live row. Null means unavailable or out of range. */
128
+ getRowMetadata?(row: number): TerminalRowMetadata | null;
101
129
  isDirtyRow(row: number): boolean;
102
130
  clearDirty(): void;
131
+ /** Applied grid dimensions after init() or resize(), which may differ from the request. */
103
132
  getCols(): number;
104
133
  getRows(): number;
134
+ /** Optional tracked cell location. Null for invalid positions or exhausted capacity. */
135
+ trackPosition?(position: TerminalPosition): TrackedTerminalPosition | null;
105
136
  getCursor(): CursorState;
106
137
  cursorKeysApp(): boolean;
107
138
  bracketedPaste(): boolean;
108
139
  usingAltScreen(): boolean;
109
- mouseTracking?(): 0 | 1000 | 1002;
140
+ mouseTracking?(): 0 | 1000 | 1002 | 1003;
141
+ /** True only for cell-coordinate SGR mode 1006; use mouseEncoding() for pixel mode 1016. */
110
142
  mouseSgr?(): boolean;
143
+ /** Active mouse wire format. Optional for cores that only expose SGR state. */
144
+ mouseEncoding?(): MouseEncoding | null;
111
145
  focusEvents?(): boolean;
112
146
  synchronizedOutput?(): boolean;
113
147
  synchronizedOutputGeneration?(): number;
114
148
  kittyKeyboardFlags?(): number;
115
149
  getTitle(): string | null;
150
+ /** Read and clear the number of pending BEL controls. Optional for custom cores. */
151
+ getBellCount?(): number;
116
152
  getResponse(): string | null;
117
153
  getResourceState?(): TerminalResourceState;
118
154
  /** Returns a caller-owned snapshot for the active screen, or no state. */
@@ -123,6 +159,8 @@ export interface TerminalCore {
123
159
  getScrollbackDiscardedCount?(): number;
124
160
  getScrollbackCell(offset: number, col: number): CellData;
125
161
  getScrollbackLineLen(offset: number): number;
162
+ /** Offset zero is the newest history row. Null means unavailable or out of range. */
163
+ getScrollbackRowMetadata?(offset: number): TerminalRowMetadata | null;
126
164
  getUnhandledSequences(): UnhandledSequence[];
127
165
  }
128
166
  //# sourceMappingURL=terminal-core.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-core.d.ts","sourceRoot":"","sources":["../src/terminal-core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminal-core.d.ts","sourceRoot":"","sources":["../src/terminal-core.ts"],"names":[],"mappings":"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"}
@@ -2,30 +2,60 @@ export interface WebSocketTransportOptions {
2
2
  url?: string;
3
3
  reconnect?: boolean;
4
4
  maxReconnectDelay?: number;
5
+ /** Maximum queued bytes, including WebSocket.bufferedAmount. Default: 1 MiB. */
6
+ maxBufferedBytes?: number;
7
+ /** Maximum messages waiting in the transport queue. Default: 1,024. */
8
+ maxBufferedMessages?: number;
9
+ /** Pause feeding the socket at this byte threshold. Default: 64 KiB. */
10
+ highWaterMark?: number;
11
+ /** Resume feeding the socket at or below this threshold. Default: 16 KiB. */
12
+ lowWaterMark?: number;
5
13
  onData?: (data: Uint8Array | string) => void;
6
14
  onOpen?: () => void;
7
15
  onClose?: () => void;
8
16
  onError?: (event: Event) => void;
17
+ /** Called on pressure transitions; pause producers while true. */
18
+ onBackpressure?: (paused: boolean) => void;
9
19
  }
10
20
  export declare class WebSocketTransport {
11
21
  url: string | null;
12
22
  reconnect: boolean;
13
23
  maxReconnectDelay: number;
24
+ readonly maxBufferedBytes: number;
25
+ readonly maxBufferedMessages: number;
26
+ readonly highWaterMark: number;
27
+ readonly lowWaterMark: number;
14
28
  onData: ((data: Uint8Array | string) => void) | null;
15
29
  onOpen: (() => void) | null;
16
30
  onClose: (() => void) | null;
17
31
  onError: ((event: Event) => void) | null;
32
+ onBackpressure: ((paused: boolean) => void) | null;
18
33
  private _ws;
34
+ private _connectionUrl;
19
35
  private _reconnectTimer;
36
+ private _drainTimer;
20
37
  private _reconnectDelay;
21
38
  private _closed;
22
39
  private _buffer;
40
+ private _queuedBytes;
41
+ private _backpressured;
42
+ private _socketPaused;
23
43
  constructor(options?: WebSocketTransportOptions);
24
44
  connect(url?: string): void;
45
+ /** Accept the complete message or throw; never enqueue a partial paste. */
25
46
  send(data: string | Uint8Array): void;
26
47
  close(): void;
27
48
  get connected(): boolean;
49
+ /** Bytes still queued here plus bytes buffered by the current open socket. */
50
+ get bufferedAmount(): number;
51
+ get queuedBytes(): number;
52
+ get queuedMessages(): number;
53
+ get backpressured(): boolean;
28
54
  private _flushBuffer;
55
+ private _updatePressure;
56
+ private _clearBuffer;
57
+ private _cancelTimers;
58
+ private _detach;
29
59
  private _scheduleReconnect;
30
60
  }
31
61
  //# sourceMappingURL=transport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,yBAAyB;IACxC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,KAAK,IAAI,CAAC;IAC7C,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED,qBAAa,kBAAkB;IAC7B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IACrD,MAAM,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IAEzC,OAAO,CAAC,GAAG,CAA0B;IACrC,OAAO,CAAC,eAAe,CAA8C;IACrE,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAA+B;gBAElC,OAAO,GAAE,yBAA8B;IAUnD,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAmC3B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAYrC,KAAK,IAAI,IAAI;IAMb,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,kBAAkB;CAS3B"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,yBAAyB;IACxC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,uEAAuE;IACvE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,wEAAwE;IACxE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,KAAK,IAAI,CAAC;IAC7C,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,kEAAkE;IAClE,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CAC5C;AAuBD,qBAAa,kBAAkB;IAC7B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IACrD,MAAM,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IACzC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IAEnD,OAAO,CAAC,GAAG,CAA0B;IACrC,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,eAAe,CAA8C;IACrE,OAAO,CAAC,WAAW,CAA8C;IACjE,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,aAAa,CAAS;IAE9B,YAAY,OAAO,GAAE,yBAA8B,EA8BlD;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAoE1B;IAED,2EAA2E;IAC3E,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAiBpC;IAED,KAAK,IAAI,IAAI,CAUZ;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,8EAA8E;IAC9E,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,OAAO,CAAC,YAAY;IAqCpB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,kBAAkB;CAU3B"}
package/dist/transport.js CHANGED
@@ -1,86 +1,244 @@
1
+ // Count before encoding so rejected pastes do not allocate another huge buffer.
2
+ function utf8Length(text, limit) {
3
+ let bytes = 0;
4
+ for (let i = 0; i < text.length && bytes <= limit; i++) {
5
+ const code = text.charCodeAt(i);
6
+ if (code < 0x80)
7
+ bytes++;
8
+ else if (code < 0x800)
9
+ bytes += 2;
10
+ else if (code >= 0xd800 &&
11
+ code <= 0xdbff &&
12
+ i + 1 < text.length &&
13
+ text.charCodeAt(i + 1) >= 0xdc00 &&
14
+ text.charCodeAt(i + 1) <= 0xdfff) {
15
+ bytes += 4;
16
+ i++;
17
+ }
18
+ else
19
+ bytes += 3; // Includes TextEncoder's replacement for lone surrogates.
20
+ }
21
+ return bytes;
22
+ }
1
23
  export class WebSocketTransport {
2
24
  constructor(options = {}) {
3
25
  this._ws = null;
26
+ this._connectionUrl = null;
4
27
  this._reconnectTimer = null;
28
+ this._drainTimer = null;
5
29
  this._reconnectDelay = 1000;
6
30
  this._closed = false;
7
31
  this._buffer = [];
32
+ this._queuedBytes = 0;
33
+ this._backpressured = false;
34
+ this._socketPaused = false;
8
35
  this.url = options.url ?? null;
36
+ this._connectionUrl = this.url;
9
37
  this.reconnect = options.reconnect !== false;
10
38
  this.maxReconnectDelay = options.maxReconnectDelay ?? 30000;
39
+ this.maxBufferedBytes = options.maxBufferedBytes ?? 1024 * 1024;
40
+ this.maxBufferedMessages = options.maxBufferedMessages ?? 1024;
41
+ this.highWaterMark =
42
+ options.highWaterMark ?? Math.min(64 * 1024, this.maxBufferedBytes);
43
+ this.lowWaterMark =
44
+ options.lowWaterMark ?? Math.floor(this.highWaterMark / 4);
45
+ if (!Number.isSafeInteger(this.maxBufferedBytes) ||
46
+ this.maxBufferedBytes <= 0 ||
47
+ !Number.isSafeInteger(this.maxBufferedMessages) ||
48
+ this.maxBufferedMessages <= 0 ||
49
+ !Number.isSafeInteger(this.highWaterMark) ||
50
+ this.highWaterMark <= 0 ||
51
+ this.highWaterMark > this.maxBufferedBytes ||
52
+ !Number.isSafeInteger(this.lowWaterMark) ||
53
+ this.lowWaterMark < 0 ||
54
+ this.lowWaterMark >= this.highWaterMark) {
55
+ throw new RangeError("Invalid WebSocket buffer limits");
56
+ }
11
57
  this.onData = options.onData ?? null;
12
58
  this.onOpen = options.onOpen ?? null;
13
59
  this.onClose = options.onClose ?? null;
14
60
  this.onError = options.onError ?? null;
61
+ this.onBackpressure = options.onBackpressure ?? null;
15
62
  }
16
63
  connect(url) {
17
- if (url)
18
- this.url = url;
19
- if (!this.url)
64
+ const target = url ?? this.url;
65
+ if (!target)
20
66
  throw new Error("No WebSocket URL provided");
67
+ const previous = this._ws;
68
+ if (!this._closed &&
69
+ target === this._connectionUrl &&
70
+ previous &&
71
+ (previous.readyState === WebSocket.CONNECTING ||
72
+ previous.readyState === WebSocket.OPEN))
73
+ return;
74
+ // Construct first: a malformed URL must not dispose a working connection.
75
+ const ws = new WebSocket(target);
76
+ const oldTarget = this._connectionUrl ?? this.url;
77
+ const changedUrl = oldTarget !== null && target !== oldTarget;
78
+ this._cancelTimers();
79
+ this._ws = ws;
21
80
  this._closed = false;
22
- this._ws = new WebSocket(this.url);
23
- this._ws.binaryType = "arraybuffer";
24
- this._ws.onopen = () => {
81
+ this._socketPaused = false;
82
+ this.url = target;
83
+ this._connectionUrl = target;
84
+ if (changedUrl)
85
+ this._clearBuffer();
86
+ if (previous) {
87
+ this._detach(previous);
88
+ previous.close();
89
+ }
90
+ ws.binaryType = "arraybuffer";
91
+ ws.onopen = () => {
92
+ if (this._ws !== ws || this._closed)
93
+ return;
25
94
  this._reconnectDelay = 1000;
26
95
  this._flushBuffer();
27
- if (this.onOpen)
28
- this.onOpen();
96
+ if (this._ws === ws && !this._closed)
97
+ this.onOpen?.();
29
98
  };
30
- this._ws.onmessage = (event) => {
31
- if (this.onData) {
32
- if (event.data instanceof ArrayBuffer) {
33
- this.onData(new Uint8Array(event.data));
34
- }
35
- else {
36
- this.onData(event.data);
37
- }
38
- }
99
+ ws.onmessage = (event) => {
100
+ if (this._ws !== ws || this._closed)
101
+ return;
102
+ this.onData?.(event.data instanceof ArrayBuffer
103
+ ? new Uint8Array(event.data)
104
+ : event.data);
39
105
  };
40
- this._ws.onclose = () => {
41
- if (this.onClose)
42
- this.onClose();
106
+ ws.onclose = () => {
107
+ if (this._ws !== ws)
108
+ return;
109
+ this._ws = null;
110
+ this._detach(ws);
111
+ this._cancelTimers();
112
+ this._socketPaused = false;
113
+ // Only bytes still owned by the transport survive a lost connection.
114
+ // Bytes handed to WebSocket.send have uncertain delivery and are never replayed.
43
115
  if (this.reconnect && !this._closed)
44
116
  this._scheduleReconnect();
117
+ try {
118
+ this._updatePressure();
119
+ }
120
+ finally {
121
+ this.onClose?.();
122
+ }
45
123
  };
46
- this._ws.onerror = (event) => {
47
- if (this.onError)
48
- this.onError(event);
49
- this._ws?.close();
124
+ ws.onerror = (event) => {
125
+ if (this._ws !== ws || this._closed)
126
+ return;
127
+ try {
128
+ this.onError?.(event);
129
+ }
130
+ finally {
131
+ if (this._ws === ws)
132
+ ws.close();
133
+ }
50
134
  };
135
+ this._updatePressure();
51
136
  }
137
+ /** Accept the complete message or throw; never enqueue a partial paste. */
52
138
  send(data) {
53
- if (this._ws && this._ws.readyState === WebSocket.OPEN) {
54
- if (typeof data === "string") {
55
- this._ws.send(new TextEncoder().encode(data));
56
- }
57
- else {
58
- this._ws.send(data);
59
- }
60
- }
61
- else {
62
- this._buffer.push(data);
139
+ if (this._closed)
140
+ throw new Error("WebSocket transport is closed");
141
+ const available = this.maxBufferedBytes - this.bufferedAmount;
142
+ const bytes = typeof data === "string" ? utf8Length(data, available) : data.byteLength;
143
+ if (bytes > available || this._buffer.length >= this.maxBufferedMessages) {
144
+ throw new RangeError("WebSocket send buffer limit exceeded");
63
145
  }
146
+ // Copy views, including Buffer/subarray inputs, so caller mutations cannot
147
+ // change a pending command or keep an oversized backing buffer alive.
148
+ const item = typeof data === "string"
149
+ ? new TextEncoder().encode(data)
150
+ : new Uint8Array(data);
151
+ this._buffer.push(item);
152
+ this._queuedBytes += item.byteLength;
153
+ this._flushBuffer();
64
154
  }
65
155
  close() {
66
156
  this._closed = true;
67
- if (this._reconnectTimer)
68
- clearTimeout(this._reconnectTimer);
69
- if (this._ws)
70
- this._ws.close();
157
+ this._cancelTimers();
158
+ this._clearBuffer();
159
+ this._socketPaused = false;
160
+ try {
161
+ this._ws?.close();
162
+ }
163
+ finally {
164
+ this._updatePressure();
165
+ }
71
166
  }
72
167
  get connected() {
73
- return this._ws !== null && this._ws.readyState === WebSocket.OPEN;
168
+ return !this._closed && this._ws?.readyState === WebSocket.OPEN;
169
+ }
170
+ /** Bytes still queued here plus bytes buffered by the current open socket. */
171
+ get bufferedAmount() {
172
+ return this._queuedBytes + (this.connected ? this._ws.bufferedAmount : 0);
173
+ }
174
+ get queuedBytes() {
175
+ return this._queuedBytes;
176
+ }
177
+ get queuedMessages() {
178
+ return this._buffer.length;
179
+ }
180
+ get backpressured() {
181
+ return this._backpressured;
74
182
  }
75
183
  _flushBuffer() {
76
- const items = this._buffer.splice(0);
77
- for (const item of items) {
78
- this.send(item);
184
+ const ws = this._ws;
185
+ if (ws && this.connected) {
186
+ if (this._socketPaused && ws.bufferedAmount <= this.lowWaterMark)
187
+ this._socketPaused = false;
188
+ // Bound per-turn message work as well as bytes. Preserve message boundaries.
189
+ for (let sent = 0; !this._socketPaused && this._buffer.length && sent < 64; sent++) {
190
+ const item = this._buffer[0];
191
+ if (ws.bufferedAmount > 0 &&
192
+ ws.bufferedAmount + item.byteLength > this.highWaterMark) {
193
+ this._socketPaused = true;
194
+ break;
195
+ }
196
+ ws.send(item);
197
+ this._buffer.shift();
198
+ this._queuedBytes -= item.byteLength;
199
+ if (ws.bufferedAmount >= this.highWaterMark)
200
+ this._socketPaused = true;
201
+ }
202
+ if ((this._buffer.length || ws.bufferedAmount) &&
203
+ this._drainTimer === null) {
204
+ this._drainTimer = setTimeout(() => {
205
+ this._drainTimer = null;
206
+ this._flushBuffer();
207
+ }, 16);
208
+ }
79
209
  }
210
+ this._updatePressure();
211
+ }
212
+ _updatePressure() {
213
+ const bytes = this.bufferedAmount;
214
+ const full = this._buffer.length >= this.maxBufferedMessages;
215
+ const next = this._backpressured
216
+ ? bytes > this.lowWaterMark || full
217
+ : bytes >= this.highWaterMark || full;
218
+ if (next === this._backpressured)
219
+ return;
220
+ this._backpressured = next;
221
+ this.onBackpressure?.(next);
222
+ }
223
+ _clearBuffer() {
224
+ this._buffer = [];
225
+ this._queuedBytes = 0;
226
+ }
227
+ _cancelTimers() {
228
+ if (this._reconnectTimer !== null)
229
+ clearTimeout(this._reconnectTimer);
230
+ if (this._drainTimer !== null)
231
+ clearTimeout(this._drainTimer);
232
+ this._reconnectTimer = this._drainTimer = null;
233
+ }
234
+ _detach(ws) {
235
+ ws.onopen = ws.onmessage = ws.onclose = ws.onerror = null;
80
236
  }
81
237
  _scheduleReconnect() {
82
238
  this._reconnectTimer = setTimeout(() => {
83
- this.connect();
239
+ this._reconnectTimer = null;
240
+ if (!this._closed && this.reconnect)
241
+ this.connect();
84
242
  }, this._reconnectDelay);
85
243
  this._reconnectDelay = Math.min(this._reconnectDelay * 2, this.maxReconnectDelay);
86
244
  }
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { CellData, CursorState, TerminalResourceState, UnhandledSequence, TerminalCore } from "./terminal-core.js";
1
+ import type { CellData, CursorState, MouseEncoding, TerminalResourceState, UnhandledSequence, TerminalCore } from "./terminal-core.js";
2
2
  export declare class WasmBridge implements TerminalCore {
3
3
  private exports;
4
4
  private memory;
@@ -6,7 +6,7 @@ export declare class WasmBridge implements TerminalCore {
6
6
  private dirtyPtr;
7
7
  private writeBufferPtr;
8
8
  private cellSize;
9
- private maxCols;
9
+ private gridStride;
10
10
  private encoder;
11
11
  private decoder;
12
12
  private _dv;
@@ -28,13 +28,15 @@ export declare class WasmBridge implements TerminalCore {
28
28
  cursorKeysApp(): boolean;
29
29
  bracketedPaste(): boolean;
30
30
  usingAltScreen(): boolean;
31
- mouseTracking(): 0 | 1000 | 1002;
31
+ mouseTracking(): 0 | 1000 | 1002 | 1003;
32
32
  mouseSgr(): boolean;
33
+ mouseEncoding(): MouseEncoding | null;
33
34
  focusEvents(): boolean;
34
35
  synchronizedOutput(): boolean;
35
36
  synchronizedOutputGeneration(): number;
36
37
  kittyKeyboardFlags(): number;
37
38
  getTitle(): string | null;
39
+ getBellCount(): number;
38
40
  getResponse(): string | null;
39
41
  getResourceState(): TerminalResourceState;
40
42
  getScrollbackCount(): number;
@@ -1 +1 @@
1
- {"version":3,"file":"wasm-bridge.d.ts","sourceRoot":"","sources":["../src/wasm-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,WAAW,EACX,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACb,MAAM,oBAAoB,CAAC;AA2D5B,qBAAa,UAAW,YAAW,YAAY;IAC7C,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,OAAO,CAAO;IACtB,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,GAAG,CAAY;IACvB,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,SAAS,CAGb;IAEJ,OAAO,KAAK,EAAE,GAMb;gBAEW,QAAQ,EAAE,WAAW,CAAC,QAAQ;WAK7B,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAiBpD,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAMtC,OAAO,CAAC,eAAe;IAQvB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI;IAKvD,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI;IAYzD,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ;IAc3C,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIhC,UAAU,IAAI,IAAI;IAIlB,SAAS,IAAI,WAAW;IAQxB,OAAO,IAAI,MAAM;IAGjB,OAAO,IAAI,MAAM;IAIjB,aAAa,IAAI,OAAO;IAGxB,cAAc,IAAI,OAAO;IAGzB,cAAc,IAAI,OAAO;IAGzB,aAAa,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;IAIhC,QAAQ,IAAI,OAAO;IAGnB,WAAW,IAAI,OAAO;IAGtB,kBAAkB,IAAI,OAAO;IAG7B,4BAA4B,IAAI,MAAM;IAGtC,kBAAkB,IAAI,MAAM;IAI5B,QAAQ,IAAI,MAAM,GAAG,IAAI;IAQzB,WAAW,IAAI,MAAM,GAAG,IAAI;IAU5B,gBAAgB,IAAI,qBAAqB;IAqBzC,kBAAkB,IAAI,MAAM;IAI5B,2BAA2B,IAAI,MAAM;IAIrC,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ;IAexD,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAI5C,qBAAqB,IAAI,iBAAiB,EAAE;IA+B5C,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAKxC,OAAO,CAAC,SAAS;CAmClB"}
1
+ {"version":3,"file":"wasm-bridge.d.ts","sourceRoot":"","sources":["../src/wasm-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,WAAW,EACX,aAAa,EACb,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACb,MAAM,oBAAoB,CAAC;AA+D5B,qBAAa,UAAW,YAAW,YAAY;IAC7C,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,GAAG,CAAY;IACvB,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,SAAS,CAGb;IAEJ,OAAO,KAAK,EAAE,GAMb;IAED,YAAY,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAGzC;IAED,OAAa,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAenD;IAED,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAIrC;IAED,OAAO,CAAC,eAAe;IAQvB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAGtD;IAED,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAYxD;IAED,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ,CAY1C;IAED,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAK/B;IAED,UAAU,IAAI,IAAI,CAEjB;IAED,SAAS,IAAI,WAAW,CASvB;IAED,OAAO,IAAI,MAAM,CAEhB;IACD,OAAO,IAAI,MAAM,CAEhB;IAED,aAAa,IAAI,OAAO,CAEvB;IACD,cAAc,IAAI,OAAO,CAExB;IACD,cAAc,IAAI,OAAO,CAExB;IACD,aAAa,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAGtC;IACD,QAAQ,IAAI,OAAO,CAElB;IACD,aAAa,IAAI,aAAa,GAAG,IAAI,CAkBpC;IACD,WAAW,IAAI,OAAO,CAErB;IACD,kBAAkB,IAAI,OAAO,CAE5B;IACD,4BAA4B,IAAI,MAAM,CAErC;IACD,kBAAkB,IAAI,MAAM,CAE3B;IAED,QAAQ,IAAI,MAAM,GAAG,IAAI,CAMxB;IAED,YAAY,IAAI,MAAM,CAErB;IAED,WAAW,IAAI,MAAM,GAAG,IAAI,CAQ3B;IAED,gBAAgB,IAAI,qBAAqB,CAmBxC;IAED,kBAAkB,IAAI,MAAM,CAE3B;IAED,2BAA2B,IAAI,MAAM,CAEpC;IAED,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ,CAavD;IAED,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE3C;IAED,qBAAqB,IAAI,iBAAiB,EAAE,CA6B3C;IAED,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAGvC;IAED,OAAO,CAAC,SAAS;CAmClB"}
@@ -19,7 +19,7 @@ export class WasmBridge {
19
19
  this.dirtyPtr = 0;
20
20
  this.writeBufferPtr = 0;
21
21
  this.cellSize = 12;
22
- this.maxCols = 256;
22
+ this.gridStride = 0;
23
23
  this.encoder = new TextEncoder();
24
24
  this.decoder = new TextDecoder();
25
25
  this._dvBuffer = null;
@@ -52,7 +52,7 @@ export class WasmBridge {
52
52
  this.dirtyPtr = this.exports.getDirtyPtr();
53
53
  this.writeBufferPtr = this.exports.getWriteBuffer();
54
54
  this.cellSize = this.exports.getCellSize();
55
- this.maxCols = this.exports.getMaxCols();
55
+ this.gridStride = this.exports.getGridStride();
56
56
  }
57
57
  writeString(str, afterChunk) {
58
58
  const encoded = this.encoder.encode(str);
@@ -65,12 +65,14 @@ export class WasmBridge {
65
65
  const buf = new Uint8Array(this.memory.buffer, this.writeBufferPtr, 8192);
66
66
  buf.set(data.subarray(offset, offset + chunk));
67
67
  this.exports.writeBytes(chunk);
68
+ // Escape sequences can swap the active screen and its backing storage.
69
+ this._updatePointers();
68
70
  offset += chunk;
69
71
  afterChunk?.();
70
72
  }
71
73
  }
72
74
  getCell(row, col) {
73
- const offset = this.gridPtr + (row * this.maxCols + col) * this.cellSize;
75
+ const offset = this.gridPtr + (row * this.gridStride + col) * this.cellSize;
74
76
  const dv = this.dv;
75
77
  const result = {
76
78
  char: dv.getUint32(offset, true),
@@ -83,16 +85,20 @@ export class WasmBridge {
83
85
  return result;
84
86
  }
85
87
  isDirtyRow(row) {
86
- return new Uint8Array(this.memory.buffer, this.dirtyPtr, 256)[row] !== 0;
88
+ return (new Uint8Array(this.memory.buffer, this.dirtyPtr, this.getRows())[row] !==
89
+ 0);
87
90
  }
88
91
  clearDirty() {
89
92
  this.exports.clearDirty();
90
93
  }
91
94
  getCursor() {
95
+ const shape = this.exports.getCursorShape?.() ?? 0;
92
96
  return {
93
97
  row: this.exports.getCursorRow(),
94
98
  col: this.exports.getCursorCol(),
95
99
  visible: this.exports.getCursorVisible() !== 0,
100
+ shape: shape === 1 ? "underline" : shape === 2 ? "bar" : "block",
101
+ blinking: (this.exports.getCursorBlinking?.() ?? 0) !== 0,
96
102
  };
97
103
  }
98
104
  getCols() {
@@ -112,11 +118,30 @@ export class WasmBridge {
112
118
  }
113
119
  mouseTracking() {
114
120
  const mode = this.exports.getMouseTracking();
115
- return mode === 1000 || mode === 1002 ? mode : 0;
121
+ return mode === 1000 || mode === 1002 || mode === 1003 ? mode : 0;
116
122
  }
117
123
  mouseSgr() {
118
124
  return this.exports.getMouseSgr() !== 0;
119
125
  }
126
+ mouseEncoding() {
127
+ const mode = this.exports.getMouseEncoding?.();
128
+ switch (mode) {
129
+ case 0:
130
+ return "x10";
131
+ case 1:
132
+ return "utf8";
133
+ case 2:
134
+ return "sgr";
135
+ case 3:
136
+ return "urxvt";
137
+ case 4:
138
+ return "sgr-pixels";
139
+ case undefined:
140
+ return this.mouseSgr() ? "sgr" : "x10";
141
+ default:
142
+ return null;
143
+ }
144
+ }
120
145
  focusEvents() {
121
146
  return this.exports.getFocusEvents() !== 0;
122
147
  }
@@ -137,6 +162,9 @@ export class WasmBridge {
137
162
  const bytes = new Uint8Array(this.memory.buffer, ptr, len);
138
163
  return this.decoder.decode(bytes);
139
164
  }
165
+ getBellCount() {
166
+ return this.exports.getBellCount?.() ?? 0;
167
+ }
140
168
  getResponse() {
141
169
  const len = this.exports.getResponseLen();
142
170
  if (len === 0)
@@ -1 +1 @@
1
- {"version":3,"file":"wasm-bridge.js","sourceRoot":"","sources":["../src/wasm-bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wasm-bridge.js","sourceRoot":"","sources":["../src/wasm-bridge.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const WASM_BASE64 = "AGFzbQEAAAABQAtgBX9/f39/AGAAAX9gAABgAX8Bf2ABfwBgA39/fwBgBH9/f38AYAJ/fwBgBH9/f38Bf2ADf39/AX9gAn9/AX8DSkkBAQEBAQIBAQMDAQEBAQEDAwMDAQEBAQEBAQEBAQEBAQEBAQECAQEEAwMFAgYHAAgJBwQHBwYGBwUKAgIJBQUHBwQGCQMAAQcHBAUBcAEFBQUDAQBkBgkBfwFBgIDAAAsHlgYtBm1lbW9yeQIACmdldE1heENvbHMAAAtnZXRDZWxsU2l6ZQABDmdldERlYnVnTG9nTWF4AAIUZ2V0RGVidWdMb2dFbnRyeVNpemUAARBnZXREZWJ1Z0xvZ0NvdW50AAMOZ2V0RGVidWdMb2dQdHIABA1jbGVhclJlc3BvbnNlAAUOZ2V0UmVzcG9uc2VMZW4ABg5nZXRSZXNwb25zZVB0cgAHFGdldFNjcm9sbGJhY2tMaW5lTGVuAAgRZ2V0U2Nyb2xsYmFja0xpbmUACRtnZXRTY3JvbGxiYWNrRGlzY2FyZGVkQ291bnQAChJnZXRTY3JvbGxiYWNrQ291bnQACxlnZXRIeXBlcmxpbmtSZWplY3RlZENvdW50AAwRZ2V0SHlwZXJsaW5rQ291bnQADRRnZXRIeXBlcmxpbmtDYXBhY2l0eQAODGdldExpbmtJZExlbgAPDGdldExpbmtJZFB0cgAQDWdldExpbmtVcmlMZW4AEQ1nZXRMaW5rVXJpUHRyABIPZ2V0VGl0bGVDaGFuZ2VkABMLZ2V0VGl0bGVMZW4AFAtnZXRUaXRsZVB0cgAVFWdldEtpdHR5S2V5Ym9hcmRGbGFncwAWH2dldFN5bmNocm9uaXplZE91dHB1dEdlbmVyYXRpb24AFxVnZXRTeW5jaHJvbml6ZWRPdXRwdXQAGA5nZXRGb2N1c0V2ZW50cwAZC2dldE1vdXNlU2dyABoQZ2V0TW91c2VUcmFja2luZwAbEWdldFVzaW5nQWx0U2NyZWVuABwRZ2V0QnJhY2tldGVkUGFzdGUAHRBnZXRDdXJzb3JLZXlzQXBwAB4HZ2V0Um93cwAfB2dldENvbHMAIBBnZXRDdXJzb3JWaXNpYmxlACEMZ2V0Q3Vyc29yQ29sACIMZ2V0Q3Vyc29yUm93ACMKY2xlYXJEaXJ0eQAkC2dldERpcnR5UHRyACUK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gQAMEgtBACAAQQFxOgC0tJiBAAwRC0EAIABBAXE6ALbEoIEADBALQQAgAEEBcToAm7KYgQAMDwtBACAAQQFxOgC7xKCBAAwOC0HoByEDIABBAXENDEEAIQNBAC8BjrKYgQBB6AdHDQ0MDAtB6gchAyAAQQFxDQpBACEDQQAvAY6ymIEAQeoHRw0MDAoLQQAgAEEBcToAnbKYgQAMCwtBACAAQQFxOgCaspiBAAwKCyAAQQAQv4CAgAAMCQsgAEEBEL+AgIAADAgLQQAgAEEBcToAnrKYgQAMBwsgAEEBcQ0DELqAgIAADAYLIABBAXEiA0UNAUEALQCcspiBAA0BQQBBACgC4KzogABBAWo2AuCs6IAADAELDwtBACADOgCcspiBAAwDCxC7gICAAAwCC0EAIAM7AY6ymIEADAELQQAgAzsBjrKYgQALIAFBAmohAQwACwvmAQECfyOAgICAAEEQayICJICAgIAAQQAhAyACQQA6AAsgAiABOgAJIAIgADoACCACQgA3AwAgAkEALQC2iMCAACIBOgAKIAFBBCABQQRJG0EBdCEBAkADQCABIANGDQEgAiADaiADQZCIwIAAai8BADsBACADQQJqIQMMAAsLQQAtALrEoIEAIgNBDGwiASACKQMANwH+rpiBACABQYavmIEAaiACQQhqKAIANgEAQQAgA0EBakEfcToAusSggQBBAEEAKALorpiBAEEBaiIDQX8gAxs2AuiumIEAIAJBEGokgICAgAALeAECfwJAIABB//8DcSICQQAvAeasmIEATw0AIAJBgBhsQeSs6IAAaiEAQQAhAwJAA0AgA0EALwHkrJiBAE8NASAAIAEpAgA3AgAgAEEIaiABQQhqKAIANgIAIABBDGohACADQQFqIQMMAAsLIAJBAToA6KyYgQALC7ACAQN/AkAgAEH//wNxIgRBAC8B5qyYgQBPDQAgAUH//wNxIgVBAC8B5KyYgQAiACAFIABJGyEBAkAgBSACQf//A3EiBiAAIAYgAEkbIgZPDQAgASAEQYAYbEHkrOiAAGoiBSABQQxsai0ACUUgAUH//wNxQQBHcWshASACQf//A3EgAE8NAAJAIAUgBkEMbGotAAkNACAGQQFqIQYMAQsgBiAFIAZBf2pB//8DcUEMbGotAAlBAkZqIQYLQQAgBkH//wNxIgAgAUH//wNx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";
1
+ export declare const WASM_BASE64 = "AGFzbQEAAAABSgxgBX9/f39/AGAEf39/fwF/YAABf2AAAGABfwF/YAF/AGADf39/AGACf38AYAR/f39/AGADf39/AX9gAn9/AX9gBn9/f39/fwF/A1taAgICAgIDAgIEBAICAgICBAQEBAICAgICAgICAgICAgICAgICAgICAgMCAgUEBAYHCAMAAQkKBwcFBwYIBQgGCgMDBgkHBwAHCQUGBwkHCAkEAAIBBAsLBwYHBAUBcAEJCQUDAQAdBgkBfwFBgIDAAAsH7QYyBm1lbW9yeQIADWdldEdyaWRTdHJpZGUAAApnZXRNYXhDb2xzAA4LZ2V0Q2VsbFNpemUAAQ5nZXREZWJ1Z0xvZ01heAACFGdldERlYnVnTG9nRW50cnlTaXplAAEQZ2V0RGVidWdMb2dDb3VudAADDmdldERlYnVnTG9nUHRyAAQNY2xlYXJSZXNwb25zZQAFDmdldFJlc3BvbnNlTGVuAAYOZ2V0UmVzcG9uc2VQdHIABxRnZXRTY3JvbGxiYWNrTGluZUxlbgAIEWdldFNjcm9sbGJhY2tMaW5lAAkbZ2V0U2Nyb2xsYmFja0Rpc2NhcmRlZENvdW50AAoSZ2V0U2Nyb2xsYmFja0NvdW50AAsZZ2V0SHlwZXJsaW5rUmVqZWN0ZWRDb3VudAAMEWdldEh5cGVybGlua0NvdW50AA0UZ2V0SHlwZXJsaW5rQ2FwYWNpdHkADgxnZXRMaW5rSWRMZW4ADwxnZXRMaW5rSWRQdHIAEA1nZXRMaW5rVXJpTGVuABENZ2V0TGlua1VyaVB0cgASDGdldEJlbGxDb3VudAATD2dldFRpdGxlQ2hhbmdlZAAUC2dldFRpdGxlTGVuABULZ2V0VGl0bGVQdHIAFhVnZXRLaXR0eUtleWJvYXJkRmxhZ3MAFx9nZXRTeW5jaHJvbml6ZWRPdXRwdXRHZW5lcmF0aW9uABgVZ2V0U3luY2hyb25pemVkT3V0cHV0ABkOZ2V0Rm9jdXNFdmVudHMAGhBnZXRNb3VzZUVuY29kaW5nABsLZ2V0TW91c2VTZ3IAHBBnZXRNb3VzZVRyYWNraW5nAB0RZ2V0VXNpbmdBbHRTY3JlZW4AHhFnZXRCcmFja2V0ZWRQYXN0ZQAfEGdldEN1cnNvcktleXNBcHAAIAdnZXRSb3dzACEHZ2V0Q29scwAi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gABFDQBBAC8B3JHAgAAOBAAZGQEZC0EALwHeueiAACIGQf8HSw0YIAZBADoAwczwgAAMGAtB7bowIQYDQCAGQe3CMEYNGCAGQdSRwIAAakEAOgAAIAZBAWohBgwACwtBACEGAkBBAC0AgpLAgAAiBw0AQQBBgIKACDYC4LnogABBAEEAOgC6vOiAAAwXCwNAIAZB/wFxIgkgB0H/AXFPDRcCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAlBAXQvAdyRwIAAIg0OMgABAgMEBRQGBwgUFBQUFBQUFBQUFBQJCgsMFA0ODxQUFBQUFBQUEBEUFBQUFBQUFBITFAtBAEGAgoAINgLgueiAAEEAQQA6ALq86IAADBsLQQBBAC0AurzogABBAXI6ALq86IAADBoLQQBBAC0AurzogABBAnI6ALq86IAADBkLQQBBAC0AurzogABBBHI6ALq86IAADBgLIAZBAWoiDUH/AXEiCSAHQf8BcUkNEEEALQC6vOiAACEHDBULQQBBAC0AurzogABBEHI6ALq86IAADBYLQQBBAC0AurzogABBIHI6ALq86IAADBULQQBBAC0AurzogABBwAByOgC6vOiAAAwUC0EAQQAtALq86IAAQYABcjoAurzogAAMEwtBAEEALQC6vOiAAEH8AXE6ALq86IAADBILQQBBAC0AurzogABB+wFxOgC6vOiAAAwRC0EAQQAtALq86IAAQfcBcToAurzogAAMEAtBAEEALQC6vOiAAEHvAXE6ALq86IAADA8LQQBBAC0AurzogABB3wFxOgC6vOiAAAwOC0EAQQAtALq86IAAQb8BcToAurzogAAMDQtBAEEALQC6vOiAAEH/AHE6ALq86IAADAwLIAZB4LnogAAQv4CAgABB/wFxIAZqIQYMCwtBAEGAAjsB4LnogAAMCgsgBkHiueiAABC/gICAAEH/AXEgBmohBgwJC0EAQYACOwHiueiAAAwICyANQWJqIg9B//8DcUEISQ0EIA1B+P8DcUEoRg0DIA1Bpn9qQf//A3FBCEkNAiANQZx/akH//wNxQQhJDQEgB0F/aiEGIAdB/wFxQX9qIQ0DQCANIAlGDQggCUGFksCAAGohByAJQQFqIg8hCSAHLQAARQ0HDAALC0EA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ACEBQQBBCDoAgJLAgABBAEEAOgCZlsCAAEEAQQA7Af6RwIAACyABDwsCQCAAQfABcUEgRw0AAkBBAC0AlpLAgAAiAkEBSw0AIAIgADoAlJLAgABBAEEALQCWksCAAEEBajoAlpLAgAALQQBBAzoAgJLAgABBAA8LAkAgAEFQakH/AXFBzgBLDQBBACAAOgCBksCAAEEAQQA6AICSwIAAQQQPCwJAIABB/wFxQR9LDQBBACAAOgCBksCAAEECDwtBAEEAOgCAksCAAEEAC4YBAAJAIABB//8DcUEALwHGtuiAAE8NACABQf//A3FBAC8BxLbogABB//8DcU8NAEEAKAKwtuiAAEEALwHAtuiAACAAQf//A3EiAGxBDGxqIAFB//8DcUEMbGoiASACKQIANwIAIAFBCGogAkEIaigCADYCAEEAKAK4tuiAACAAakEBOgAACwuRBAEBfyOAgICAAEGACGsiAiSAgICAAEGwtuiAACAAIAEQyoCAgAACQEHIBEUNAEHYkcCAAEEAQcgE/AsAC0EAIAE7Afq56IAAQQAgADsB/LnogABBAEEBOgDAzPCAAEEAQoCAgICAoICAATcB1rnogABBAEKAgoAINwLgueiAAEEAQgA3AJG66IAAQQBCADcAl7rogABBACABOwHwueiAAEEAQQE6AIi66IAAQQBBADsB3rnogABBAEEAOgC+zPCAAEEAQQA6AL3M8IAAQQBBADoAvMzwgABBAEEAOgC7zPCAAEEAQQA6ALq86IAAQQBBADYBsrzogABBAEEANgC1vOiAAEEAQQA2AIm66IAAQQBBADYAjLrogABBAEEAOwHuueiAAEEAQgA3Af656IAAQQBCgAI3AfK56IAAQQBBgAI7Aey56IAAQQBCADcAn7rogABBAEIANwCnuuiAAEEAQQA7AYa66IAAQQBBADoAkLrogABBAEEANgLoueiAAEEAQQA6ALm86IAAQQBBADYCyLbogABBAEEAOwHQtuiAAEEAQQA2AdK56IAAQQBBADYArrrogAACQEGACEUNACACQQBBgAj8CwALQQghAQJAA0AgAUH/B0sNASACIAFqQQE6AAAgAUEIaiEBDAALCwJAQYAIRQ0AQcHM8IAAIAJBgAj8CgAACyACQYAIaiSAgICAAAuFAgEHfwJAIAJB//8DcUUNACABQf//A3EgAEH//wNxTQ0AIAEgAGsiBCACQf//A3EiAiAEQf//A3EiBCACIARJGyIFa0H//wNxIQZBACECA0ACQCAGIAJHDQAgBSAAakH//wNxIQIDQCAAQf//A3EgAk8NA0GwtuiAACAAIAMQuoCAgAAgAEEBaiEADAALCyABIAJBf3NqIgdB//8DcSEEAkBBAC8BxLbogABBDGwiCEUNAEEAKAKwtuiAACIJQQAvAcC26IAAIgogBGxBDGxqIAkgCiAHIAVrQf//A3FsQQxsaiAI/AoAAAtBACgCuLbogAAgBGpBAToAACACQQFqIQIMAAsLC/ABAQR/I4CAgIAAQRBrIgAkgICAgAACQAJAAkBBAC8B5LnogABBAWoiAUH//wNxQQAvAfC56IAAIgJJDQBBAC8B7rnogAAhAUEALQCfuuiAAA0BIAFB//8DcQ0BQQAhAUEAKAKglsCAACIDRQ0BIANBACgCsLbogABBAC8B/LnogAAQvoCAgABBAC8B8LnogAAhAkEALwHuueiAACEBDAELQQAgATsB5LnogAAMAQsgAEGAAjYCDCAAQYACOwEIIABBIDYCBCAAQQAvAeK56IAAOwEKIAEgAkEBIABBBGoQvYCAgAALIABBEGokgICAgAALWAACQCADIAJJDQAgAEIANwIADwsgBEH/AXEhBAJAA0AgAiADRg0BAkAgASADai0AACAERw0AIABBAToABCAAIAM2AgAPCyADQQFqIQMMAAsLIABCADcCAAv1AgEFfyOAgICAAEEQayIEJICAgIAAAkACQCABIANHDQBBASEFIAFFDQEgAEEBIAEbIgYgAkEBIAMbIgdGDQECQCABQRBLDQACQCABQQRPDQAgAC0AACAHLQAARiAAIAFBf2oiA2otAAAgByADai0AAEZxIAAgAUEBdiIDai0AACAHIANqLQAARnEhBQwDC0EAIQMgBEEANgIAIAQgAUF8aiIFNgIEIAQgAUEBdkEMcSIANgIIIAQgBSAAazYCDEEAIQUCQANAIANBEEYNASAHIAQgA2ooAgAiAGooAAAgBiAAaigAAHMgBXIhBSADQQRqIQMMAAsLIAVFIQUMAgsgAUF/akECdkEBaiEAIAYhAyAHIQUCQANAIABBf2oiAEUNASAFKAAAIQIgAygAACEIIANBBGohAyAFQQRqIQUgCCACRw0CDAALCyAGIAFBfGoiA2ooAAAgByADaigAAEYhBQwBC0EAIQULIARBEGokgICAgAAgBQvdAQIFfwF+I4CAgIAAQRBrIgMkgICAgABBACEEAkADQAJAIAIgBEsNAEEAIQUMAgsgASAEaiEGAkACQCAAKAIMIgcgAiAEayIFaiAAKAIISw0AAkAgBUUNACAAKAIEIAdqIAYgBfwKAAALIAAgACgCDCAFajYCDAwBCyAAKAIAKAIAIQcgAyAFNgIEIAMgBjYCACADQQhqIAAgA0EBQQEgBxGAgICAAICAgIAAIAMpAwgiCEIgiKciBUH//wNxDQIgCKchBQsgBSAEaiEEDAALCyADQRBqJICAgIAAIAUL6wEBA38jgICAgABBMGsiAiSAgICAAEEAIQMCQANAIAFB5ABJDQEgAkEPaiADakEfaiABIAFB5ABuIgRB5ABsayIBIAFB/wFxQQpuIgFBCmxrQQh0IAFyQbDgAHI7AAAgA0F+aiEDIAQhAQwACwsCQAJAIAFBCUsNACACQQ9qIANqQSBqIAFBMHI6AAAgA0EgaiEBDAELIAJBD2ogA2pBH2ogASABQf8BcUEKbiIEQQpsa0EIdCAEckGw4AByOwAAIANBH2ohAQsgACACQQ9qIAFqQSEgAWsQtICAgAAhASACQTBqJICAgIAAIAELdgECfwJAQQAvAdK56IAAIgJBgBBGDQBBAC8B1LnogAAhAwJAIAFBwAAgAUHAAEkbIgFFDQAgA0EGdEG7vOiAAGogACAB/AoAAAtBACADQQFqQf8PcTsB1LnogAAgAyABOgC7vPCAAEEAIAJBAWo7AdK56IAACwviAQEBfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAFB//8DcSICQZh4ag4RAQsCAwsEBQsLCwsLCwsLBgcACwJAIAJB6XdqDgMICQoAC0GggMCAACEBIAJBL0cNCgwLC0GigMCAACEBDAoLQaSAwIAAIQEMCQtBpoDAgAAhAQwIC0GogMCAACEBDAcLQaqAwIAAIQEMBgtBrIDAgAAhAQwFC0GugMCAACEBDAQLQbCAwIAAIQEMAwtBsoDAgAAhAQwCC0G0gMCAACEBDAELQbaAwIAAIQELIAAgAS8AADsAAAv4BQEKfyOAgICAAEEQayIBJICAgIAAQQJBACAAQQFxIgIbIQNBA0EAIAIbIQRBBEEAIAIbIQVBAC0AgpLAgAAiBkEBIAZBAUsbQQF0IQdBACEGA0ACQAJAAkAgByAGRg0AIAFBDmogBkHckcCAAGovAQAiCBC3gICAACABLQAPDQEMAgsgAUEQaiSAgICAAA8LQQBBAC8B/rnogAAiCUEBIAEtAA5BD3EiCnRyIAlBfiAKd3EgAhs7Af656IAACwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAhBmHhqDhEBEgIDBAUGEhISEhISEhIHCAALAkACQAJAAkACQAJAIAhBemoOBwECFxcXFwMACwJAIAhB6XdqDgMOEQ8ACwJAIAhBAUYNACAIQRRGDQQgCEEZRg0FIAhBL0YNDiAIQdQPRg0QIAhB6g9GDRIMFwtBACACOgCFuuiAAAwWC0EAIAI6AIa66IAADBULQQAgAjoAiLrogAAMFAtBACACOgC9zPCAAAwTC0EAIAI6AIO66IAADBILQQAgAjoAwMzwgAAMEQtB6AchCCACDQ9BACEIQQAvAfi56IAAQegHRw0QDA8LQeoHIQggAg0NQQAhCEEALwH4ueiAAEHqB0cNDwwNC0HrByEIIAINC0EAIQhBAC8B+LnogABB6wdHDQ4MCwtBACACOgCCuuiAAAwNC0EAIAI6AIS66IAADAwLQQAgAzoAhLrogAAMCwtBACAEOgCEuuiAAAwKC0EAIAU6AIS66IAADAkLIABBABDHgICAAAwICyAAQQEQx4CAgAAMBwtBACACOgCAuuiAAAwGCyACDQEQwICAgAAMBQsCQCACRQ0AQQAtAIG66IAADQBBAEEAKALMtuiAAEEBajYCzLbogAALQQAgAjoAgbrogAAMBAsQwYCAgAAMAwtBACAIOwH4ueiAAAwCC0EAIAg7Afi56IAADAELQQAgCDsB+LnogAALIAZBAmohBgwACwvmAQECfyOAgICAAEEQayICJICAgIAAQQAhAyACQQA6AAsgAiABOgAJIAIgADoACCACQgA3AwAgAkEALQCCksCAACIBOgAKIAFBBCABQQRJG0EBdCEBAkADQCABIANGDQEgAiADaiADQdyRwIAAai8BADsBACADQQJqIQMMAAsLQQAtAL/M8IAAIgNBDGwiASACKQMANwHStuiAACABQdq26IAAaiACQQhqKAIANgEAQQAgA0EBakEfcToAv8zwgABBAEEAKALUkcCAAEEBaiIDQX8gAxs2AtSRwIAAIAJBEGokgICAgAALewEDfwJAIAFB//8DcSIDIAAvARZPDQBBACEEQQAhAQJAA0AgASAALwEUTw0BIAAoAgAgAC8BECADbEEMbGogBGoiBSACKQIANwIAIAVBCGogAkEIaigCADYCACAEQQxqIQQgAUEBaiEBDAALCyAAKAIIIANqQQE6AAALC9ACAQN/AkAgAEH//wNxIgRBAC8BxrbogABPDQAgAUH//wNxIgVBAC8BxLbogAAiACAFIABJGyEBAkAgBSACQf//A3EiBiAAIAYgAEkbIgZPDQAgAUEAKAKwtuiAAEEALwHAtuiAACAEbEEMbGoiBSABQQxsai0ACUUgAUH//wNxQQBHcWshASACQf//A3EgAE8NAAJAIAUgBkEMbGotAAkNACAGQQFqIQYMAQsgBiAFIAZBf2pB//8DcUEMbGotAAlBAkZqIQYLQQAgBkH//wNxIgAgAUH//wNxIgFrIgIgAiAASxshACABQQxsIQECQANAIABFDQFBACgCsLbogAAgBEEALwHAtuiAAGxBDGxqIAFqIgIgAykCADcCACACQQhqIANBCGooAgA2AgAgAUEMaiEBIABBf2ohAAwACwtBACgCuLbogAAgBGpBAToAAAsLaQEDf0EAIQEDQAJAAkAgAUHg3QBGDQAgACABaiICQQhqIgMvAQBFDQEgAigCACACQQRqKAIAEMWAgIAADAELIABBADYC6F0gAEIANwLgXQ8LIAJCADcCACADQQA2AgAgAUEMaiEBDAALC+wBAQV/AkAgAkH//wNxRQ0AIAFB//8DcSAAQf//A3FNDQAgAkH//wNxIgIgASAAa0H//wNxIgQgAiAESRshBSABQf//A3EhBiAAQf//A3EhAANAAkAgBSAAaiICIAZJDQADQCAAQf//A3EgAUH//wNxTw0DQbC26IAAIAAgAxC6gICAACAAQQFqIQAMAAsLAkBBAC8BxLbogABBDGwiBEUNAEEAKAKwtuiAACIHIABBAC8BwLbogAAiCGxBDGxqIAcgAiAIbEEMbGogBPwKAAALQQAoAri26IAAIABqQQE6AAAgAEEBaiEADAALCwuGAgEFfyOAgICAAEEQayIDJICAgIAAAkACQAJAIAAgACgC5F1BDGxqIgQvAQggAkH//wNxIgVJDQAgBCgCACEGDAELIANBBGogAkH//wNxIgUQxICAgAAgAy8BDA0BIAMoAgghByADKAIEIQYCQCAELwEIRQ0AIAQoAgAgBCgCBBDFgICAAAsgBCACOwEIIAQgBzYCBCAEIAY2AgALAkAgBUEMbCIFRQ0AIAYgASAF/AoAAAsgBCACOwEKIAAgACgC5F1BAWpB6AdwNgLkXQJAIAAoAuBdIgJB6AdPDQAgACACQQFqNgLgXQwBCyAAIAAoAuhdQQFqNgLoXQsgA0EQaiSAgICAAAvdAgEDf0EAIQICQCAAQQFqQf8BcSIDQQAtAIKSwIAAIgRPDQACQAJAAkAgA0EBdC8B3JHAgABBfmoOBAEDAwADCyAAQQJqQf8BcSIAIARPDQIgAEEBdC8B3JHAgAAhAEECIQIMAQsgAEEEakH/AXEiAyAETw0BIANBAXQvAdyRwIAAIQICQCAAQQJqQf8BcUEBdC8B3JHAgAAiAyAAQQNqQf8BcUEBdC8B3JHAgAAiAEcNACAAIAJB//8DcUcNAEEEIQICQCADQf8BcSIAQQhPDQBBECEADAILAkAgAEH4AU0NAEHnASEADAILIANBeGpB/wFxQQpuQegBaiIAQf8BIABB/wFJGyEADAELIANBBWxB/wBqQf//A3FB/wFuQSRsIABBBWxB/wBqQf//A3FB/wFuQQZsaiACQQVsQf8AakH//wNxQf8BbmpBEGohAEEEIQILIAEgADsBAAsgAguKAQEBf0EAQQAvAda56IAAOwHkueiAAEEAQQAvAdi56IAAOwHeueiAAEEAQQAoAdq56IAANgLgueiAAEEAQQAtALvM8IAAOgC6vOiAAEEAQQAtAJ+66IAAQQdsIgAoAJG66IAANgGyvOiAAEEAIABBlLrogABqKAAANgC1vOiAAEEAQQA6ALzM8IAAC38BAX9BAEEALwHkueiAADsB1rnogABBAEEALwHeueiAADsB2LnogABBAEEAKALgueiAADYB2rnogABBAEEALQC6vOiAADoAu8zwgABBAC0An7rogABBB2wiAEEAKAGyvOiAADYAkbrogAAgAEGUuuiAAGpBACgAtbzogAA2AAAL7gIBBX8CQCAAQf//A3FBAC8BxrbogABPDQAgAUH//wNxQQAvAcS26IAAQf//A3FPDQACQAJAAkACQAJAQQAoArC26IAAIgNBAC8BwLbogAAgAEH//wNxIgBsIgRBDGxqIgUgAUH//wNxIgZBDGxqIgctAAkOAwAFAQULIAZFDQEgBSABQX9qQf//A3FBDGxqIgEtAAlBAkcNASABIAIpAgA3AgAgAUEIaiACQQhqKAIANgIAQQAvAcC26IAAIABsIQRBACgCsLbogAAhAwwBCyAHIAIpAgA3AgAgB0EIaiACQQhqKAIANgIAIAFBAWoiAUH//wNxQQAvAcS26IAATw0CQQAoArC26IAAQQAvAcC26IAAIABsQQxsaiABQf//A3FBDGxqIgEtAAlFDQEMAgsgAyAEQQxsaiAGQQxsaiEBCyABIAIpAgA3AgAgAUEIaiACQQhqKAIANgIAC0EAKAK4tuiAACAAakEBOgAACwudAQEDfyOAgICAAEEQayIDJICAgIAAQQAhBAN/AkAgAkH//wNxIgUNACABQf8BcSECIANBC2pBf2ohBQJAA0AgBEUNASAAIAJqIAUgBGotAAA6AAAgAkEBaiECIARBf2ohBAwACwsgA0EQaiSAgICAACACDwsgA0ELaiAEaiACIAVBCm4iBUEKbGtBMHI6AAAgBEEBaiEEIAUhAgwACwvuAQMBfwF+AX8jgICAgABBIGsiAiSAgICAACACIAGtQgx+IgNCIIinIgRBAEc6ABwCQAJAAkAgBEUNAEKAgICAICEDDAELAkACQCADpyIEDQBC/P///w8hAwwBC0IAQoCAgIAgQQApA5iAwIAAIgOnIARBAkEAIANCIIinKAIAEYGAgIAAgICAgAAiBBsgBK2EIQMgBEUNAQsgAiABNgIUIAIgAz4CECACQQA7ARggAkEQaiEBDAELIAIgA0IgiD0BDCACQQRqIQELIAAgASkCADcCACAAQQhqIAFBCGooAgA2AgAgAkEgaiSAgICAAAsdAAJAIAFFDQAgASAAIAFBDGxBAiABEMaAgIAACwvQAQECfyOAgICAAEEQayIFJICAgIAAIAUgA0EfcToADwJAAkBBICACQQRqIgJBASADdCIDIAIgA0sbIgNBf2pnayICQf//A3FBfWoiBkENTw0AIAFCASACrIanakF8aiAGQQJ0IgMoAuTS8oAANgIAIAMgATYC5NLygAAMAQsgAUIBQSAgA0GDgARqQRB2QX9qZ2siA61C//8Dg4anQRB0akF8aiADQf//A3FBAnQiAygCmNPygAA2AgAgAyABNgKY0/KAAAsgBUEQaiSAgICAAAuEBQEBfwJAIABBAXFBAC0An7rogABGDQBBACgCrLbogAAiAkUNAAJAAkACQCAAQQFxRQ0AIAJBAC8B/LnogABBAC8B+rnogAAQyICAgABB//8DcQ0DQQBBAC0AvszwgAA6AIe66IAAQQBBAC8B5rnogAA7Aeq56IAAQQBBADsB5rnogAAgAUEBcUUNAUEAQQAvAeS56IAAOwH2ueiAAEEAQQAvAeK56IAAOwHsueiAAEEAQQAtALq86IAAOgCQuuiAAEEAQQAoAbK86IAANgCJuuiAAEEAQQAoALW86IAANgCMuuiAAEEAQQAoAd656IAAQRB3NgHyueiAAAwBCyACEMmAgIAAQQBBAC8B6rnogAA7Aea56IAAQQBBADoAn7rogAACQCABQQFxRQ0AQQBBAC8B8rnogAA7AeC56IAAQQBBAC8B7LnogAA7AeK56IAAQQBBAC0AkLrogAA6ALq86IAAQQBBACgAibrogAA2AbK86IAAQQBBACgAjLrogAA2ALW86IAAQQBBAC8B9rnogAAiAEEALwH6ueiAAEF/akH//wNxIgEgACABSRs7AeS56IAAQQBBAC8B9LnogAAiAEEALwH8ueiAAEF/akH//wNxIgEgACABSRs7Ad656IAAQQBBADoAvMzwgABBAEEALQCHuuiAADoAvszwgAALQQAhAANAIABBAC8B+rnogAAiAU8NAkEAKAK4tuiAACAAakEBOgAAIABBAWohAAwACwsgAhDJgICAAEGwtuiAAEEALwH8ueiAAEEALwH6ueiAABDKgICAAEEAQQE6AJ+66IAAQQAvAfq56IAAIQELQQAgATsB8LnogABBAEEAOwHuueiAAAsLuwMDCH8BfgF/I4CAgIAAQRBrIgMkgICAgAAgAC8BECIEIAFBgAgQzICAgAAhBSAALwESIgYgAkGABBDMgICAACEHAkACQCAEIAVB//8DcSICRw0AQQAhASAHQf//A3EgBkH//wNxRg0BCyADIAdB//8DcSIIIAJsEMSAgIAAIAMvAQgiAQ0AIAMoAgQhCSADKAIAIQoCQAJAQQANAEEAKQOYgMCAACILpyAIQQBBACALQiCIpygCABGBgICAAICAgIAAIgYNAQsgCiAJEMWAgIAAQQIhAQwBCwJAIAhFDQAgBkEBIAj8CwALIAJBDGwhDEEAIQEgCiECAkADQCABIAAvARZPDQECQCAALwEUQQxsIgRFDQAgAiAAKAIAIAEgAC8BEGxBDGxqIAT8CgAACyAGIAFqIAAoAgggAWotAAA6AAAgAiAMaiECIAFBAWohAQwACwsCQCAALwEQRQ0AIAAoAgAgACgCBBDFgICAACAAKAIIIAAoAgwQzYCAgAALIAAgBzsBEiAAIAU7ARAgACAINgIMIAAgBjYCCCAAIAk2AgQgACAKNgIAQQAhAQsgA0EQaiSAgICAACABC0QBBH9BACEBAkADQCABQRhGDQEgAUGwtuiAAGoiAi0AACEDIAIgACABaiIELQAAOgAAIAQgAzoAACABQQFqIQEMAAsLC10AAkAgACABIAIQyICAgABB//8DcQ0AIAAgAjsBFiAAIAE7ARRBACEBAkADQCABQf//A3EgAkH//wNxTw0BIAAgARDLgICAACABQQFqIQEgAC8BFiECDAALCw8LAAsSACAAIAFBuIDAgAAQuoCAgAALUwAgAEH//wNxIgBBASAAQQFLGyEAIAFB//8DcSEBIAJB//8DcSECAkADQCAAQf//A3EgAU8NASAAQQF0Qf7/A3EiACACIAAgAkkbIQAMAAsLIAALGgACQCABRQ0AIAEgACABQQAgARDGgICAAAsLDgAgAEKAgICA8AA3AgALBABBBAsEAEEAC6cCAgF+Bn9CACEFAkAgA0UNACADQX9qIQYgAiEHAkACQANAIAEoAgggASgCDCIIayEJIAEoAgQgCGohCiADQX9qIgNFDQECQCAHQQRqKAIAIgggCSAIIAlJGyILRQ0AIAogBygCACAL/AoAAAsgB0EIaiEHIAEgASgCDCALajYCDCAIIAlNDQAMAgsLIAIgBkEDdGoiBygCACELAkACQCAHKAIEIgcOAgMAAQsCQCAJRQ0AIAogCy0AACAJ/AsACyABIAEoAgwgCWo2AgwMAQsDQAJAIAcgCSAJIAdLGyIIRQ0AIAogCyAI/AoAAAsgASABKAIMIAhqNgIMIAogB2ohCiAJIAdJIQggCSAHayEJIAhFDQALC0KAgICAwAAhBQsgACAFNwIACwgAQbCS8oAAC5UCAQR/I4CAgIAAQRBrIgQkgICAgAAgBCACQR9xOgAPQQAhBQJAQX8gAUEEaiIGIAYgAUkbIgFBASACdCICIAEgAksbIgFBf2pnIgJFDQACQAJAQSAgAmsiAkH//wNxQX1qIgZBDU8NAEIBIAKtQv//A4OGpyEHIAZBAnQiAigC5NLygAAiAUUNASACQeTS8oAAaiAHIAFqQXxqKAIANgIAIAEhBQwCCyABQYOABGpBEHYQ1ICAgAAhBQwBCyACQbDS8oAAaiEBAkAgAigCsNLygAAiAkH//wNxDQBBARDUgICAACICRQ0BIAEgAiAHajYCACACIQUMAQsgASACIAdqNgIAIAIhBQsgBEEQaiSAgICAACAFC2QBAn9CAUEgIABBf2pnayIArUL//wODhqchAQJAIABB//8DcUECdCICKAKY0/KAACIARQ0AIAJBmNPygABqIAFBEHQgAGpBfGooAgA2AgAgAA8LQQAgAUAAIgBBEHQgAEF/RhsLHAAgAUEAIAQgBCACIAMgBCAEENaAgIAAQQFxGwvgAQECfyOAgICAAEEQayIGJICAgIAAIAYgA0EfcToAD0F/IARBBGoiByAHIARJGyIEQQEgA3QiAyAEIANLGyEEAkACQAJAIAJBBGoiAiADIAIgA0sbIgNBf2pnIgJBb2pBDEsNACAEQX9qZyIDDQFBACEDDAILQgFBICADQYOABGpBEHZBf2pna61C//8Dg4anQgFBICAEQYOABGpBEHZBf2pna61C//8Dg4anRiEDDAELQgFBICACa61C//8Dg4anQgFBICADa61C//8Dg4anRiEDCyAGQRBqJICAgIAAIAMLvQ0BDH8jgICAgABBEGsiAiSAgICAAEGABCABQf//A3EiA0EBIANBAUsbIgNBgAQgA0GABEkbIAFBgARLGyEEQQAvAfq56IAAIQUCQAJAQYAIIABB//8DcSIBQQEgAUEBSxsiAUGACCABQYAISRsgAEGACEsbIgZBAC8B/LnogAAiB0cNACAEIAVB//8DcUYNAQtBsLbogAAgBiAEEMiAgIAAQf//A3ENAAJAQQAtAJ+66IAARQ0AQQAoAqy26IAAIAYgBBDIgICAAEH//wNxDQELAkAgBiAHSSIIRQ0AIAQgBUH//wNxIgEgBCABSRshCSAGQQxsIQpBACELQQAhDANAIAwgCUYNASAKIQAgBiEBAkADQCAHIAFB//8DcUYNAUEAKAKwtuiAACALQQAvAcC26IAAbGogAGoiA0EAKQK4gMCAADcCACADQQhqQQAoAsCAwIAANgIAIABBDGohACABQQFqIQEMAAsLIAtBDGohCyAMQQFqIQwMAAsLAkAgBCAFQf//A3EiC08NAEEALwHkueiAACIBIARJIgANAEEAIAEgBGtBAWoiASAAGyEMAkBBAC0An7rogAANAEEAKAKglsCAAEUNACAGIAcgCBshACABQf//A3EhA0EAIQEDQCADIAFGDQFBsLbogAAgASAAENiAgIAAQQAoAqCWwIAAQQAoArC26IAAIAFBAC8BwLbogABsQQxsaiAAEL6AgIAAIAFBAWohAQwACwtBACAFIAxBuIDAgAAQvYCAgABBAEEAQQAvAeS56IAAIgEgDEH//wNxayIAIAAgAUsbOwHkueiAAAtBACEBQQAgBDsB+rnogABBACAGOwH8ueiAAEEAIAQ7Aca26IAAQQAgBjsBxLbogAACQCAEIAtNDQACQEEALQCfuuiAAA0AQQAhAUEAKAKglsCAACIARQ0AIAAoAuBdIgAgBCAFa0H//wNxIgMgACADSRsiCEUNAEEAIAUgCGogCEG4gMCAABCwgICAAEEAIQoCQANAIAogCEYNAUEAKAKglsCAACIBKALgXSIARQ0BIAEgAEF/ajYC4F0gASABKALkXUHnB2pB6AdwIgA2AuRdIApBf3MgCGoiDUH//wNxIQkgASAAQQxsaiELQQAhAQNAAkACQCABIAZGDQBBACgCsLbogABBAC8BwLbogAAgCWxBDGxqIAFBDGwiDGohA0G4gMCAACEAIAEgCy8BCk8NASACQQhqIAsoAgAgDGoiAEEIaigCADYCACACIAApAgA3AwAgAiEADAELQbC26IAAIA0gBhDYgICAAEEAKAK4tuiAACAJakEBOgAAIApBAWohCgwCCyADIAApAgA3AgAgA0EIaiAAQQhqKAIANgIAIAFBAWohAQwACwsLQQBBAC8B5LnogAAgCGo7AeS56IAAIAghAQsgASAFaiEBA0AgAUH//wNxIARPDQFBsLbogAAgARDLgICAACABQQFqIQEMAAsLAkAgBiAHTQ0AIAQgBUH//wNxIgEgBCABSRshDCAGIAdrIQkgB0EMbCEFQQAhC0EAIQcDQCAHIAxGDQEgCSEBIAUhAAJAA0AgAUUNAUEAKAKwtuiAACALQQAvAcC26IAAbGogAGoiA0EAKQK4gMCAADcCACADQQhqQQAoAsCAwIAANgIAIAFBf2ohASAAQQxqIQAMAAsLQQAoAri26IAAIAdqQQE6AAAgC0EMaiELIAdBAWohBwwACwtBACAEOwHwueiAAEEAQQA7Ae656IAAQQAhAQJAA0AgAUH//wNxIARPDQFBsLbogAAgAUEALwH8ueiAABDYgICAACABQQFqIQEMAAsLAkBBAC8B3rnogAAgBkkNAEEAIAZBf2o7Ad656IAACwJAQQAvAeS56IAAIARJDQBBACAEQX9qOwHkueiAAAtBACEBAkADQCAEIAFGDQFBACgCuLbogAAgAWpBAToAACABQQFqIQEMAAsLQQAtAJ+66IAARQ0AQQAoAqy26IAAIgsvARYhByALIAQ7ARYgCy8BFCEMIAsgBjsBFCAGIAxrQf//A3FBDGwhCSAMQQxsIQVBACEDA0AgAyAERg0BAkACQCADIAdJDQAgCyADEMuAgIAADAELAkAgBiAMTQ0AIAsoAgAgAyALLwEQbEEMbGogBWohASAJIQADQCAARQ0BIAFBCGpBACgCwIDAgAA2AgAgAUEAKQK4gMCAADcCACAAQXRqIQAgAUEMaiEBDAALCyALIAMgBhDYgICAACALKAIIIANqQQE6AAALIANBAWohAwwACwsgAkEQaiSAgICAAAuwAgEHfyABQf//A3EhA0EAIQFBACEEA0ACQAJAIAFB//8DcSIFIAJB//8DcSIGTw0AAkACQAJAIAAoAgAgAC8BECADbEEMbGoiByAFQQxsaiIILQAJDgMABAECCwJAIAVFDQAgByABQX9qQf//A3FBDGxqLQAJQQJGDQQLIAhBACkCuIDAgAA3AgAgCEEIakEAKALAgMCAADYCAEEBIQQMAwsCQAJAIAFBAWoiCUH//wNxIgUgBk8NACAHIAVBDGxqLQAJRQ0BCyAIQQApAriAwIAANwIAIAhBCGpBACgCwIDAgAA2AgBBASEEIAkhAQwECyABQQJqIQEMAwtBASEEIAhBCWpBAToAAAwBCwJAIARBAXFFDQAgACgCCCADakEBOgAACw8LIAFBAWohAQwACwv7CAENfyOAgICAAEHAujBrIgIkgICAgABBgAQgAUEBIAEbIAFBgARLGyEBQYAIIABBASAAGyAAQYAISxshAAJAAkBBAC0A2NPygABFDQAgACABEK+AgIAAAkBBAC8B7NPygABFDQBBACgC3NPygABBACgC4NPygAAQxYCAgABBACgC5NPygABBACgC6NPygAAQzYCAgAALQQBCADcC7NPygABBAEIANwLk0/KAAEEAQgA3AtzT8oAADAELIAJBsLowaiIDQgA3AwAgAkG4ujBqIgRCADcDACACQgA3A6i6MCACQai6MGogACABEMqAgIAAIAJBADoAl7owIAJBAToAlLowIAJBADoAmLowIAJBAToAnLowIAJBADoAnrowIAJBADoAoLowIAJBADoApLowIAJBADoAorowIAJBADoAo7owIAJBADoAobowIAJBADoAm7owIAJBADoAmrowAkBB3KQoRQ0AIAJBjJIIakEAQdykKPwLAAsgAkH4tjBqIAQpAwA3AgAgAkHwtjBqIAMpAwA3AgAgAiACKQOoujA3Aui2MAJAQZIDRQ0AIAJBgLcwakEAQZID/AsACyACQYeSCGpBADYAACACQQA2AYSSCCACLQCaujAhAyACLQCbujAhBCACLQCkujAhBSACLQCjujAhBiACLQCiujAhByACLQChujAhCCACLQCgujAhCSACLQCeujAhCiACLQCcujAhCwJAQYEQRQ0AIAJBgIAIakEAQYEQ/AsACyACLQCYujAhDCACLQCXujAhDSACLQCUujAhDgJAQYaoKEUNAEHUkcCAACACQYySCGpBhqgo/AoAAAtBACALOgCIuuiAAEEAIAo6AIa66IAAQQAgCToAhbrogABBACAIOgCDuuiAAEEAIAc6AIK66IAAQQAgBjoAgbrogABBACAFOgCAuuiAAEEAIAA7Afy56IAAQQAgATsB+rnogABBAEKAAjcB8rnogABBACABOwHwueiAAEEAQYACNgLsueiAAEEAQgA3AuS56IAAQQBBgAI7AeK56IAAQQBCgIKAiICAgIABNwHaueiAAEEAQQA6AIe66IAAQQBBADoAhLrogABBAEEAOwH+ueiAAEEAQgA3AJe66IAAQQBCADcAkbrogABBAEIANwCJuuiAAEEAIAQ6AJ+66IAAQQBCADcCoLrogABBAEIANwKouuiAAEEAQQA7AbC66IAAAkBBhwJFDQBBsrrogAAgAkGEkAhqQYcC/AoAAAtBACADOgC5vOiAAEEAQQA6ALq86IAAAkBBgZAIRQ0AQbu86IAA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AAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAA==";
2
2
  //# sourceMappingURL=wasm-inline.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wasm-inline.d.ts","sourceRoot":"","sources":["../src/wasm-inline.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,WAAW,qt1BAAqt1B,CAAC"}
1
+ {"version":3,"file":"wasm-inline.d.ts","sourceRoot":"","sources":["../src/wasm-inline.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,WAAW,igoCAAigoC,CAAC"}
@@ -1,3 +1,3 @@
1
1
  // Auto-generated — do not edit. Run `node scripts/inline-wasm.js` to regenerate.
2
- export const WASM_BASE64 = "AGFzbQEAAAABQAtgBX9/f39/AGAAAX9gAABgAX8Bf2ABfwBgA39/fwBgBH9/f38AYAJ/fwBgBH9/f38Bf2ADf39/AX9gAn9/AX8DSkkBAQEBAQIBAQMDAQEBAQEDAwMDAQEBAQEBAQEBAQEBAQEBAQECAQEEAwMFAgYHAAgJBwQHBwYGBwUKAgIJBQUHBwQGCQMAAQcHBAUBcAEFBQUDAQBkBgkBfwFBgIDAAAsHlgYtBm1lbW9yeQIACmdldE1heENvbHMAAAtnZXRDZWxsU2l6ZQABDmdldERlYnVnTG9nTWF4AAIUZ2V0RGVidWdMb2dFbnRyeVNpemUAARBnZXREZWJ1Z0xvZ0NvdW50AAMOZ2V0RGVidWdMb2dQdHIABA1jbGVhclJlc3BvbnNlAAUOZ2V0UmVzcG9uc2VMZW4ABg5nZXRSZXNwb25zZVB0cgAHFGdldFNjcm9sbGJhY2tMaW5lTGVuAAgRZ2V0U2Nyb2xsYmFja0xpbmUACRtnZXRTY3JvbGxiYWNrRGlzY2FyZGVkQ291bnQAChJnZXRTY3JvbGxiYWNrQ291bnQACxlnZXRIeXBlcmxpbmtSZWplY3RlZENvdW50AAwRZ2V0SHlwZXJsaW5rQ291bnQADRRnZXRIeXBlcmxpbmtDYXBhY2l0eQAODGdldExpbmtJZExlbgAPDGdldExpbmtJZFB0cgAQDWdldExpbmtVcmlMZW4AEQ1nZXRMaW5rVXJpUHRyABIPZ2V0VGl0bGVDaGFuZ2VkABMLZ2V0VGl0bGVMZW4AFAtnZXRUaXRsZVB0cgAVFWdldEtpdHR5S2V5Ym9hcmRGbGFncwAWH2dldFN5bmNocm9uaXplZE91dHB1dEdlbmVyYXRpb24AFxVnZXRTeW5jaHJvbml6ZWRPdXRwdXQAGA5nZXRGb2N1c0V2ZW50cwAZC2dldE1vdXNlU2dyABoQZ2V0TW91c2VUcmFja2luZwAbEWdldFVzaW5nQWx0U2NyZWVuABwRZ2V0QnJhY2tldGVkUGFzdGUAHRBnZXRDdXJzb3JLZXlzQXBwAB4HZ2V0Um93cwAfB2dldENvbHMAIBBnZXRDdXJzb3JWaXNpYmxlACEMZ2V0Q3Vyc29yQ29sACIMZ2V0Q3Vyc29yUm93ACMKY2xlYXJEaXJ0eQAkC2dldERpcnR5UHRyACUK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gQAMEgtBACAAQQFxOgC0tJiBAAwRC0EAIABBAXE6ALbEoIEADBALQQAgAEEBcToAm7KYgQAMDwtBACAAQQFxOgC7xKCBAAwOC0HoByEDIABBAXENDEEAIQNBAC8BjrKYgQBB6AdHDQ0MDAtB6gchAyAAQQFxDQpBACEDQQAvAY6ymIEAQeoHRw0MDAoLQQAgAEEBcToAnbKYgQAMCwtBACAAQQFxOgCaspiBAAwKCyAAQQAQv4CAgAAMCQsgAEEBEL+AgIAADAgLQQAgAEEBcToAnrKYgQAMBwsgAEEBcQ0DELqAgIAADAYLIABBAXEiA0UNAUEALQCcspiBAA0BQQBBACgC4KzogABBAWo2AuCs6IAADAELDwtBACADOgCcspiBAAwDCxC7gICAAAwCC0EAIAM7AY6ymIEADAELQQAgAzsBjrKYgQALIAFBAmohAQwACwvmAQECfyOAgICAAEEQayICJICAgIAAQQAhAyACQQA6AAsgAiABOgAJIAIgADoACCACQgA3AwAgAkEALQC2iMCAACIBOgAKIAFBBCABQQRJG0EBdCEBAkADQCABIANGDQEgAiADaiADQZCIwIAAai8BADsBACADQQJqIQMMAAsLQQAtALrEoIEAIgNBDGwiASACKQMANwH+rpiBACABQYavmIEAaiACQQhqKAIANgEAQQAgA0EBakEfcToAusSggQBBAEEAKALorpiBAEEBaiIDQX8gAxs2AuiumIEAIAJBEGokgICAgAALeAECfwJAIABB//8DcSICQQAvAeasmIEATw0AIAJBgBhsQeSs6IAAaiEAQQAhAwJAA0AgA0EALwHkrJiBAE8NASAAIAEpAgA3AgAgAEEIaiABQQhqKAIANgIAIABBDGohACADQQFqIQMMAAsLIAJBAToA6KyYgQALC7ACAQN/AkAgAEH//wNxIgRBAC8B5qyYgQBPDQAgAUH//wNxIgVBAC8B5KyYgQAiACAFIABJGyEBAkAgBSACQf//A3EiBiAAIAYgAEkbIgZPDQAgASAEQYAYbEHkrOiAAGoiBSABQQxsai0ACUUgAUH//wNxQQBHcWshASACQf//A3EgAE8NAAJAIAUgBkEMbGotAAkNACAGQQFqIQYMAQsgBiAFIAZBf2pB//8DcUEMbGotAAlBAkZqIQYLQQAgBkH//wNxIgAgAUH//wNx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";
2
+ export const WASM_BASE64 = "AGFzbQEAAAABSgxgBX9/f39/AGAEf39/fwF/YAABf2AAAGABfwF/YAF/AGADf39/AGACf38AYAR/f39/AGADf39/AX9gAn9/AX9gBn9/f39/fwF/A1taAgICAgIDAgIEBAICAgICBAQEBAICAgICAgICAgICAgICAgICAgICAgMCAgUEBAYHCAMAAQkKBwcFBwYIBQgGCgMDBgkHBwAHCQUGBwkHCAkEAAIBBAsLBwYHBAUBcAEJCQUDAQAdBgkBfwFBgIDAAAsH7QYyBm1lbW9yeQIADWdldEdyaWRTdHJpZGUAAApnZXRNYXhDb2xzAA4LZ2V0Q2VsbFNpemUAAQ5nZXREZWJ1Z0xvZ01heAACFGdldERlYnVnTG9nRW50cnlTaXplAAEQZ2V0RGVidWdMb2dDb3VudAADDmdldERlYnVnTG9nUHRyAAQNY2xlYXJSZXNwb25zZQAFDmdldFJlc3BvbnNlTGVuAAYOZ2V0UmVzcG9uc2VQdHIABxRnZXRTY3JvbGxiYWNrTGluZUxlbgAIEWdldFNjcm9sbGJhY2tMaW5lAAkbZ2V0U2Nyb2xsYmFja0Rpc2NhcmRlZENvdW50AAoSZ2V0U2Nyb2xsYmFja0NvdW50AAsZZ2V0SHlwZXJsaW5rUmVqZWN0ZWRDb3VudAAMEWdldEh5cGVybGlua0NvdW50AA0UZ2V0SHlwZXJsaW5rQ2FwYWNpdHkADgxnZXRMaW5rSWRMZW4ADwxnZXRMaW5rSWRQdHIAEA1nZXRMaW5rVXJpTGVuABENZ2V0TGlua1VyaVB0cgASDGdldEJlbGxDb3VudAATD2dldFRpdGxlQ2hhbmdlZAAUC2dldFRpdGxlTGVuABULZ2V0VGl0bGVQdHIAFhVnZXRLaXR0eUtleWJvYXJkRmxhZ3MAFx9nZXRTeW5jaHJvbml6ZWRPdXRwdXRHZW5lcmF0aW9uABgVZ2V0U3luY2hyb25pemVkT3V0cHV0ABkOZ2V0Rm9jdXNFdmVudHMAGhBnZXRNb3VzZUVuY29kaW5nABsLZ2V0TW91c2VTZ3IAHBBnZXRNb3VzZVRyYWNraW5nAB0RZ2V0VXNpbmdBbHRTY3JlZW4AHhFnZXRCcmFja2V0ZWRQYXN0ZQAfEGdldEN1cnNvcktleXNBcHAAIAdnZXRSb3dzACEHZ2V0Q29scwAi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gABFDQBBAC8B3JHAgAAOBAAZGQEZC0EALwHeueiAACIGQf8HSw0YIAZBADoAwczwgAAMGAtB7bowIQYDQCAGQe3CMEYNGCAGQdSRwIAAakEAOgAAIAZBAWohBgwACwtBACEGAkBBAC0AgpLAgAAiBw0AQQBBgIKACDYC4LnogABBAEEAOgC6vOiAAAwXCwNAIAZB/wFxIgkgB0H/AXFPDRcCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAlBAXQvAdyRwIAAIg0OMgABAgMEBRQGBwgUFBQUFBQUFBQUFBQJCgsMFA0ODxQUFBQUFBQUEBEUFBQUFBQUFBITFAtBAEGAgoAINgLgueiAAEEAQQA6ALq86IAADBsLQQBBAC0AurzogABBAXI6ALq86IAADBoLQQBBAC0AurzogABBAnI6ALq86IAADBkLQQBBAC0AurzogABBBHI6ALq86IAADBgLIAZBAWoiDUH/AXEiCSAHQf8BcUkNEEEALQC6vOiAACEHDBULQQBBAC0AurzogABBEHI6ALq86IAADBYLQQBBAC0AurzogABBIHI6ALq86IAADBULQQBBAC0AurzogABBwAByOgC6vOiAAAwUC0EAQQAtALq86IAAQYABcjoAurzogAAMEwtBAEEALQC6vOiAAEH8AXE6ALq86IAADBILQQBBAC0AurzogABB+wFxOgC6vOiAAAwRC0EAQQAtALq86IAAQfcBcToAurzogAAMEAtBAEEALQC6vOiAAEHvAXE6ALq86IAADA8LQQBBAC0AurzogABB3wFxOgC6vOiAAAwOC0EAQQAtALq86IAAQb8BcToAurzogAAMDQtBAEEALQC6vOiAAEH/AHE6ALq86IAADAwLIAZB4LnogAAQv4CAgABB/wFxIAZqIQYMCwtBAEGAAjsB4LnogAAMCgsgBkHiueiAABC/gICAAEH/AXEgBmohBgwJC0EAQYACOwHiueiAAAwICyANQWJqIg9B//8DcUEISQ0EIA1B+P8DcUEoRg0DIA1Bpn9qQf//A3FBCEkNAiANQZx/akH//wNxQQhJDQEgB0F/aiEGIAdB/wFxQX9qIQ0DQCANIAlGDQggCUGFksCAAGohByAJQQFqIg8hCSAHLQAARQ0HDAALC0EA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ACEBQQBBCDoAgJLAgABBAEEAOgCZlsCAAEEAQQA7Af6RwIAACyABDwsCQCAAQfABcUEgRw0AAkBBAC0AlpLAgAAiAkEBSw0AIAIgADoAlJLAgABBAEEALQCWksCAAEEBajoAlpLAgAALQQBBAzoAgJLAgABBAA8LAkAgAEFQakH/AXFBzgBLDQBBACAAOgCBksCAAEEAQQA6AICSwIAAQQQPCwJAIABB/wFxQR9LDQBBACAAOgCBksCAAEECDwtBAEEAOgCAksCAAEEAC4YBAAJAIABB//8DcUEALwHGtuiAAE8NACABQf//A3FBAC8BxLbogABB//8DcU8NAEEAKAKwtuiAAEEALwHAtuiAACAAQf//A3EiAGxBDGxqIAFB//8DcUEMbGoiASACKQIANwIAIAFBCGogAkEIaigCADYCAEEAKAK4tuiAACAAakEBOgAACwuRBAEBfyOAgICAAEGACGsiAiSAgICAAEGwtuiAACAAIAEQyoCAgAACQEHIBEUNAEHYkcCAAEEAQcgE/AsAC0EAIAE7Afq56IAAQQAgADsB/LnogABBAEEBOgDAzPCAAEEAQoCAgICAoICAATcB1rnogABBAEKAgoAINwLgueiAAEEAQgA3AJG66IAAQQBCADcAl7rogABBACABOwHwueiAAEEAQQE6AIi66IAAQQBBADsB3rnogABBAEEAOgC+zPCAAEEAQQA6AL3M8IAAQQBBADoAvMzwgABBAEEAOgC7zPCAAEEAQQA6ALq86IAAQQBBADYBsrzogABBAEEANgC1vOiAAEEAQQA2AIm66IAAQQBBADYAjLrogABBAEEAOwHuueiAAEEAQgA3Af656IAAQQBCgAI3AfK56IAAQQBBgAI7Aey56IAAQQBCADcAn7rogABBAEIANwCnuuiAAEEAQQA7AYa66IAAQQBBADoAkLrogABBAEEANgLoueiAAEEAQQA6ALm86IAAQQBBADYCyLbogABBAEEAOwHQtuiAAEEAQQA2AdK56IAAQQBBADYArrrogAACQEGACEUNACACQQBBgAj8CwALQQghAQJAA0AgAUH/B0sNASACIAFqQQE6AAAgAUEIaiEBDAALCwJAQYAIRQ0AQcHM8IAAIAJBgAj8CgAACyACQYAIaiSAgICAAAuFAgEHfwJAIAJB//8DcUUNACABQf//A3EgAEH//wNxTQ0AIAEgAGsiBCACQf//A3EiAiAEQf//A3EiBCACIARJGyIFa0H//wNxIQZBACECA0ACQCAGIAJHDQAgBSAAakH//wNxIQIDQCAAQf//A3EgAk8NA0GwtuiAACAAIAMQuoCAgAAgAEEBaiEADAALCyABIAJBf3NqIgdB//8DcSEEAkBBAC8BxLbogABBDGwiCEUNAEEAKAKwtuiAACIJQQAvAcC26IAAIgogBGxBDGxqIAkgCiAHIAVrQf//A3FsQQxsaiAI/AoAAAtBACgCuLbogAAgBGpBAToAACACQQFqIQIMAAsLC/ABAQR/I4CAgIAAQRBrIgAkgICAgAACQAJAAkBBAC8B5LnogABBAWoiAUH//wNxQQAvAfC56IAAIgJJDQBBAC8B7rnogAAhAUEALQCfuuiAAA0BIAFB//8DcQ0BQQAhAUEAKAKglsCAACIDRQ0BIANBACgCsLbogABBAC8B/LnogAAQvoCAgABBAC8B8LnogAAhAkEALwHuueiAACEBDAELQQAgATsB5LnogAAMAQsgAEGAAjYCDCAAQYACOwEIIABBIDYCBCAAQQAvAeK56IAAOwEKIAEgAkEBIABBBGoQvYCAgAALIABBEGokgICAgAALWAACQCADIAJJDQAgAEIANwIADwsgBEH/AXEhBAJAA0AgAiADRg0BAkAgASADai0AACAERw0AIABBAToABCAAIAM2AgAPCyADQQFqIQMMAAsLIABCADcCAAv1AgEFfyOAgICAAEEQayIEJICAgIAAAkACQCABIANHDQBBASEFIAFFDQEgAEEBIAEbIgYgAkEBIAMbIgdGDQECQCABQRBLDQACQCABQQRPDQAgAC0AACAHLQAARiAAIAFBf2oiA2otAAAgByADai0AAEZxIAAgAUEBdiIDai0AACAHIANqLQAARnEhBQwDC0EAIQMgBEEANgIAIAQgAUF8aiIFNgIEIAQgAUEBdkEMcSIANgIIIAQgBSAAazYCDEEAIQUCQANAIANBEEYNASAHIAQgA2ooAgAiAGooAAAgBiAAaigAAHMgBXIhBSADQQRqIQMMAAsLIAVFIQUMAgsgAUF/akECdkEBaiEAIAYhAyAHIQUCQANAIABBf2oiAEUNASAFKAAAIQIgAygAACEIIANBBGohAyAFQQRqIQUgCCACRw0CDAALCyAGIAFBfGoiA2ooAAAgByADaigAAEYhBQwBC0EAIQULIARBEGokgICAgAAgBQvdAQIFfwF+I4CAgIAAQRBrIgMkgICAgABBACEEAkADQAJAIAIgBEsNAEEAIQUMAgsgASAEaiEGAkACQCAAKAIMIgcgAiAEayIFaiAAKAIISw0AAkAgBUUNACAAKAIEIAdqIAYgBfwKAAALIAAgACgCDCAFajYCDAwBCyAAKAIAKAIAIQcgAyAFNgIEIAMgBjYCACADQQhqIAAgA0EBQQEgBxGAgICAAICAgIAAIAMpAwgiCEIgiKciBUH//wNxDQIgCKchBQsgBSAEaiEEDAALCyADQRBqJICAgIAAIAUL6wEBA38jgICAgABBMGsiAiSAgICAAEEAIQMCQANAIAFB5ABJDQEgAkEPaiADakEfaiABIAFB5ABuIgRB5ABsayIBIAFB/wFxQQpuIgFBCmxrQQh0IAFyQbDgAHI7AAAgA0F+aiEDIAQhAQwACwsCQAJAIAFBCUsNACACQQ9qIANqQSBqIAFBMHI6AAAgA0EgaiEBDAELIAJBD2ogA2pBH2ogASABQf8BcUEKbiIEQQpsa0EIdCAEckGw4AByOwAAIANBH2ohAQsgACACQQ9qIAFqQSEgAWsQtICAgAAhASACQTBqJICAgIAAIAELdgECfwJAQQAvAdK56IAAIgJBgBBGDQBBAC8B1LnogAAhAwJAIAFBwAAgAUHAAEkbIgFFDQAgA0EGdEG7vOiAAGogACAB/AoAAAtBACADQQFqQf8PcTsB1LnogAAgAyABOgC7vPCAAEEAIAJBAWo7AdK56IAACwviAQEBfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAFB//8DcSICQZh4ag4RAQsCAwsEBQsLCwsLCwsLBgcACwJAIAJB6XdqDgMICQoAC0GggMCAACEBIAJBL0cNCgwLC0GigMCAACEBDAoLQaSAwIAAIQEMCQtBpoDAgAAhAQwIC0GogMCAACEBDAcLQaqAwIAAIQEMBgtBrIDAgAAhAQwFC0GugMCAACEBDAQLQbCAwIAAIQEMAwtBsoDAgAAhAQwCC0G0gMCAACEBDAELQbaAwIAAIQELIAAgAS8AADsAAAv4BQEKfyOAgICAAEEQayIBJICAgIAAQQJBACAAQQFxIgIbIQNBA0EAIAIbIQRBBEEAIAIbIQVBAC0AgpLAgAAiBkEBIAZBAUsbQQF0IQdBACEGA0ACQAJAAkAgByAGRg0AIAFBDmogBkHckcCAAGovAQAiCBC3gICAACABLQAPDQEMAgsgAUEQaiSAgICAAA8LQQBBAC8B/rnogAAiCUEBIAEtAA5BD3EiCnRyIAlBfiAKd3EgAhs7Af656IAACwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAhBmHhqDhEBEgIDBAUGEhISEhISEhIHCAALAkACQAJAAkACQAJAIAhBemoOBwECFxcXFwMACwJAIAhB6XdqDgMOEQ8ACwJAIAhBAUYNACAIQRRGDQQgCEEZRg0FIAhBL0YNDiAIQdQPRg0QIAhB6g9GDRIMFwtBACACOgCFuuiAAAwWC0EAIAI6AIa66IAADBULQQAgAjoAiLrogAAMFAtBACACOgC9zPCAAAwTC0EAIAI6AIO66IAADBILQQAgAjoAwMzwgAAMEQtB6AchCCACDQ9BACEIQQAvAfi56IAAQegHRw0QDA8LQeoHIQggAg0NQQAhCEEALwH4ueiAAEHqB0cNDwwNC0HrByEIIAINC0EAIQhBAC8B+LnogABB6wdHDQ4MCwtBACACOgCCuuiAAAwNC0EAIAI6AIS66IAADAwLQQAgAzoAhLrogAAMCwtBACAEOgCEuuiAAAwKC0EAIAU6AIS66IAADAkLIABBABDHgICAAAwICyAAQQEQx4CAgAAMBwtBACACOgCAuuiAAAwGCyACDQEQwICAgAAMBQsCQCACRQ0AQQAtAIG66IAADQBBAEEAKALMtuiAAEEBajYCzLbogAALQQAgAjoAgbrogAAMBAsQwYCAgAAMAwtBACAIOwH4ueiAAAwCC0EAIAg7Afi56IAADAELQQAgCDsB+LnogAALIAZBAmohBgwACwvmAQECfyOAgICAAEEQayICJICAgIAAQQAhAyACQQA6AAsgAiABOgAJIAIgADoACCACQgA3AwAgAkEALQCCksCAACIBOgAKIAFBBCABQQRJG0EBdCEBAkADQCABIANGDQEgAiADaiADQdyRwIAAai8BADsBACADQQJqIQMMAAsLQQAtAL/M8IAAIgNBDGwiASACKQMANwHStuiAACABQdq26IAAaiACQQhqKAIANgEAQQAgA0EBakEfcToAv8zwgABBAEEAKALUkcCAAEEBaiIDQX8gAxs2AtSRwIAAIAJBEGokgICAgAALewEDfwJAIAFB//8DcSIDIAAvARZPDQBBACEEQQAhAQJAA0AgASAALwEUTw0BIAAoAgAgAC8BECADbEEMbGogBGoiBSACKQIANwIAIAVBCGogAkEIaigCADYCACAEQQxqIQQgAUEBaiEBDAALCyAAKAIIIANqQQE6AAALC9ACAQN/AkAgAEH//wNxIgRBAC8BxrbogABPDQAgAUH//wNxIgVBAC8BxLbogAAiACAFIABJGyEBAkAgBSACQf//A3EiBiAAIAYgAEkbIgZPDQAgAUEAKAKwtuiAAEEALwHAtuiAACAEbEEMbGoiBSABQQxsai0ACUUgAUH//wNxQQBHcWshASACQf//A3EgAE8NAAJAIAUgBkEMbGotAAkNACAGQQFqIQYMAQsgBiAFIAZBf2pB//8DcUEMbGotAAlBAkZqIQYLQQAgBkH//wNxIgAgAUH//wNxIgFrIgIgAiAASxshACABQQxsIQECQANAIABFDQFBACgCsLbogAAgBEEALwHAtuiAAGxBDGxqIAFqIgIgAykCADcCACACQQhqIANBCGooAgA2AgAgAUEMaiEBIABBf2ohAAwACwtBACgCuLbogAAgBGpBAToAAAsLaQEDf0EAIQEDQAJAAkAgAUHg3QBGDQAgACABaiICQQhqIgMvAQBFDQEgAigCACACQQRqKAIAEMWAgIAADAELIABBADYC6F0gAEIANwLgXQ8LIAJCADcCACADQQA2AgAgAUEMaiEBDAALC+wBAQV/AkAgAkH//wNxRQ0AIAFB//8DcSAAQf//A3FNDQAgAkH//wNxIgIgASAAa0H//wNxIgQgAiAESRshBSABQf//A3EhBiAAQf//A3EhAANAAkAgBSAAaiICIAZJDQADQCAAQf//A3EgAUH//wNxTw0DQbC26IAAIAAgAxC6gICAACAAQQFqIQAMAAsLAkBBAC8BxLbogABBDGwiBEUNAEEAKAKwtuiAACIHIABBAC8BwLbogAAiCGxBDGxqIAcgAiAIbEEMbGogBPwKAAALQQAoAri26IAAIABqQQE6AAAgAEEBaiEADAALCwuGAgEFfyOAgICAAEEQayIDJICAgIAAAkACQAJAIAAgACgC5F1BDGxqIgQvAQggAkH//wNxIgVJDQAgBCgCACEGDAELIANBBGogAkH//wNxIgUQxICAgAAgAy8BDA0BIAMoAgghByADKAIEIQYCQCAELwEIRQ0AIAQoAgAgBCgCBBDFgICAAAsgBCACOwEIIAQgBzYCBCAEIAY2AgALAkAgBUEMbCIFRQ0AIAYgASAF/AoAAAsgBCACOwEKIAAgACgC5F1BAWpB6AdwNgLkXQJAIAAoAuBdIgJB6AdPDQAgACACQQFqNgLgXQwBCyAAIAAoAuhdQQFqNgLoXQsgA0EQaiSAgICAAAvdAgEDf0EAIQICQCAAQQFqQf8BcSIDQQAtAIKSwIAAIgRPDQACQAJAAkAgA0EBdC8B3JHAgABBfmoOBAEDAwADCyAAQQJqQf8BcSIAIARPDQIgAEEBdC8B3JHAgAAhAEECIQIMAQsgAEEEakH/AXEiAyAETw0BIANBAXQvAdyRwIAAIQICQCAAQQJqQf8BcUEBdC8B3JHAgAAiAyAAQQNqQf8BcUEBdC8B3JHAgAAiAEcNACAAIAJB//8DcUcNAEEEIQICQCADQf8BcSIAQQhPDQBBECEADAILAkAgAEH4AU0NAEHnASEADAILIANBeGpB/wFxQQpuQegBaiIAQf8BIABB/wFJGyEADAELIANBBWxB/wBqQf//A3FB/wFuQSRsIABBBWxB/wBqQf//A3FB/wFuQQZsaiACQQVsQf8AakH//wNxQf8BbmpBEGohAEEEIQILIAEgADsBAAsgAguKAQEBf0EAQQAvAda56IAAOwHkueiAAEEAQQAvAdi56IAAOwHeueiAAEEAQQAoAdq56IAANgLgueiAAEEAQQAtALvM8IAAOgC6vOiAAEEAQQAtAJ+66IAAQQdsIgAoAJG66IAANgGyvOiAAEEAIABBlLrogABqKAAANgC1vOiAAEEAQQA6ALzM8IAAC38BAX9BAEEALwHkueiAADsB1rnogABBAEEALwHeueiAADsB2LnogABBAEEAKALgueiAADYB2rnogABBAEEALQC6vOiAADoAu8zwgABBAC0An7rogABBB2wiAEEAKAGyvOiAADYAkbrogAAgAEGUuuiAAGpBACgAtbzogAA2AAAL7gIBBX8CQCAAQf//A3FBAC8BxrbogABPDQAgAUH//wNxQQAvAcS26IAAQf//A3FPDQACQAJAAkACQAJAQQAoArC26IAAIgNBAC8BwLbogAAgAEH//wNxIgBsIgRBDGxqIgUgAUH//wNxIgZBDGxqIgctAAkOAwAFAQULIAZFDQEgBSABQX9qQf//A3FBDGxqIgEtAAlBAkcNASABIAIpAgA3AgAgAUEIaiACQQhqKAIANgIAQQAvAcC26IAAIABsIQRBACgCsLbogAAhAwwBCyAHIAIpAgA3AgAgB0EIaiACQQhqKAIANgIAIAFBAWoiAUH//wNxQQAvAcS26IAATw0CQQAoArC26IAAQQAvAcC26IAAIABsQQxsaiABQf//A3FBDGxqIgEtAAlFDQEMAgsgAyAEQQxsaiAGQQxsaiEBCyABIAIpAgA3AgAgAUEIaiACQQhqKAIANgIAC0EAKAK4tuiAACAAakEBOgAACwudAQEDfyOAgICAAEEQayIDJICAgIAAQQAhBAN/AkAgAkH//wNxIgUNACABQf8BcSECIANBC2pBf2ohBQJAA0AgBEUNASAAIAJqIAUgBGotAAA6AAAgAkEBaiECIARBf2ohBAwACwsgA0EQaiSAgICAACACDwsgA0ELaiAEaiACIAVBCm4iBUEKbGtBMHI6AAAgBEEBaiEEIAUhAgwACwvuAQMBfwF+AX8jgICAgABBIGsiAiSAgICAACACIAGtQgx+IgNCIIinIgRBAEc6ABwCQAJAAkAgBEUNAEKAgICAICEDDAELAkACQCADpyIEDQBC/P///w8hAwwBC0IAQoCAgIAgQQApA5iAwIAAIgOnIARBAkEAIANCIIinKAIAEYGAgIAAgICAgAAiBBsgBK2EIQMgBEUNAQsgAiABNgIUIAIgAz4CECACQQA7ARggAkEQaiEBDAELIAIgA0IgiD0BDCACQQRqIQELIAAgASkCADcCACAAQQhqIAFBCGooAgA2AgAgAkEgaiSAgICAAAsdAAJAIAFFDQAgASAAIAFBDGxBAiABEMaAgIAACwvQAQECfyOAgICAAEEQayIFJICAgIAAIAUgA0EfcToADwJAAkBBICACQQRqIgJBASADdCIDIAIgA0sbIgNBf2pnayICQf//A3FBfWoiBkENTw0AIAFCASACrIanakF8aiAGQQJ0IgMoAuTS8oAANgIAIAMgATYC5NLygAAMAQsgAUIBQSAgA0GDgARqQRB2QX9qZ2siA61C//8Dg4anQRB0akF8aiADQf//A3FBAnQiAygCmNPygAA2AgAgAyABNgKY0/KAAAsgBUEQaiSAgICAAAuEBQEBfwJAIABBAXFBAC0An7rogABGDQBBACgCrLbogAAiAkUNAAJAAkACQCAAQQFxRQ0AIAJBAC8B/LnogABBAC8B+rnogAAQyICAgABB//8DcQ0DQQBBAC0AvszwgAA6AIe66IAAQQBBAC8B5rnogAA7Aeq56IAAQQBBADsB5rnogAAgAUEBcUUNAUEAQQAvAeS56IAAOwH2ueiAAEEAQQAvAeK56IAAOwHsueiAAEEAQQAtALq86IAAOgCQuuiAAEEAQQAoAbK86IAANgCJuuiAAEEAQQAoALW86IAANgCMuuiAAEEAQQAoAd656IAAQRB3NgHyueiAAAwBCyACEMmAgIAAQQBBAC8B6rnogAA7Aea56IAAQQBBADoAn7rogAACQCABQQFxRQ0AQQBBAC8B8rnogAA7AeC56IAAQQBBAC8B7LnogAA7AeK56IAAQQBBAC0AkLrogAA6ALq86IAAQQBBACgAibrogAA2AbK86IAAQQBBACgAjLrogAA2ALW86IAAQQBBAC8B9rnogAAiAEEALwH6ueiAAEF/akH//wNxIgEgACABSRs7AeS56IAAQQBBAC8B9LnogAAiAEEALwH8ueiAAEF/akH//wNxIgEgACABSRs7Ad656IAAQQBBADoAvMzwgABBAEEALQCHuuiAADoAvszwgAALQQAhAANAIABBAC8B+rnogAAiAU8NAkEAKAK4tuiAACAAakEBOgAAIABBAWohAAwACwsgAhDJgICAAEGwtuiAAEEALwH8ueiAAEEALwH6ueiAABDKgICAAEEAQQE6AJ+66IAAQQAvAfq56IAAIQELQQAgATsB8LnogABBAEEAOwHuueiAAAsLuwMDCH8BfgF/I4CAgIAAQRBrIgMkgICAgAAgAC8BECIEIAFBgAgQzICAgAAhBSAALwESIgYgAkGABBDMgICAACEHAkACQCAEIAVB//8DcSICRw0AQQAhASAHQf//A3EgBkH//wNxRg0BCyADIAdB//8DcSIIIAJsEMSAgIAAIAMvAQgiAQ0AIAMoAgQhCSADKAIAIQoCQAJAQQANAEEAKQOYgMCAACILpyAIQQBBACALQiCIpygCABGBgICAAICAgIAAIgYNAQsgCiAJEMWAgIAAQQIhAQwBCwJAIAhFDQAgBkEBIAj8CwALIAJBDGwhDEEAIQEgCiECAkADQCABIAAvARZPDQECQCAALwEUQQxsIgRFDQAgAiAAKAIAIAEgAC8BEGxBDGxqIAT8CgAACyAGIAFqIAAoAgggAWotAAA6AAAgAiAMaiECIAFBAWohAQwACwsCQCAALwEQRQ0AIAAoAgAgACgCBBDFgICAACAAKAIIIAAoAgwQzYCAgAALIAAgBzsBEiAAIAU7ARAgACAINgIMIAAgBjYCCCAAIAk2AgQgACAKNgIAQQAhAQsgA0EQaiSAgICAACABC0QBBH9BACEBAkADQCABQRhGDQEgAUGwtuiAAGoiAi0AACEDIAIgACABaiIELQAAOgAAIAQgAzoAACABQQFqIQEMAAsLC10AAkAgACABIAIQyICAgABB//8DcQ0AIAAgAjsBFiAAIAE7ARRBACEBAkADQCABQf//A3EgAkH//wNxTw0BIAAgARDLgICAACABQQFqIQEgAC8BFiECDAALCw8LAAsSACAAIAFBuIDAgAAQuoCAgAALUwAgAEH//wNxIgBBASAAQQFLGyEAIAFB//8DcSEBIAJB//8DcSECAkADQCAAQf//A3EgAU8NASAAQQF0Qf7/A3EiACACIAAgAkkbIQAMAAsLIAALGgACQCABRQ0AIAEgACABQQAgARDGgICAAAsLDgAgAEKAgICA8AA3AgALBABBBAsEAEEAC6cCAgF+Bn9CACEFAkAgA0UNACADQX9qIQYgAiEHAkACQANAIAEoAgggASgCDCIIayEJIAEoAgQgCGohCiADQX9qIgNFDQECQCAHQQRqKAIAIgggCSAIIAlJGyILRQ0AIAogBygCACAL/AoAAAsgB0EIaiEHIAEgASgCDCALajYCDCAIIAlNDQAMAgsLIAIgBkEDdGoiBygCACELAkACQCAHKAIEIgcOAgMAAQsCQCAJRQ0AIAogCy0AACAJ/AsACyABIAEoAgwgCWo2AgwMAQsDQAJAIAcgCSAJIAdLGyIIRQ0AIAogCyAI/AoAAAsgASABKAIMIAhqNgIMIAogB2ohCiAJIAdJIQggCSAHayEJIAhFDQALC0KAgICAwAAhBQsgACAFNwIACwgAQbCS8oAAC5UCAQR/I4CAgIAAQRBrIgQkgICAgAAgBCACQR9xOgAPQQAhBQJAQX8gAUEEaiIGIAYgAUkbIgFBASACdCICIAEgAksbIgFBf2pnIgJFDQACQAJAQSAgAmsiAkH//wNxQX1qIgZBDU8NAEIBIAKtQv//A4OGpyEHIAZBAnQiAigC5NLygAAiAUUNASACQeTS8oAAaiAHIAFqQXxqKAIANgIAIAEhBQwCCyABQYOABGpBEHYQ1ICAgAAhBQwBCyACQbDS8oAAaiEBAkAgAigCsNLygAAiAkH//wNxDQBBARDUgICAACICRQ0BIAEgAiAHajYCACACIQUMAQsgASACIAdqNgIAIAIhBQsgBEEQaiSAgICAACAFC2QBAn9CAUEgIABBf2pnayIArUL//wODhqchAQJAIABB//8DcUECdCICKAKY0/KAACIARQ0AIAJBmNPygABqIAFBEHQgAGpBfGooAgA2AgAgAA8LQQAgAUAAIgBBEHQgAEF/RhsLHAAgAUEAIAQgBCACIAMgBCAEENaAgIAAQQFxGwvgAQECfyOAgICAAEEQayIGJICAgIAAIAYgA0EfcToAD0F/IARBBGoiByAHIARJGyIEQQEgA3QiAyAEIANLGyEEAkACQAJAIAJBBGoiAiADIAIgA0sbIgNBf2pnIgJBb2pBDEsNACAEQX9qZyIDDQFBACEDDAILQgFBICADQYOABGpBEHZBf2pna61C//8Dg4anQgFBICAEQYOABGpBEHZBf2pna61C//8Dg4anRiEDDAELQgFBICACa61C//8Dg4anQgFBICADa61C//8Dg4anRiEDCyAGQRBqJICAgIAAIAMLvQ0BDH8jgICAgABBEGsiAiSAgICAAEGABCABQf//A3EiA0EBIANBAUsbIgNBgAQgA0GABEkbIAFBgARLGyEEQQAvAfq56IAAIQUCQAJAQYAIIABB//8DcSIBQQEgAUEBSxsiAUGACCABQYAISRsgAEGACEsbIgZBAC8B/LnogAAiB0cNACAEIAVB//8DcUYNAQtBsLbogAAgBiAEEMiAgIAAQf//A3ENAAJAQQAtAJ+66IAARQ0AQQAoAqy26IAAIAYgBBDIgICAAEH//wNxDQELAkAgBiAHSSIIRQ0AIAQgBUH//wNxIgEgBCABSRshCSAGQQxsIQpBACELQQAhDANAIAwgCUYNASAKIQAgBiEBAkADQCAHIAFB//8DcUYNAUEAKAKwtuiAACALQQAvAcC26IAAbGogAGoiA0EAKQK4gMCAADcCACADQQhqQQAoAsCAwIAANgIAIABBDGohACABQQFqIQEMAAsLIAtBDGohCyAMQQFqIQwMAAsLAkAgBCAFQf//A3EiC08NAEEALwHkueiAACIBIARJIgANAEEAIAEgBGtBAWoiASAAGyEMAkBBAC0An7rogAANAEEAKAKglsCAAEUNACAGIAcgCBshACABQf//A3EhA0EAIQEDQCADIAFGDQFBsLbogAAgASAAENiAgIAAQQAoAqCWwIAAQQAoArC26IAAIAFBAC8BwLbogABsQQxsaiAAEL6AgIAAIAFBAWohAQwACwtBACAFIAxBuIDAgAAQvYCAgABBAEEAQQAvAeS56IAAIgEgDEH//wNxayIAIAAgAUsbOwHkueiAAAtBACEBQQAgBDsB+rnogABBACAGOwH8ueiAAEEAIAQ7Aca26IAAQQAgBjsBxLbogAACQCAEIAtNDQACQEEALQCfuuiAAA0AQQAhAUEAKAKglsCAACIARQ0AIAAoAuBdIgAgBCAFa0H//wNxIgMgACADSRsiCEUNAEEAIAUgCGogCEG4gMCAABCwgICAAEEAIQoCQANAIAogCEYNAUEAKAKglsCAACIBKALgXSIARQ0BIAEgAEF/ajYC4F0gASABKALkXUHnB2pB6AdwIgA2AuRdIApBf3MgCGoiDUH//wNxIQkgASAAQQxsaiELQQAhAQNAAkACQCABIAZGDQBBACgCsLbogABBAC8BwLbogAAgCWxBDGxqIAFBDGwiDGohA0G4gMCAACEAIAEgCy8BCk8NASACQQhqIAsoAgAgDGoiAEEIaigCADYCACACIAApAgA3AwAgAiEADAELQbC26IAAIA0gBhDYgICAAEEAKAK4tuiAACAJakEBOgAAIApBAWohCgwCCyADIAApAgA3AgAgA0EIaiAAQQhqKAIANgIAIAFBAWohAQwACwsLQQBBAC8B5LnogAAgCGo7AeS56IAAIAghAQsgASAFaiEBA0AgAUH//wNxIARPDQFBsLbogAAgARDLgICAACABQQFqIQEMAAsLAkAgBiAHTQ0AIAQgBUH//wNxIgEgBCABSRshDCAGIAdrIQkgB0EMbCEFQQAhC0EAIQcDQCAHIAxGDQEgCSEBIAUhAAJAA0AgAUUNAUEAKAKwtuiAACALQQAvAcC26IAAbGogAGoiA0EAKQK4gMCAADcCACADQQhqQQAoAsCAwIAANgIAIAFBf2ohASAAQQxqIQAMAAsLQQAoAri26IAAIAdqQQE6AAAgC0EMaiELIAdBAWohBwwACwtBACAEOwHwueiAAEEAQQA7Ae656IAAQQAhAQJAA0AgAUH//wNxIARPDQFBsLbogAAgAUEALwH8ueiAABDYgICAACABQQFqIQEMAAsLAkBBAC8B3rnogAAgBkkNAEEAIAZBf2o7Ad656IAACwJAQQAvAeS56IAAIARJDQBBACAEQX9qOwHkueiAAAtBACEBAkADQCAEIAFGDQFBACgCuLbogAAgAWpBAToAACABQQFqIQEMAAsLQQAtAJ+66IAARQ0AQQAoAqy26IAAIgsvARYhByALIAQ7ARYgCy8BFCEMIAsgBjsBFCAGIAxrQf//A3FBDGwhCSAMQQxsIQVBACEDA0AgAyAERg0BAkACQCADIAdJDQAgCyADEMuAgIAADAELAkAgBiAMTQ0AIAsoAgAgAyALLwEQbEEMbGogBWohASAJIQADQCAARQ0BIAFBCGpBACgCwIDAgAA2AgAgAUEAKQK4gMCAADcCACAAQXRqIQAgAUEMaiEBDAALCyALIAMgBhDYgICAACALKAIIIANqQQE6AAALIANBAWohAwwACwsgAkEQaiSAgICAAAuwAgEHfyABQf//A3EhA0EAIQFBACEEA0ACQAJAIAFB//8DcSIFIAJB//8DcSIGTw0AAkACQAJAIAAoAgAgAC8BECADbEEMbGoiByAFQQxsaiIILQAJDgMABAECCwJAIAVFDQAgByABQX9qQf//A3FBDGxqLQAJQQJGDQQLIAhBACkCuIDAgAA3AgAgCEEIakEAKALAgMCAADYCAEEBIQQMAwsCQAJAIAFBAWoiCUH//wNxIgUgBk8NACAHIAVBDGxqLQAJRQ0BCyAIQQApAriAwIAANwIAIAhBCGpBACgCwIDAgAA2AgBBASEEIAkhAQwECyABQQJqIQEMAwtBASEEIAhBCWpBAToAAAwBCwJAIARBAXFFDQAgACgCCCADakEBOgAACw8LIAFBAWohAQwACwv7CAENfyOAgICAAEHAujBrIgIkgICAgABBgAQgAUEBIAEbIAFBgARLGyEBQYAIIABBASAAGyAAQYAISxshAAJAAkBBAC0A2NPygABFDQAgACABEK+AgIAAAkBBAC8B7NPygABFDQBBACgC3NPygABBACgC4NPygAAQxYCAgABBACgC5NPygABBACgC6NPygAAQzYCAgAALQQBCADcC7NPygABBAEIANwLk0/KAAEEAQgA3AtzT8oAADAELIAJBsLowaiIDQgA3AwAgAkG4ujBqIgRCADcDACACQgA3A6i6MCACQai6MGogACABEMqAgIAAIAJBADoAl7owIAJBAToAlLowIAJBADoAmLowIAJBAToAnLowIAJBADoAnrowIAJBADoAoLowIAJBADoApLowIAJBADoAorowIAJBADoAo7owIAJBADoAobowIAJBADoAm7owIAJBADoAmrowAkBB3KQoRQ0AIAJBjJIIakEAQdykKPwLAAsgAkH4tjBqIAQpAwA3AgAgAkHwtjBqIAMpAwA3AgAgAiACKQOoujA3Aui2MAJAQZIDRQ0AIAJBgLcwakEAQZID/AsACyACQYeSCGpBADYAACACQQA2AYSSCCACLQCaujAhAyACLQCbujAhBCACLQCkujAhBSACLQCjujAhBiACLQCiujAhByACLQChujAhCCACLQCgujAhCSACLQCeujAhCiACLQCcujAhCwJAQYEQRQ0AIAJBgIAIakEAQYEQ/AsACyACLQCYujAhDCACLQCXujAhDSACLQCUujAhDgJAQYaoKEUNAEHUkcCAACACQYySCGpBhqgo/AoAAAtBACALOgCIuuiAAEEAIAo6AIa66IAAQQAgCToAhbrogABBACAIOgCDuuiAAEEAIAc6AIK66IAAQQAgBjoAgbrogABBACAFOgCAuuiAAEEAIAA7Afy56IAAQQAgATsB+rnogABBAEKAAjcB8rnogABBACABOwHwueiAAEEAQYACNgLsueiAAEEAQgA3AuS56IAAQQBBgAI7AeK56IAAQQBCgIKAiICAgIABNwHaueiAAEEAQQA6AIe66IAAQQBBADoAhLrogABBAEEAOwH+ueiAAEEAQgA3AJe66IAAQQBCADcAkbrogABBAEIANwCJuuiAAEEAIAQ6AJ+66IAAQQBCADcCoLrogABBAEIANwKouuiAAEEAQQA7AbC66IAAAkBBhwJFDQBBsrrogAAgAkGEkAhqQYcC/AoAAAtBACADOgC5vOiAAEEAQQA6ALq86IAAAkBBgZAIRQ0AQbu86IAA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AAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAA==";
3
3
  //# sourceMappingURL=wasm-inline.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wasm-inline.js","sourceRoot":"","sources":["../src/wasm-inline.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,MAAM,CAAC,MAAM,WAAW,GAAG,kt1BAAkt1B,CAAC"}
1
+ {"version":3,"file":"wasm-inline.js","sourceRoot":"","sources":["../src/wasm-inline.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,MAAM,CAAC,MAAM,WAAW,GAAG,8/nCAA8/nC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wterm/core",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "description": "Headless terminal emulator core for the web — WASM bridge and WebSocket transport",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -18,7 +18,7 @@
18
18
  "wasm"
19
19
  ],
20
20
  "devDependencies": {
21
- "typescript": "^6.0.2",
21
+ "typescript": "^7.0.2",
22
22
  "@internal/ts": "0.0.0"
23
23
  },
24
24
  "keywords": [
package/wasm/wterm.wasm CHANGED
Binary file