@witnet/sdk 1.1.3 → 1.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.
Files changed (192) hide show
  1. package/.env_witnet +13 -1
  2. package/dist/package.json +31 -24
  3. package/dist/src/bin/helpers.d.ts +59 -49
  4. package/dist/src/bin/helpers.d.ts.map +1 -1
  5. package/dist/src/bin/helpers.js +228 -229
  6. package/dist/src/index.d.ts +3 -4
  7. package/dist/src/index.d.ts.map +1 -1
  8. package/dist/src/index.js +4 -47
  9. package/dist/src/lib/crypto/account.d.ts +3 -3
  10. package/dist/src/lib/crypto/account.d.ts.map +1 -1
  11. package/dist/src/lib/crypto/account.js +31 -25
  12. package/dist/src/lib/crypto/coinbase.d.ts +4 -4
  13. package/dist/src/lib/crypto/coinbase.d.ts.map +1 -1
  14. package/dist/src/lib/crypto/coinbase.js +8 -13
  15. package/dist/src/lib/crypto/index.d.ts +7 -7
  16. package/dist/src/lib/crypto/index.d.ts.map +1 -1
  17. package/dist/src/lib/crypto/index.js +7 -30
  18. package/dist/src/lib/crypto/interfaces.d.ts +5 -5
  19. package/dist/src/lib/crypto/interfaces.d.ts.map +1 -1
  20. package/dist/src/lib/crypto/interfaces.js +2 -3
  21. package/dist/src/lib/crypto/payloads/DataRequestPayload.d.ts +5 -5
  22. package/dist/src/lib/crypto/payloads/DataRequestPayload.d.ts.map +1 -1
  23. package/dist/src/lib/crypto/payloads/DataRequestPayload.js +107 -95
  24. package/dist/src/lib/crypto/payloads/StakePayload.d.ts +3 -4
  25. package/dist/src/lib/crypto/payloads/StakePayload.d.ts.map +1 -1
  26. package/dist/src/lib/crypto/payloads/StakePayload.js +81 -71
  27. package/dist/src/lib/crypto/payloads/UnstakePayload.d.ts +4 -5
  28. package/dist/src/lib/crypto/payloads/UnstakePayload.d.ts.map +1 -1
  29. package/dist/src/lib/crypto/payloads/UnstakePayload.js +36 -43
  30. package/dist/src/lib/crypto/payloads/ValueTransferPayload.d.ts +3 -4
  31. package/dist/src/lib/crypto/payloads/ValueTransferPayload.d.ts.map +1 -1
  32. package/dist/src/lib/crypto/payloads/ValueTransferPayload.js +46 -48
  33. package/dist/src/lib/crypto/payloads.d.ts +5 -5
  34. package/dist/src/lib/crypto/payloads.d.ts.map +1 -1
  35. package/dist/src/lib/crypto/payloads.js +44 -45
  36. package/dist/src/lib/crypto/signer.d.ts +3 -3
  37. package/dist/src/lib/crypto/signer.d.ts.map +1 -1
  38. package/dist/src/lib/crypto/signer.js +45 -88
  39. package/dist/src/lib/crypto/transmitters/DataRequests.d.ts +6 -6
  40. package/dist/src/lib/crypto/transmitters/DataRequests.d.ts.map +1 -1
  41. package/dist/src/lib/crypto/transmitters/DataRequests.js +6 -10
  42. package/dist/src/lib/crypto/transmitters/StakeDeposits.d.ts +5 -5
  43. package/dist/src/lib/crypto/transmitters/StakeDeposits.d.ts.map +1 -1
  44. package/dist/src/lib/crypto/transmitters/StakeDeposits.js +7 -11
  45. package/dist/src/lib/crypto/transmitters/StakeWithdrawals.d.ts +6 -7
  46. package/dist/src/lib/crypto/transmitters/StakeWithdrawals.d.ts.map +1 -1
  47. package/dist/src/lib/crypto/transmitters/StakeWithdrawals.js +9 -13
  48. package/dist/src/lib/crypto/transmitters/ValueTransfers.d.ts +5 -5
  49. package/dist/src/lib/crypto/transmitters/ValueTransfers.d.ts.map +1 -1
  50. package/dist/src/lib/crypto/transmitters/ValueTransfers.js +6 -10
  51. package/dist/src/lib/crypto/transmitters.d.ts +6 -6
  52. package/dist/src/lib/crypto/transmitters.d.ts.map +1 -1
  53. package/dist/src/lib/crypto/transmitters.js +88 -76
  54. package/dist/src/lib/crypto/types.d.ts +1 -2
  55. package/dist/src/lib/crypto/types.d.ts.map +1 -1
  56. package/dist/src/lib/crypto/types.js +71 -67
  57. package/dist/src/lib/crypto/utils.d.ts +5 -5
  58. package/dist/src/lib/crypto/utils.d.ts.map +1 -1
  59. package/dist/src/lib/crypto/utils.js +48 -66
  60. package/dist/src/lib/crypto/wallet.d.ts +3 -3
  61. package/dist/src/lib/crypto/wallet.d.ts.map +1 -1
  62. package/dist/src/lib/crypto/wallet.js +72 -89
  63. package/dist/src/lib/index.d.ts +5 -4
  64. package/dist/src/lib/index.d.ts.map +1 -1
  65. package/dist/src/lib/index.js +6 -44
  66. package/dist/src/lib/radon/ccdr/eth.d.ts +1 -1
  67. package/dist/src/lib/radon/ccdr/eth.d.ts.map +1 -1
  68. package/dist/src/lib/radon/ccdr/eth.js +95 -83
  69. package/dist/src/lib/radon/ccdr/index.d.ts +2 -2
  70. package/dist/src/lib/radon/ccdr/index.d.ts.map +1 -1
  71. package/dist/src/lib/radon/ccdr/index.js +3 -39
  72. package/dist/src/lib/radon/ccdr/wit.d.ts +2 -2
  73. package/dist/src/lib/radon/ccdr/wit.d.ts.map +1 -1
  74. package/dist/src/lib/radon/ccdr/wit.js +17 -19
  75. package/dist/src/lib/radon/filters.d.ts.map +1 -1
  76. package/dist/src/lib/radon/filters.js +23 -19
  77. package/dist/src/lib/radon/index.d.ts +10 -11
  78. package/dist/src/lib/radon/index.d.ts.map +1 -1
  79. package/dist/src/lib/radon/index.js +205 -187
  80. package/dist/src/lib/radon/reducers.d.ts +2 -2
  81. package/dist/src/lib/radon/reducers.d.ts.map +1 -1
  82. package/dist/src/lib/radon/reducers.js +48 -34
  83. package/dist/src/lib/radon/types.d.ts +2 -2
  84. package/dist/src/lib/radon/types.d.ts.map +1 -1
  85. package/dist/src/lib/radon/types.js +80 -110
  86. package/dist/src/lib/radon/utils.d.ts +3 -3
  87. package/dist/src/lib/radon/utils.d.ts.map +1 -1
  88. package/dist/src/lib/radon/utils.js +49 -52
  89. package/dist/src/lib/rest/kermit.d.ts +20 -0
  90. package/dist/src/lib/rest/kermit.d.ts.map +1 -0
  91. package/dist/src/lib/rest/kermit.js +68 -0
  92. package/dist/src/lib/rest/types.d.ts +5 -0
  93. package/dist/src/lib/rest/types.d.ts.map +1 -0
  94. package/dist/src/lib/rest/types.js +2 -0
  95. package/dist/src/lib/rpc/index.d.ts +2 -2
  96. package/dist/src/lib/rpc/index.d.ts.map +1 -1
  97. package/dist/src/lib/rpc/index.js +3 -19
  98. package/dist/src/lib/rpc/nodes.d.ts +13 -13
  99. package/dist/src/lib/rpc/nodes.d.ts.map +1 -1
  100. package/dist/src/lib/rpc/nodes.js +69 -98
  101. package/dist/src/lib/rpc/provider.d.ts +4 -4
  102. package/dist/src/lib/rpc/provider.d.ts.map +1 -1
  103. package/dist/src/lib/rpc/provider.js +111 -125
  104. package/dist/src/lib/rpc/types.d.ts +2 -2
  105. package/dist/src/lib/rpc/types.d.ts.map +1 -1
  106. package/dist/src/lib/rpc/types.js +13 -16
  107. package/dist/src/lib/types.d.ts +5 -4
  108. package/dist/src/lib/types.d.ts.map +1 -1
  109. package/dist/src/lib/types.js +3 -9
  110. package/dist/src/lib/utils.d.ts +5 -5
  111. package/dist/src/lib/utils.d.ts.map +1 -1
  112. package/dist/src/lib/utils.js +40 -99
  113. package/dist/witnet/assets/index.cjs +6 -0
  114. package/dist/witnet/assets/index.d.cts +29 -0
  115. package/dist/witnet/assets/index.d.cts.map +1 -0
  116. package/dist/witnet/assets/modals/index.cjs +9 -0
  117. package/dist/witnet/assets/modals/index.d.cts +16 -0
  118. package/dist/witnet/assets/modals/index.d.cts.map +1 -0
  119. package/dist/witnet/assets/modals/web3/eth.cjs +23 -0
  120. package/dist/witnet/assets/modals/web3/eth.d.cts +4 -0
  121. package/dist/witnet/assets/modals/web3/eth.d.cts.map +1 -0
  122. package/dist/witnet/assets/modals/web3/ipfs.cjs +18 -0
  123. package/dist/witnet/assets/modals/web3/ipfs.d.cts +3 -0
  124. package/dist/witnet/assets/modals/web3/ipfs.d.cts.map +1 -0
  125. package/dist/witnet/assets/modals/web3/wit.cjs +24 -0
  126. package/dist/witnet/assets/modals/web3/wit.d.cts +3 -0
  127. package/dist/witnet/assets/modals/web3/wit.d.cts.map +1 -0
  128. package/dist/witnet/assets/requests.cjs +43 -0
  129. package/dist/witnet/assets/requests.d.cts +10 -0
  130. package/dist/witnet/assets/requests.d.cts.map +1 -0
  131. package/package.json +31 -24
  132. package/src/bin/bots/watcher.cjs +354 -0
  133. package/src/bin/cli/history.cjs +31 -0
  134. package/src/bin/cli/inspect.js +545 -471
  135. package/src/bin/cli/network.js +658 -557
  136. package/src/bin/cli/nodes.js +392 -332
  137. package/src/bin/cli/radon.js +1071 -844
  138. package/src/bin/cli/wallet.js +1317 -1074
  139. package/src/bin/helpers.js +969 -868
  140. package/src/bin/index.js +329 -0
  141. package/witnet/assets/_index.cjs +5 -0
  142. package/witnet/assets/_requests.cjs +25 -0
  143. package/witnet/assets/_sources.cjs +36 -0
  144. package/witnet/assets/_templates.cjs +36 -0
  145. package/witnet/assets/index.cjs +4 -0
  146. package/witnet/assets/modals/index.cjs +7 -0
  147. package/witnet/assets/modals/web3/eth.cjs +27 -0
  148. package/witnet/assets/modals/web3/ipfs.cjs +22 -0
  149. package/witnet/assets/modals/web3/wit.cjs +28 -0
  150. package/witnet/assets/requests.cjs +49 -0
  151. package/witnet/witnet copy.proto +457 -0
  152. package/witnet/witnet.proto +456 -0
  153. package/witnet/witnet_toolkit-1.6.7-x86_64-pc-windows-msvc.exe +0 -0
  154. package/witnet/witnet_toolkit-1.7.1-x86_64-pc-windows-msvc.exe +0 -0
  155. package/witnet/witnet_toolkit-2.0.0-rc.7-x86_64-pc-windows-msvc.exe +0 -0
  156. package/witnet/witnet_toolkit-2.0.2-x86_64-pc-windows-msvc.exe +0 -0
  157. package/witnet/witnet_toolkit-2.0.21-x86_64-pc-windows-msvc.exe +0 -0
  158. package/witnet/witnet_toolkit-2.0.7-x86_64-pc-windows-msvc.exe +0 -0
  159. package/witnet/witnet_toolkit-2.0.8-x86_64-pc-windows-msvc.exe +0 -0
  160. package/dist/witnet/assets/index.d.ts +0 -29
  161. package/dist/witnet/assets/index.d.ts.map +0 -1
  162. package/dist/witnet/assets/index.js +0 -6
  163. package/dist/witnet/assets/modals/index.d.ts +0 -16
  164. package/dist/witnet/assets/modals/index.d.ts.map +0 -1
  165. package/dist/witnet/assets/modals/index.js +0 -11
  166. package/dist/witnet/assets/modals/web3/eth.d.ts +0 -5
  167. package/dist/witnet/assets/modals/web3/eth.d.ts.map +0 -1
  168. package/dist/witnet/assets/modals/web3/eth.js +0 -26
  169. package/dist/witnet/assets/modals/web3/ipfs.d.ts +0 -4
  170. package/dist/witnet/assets/modals/web3/ipfs.d.ts.map +0 -1
  171. package/dist/witnet/assets/modals/web3/ipfs.js +0 -18
  172. package/dist/witnet/assets/modals/web3/wit.d.ts +0 -4
  173. package/dist/witnet/assets/modals/web3/wit.d.ts.map +0 -1
  174. package/dist/witnet/assets/modals/web3/wit.js +0 -17
  175. package/dist/witnet/assets/requests.d.ts +0 -11
  176. package/dist/witnet/assets/requests.d.ts.map +0 -1
  177. package/dist/witnet/assets/requests.js +0 -43
  178. package/src/bin/cli/history.js +0 -31
  179. package/src/bin/postinstall.js +0 -9
  180. package/src/bin/toolkit.js +0 -290
  181. package/witnet/assets/_index.js +0 -8
  182. package/witnet/assets/_requests.js +0 -25
  183. package/witnet/assets/_sources.js +0 -36
  184. package/witnet/assets/_templates.js +0 -36
  185. package/witnet/assets/index.js +0 -4
  186. package/witnet/assets/modals/index.js +0 -9
  187. package/witnet/assets/modals/web3/eth.js +0 -29
  188. package/witnet/assets/modals/web3/ipfs.js +0 -22
  189. package/witnet/assets/modals/web3/wit.js +0 -21
  190. package/witnet/assets/requests.js +0 -49
  191. /package/witnet/assets/modals/web3/{btc.js → btc.cjs} +0 -0
  192. /package/witnet/assets/modals/web3/{sol.js → sol.cjs} +0 -0
