@scure/btc-signer 2.0.0 → 2.2.0

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/script.js CHANGED
@@ -1,8 +1,22 @@
1
1
  import * as P from 'micro-packed';
2
2
  import { isBytes, reverseObject } from "./utils.js";
3
+ /**
4
+ * Maximum byte size allowed for a single pushed script element.
5
+ * BIP 342 keeps this 520-byte stack-element limit even though tapscript removes
6
+ * the old 10,000-byte overall script-size cap.
7
+ */
3
8
  export const MAX_SCRIPT_BYTE_LENGTH = 520;
4
9
  // prettier-ignore
5
- export const OP = {
10
+ /**
11
+ * Bitcoin Script opcode table.
12
+ * @example
13
+ * Use opcode numbers when you need the raw byte form instead of Script mnemonics.
14
+ * ```ts
15
+ * import { OP } from '@scure/btc-signer/script.js';
16
+ * new Uint8Array([OP.OP_1, OP.OP_2, OP.CHECKMULTISIG]);
17
+ * ```
18
+ */
19
+ export const OP = /* @__PURE__ */ Object.freeze({
6
20
  OP_0: 0, PUSHDATA1: 76, PUSHDATA2: 77, PUSHDATA4: 78, '1NEGATE': 79,
7
21
  RESERVED: 80,
8
22
  OP_1: 81, OP_2: 82, OP_3: 83, OP_4: 84, OP_5: 85, OP_6: 86, OP_7: 87, OP_8: 88, OP_9: 89,
@@ -31,10 +45,33 @@ export const OP = {
31
45
  CHECKSIGADD: 186,
32
46
  // Invalid
33
47
  INVALID: 255,
34
- };
35
- export const OPNames = reverseObject(OP);
48
+ });
49
+ /**
50
+ * Reverse lookup map from opcode numbers back to names.
51
+ * @example
52
+ * Turn parsed opcode numbers back into their mnemonic names.
53
+ * ```ts
54
+ * import { OP, OPNames } from '@scure/btc-signer/script.js';
55
+ * OPNames[OP.CHECKSIG];
56
+ * ```
57
+ */
58
+ export const OPNames = /* @__PURE__ */ (() => Object.freeze(reverseObject(OP)))();
36
59
  // We can encode almost any number as ScriptNum, however, parsing will be a problem
37
60
  // since we can't know if buffer is a number or something else.
61
+ /**
62
+ * Coder for Bitcoin Script numbers.
63
+ * bytesLimit only constrains decode. encode still serializes any bigint in
64
+ * Script's signed-magnitude byte form so higher-level consumers can enforce
65
+ * opcode-specific 4-byte or 5-byte bounds separately.
66
+ * @param bytesLimit - maximum decoded length in bytes
67
+ * @param forceMinimal - whether to reject non-minimal encodings
68
+ * @returns Script number coder.
69
+ * @example
70
+ * Encode a small integer using Script number rules.
71
+ * ```ts
72
+ * ScriptNum().encode(1n);
73
+ * ```
74
+ */
38
75
  export function ScriptNum(bytesLimit = 6, forceMinimal = false) {
39
76
  return P.wrap({
40
77
  encodeStream: (w, value) => {
@@ -80,6 +117,20 @@ export function ScriptNum(bytesLimit = 6, forceMinimal = false) {
80
117
  },
81
118
  });
82
119
  }
120
+ /**
121
+ * Attempts to decode a numeric script element into a JavaScript number.
122
+ * Accepts decoded small integers already represented as JS numbers and pushed
123
+ * `ScriptNum` byte payloads, but does not interpret opcode mnemonics like `1NEGATE`.
124
+ * @param op - script element to decode
125
+ * @param bytesLimit - maximum encoded length in bytes
126
+ * @param forceMinimal - whether to enforce minimal `ScriptNum` encoding
127
+ * @returns Decoded number, or `undefined` when the element is not a JS number or valid `ScriptNum` bytes.
128
+ * @example
129
+ * Decode a script element back into a JavaScript number when possible.
130
+ * ```ts
131
+ * OpToNum(1);
132
+ * ```
133
+ */
83
134
  export function OpToNum(op, bytesLimit = 4, forceMinimal = true) {
84
135
  if (typeof op === 'number')
85
136
  return op;
@@ -96,6 +147,29 @@ export function OpToNum(op, bytesLimit = 4, forceMinimal = true) {
96
147
  }
97
148
  return;
98
149
  }
150
+ // Shared raw pushdata-length parser. Keep this aligned with Script.decodeStream
151
+ // so byte-preserving walkers can skip pushed data without semantic decode/re-encode.
152
+ /**
153
+ * Returns the pushed-data length for a push opcode.
154
+ * @param op - opcode byte already read from the script stream
155
+ * @param read - callback that reads the following 1/2/4-byte little-endian length
156
+ * @returns Push length for data-carrying opcodes, or `undefined` for non-push opcodes.
157
+ * @throws If the opcode falls through the recognized push-opcode set unexpectedly.
158
+ * {@link Error}
159
+ */
160
+ export const scriptPushLen = (op, read) => {
161
+ if (!(OP.OP_0 < op && op <= OP.PUSHDATA4))
162
+ return;
163
+ if (op < OP.PUSHDATA1)
164
+ return op;
165
+ if (op === OP.PUSHDATA1)
166
+ return read(1);
167
+ if (op === OP.PUSHDATA2)
168
+ return read(2);
169
+ if (op === OP.PUSHDATA4)
170
+ return read(4);
171
+ throw new Error('Should be not possible');
172
+ };
99
173
  // Converts script bytes to parsed script
100
174
  // 5221030000000000000000000000000000000000000000000000000000000000000001210300000000000000000000000000000000000000000000000000000000000000022103000000000000000000000000000000000000000000000000000000000000000353ae
101
175
  // =>
@@ -105,7 +179,18 @@ export function OpToNum(op, bytesLimit = 4, forceMinimal = true) {
105
179
  // 030000000000000000000000000000000000000000000000000000000000000003
106
180
  // OP_3
107
181
  // CHECKMULTISIG
108
- export const Script = P.wrap({
182
+ // This is a semantic AST codec, not a byte-preserving parser: encode
183
+ // canonicalizes small integers to OP_n and chooses the shortest push opcode,
184
+ // so decode(...)+encode(...) rewrites non-minimal push spellings.
185
+ /**
186
+ * Bitcoin script coder.
187
+ * @example
188
+ * Encode a short script from opcode mnemonics and small integers.
189
+ * ```ts
190
+ * Script.encode(['OP_1', 'OP_2']);
191
+ * ```
192
+ */
193
+ export const Script = /* @__PURE__ */ (() => Object.freeze(P.wrap({
109
194
  encodeStream: (w, value) => {
110
195
  for (let o of value) {
111
196
  if (typeof o === 'string') {
@@ -119,6 +204,12 @@ export const Script = P.wrap({
119
204
  w.byte(0x00);
120
205
  continue;
121
206
  }
207
+ else if (o === -1) {
208
+ // BIP62 minimal push / number rules spell numeric -1 as OP_1NEGATE
209
+ // instead of a pushed ScriptNum payload 0x81.
210
+ w.byte(OP['1NEGATE']);
211
+ continue;
212
+ }
122
213
  else if (1 <= o && o <= 16) {
123
214
  w.byte(OP.OP_1 - 1 + o);
124
215
  continue;
@@ -152,19 +243,14 @@ export const Script = P.wrap({
152
243
  const out = [];
153
244
  while (!r.isEnd()) {
154
245
  const cur = r.byte();
155
- // if 0 < cur < 78
156
- if (OP.OP_0 < cur && cur <= OP.PUSHDATA4) {
157
- let len;
158
- if (cur < OP.PUSHDATA1)
159
- len = cur;
160
- else if (cur === OP.PUSHDATA1)
161
- len = P.U8.decodeStream(r);
162
- else if (cur === OP.PUSHDATA2)
163
- len = P.U16LE.decodeStream(r);
164
- else if (cur === OP.PUSHDATA4)
165
- len = P.U32LE.decodeStream(r);
166
- else
167
- throw new Error('Should be not possible');
246
+ const len = scriptPushLen(cur, (bytes) => {
247
+ if (bytes === 1)
248
+ return P.U8.decodeStream(r);
249
+ if (bytes === 2)
250
+ return P.U16LE.decodeStream(r);
251
+ return P.U32LE.decodeStream(r);
252
+ });
253
+ if (len !== undefined) {
168
254
  out.push(r.bytes(len));
169
255
  }
170
256
  else if (cur === 0x00) {
@@ -182,7 +268,7 @@ export const Script = P.wrap({
182
268
  }
183
269
  return out;
184
270
  },
185
- });
271
+ })))();
186
272
  // BTC specific variable length integer encoding
187
273
  // https://en.bitcoin.it/wiki/Protocol_documentation#Variable_length_integer
188
274
  const CSLimits = {
@@ -190,7 +276,15 @@ const CSLimits = {
190
276
  0xfe: [0xfe, 4, 65536n, 4294967295n],
191
277
  0xff: [0xff, 8, 4294967296n, 18446744073709551615n],
192
278
  };
193
- export const CompactSize = P.wrap({
279
+ /**
280
+ * Bitcoin CompactSize integer coder.
281
+ * @example
282
+ * Encode a CompactSize integer for wire serialization.
283
+ * ```ts
284
+ * CompactSize.encode(1n);
285
+ * ```
286
+ */
287
+ export const CompactSize = /* @__PURE__ */ (() => Object.freeze(P.wrap({
194
288
  encodeStream: (w, value) => {
195
289
  if (typeof value === 'number')
196
290
  value = BigInt(value);
@@ -214,49 +308,166 @@ export const CompactSize = P.wrap({
214
308
  let num = 0n;
215
309
  for (let i = 0; i < bytes; i++)
216
310
  num |= BigInt(r.byte()) << (8n * BigInt(i));
311
+ // BIP 152 / BIP 174: CompactSize fields must use the shortest encoding,
312
+ // so wider prefixes for smaller values are rejected here.
217
313
  if (num < start)
218
314
  throw r.err(`Wrong CompactSize(${8 * bytes})`);
219
315
  return num;
220
316
  },
221
- });
317
+ })))();
222
318
  // Same thing, but in number instead of bigint. Checks for safe integer inside
223
- export const CompactSizeLen = P.apply(CompactSize, P.coders.numberBigint);
319
+ /**
320
+ * CompactSize coder that decodes into JavaScript numbers.
321
+ * @example
322
+ * Use the number-based CompactSize helper when the value fits a JS number.
323
+ * ```ts
324
+ * CompactSizeLen.encode(1);
325
+ * ```
326
+ */
327
+ export const CompactSizeLen = /* @__PURE__ */ (() => Object.freeze(P.apply(CompactSize, P.coders.numberBigint)))();
224
328
  // ui8a of size <CompactSize>
225
- export const VarBytes = P.bytes(CompactSize);
329
+ // Keep an unwrapped local coder for raw transaction structs. The exported VarBytes surface uses
330
+ // TRet for declaration stability, but RawInput/RawOutput still need the old internal field shape.
331
+ const _VarBytes = /* @__PURE__ */ (() => Object.freeze(P.bytes(CompactSize)))();
332
+ /**
333
+ * Length-prefixed byte array coder.
334
+ * @example
335
+ * Prefix a byte array with its CompactSize length.
336
+ * ```ts
337
+ * VarBytes.encode(new Uint8Array([1, 2, 3]));
338
+ * ```
339
+ */
340
+ export const VarBytes = _VarBytes;
226
341
  // SegWit v0 stack of witness buffers
227
- export const RawWitness = P.array(CompactSizeLen, VarBytes);
342
+ // Raw witness serialization is reused across witness versions and PSBT
343
+ // finalScriptWitness values; version-specific stack and element limits are
344
+ // enforced by the spending rules, not by this byte codec.
345
+ // Same split for raw witness stacks: export the wrapped surface, but keep the raw tx struct coder
346
+ // on the unwrapped local alias so witness arrays inside RawTx keep their previous internal shape.
347
+ const _RawWitness = /* @__PURE__ */ (() => Object.freeze(P.array(CompactSizeLen, _VarBytes)))();
348
+ /**
349
+ * SegWit witness stack coder.
350
+ * @example
351
+ * Encode one witness stack for a SegWit input.
352
+ * ```ts
353
+ * RawWitness.encode([new Uint8Array([1])]);
354
+ * ```
355
+ */
356
+ export const RawWitness = _RawWitness;
228
357
  // Array of size <CompactSize>
358
+ /**
359
+ * Coder for CompactSize-prefixed arrays.
360
+ * @param t - element coder
361
+ * @returns Array coder.
362
+ * @example
363
+ * CompactSize-prefix a small list of fixed-width integers.
364
+ * ```ts
365
+ * import * as P from 'micro-packed';
366
+ * import { BTCArray } from '@scure/btc-signer/script.js';
367
+ * BTCArray(P.U8).encode([1, 2, 3]);
368
+ * ```
369
+ */
229
370
  export const BTCArray = (t) => P.array(CompactSize, t);
230
- export const RawInput = P.struct({
371
+ /**
372
+ * Raw Bitcoin transaction input coder.
373
+ * @example
374
+ * Encode one transaction input exactly as it appears on the wire.
375
+ * ```ts
376
+ * import { hex } from '@scure/base';
377
+ * import { RawInput } from '@scure/btc-signer/script.js';
378
+ * RawInput.encode({
379
+ * txid: hex.decode('0000000000000000000000000000000000000000000000000000000000000001'),
380
+ * index: 0,
381
+ * finalScriptSig: new Uint8Array([0x51]),
382
+ * sequence: 0xffffffff,
383
+ * });
384
+ * ```
385
+ */
386
+ export const RawInput = /* @__PURE__ */ (() => Object.freeze(P.struct({
231
387
  txid: P.bytes(32, true), // hash(prev_tx),
232
388
  index: P.U32LE, // output number of previous tx
233
- finalScriptSig: VarBytes, // btc merges input and output script, executes it. If ok = tx passes
389
+ finalScriptSig: _VarBytes, // btc merges input and output script, executes it. If ok = tx passes
234
390
  sequence: P.U32LE, // ?
235
- });
236
- export const RawOutput = P.struct({ amount: P.U64LE, script: VarBytes });
391
+ })))();
392
+ /**
393
+ * Raw Bitcoin transaction output coder.
394
+ * @example
395
+ * Encode one transaction output with amount and scriptPubKey.
396
+ * ```ts
397
+ * import { RawOutput } from '@scure/btc-signer/script.js';
398
+ * RawOutput.encode({ amount: 1n, script: new Uint8Array([0x51]) });
399
+ * ```
400
+ */
401
+ export const RawOutput = /* @__PURE__ */ (() => Object.freeze(P.struct({ amount: P.U64LE, script: _VarBytes })))();
237
402
  // https://en.bitcoin.it/wiki/Protocol_documentation#tx
238
- const _RawTx = P.struct({
403
+ const _RawTx = /* @__PURE__ */ (() => P.struct({
239
404
  version: P.I32LE,
240
405
  segwitFlag: P.flag(new Uint8Array([0x00, 0x01])),
241
406
  inputs: BTCArray(RawInput),
242
407
  outputs: BTCArray(RawOutput),
243
- witnesses: P.flagged('segwitFlag', P.array('inputs/length', RawWitness)),
408
+ // BIP144 does not encode a witness-count field; one RawWitness entry is
409
+ // implied for each txin and follows the same order as inputs.
410
+ witnesses: P.flagged('segwitFlag', P.array('inputs/length', _RawWitness)),
244
411
  // < 500000000 Block number at which this transaction is unlocked
245
412
  // >= 500000000 UNIX timestamp at which this transaction is unlocked
246
413
  // Handled as part of PSBTv2
247
414
  lockTime: P.U32LE,
248
- });
415
+ }))();
249
416
  function validateRawTx(tx) {
250
- if (tx.segwitFlag && tx.witnesses && !tx.witnesses.length)
251
- throw new Error('Segwit flag with empty witnesses array');
417
+ // BIP 144: if every per-input witness field is empty, callers must use the old
418
+ // serialization format instead of the marker/flag witness form.
419
+ if (tx.segwitFlag && tx.witnesses && tx.witnesses.every((w) => !w.length))
420
+ throw new Error('Segwit flag with only empty witness fields');
252
421
  return tx;
253
422
  }
254
- export const RawTx = P.validate(_RawTx, validateRawTx);
423
+ /**
424
+ * Raw Bitcoin transaction coder.
425
+ * @example
426
+ * Encode a SegWit transaction with one input, one output, and one witness stack.
427
+ * ```ts
428
+ * import { hex } from '@scure/base';
429
+ * import { RawTx } from '@scure/btc-signer/script.js';
430
+ * RawTx.encode({
431
+ * version: 2,
432
+ * segwitFlag: true,
433
+ * inputs: [{
434
+ * txid: hex.decode('0000000000000000000000000000000000000000000000000000000000000001'),
435
+ * index: 0,
436
+ * finalScriptSig: new Uint8Array(),
437
+ * sequence: 0xffffffff,
438
+ * }],
439
+ * outputs: [{ amount: 1n, script: new Uint8Array([0x51]) }],
440
+ * witnesses: [[new Uint8Array([1])]],
441
+ * lockTime: 0,
442
+ * });
443
+ * ```
444
+ */
445
+ export const RawTx = /* @__PURE__ */ (() => Object.freeze(P.validate(_RawTx, validateRawTx)))();
255
446
  // Pre-SegWit serialization format (for PSBTv0)
256
- export const RawOldTx = P.struct({
447
+ /**
448
+ * Pre-SegWit transaction coder used by PSBTv0.
449
+ * @example
450
+ * Encode the legacy unsigned transaction format used inside PSBTv0 globals.
451
+ * ```ts
452
+ * import { hex } from '@scure/base';
453
+ * import { RawOldTx } from '@scure/btc-signer/script.js';
454
+ * RawOldTx.encode({
455
+ * version: 2,
456
+ * inputs: [{
457
+ * txid: hex.decode('0000000000000000000000000000000000000000000000000000000000000001'),
458
+ * index: 0,
459
+ * finalScriptSig: new Uint8Array(),
460
+ * sequence: 0xffffffff,
461
+ * }],
462
+ * outputs: [{ amount: 1n, script: new Uint8Array([0x51]) }],
463
+ * lockTime: 0,
464
+ * });
465
+ * ```
466
+ */
467
+ export const RawOldTx = /* @__PURE__ */ (() => Object.freeze(P.struct({
257
468
  version: P.I32LE,
258
469
  inputs: BTCArray(RawInput),
259
470
  outputs: BTCArray(RawOutput),
260
471
  lockTime: P.U32LE,
261
- });
472
+ })))();
262
473
  //# sourceMappingURL=script.js.map
package/script.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"script.js","sourceRoot":"","sources":["src/script.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,aAAa,EAA4B,MAAM,YAAY,CAAC;AAE9E,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAE1C,kBAAkB;AAClB,MAAM,CAAC,MAAM,EAAE,GAAG;IAChB,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE;IACnE,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;IACxF,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;IAC3E,UAAU;IACV,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG;IAChH,QAAQ;IACR,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG;IACnH,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;IACtH,SAAS;IACT,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;IACvD,gBAAgB;IAChB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG;IACpG,UAAU;IACZ,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG;IAClD,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG;IACjD,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG;IACrG,QAAQ,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG;IACrF,eAAe,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG;IAC9E,SAAS;IACT,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG;IACtF,QAAQ,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,EAAE,GAAG;IAChF,YAAY;IACZ,IAAI,EAAE,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG;IAC3I,UAAU;IACV,WAAW,EAAE,GAAG;IAChB,UAAU;IACV,OAAO,EAAE,GAAG;CACb,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;AAMzC,mFAAmF;AACnF,+DAA+D;AAC/D,MAAM,UAAU,SAAS,CAAC,UAAU,GAAG,CAAC,EAAE,YAAY,GAAG,KAAK;IAC5D,OAAO,CAAC,CAAC,IAAI,CAAC;QACZ,YAAY,EAAE,CAAC,CAAW,EAAE,KAAa,EAAE,EAAE;YAC3C,IAAI,KAAK,KAAK,EAAE;gBAAE,OAAO;YACzB,MAAM,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC;YACtB,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1B,MAAM,IAAI,GAAG,EAAE,CAAC;YAChB,KAAK,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE;gBAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;YACjF,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI;gBAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACxD,IAAI,GAAG;gBAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;YAC5C,CAAC,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAChC,CAAC;QACD,YAAY,EAAE,CAAC,CAAW,EAAU,EAAE;YACpC,MAAM,GAAG,GAAG,CAAC,CAAC,SAAS,CAAC;YACxB,IAAI,GAAG,GAAG,UAAU;gBAClB,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,uBAAuB,UAAU,EAAE,CAAC,CAAC;YAChF,IAAI,GAAG,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YACzB,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAChC,0DAA0D;gBAC1D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzC,YAAY;oBACZ,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;wBAClD,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC;YACD,IAAI,IAAI,GAAG,CAAC,CAAC;YACb,IAAI,GAAG,GAAG,EAAE,CAAC;YACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC;gBAC7B,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;gBAChB,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,CAAC;YACD,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;gBACjB,GAAG,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;gBAC1C,GAAG,GAAG,CAAC,GAAG,CAAC;YACb,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,EAAY,EAAE,UAAU,GAAG,CAAC,EAAE,YAAY,GAAG,IAAI;IACvE,IAAI,OAAO,EAAE,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACtC,IAAI,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,SAAS,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC3D,IAAI,GAAG,GAAG,MAAM,CAAC,gBAAgB;gBAAE,OAAO;YAC1C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO;QACT,CAAC;IACH,CAAC;IACD,OAAO;AACT,CAAC;AAED,yCAAyC;AACzC,qNAAqN;AACrN,KAAK;AACL,OAAO;AACP,uEAAuE;AACvE,uEAAuE;AACvE,uEAAuE;AACvE,SAAS;AACT,kBAAkB;AAClB,MAAM,CAAC,MAAM,MAAM,GAA4B,CAAC,CAAC,IAAI,CAAC;IACpD,YAAY,EAAE,CAAC,CAAW,EAAE,KAAiB,EAAE,EAAE;QAC/C,KAAK,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;YACpB,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC1B,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS;oBAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;gBAChE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBACd,SAAS;YACX,CAAC;iBAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACjC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;oBACf,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACb,SAAS;gBACX,CAAC;qBAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;oBAC7B,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBACxB,SAAS;gBACX,CAAC;YACH,CAAC;YACD,qBAAqB;YACrB,IAAI,OAAO,CAAC,KAAK,QAAQ;gBAAE,CAAC,GAAG,SAAS,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7D,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;YACvE,QAAQ;YACR,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC;YACrB,IAAI,GAAG,GAAG,EAAE,CAAC,SAAS;gBAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBAC/B,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;gBACrB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;gBACrB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACd,CAAC;iBAAM,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;gBACzB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;gBACrB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;gBACrB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/B,CAAC;YACD,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACb,CAAC;IACH,CAAC;IACD,YAAY,EAAE,CAAC,CAAW,EAAc,EAAE;QACxC,MAAM,GAAG,GAAe,EAAE,CAAC;QAC3B,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;YAClB,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YACrB,kBAAkB;YAClB,IAAI,EAAE,CAAC,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC;gBACzC,IAAI,GAAG,CAAC;gBACR,IAAI,GAAG,GAAG,EAAE,CAAC,SAAS;oBAAE,GAAG,GAAG,GAAG,CAAC;qBAC7B,IAAI,GAAG,KAAK,EAAE,CAAC,SAAS;oBAAE,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;qBACrD,IAAI,GAAG,KAAK,EAAE,CAAC,SAAS;oBAAE,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;qBACxD,IAAI,GAAG,KAAK,EAAE,CAAC,SAAS;oBAAE,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;;oBACxD,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;gBAC/C,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,CAAC;iBAAM,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACxB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACd,CAAC;iBAAM,IAAI,EAAE,CAAC,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;gBAC7C,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAoB,CAAC;gBAC3C,IAAI,EAAE,KAAK,SAAS;oBAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC5E,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF,CAAC,CAAC;AAEH,gDAAgD;AAChD,4EAA4E;AAC5E,MAAM,QAAQ,GAAqD;IACjE,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC;IAC7B,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC;IACpC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,qBAAqB,CAAC;CACpD,CAAC;AACF,MAAM,CAAC,MAAM,WAAW,GAAwB,CAAC,CAAC,IAAI,CAAC;IACrD,YAAY,EAAE,CAAC,CAAW,EAAE,KAAa,EAAE,EAAE;QAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,EAAE,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/D,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjE,IAAI,KAAK,GAAG,KAAK,IAAI,KAAK,GAAG,IAAI;gBAAE,SAAS;YAC5C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE;gBAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YACpF,OAAO;QACT,CAAC;QACD,MAAM,CAAC,CAAC,GAAG,CAAC,mBAAmB,KAAK,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,YAAY,EAAE,CAAC,CAAW,EAAU,EAAE;QACpC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,EAAE,IAAI,IAAI;YAAE,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC;QAClC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE;YAAE,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,IAAI,GAAG,GAAG,KAAK;YAAE,MAAM,CAAC,CAAC,GAAG,CAAC,qBAAqB,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QAChE,OAAO,GAAG,CAAC;IACb,CAAC;CACF,CAAC,CAAC;AAEH,8EAA8E;AAC9E,MAAM,CAAC,MAAM,cAAc,GAAwB,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAE/F,6BAA6B;AAC7B,MAAM,CAAC,MAAM,QAAQ,GAAuB,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AAEjE,qCAAqC;AACrC,MAAM,CAAC,MAAM,UAAU,GAAyB,CAAC,CAAC,KAAK,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;AAElF,8BAA8B;AAC9B,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAI,CAAiB,EAAoB,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAE5F,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,iBAAiB;IAC1C,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,+BAA+B;IAC/C,cAAc,EAAE,QAAQ,EAAE,qEAAqE;IAC/F,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI;CACxB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;AAEzE,uDAAuD;AACvD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACtB,OAAO,EAAE,CAAC,CAAC,KAAK;IAChB,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAChD,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC;IAC1B,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC;IAC5B,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IACxE,iEAAiE;IACjE,oEAAoE;IACpE,4BAA4B;IAC5B,QAAQ,EAAE,CAAC,CAAC,KAAK;CAClB,CAAC,CAAC;AAEH,SAAS,aAAa,CAAC,EAAgC;IACrD,IAAI,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM;QACvD,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,OAAO,EAAE,CAAC;AACZ,CAAC;AACD,MAAM,CAAC,MAAM,KAAK,GAAkB,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AACtE,+CAA+C;AAC/C,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,OAAO,EAAE,CAAC,CAAC,KAAK;IAChB,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC;IAC1B,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC;IAC5B,QAAQ,EAAE,CAAC,CAAC,KAAK;CAClB,CAAC,CAAC"}
1
+ {"version":3,"file":"script.js","sourceRoot":"","sources":["src/script.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAkD,MAAM,YAAY,CAAC;AAEpG;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAE1C,kBAAkB;AAClB;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC;IAC9C,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE;IACnE,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;IACxF,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;IAC3E,UAAU;IACV,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG;IAChH,QAAQ;IACR,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG;IACnH,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;IACtH,SAAS;IACT,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;IACvD,gBAAgB;IAChB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG;IACpG,UAAU;IACZ,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG;IAClD,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG;IACjD,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG;IACrG,QAAQ,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG;IACrF,eAAe,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG;IAC9E,SAAS;IACT,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG;IACtF,QAAQ,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,EAAE,GAAG;IAChF,YAAY;IACZ,IAAI,EAAE,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG;IAC3I,UAAU;IACV,WAAW,EAAE,GAAG;IAChB,UAAU;IACV,OAAO,EAAE,GAAG;CACb,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,OAAO,GAAoC,eAAe,CAAC,CAAC,GAAG,EAAE,CAC5E,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAoC,CAAC,CAAC,EAAE,CAAC;AASzE,mFAAmF;AACnF,+DAA+D;AAC/D;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,SAAS,CAAC,UAAU,GAAG,CAAC,EAAE,YAAY,GAAG,KAAK;IAC5D,OAAO,CAAC,CAAC,IAAI,CAAC;QACZ,YAAY,EAAE,CAAC,CAAW,EAAE,KAAa,EAAE,EAAE;YAC3C,IAAI,KAAK,KAAK,EAAE;gBAAE,OAAO;YACzB,MAAM,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC;YACtB,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1B,MAAM,IAAI,GAAG,EAAE,CAAC;YAChB,KAAK,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE;gBAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;YACjF,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI;gBAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACxD,IAAI,GAAG;gBAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;YAC5C,CAAC,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAChC,CAAC;QACD,YAAY,EAAE,CAAC,CAAW,EAAU,EAAE;YACpC,MAAM,GAAG,GAAG,CAAC,CAAC,SAAS,CAAC;YACxB,IAAI,GAAG,GAAG,UAAU;gBAClB,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,uBAAuB,UAAU,EAAE,CAAC,CAAC;YAChF,IAAI,GAAG,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YACzB,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAChC,0DAA0D;gBAC1D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzC,YAAY;oBACZ,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;wBAClD,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC;YACD,IAAI,IAAI,GAAG,CAAC,CAAC;YACb,IAAI,GAAG,GAAG,EAAE,CAAC;YACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC;gBAC7B,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;gBAChB,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,CAAC;YACD,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;gBACjB,GAAG,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;gBAC1C,GAAG,GAAG,CAAC,GAAG,CAAC;YACb,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,OAAO,CACrB,EAAkB,EAClB,UAAU,GAAG,CAAC,EACd,YAAY,GAAG,IAAI;IAEnB,IAAI,OAAO,EAAE,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACtC,IAAI,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,SAAS,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC3D,IAAI,GAAG,GAAG,MAAM,CAAC,gBAAgB;gBAAE,OAAO;YAC1C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO;QACT,CAAC;IACH,CAAC;IACD,OAAO;AACT,CAAC;AAED,gFAAgF;AAChF,qFAAqF;AACrF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,EAAU,EACV,IAAkC,EACd,EAAE;IACtB,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC;QAAE,OAAO;IAClD,IAAI,EAAE,GAAG,EAAE,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC;IACjC,IAAI,EAAE,KAAK,EAAE,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,IAAI,EAAE,KAAK,EAAE,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,IAAI,EAAE,KAAK,EAAE,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF,yCAAyC;AACzC,qNAAqN;AACrN,KAAK;AACL,OAAO;AACP,uEAAuE;AACvE,uEAAuE;AACvE,uEAAuE;AACvE,SAAS;AACT,kBAAkB;AAClB,qEAAqE;AACrE,6EAA6E;AAC7E,kEAAkE;AAClE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,MAAM,GAAkC,eAAe,CAAC,CAAC,GAAG,EAAE,CACzE,MAAM,CAAC,MAAM,CACX,CAAC,CAAC,IAAI,CAAC;IACL,YAAY,EAAE,CAAC,CAAW,EAAE,KAAuB,EAAE,EAAE;QACrD,KAAK,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;YACpB,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC1B,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS;oBAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;gBAChE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBACd,SAAS;YACX,CAAC;iBAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACjC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;oBACf,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACb,SAAS;gBACX,CAAC;qBAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;oBACpB,mEAAmE;oBACnE,8CAA8C;oBAC9C,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;oBACtB,SAAS;gBACX,CAAC;qBAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;oBAC7B,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBACxB,SAAS;gBACX,CAAC;YACH,CAAC;YACD,qBAAqB;YACrB,IAAI,OAAO,CAAC,KAAK,QAAQ;gBAAE,CAAC,GAAG,SAAS,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7D,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;YACvE,QAAQ;YACR,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC;YACrB,IAAI,GAAG,GAAG,EAAE,CAAC,SAAS;gBAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBAC/B,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;gBACrB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;gBACrB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACd,CAAC;iBAAM,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;gBACzB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;gBACrB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;gBACrB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/B,CAAC;YACD,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACb,CAAC;IACH,CAAC;IACD,YAAY,EAAE,CAAC,CAAW,EAAoB,EAAE;QAC9C,MAAM,GAAG,GAAe,EAAE,CAAC;QAC3B,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;YAClB,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE;gBACvC,IAAI,KAAK,KAAK,CAAC;oBAAE,OAAO,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC7C,IAAI,KAAK,KAAK,CAAC;oBAAE,OAAO,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAChD,OAAO,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;YACH,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,CAAC;iBAAM,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACxB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACd,CAAC;iBAAM,IAAI,EAAE,CAAC,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;gBAC7C,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAoB,CAAC;gBAC3C,IAAI,EAAE,KAAK,SAAS;oBAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC5E,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO,GAAuB,CAAC;IACjC,CAAC;CACF,CAAC,CACH,CAAC,EAAmC,CAAC;AAExC,gDAAgD;AAChD,4EAA4E;AAC5E,MAAM,QAAQ,GAAqD;IACjE,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC;IAC7B,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC;IACpC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,qBAAqB,CAAC;CACpD,CAAC;AACF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,WAAW,GAAwB,eAAe,CAAC,CAAC,GAAG,EAAE,CACpE,MAAM,CAAC,MAAM,CACX,CAAC,CAAC,IAAI,CAAC;IACL,YAAY,EAAE,CAAC,CAAW,EAAE,KAAa,EAAE,EAAE;QAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,EAAE,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/D,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjE,IAAI,KAAK,GAAG,KAAK,IAAI,KAAK,GAAG,IAAI;gBAAE,SAAS;YAC5C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE;gBAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YACpF,OAAO;QACT,CAAC;QACD,MAAM,CAAC,CAAC,GAAG,CAAC,mBAAmB,KAAK,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,YAAY,EAAE,CAAC,CAAW,EAAU,EAAE;QACpC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,EAAE,IAAI,IAAI;YAAE,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC;QAClC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE;YAAE,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,wEAAwE;QACxE,0DAA0D;QAC1D,IAAI,GAAG,GAAG,KAAK;YAAE,MAAM,CAAC,CAAC,GAAG,CAAC,qBAAqB,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QAChE,OAAO,GAAG,CAAC;IACb,CAAC;CACF,CAAC,CACH,CAAC,EAAE,CAAC;AAEP,8EAA8E;AAC9E;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAAwB,eAAe,CAAC,CAAC,GAAG,EAAE,CACvE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;AAEhE,6BAA6B;AAC7B,gGAAgG;AAChG,kGAAkG;AAClG,MAAM,SAAS,GAAG,eAAe,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;AAChF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,QAAQ,GAA6B,SAAqC,CAAC;AAExF,qCAAqC;AACrC,uEAAuE;AACvE,2EAA2E;AAC3E,0DAA0D;AAC1D,kGAAkG;AAClG,kGAAkG;AAClG,MAAM,WAAW,GAAG,eAAe,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;AAChG;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,UAAU,GAA+B,WAAyC,CAAC;AAEhG,8BAA8B;AAC9B;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAI,CAAiB,EAAoB,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAE5F;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,eAAe,CAAC,CAAC,GAAG,EAAE,CAC5C,MAAM,CAAC,MAAM,CACX,CAAC,CAAC,MAAM,CAAC;IACP,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,iBAAiB;IAC1C,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,+BAA+B;IAC/C,cAAc,EAAE,SAAS,EAAE,qEAAqE;IAChG,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI;CACxB,CAAC,CACH,CAAC,EAAE,CAAC;AAEP;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,eAAe,CAAC,CAAC,GAAG,EAAE,CAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAErE,uDAAuD;AACvD,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,GAAG,EAAE,CACnC,CAAC,CAAC,MAAM,CAAC;IACP,OAAO,EAAE,CAAC,CAAC,KAAK;IAChB,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAChD,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC;IAC1B,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC;IAC5B,wEAAwE;IACxE,8DAA8D;IAC9D,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IACzE,iEAAiE;IACjE,oEAAoE;IACpE,4BAA4B;IAC5B,QAAQ,EAAE,CAAC,CAAC,KAAK;CAClB,CAAC,CAAC,EAAE,CAAC;AAER,SAAS,aAAa,CAAC,EAAgC;IACrD,+EAA+E;IAC/E,gEAAgE;IAChE,IAAI,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,OAAO,EAAE,CAAC;AACZ,CAAC;AACD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,KAAK,GAAkB,eAAe,CAAC,CAAC,GAAG,EAAE,CACxD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;AACtD,+CAA+C;AAC/C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,eAAe,CAAC,CAAC,GAAG,EAAE,CAC5C,MAAM,CAAC,MAAM,CACX,CAAC,CAAC,MAAM,CAAC;IACP,OAAO,EAAE,CAAC,CAAC,KAAK;IAChB,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC;IAC1B,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC;IAC5B,QAAQ,EAAE,CAAC,CAAC,KAAK;CAClB,CAAC,CACH,CAAC,EAAE,CAAC"}
package/src/index.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  /*! scure-btc-signer - MIT License (c) 2022 Paul Miller (paulmillr.com) */
2
+ import type { TArg, TRet } from './utils.ts';
2
3
  import {
3
4
  compareBytes,
4
5
  concatBytes,
@@ -25,16 +26,36 @@ export {
25
26
  export type { ScriptType } from './script.ts';
26
27
  export { getInputType, Transaction } from './transaction.ts';
27
28
  export { NETWORK, TAPROOT_UNSPENDABLE_KEY, TEST_NETWORK } from './utils.ts';
29
+ export type { TArg, TRet } from './utils.ts';
28
30
  export { selectUTXO } from './utxo.ts';
29
31
 
30
- export const utils = {
31
- isBytes,
32
- concatBytes,
33
- compareBytes,
34
- pubSchnorr,
35
- randomPrivateKeyBytes,
36
- taprootTweakPubkey,
37
- };
32
+ /**
33
+ * Small collection of commonly used utility exports.
34
+ * @example
35
+ * Reach for the grouped helpers when you want the common byte and Taproot utilities.
36
+ * ```ts
37
+ * utils.compareBytes(new Uint8Array([1]), new Uint8Array([2]));
38
+ * ```
39
+ */
40
+ // Convenience subset; import from `./utils.ts` when you need the full helper surface.
41
+ export const utils: TRet<
42
+ Readonly<{
43
+ isBytes: (a: unknown) => a is Uint8Array;
44
+ concatBytes: (...arrays: TArg<Uint8Array[]>) => TRet<Uint8Array>;
45
+ compareBytes: typeof compareBytes;
46
+ pubSchnorr: (priv: TArg<Uint8Array>) => TRet<Uint8Array>;
47
+ randomPrivateKeyBytes: () => TRet<Uint8Array>;
48
+ taprootTweakPubkey: typeof taprootTweakPubkey;
49
+ }>
50
+ > = /* @__PURE__ */ (() =>
51
+ Object.freeze({
52
+ isBytes,
53
+ concatBytes,
54
+ compareBytes,
55
+ pubSchnorr,
56
+ randomPrivateKeyBytes,
57
+ taprootTweakPubkey,
58
+ }))();
38
59
 
39
60
  export {
40
61
  _sortPubkeys,
@@ -45,9 +66,11 @@ export {
45
66
  sortedMultisig,
46
67
  taprootListToTree,
47
68
  WIF,
48
- } from './payment.ts'; // remove
69
+ } from './payment.ts';
49
70
  // remove
50
71
  export type { CustomScript, OptScript } from './payment.ts';
51
- export { _DebugPSBT, TaprootControlBlock } from './psbt.ts'; // remove
52
- export { bip32Path, Decimal, DEFAULT_SEQUENCE, PSBTCombine, SigHash } from './transaction.ts'; // remove
72
+ // remove
73
+ export { _DebugPSBT, TaprootControlBlock } from './psbt.ts';
74
+ // remove
75
+ export { bip32Path, Decimal, DEFAULT_SEQUENCE, PSBTCombine, SigHash } from './transaction.ts';
53
76
  export { _cmpBig, _Estimator } from './utxo.ts';