@@ -1,4 +1,4 @@
1
- import { Balance, Epoch, Hash, HexString, UtxoMetadata } from "../types";
1
+ import type { Balance, Epoch, Hash, HexString, UtxoMetadata } from "../types.js";
2
2
  export declare class Coins {
3
3
  protected coins: bigint;
4
4
  static fromBalance(balance: Balance): Coins;
@@ -146,7 +146,6 @@ declare abstract class TransactionError extends Error {
146
146
  constructor(receipt: TransactionReceipt, message?: string);
147
147
  }
148
148
  export declare class MempoolError extends TransactionError {
149
- constructor(receipt: TransactionReceipt, message?: string);
150
149
  }
151
150
  export declare class TimeoutError extends TransactionError {
152
151
  readonly msecs: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/lib/crypto/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/lib/crypto/types.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,11 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TransmissionError = exports.TimeoutError = exports.MempoolError = exports.RecoverableSignature = exports.Signature = exports.PublicKeyHash = exports.PublicKey = exports.UtxoSelectionStrategy = exports.TransactionPriority = exports.Coins = void 0;
4
- const secp256k1 = require('secp256k1');
5
- const bech32_1 = require("bech32");
6
- const helpers_1 = require("../../bin/helpers");
7
- const utils_1 = require("./utils");
8
- class Coins {
1
+ import { bech32 } from "bech32";
2
+ import secp256k1 from "secp256k1";
3
+ import { fromHexString, isHexString, toHexString, whole_wits, } from "../../bin/helpers.js";
4
+ import { sha256 } from "./utils.js";
5
+ export class Coins {
6
+ coins;
9
7
  static fromBalance(balance) {
10
- return Coins.fromPedros(balance.locked
11
- + balance.staked
12
- + balance.unlocked);
8
+ return Coins.fromPedros(balance.locked + balance.staked + balance.unlocked);
13
9
  }
14
10
  static fromNanowits(nanowits) {
15
11
  return new Coins(nanowits);
@@ -19,10 +15,10 @@ class Coins {
19
15
  }
20
16
  static fromWits(wits) {
21
17
  if (wits > Number.MAX_SAFE_INTEGER) {
22
- throw new TypeError(`${this.constructor.name}: internal error: too many wits: ${wits} > ${Number.MAX_SAFE_INTEGER}`);
18
+ throw new TypeError(`${Coins.constructor.name}: internal error: too many wits: ${wits} > ${Number.MAX_SAFE_INTEGER}`);
23
19
  }
24
- return new Coins(BigInt(Math.floor(wits)) * 10n ** 9n
25
- + BigInt(Math.floor((wits - Math.floor(wits)) * 1000000000)));
20
+ return new Coins(BigInt(Math.floor(wits)) * 10n ** 9n +
21
+ BigInt(Math.floor((wits - Math.floor(wits)) * 1000000000)));
26
22
  }
27
23
  static zero() {
28
24
  return new Coins(0n);
@@ -45,29 +41,30 @@ class Coins {
45
41
  return Number(quotient) + rest;
46
42
  }
47
43
  toString(decimals = 9) {
48
- return (0, helpers_1.whole_wits)(this.coins, decimals);
44
+ return whole_wits(this.coins, decimals);
49
45
  }
50
46
  }
51
- exports.Coins = Coins;
52
- var TransactionPriority;
47
+ export var TransactionPriority;
53
48
  (function (TransactionPriority) {
54
49
  TransactionPriority["Stinky"] = "stinky";
55
50
  TransactionPriority["Low"] = "low";
56
51
  TransactionPriority["Medium"] = "medium";
57
52
  TransactionPriority["High"] = "high";
58
53
  TransactionPriority["Opulent"] = "opulent";
59
- })(TransactionPriority || (exports.TransactionPriority = TransactionPriority = {}));
60
- var UtxoSelectionStrategy;
54
+ })(TransactionPriority || (TransactionPriority = {}));
55
+ export var UtxoSelectionStrategy;
61
56
  (function (UtxoSelectionStrategy) {
62
57
  UtxoSelectionStrategy["BigFirst"] = "big-first";
63
58
  UtxoSelectionStrategy["Random"] = "random";
64
59
  UtxoSelectionStrategy["SlimFit"] = "slim-fit";
65
60
  UtxoSelectionStrategy["SmallFirst"] = "small-first";
66
- })(UtxoSelectionStrategy || (exports.UtxoSelectionStrategy = UtxoSelectionStrategy = {}));
61
+ })(UtxoSelectionStrategy || (UtxoSelectionStrategy = {}));
67
62
  ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
68
- /// EXPORTED CLASSES
63
+ /// EXPORTED CLASSES
69
64
  /// ===================================================================================================================
70
- class PublicKey {
65
+ export class PublicKey {
66
+ compressed;
67
+ bytes;
71
68
  static fromProtobuf(protobuf) {
72
69
  return new PublicKey(protobuf.compressed, Uint8Array.from(protobuf.bytes));
73
70
  }
@@ -76,8 +73,8 @@ class PublicKey {
76
73
  }
77
74
  static recoverFrom(recoverable, msg) {
78
75
  let bytes;
79
- if ((0, helpers_1.isHexString)(recoverable)) {
80
- bytes = (0, helpers_1.fromHexString)(recoverable);
76
+ if (isHexString(recoverable)) {
77
+ bytes = fromHexString(recoverable);
81
78
  }
82
79
  else if (recoverable instanceof Buffer) {
83
80
  bytes = Uint8Array.from(recoverable.buffer);
@@ -89,7 +86,7 @@ class PublicKey {
89
86
  throw new TypeError(`PublicKey: unsupported recoverable signature format: ${recoverable}`);
90
87
  }
91
88
  if (bytes.length !== 65) {
92
- throw new TypeError(`PublicKey: expected recoverable signature with length 65: ${(0, helpers_1.toHexString)(bytes)}`);
89
+ throw new TypeError(`PublicKey: expected recoverable signature with length 65: ${toHexString(bytes)}`);
93
90
  }
94
91
  const [recoveryId, signature] = [bytes[0], bytes.slice(1)];
95
92
  return PublicKey.fromUint8Array(secp256k1.ecdsaRecover(signature, recoveryId, msg));
@@ -99,39 +96,38 @@ class PublicKey {
99
96
  this.bytes = bytes;
100
97
  }
101
98
  equals(pubKey) {
102
- return pubKey.compressed === this.compressed && matchingUint8Arrays(pubKey.bytes, pubKey.bytes);
99
+ return (pubKey.compressed === this.compressed &&
100
+ matchingUint8Arrays(pubKey.bytes, pubKey.bytes));
103
101
  }
104
102
  hash() {
105
103
  return PublicKeyHash.fromPublicKey(this);
106
104
  }
107
105
  toHexString() {
108
- return (0, helpers_1.toHexString)([this.compressed, ...this.bytes]);
106
+ return toHexString([this.compressed, ...this.bytes]);
109
107
  }
110
108
  toUint8Array() {
111
109
  return Uint8Array.from([this.compressed, ...this.bytes]);
112
110
  }
113
111
  }
114
- exports.PublicKey = PublicKey;
115
- ;
116
112
  /// ===================================================================================================================
117
- class PublicKeyHash {
113
+ export class PublicKeyHash {
118
114
  static fromHash(hash) {
119
- return new PublicKeyHash(bech32_1.bech32.toWords(hash));
115
+ return new PublicKeyHash(bech32.toWords(hash));
120
116
  }
121
117
  static fromHexString(hash) {
122
- return PublicKeyHash.fromHash((0, helpers_1.fromHexString)(hash));
118
+ return PublicKeyHash.fromHash(fromHexString(hash));
123
119
  }
124
120
  static fromPublicKey(pk) {
125
- return PublicKeyHash.fromHash((0, utils_1.sha256)(Buffer.from([pk.compressed, ...pk.bytes])).subarray(0, 20));
121
+ return PublicKeyHash.fromHash(sha256(Buffer.from([pk.compressed, ...pk.bytes])).subarray(0, 20));
126
122
  }
127
123
  static fromBech32(pkh) {
128
124
  try {
129
125
  pkh = pkh.toLowerCase();
130
- if (pkh.startsWith('wit')) {
131
- return new PublicKeyHash(bech32_1.bech32.decode(pkh, 66).words);
126
+ if (pkh.startsWith("wit")) {
127
+ return new PublicKeyHash(bech32.decode(pkh, 66).words);
132
128
  }
133
- else if (pkh.startsWith('twit')) {
134
- return new PublicKeyHash(bech32_1.bech32.decode(pkh, 67).words);
129
+ else if (pkh.startsWith("twit")) {
130
+ return new PublicKeyHash(bech32.decode(pkh, 67).words);
135
131
  }
136
132
  else {
137
133
  throw new TypeError(`PublicKeyHash: invalid bech32 string: ${pkh}`);
@@ -141,45 +137,47 @@ class PublicKeyHash {
141
137
  throw new TypeError(`PublicKeyHash: invalid bech32 string: ${pkh}`);
142
138
  }
143
139
  }
140
+ words;
144
141
  constructor(words) {
145
142
  this.words = words;
146
143
  }
147
144
  toBech32(network = "mainnet") {
148
- return network === "mainnet" ? bech32_1.bech32.encode('wit', this.words, 66) : bech32_1.bech32.encode('twit', this.words, 67);
145
+ return network === "mainnet"
146
+ ? bech32.encode("wit", this.words, 66)
147
+ : bech32.encode("twit", this.words, 67);
149
148
  }
150
149
  toBytes20() {
151
- return Uint8Array.from(bech32_1.bech32.fromWords(this.words).slice(0, 20));
150
+ return Uint8Array.from(bech32.fromWords(this.words).slice(0, 20));
152
151
  }
153
152
  toBytes32() {
154
153
  return Uint8Array.from([
155
- ...bech32_1.bech32.fromWords(this.words).slice(0, 20),
154
+ ...bech32.fromWords(this.words).slice(0, 20),
156
155
  ...new Array(12).fill(0),
157
156
  ]);
158
157
  }
159
158
  toHexString() {
160
- return (0, helpers_1.toHexString)(this.toBytes20());
159
+ return toHexString(this.toBytes20());
161
160
  }
162
161
  }
163
- exports.PublicKeyHash = PublicKeyHash;
164
162
  /// ===================================================================================================================
165
- class Signature {
163
+ export class Signature {
166
164
  static fromHexString(hex) {
167
- return new Signature((0, helpers_1.fromHexString)(hex));
165
+ return new Signature(fromHexString(hex));
168
166
  }
167
+ bytes;
169
168
  constructor(bytes) {
170
169
  this.bytes = bytes;
171
170
  }
172
171
  toHexString() {
173
- return (0, helpers_1.toHexString)(this.bytes);
172
+ return toHexString(this.bytes);
174
173
  }
175
174
  }
176
- exports.Signature = Signature;
177
175
  /// ===================================================================================================================
178
- class RecoverableSignature extends Signature {
176
+ export class RecoverableSignature extends Signature {
179
177
  static from(recoverable, msg) {
180
178
  let bytes;
181
- if ((0, helpers_1.isHexString)(recoverable)) {
182
- bytes = (0, helpers_1.fromHexString)(recoverable).slice(1);
179
+ if (isHexString(recoverable)) {
180
+ bytes = fromHexString(recoverable).slice(1);
183
181
  }
184
182
  else if (recoverable instanceof Buffer) {
185
183
  bytes = Uint8Array.from(recoverable.buffer).slice(1);
@@ -191,13 +189,16 @@ class RecoverableSignature extends Signature {
191
189
  throw new TypeError(`RecoverableSignature: unsupported recoverable signature format: ${recoverable}`);
192
190
  }
193
191
  if (bytes.length !== 64) {
194
- throw new TypeError(`RecoverableSignatre: expected recoverable signature with length 65: ${(0, helpers_1.toHexString)(bytes)}`);
192
+ throw new TypeError(`RecoverableSignatre: expected recoverable signature with length 65: ${toHexString(bytes)}`);
195
193
  }
196
194
  return new RecoverableSignature(PublicKey.recoverFrom(recoverable, msg), bytes, msg);
197
195
  }
198
196
  static fromKeyedSignature(ks, msg) {
199
197
  return new RecoverableSignature(PublicKey.fromProtobuf(ks.public_key), secp256k1.signatureImport(Uint8Array.from(ks.signature.Secp256k1.der)), msg);
200
198
  }
199
+ message;
200
+ pubKey;
201
+ recoveryId;
201
202
  constructor(pubKey, bytes, msg) {
202
203
  super(bytes);
203
204
  const pubKeyRaw = pubKey.toUint8Array();
@@ -216,46 +217,50 @@ class RecoverableSignature extends Signature {
216
217
  this.recoveryId = recoveryId;
217
218
  }
218
219
  toHexString(prefix0x = false) {
219
- return (0, helpers_1.toHexString)([this.recoveryId, ...this.bytes], prefix0x);
220
+ return toHexString([this.recoveryId, ...this.bytes], prefix0x);
220
221
  }
221
222
  toKeyedSignature() {
222
223
  return {
223
- signature: { Secp256k1: { der: Array.from(secp256k1.signatureExport(this.bytes)) } },
224
+ signature: {
225
+ Secp256k1: { der: Array.from(secp256k1.signatureExport(this.bytes)) },
226
+ },
224
227
  public_key: {
225
228
  bytes: Array.from(this.pubKey.bytes),
226
229
  compressed: this.pubKey.compressed,
227
- }
230
+ },
228
231
  };
229
232
  }
230
233
  toProtobuf() {
231
234
  return {
232
- signature: { Secp256k1: { der: Array.from(secp256k1.signatureExport(this.bytes)) } },
233
- publicKey: { publicKey: Array.from([this.pubKey.compressed, ...this.pubKey.bytes]) },
235
+ signature: {
236
+ Secp256k1: { der: Array.from(secp256k1.signatureExport(this.bytes)) },
237
+ },
238
+ publicKey: {
239
+ publicKey: Array.from([this.pubKey.compressed, ...this.pubKey.bytes]),
240
+ },
234
241
  };
235
242
  }
236
243
  }
237
- exports.RecoverableSignature = RecoverableSignature;
238
244
  /// ===================================================================================================================
239
245
  class TransactionError extends Error {
246
+ receipt;
240
247
  constructor(receipt, message) {
241
248
  super(message);
242
249
  this.receipt = receipt;
243
250
  }
244
251
  }
245
- class MempoolError extends TransactionError {
246
- constructor(receipt, message) {
247
- super(receipt, message);
248
- }
252
+ export class MempoolError extends TransactionError {
249
253
  }
250
- exports.MempoolError = MempoolError;
251
- class TimeoutError extends TransactionError {
254
+ export class TimeoutError extends TransactionError {
255
+ msecs;
252
256
  constructor(msecs, receipt, message) {
253
257
  super(receipt, message);
254
258
  this.msecs = msecs;
255
259
  }
256
260
  }
257
- exports.TimeoutError = TimeoutError;
258
- class TransmissionError extends Error {
261
+ export class TransmissionError extends Error {
262
+ error;
263
+ inFlight;
259
264
  constructor(inFlight, error) {
260
265
  super(JSON.stringify(error));
261
266
  delete error?.stack;
@@ -263,10 +268,9 @@ class TransmissionError extends Error {
263
268
  this.inFlight = inFlight;
264
269
  }
265
270
  }
266
- exports.TransmissionError = TransmissionError;
267
271
  /// -------------------------------------------------------------------------------------------------------------------
268
- /// --- Internal functions
272
+ /// --- Internal functions
269
273
  function matchingUint8Arrays(a, b) {
270
274
  return a.length === b.length && a.every((value, index) => value === b[index]);
271
275
  }
272
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NyeXB0by90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUE7QUFDdEMsbUNBQStCO0FBRy9CLCtDQUF1RjtBQUN2RixtQ0FBZ0M7QUFFaEMsTUFBYSxLQUFLO0lBRVAsTUFBTSxDQUFDLFdBQVcsQ0FBQyxPQUFnQjtRQUN0QyxPQUFPLEtBQUssQ0FBQyxVQUFVLENBQ25CLE9BQU8sQ0FBQyxNQUFNO2NBQ1IsT0FBTyxDQUFDLE1BQU07Y0FDZCxPQUFPLENBQUMsUUFBUSxDQUN6QixDQUFBO0lBQ0wsQ0FBQztJQUNNLE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBZ0I7UUFDdkMsT0FBTyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUM5QixDQUFDO0lBQ00sTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFjO1FBQ25DLE9BQU8sSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDNUIsQ0FBQztJQUNNLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBWTtRQUMvQixJQUFJLElBQUksR0FBRyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUNqQyxNQUFNLElBQUksU0FBUyxDQUNmLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLG9DQUFvQyxJQUFJLE1BQU0sTUFBTSxDQUFDLGdCQUFnQixFQUFFLENBQ2xHLENBQUE7UUFDTCxDQUFDO1FBQ0QsT0FBTyxJQUFJLEtBQUssQ0FDWixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxFQUFFO2NBQzlCLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsR0FB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O1FBQ2QsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUE7SUFDMUIsQ0FBQztDQUNKO0FBQ0QsTUFBYSxZQUFhLFNBQVEsZ0JBQWdCO0lBQzlDLFlBQVksT0FBMkIsRUFBRSxPQUFnQjtRQUNyRCxLQUFLLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQzNCLENBQUM7Q0FDSjtBQUpELG9DQUlDO0FBRUQsTUFBYSxZQUFhLFNBQVEsZ0JBQWdCO0lBRTlDLFlBQWEsS0FBYSxFQUFFLE9BQTJCLEVBQUUsT0FBZ0I7UUFDckUsS0FBSyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtJQUN0QixDQUFDO0NBQ0o7QUFORCxvQ0FNQztBQUdELE1BQWEsaUJBQWtCLFNBQVEsS0FBSztJQUd4QyxZQUFZLFFBQXNCLEVBQUUsS0FBVztRQUMzQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO1FBQzVCLE9BQU8sS0FBSyxFQUFFLEtBQUssQ0FBQTtRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtRQUNsQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQTtJQUM1QixDQUFDO0NBQ0o7QUFURCw4Q0FTQztBQUdELHVIQUF1SDtBQUN2SCwyQkFBMkI7QUFFM0IsU0FBUyxtQkFBbUIsQ0FBQyxDQUFhLEVBQUUsQ0FBYTtJQUNyRCxPQUFPLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO0FBQ2pGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBzZWNwMjU2azEgPSByZXF1aXJlKCdzZWNwMjU2azEnKVxyXG5pbXBvcnQgeyBiZWNoMzIgfSBmcm9tICdiZWNoMzInXHJcbmltcG9ydCB7IEJhbGFuY2UsIEVwb2NoLCBIYXNoLCBIZXhTdHJpbmcsIFV0eG9NZXRhZGF0YSB9IGZyb20gXCIuLi90eXBlc1wiXHJcblxyXG5pbXBvcnQgeyBmcm9tSGV4U3RyaW5nLCBpc0hleFN0cmluZywgdG9IZXhTdHJpbmcsIHdob2xlX3dpdHMgfSBmcm9tIFwiLi4vLi4vYmluL2hlbHBlcnNcIlxyXG5pbXBvcnQgeyBzaGEyNTYgfSBmcm9tIFwiLi91dGlsc1wiXHJcblxyXG5leHBvcnQgY2xhc3MgQ29pbnMge1xyXG4gICAgcHJvdGVjdGVkIGNvaW5zOiBiaWdpbnQ7XHJcbiAgICBwdWJsaWMgc3RhdGljIGZyb21CYWxhbmNlKGJhbGFuY2U6IEJhbGFuY2UpOiBDb2lucyB7XHJcbiAgICAgICAgcmV0dXJuIENvaW5zLmZyb21QZWRyb3MoXHJcbiAgICAgICAgICAgIGJhbGFuY2UubG9ja2VkXHJcbiAgICAgICAgICAgICAgICArIGJhbGFuY2Uuc3Rha2VkXHJcbiAgICAgICAgICAgICAgICArIGJhbGFuY2UudW5sb2NrZWRcclxuICAgICAgICApXHJcbiAgICB9XHJcbiAgICBwdWJsaWMgc3RhdGljIGZyb21OYW5vd2l0cyhuYW5vd2l0czogYmlnaW50KTogQ29pbnMge1xyXG4gICAgICAgIHJldHVybiBuZXcgQ29pbnMobmFub3dpdHMpXHJcbiAgICB9XHJcbiAgICBwdWJsaWMgc3RhdGljIGZyb21QZWRyb3MocGVkcm9zOiBiaWdpbnQpOiBDb2lucyB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBDb2lucyhwZWRyb3MpXHJcbiAgICB9XHJcbiAgICBwdWJsaWMgc3RhdGljIGZyb21XaXRzKHdpdHM6IG51bWJlcik6IENvaW5zIHtcclxuICAgICAgICBpZiAod2l0cyA+IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiBpbnRlcm5hbCBlcnJvcjogdG9vIG1hbnkgd2l0czogJHt3aXRzfSA+ICR7TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVJ9YFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBuZXcgQ29pbnMoXHJcbiAgICAgICAgICAgIEJpZ0ludChNYXRoLmZsb29yKHdpdHMpKSAqIDEwbiAqKiA5blxyXG4gICAgICAgICAgICAgICAgKyBCaWdJbnQoTWF0aC5mbG9vcigod2l0cyAtIE1hdGguZmxvb3Iod2l0cykpICogMTAwMDAwMDAwMCkpXHJcbiAgICAgICAgKVxyXG4gICAgfVxyXG4gICAgcHVibGljIHN0YXRpYyB6ZXJvKCk6IENvaW5zIHtcclxuICAgICAgICByZXR1cm4gbmV3IENvaW5zKDBuKVxyXG4gICAgfVxyXG4gICAgY29uc3RydWN0b3IgKHBlZHJvczogYmlnaW50KSB7XHJcbiAgICAgICAgdGhpcy5jb2lucyA9IHBlZHJvc1xyXG4gICAgfVxyXG4gICAgcHVibGljIGdldCBwZWRyb3MoKTogYmlnaW50IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb2luc1xyXG4gICAgfVxyXG4gICAgcHVibGljIGdldCBuYW5vd2l0cygpOiBiaWdpbnQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNvaW5zXHJcbiAgICB9XHJcbiAgICBwdWJsaWMgZ2V0IHdpdHMoKTogbnVtYmVyIHtcclxuICAgICAgICBjb25zdCBxdW90aWVudCA9IEJpZ0ludCh0aGlzLmNvaW5zKSAvIDEwMDAwMDAwMDBuXHJcbiAgICAgICAgaWYgKE51bWJlcihxdW90aWVudCkgPiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogaW50ZXJuYWwgZXJyb3I6IHRvbyBtYW55IGNvaW5zOiAke3F1b3RpZW50LnRvU3RyaW5nKCl9ID4gJHtOdW1iZXIuTUFYX1NBRkVfSU5URUdFUn1gXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgcmVzdCA9IE51bWJlcihCaWdJbnQodGhpcy5jb2lucykgLSBxdW90aWVudCAqIDEwMDAwMDAwMDBuKSAvIDEwMDAwMDAwMDBcclxuICAgICAgICByZXR1cm4gTnVtYmVyKHF1b3RpZW50KSArIHJlc3RcclxuICAgIH1cclxuICAgIHB1YmxpYyB0b1N0cmluZyhkZWNpbWFscyA9IDkpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB3aG9sZV93aXRzKHRoaXMuY29pbnMsIGRlY2ltYWxzKVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBLZXlQYXRoID0gQXJyYXk8bnVtYmVyPlxyXG5cclxuZXhwb3J0IHR5cGUgS2V5ZWRTaWduYXR1cmUgPSB7XHJcbiAgICBzaWduYXR1cmU6IHsgU2VjcDI1NmsxOiB7IGRlcjogQXJyYXk8bnVtYmVyPiB9fSxcclxuICAgIHB1YmxpY19rZXk6IHtcclxuICAgICAgICBieXRlczogQXJyYXk8bnVtYmVyPjtcclxuICAgICAgICBjb21wcmVzc2VkOiBudW1iZXIsXHJcbiAgICB9LFxyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgUHVibGljS2V5SGFzaFN0cmluZyA9IEhleFN0cmluZ1xyXG5cclxuaW50ZXJmYWNlIEtleSB7XHJcbiAgICBieXRlczogVWludDhBcnJheTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQcml2YXRlS2V5IGV4dGVuZHMgS2V5IHtcclxuICAgIHR5cGU6IFwicHJpdmF0ZVwiO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFB1YmxpY0tleSBleHRlbmRzIEtleSB7XHJcbiAgICB0eXBlOiBcInB1YmxpY1wiO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBUcmFuc2FjdGlvbkNhbGxiYWNrID0gKHJlY2VpcHQ6IFRyYW5zYWN0aW9uUmVjZWlwdCwgZXJyb3I/OiBhbnkpID0+IGFueVxyXG5cclxuZXhwb3J0IHR5cGUgVHJhbnNhY3Rpb25QYXJhbXMgPSB7XHJcbiAgICBkZWFkbGluZT86IEVwb2NoLFxyXG4gICAgZmVlcz86IFRyYW5zYWN0aW9uUHJpb3JpdHkgfCBDb2lucyxcclxufVxyXG5cclxuZXhwb3J0IGVudW0gVHJhbnNhY3Rpb25Qcmlvcml0eSB7XHJcbiAgICBTdGlua3kgPSBcInN0aW5reVwiLFxyXG4gICAgTG93ID0gXCJsb3dcIixcclxuICAgIE1lZGl1bSA9IFwibWVkaXVtXCIsXHJcbiAgICBIaWdoID0gXCJoaWdoXCIsXHJcbiAgICBPcHVsZW50ID0gXCJvcHVsZW50XCIsXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uUmVjZWlwdCA9IHtcclxuICAgIGF1dGhvcml6YXRpb24/OiBIZXhTdHJpbmc7XHJcbiAgICBibG9ja0Vwb2NoPzogRXBvY2gsXHJcbiAgICBibG9ja0hhc2g/OiBIYXNoLFxyXG4gICAgYmxvY2tNaW5lcj86IFB1YmxpY0tleUhhc2hTdHJpbmcsXHJcbiAgICBibG9ja1RpbWVzdGFtcD86IG51bWJlcixcclxuICAgIGNvbmZpcm1hdGlvbnM/OiBudW1iZXI7XHJcbiAgICBjaGFuZ2U/OiBDb2lucztcclxuICAgIGRyb0hhc2g/OiBIYXNoO1xyXG4gICAgZXJyb3I/OiBFcnJvcixcclxuICAgIGZlZXM6IENvaW5zO1xyXG4gICAgZnJvbT86IEFycmF5PFB1YmxpY0tleUhhc2hTdHJpbmc+IHwgUHVibGljS2V5SGFzaFN0cmluZztcclxuICAgIGhhc2g6IEhhc2g7XHJcbiAgICBvdXRwdXRMb2NrPzogbnVtYmVyO1xyXG4gICAgcmFkQXJncz86IGFueTtcclxuICAgIHJhZEhhc2g/OiBIZXhTdHJpbmc7XHJcbiAgICByZWNpcGllbnRzPzogQXJyYXk8W1B1YmxpY0tleUhhc2hTdHJpbmcsIENvaW5zXT47XHJcbiAgICBzdGF0dXM6IHN0cmluZztcclxuICAgIHRpbWVzdGFtcDogbnVtYmVyO1xyXG4gICAgdHlwZTogc3RyaW5nO1xyXG4gICAgdHg/OiBhbnk7XHJcbiAgICB2YWxpZGF0b3I/OiBQdWJsaWNLZXlIYXNoU3RyaW5nO1xyXG4gICAgdmFsdWU/OiBDb2lucztcclxuICAgIHdlaWdodDogbnVtYmVyO1xyXG4gICAgd2l0aGRyYXdlcj86IFB1YmxpY0tleUhhc2hTdHJpbmc7XHJcbiAgICB3aXRuZXNzZXM/OiBudW1iZXIgfCBSZWNvcmQ8UHVibGljS2V5SGFzaFN0cmluZywgQ29pbnM+O1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBUcmFuc2FjdGlvblN0YXR1cyA9IFwic2lnbmVkXCIgfCBcInBlbmRpbmdcIiB8IFwicmVsYXllZFwiIHwgXCJyZW1vdmVkXCIgfCBcIm1pbmVkXCIgfCBcImNvbmZpcm1lZFwiIHwgXCJmaW5hbGl6ZWRcIjtcclxuXHJcbmV4cG9ydCB0eXBlIFRyYW5zbWlzc2lvbiA9IHtcclxuICAgIGJ5dGVjb2RlPzogVWludDhBcnJheSxcclxuICAgIGhhc2g/OiBIYXNoO1xyXG4gICAgbWVzc2FnZTogYW55O1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBVdHhvID0gVXR4b01ldGFkYXRhICYgeyBzaWduZXI6IFB1YmxpY0tleUhhc2hTdHJpbmcgfVxyXG5cclxuZXhwb3J0IHR5cGUgVXR4b0NhY2hlSW5mbyA9IHtcclxuICAgIC8vIHRvdGFsIGFtb3VudCBvZiBleHBlbmRhYmxlIGZ1bmRzIHdpdGggY3VycmVudGx5IGNhY2hlZCBVVFhPc1xyXG4gICAgZXhwZW5kYWJsZTogYmlnaW50LCBcclxuICAgIC8vIG51bWJlciBvZiBjYWNoZWQgVVRYT3NcclxuICAgIHNpemU6IG51bWJlciwgXHJcbiAgICAvLyBlYXJsaWVzdCBvZiBhbGwgdGltZWxvY2tzIGluIHRoZSBjYWNow6lcclxuICAgIHRpbWVsb2NrOiBudW1iZXIsXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFV0eG9Qb2ludGVyID0ge1xyXG4gICAgLy8gdHJhbnNhY3Rpb24gaWRlbnRpZmllclxyXG4gICAgdHJhbnNhY3Rpb25faWQ6IEhhc2g7XHJcbiAgICAvLyBvdXRwdXQgaW5kZXggd2l0aGluIHJlZmVycmVkIHRyYW5zYWN0aW9uXHJcbiAgICBvdXRwdXRfaW5kZXg6IG51bWJlcjtcclxufTtcclxuXHJcbmV4cG9ydCBlbnVtIFV0eG9TZWxlY3Rpb25TdHJhdGVneSB7XHJcbiAgICBCaWdGaXJzdCA9IFwiYmlnLWZpcnN0XCIsXHJcbiAgICBSYW5kb20gPSBcInJhbmRvbVwiLFxyXG4gICAgU2xpbUZpdCA9IFwic2xpbS1maXRcIixcclxuICAgIFNtYWxsRmlyc3QgPSBcInNtYWxsLWZpcnN0XCIsXHJcbn1cclxuXHJcblxyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4vLy8gRVhQT1JURUQgQ0xBU1NFUyBcclxuXHJcbi8vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbmV4cG9ydCBjbGFzcyBQdWJsaWNLZXkgaW1wbGVtZW50cyBLZXkge1xyXG4gICAgXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29tcHJlc3NlZDogbnVtYmVyO1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGJ5dGVzOiBVaW50OEFycmF5O1xyXG5cclxuICAgIHN0YXRpYyBmcm9tUHJvdG9idWYocHJvdG9idWY6IHsgY29tcHJlc3NlZDogbnVtYmVyLCBieXRlczogQXJyYXk8bnVtYmVyPiB9KTogUHVibGljS2V5IHtcclxuICAgICAgICByZXR1cm4gbmV3IFB1YmxpY0tleShwcm90b2J1Zi5jb21wcmVzc2VkLCBVaW50OEFycmF5LmZyb20ocHJvdG9idWYuYnl0ZXMpKVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBmcm9tVWludDhBcnJheSh1aW50OEFycmF5OiBVaW50OEFycmF5KTogUHVibGljS2V5IHtcclxuICAgICAgICByZXR1cm4gbmV3IFB1YmxpY0tleShcclxuICAgICAgICAgICAgdWludDhBcnJheVswXSxcclxuICAgICAgICAgICAgdWludDhBcnJheS5zbGljZSgxKSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyByZWNvdmVyRnJvbShyZWNvdmVyYWJsZTogYW55LCBtc2c6IFVpbnQ4QXJyYXkpOiBQdWJsaWNLZXkge1xyXG4gICAgICAgIGxldCBieXRlc1xyXG4gICAgICAgIGlmIChpc0hleFN0cmluZyhyZWNvdmVyYWJsZSkpIHtcclxuICAgICAgICAgICAgYnl0ZXMgPSBmcm9tSGV4U3RyaW5nKHJlY292ZXJhYmxlKVxyXG4gICAgICAgIH0gZWxzZSBpZiAocmVjb3ZlcmFibGUgaW5zdGFuY2VvZiBCdWZmZXIpIHtcclxuICAgICAgICAgICAgYnl0ZXMgPSBVaW50OEFycmF5LmZyb20ocmVjb3ZlcmFibGUuYnVmZmVyKVxyXG4gICAgICAgIH0gZWxzZSBpZiAocmVjb3ZlcmFibGUgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XHJcbiAgICAgICAgICAgIGJ5dGVzID0gcmVjb3ZlcmFibGVcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBQdWJsaWNLZXk6IHVuc3VwcG9ydGVkIHJlY292ZXJhYmxlIHNpZ25hdHVyZSBmb3JtYXQ6ICR7cmVjb3ZlcmFibGV9YClcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGJ5dGVzLmxlbmd0aCAhPT0gNjUpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgUHVibGljS2V5OiBleHBlY3RlZCByZWNvdmVyYWJsZSBzaWduYXR1cmUgd2l0aCBsZW5ndGggNjU6ICR7dG9IZXhTdHJpbmcoYnl0ZXMpfWApXHJcbiAgICAgICAgfSBcclxuICAgICAgICBjb25zdCBbIHJlY292ZXJ5SWQsIHNpZ25hdHVyZSBdID0gWyBieXRlc1swXSwgYnl0ZXMuc2xpY2UoMSkgXVxyXG4gICAgICAgIHJldHVybiBQdWJsaWNLZXkuZnJvbVVpbnQ4QXJyYXkoc2VjcDI1NmsxLmVjZHNhUmVjb3ZlcihzaWduYXR1cmUsIHJlY292ZXJ5SWQsIG1zZykpXHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IoY29tcHJlc3NlZDogbnVtYmVyLCBieXRlczogVWludDhBcnJheSkge1xyXG4gICAgICAgIHRoaXMuY29tcHJlc3NlZCA9IGNvbXByZXNzZWRcclxuICAgICAgICB0aGlzLmJ5dGVzID0gYnl0ZXNcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZXF1YWxzKHB1YktleTogUHVibGljS2V5KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHB1YktleS5jb21wcmVzc2VkID09PSB0aGlzLmNvbXByZXNzZWQgJiYgbWF0Y2hpbmdVaW50OEFycmF5cyhwdWJLZXkuYnl0ZXMsIHB1YktleS5ieXRlcylcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFzaCgpOiBQdWJsaWNLZXlIYXNoIHtcclxuICAgICAgICByZXR1cm4gUHVibGljS2V5SGFzaC5mcm9tUHVibGljS2V5KHRoaXMpXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHRvSGV4U3RyaW5nKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRvSGV4U3RyaW5nKFt0aGlzLmNvbXByZXNzZWQsIC4uLnRoaXMuYnl0ZXNdKVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB0b1VpbnQ4QXJyYXkoKTogVWludDhBcnJheSB7XHJcbiAgICAgICAgcmV0dXJuIFVpbnQ4QXJyYXkuZnJvbShbdGhpcy5jb21wcmVzc2VkLCAuLi50aGlzLmJ5dGVzXSlcclxuICAgIH1cclxufTtcclxuXHJcblxyXG4vLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5leHBvcnQgY2xhc3MgUHVibGljS2V5SGFzaCB7XHJcblxyXG4gICAgc3RhdGljIGZyb21IYXNoKGhhc2g6IFVpbnQ4QXJyYXkpOiBQdWJsaWNLZXlIYXNoIHtcclxuICAgICAgICByZXR1cm4gbmV3IFB1YmxpY0tleUhhc2goYmVjaDMyLnRvV29yZHMoaGFzaCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBmcm9tSGV4U3RyaW5nKGhhc2g6IEhleFN0cmluZyk6IFB1YmxpY0tleUhhc2gge1xyXG4gICAgICAgIHJldHVybiBQdWJsaWNLZXlIYXNoLmZyb21IYXNoKGZyb21IZXhTdHJpbmcoaGFzaCkpXHJcbiAgICB9XHJcbiAgICBcclxuICAgIHN0YXRpYyBmcm9tUHVibGljS2V5KHBrOiBQdWJsaWNLZXkpOiBQdWJsaWNLZXlIYXNoIHtcclxuICAgICAgICByZXR1cm4gUHVibGljS2V5SGFzaC5mcm9tSGFzaChcclxuICAgICAgICAgICAgc2hhMjU2KFxyXG4gICAgICAgICAgICAgICAgQnVmZmVyLmZyb20oW3BrLmNvbXByZXNzZWQsIC4uLnBrLmJ5dGVzXSlcclxuICAgICAgICAgICAgKS5zdWJhcnJheSgwLCAyMClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBzdGF0aWMgZnJvbUJlY2gzMihwa2g6IHN0cmluZyk6IFB1YmxpY0tleUhhc2gge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHBraCA9IHBraC50b0xvd2VyQ2FzZSgpXHJcbiAgICAgICAgICAgIGlmIChwa2guc3RhcnRzV2l0aCgnd2l0JykpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUHVibGljS2V5SGFzaChiZWNoMzIuZGVjb2RlKHBraCwgNjYpLndvcmRzKVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHBraC5zdGFydHNXaXRoKCd0d2l0JykpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUHVibGljS2V5SGFzaChiZWNoMzIuZGVjb2RlKHBraCwgNjcpLndvcmRzKVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgUHVibGljS2V5SGFzaDogaW52YWxpZCBiZWNoMzIgc3RyaW5nOiAke3BraH1gKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gY2F0Y2gge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBQdWJsaWNLZXlIYXNoOiBpbnZhbGlkIGJlY2gzMiBzdHJpbmc6ICR7cGtofWApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgd29yZHM6IG51bWJlcltdO1xyXG4gICAgXHJcbiAgICBjb25zdHJ1Y3Rvcih3b3JkczogbnVtYmVyW10pIHtcclxuICAgICAgICB0aGlzLndvcmRzID0gd29yZHNcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdG9CZWNoMzIobmV0d29yayA9IFwibWFpbm5ldFwiKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gbmV0d29yayA9PT0gXCJtYWlubmV0XCIgPyBiZWNoMzIuZW5jb2RlKCd3aXQnLCB0aGlzLndvcmRzLCA2NikgOiBiZWNoMzIuZW5jb2RlKCd0d2l0JywgdGhpcy53b3JkcywgNjcpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB0b0J5dGVzMjAoKTogVWludDhBcnJheSB7XHJcbiAgICAgICAgcmV0dXJuIFVpbnQ4QXJyYXkuZnJvbShiZWNoMzIuZnJvbVdvcmRzKHRoaXMud29yZHMpLnNsaWNlKDAsIDIwKSlcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdG9CeXRlczMyKCk6IFVpbnQ4QXJyYXkge1xyXG4gICAgICAgIHJldHVybiBVaW50OEFycmF5LmZyb20oW1xyXG4gICAgICAgICAgICAuLi5iZWNoMzIuZnJvbVdvcmRzKHRoaXMud29yZHMpLnNsaWNlKDAsIDIwKSxcclxuICAgICAgICAgICAgLi4ubmV3IEFycmF5KDEyKS5maWxsKDApLFxyXG4gICAgICAgIF0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB0b0hleFN0cmluZygpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0b0hleFN0cmluZyh0aGlzLnRvQnl0ZXMyMCgpKVxyXG4gICAgfVxyXG59XHJcblxyXG5cclxuLy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuZXhwb3J0IGNsYXNzIFNpZ25hdHVyZSB7XHJcblxyXG4gICAgc3RhdGljIGZyb21IZXhTdHJpbmcoaGV4OiBzdHJpbmcpOiBTaWduYXR1cmUge1xyXG4gICAgICAgIHJldHVybiBuZXcgU2lnbmF0dXJlKGZyb21IZXhTdHJpbmcoaGV4KSlcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgYnl0ZXM6IFVpbnQ4QXJyYXk7XHJcblxyXG4gICAgY29uc3RydWN0b3IgKGJ5dGVzOiBVaW50OEFycmF5KSB7XHJcbiAgICAgICAgdGhpcy5ieXRlcyA9IGJ5dGVzXHJcbiAgICB9XHJcbiAgICBcclxuICAgIHB1YmxpYyB0b0hleFN0cmluZygpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0b0hleFN0cmluZyh0aGlzLmJ5dGVzKVxyXG4gICAgfVxyXG59XHJcblxyXG5cclxuLy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuZXhwb3J0IGNsYXNzIFJlY292ZXJhYmxlU2lnbmF0dXJlIGV4dGVuZHMgU2lnbmF0dXJlIHtcclxuXHJcbiAgICBzdGF0aWMgZnJvbShyZWNvdmVyYWJsZTogYW55LCBtc2c6IFVpbnQ4QXJyYXkpOiBSZWNvdmVyYWJsZVNpZ25hdHVyZSB7XHJcbiAgICAgICAgbGV0IGJ5dGVzXHJcbiAgICAgICAgaWYgKGlzSGV4U3RyaW5nKHJlY292ZXJhYmxlKSkge1xyXG4gICAgICAgICAgICBieXRlcyA9IGZyb21IZXhTdHJpbmcocmVjb3ZlcmFibGUpLnNsaWNlKDEpXHJcbiAgICAgICAgfSBlbHNlIGlmIChyZWNvdmVyYWJsZSBpbnN0YW5jZW9mIEJ1ZmZlcikge1xyXG4gICAgICAgICAgICBieXRlcyA9IFVpbnQ4QXJyYXkuZnJvbShyZWNvdmVyYWJsZS5idWZmZXIpLnNsaWNlKDEpXHJcbiAgICAgICAgfSBlbHNlIGlmIChyZWNvdmVyYWJsZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpIHtcclxuICAgICAgICAgICAgYnl0ZXMgPSByZWNvdmVyYWJsZS5zbGljZSgxKVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYFJlY292ZXJhYmxlU2lnbmF0dXJlOiB1bnN1cHBvcnRlZCByZWNvdmVyYWJsZSBzaWduYXR1cmUgZm9ybWF0OiAke3JlY292ZXJhYmxlfWApXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChieXRlcy5sZW5ndGggIT09IDY0KSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYFJlY292ZXJhYmxlU2lnbmF0cmU6IGV4cGVjdGVkIHJlY292ZXJhYmxlIHNpZ25hdHVyZSB3aXRoIGxlbmd0aCA2NTogJHt0b0hleFN0cmluZyhieXRlcyl9YClcclxuICAgICAgICB9IFxyXG4gICAgICAgIHJldHVybiBuZXcgUmVjb3ZlcmFibGVTaWduYXR1cmUoUHVibGljS2V5LnJlY292ZXJGcm9tKHJlY292ZXJhYmxlLCBtc2cpLCBieXRlcywgbXNnKVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBmcm9tS2V5ZWRTaWduYXR1cmUoa3M6IEtleWVkU2lnbmF0dXJlLCBtc2c6IFVpbnQ4QXJyYXkpOiBSZWNvdmVyYWJsZVNpZ25hdHVyZSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBSZWNvdmVyYWJsZVNpZ25hdHVyZShcclxuICAgICAgICAgICAgUHVibGljS2V5LmZyb21Qcm90b2J1Zihrcy5wdWJsaWNfa2V5KSxcclxuICAgICAgICAgICAgc2VjcDI1NmsxLnNpZ25hdHVyZUltcG9ydChVaW50OEFycmF5LmZyb20oa3Muc2lnbmF0dXJlLlNlY3AyNTZrMS5kZXIpKSxcclxuICAgICAgICAgICAgbXNnXHJcbiAgICAgICAgKSAgIFxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZWFkb25seSBtZXNzYWdlOiBVaW50OEFycmF5XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgcHViS2V5OiBQdWJsaWNLZXlcclxuICAgIHB1YmxpYyByZWFkb25seSByZWNvdmVyeUlkOiBudW1iZXJcclxuICAgIFxyXG4gICAgY29uc3RydWN0b3IgKHB1YktleTogUHVibGljS2V5LCBieXRlczogVWludDhBcnJheSwgbXNnOiBVaW50OEFycmF5KSB7XHJcbiAgICAgICAgc3VwZXIoYnl0ZXMpXHJcbiAgICAgICAgY29uc3QgcHViS2V5UmF3ID0gcHViS2V5LnRvVWludDhBcnJheSgpXHJcbiAgICAgICAgbGV0IHJlY292ZXJ5SWQ6IG51bWJlcjtcclxuICAgICAgICBmb3IgKHJlY292ZXJ5SWQgPSAwOyByZWNvdmVyeUlkIDwgNDsgcmVjb3ZlcnlJZCArKykge1xyXG4gICAgICAgICAgICBsZXQgcmVjb3ZlcmVkIFxyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgIHJlY292ZXJlZCA9IHNlY3AyNTZrMS5lY2RzYVJlY292ZXIoYnl0ZXMsIHJlY292ZXJ5SWQsIG1zZylcclxuICAgICAgICAgICAgICBpZiAobWF0Y2hpbmdVaW50OEFycmF5cyhyZWNvdmVyZWQsIHB1YktleVJhdykpIGJyZWFrO1xyXG4gICAgICAgICAgICB9IGNhdGNoIHt9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubWVzc2FnZSA9IG1zZ1xyXG4gICAgICAgIHRoaXMucHViS2V5ID0gcHViS2V5XHJcbiAgICAgICAgdGhpcy5yZWNvdmVyeUlkID0gcmVjb3ZlcnlJZFxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB0b0hleFN0cmluZyhwcmVmaXgweCA9IGZhbHNlKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdG9IZXhTdHJpbmcoW3RoaXMucmVjb3ZlcnlJZCwgLi4udGhpcy5ieXRlc10sIHByZWZpeDB4KVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB0b0tleWVkU2lnbmF0dXJlKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgc2lnbmF0dXJlOiB7IFNlY3AyNTZrMTogeyBkZXI6IEFycmF5LmZyb20oc2VjcDI1NmsxLnNpZ25hdHVyZUV4cG9ydCh0aGlzLmJ5dGVzKSkgfX0sXHJcbiAgICAgICAgICAgIHB1YmxpY19rZXk6IHtcclxuICAgICAgICAgICAgICAgIGJ5dGVzOiBBcnJheS5mcm9tKHRoaXMucHViS2V5LmJ5dGVzKSxcclxuICAgICAgICAgICAgICAgIGNvbXByZXNzZWQ6IHRoaXMucHViS2V5LmNvbXByZXNzZWQsXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHRvUHJvdG9idWYoKTogYW55IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBzaWduYXR1cmU6IHsgU2VjcDI1NmsxOiB7IGRlcjogQXJyYXkuZnJvbShzZWNwMjU2azEuc2lnbmF0dXJlRXhwb3J0KHRoaXMuYnl0ZXMpKSB9fSxcclxuICAgICAgICAgICAgcHVibGljS2V5OiB7IHB1YmxpY0tleTogQXJyYXkuZnJvbShbIHRoaXMucHViS2V5LmNvbXByZXNzZWQsIC4uLnRoaXMucHViS2V5LmJ5dGVzIF0pIH0sXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5cclxuLy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbmFic3RyYWN0IGNsYXNzIFRyYW5zYWN0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XHJcbiAgICByZWFkb25seSByZWNlaXB0OiBUcmFuc2FjdGlvblJlY2VpcHRcclxuICAgIGNvbnN0cnVjdG9yKHJlY2VpcHQ6IFRyYW5zYWN0aW9uUmVjZWlwdCwgbWVzc2FnZT86IHN0cmluZykge1xyXG4gICAgICAgIHN1cGVyKG1lc3NhZ2UpXHJcbiAgICAgICAgdGhpcy5yZWNlaXB0ID0gcmVjZWlwdFxyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBjbGFzcyBNZW1wb29sRXJyb3IgZXh0ZW5kcyBUcmFuc2FjdGlvbkVycm9yIHtcclxuICAgIGNvbnN0cnVjdG9yKHJlY2VpcHQ6IFRyYW5zYWN0aW9uUmVjZWlwdCwgbWVzc2FnZT86IHN0cmluZykge1xyXG4gICAgICAgIHN1cGVyKHJlY2VpcHQsIG1lc3NhZ2UpXHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBUaW1lb3V0RXJyb3IgZXh0ZW5kcyBUcmFuc2FjdGlvbkVycm9yIHtcclxuICAgIHJlYWRvbmx5IG1zZWNzOiBudW1iZXI7XHJcbiAgICBjb25zdHJ1Y3RvciAobXNlY3M6IG51bWJlciwgcmVjZWlwdDogVHJhbnNhY3Rpb25SZWNlaXB0LCBtZXNzYWdlPzogc3RyaW5nKSB7XHJcbiAgICAgICAgc3VwZXIocmVjZWlwdCwgbWVzc2FnZSlcclxuICAgICAgICB0aGlzLm1zZWNzID0gbXNlY3NcclxuICAgIH1cclxufVxyXG4gICAgXHJcblxyXG5leHBvcnQgY2xhc3MgVHJhbnNtaXNzaW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XHJcbiAgICByZWFkb25seSBlcnJvcj86IGFueTtcclxuICAgIHJlYWRvbmx5IGluRmxpZ2h0OiBUcmFuc21pc3Npb247XHJcbiAgICBjb25zdHJ1Y3RvcihpbkZsaWdodDogVHJhbnNtaXNzaW9uLCBlcnJvcj86IGFueSkge1xyXG4gICAgICAgIHN1cGVyKEpTT04uc3RyaW5naWZ5KGVycm9yKSlcclxuICAgICAgICBkZWxldGUgZXJyb3I/LnN0YWNrXHJcbiAgICAgICAgdGhpcy5lcnJvciA9IGVycm9yXHJcbiAgICAgICAgdGhpcy5pbkZsaWdodCA9IGluRmxpZ2h0XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4vLy8gLS0tIEludGVybmFsIGZ1bmN0aW9ucyBcclxuXHJcbmZ1bmN0aW9uIG1hdGNoaW5nVWludDhBcnJheXMoYTogVWludDhBcnJheSwgYjogVWludDhBcnJheSkge1xyXG4gICAgcmV0dXJuIGEubGVuZ3RoID09PSBiLmxlbmd0aCAmJiBhLmV2ZXJ5KCh2YWx1ZSwgaW5kZXgpID0+IHZhbHVlID09PSBiW2luZGV4XSlcclxufVxyXG4iXX0=
276
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NyeXB0by90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2hDLE9BQU8sU0FBUyxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQ04sYUFBYSxFQUNiLFdBQVcsRUFDWCxXQUFXLEVBQ1gsVUFBVSxHQUNWLE1BQU0sc0JBQXNCLENBQUM7QUFROUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVwQyxNQUFNLE9BQU8sS0FBSztJQUNQLEtBQUssQ0FBUztJQUNqQixNQUFNLENBQUMsV0FBVyxDQUFDLE9BQWdCO1FBQ3pDLE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFDTSxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQWdCO1FBQzFDLE9BQU8sSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUNNLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBYztRQUN0QyxPQUFPLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFDTSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQVk7UUFDbEMsSUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDcEMsTUFBTSxJQUFJLFNBQVMsQ0FDbEIsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksb0NBQW9DLElBQUksTUFBTSxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsQ0FDaEcsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksS0FBSyxDQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUks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O0FBQy9FLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBiZWNoMzIgfSBmcm9tIFwiYmVjaDMyXCI7XHJcbmltcG9ydCBzZWNwMjU2azEgZnJvbSBcInNlY3AyNTZrMVwiO1xyXG5pbXBvcnQge1xyXG5cdGZyb21IZXhTdHJpbmcsXHJcblx0aXNIZXhTdHJpbmcsXHJcblx0dG9IZXhTdHJpbmcsXHJcblx0d2hvbGVfd2l0cyxcclxufSBmcm9tIFwiLi4vLi4vYmluL2hlbHBlcnMuanNcIjtcclxuaW1wb3J0IHR5cGUge1xyXG5cdEJhbGFuY2UsXHJcblx0RXBvY2gsXHJcblx0SGFzaCxcclxuXHRIZXhTdHJpbmcsXHJcblx0VXR4b01ldGFkYXRhLFxyXG59IGZyb20gXCIuLi90eXBlcy5qc1wiO1xyXG5pbXBvcnQgeyBzaGEyNTYgfSBmcm9tIFwiLi91dGlscy5qc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIENvaW5zIHtcclxuXHRwcm90ZWN0ZWQgY29pbnM6IGJpZ2ludDtcclxuXHRwdWJsaWMgc3RhdGljIGZyb21CYWxhbmNlKGJhbGFuY2U6IEJhbGFuY2UpOiBDb2lucyB7XHJcblx0XHRyZXR1cm4gQ29pbnMuZnJvbVBlZHJvcyhiYWxhbmNlLmxvY2tlZCArIGJhbGFuY2Uuc3Rha2VkICsgYmFsYW5jZS51bmxvY2tlZCk7XHJcblx0fVxyXG5cdHB1YmxpYyBzdGF0aWMgZnJvbU5hbm93aXRzKG5hbm93aXRzOiBiaWdpbnQpOiBDb2lucyB7XHJcblx0XHRyZXR1cm4gbmV3IENvaW5zKG5hbm93aXRzKTtcclxuXHR9XHJcblx0cHVibGljIHN0YXRpYyBmcm9tUGVkcm9zKHBlZHJvczogYmlnaW50KTogQ29pbnMge1xyXG5cdFx0cmV0dXJuIG5ldyBDb2lucyhwZWRyb3MpO1xyXG5cdH1cclxuXHRwdWJsaWMgc3RhdGljIGZyb21XaXRzKHdpdHM6IG51bWJlcik6IENvaW5zIHtcclxuXHRcdGlmICh3aXRzID4gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpIHtcclxuXHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihcclxuXHRcdFx0XHRgJHtDb2lucy5jb25zdHJ1Y3Rvci5uYW1lfTogaW50ZXJuYWwgZXJyb3I6IHRvbyBtYW55IHdpdHM6ICR7d2l0c30gPiAke051bWJlci5NQVhfU0FGRV9JTlRFR0VSfWAsXHJcblx0XHRcdCk7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gbmV3IENvaW5zKFxyXG5cdFx0XHRCaWdJbnQoTWF0aC5mbG9vcih3aXRzKSkgKiAxMG4gKiogOW4gK1xyXG5cdFx0XHRcdEJpZ0ludChNYXRoLmZsb29yKCh3aXRzIC0gTWF0aC5mbG9vcih3aXRzKSkgKiAxMDAwMDAwMDAwKSksXHJcblx0XHQpO1xyXG5cdH1cclxuXHRwdWJsaWMgc3RhdGljIHplcm8oKTogQ29pbnMge1xyXG5cdFx0cmV0dXJuIG5ldyBDb2lucygwbik7XHJcblx0fVxyXG5cdGNvbnN0cnVjdG9yKHBlZHJvczogYmlnaW50KSB7XHJcblx0XHR0aGlzLmNvaW5zID0gcGVkcm9zO1xyXG5cdH1cclxuXHRwdWJsaWMgZ2V0IHBlZHJvcygpOiBiaWdpbnQge1xyXG5cdFx0cmV0dXJuIHRoaXMuY29pbnM7XHJcblx0fVxyXG5cdHB1YmxpYyBnZXQgbmFub3dpdHMoKTogYmlnaW50IHtcclxuXHRcdHJldHVybiB0aGlzLmNvaW5zO1xyXG5cdH1cclxuXHRwdWJsaWMgZ2V0IHdpdHMoKTogbnVtYmVyIHtcclxuXHRcdGNvbnN0IHF1b3RpZW50ID0gQmlnSW50KHRoaXMuY29pbnMpIC8gMTAwMDAwMDAwMG47XHJcblx0XHRpZiAoTnVtYmVyKHF1b3RpZW50KSA+IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKSB7XHJcblx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoXHJcblx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogaW50ZXJuYWwgZXJyb3I6IHRvbyBtYW55IGNvaW5zOiAke3F1b3RpZW50LnRvU3RyaW5nKCl9ID4gJHtOdW1iZXIuTUFYX1NBRkVfSU5URUdFUn1gLFxyXG5cdFx0XHQpO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3QgcmVzdCA9XHJcblx0XHRcdE51bWJlcihCaWdJbnQodGhpcy5jb2lucykgLSBxdW90aWVudCAqIDEwMDAwMDAwMDBuKSAvIDEwMDAwMDAwMDA7XHJcblx0XHRyZXR1cm4gTnVtYmVyKHF1b3RpZW50KSArIHJlc3Q7XHJcblx0fVxyXG5cdHB1YmxpYyB0b1N0cmluZyhkZWNpbWFscyA9IDkpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIHdob2xlX3dpdHModGhpcy5jb2lucywgZGVjaW1hbHMpO1xyXG5cdH1cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgS2V5UGF0aCA9IEFycmF5PG51bWJlcj47XHJcblxyXG5leHBvcnQgdHlwZSBLZXllZFNpZ25hdHVyZSA9IHtcclxuXHRzaWduYXR1cmU6IHsgU2VjcDI1NmsxOiB7IGRlcjogQXJyYXk8bnVtYmVyPiB9IH07XHJcblx0cHVibGljX2tleToge1xyXG5cdFx0Ynl0ZXM6IEFycmF5PG51bWJlcj47XHJcblx0XHRjb21wcmVzc2VkOiBudW1iZXI7XHJcblx0fTtcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIFB1YmxpY0tleUhhc2hTdHJpbmcgPSBIZXhTdHJpbmc7XHJcblxyXG5pbnRlcmZhY2UgS2V5IHtcclxuXHRieXRlczogVWludDhBcnJheTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQcml2YXRlS2V5IGV4dGVuZHMgS2V5IHtcclxuXHR0eXBlOiBcInByaXZhdGVcIjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQdWJsaWNLZXkgZXh0ZW5kcyBLZXkge1xyXG5cdHR5cGU6IFwicHVibGljXCI7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uQ2FsbGJhY2sgPSAoXHJcblx0cmVjZWlwdDogVHJhbnNhY3Rpb25SZWNlaXB0LFxyXG5cdGVycm9yPzogYW55LFxyXG4pID0+IGFueTtcclxuXHJcbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uUGFyYW1zID0ge1xyXG5cdGRlYWRsaW5lPzogRXBvY2g7XHJcblx0ZmVlcz86IFRyYW5zYWN0aW9uUHJpb3JpdHkgfCBDb2lucztcclxufTtcclxuXHJcbmV4cG9ydCBlbnVtIFRyYW5zYWN0aW9uUHJpb3JpdHkge1xyXG5cdFN0aW5reSA9IFwic3Rpbmt5XCIsXHJcblx0TG93ID0gXCJsb3dcIixcclxuXHRNZWRpdW0gPSBcIm1lZGl1bVwiLFxyXG5cdEhpZ2ggPSBcImhpZ2hcIixcclxuXHRPcHVsZW50ID0gXCJvcHVsZW50XCIsXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uUmVjZWlwdCA9IHtcclxuXHRhdXRob3JpemF0aW9uPzogSGV4U3RyaW5nO1xyXG5cdGJsb2NrRXBvY2g/OiBFcG9jaDtcclxuXHRibG9ja0hhc2g/OiBIYXNoO1xyXG5cdGJsb2NrTWluZXI/OiBQdWJsaWNLZXlIYXNoU3RyaW5nO1xyXG5cdGJsb2NrVGltZXN0YW1wPzogbnVtYmVyO1xyXG5cdGNvbmZpcm1hdGlvbnM/OiBudW1iZXI7XHJcblx0Y2hhbmdlPzogQ29pbnM7XHJcblx0ZHJvSGFzaD86IEhhc2g7XHJcblx0ZXJyb3I/OiBFcnJvcjtcclxuXHRmZWVzOiBDb2lucztcclxuXHRmcm9tPzogQXJyYXk8UHVibGljS2V5SGFzaFN0cmluZz4gfCBQdWJsaWNLZXlIYXNoU3RyaW5nO1xyXG5cdGhhc2g6IEhhc2g7XHJcblx0b3V0cHV0TG9jaz86IG51bWJlcjtcclxuXHRyYWRBcmdzPzogYW55O1xyXG5cdHJhZEhhc2g/OiBIZXhTdHJpbmc7XHJcblx0cmVjaXBpZW50cz86IEFycmF5PFtQdWJsaWNLZXlIYXNoU3RyaW5nLCBDb2luc10+O1xyXG5cdHN0YXR1czogc3RyaW5nO1xyXG5cdHRpbWVzdGFtcDogbnVtYmVyO1xyXG5cdHR5cGU6IHN0cmluZztcclxuXHR0eD86IGFueTtcclxuXHR2YWxpZGF0b3I/OiBQdWJsaWNLZXlIYXNoU3RyaW5nO1xyXG5cdHZhbHVlPzogQ29pbnM7XHJcblx0d2VpZ2h0OiBudW1iZXI7XHJcblx0d2l0aGRyYXdlcj86IFB1YmxpY0tleUhhc2hTdHJpbmc7XHJcblx0d2l0bmVzc2VzPzogbnVtYmVyIHwgUmVjb3JkPFB1YmxpY0tleUhhc2hTdHJpbmcsIENvaW5zPjtcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uU3RhdHVzID1cclxuXHR8IFwic2lnbmVkXCJcclxuXHR8IFwicGVuZGluZ1wiXHJcblx0fCBcInJlbGF5ZWRcIlxyXG5cdHwgXCJyZW1vdmVkXCJcclxuXHR8IFwibWluZWRcIlxyXG5cdHwgXCJjb25maXJtZWRcIlxyXG5cdHwgXCJmaW5hbGl6ZWRcIjtcclxuXHJcbmV4cG9ydCB0eXBlIFRyYW5zbWlzc2lvbiA9IHtcclxuXHRieXRlY29kZT86IFVpbnQ4QXJyYXk7XHJcblx0aGFzaD86IEhhc2g7XHJcblx0bWVzc2FnZTogYW55O1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgVXR4byA9IFV0eG9NZXRhZGF0YSAmIHsgc2lnbmVyOiBQdWJsaWNLZXlIYXNoU3RyaW5nIH07XHJcblxyXG5leHBvcnQgdHlwZSBVdHhvQ2FjaGVJbmZvID0ge1xyXG5cdC8vIHRvdGFsIGFtb3VudCBvZiBleHBlbmRhYmxlIGZ1bmRzIHdpdGggY3VycmVudGx5IGNhY2hlZCBVVFhPc1xyXG5cdGV4cGVuZGFibGU6IGJpZ2ludDtcclxuXHQvLyBudW1iZXIgb2YgY2FjaGVkIFVUWE9zXHJcblx0c2l6ZTogbnVtYmVyO1xyXG5cdC8vIGVhcmxpZXN0IG9mIGFsbCB0aW1lbG9ja3MgaW4gdGhlIGNhY2jDqVxyXG5cdHRpbWVsb2NrOiBudW1iZXI7XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBVdHhvUG9pbnRlciA9IHtcclxuXHQvLyB0cmFuc2FjdGlvbiBpZGVudGlmaWVyXHJcblx0dHJhbnNhY3Rpb25faWQ6IEhhc2g7XHJcblx0Ly8gb3V0cHV0IGluZGV4IHdpdGhpbiByZWZlcnJlZCB0cmFuc2FjdGlvblxyXG5cdG91dHB1dF9pbmRleDogbnVtYmVyO1xyXG59O1xyXG5cclxuZXhwb3J0IGVudW0gVXR4b1NlbGVjdGlvblN0cmF0ZWd5IHtcclxuXHRCaWdGaXJzdCA9IFwiYmlnLWZpcnN0XCIsXHJcblx0UmFuZG9tID0gXCJyYW5kb21cIixcclxuXHRTbGltRml0ID0gXCJzbGltLWZpdFwiLFxyXG5cdFNtYWxsRmlyc3QgPSBcInNtYWxsLWZpcnN0XCIsXHJcbn1cclxuXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbi8vLyBFWFBPUlRFRCBDTEFTU0VTXHJcblxyXG4vLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5leHBvcnQgY2xhc3MgUHVibGljS2V5IGltcGxlbWVudHMgS2V5IHtcclxuXHRwdWJsaWMgcmVhZG9ubHkgY29tcHJlc3NlZDogbnVtYmVyO1xyXG5cdHB1YmxpYyByZWFkb25seSBieXRlczogVWludDhBcnJheTtcclxuXHJcblx0c3RhdGljIGZyb21Qcm90b2J1Zihwcm90b2J1Zjoge1xyXG5cdFx0Y29tcHJlc3NlZDogbnVtYmVyO1xyXG5cdFx0Ynl0ZXM6IEFycmF5PG51bWJlcj47XHJcblx0fSk6IFB1YmxpY0tleSB7XHJcblx0XHRyZXR1cm4gbmV3IFB1YmxpY0tleShwcm90b2J1Zi5jb21wcmVzc2VkLCBVaW50OEFycmF5LmZyb20ocHJvdG9idWYuYnl0ZXMpKTtcclxuXHR9XHJcblxyXG5cdHN0YXRpYyBmcm9tVWludDhBcnJheSh1aW50OEFycmF5OiBVaW50OEFycmF5KTogUHVibGljS2V5IHtcclxuXHRcdHJldHVybiBuZXcgUHVibGljS2V5KHVpbnQ4QXJyYXlbMF0sIHVpbnQ4QXJyYXkuc2xpY2UoMSkpO1xyXG5cdH1cclxuXHJcblx0c3RhdGljIHJlY292ZXJGcm9tKHJlY292ZXJhYmxlOiBhbnksIG1zZzogVWludDhBcnJheSk6IFB1YmxpY0tleSB7XHJcblx0XHRsZXQgYnl0ZXM7XHJcblx0XHRpZiAoaXNIZXhTdHJpbmcocmVjb3ZlcmFibGUpKSB7XHJcblx0XHRcdGJ5dGVzID0gZnJvbUhleFN0cmluZyhyZWNvdmVyYWJsZSk7XHJcblx0XHR9IGVsc2UgaWYgKHJlY292ZXJhYmxlIGluc3RhbmNlb2YgQnVmZmVyKSB7XHJcblx0XHRcdGJ5dGVzID0gVWludDhBcnJheS5mcm9tKHJlY292ZXJhYmxlLmJ1ZmZlcik7XHJcblx0XHR9IGVsc2UgaWYgKHJlY292ZXJhYmxlIGluc3RhbmNlb2YgVWludDhBcnJheSkge1xyXG5cdFx0XHRieXRlcyA9IHJlY292ZXJhYmxlO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihcclxuXHRcdFx0XHRgUHVibGljS2V5OiB1bnN1cHBvcnRlZCByZWNvdmVyYWJsZSBzaWduYXR1cmUgZm9ybWF0OiAke3JlY292ZXJhYmxlfWAsXHJcblx0XHRcdCk7XHJcblx0XHR9XHJcblx0XHRpZiAoYnl0ZXMubGVuZ3RoICE9PSA2NSkge1xyXG5cdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKFxyXG5cdFx0XHRcdGBQdWJsaWNLZXk6IGV4cGVjdGVkIHJlY292ZXJhYmxlIHNpZ25hdHVyZSB3aXRoIGxlbmd0aCA2NTogJHt0b0hleFN0cmluZyhieXRlcyl9YCxcclxuXHRcdFx0KTtcclxuXHRcdH1cclxuXHRcdGNvbnN0IFtyZWNvdmVyeUlkLCBzaWduYXR1cmVdID0gW2J5dGVzWzBdLCBieXRlcy5zbGljZSgxKV07XHJcblx0XHRyZXR1cm4gUHVibGljS2V5LmZyb21VaW50OEFycmF5KFxyXG5cdFx0XHRzZWNwMjU2azEuZWNkc2FSZWNvdmVyKHNpZ25hdHVyZSwgcmVjb3ZlcnlJZCwgbXNnKSxcclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHRjb25zdHJ1Y3Rvcihjb21wcmVzc2VkOiBudW1iZXIsIGJ5dGVzOiBVaW50OEFycmF5KSB7XHJcblx0XHR0aGlzLmNvbXByZXNzZWQgPSBjb21wcmVzc2VkO1xyXG5cdFx0dGhpcy5ieXRlcyA9IGJ5dGVzO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGVxdWFscyhwdWJLZXk6IFB1YmxpY0tleSk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIChcclxuXHRcdFx0cHViS2V5LmNvbXByZXNzZWQgPT09IHRoaXMuY29tcHJlc3NlZCAmJlxyXG5cdFx0XHRtYXRjaGluZ1VpbnQ4QXJyYXlzKHB1YktleS5ieXRlcywgcHViS2V5LmJ5dGVzKVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBoYXNoKCk6IFB1YmxpY0tleUhhc2gge1xyXG5cdFx0cmV0dXJuIFB1YmxpY0tleUhhc2guZnJvbVB1YmxpY0tleSh0aGlzKTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyB0b0hleFN0cmluZygpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIHRvSGV4U3RyaW5nKFt0aGlzLmNvbXByZXNzZWQsIC4uLnRoaXMuYnl0ZXNdKTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyB0b1VpbnQ4QXJyYXkoKTogVWludDhBcnJheSB7XHJcblx0XHRyZXR1cm4gVWludDhBcnJheS5mcm9tKFt0aGlzLmNvbXByZXNzZWQsIC4uLnRoaXMuYnl0ZXNdKTtcclxuXHR9XHJcbn1cclxuXHJcbi8vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbmV4cG9ydCBjbGFzcyBQdWJsaWNLZXlIYXNoIHtcclxuXHRzdGF0aWMgZnJvbUhhc2goaGFzaDogVWludDhBcnJheSk6IFB1YmxpY0tleUhhc2gge1xyXG5cdFx0cmV0dXJuIG5ldyBQdWJsaWNLZXlIYXNoKGJlY2gzMi50b1dvcmRzKGhhc2gpKTtcclxuXHR9XHJcblxyXG5cdHN0YXRpYyBmcm9tSGV4U3RyaW5nKGhhc2g6IEhleFN0cmluZyk6IFB1YmxpY0tleUhhc2gge1xyXG5cdFx0cmV0dXJuIFB1YmxpY0tleUhhc2guZnJvbUhhc2goZnJvbUhleFN0cmluZyhoYXNoKSk7XHJcblx0fVxyXG5cclxuXHRzdGF0aWMgZnJvbVB1YmxpY0tleShwazogUHVibGljS2V5KTogUHVibGljS2V5SGFzaCB7XHJcblx0XHRyZXR1cm4gUHVibGljS2V5SGFzaC5mcm9tSGFzaChcclxuXHRcdFx0c2hhMjU2KEJ1ZmZlci5mcm9tKFtway5jb21wcmVzc2VkLCAuLi5way5ieXRlc10pKS5zdWJhcnJheSgwLCAyMCksXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0c3RhdGljIGZyb21CZWNoMzIocGtoOiBzdHJpbmcpOiBQdWJsaWNLZXlIYXNoIHtcclxuXHRcdHRyeSB7XHJcblx0XHRcdHBraCA9IHBraC50b0xvd2VyQ2FzZSgpO1xyXG5cdFx0XHRpZiAocGtoLnN0YXJ0c1dpdGgoXCJ3aXRcIikpIHtcclxuXHRcdFx0XHRyZXR1cm4gbmV3IFB1YmxpY0tleUhhc2goYmVjaDMyLmRlY29kZShwa2gsIDY2KS53b3Jkcyk7XHJcblx0XHRcdH0gZWxzZSBpZiAocGtoLnN0YXJ0c1dpdGgoXCJ0d2l0XCIpKSB7XHJcblx0XHRcdFx0cmV0dXJuIG5ldyBQdWJsaWNLZXlIYXNoKGJlY2gzMi5kZWNvZGUocGtoLCA2Nykud29yZHMpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoYFB1YmxpY0tleUhhc2g6IGludmFsaWQgYmVjaDMyIHN0cmluZzogJHtwa2h9YCk7XHJcblx0XHRcdH1cclxuXHRcdH0gY2F0Y2gge1xyXG5cdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKGBQdWJsaWNLZXlIYXNoOiBpbnZhbGlkIGJlY2gzMiBzdHJpbmc6ICR7cGtofWApO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJvdGVjdGVkIHdvcmRzOiBudW1iZXJbXTtcclxuXHJcblx0Y29uc3RydWN0b3Iod29yZHM6IG51bWJlcltdKSB7XHJcblx0XHR0aGlzLndvcmRzID0gd29yZHM7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgdG9CZWNoMzIobmV0d29yayA9IFwibWFpbm5ldFwiKTogc3RyaW5nIHtcclxuXHRcdHJldHVybiBuZXR3b3JrID09PSBcIm1haW5uZXRcIlxyXG5cdFx0XHQ/IGJlY2gzMi5lbmNvZGUoXCJ3aXRcIiwgdGhpcy53b3JkcywgNjYpXHJcblx0XHRcdDogYmVjaDMyLmVuY29kZShcInR3aXRcIiwgdGhpcy53b3JkcywgNjcpO1xyXG5cdH1cclxuXHJcblx0cHVibGljIHRvQnl0ZXMyMCgpOiBVaW50OEFycmF5IHtcclxuXHRcdHJldHVybiBVaW50OEFycmF5LmZyb20oYmVjaDMyLmZyb21Xb3Jkcyh0aGlzLndvcmRzKS5zbGljZSgwLCAyMCkpO1xyXG5cdH1cclxuXHJcblx0cHVibGljIHRvQnl0ZXMzMigpOiBVaW50OEFycmF5IHtcclxuXHRcdHJldHVybiBVaW50OEFycmF5LmZyb20oW1xyXG5cdFx0XHQuLi5iZWNoMzIuZnJvbVdvcmRzKHRoaXMud29yZHMpLnNsaWNlKDAsIDIwKSxcclxuXHRcdFx0Li4ubmV3IEFycmF5KDEyKS5maWxsKDApLFxyXG5cdFx0XSk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgdG9IZXhTdHJpbmcoKTogc3RyaW5nIHtcclxuXHRcdHJldHVybiB0b0hleFN0cmluZyh0aGlzLnRvQnl0ZXMyMCgpKTtcclxuXHR9XHJcbn1cclxuXHJcbi8vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbmV4cG9ydCBjbGFzcyBTaWduYXR1cmUge1xyXG5cdHN0YXRpYyBmcm9tSGV4U3RyaW5nKGhleDogc3RyaW5nKTogU2lnbmF0dXJlIHtcclxuXHRcdHJldHVybiBuZXcgU2lnbmF0dXJlKGZyb21IZXhTdHJpbmcoaGV4KSk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgcmVhZG9ubHkgYnl0ZXM6IFVpbnQ4QXJyYXk7XHJcblxyXG5cdGNvbnN0cnVjdG9yKGJ5dGVzOiBVaW50OEFycmF5KSB7XHJcblx0XHR0aGlzLmJ5dGVzID0gYnl0ZXM7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgdG9IZXhTdHJpbmcoKTogc3RyaW5nIHtcclxuXHRcdHJldHVybiB0b0hleFN0cmluZyh0aGlzLmJ5dGVzKTtcclxuXHR9XHJcbn1cclxuXHJcbi8vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbmV4cG9ydCBjbGFzcyBSZWNvdmVyYWJsZVNpZ25hdHVyZSBleHRlbmRzIFNpZ25hdHVyZSB7XHJcblx0c3RhdGljIGZyb20ocmVjb3ZlcmFibGU6IGFueSwgbXNnOiBVaW50OEFycmF5KTogUmVjb3ZlcmFibGVTaWduYXR1cmUge1xyXG5cdFx0bGV0IGJ5dGVzO1xyXG5cdFx0aWYgKGlzSGV4U3RyaW5nKHJlY292ZXJhYmxlKSkge1xyXG5cdFx0XHRieXRlcyA9IGZyb21IZXhTdHJpbmcocmVjb3ZlcmFibGUpLnNsaWNlKDEpO1xyXG5cdFx0fSBlbHNlIGlmIChyZWNvdmVyYWJsZSBpbnN0YW5jZW9mIEJ1ZmZlcikge1xyXG5cdFx0XHRieXRlcyA9IFVpbnQ4QXJyYXkuZnJvbShyZWNvdmVyYWJsZS5idWZmZXIpLnNsaWNlKDEpO1xyXG5cdFx0fSBlbHNlIGlmIChyZWNvdmVyYWJsZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpIHtcclxuXHRcdFx0Ynl0ZXMgPSByZWNvdmVyYWJsZS5zbGljZSgxKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoXHJcblx0XHRcdFx0YFJlY292ZXJhYmxlU2lnbmF0dXJlOiB1bnN1cHBvcnRlZCByZWNvdmVyYWJsZSBzaWduYXR1cmUgZm9ybWF0OiAke3JlY292ZXJhYmxlfWAsXHJcblx0XHRcdCk7XHJcblx0XHR9XHJcblx0XHRpZiAoYnl0ZXMubGVuZ3RoICE9PSA2NCkge1xyXG5cdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKFxyXG5cdFx0XHRcdGBSZWNvdmVyYWJsZVNpZ25hdHJlOiBleHBlY3RlZCByZWNvdmVyYWJsZSBzaWduYXR1cmUgd2l0aCBsZW5ndGggNjU6ICR7dG9IZXhTdHJpbmcoYnl0ZXMpfWAsXHJcblx0XHRcdCk7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gbmV3IFJlY292ZXJhYmxlU2lnbmF0dXJlKFxyXG5cdFx0XHRQdWJsaWNLZXkucmVjb3ZlckZyb20ocmVjb3ZlcmFibGUsIG1zZyksXHJcblx0XHRcdGJ5dGVzLFxyXG5cdFx0XHRtc2csXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0c3RhdGljIGZyb21LZXllZFNpZ25hdHVyZShcclxuXHRcdGtzOiBLZXllZFNpZ25hdHVyZSxcclxuXHRcdG1zZzogVWludDhBcnJheSxcclxuXHQpOiBSZWNvdmVyYWJsZVNpZ25hdHVyZSB7XHJcblx0XHRyZXR1cm4gbmV3IFJlY292ZXJhYmxlU2lnbmF0dXJlKFxyXG5cdFx0XHRQdWJsaWNLZXkuZnJvbVByb3RvYnVmKGtzLnB1YmxpY19rZXkpLFxyXG5cdFx0XHRzZWNwMjU2azEuc2lnbmF0dXJlSW1wb3J0KFVpbnQ4QXJyYXkuZnJvbShrcy5zaWduYXR1cmUuU2VjcDI1NmsxLmRlcikpLFxyXG5cdFx0XHRtc2csXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0cHVibGljIHJlYWRvbmx5IG1lc3NhZ2U6IFVpbnQ4QXJyYXk7XHJcblx0cHVibGljIHJlYWRvbmx5IHB1YktleTogUHVibGljS2V5O1xyXG5cdHB1YmxpYyByZWFkb25seSByZWNvdmVyeUlkOiBudW1iZXI7XHJcblxyXG5cdGNvbnN0cnVjdG9yKHB1YktleTogUHVibGljS2V5LCBieXRlczogVWludDhBcnJheSwgbXNnOiBVaW50OEFycmF5KSB7XHJcblx0XHRzdXBlcihieXRlcyk7XHJcblx0XHRjb25zdCBwdWJLZXlSYXcgPSBwdWJLZXkudG9VaW50OEFycmF5KCk7XHJcblx0XHRsZXQgcmVjb3ZlcnlJZDogbnVtYmVyO1xyXG5cdFx0Zm9yIChyZWNvdmVyeUlkID0gMDsgcmVjb3ZlcnlJZCA8IDQ7IHJlY292ZXJ5SWQrKykge1xyXG5cdFx0XHRsZXQgcmVjb3ZlcmVkO1xyXG5cdFx0XHR0cnkge1xyXG5cdFx0XHRcdHJlY292ZXJlZCA9IHNlY3AyNTZrMS5lY2RzYVJlY292ZXIoYnl0ZXMsIHJlY292ZXJ5SWQsIG1zZyk7XHJcblx0XHRcdFx0aWYgKG1hdGNoaW5nVWludDhBcnJheXMocmVjb3ZlcmVkLCBwdWJLZXlSYXcpKSBicmVhaztcclxuXHRcdFx0fSBjYXRjaCB7fVxyXG5cdFx0fVxyXG5cdFx0dGhpcy5tZXNzYWdlID0gbXNnO1xyXG5cdFx0dGhpcy5wdWJLZXkgPSBwdWJLZXk7XHJcblx0XHR0aGlzLnJlY292ZXJ5SWQgPSByZWNvdmVyeUlkO1xyXG5cdH1cclxuXHJcblx0cHVibGljIHRvSGV4U3RyaW5nKHByZWZpeDB4ID0gZmFsc2UpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIHRvSGV4U3RyaW5nKFt0aGlzLnJlY292ZXJ5SWQsIC4uLnRoaXMuYnl0ZXNdLCBwcmVmaXgweCk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgdG9LZXllZFNpZ25hdHVyZSgpOiBhbnkge1xyXG5cdFx0cmV0dXJuIHtcclxuXHRcdFx0c2lnbmF0dXJlOiB7XHJcblx0XHRcdFx0U2VjcDI1NmsxOiB7IGRlcjogQXJyYXkuZnJvbShzZWNwMjU2azEuc2lnbmF0dXJlRXhwb3J0KHRoaXMuYnl0ZXMpKSB9LFxyXG5cdFx0XHR9LFxyXG5cdFx0XHRwdWJsaWNfa2V5OiB7XHJcblx0XHRcdFx0Ynl0ZXM6IEFycmF5LmZyb20odGhpcy5wdWJLZXkuYnl0ZXMpLFxyXG5cdFx0XHRcdGNvbXByZXNzZWQ6IHRoaXMucHViS2V5LmNvbXByZXNzZWQsXHJcblx0XHRcdH0sXHJcblx0XHR9O1xyXG5cdH1cclxuXHJcblx0cHVibGljIHRvUHJvdG9idWYoKTogYW55IHtcclxuXHRcdHJldHVybiB7XHJcblx0XHRcdHNpZ25hdHVyZToge1xyXG5cdFx0XHRcdFNlY3AyNTZrMTogeyBkZXI6IEFycmF5LmZyb20oc2VjcDI1NmsxLnNpZ25hdHVyZUV4cG9ydCh0aGlzLmJ5dGVzKSkgfSxcclxuXHRcdFx0fSxcclxuXHRcdFx0cHVibGljS2V5OiB7XHJcblx0XHRcdFx0cHVibGljS2V5OiBBcnJheS5mcm9tKFt0aGlzLnB1YktleS5jb21wcmVzc2VkLCAuLi50aGlzLnB1YktleS5ieXRlc10pLFxyXG5cdFx0XHR9LFxyXG5cdFx0fTtcclxuXHR9XHJcbn1cclxuXHJcbi8vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG5hYnN0cmFjdCBjbGFzcyBUcmFuc2FjdGlvbkVycm9yIGV4dGVuZHMgRXJyb3Ige1xyXG5cdHJlYWRvbmx5IHJlY2VpcHQ6IFRyYW5zYWN0aW9uUmVjZWlwdDtcclxuXHRjb25zdHJ1Y3RvcihyZWNlaXB0OiBUcmFuc2FjdGlvblJlY2VpcHQsIG1lc3NhZ2U/OiBzdHJpbmcpIHtcclxuXHRcdHN1cGVyKG1lc3NhZ2UpO1xyXG5cdFx0dGhpcy5yZWNlaXB0ID0gcmVjZWlwdDtcclxuXHR9XHJcbn1cclxuZXhwb3J0IGNsYXNzIE1lbXBvb2xFcnJvciBleHRlbmRzIFRyYW5zYWN0aW9uRXJyb3Ige31cclxuXHJcbmV4cG9ydCBjbGFzcyBUaW1lb3V0RXJyb3IgZXh0ZW5kcyBUcmFuc2FjdGlvbkVycm9yIHtcclxuXHRyZWFkb25seSBtc2VjczogbnVtYmVyO1xyXG5cdGNvbnN0cnVjdG9yKG1zZWNzOiBudW1iZXIsIHJlY2VpcHQ6IFRyYW5zYWN0aW9uUmVjZWlwdCwgbWVzc2FnZT86IHN0cmluZykge1xyXG5cdFx0c3VwZXIocmVjZWlwdCwgbWVzc2FnZSk7XHJcblx0XHR0aGlzLm1zZWNzID0gbXNlY3M7XHJcblx0fVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVHJhbnNtaXNzaW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XHJcblx0cmVhZG9ubHkgZXJyb3I/OiBhbnk7XHJcblx0cmVhZG9ubHkgaW5GbGlnaHQ6IFRyYW5zbWlzc2lvbjtcclxuXHRjb25zdHJ1Y3RvcihpbkZsaWdodDogVHJhbnNtaXNzaW9uLCBlcnJvcj86IGFueSkge1xyXG5cdFx0c3VwZXIoSlNPTi5zdHJpbmdpZnkoZXJyb3IpKTtcclxuXHRcdGRlbGV0ZSBlcnJvcj8uc3RhY2s7XHJcblx0XHR0aGlzLmVycm9yID0gZXJyb3I7XHJcblx0XHR0aGlzLmluRmxpZ2h0ID0gaW5GbGlnaHQ7XHJcblx0fVxyXG59XHJcblxyXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4vLy8gLS0tIEludGVybmFsIGZ1bmN0aW9uc1xyXG5cclxuZnVuY3Rpb24gbWF0Y2hpbmdVaW50OEFycmF5cyhhOiBVaW50OEFycmF5LCBiOiBVaW50OEFycmF5KSB7XHJcblx0cmV0dXJuIGEubGVuZ3RoID09PSBiLmxlbmd0aCAmJiBhLmV2ZXJ5KCh2YWx1ZSwgaW5kZXgpID0+IHZhbHVlID09PSBiW2luZGV4XSk7XHJcbn1cclxuIl19
@@ -1,7 +1,7 @@
1
- import { Balance, HexString } from '../types';
2
- import { Coins, Utxo, UtxoSelectionStrategy } from './types';
3
- export { bech32 } from 'bech32';
4
- export { PrivateKey, PublicKey, PublicKeyHash, KeyedSignature, RecoverableSignature, Signature } from "./types";
1
+ import type { Balance, HexString } from "../types.js";
2
+ import { Coins, type Utxo, UtxoSelectionStrategy } from "./types.js";
3
+ export { bech32 } from "bech32";
4
+ export { KeyedSignature, PrivateKey, PublicKey, PublicKeyHash, RecoverableSignature, Signature, } from "./types.js";
5
5
  export declare const BigMath: {
6
6
  max(value: bigint, ...values: bigint[]): bigint;
7
7
  };
@@ -17,6 +17,6 @@ export declare function selectUtxos(specs: {
17
17
  value?: Coins;
18
18
  strategy?: UtxoSelectionStrategy;
19
19
  }): Array<Utxo>;
20
- export declare function sha256(buffer: any): Buffer<ArrayBufferLike>;
20
+ export declare function sha256(buffer: any): NonSharedBuffer;
21
21
  export declare function totalCoins(balance: Balance): Coins;
22
22
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/lib/crypto/utils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAG5D,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAE/G,eAAO,MAAM,OAAO;eACL,MAAM,aAAa,MAAM,EAAE,GAAG,MAAM;CAKlD,CAAA;AAqBD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAcnE;AAED,wBAAgB,WAAW,CACvB,GAAG,EAAE,MAAM,CAAC,eAAe,CAAC,EAC5B,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,SAAS,GACrB,OAAO,CAOT;AAED,eAAO,MAAM,SAAS,GAAI,QAAQ,MAAM,KAAG;IACvC,SAAS,EAAE,UAAU,CAAC;IACtB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;CAyD1B,CAAC;AAEF,wBAAgB,WAAW,CAAC,KAAK,EAAE;IAC/B,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,CAAC,EAAE,qBAAqB,CAAC;CACpC,GAAG,KAAK,CAAC,IAAI,CAAC,CA6Cd;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,GAAG,2BAIjC;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK,CAMlD"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/lib/crypto/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAErE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EACN,cAAc,EACd,UAAU,EACV,SAAS,EACT,aAAa,EACb,oBAAoB,EACpB,SAAS,GACT,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,OAAO;eACR,MAAM,aAAa,MAAM,EAAE,GAAG,MAAM;CAI/C,CAAC;AAgBF,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAcnE;AAED,wBAAgB,WAAW,CAC1B,GAAG,EAAE,MAAM,CAAC,eAAe,CAAC,EAC5B,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,SAAS,GAClB,OAAO,CAMT;AAED,eAAO,MAAM,SAAS,GACrB,QAAQ,MAAM,KACZ;IACF,SAAS,EAAE,UAAU,CAAC;IACtB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;CAoEvB,CAAC;AAEF,wBAAgB,WAAW,CAAC,KAAK,EAAE;IAClC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,CAAC,EAAE,qBAAqB,CAAC;CACjC,GAAG,KAAK,CAAC,IAAI,CAAC,CAoDd;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,GAAG,mBAIjC;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK,CAIlD"}