@bitgo-beta/statics 7.0.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 (64) hide show
  1. package/.mocharc.js +10 -0
  2. package/.prettierignore +2 -0
  3. package/CHANGELOG.md +251 -0
  4. package/LICENSE +191 -0
  5. package/README.md +124 -0
  6. package/dist/resources/aca/index.d.ts +3 -0
  7. package/dist/resources/aca/index.d.ts.map +1 -0
  8. package/dist/resources/aca/index.js +15 -0
  9. package/dist/resources/aca/mainnet.d.ts +2 -0
  10. package/dist/resources/aca/mainnet.d.ts.map +1 -0
  11. package/dist/resources/aca/mainnet.js +5 -0
  12. package/dist/resources/aca/mandala.d.ts +2 -0
  13. package/dist/resources/aca/mandala.d.ts.map +1 -0
  14. package/dist/resources/aca/mandala.js +5 -0
  15. package/dist/resources/dot/index.d.ts +3 -0
  16. package/dist/resources/dot/index.d.ts.map +1 -0
  17. package/dist/resources/dot/index.js +15 -0
  18. package/dist/resources/dot/mainnet.d.ts +2 -0
  19. package/dist/resources/dot/mainnet.d.ts.map +1 -0
  20. package/dist/resources/dot/mainnet.js +5 -0
  21. package/dist/resources/dot/westend.d.ts +2 -0
  22. package/dist/resources/dot/westend.d.ts.map +1 -0
  23. package/dist/resources/dot/westend.js +5 -0
  24. package/dist/src/account.d.ts +676 -0
  25. package/dist/src/account.d.ts.map +1 -0
  26. package/dist/src/account.js +1055 -0
  27. package/dist/src/ada.d.ts +33 -0
  28. package/dist/src/ada.d.ts.map +1 -0
  29. package/dist/src/ada.js +55 -0
  30. package/dist/src/avaxp.d.ts +38 -0
  31. package/dist/src/avaxp.d.ts.map +1 -0
  32. package/dist/src/avaxp.js +51 -0
  33. package/dist/src/base.d.ts +851 -0
  34. package/dist/src/base.d.ts.map +1 -0
  35. package/dist/src/base.js +928 -0
  36. package/dist/src/coins.d.ts +3 -0
  37. package/dist/src/coins.d.ts.map +1 -0
  38. package/dist/src/coins.js +978 -0
  39. package/dist/src/errors.d.ts +31 -0
  40. package/dist/src/errors.d.ts.map +1 -0
  41. package/dist/src/errors.js +60 -0
  42. package/dist/src/index.d.ts +10 -0
  43. package/dist/src/index.d.ts.map +1 -0
  44. package/dist/src/index.js +36 -0
  45. package/dist/src/map.d.ts +21 -0
  46. package/dist/src/map.d.ts.map +1 -0
  47. package/dist/src/map.js +75 -0
  48. package/dist/src/networks.d.ts +668 -0
  49. package/dist/src/networks.d.ts.map +1 -0
  50. package/dist/src/networks.js +838 -0
  51. package/dist/src/ofc.d.ts +93 -0
  52. package/dist/src/ofc.d.ts.map +1 -0
  53. package/dist/src/ofc.js +161 -0
  54. package/dist/src/tokenConfig.d.ts +129 -0
  55. package/dist/src/tokenConfig.d.ts.map +1 -0
  56. package/dist/src/tokenConfig.js +295 -0
  57. package/dist/src/utxo.d.ts +38 -0
  58. package/dist/src/utxo.d.ts.map +1 -0
  59. package/dist/src/utxo.js +55 -0
  60. package/dist/tsconfig.tsbuildinfo +2021 -0
  61. package/package.json +41 -0
  62. package/resources/dot/index.ts +2 -0
  63. package/resources/dot/mainnet.ts +2 -0
  64. package/resources/dot/westend.ts +2 -0
@@ -0,0 +1,928 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseCoin = exports.KeyCurve = exports.UnderlyingAsset = exports.CoinFeature = exports.CoinFamily = exports.CoinKind = void 0;
4
+ const errors_1 = require("./errors");
5
+ var CoinKind;
6
+ (function (CoinKind) {
7
+ CoinKind["CRYPTO"] = "crypto";
8
+ CoinKind["FIAT"] = "fiat";
9
+ })(CoinKind = exports.CoinKind || (exports.CoinKind = {}));
10
+ /**
11
+ * The coin family links related variants of a single coin together.
12
+ *
13
+ * Typically, each coin will have a testnet and mainnet variant,
14
+ * and these will both have the same coin family.
15
+ *
16
+ * For example, the coins `btc` and `tbtc` both belong to the same family, `btc`.
17
+ */
18
+ var CoinFamily;
19
+ (function (CoinFamily) {
20
+ CoinFamily["ADA"] = "ada";
21
+ CoinFamily["ALGO"] = "algo";
22
+ CoinFamily["AVAXC"] = "avaxc";
23
+ CoinFamily["AVAXP"] = "avaxp";
24
+ CoinFamily["BCH"] = "bch";
25
+ CoinFamily["BCHA"] = "bcha";
26
+ CoinFamily["BSC"] = "bsc";
27
+ CoinFamily["BSV"] = "bsv";
28
+ CoinFamily["BTC"] = "btc";
29
+ CoinFamily["BTG"] = "btg";
30
+ CoinFamily["CELO"] = "celo";
31
+ CoinFamily["CSPR"] = "cspr";
32
+ CoinFamily["DASH"] = "dash";
33
+ CoinFamily["DOGE"] = "doge";
34
+ CoinFamily["DOT"] = "dot";
35
+ CoinFamily["ETH"] = "eth";
36
+ CoinFamily["ETH2"] = "eth2";
37
+ CoinFamily["ETHW"] = "ethw";
38
+ CoinFamily["ETC"] = "etc";
39
+ CoinFamily["EOS"] = "eos";
40
+ CoinFamily["FIAT"] = "fiat";
41
+ CoinFamily["HBAR"] = "hbar";
42
+ CoinFamily["LTC"] = "ltc";
43
+ CoinFamily["POLYGON"] = "polygon";
44
+ CoinFamily["NEAR"] = "near";
45
+ CoinFamily["OFC"] = "ofc";
46
+ CoinFamily["RBTC"] = "rbtc";
47
+ CoinFamily["SOL"] = "sol";
48
+ CoinFamily["SUI"] = "sui";
49
+ CoinFamily["STX"] = "stx";
50
+ CoinFamily["SUSD"] = "susd";
51
+ CoinFamily["TRX"] = "trx";
52
+ CoinFamily["XLM"] = "xlm";
53
+ CoinFamily["XRP"] = "xrp";
54
+ CoinFamily["XTZ"] = "xtz";
55
+ CoinFamily["ZEC"] = "zec";
56
+ })(CoinFamily = exports.CoinFamily || (exports.CoinFamily = {}));
57
+ /**
58
+ * Coin features are yes or no questions about what a coin requires or is capable of.
59
+ *
60
+ * This allows coin-agnostic handling of coin-specific features. This is designed
61
+ * to replace checking the coin name against a whitelist of supported coins
62
+ * before executing some coin-specific logic, and instead allows one to check if a
63
+ * coin supports the coin-specific feature that the logic implements.
64
+ */
65
+ var CoinFeature;
66
+ (function (CoinFeature) {
67
+ /*
68
+ * The valueless transfer feature indicates that it is valid to send a transaction which moves zero units of the coin.
69
+ *
70
+ * An example is Ethereum, which uses zero value transactions to trigger contract calls.
71
+ */
72
+ CoinFeature["VALUELESS_TRANSFER"] = "valueless-transfer";
73
+ /*
74
+ * Transaction data means there can be arbitrary data encoded in a transaction.
75
+ *
76
+ * Ethereum contract call data is an example.
77
+ */
78
+ CoinFeature["TRANSACTION_DATA"] = "transaction-data";
79
+ /*
80
+ * Some coins have a higher precision range than IEEE 754 doubles, which are used to represent numbers in javascript.
81
+ *
82
+ * For these coins, we must use an arbitrary precision arithmetic library, and this feature indicates this requirement.
83
+ */
84
+ CoinFeature["REQUIRES_BIG_NUMBER"] = "requires-big-number";
85
+ /*
86
+ * RMG requires all wallets to have a backup key held by a BitGo approved Key Recovery Service (KRS)
87
+ */
88
+ CoinFeature["REQUIRES_KRS_BACKUP_KEY"] = "requires-krs-backup-key";
89
+ /*
90
+ * For customers which are not on a postpaid contract, we add an extra output to transactions which pays BitGo a fee.
91
+ *
92
+ * This fee is known as the "pay-as-you-go fee", or just "paygo" for short.
93
+ *
94
+ * Some coins are unable to create transactions with more than one output, so paygo outputs are not possible for these coins.
95
+ */
96
+ CoinFeature["PAYGO"] = "paygo";
97
+ /*
98
+ * Does this coin align with the unspent model?
99
+ *
100
+ * These are typically Bitcoin and forks of it, such as Litecoin and Bitcoin Cash.
101
+ */
102
+ CoinFeature["UNSPENT_MODEL"] = "unspent-model";
103
+ /*
104
+ * Does this coin align with the account model?
105
+ *
106
+ * Examples of this coin type are Ethereum, XRP, and Stellar
107
+ */
108
+ CoinFeature["ACCOUNT_MODEL"] = "account-model";
109
+ /*
110
+ * Does this coin support child-pays-for-parent transactions?
111
+ *
112
+ * These are special types of transactions which can accelerate the confirmation time
113
+ * of another transaction which is stuck in the mempool due to low fees.
114
+ *
115
+ * This is only possible for coins which follow the unspent model (UTXO coins).
116
+ */
117
+ CoinFeature["CHILD_PAYS_FOR_PARENT"] = "cpfp";
118
+ /*
119
+ * Does this coin support tokens? These are distinct assets from the underlying coin, but run on the same network.
120
+ *
121
+ * For example, Ethereum's ERC 20 token standard means that it supports tokens, so it shall have this feature.
122
+ */
123
+ CoinFeature["SUPPORTS_TOKENS"] = "supports-tokens";
124
+ /*
125
+ * Are fees for transactions of this coin paid for by the Enterprise (eg, Enterprise gas tank)?
126
+ */
127
+ CoinFeature["ENTERPRISE_PAYS_FEES"] = "enterprise-pays-fees";
128
+ /*
129
+ * This coin requires that accounts keep a minimum balance as reserve
130
+ */
131
+ CoinFeature["REQUIRES_RESERVE"] = "requires-reserve";
132
+ /*
133
+ * This coin supports custodial wallet types
134
+ */
135
+ CoinFeature["CUSTODY"] = "custody";
136
+ /*
137
+ This coin uses TSS for key creation and signing
138
+ */
139
+ CoinFeature["TSS"] = "tss";
140
+ /*
141
+ * This coin supports staking
142
+ */
143
+ CoinFeature["STAKING"] = "staking";
144
+ })(CoinFeature = exports.CoinFeature || (exports.CoinFeature = {}));
145
+ /**
146
+ * Some coins are representations of another underlying asset class. An example
147
+ * is Wrapped Bitcoin, which represents Bitcoin on the Ethereum blockchain.
148
+ *
149
+ * For these coins, the `UnderlyingAsset` provides a link to the actual
150
+ * asset for which the coin is a unit of account.
151
+ */
152
+ var UnderlyingAsset;
153
+ (function (UnderlyingAsset) {
154
+ UnderlyingAsset["ADA"] = "ada";
155
+ UnderlyingAsset["ALGO"] = "algo";
156
+ UnderlyingAsset["APE"] = "ape";
157
+ UnderlyingAsset["API3"] = "api3";
158
+ UnderlyingAsset["AVAXC"] = "avaxc";
159
+ UnderlyingAsset["AVAXP"] = "avaxp";
160
+ UnderlyingAsset["AXL"] = "AXL";
161
+ UnderlyingAsset["BCH"] = "bch";
162
+ UnderlyingAsset["BCHA"] = "bcha";
163
+ UnderlyingAsset["BSC"] = "bsc";
164
+ UnderlyingAsset["BSV"] = "bsv";
165
+ UnderlyingAsset["BTC"] = "btc";
166
+ UnderlyingAsset["BTG"] = "btg";
167
+ UnderlyingAsset["DASH"] = "dash";
168
+ UnderlyingAsset["DOT"] = "dot";
169
+ UnderlyingAsset["CELO"] = "celo";
170
+ UnderlyingAsset["CSPR"] = "cspr";
171
+ UnderlyingAsset["ETH"] = "eth";
172
+ UnderlyingAsset["ETH2"] = "eth2";
173
+ UnderlyingAsset["ETHW"] = "ethw";
174
+ UnderlyingAsset["ETC"] = "etc";
175
+ UnderlyingAsset["EOS"] = "eos";
176
+ UnderlyingAsset["ERD"] = "erd";
177
+ UnderlyingAsset["EUR"] = "eur";
178
+ UnderlyingAsset["EUROC"] = "euroc";
179
+ UnderlyingAsset["GBP"] = "gbp";
180
+ UnderlyingAsset["GTC"] = "gtc";
181
+ UnderlyingAsset["GTETH"] = "gteth";
182
+ UnderlyingAsset["HBAR"] = "hbar";
183
+ UnderlyingAsset["LTC"] = "ltc";
184
+ UnderlyingAsset["NEAR"] = "near";
185
+ UnderlyingAsset["POLYGON"] = "polygon";
186
+ UnderlyingAsset["RBTC"] = "rbtc";
187
+ UnderlyingAsset["SOL"] = "sol";
188
+ UnderlyingAsset["SUI"] = "sui";
189
+ UnderlyingAsset["STX"] = "stx";
190
+ UnderlyingAsset["TRX"] = "trx";
191
+ UnderlyingAsset["USD"] = "usd";
192
+ UnderlyingAsset["XLM"] = "xlm";
193
+ UnderlyingAsset["XRP"] = "xrp";
194
+ UnderlyingAsset["XTZ"] = "xtz";
195
+ UnderlyingAsset["ZEC"] = "zec";
196
+ // ERC 20 tokens
197
+ UnderlyingAsset["1INCH"] = "1inch";
198
+ UnderlyingAsset["1UP"] = "1up";
199
+ UnderlyingAsset["AAVE"] = "aave";
200
+ UnderlyingAsset["ABT"] = "abt";
201
+ UnderlyingAsset["ACE"] = "ace";
202
+ UnderlyingAsset["ACXT"] = "acxt";
203
+ UnderlyingAsset["ACH"] = "ach";
204
+ UnderlyingAsset["AE"] = "ae";
205
+ UnderlyingAsset["AERGO"] = "aergo";
206
+ UnderlyingAsset["AERGO1"] = "aergo1";
207
+ UnderlyingAsset["AGWD"] = "agwd";
208
+ UnderlyingAsset["AION"] = "aion";
209
+ UnderlyingAsset["ALI"] = "ali";
210
+ UnderlyingAsset["ALPHA"] = "alpha";
211
+ UnderlyingAsset["AMN"] = "amn";
212
+ UnderlyingAsset["AMO"] = "amo";
213
+ UnderlyingAsset["AMP"] = "amp";
214
+ UnderlyingAsset["AMON"] = "amon";
215
+ UnderlyingAsset["AMPX"] = "ampx";
216
+ UnderlyingAsset["ANA"] = "ana";
217
+ UnderlyingAsset["ANT"] = "ant";
218
+ UnderlyingAsset["ANTV2"] = "antv2";
219
+ UnderlyingAsset["AOA"] = "aoa";
220
+ UnderlyingAsset["APPC"] = "appc";
221
+ UnderlyingAsset["AQT"] = "aqt";
222
+ UnderlyingAsset["ARCT"] = "arct";
223
+ UnderlyingAsset["ARCX"] = "arcx";
224
+ UnderlyingAsset["AST"] = "ast";
225
+ UnderlyingAsset["ATRI"] = "atri";
226
+ UnderlyingAsset["AUDIO"] = "audio";
227
+ UnderlyingAsset["AUDX"] = "audx";
228
+ UnderlyingAsset["AUST"] = "aust";
229
+ UnderlyingAsset["AKRO"] = "akro";
230
+ UnderlyingAsset["AXPR"] = "axpr";
231
+ UnderlyingAsset["AXS"] = "axs";
232
+ UnderlyingAsset["AXSV2"] = "axsv2";
233
+ UnderlyingAsset["BADGER"] = "badger";
234
+ UnderlyingAsset["BAL"] = "bal";
235
+ UnderlyingAsset["BAND"] = "band";
236
+ UnderlyingAsset["BASIC"] = "basic";
237
+ UnderlyingAsset["BAT"] = "bat";
238
+ UnderlyingAsset["BAX"] = "bax";
239
+ UnderlyingAsset["BBX"] = "bbx";
240
+ UnderlyingAsset["BCAP"] = "bcap";
241
+ UnderlyingAsset["BCC"] = "bcc";
242
+ UnderlyingAsset["BCIO"] = "bcio";
243
+ UnderlyingAsset["BED"] = "bed";
244
+ UnderlyingAsset["BEPRO"] = "bepro";
245
+ UnderlyingAsset["BICO"] = "bico";
246
+ UnderlyingAsset["BID"] = "bid";
247
+ UnderlyingAsset["BIDL"] = "bidl";
248
+ UnderlyingAsset["BIRD"] = "bird";
249
+ UnderlyingAsset["BIT"] = "bit";
250
+ UnderlyingAsset["BNB"] = "bnb";
251
+ UnderlyingAsset["BNK"] = "bnk";
252
+ UnderlyingAsset["BNL"] = "bnl";
253
+ UnderlyingAsset["BNT"] = "bnt";
254
+ UnderlyingAsset["BNTY"] = "bnty";
255
+ UnderlyingAsset["BOND"] = "bond";
256
+ UnderlyingAsset["BLOCKS"] = "blocks";
257
+ UnderlyingAsset["BOX"] = "box";
258
+ UnderlyingAsset["BOBA"] = "boba";
259
+ UnderlyingAsset["BRD"] = "brd";
260
+ UnderlyingAsset["BRZ"] = "brz";
261
+ UnderlyingAsset["BST"] = "bst";
262
+ UnderlyingAsset["BSX"] = "bsx";
263
+ UnderlyingAsset["BTRST"] = "btrst";
264
+ UnderlyingAsset["BTT"] = "btt";
265
+ UnderlyingAsset["BTU"] = "btu";
266
+ UnderlyingAsset["BURP"] = "burp";
267
+ UnderlyingAsset["BUSD"] = "busd";
268
+ UnderlyingAsset["BUY"] = "buy";
269
+ UnderlyingAsset["BPT"] = "bpt";
270
+ UnderlyingAsset["BXX"] = "bxx";
271
+ UnderlyingAsset["BXXV1"] = "bxxv1";
272
+ UnderlyingAsset["BZZ"] = "bzz";
273
+ UnderlyingAsset["C8P"] = "c8p";
274
+ UnderlyingAsset["CACXT"] = "cacxt";
275
+ UnderlyingAsset["CADX"] = "cadx";
276
+ UnderlyingAsset["CAG"] = "cag";
277
+ UnderlyingAsset["CBAT"] = "cbat";
278
+ UnderlyingAsset["CBC"] = "cbc";
279
+ UnderlyingAsset["CBRL"] = "cbrl";
280
+ UnderlyingAsset["CCT"] = "cct";
281
+ UnderlyingAsset["CDAG"] = "cdag";
282
+ UnderlyingAsset["CDAI"] = "cdai";
283
+ UnderlyingAsset["CDT"] = "cdt";
284
+ UnderlyingAsset["CEL"] = "cel";
285
+ UnderlyingAsset["CELR"] = "celr";
286
+ UnderlyingAsset["CETH"] = "ceth";
287
+ UnderlyingAsset["CHO"] = "cho";
288
+ UnderlyingAsset["CHFX"] = "chfx";
289
+ UnderlyingAsset["CHSB"] = "chsb";
290
+ UnderlyingAsset["CHZ"] = "chz";
291
+ UnderlyingAsset["CIX100"] = "cix100";
292
+ UnderlyingAsset["CLIQ"] = "cliq";
293
+ UnderlyingAsset["CLN"] = "cln";
294
+ UnderlyingAsset["CLT"] = "clt";
295
+ UnderlyingAsset["CLV"] = "clv";
296
+ UnderlyingAsset["CNG"] = "cng";
297
+ UnderlyingAsset["CNYX"] = "cnyx";
298
+ UnderlyingAsset["COMP"] = "comp";
299
+ UnderlyingAsset["COTI"] = "coti";
300
+ UnderlyingAsset["COVER"] = "cover";
301
+ UnderlyingAsset["CPAY"] = "cpay";
302
+ UnderlyingAsset["CPLT"] = "cplt";
303
+ UnderlyingAsset["CQT"] = "cqt";
304
+ UnderlyingAsset["CQX"] = "cqx";
305
+ UnderlyingAsset["CRA"] = "cra";
306
+ UnderlyingAsset["CRDT"] = "crdt";
307
+ UnderlyingAsset["CRE"] = "cre";
308
+ UnderlyingAsset["CREAM"] = "cream";
309
+ UnderlyingAsset["CREP"] = "crep";
310
+ UnderlyingAsset["CRO"] = "cro";
311
+ UnderlyingAsset["CRV"] = "crv";
312
+ UnderlyingAsset["CRPT"] = "crpt";
313
+ UnderlyingAsset["CRPT1"] = "crpt1";
314
+ UnderlyingAsset["CSLV"] = "cslv";
315
+ UnderlyingAsset["CSP"] = "csp";
316
+ UnderlyingAsset["CTSI"] = "ctsi";
317
+ UnderlyingAsset["CUSD"] = "cusd";
318
+ UnderlyingAsset["CUSDC"] = "cusdc";
319
+ UnderlyingAsset["CWBTC"] = "cwbtc";
320
+ UnderlyingAsset["CVC"] = "cvc";
321
+ UnderlyingAsset["CVX"] = "cvx";
322
+ UnderlyingAsset["CZRX"] = "czrx";
323
+ UnderlyingAsset["DACXI"] = "dacxi";
324
+ UnderlyingAsset["DAI"] = "dai";
325
+ UnderlyingAsset["DAO"] = "dao";
326
+ UnderlyingAsset["DATA"] = "data";
327
+ UnderlyingAsset["DATAV2"] = "datav2";
328
+ UnderlyingAsset["DATAECON"] = "dataecon";
329
+ UnderlyingAsset["DEC"] = "dec";
330
+ UnderlyingAsset["DENT"] = "dent";
331
+ UnderlyingAsset["DEP"] = "dep";
332
+ UnderlyingAsset["DEXA"] = "dexa";
333
+ UnderlyingAsset["DFD"] = "dfd";
334
+ UnderlyingAsset["DFI"] = "dfi";
335
+ UnderlyingAsset["DGCL"] = "dgcl";
336
+ UnderlyingAsset["DGD"] = "dgd";
337
+ UnderlyingAsset["DGX"] = "dgx";
338
+ UnderlyingAsset["DIGG"] = "digg";
339
+ UnderlyingAsset["DIA"] = "dia";
340
+ UnderlyingAsset["DMT"] = "dmt";
341
+ UnderlyingAsset["DODO"] = "dodo";
342
+ UnderlyingAsset["DOGE"] = "doge";
343
+ UnderlyingAsset["DPI"] = "dpi";
344
+ UnderlyingAsset["DRPU"] = "drpu";
345
+ UnderlyingAsset["DRV"] = "drv";
346
+ UnderlyingAsset["DUC"] = "duc";
347
+ UnderlyingAsset["DX1U"] = "dx1u";
348
+ UnderlyingAsset["DXGT"] = "dxgt";
349
+ UnderlyingAsset["DXPT"] = "dxpt";
350
+ UnderlyingAsset["DXST"] = "dxst";
351
+ UnderlyingAsset["DYDX"] = "dydx";
352
+ UnderlyingAsset["DYN"] = "dyn";
353
+ UnderlyingAsset["EASY"] = "easy";
354
+ UnderlyingAsset["EBTCQ"] = "ebtcq";
355
+ UnderlyingAsset["ECHT"] = "echt";
356
+ UnderlyingAsset["EDISON"] = "edison";
357
+ UnderlyingAsset["EDN"] = "edn";
358
+ UnderlyingAsset["EDR"] = "edr";
359
+ UnderlyingAsset["EFI"] = "efi";
360
+ UnderlyingAsset["EGL"] = "egl";
361
+ UnderlyingAsset["EGLD"] = "egld";
362
+ UnderlyingAsset["EGOLD"] = "egold";
363
+ UnderlyingAsset["ELF"] = "elf";
364
+ UnderlyingAsset["EMX"] = "emx";
365
+ UnderlyingAsset["ENG"] = "eng";
366
+ UnderlyingAsset["ENJ"] = "enj";
367
+ UnderlyingAsset["ENS"] = "ens";
368
+ UnderlyingAsset["EQO"] = "eqo";
369
+ UnderlyingAsset["ETA"] = "eta";
370
+ UnderlyingAsset["ETHOS"] = "ethos";
371
+ UnderlyingAsset["ETV"] = "etv";
372
+ UnderlyingAsset["EURS"] = "eurs";
373
+ UnderlyingAsset["EURST"] = "eurst";
374
+ UnderlyingAsset["EURT"] = "eurt";
375
+ UnderlyingAsset["EURX"] = "eurx";
376
+ UnderlyingAsset["EUX"] = "eux";
377
+ UnderlyingAsset["EVX"] = "evx";
378
+ UnderlyingAsset["EXE"] = "exe";
379
+ UnderlyingAsset["FEI"] = "fei";
380
+ UnderlyingAsset["FET"] = "fet";
381
+ UnderlyingAsset["FET1"] = "fet1";
382
+ UnderlyingAsset["FDT"] = "fdt";
383
+ UnderlyingAsset["FF1"] = "ff1";
384
+ UnderlyingAsset["FFT"] = "fft";
385
+ UnderlyingAsset["FIRE"] = "fire";
386
+ UnderlyingAsset["FIXED"] = "fixed";
387
+ UnderlyingAsset["FLY"] = "fly";
388
+ UnderlyingAsset["FMF"] = "fmf";
389
+ UnderlyingAsset["FORTH"] = "forth";
390
+ UnderlyingAsset["FRONT"] = "front";
391
+ UnderlyingAsset["FTM"] = "ftm";
392
+ UnderlyingAsset["FTT"] = "ftt";
393
+ UnderlyingAsset["FUN"] = "fun";
394
+ UnderlyingAsset["FWB"] = "fwb";
395
+ UnderlyingAsset["FXRT"] = "fxrt";
396
+ UnderlyingAsset["FXS"] = "fxs";
397
+ UnderlyingAsset["GAL"] = "gal";
398
+ UnderlyingAsset["GALA"] = "gala";
399
+ UnderlyingAsset["GAMMA"] = "gamma";
400
+ UnderlyingAsset["GBPX"] = "gbpx";
401
+ UnderlyingAsset["GDT"] = "gdt";
402
+ UnderlyingAsset["GEC"] = "gec";
403
+ UnderlyingAsset["GEN"] = "gen";
404
+ UnderlyingAsset["GFI"] = "gfi";
405
+ UnderlyingAsset["GHUB"] = "ghub";
406
+ UnderlyingAsset["GIGDROP"] = "gigdrop";
407
+ UnderlyingAsset["GLDX"] = "gldx";
408
+ UnderlyingAsset["GLM"] = "glm";
409
+ UnderlyingAsset["GMT"] = "gmt";
410
+ UnderlyingAsset["GNO"] = "gno";
411
+ UnderlyingAsset["GNT"] = "gnt";
412
+ UnderlyingAsset["GODS"] = "gods";
413
+ UnderlyingAsset["GOG"] = "gog";
414
+ UnderlyingAsset["GOLD"] = "gold";
415
+ UnderlyingAsset["GOT"] = "got";
416
+ UnderlyingAsset["GRT"] = "grt";
417
+ UnderlyingAsset["GTAAVE18DP"] = "gtaave18dp";
418
+ UnderlyingAsset["GTBAT18DP"] = "gtbat18dp";
419
+ UnderlyingAsset["GTCOMP18DP"] = "gtcomp18dp";
420
+ UnderlyingAsset["GTGRT18DP"] = "gtgrt18dp";
421
+ UnderlyingAsset["GTLINK18DP"] = "gtlink18dp";
422
+ UnderlyingAsset["GTMKR18DP"] = "gtmkr18dp";
423
+ UnderlyingAsset["GTSNX18DP"] = "gtsnx18dp";
424
+ UnderlyingAsset["GTUNI18DP"] = "gtuni18dp";
425
+ UnderlyingAsset["GTUSDT6DP"] = "gtusdt6dp";
426
+ UnderlyingAsset["GTYFI18DP"] = "gtyfi18dp";
427
+ UnderlyingAsset["GTWBTC8DP"] = "gtwbtc8dp";
428
+ UnderlyingAsset["GTO"] = "gto";
429
+ UnderlyingAsset["GTERC2DP"] = "gterc2dp";
430
+ UnderlyingAsset["GTERC6DP"] = "gterc6dp";
431
+ UnderlyingAsset["GTERC18DP"] = "gterc18dp";
432
+ UnderlyingAsset["GUSD"] = "gusd";
433
+ UnderlyingAsset["GUSDT"] = "gusdt";
434
+ UnderlyingAsset["GXC"] = "gxc";
435
+ UnderlyingAsset["GYEN"] = "gyen";
436
+ UnderlyingAsset["HCN"] = "hcn";
437
+ UnderlyingAsset["HDO"] = "hdo";
438
+ UnderlyingAsset["HEDG"] = "hedg";
439
+ UnderlyingAsset["HKDX"] = "hkdx";
440
+ UnderlyingAsset["HLC"] = "hlc";
441
+ UnderlyingAsset["HMT"] = "hmt";
442
+ UnderlyingAsset["HOLD"] = "hold";
443
+ UnderlyingAsset["HOT"] = "hot";
444
+ UnderlyingAsset["HQT"] = "hqt";
445
+ UnderlyingAsset["HST"] = "hst";
446
+ UnderlyingAsset["HT"] = "ht";
447
+ UnderlyingAsset["HUM"] = "hum";
448
+ UnderlyingAsset["HUSD"] = "husd";
449
+ UnderlyingAsset["HXRO"] = "hxro";
450
+ UnderlyingAsset["HYB"] = "hyb";
451
+ UnderlyingAsset["HYDRO"] = "hydro";
452
+ UnderlyingAsset["I8"] = "i8";
453
+ UnderlyingAsset["ICETH"] = "iceth";
454
+ UnderlyingAsset["IDEX"] = "idex";
455
+ UnderlyingAsset["IDRC"] = "idrc";
456
+ UnderlyingAsset["IDRT"] = "idrt";
457
+ UnderlyingAsset["IMX"] = "imx";
458
+ UnderlyingAsset["IMXV2"] = "imxv2";
459
+ UnderlyingAsset["INCX"] = "incx";
460
+ UnderlyingAsset["IND"] = "ind";
461
+ UnderlyingAsset["INDEX"] = "index";
462
+ UnderlyingAsset["INF"] = "inf";
463
+ UnderlyingAsset["INJ"] = "inj";
464
+ UnderlyingAsset["INJV2"] = "injv2";
465
+ UnderlyingAsset["INST"] = "inst";
466
+ UnderlyingAsset["INX"] = "inx";
467
+ UnderlyingAsset["ISF"] = "isf";
468
+ UnderlyingAsset["ISR"] = "isr";
469
+ UnderlyingAsset["IVO"] = "ivo";
470
+ UnderlyingAsset["IVY"] = "ivy";
471
+ UnderlyingAsset["JBC"] = "jbc";
472
+ UnderlyingAsset["JCR"] = "jcr";
473
+ UnderlyingAsset["JCG"] = "jcg";
474
+ UnderlyingAsset["JFIN"] = "jfin";
475
+ UnderlyingAsset["JPYX"] = "jpyx";
476
+ UnderlyingAsset["KEEP"] = "keep";
477
+ UnderlyingAsset["KEY"] = "key";
478
+ UnderlyingAsset["KIN"] = "kin";
479
+ UnderlyingAsset["KIRO"] = "kiro";
480
+ UnderlyingAsset["KNC"] = "knc";
481
+ UnderlyingAsset["KNC2"] = "knc2";
482
+ UnderlyingAsset["KOIN"] = "koin";
483
+ UnderlyingAsset["KOZ"] = "koz";
484
+ UnderlyingAsset["KP3R"] = "kp3r";
485
+ UnderlyingAsset["KZE"] = "kze";
486
+ UnderlyingAsset["LAYER"] = "layer";
487
+ UnderlyingAsset["LBA"] = "lba";
488
+ UnderlyingAsset["LEND"] = "lend";
489
+ UnderlyingAsset["LEO"] = "leo";
490
+ UnderlyingAsset["LGO"] = "lgo";
491
+ UnderlyingAsset["LINK"] = "link";
492
+ UnderlyingAsset["LION"] = "lion";
493
+ UnderlyingAsset["LNC"] = "lnc";
494
+ UnderlyingAsset["LOOKS"] = "looks";
495
+ UnderlyingAsset["LOOM"] = "loom";
496
+ UnderlyingAsset["LOOM1"] = "loom1";
497
+ UnderlyingAsset["LRC"] = "lrc";
498
+ UnderlyingAsset["LRCV2"] = "lrcv2";
499
+ UnderlyingAsset["LYN"] = "lyn";
500
+ UnderlyingAsset["MANA"] = "mana";
501
+ UnderlyingAsset["MAPS"] = "maps";
502
+ UnderlyingAsset["MATIC"] = "matic";
503
+ UnderlyingAsset["MCAU"] = "mcau";
504
+ UnderlyingAsset["MCDAI"] = "mcdai";
505
+ UnderlyingAsset["MCO"] = "mco";
506
+ UnderlyingAsset["MCO2"] = "mco2";
507
+ UnderlyingAsset["MCS"] = "mcs";
508
+ UnderlyingAsset["MCX"] = "mcx";
509
+ UnderlyingAsset["MDFC"] = "mdfc";
510
+ UnderlyingAsset["MDX"] = "mdx";
511
+ UnderlyingAsset["MEDX"] = "medx";
512
+ UnderlyingAsset["MEME"] = "meme";
513
+ UnderlyingAsset["MET"] = "met";
514
+ UnderlyingAsset["META"] = "meta";
515
+ UnderlyingAsset["MFG"] = "mfg";
516
+ UnderlyingAsset["MFPH"] = "mfph";
517
+ UnderlyingAsset["MFT"] = "mft";
518
+ UnderlyingAsset["MILKV2"] = "milkv2";
519
+ UnderlyingAsset["MIR"] = "mir";
520
+ UnderlyingAsset["MITH"] = "mith";
521
+ UnderlyingAsset["MIX"] = "mix";
522
+ UnderlyingAsset["MIZN"] = "mizn";
523
+ UnderlyingAsset["MKR"] = "mkr";
524
+ UnderlyingAsset["MNS"] = "mns";
525
+ UnderlyingAsset["MNDE"] = "mnde";
526
+ UnderlyingAsset["MOC"] = "moc";
527
+ UnderlyingAsset["MOF"] = "mof";
528
+ UnderlyingAsset["MPAY"] = "mpay";
529
+ UnderlyingAsset["MPL"] = "mpl";
530
+ UnderlyingAsset["MTCN"] = "mtcn";
531
+ UnderlyingAsset["MTL"] = "mtl";
532
+ UnderlyingAsset["MUSD"] = "musd";
533
+ UnderlyingAsset["MVL"] = "mvl";
534
+ UnderlyingAsset["MVI"] = "mvi";
535
+ UnderlyingAsset["MWT"] = "mwt";
536
+ UnderlyingAsset["NAS"] = "nas";
537
+ UnderlyingAsset["NCT"] = "nct";
538
+ UnderlyingAsset["NDX"] = "ndx";
539
+ UnderlyingAsset["NEU"] = "neu";
540
+ UnderlyingAsset["NEXO"] = "nexo";
541
+ UnderlyingAsset["NFTX"] = "nftx";
542
+ UnderlyingAsset["NGNT"] = "ngnt";
543
+ UnderlyingAsset["NIAX"] = "niax";
544
+ UnderlyingAsset["NMR"] = "nmr";
545
+ UnderlyingAsset["NPXS"] = "npxs";
546
+ UnderlyingAsset["NS2DRP"] = "ns2drp";
547
+ UnderlyingAsset["NU"] = "nu";
548
+ UnderlyingAsset["NYM"] = "nym";
549
+ UnderlyingAsset["NZDX"] = "nzdx";
550
+ UnderlyingAsset["OCEAN"] = "ocean";
551
+ UnderlyingAsset["OCEANV2"] = "oceanv2";
552
+ UnderlyingAsset["OGN"] = "ogn";
553
+ UnderlyingAsset["OM"] = "om";
554
+ UnderlyingAsset["OKB"] = "okb";
555
+ UnderlyingAsset["OMG"] = "omg";
556
+ UnderlyingAsset["ONL"] = "onl";
557
+ UnderlyingAsset["OP"] = "op";
558
+ UnderlyingAsset["OPT"] = "opt";
559
+ UnderlyingAsset["ORAI"] = "orai";
560
+ UnderlyingAsset["ORBS"] = "orbs";
561
+ UnderlyingAsset["ORCA"] = "orca";
562
+ UnderlyingAsset["OXT"] = "oxt";
563
+ UnderlyingAsset["OXY"] = "oxy";
564
+ UnderlyingAsset["OHM"] = "ohm";
565
+ UnderlyingAsset["SD"] = "sd";
566
+ UnderlyingAsset["SOHM"] = "sohm";
567
+ UnderlyingAsset["GOHM"] = "gohm";
568
+ UnderlyingAsset["PAR"] = "par";
569
+ UnderlyingAsset["PASS"] = "pass";
570
+ UnderlyingAsset["PAU"] = "pau";
571
+ UnderlyingAsset["PAX"] = "pax";
572
+ UnderlyingAsset["PAXG"] = "paxg";
573
+ UnderlyingAsset["PAY"] = "pay";
574
+ UnderlyingAsset["PBCH"] = "pbch";
575
+ UnderlyingAsset["PDATA"] = "pdata";
576
+ UnderlyingAsset["PBTC"] = "pbtc";
577
+ UnderlyingAsset["PEG"] = "peg";
578
+ UnderlyingAsset["PERP"] = "perp";
579
+ UnderlyingAsset["PETH"] = "peth";
580
+ UnderlyingAsset["PHNX"] = "phnx";
581
+ UnderlyingAsset["PIE"] = "pie";
582
+ UnderlyingAsset["PLC"] = "plc";
583
+ UnderlyingAsset["PFCT"] = "pfct";
584
+ UnderlyingAsset["PLANET"] = "planet";
585
+ UnderlyingAsset["PLNX"] = "plnx";
586
+ UnderlyingAsset["PLX"] = "plx";
587
+ UnderlyingAsset["PMA"] = "pma";
588
+ UnderlyingAsset["POLY"] = "poly";
589
+ UnderlyingAsset["POWR"] = "powr";
590
+ UnderlyingAsset["PPT"] = "ppt";
591
+ UnderlyingAsset["PRDX"] = "prdx";
592
+ UnderlyingAsset["PRINTS"] = "prints";
593
+ UnderlyingAsset["PRO"] = "pro";
594
+ UnderlyingAsset["PRTS"] = "prts";
595
+ UnderlyingAsset["PSTAKE"] = "pstake";
596
+ UnderlyingAsset["PUNDIX"] = "pundix";
597
+ UnderlyingAsset["PUSD"] = "pusd";
598
+ UnderlyingAsset["PXP"] = "pxp";
599
+ UnderlyingAsset["PYR"] = "pyr";
600
+ UnderlyingAsset["QASH"] = "qash";
601
+ UnderlyingAsset["QCAD"] = "qcad";
602
+ UnderlyingAsset["QUICK"] = "quick";
603
+ UnderlyingAsset["QDT"] = "qdt";
604
+ UnderlyingAsset["QKC"] = "qkc";
605
+ UnderlyingAsset["QNT"] = "qnt";
606
+ UnderlyingAsset["QRDO"] = "qrdo";
607
+ UnderlyingAsset["QRL"] = "qrl";
608
+ UnderlyingAsset["QSP"] = "qsp";
609
+ UnderlyingAsset["QVT"] = "qvt";
610
+ UnderlyingAsset["RAD"] = "rad";
611
+ UnderlyingAsset["RCOIN"] = "rcoin";
612
+ UnderlyingAsset["RARE"] = "rare";
613
+ UnderlyingAsset["RARI"] = "rari";
614
+ UnderlyingAsset["RAY"] = "ray";
615
+ UnderlyingAsset["RBY"] = "rby";
616
+ UnderlyingAsset["RDN"] = "rdn";
617
+ UnderlyingAsset["REB"] = "reb";
618
+ UnderlyingAsset["REBL"] = "rebl";
619
+ UnderlyingAsset["REEF"] = "reef";
620
+ UnderlyingAsset["REP"] = "rep";
621
+ UnderlyingAsset["REPV2"] = "repv2";
622
+ UnderlyingAsset["RETH-H"] = "reth-h";
623
+ UnderlyingAsset["RFR"] = "rfr";
624
+ UnderlyingAsset["RFUEL"] = "rfuel";
625
+ UnderlyingAsset["RGT"] = "rgt";
626
+ UnderlyingAsset["RIF"] = "rif";
627
+ UnderlyingAsset["RINGX"] = "ringx";
628
+ UnderlyingAsset["RLC"] = "rlc";
629
+ UnderlyingAsset["RLY"] = "rly";
630
+ UnderlyingAsset["RNDR"] = "rndr";
631
+ UnderlyingAsset["ROOK"] = "rook";
632
+ UnderlyingAsset["RON"] = "ron";
633
+ UnderlyingAsset["RONC"] = "ronc";
634
+ UnderlyingAsset["ROOBEE"] = "roobee";
635
+ UnderlyingAsset["RSR"] = "rsr";
636
+ UnderlyingAsset["RUBX"] = "rubx";
637
+ UnderlyingAsset["RUEDATK"] = "ruedatk";
638
+ UnderlyingAsset["SALT"] = "salt";
639
+ UnderlyingAsset["SAND"] = "sand";
640
+ UnderlyingAsset["SASHIMI"] = "sashimi";
641
+ UnderlyingAsset["SGA"] = "sga";
642
+ UnderlyingAsset["SGDX"] = "sgdx";
643
+ UnderlyingAsset["SGR"] = "sgr";
644
+ UnderlyingAsset["SHK"] = "shk";
645
+ UnderlyingAsset["SHOPX"] = "shopx";
646
+ UnderlyingAsset["SHIB"] = "shib";
647
+ UnderlyingAsset["SHR"] = "shr";
648
+ UnderlyingAsset["SIH"] = "sih";
649
+ UnderlyingAsset["SILV"] = "silv";
650
+ UnderlyingAsset["SIPHER"] = "sipher";
651
+ UnderlyingAsset["SIS"] = "sis";
652
+ UnderlyingAsset["SKALE"] = "skale";
653
+ UnderlyingAsset["SLAB"] = "slab";
654
+ UnderlyingAsset["SLND"] = "slnd";
655
+ UnderlyingAsset["SLOT"] = "slot";
656
+ UnderlyingAsset["SLP"] = "slp";
657
+ UnderlyingAsset["SLVX"] = "slvx";
658
+ UnderlyingAsset["SNC"] = "snc";
659
+ UnderlyingAsset["SNOV"] = "snov";
660
+ UnderlyingAsset["SNT"] = "snt";
661
+ UnderlyingAsset["SNX"] = "snx";
662
+ UnderlyingAsset["SOC"] = "soc";
663
+ UnderlyingAsset["SPELL"] = "spell";
664
+ UnderlyingAsset["SPO"] = "spo";
665
+ UnderlyingAsset["SOLVE"] = "solve";
666
+ UnderlyingAsset["SRNT"] = "srnt";
667
+ UnderlyingAsset["SRM"] = "srm";
668
+ UnderlyingAsset["STBU"] = "stbu";
669
+ UnderlyingAsset["STC"] = "stc";
670
+ UnderlyingAsset["STCV2"] = "stcv2";
671
+ UnderlyingAsset["SETH-H"] = "seth-h";
672
+ UnderlyingAsset["STKAAVE"] = "stkaave";
673
+ UnderlyingAsset["STORE"] = "store";
674
+ UnderlyingAsset["STORJ"] = "storj";
675
+ UnderlyingAsset["STMX"] = "stmx";
676
+ UnderlyingAsset["STORM"] = "storm";
677
+ UnderlyingAsset["STZEN"] = "stzen";
678
+ UnderlyingAsset["SUPER"] = "super";
679
+ UnderlyingAsset["SUSHI"] = "sushi";
680
+ UnderlyingAsset["SQUIG"] = "squig";
681
+ UnderlyingAsset["SXP"] = "sxp";
682
+ UnderlyingAsset["THRESHOLD"] = "threshold";
683
+ UnderlyingAsset["TAUD"] = "taud";
684
+ UnderlyingAsset["TBTC1"] = "tbtc1";
685
+ UnderlyingAsset["TCAD"] = "tcad";
686
+ UnderlyingAsset["TCO"] = "tco";
687
+ UnderlyingAsset["TEL"] = "tel";
688
+ UnderlyingAsset["TEN"] = "ten";
689
+ UnderlyingAsset["TENX"] = "tenx";
690
+ UnderlyingAsset["TERC"] = "terc";
691
+ UnderlyingAsset["TEUROC"] = "teuroc";
692
+ UnderlyingAsset["TERC2DP"] = "terc2dp";
693
+ UnderlyingAsset["TERC6DP"] = "terc6dp";
694
+ UnderlyingAsset["TERC18DP"] = "terc18DP";
695
+ UnderlyingAsset["TERC20"] = "terc20";
696
+ UnderlyingAsset["TERC2DP1"] = "terc2dp1";
697
+ UnderlyingAsset["TERC2DP2"] = "terc2dp2";
698
+ UnderlyingAsset["TERC2DP3"] = "terc2dp3";
699
+ UnderlyingAsset["TERC2DP4"] = "terc2dp4";
700
+ UnderlyingAsset["TERC2DP5"] = "terc2dp5";
701
+ UnderlyingAsset["TERC6DP1"] = "terc6dp1";
702
+ UnderlyingAsset["TERC6DP2"] = "terc6dp2";
703
+ UnderlyingAsset["TERC6DP3"] = "terc6dp3";
704
+ UnderlyingAsset["TERC6DP4"] = "terc6dp4";
705
+ UnderlyingAsset["TERC6DP5"] = "terc6dp5";
706
+ UnderlyingAsset["TERC18DP1"] = "terc18dp1";
707
+ UnderlyingAsset["TERC18DP2"] = "terc18dp2";
708
+ UnderlyingAsset["TERC18DP3"] = "terc18dp3";
709
+ UnderlyingAsset["TERC18DP4"] = "terc18dp4";
710
+ UnderlyingAsset["TERC18DP5"] = "terc18dp5";
711
+ UnderlyingAsset["TERC18DP6"] = "terc18dp6";
712
+ UnderlyingAsset["TERC18DP7"] = "terc18dp7";
713
+ UnderlyingAsset["TERC18DP8"] = "terc18dp8";
714
+ UnderlyingAsset["TERC18DP9"] = "terc18dp9";
715
+ UnderlyingAsset["TERC18DP10"] = "terc18dp10";
716
+ UnderlyingAsset["TERC18DP11"] = "terc18dp11";
717
+ UnderlyingAsset["TERC18DP12"] = "terc18dp12";
718
+ UnderlyingAsset["TERC18DP13"] = "terc18dp13";
719
+ UnderlyingAsset["TERC18DP14"] = "terc18dp14";
720
+ UnderlyingAsset["TERC18DP15"] = "terc18dp15";
721
+ UnderlyingAsset["TGBP"] = "tgbp";
722
+ UnderlyingAsset["THKD"] = "thkd";
723
+ UnderlyingAsset["TIOX"] = "tiox";
724
+ UnderlyingAsset["TKNT"] = "tknt";
725
+ UnderlyingAsset["TKX"] = "tkx";
726
+ UnderlyingAsset["TLAB"] = "tlab";
727
+ UnderlyingAsset["TMATIC"] = "tmatic";
728
+ UnderlyingAsset["TNT"] = "tnt";
729
+ UnderlyingAsset["TOK"] = "tok";
730
+ UnderlyingAsset["TRAC"] = "trac";
731
+ UnderlyingAsset["TRAXX"] = "traxx";
732
+ UnderlyingAsset["TRIBE"] = "tribe";
733
+ UnderlyingAsset["TRL"] = "trl";
734
+ UnderlyingAsset["TRST"] = "trst";
735
+ UnderlyingAsset["TRU"] = "tru";
736
+ UnderlyingAsset["TRYB"] = "tryb";
737
+ UnderlyingAsset["TRYX"] = "tryx";
738
+ UnderlyingAsset["TUSD"] = "tusd";
739
+ UnderlyingAsset["TXL"] = "txl";
740
+ UnderlyingAsset["UAIR"] = "uair";
741
+ UnderlyingAsset["UCO"] = "uco";
742
+ UnderlyingAsset["UKG"] = "ukg";
743
+ UnderlyingAsset["UMA"] = "uma";
744
+ UnderlyingAsset["UMEE"] = "umee";
745
+ UnderlyingAsset["UNB"] = "unb";
746
+ UnderlyingAsset["UNI"] = "uni";
747
+ UnderlyingAsset["UP"] = "up";
748
+ UnderlyingAsset["UPBTC"] = "upbtc";
749
+ UnderlyingAsset["UPP"] = "upp";
750
+ UnderlyingAsset["UPT"] = "upt";
751
+ UnderlyingAsset["UPUSD"] = "upusd";
752
+ UnderlyingAsset["UQC"] = "uqc";
753
+ UnderlyingAsset["URHD"] = "urhd";
754
+ UnderlyingAsset["USDC"] = "usdc";
755
+ // Also available on EOS
756
+ UnderlyingAsset["USDT"] = "usdt";
757
+ UnderlyingAsset["USDX"] = "usdx";
758
+ UnderlyingAsset["USG"] = "usg";
759
+ UnderlyingAsset["USPX"] = "uspx";
760
+ UnderlyingAsset["UST"] = "ust";
761
+ UnderlyingAsset["USX"] = "usx";
762
+ UnderlyingAsset["UTK"] = "utk";
763
+ UnderlyingAsset["UTK1"] = "utk1";
764
+ UnderlyingAsset["VALOR"] = "valor";
765
+ UnderlyingAsset["VDX"] = "vdx";
766
+ UnderlyingAsset["VEGA"] = "vega";
767
+ UnderlyingAsset["VISR"] = "visr";
768
+ UnderlyingAsset["VRGX"] = "vrgx";
769
+ UnderlyingAsset["VXC"] = "vxc";
770
+ UnderlyingAsset["VSP"] = "vsp";
771
+ UnderlyingAsset["WAFL"] = "wafl";
772
+ UnderlyingAsset["WAX"] = "wax";
773
+ UnderlyingAsset["WABI"] = "wabi";
774
+ UnderlyingAsset["WOO"] = "woo";
775
+ UnderlyingAsset["WTK"] = "wtk";
776
+ UnderlyingAsset["WBTC"] = "wbtc";
777
+ UnderlyingAsset["WCFG"] = "wcfg";
778
+ UnderlyingAsset["WEC"] = "wec";
779
+ UnderlyingAsset["WET"] = "wet";
780
+ UnderlyingAsset["WETH"] = "weth";
781
+ UnderlyingAsset["WHALE"] = "whale";
782
+ UnderlyingAsset["WHT"] = "wht";
783
+ UnderlyingAsset["WILD"] = "wild";
784
+ UnderlyingAsset["WNXM"] = "wnxm";
785
+ UnderlyingAsset["WLUNA"] = "wluna";
786
+ UnderlyingAsset["WLXT"] = "wlxt";
787
+ UnderlyingAsset["WSTETH"] = "wsteth";
788
+ UnderlyingAsset["WPX"] = "wpx";
789
+ UnderlyingAsset["WTC"] = "wtc";
790
+ UnderlyingAsset["WXRP"] = "wxrp";
791
+ UnderlyingAsset["WXRPV0"] = "wxrpv0";
792
+ UnderlyingAsset["WXT"] = "wxt";
793
+ UnderlyingAsset["XAUD"] = "xaud";
794
+ UnderlyingAsset["XBGOLD"] = "xbgold";
795
+ UnderlyingAsset["XCD"] = "xcd";
796
+ UnderlyingAsset["XEX"] = "xex";
797
+ UnderlyingAsset["XRL"] = "xrl";
798
+ UnderlyingAsset["XSGD"] = "xsgd";
799
+ UnderlyingAsset["XSUSHI"] = "xsushi";
800
+ UnderlyingAsset["XTP"] = "xtp";
801
+ UnderlyingAsset["YFDAI"] = "yfdai";
802
+ UnderlyingAsset["YFI"] = "yfi";
803
+ UnderlyingAsset["YFII"] = "yfii";
804
+ UnderlyingAsset["YGG"] = "ygg";
805
+ UnderlyingAsset["YLD"] = "yld";
806
+ UnderlyingAsset["YNG"] = "yng";
807
+ UnderlyingAsset["YSEY"] = "ysey";
808
+ UnderlyingAsset["ZARX"] = "zarx";
809
+ UnderlyingAsset["ZCO"] = "zco";
810
+ UnderlyingAsset["ZIL"] = "zil";
811
+ UnderlyingAsset["ZIX"] = "zix";
812
+ UnderlyingAsset["ZLW"] = "zlw";
813
+ UnderlyingAsset["ZMT"] = "zmt";
814
+ UnderlyingAsset["ZOOM"] = "zoom";
815
+ UnderlyingAsset["ZRX"] = "zrx";
816
+ UnderlyingAsset["ZUSD"] = "zusd";
817
+ UnderlyingAsset["xlm:BST-GADDFE4R72YUP2AOEL67OHZN3GJQYPC3VE734N2XFMEGRR2L32CZ3XYZ"] = "xlm:BST-GADDFE4R72YUP2AOEL67OHZN3GJQYPC3VE734N2XFMEGRR2L32CZ3XYZ";
818
+ UnderlyingAsset["xlm:VELO-GDM4RQUQQUVSKQA7S6EM7XBZP3FCGH4Q7CL6TABQ7B2BEJ5ERARM2M5M"] = "xlm:VELO-GDM4RQUQQUVSKQA7S6EM7XBZP3FCGH4Q7CL6TABQ7B2BEJ5ERARM2M5M";
819
+ UnderlyingAsset["xlm:SLT-GCKA6K5PCQ6PNF5RQBF7PQDJWRHO6UOGFMRLK3DYHDOI244V47XKQ4GP"] = "xlm:SLT-GCKA6K5PCQ6PNF5RQBF7PQDJWRHO6UOGFMRLK3DYHDOI244V47XKQ4GP";
820
+ UnderlyingAsset["xlm:USD-GDUKMGUGDZQK6YHYA5Z6AY2G4XDSZPSZ3SW5UN3ARVMO6QSRDWP5YLEX"] = "xlm:USD-GDUKMGUGDZQK6YHYA5Z6AY2G4XDSZPSZ3SW5UN3ARVMO6QSRDWP5YLEX";
821
+ UnderlyingAsset["xlm:ETH-GBVOL67TMUQBGL4TZYNMY3ZQ5WGQYFPFD5VJRWXR72VA33VFNL225PL5"] = "xlm:ETH-GBVOL67TMUQBGL4TZYNMY3ZQ5WGQYFPFD5VJRWXR72VA33VFNL225PL5";
822
+ UnderlyingAsset["xlm:WXT-GASBLVHS5FOABSDNW5SPPH3QRJYXY5JHA2AOA2QHH2FJLZBRXSG4SWXT"] = "xlm:WXT-GASBLVHS5FOABSDNW5SPPH3QRJYXY5JHA2AOA2QHH2FJLZBRXSG4SWXT";
823
+ UnderlyingAsset["xlm:USDC-GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN"] = "xlm:USDC-GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN";
824
+ UnderlyingAsset["xlm:SIX-GDMS6EECOH6MBMCP3FYRYEVRBIV3TQGLOFQIPVAITBRJUMTI6V7A2X6Z"] = "xlm:SIX-GDMS6EECOH6MBMCP3FYRYEVRBIV3TQGLOFQIPVAITBRJUMTI6V7A2X6Z";
825
+ UnderlyingAsset["xlm:BRLT-GCHQ3F2BF5P74DMDNOOGHT5DUCKC773AW5DTOFINC26W4KGYFPYDPRSO"] = "xlm:BRLT-GCHQ3F2BF5P74DMDNOOGHT5DUCKC773AW5DTOFINC26W4KGYFPYDPRSO";
826
+ UnderlyingAsset["xlm:ARST-GCSAZVWXZKWS4XS223M5F54H2B6XPIIXZZGP7KEAIU6YSL5HDRGCI3DG"] = "xlm:ARST-GCSAZVWXZKWS4XS223M5F54H2B6XPIIXZZGP7KEAIU6YSL5HDRGCI3DG";
827
+ UnderlyingAsset["xlm:AQUA-GBNZILSTVQZ4R7IKQDGHYGY2QXL5QOFJYQMXPKWRRM5PAV7Y4M67AQUA"] = "xlm:AQUA-GBNZILSTVQZ4R7IKQDGHYGY2QXL5QOFJYQMXPKWRRM5PAV7Y4M67AQUA";
828
+ // Algorand mainnet tokens
829
+ UnderlyingAsset["algo:USDC-31566704"] = "algo:USDC-31566704";
830
+ UnderlyingAsset["algo:USDt-312769"] = "algo:USDt-312769";
831
+ UnderlyingAsset["algo:MCAU-6547014"] = "algo:MCAU-6547014";
832
+ UnderlyingAsset["algo:VCAD-438505559"] = "algo:VCAD-438505559";
833
+ // Kovan-only ERC20 tokens
834
+ UnderlyingAsset["TEST"] = "test";
835
+ UnderlyingAsset["SCHZ"] = "schz";
836
+ UnderlyingAsset["CAT"] = "cat";
837
+ // Stellar testnet tokens
838
+ UnderlyingAsset["txlm:BST-GBQTIOS3XGHB7LVYGBKQVJGCZ3R4JL5E4CBSWJ5ALIJUHBKS6263644L"] = "txlm:BST-GBQTIOS3XGHB7LVYGBKQVJGCZ3R4JL5E4CBSWJ5ALIJUHBKS6263644L";
839
+ UnderlyingAsset["txlm:TST-GBQTIOS3XGHB7LVYGBKQVJGCZ3R4JL5E4CBSWJ5ALIJUHBKS6263644L"] = "txlm:TST-GBQTIOS3XGHB7LVYGBKQVJGCZ3R4JL5E4CBSWJ5ALIJUHBKS6263644L";
840
+ // Algorand testnet tokens
841
+ UnderlyingAsset["talgo:USON-16026728"] = "talgo:USON-16026728";
842
+ UnderlyingAsset["talgo:SPRW-16026732"] = "talgo:SPRW-16026732";
843
+ UnderlyingAsset["talgo:KAL-16026733"] = "talgo:KAL-16026733";
844
+ UnderlyingAsset["talgo:USDC-10458941"] = "talgo:USDC-10458941";
845
+ UnderlyingAsset["talgo:USDt-180447"] = "talgo:USDt-180447";
846
+ // EOS tokens
847
+ UnderlyingAsset["CHEX"] = "chex";
848
+ UnderlyingAsset["IQ"] = "iq";
849
+ UnderlyingAsset["EOS_BOX"] = "eos:box";
850
+ // Avax Token ERC-20
851
+ UnderlyingAsset["avaxc:qi"] = "avaxc:qi";
852
+ UnderlyingAsset["avaxc:xava"] = "avaxc:xava";
853
+ UnderlyingAsset["avaxc:klo"] = "avaxc:klo";
854
+ UnderlyingAsset["avaxc:joe"] = "avaxc:joe";
855
+ UnderlyingAsset["avaxc:png"] = "avaxc:png";
856
+ UnderlyingAsset["avaxc:usdt"] = "avaxc:usdt";
857
+ UnderlyingAsset["avaxc:usdc"] = "avaxc:usdc";
858
+ UnderlyingAsset["avaxc:link"] = "avaxc:link";
859
+ // BSC Token BEP-20
860
+ UnderlyingAsset["bsc:busd"] = "bsc:busd";
861
+ UnderlyingAsset["tbsc:busd"] = "tbsc:busd";
862
+ // Polygon testnet tokens
863
+ UnderlyingAsset["tpolygon:derc20"] = "tpolygon:derc20";
864
+ UnderlyingAsset["tpolygon:link"] = "tpolygon:link";
865
+ UnderlyingAsset["ERC721"] = "erc721";
866
+ UnderlyingAsset["ERC1155"] = "erc1155";
867
+ // Cardano Token
868
+ UnderlyingAsset["adaTestnetToken"] = "temporary-placeholder";
869
+ })(UnderlyingAsset = exports.UnderlyingAsset || (exports.UnderlyingAsset = {}));
870
+ /**
871
+ * This is the curve BitGo signs against with the user, backup and BitGo key.
872
+ */
873
+ var KeyCurve;
874
+ (function (KeyCurve) {
875
+ KeyCurve["Secp256k1"] = "secp256k1";
876
+ KeyCurve["Ed25519"] = "ed25519";
877
+ KeyCurve["BLS"] = "bls";
878
+ })(KeyCurve = exports.KeyCurve || (exports.KeyCurve = {}));
879
+ class BaseCoin {
880
+ constructor(options) {
881
+ this.validateOptions(options);
882
+ this.fullName = options.fullName;
883
+ this.name = options.name;
884
+ this.alias = options.alias;
885
+ this.prefix = options.prefix;
886
+ this.suffix = options.suffix;
887
+ this.kind = options.kind;
888
+ this.family = options.network.family;
889
+ this.isToken = options.isToken;
890
+ this.features = options.features;
891
+ this.decimalPlaces = options.decimalPlaces;
892
+ this.asset = options.asset;
893
+ this.network = options.network;
894
+ this.primaryKeyCurve = options.primaryKeyCurve;
895
+ }
896
+ /**
897
+ * Ensures that the base coin constructor was passed a valid set of options.
898
+ *
899
+ * This includes checking that:
900
+ * - All coin features of the new instance are allowed by the coin class
901
+ * - No features required by the coin class are missing from the new instance
902
+ * @param {BaseCoinConstructorOptions} options
903
+ * @throws {DisallowedCoinFeatureError} if any of the coin features are not allowed for the coin class
904
+ * @throws {MissingRequiredCoinFeatureError} if any features required by the coin class are missing
905
+ */
906
+ validateOptions(options) {
907
+ const requiredFeatures = this.requiredFeatures();
908
+ const disallowedFeatures = this.disallowedFeatures();
909
+ const intersectionFeatures = Array.from(requiredFeatures).filter((feat) => disallowedFeatures.has(feat));
910
+ if (intersectionFeatures.length > 0) {
911
+ throw new errors_1.ConflictingCoinFeaturesError(options.name, intersectionFeatures);
912
+ }
913
+ for (const feature of options.features) {
914
+ if (disallowedFeatures.has(feature)) {
915
+ throw new errors_1.DisallowedCoinFeatureError(options.name, feature);
916
+ }
917
+ if (requiredFeatures.has(feature)) {
918
+ requiredFeatures.delete(feature);
919
+ }
920
+ }
921
+ if (requiredFeatures.size > 0) {
922
+ // some required features were missing
923
+ throw new errors_1.MissingRequiredCoinFeatureError(options.name, Array.from(requiredFeatures));
924
+ }
925
+ }
926
+ }
927
+ exports.BaseCoin = BaseCoin;
928
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFDQUFxSDtBQUdySCxJQUFZLFFBR1g7QUFIRCxXQUFZLFFBQVE7SUFDbEIsNkJBQWlCLENBQUE7SUFDakIseUJBQWEsQ0FBQTtBQUNmLENBQUMsRUFIVyxRQUFRLEdBQVIsZ0JBQVEsS0FBUixnQkFBUSxRQUduQjtBQUVEOzs7Ozs7O0dBT0c7QUFDSCxJQUFZLFVBcUNYO0FBckNELFdBQVksVUFBVTtJQUNwQix5QkFBVyxDQUFBO0lBQ1gsMkJBQWEsQ0FBQTtJQUNiLDZCQUFlLENBQUE7SUFDZiw2QkFBZSxDQUFBO0lBQ2YseUJBQVcsQ0FBQTtJQUNYLDJCQUFhLENBQUE7SUFDYix5QkFBVyxDQUFBO0lBQ1gseUJBQVcsQ0FBQTtJQUNYLHlCQUFXLENBQUE7SUFDWCx5QkFBVyxDQUFBO0lBQ1gsMkJBQWEsQ0FBQTtJQUNiLDJCQUFhLENBQUE7SUFDYiwyQkFBYSxDQUFBO0lBQ2IsMkJBQWEsQ0FBQTtJQUNiLHlCQUFXLENBQUE7SUFDWCx5QkFBVyxDQUFBO0lBQ1gsMkJBQWEsQ0FBQTtJQUNiLDJCQUFhLENBQUE7SUFDYix5QkFBVyxDQUFBO0lBQ1gseUJBQVcsQ0FBQTtJQUNYLDJCQUFhLENBQUE7SUFDYiwyQkFBYSxDQUFBO0lBQ2IseUJBQVcsQ0FBQTtJQUNYLGlDQUFtQixDQUFBO0lBQ25CLDJCQUFhLENBQUE7SUFDYix5QkFBVyxDQUFBO0lBQ1gsMkJBQWEsQ0FBQTtJQUNiLHlCQUFXLENBQUE7SUFDWCx5QkFBVyxDQUFBO0lBQ1gseUJBQVcsQ0FBQTtJQUNYLDJCQUFhLENBQUE7SUFDYix5QkFBVyxDQUFBO0lBQ1gseUJBQVcsQ0FBQTtJQUNYLHlCQUFXLENBQUE7SUFDWCx5QkFBVyxDQUFBO0lBQ1gseUJBQVcsQ0FBQTtBQUNiLENBQUMsRUFyQ1csVUFBVSxHQUFWLGtCQUFVLEtBQVYsa0JBQVUs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Q2IsZ0NBQWEsQ0FBQTtJQUNiLDhCQUFXLENBQUE7SUFDWCxrQ0FBZSxDQUFBO0lBQ2Ysb0NBQWlCLENBQUE7SUFDakIsOEJBQVcsQ0FBQTtJQUNYLGdDQUFhLENBQUE7SUFDYixrQ0FBZSxDQUFBO0lBQ2YsOEJBQVcsQ0FBQTtJQUNYLDhCQUFXLENBQUE7SUFDWCw4QkFBVyxDQUFBO0lBQ1gsZ0NBQWEsQ0FBQTtJQUNiLDhCQUFXLENBQUE7SUFDWCxnQ0FBYSxDQUFBO0lBQ2IsOEJBQVcsQ0FBQTtJQUNYLGtDQUFlLENBQUE7SUFDZixnQ0FBYSxDQUFBO0lBQ2IsOEJBQVcsQ0FBQTtJQUNYLGdDQUFhLENBQUE7SUFDYixnQ0FBYSxDQUFBO0lBQ2IsOEJBQVcsQ0FBQTtJQUNYLDhCQUFXLENBQUE7SUFDWCw4QkFBVyxDQUFBO0lBQ1gsOEJBQVcsQ0FBQTtJQUNYLDhCQUFXLENBQUE7SUFDWCxnQ0FBYSxDQUFBO0lBQ2IsZ0NBQWEsQ0FBQTtJQUNiLG9DQUFpQixDQUFBO0lBQ2pCLDhCQUFXLENBQUE7SUFDWCxnQ0FBYSxDQUFBO0lBQ2IsOEJBQVcsQ0FBQTtJQUNYLDhCQUFXLENBQUE7SUFDWCw4QkFBVyxDQUFBO0lBQ1gsOEJBQVcsQ0FBQTtJQUNYLGtDQUFlLENBQUE7SUFDZiw4QkFBVyxDQUFBO0lBQ1gsOEJBQVcsQ0FBQTtJQUNYLGdDQUFhLENBQUE7SUFDYixnQ0FBYSxDQUFBO0lBQ2IsOEJBQVcsQ0FBQTtJQUNYLDhCQUFXLENBQUE7SUFDWCw4QkFBVyxDQUFBO0lBQ1gsa0NBQWUsQ0FBQTtJQUNmLDhCQUFXLENBQUE7SUFDWCw4QkFBVyxDQUFBO0lBQ1gsa0NBQWUsQ0FBQTtJQUNmLGdDQUFhLENBQUE7SUFDYiw4QkFBVyxDQUFBO0lBQ1gsZ0NBQWEsQ0FBQTtJQUNiLDhCQUFXLENBQUE7SUFDWCxnQ0FBYSxDQUFBO0lBQ2IsOEJBQVcsQ0FBQTtJQUNYLGdDQUFhLENBQUE7SUFDYixnQ0FBYSxDQUFBO0lBQ2IsOEJBQVcsQ0FBQTtJQUNYLDhCQUFXLENBQUE7SUFDWCxnQ0FBYSxDQUFBO0lBQ2IsZ0NBQWEsQ0FBQTtJQUNiLDhCQUFXLENBQUE7SUFDWCxnQ0FBYSxDQUFBO0lBQ2IsZ0NBQWEsQ0FBQTtJQUNiLDhCQUFXLENBQUE7SUFDWCxvQ0FBaUIsQ0FBQTtJQUNqQixnQ0FBYSxDQUFBO0lBQ2IsOEJBQVcsQ0FBQTtJQUNYLDhCQUFXLENBQUE7SUFDWCw4QkFBVyxDQUFBO0lBQ1gsOEJBQVcsQ0FBQTtJQUNYLGdDQUFhLENBQUE7SUFDYixnQ0FBYSxDQUFBO0lBQ2IsZ0NBQWEsQ0FBQTtJQUNiLGtDQUFlLENBQUE7SUFDZixnQ0FBYSxDQUFBO0lBQ2IsZ0NBQWEsQ0FBQTtJQUNiLDhCQUFXLENBQUE7SUFDWCw4QkFBVyxDQUFBO0lBQ1gsOEJBQVcsQ0FBQTtJQUNYLGdDQUFhLENBQUE7SUFDYiw4QkFBVyxDQUFBO0lBQ1gsa0NBQWUsQ0FBQTtJQUNmLGdDQUFhLENBQUE7SUFDYiw4QkFBVyxDQUFBO0lBQ1gsOEJBQVcsQ0FBQTtJQUNYLGdDQUFhLENBQUE7SUFDYixrQ0FBZSxDQUFBO0lBQ2YsZ0NBQWEsQ0FBQTtJQUNiLDhCQUFXLENBQUE7SUFDWCxnQ0FBYSxDQUFBO0lBQ2IsZ0NBQWEsQ0FBQTtJQUNiLGtDQUFlLENBQUE7SUFDZixrQ0FBZSxDQUFBO0lBQ2YsOEJBQVcsQ0FBQTtJQUNYLDhCQUFXLENBQUE7SUFDWCxnQ0FBYSxDQUFBO0lBQ2Isa0NBQWUsQ0FBQTtJQUNmLDhCQUFXLENBQUE7SUFDWCw4QkFBVyxDQUFBO0lBQ1gsZ0NBQWEsQ0FBQTtJQUNiLG9DQUFpQixDQUFBO0lBQ2pCLHdDQUFxQixDQUFBO0lBQ3JCLDhCQUFXLENBQUE7SUFDWCxnQ0FBYSxDQUFBO0lBQ2IsOEJBQVcsQ0FBQTtJQUNYLGdDQUFhLENBQUE7SUFDYiw4QkFBVyxDQUFBO0lBQ1gsOEJBQVcsQ0FBQTtJQUNYLGdDQUFhLENBQUE7SUFDYiw4QkFBVyxDQUFBO0lBQ1gsOEJBQVcsQ0FBQTtJQUNYLGdDQUFhLENBQUE7SUFDYiw4QkFBVyxDQUFBO0lBQ1gsOEJBQVcsQ0FBQTtJQUNYLGdDQUFhLENBQUE7SUFDYixnQ0FBYSxDQUFBO0lBQ2IsOEJBQVcsQ0FBQTtJQUNYLGdDQUFhLENBQUE7SUFDYiw4QkFBVyxDQUFBO0lBQ1gsOEJBQVcsQ0FBQTtJQUNYLGdDQUFhLENBQUE7SUFDYixnQ0FBYSxDQUFBO0lBQ2IsZ0NBQWEsQ0FBQTtJQUNiLGdDQUFhLENBQUE7SUFDYixnQ0FBYSxDQUFBO0lBQ2IsOEJBQVcsQ0FBQTtJQUNYLGdDQUFhLENBQUE7SUFDYixrQ0FBZSxDQUFBO0lBQ2YsZ0NBQWEsQ0FBQTtJQUNiLG9DQUFpQixDQUFBO0lBQ2pCLDhCQUFXLENBQUE7SUFDWCw4QkFBVyxDQUFBO0lBQ1gsOEJBQVcsQ0FBQTtJQUNYLDhCQUFXLENBQUE7SUFDWCxnQ0FBYSxDQUFBO0lBQ2Isa0NBQWUsQ0FBQTtJQUNmLDhCQUFXLENBQUE7SUFDWCw4QkFBVyxDQUFBO0lBQ1gsOEJBQVcsQ0FBQTtJQUNYLDhCQUFXLENBQUE7SUFDWCw4QkFBVyxDQUFBO0lBQ1gsOEJBQVcsQ0FBQTtJQUNYLDhCQUFXLENBQUE7SUFDWCxrQ0FBZSxDQUFBO0lBQ2YsOEJBQVcsQ0FBQTtJQUNYLGdDQUFhLENBQUE7SUFDYixrQ0FBZSxDQUFBO0lBQ2YsZ0NBQWEsQ0FBQTtJQUNiLGdDQUFhLENBQUE7SUFDYiw4QkFBVyxDQUFBO0lBQ1gsOEJBQVcsQ0FBQTtJQUNYLDhCQUFXLENBQUE7SUFDWCw4QkFBVyxDQUFBO0lBQ1gsOEJBQVcsQ0FBQTtJQUNYLGdDQUFhLENBQUE7SUFDYiw4QkFBVyxDQUFBO0lBQ1gsOEJBQVcsQ0FBQTtJQUNYLDhCQUFXLENBQUE7SUFDWCxnQ0FBYSxDQUFBO0lBQ2Isa0NBQWUsQ0FBQTtJQUNmLDhCQUFXLENBQUE7SUFDWCw4QkFBVyxDQUFBO0lBQ1gsa0NBQWUsQ0FBQTtJQUNmLGtDQUFlLENBQUE7SUFDZiw4QkFBVyxDQUFBO0lBQ1gsOEJBQVcsQ0FBQTtJQUNYLDhCQUFXLENBQUE7SUFDWCw4QkFBVyxDQUFBO0lBQ1gsZ0NBQWEsQ0FBQTtJQUNiLDhCQUFXLENBQUE7SUFDWCw4QkFBVyxDQUFBO0lBQ1gsZ0NBQWEsQ0FBQTtJQUNiLGtDQUFlLENBQUE7SUFDZixnQ0FBYSxDQUFBO0lBQ2IsOEJBQVcsQ0FBQTtJQUNYLDhCQUFXLENBQUE7SUFDWCw4QkFBVyxDQUFBO0lBQ1gsOEJBQVcsQ0FBQTtJQUNYLGdDQUFhLENBQUE7SUFDYixzQ0FBbUIsQ0FBQTtJQUNuQixnQ0FBYSxDQUFBO0lBQ2IsOEJBQVcsQ0FBQTtJQUNYLDhCQUFXLENBQUE7SUFDWCw4QkFBVyxDQUFBO0lBQ1gsOEJBQVcsQ0FBQTtJQUNYLGdDQUFhLENBQUE7SUFDYiw4QkFBVyxDQUFBO0lBQ1gsZ0NBQWEsQ0FBQTtJQUNiLDhCQUFXLENBQUE7SUFDWCw4QkFBVyxDQUFBO0lBQ1gsNENBQXlCLENBQUE7SUFDekIsMENBQXVCLENBQUE7SUFDdkIsNENBQXlCLENBQUE7SUFDekIsMENBQXVCLENBQUE7SUFDdkIsNENBQXlCLENBQUE7SUFDekIsMENBQXVCLENBQUE7SUFDdkIsMENBQXVCLENBQUE7SUFDdkIsMENBQXVCLENBQUE7SUFDdkIsMENBQXVCLENBQUE7SUFDdkIsMENBQXVCLENBQUE7SUFDdkIsMENBQXVCLENBQUE7SUFDdkIsOEJBQVcsQ0FBQTtJQUNYLHdDQUFxQixDQUFBO0lBQ3JCLHdDQUFxQixDQUFBO0lBQ3JCLDBDQUF1QixDQUFBO0lBQ3ZCLGdDQUFhLENBQUE7SUFDYixrQ0FBZSxDQUFBO0lBQ2YsOEJBQVcsQ0FBQTtJQUNYLGdDQUFhLENBQUE7SUFDYiw4QkFBVyxDQUFBO0lBQ1gsOEJBQVcsQ0FBQTtJQUNYLGdDQUFhLENBQUE7SUFDYixnQ0FBYSxDQUFBO0lBQ2IsOEJBQVcsQ0FBQTtJQUNYLDhCQUFXLENBQUE7SUFDWCxnQ0FBYSxDQUFBO0lBQ2IsOEJBQVcsQ0FBQTtJQUNYLDhCQUFXLENBQUE7SUFDWCw4QkFBVyxDQUFBO0lBQ1gsNEJBQVMsQ0FBQTtJQUNULDhCQUFXLENBQUE7SUFDWCxnQ0FBYSxDQUFBO0lBQ2IsZ0NBQWEsQ0FBQTtJQUNiLDhCQUFXLENBQUE7SUFDWCxrQ0FBZSxDQUFBO0lBQ2YsNEJBQVMsQ0FBQTtJQUNULGtDQUFlLENBQUE7SUFDZixnQ0FBYSxDQUFBO0lBQ2IsZ0NBQWEsQ0FBQTtJQUNiLGdDQUFhLENBQUE7SUFDYiw4QkFBVyxDQUFBO0lBQ1gsa0NBQWUsQ0FBQTtJQUNmLGdDQUFhLENBQUE7SUFDYiw4QkFBVyxDQUFBO0lBQ1gsa0NBQWUsQ0FBQTtJQUNmLDhCQUFXLENBQUE7SUFDWCw4QkFBVyxDQUFBO0lBQ1gsa0NBQWUsQ0FBQTtJQUNmLGdDQUFhLENBQUE7SUFDYiw4QkFBVyxDQUFBO0lBQ1gsOEJBQVcsQ0FBQTtJQUNYLDhCQUFXLENBQUE7SUFDWCw4QkFBVyxDQUFBO0lBQ1gsOEJBQVcsQ0FBQTtJQUNYLDhCQUFXLENBQUE7SUFDWCw4QkFBVyxDQUFBO0lBQ1gsOEJBQVcsQ0FBQTtJQUNYLGdDQUFhLENBQUE7SUFDYixnQ0FBYSxDQUFBO0lBQ2IsZ0NBQWEsQ0FBQTtJQUNiLDhCQUFXLENBQUE7SUFDWCw4QkFBVyxDQUFBO0lBQ1gsZ0NBQWEsQ0FBQTtJQUNiLDhCQUFXLENBQUE7SUFDWCxnQ0FBYSxDQUFBO0lBQ2IsZ0NBQWEsQ0FBQTtJQUNiLDhCQUFXLENBQUE7SUFDWCxnQ0FBYSxDQUFBO0lBQ2IsOEJBQVcsQ0FBQTtJQUNYLGtDQUFlLENBQUE7SUFDZiw4QkFBVyxDQUFBO0lBQ1gsZ0NBQWEsQ0FBQTtJQUNiLDhCQUFXLENBQUE7SUFDWCw4QkFBVyxDQUFBO0lBQ1gsZ0NBQWEsQ0FBQTtJQUNiLGdDQUFhLENBQUE7SUFDYiw4QkFBVyxDQUFBO0lBQ1gsa0NBQWUsQ0FBQTtJQUNmLGdDQUFhLENBQUE7SUFDYixrQ0FBZSxDQUFBO0lBQ2YsOEJBQVcsQ0FBQTtJQUNYLGtDQUFlLENBQUE7SUFDZiw4QkFBVyxDQUFBO0lBQ1gsZ0NBQWEsQ0FBQTtJQUNiLGdDQUFhLENBQUE7SUFDYixrQ0FBZSxDQUFBO0lBQ2YsZ0NBQWEsQ0FBQTtJQUNiLGtDQUFlLENBQUE7SUFDZiw4QkFBVyxDQUFBO0lBQ1gsZ0NBQWEsQ0FBQTtJQUNiLDhCQUFXLENBQUE7SUFDWCw4QkFBVyxD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QU0sT0FBTyxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDdEMsSUFBSSxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ25DLE1BQU0sSUFBSSxtQ0FBMEIsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2FBQzdEO1lBRUQsSUFBSSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ2pDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNsQztTQUNGO1FBRUQsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFO1lBQzdCLHNDQUFzQztZQUN0QyxNQUFNLElBQUksd0NBQStCLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztTQUN2RjtJQUNILENBQUM7Q0FtQkY7QUF2R0QsNEJBdUdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uZmxpY3RpbmdDb2luRmVhdHVyZXNFcnJvciwgRGlzYWxsb3dlZENvaW5GZWF0dXJlRXJyb3IsIE1pc3NpbmdSZXF1aXJlZENvaW5GZWF0dXJlRXJyb3IgfSBmcm9tICcuL2Vycm9ycyc7XG5pbXBvcnQgeyBCYXNlTmV0d29yayB9IGZyb20gJy4vbmV0d29ya3MnO1xuXG5leHBvcnQgZW51bSBDb2luS2luZCB7XG4gIENSWVBUTyA9ICdjcnlwdG8nLFxuICBGSUFUID0gJ2ZpYXQnLFxufVxuXG4vKipcbiAqIFRoZSBjb2luIGZhbWlseSBsaW5rcyByZWxhdGVkIHZhcmlhbnRzIG9mIGEgc2luZ2xlIGNvaW4gdG9nZXRoZXIuXG4gKlxuICogVHlwaWNhbGx5LCBlYWNoIGNvaW4gd2lsbCBoYXZlIGEgdGVzdG5ldCBhbmQgbWFpbm5ldCB2YXJpYW50LFxuICogYW5kIHRoZXNlIHdpbGwgYm90aCBoYXZlIHRoZSBzYW1lIGNvaW4gZmFtaWx5LlxuICpcbiAqIEZvciBleGFtcGxlLCB0aGUgY29pbnMgYGJ0Y2AgYW5kIGB0YnRjYCBib3RoIGJlbG9uZyB0byB0aGUgc2FtZSBmYW1pbHksIGBidGNgLlxuICovXG5leHBvcnQgZW51bSBDb2luRmFtaWx5IHtcbiAgQURBID0gJ2FkYScsXG4gIEFMR08gPSAnYWxnbycsXG4gIEFWQVhDID0gJ2F2YXhjJyxcbiAgQVZBWFAgPSAnYXZheHAnLFxuICBCQ0ggPSAnYmNoJyxcbiAgQkNIQSA9ICdiY2hhJyxcbiAgQlNDID0gJ2JzYycsXG4gIEJTViA9ICdic3YnLFxuICBCVEMgPSAnYnRjJyxcbiAgQlRHID0gJ2J0ZycsXG4gIENFTE8gPSAnY2VsbycsXG4gIENTUFIgPSAnY3NwcicsXG4gIERBU0ggPSAnZGFzaCcsXG4gIERPR0UgPSAnZG9nZScsXG4gIERPVCA9ICdkb3QnLFxuICBFVEggPSAnZXRoJyxcbiAgRVRIMiA9ICdldGgyJyxcbiAgRVRIVyA9ICdldGh3JyxcbiAgRVRDID0gJ2V0YycsXG4gIEVPUyA9ICdlb3MnLFxuICBGSUFUID0gJ2ZpYXQnLFxuICBIQkFSID0gJ2hiYXInLFxuICBMVEMgPSAnbHRjJyxcbiAgUE9MWUdPTiA9ICdwb2x5Z29uJyxcbiAgTkVBUiA9ICduZWFyJyxcbiAgT0ZDID0gJ29mYycsXG4gIFJCVEMgPSAncmJ0YycsXG4gIFNPTCA9ICdzb2wnLFxuICBTVUkgPSAnc3VpJyxcbiAgU1RYID0gJ3N0eCcsXG4gIFNVU0QgPSAnc3VzZCcsXG4gIFRSWCA9ICd0cngnLFxuICBYTE0gPSAneGxtJyxcbiAgWFJQID0gJ3hycCcsXG4gIFhUWiA9ICd4dHonLFxuICBaRUMgPSAnemVjJyxcbn1cblxuLyoqXG4gKiBDb2luIGZlYXR1cmVzIGFyZSB5ZXMgb3Igbm8gcXVlc3Rpb25zIGFib3V0IHdoYXQgYSBjb2luIHJlcXVpcmVzIG9yIGlzIGNhcGFibGUgb2YuXG4gKlxuICogVGhpcyBhbGxvd3MgY29pbi1hZ25vc3RpYyBoYW5kbGluZyBvZiBjb2luLXNwZWNpZmljIGZlYXR1cmVzLiBUaGlzIGlzIGRlc2lnbmVkXG4gKiB0byByZXBsYWNlIGNoZWNraW5nIHRoZSBjb2luIG5hbWUgYWdhaW5zdCBhIHdoaXRlbGlzdCBvZiBzdXBwb3J0ZWQgY29pbnNcbiAqIGJlZm9yZSBleGVjdXRpbmcgc29tZSBjb2luLXNwZWNpZmljIGxvZ2ljLCBhbmQgaW5zdGVhZCBhbGxvd3Mgb25lIHRvIGNoZWNrIGlmIGFcbiAqIGNvaW4gc3VwcG9ydHMgdGhlIGNvaW4tc3BlY2lmaWMgZmVhdHVyZSB0aGF0IHRoZSBsb2dpYyBpbXBsZW1lbnRzLlxuICovXG5leHBvcnQgZW51bSBDb2luRmVhdHVyZSB7XG4gIC8qXG4gICAqIFRoZSB2YWx1ZWxlc3MgdHJhbnNmZXIgZmVhdHVyZSBpbmRpY2F0ZXMgdGhhdCBpdCBpcyB2YWxpZCB0byBzZW5kIGEgdHJhbnNhY3Rpb24gd2hpY2ggbW92ZXMgemVybyB1bml0cyBvZiB0aGUgY29pbi5cbiAgICpcbiAgICogQW4gZXhhbXBsZSBpcyBFdGhlcmV1bSwgd2hpY2ggdXNlcyB6ZXJvIHZhbHVlIHRyYW5zYWN0aW9ucyB0byB0cmlnZ2VyIGNvbnRyYWN0IGNhbGxzLlxuICAgKi9cbiAgVkFMVUVMRVNTX1RSQU5TRkVSID0gJ3ZhbHVlbGVzcy10cmFuc2ZlcicsXG4gIC8qXG4gICAqIFRyYW5zYWN0aW9uIGRhdGEgbWVhbnMgdGhlcmUgY2FuIGJlIGFyYml0cmFyeSBkYXRhIGVuY29kZWQgaW4gYSB0cmFuc2FjdGlvbi5cbiAgICpcbiAgICogRXRoZXJldW0gY29udHJhY3QgY2FsbCBkYXRhIGlzIGFuIGV4YW1wbGUuXG4gICAqL1xuICBUUkFOU0FDVElPTl9EQVRBID0gJ3RyYW5zYWN0aW9uLWRhdGEnLFxuICAvKlxuICAgKiBTb21lIGNvaW5zIGhhdmUgYSBoaWdoZXIgcHJlY2lzaW9uIHJhbmdlIHRoYW4gSUVFRSA3NTQgZG91Ymxlcywgd2hpY2ggYXJlIHVzZWQgdG8gcmVwcmVzZW50IG51bWJlcnMgaW4gamF2YXNjcmlwdC5cbiAgICpcbiAgICogRm9yIHRoZXNlIGNvaW5zLCB3ZSBtdXN0IHVzZSBhbiBhcmJpdHJhcnkgcHJlY2lzaW9uIGFyaXRobWV0aWMgbGlicmFyeSwgYW5kIHRoaXMgZmVhdHVyZSBpbmRpY2F0ZXMgdGhpcyByZXF1aXJlbWVudC5cbiAgICovXG4gIFJFUVVJUkVTX0JJR19OVU1CRVIgPSAncmVxdWlyZXMtYmlnLW51bWJlcicsXG4gIC8qXG4gICAqIFJNRyByZXF1aXJlcyBhbGwgd2FsbGV0cyB0byBoYXZlIGEgYmFja3VwIGtleSBoZWxkIGJ5IGEgQml0R28gYXBwcm92ZWQgS2V5IFJlY292ZXJ5IFNlcnZpY2UgKEtSUylcbiAgICovXG4gIFJFUVVJUkVTX0tSU19CQUNLVVBfS0VZID0gJ3JlcXVpcmVzLWtycy1iYWNrdXAta2V5JyxcbiAgLypcbiAgICogRm9yIGN1c3RvbWVycyB3aGljaCBhcmUgbm90IG9uIGEgcG9zdHBhaWQgY29udHJhY3QsIHdlIGFkZCBhbiBleHRyYSBvdXRwdXQgdG8gdHJhbnNhY3Rpb25zIHdoaWNoIHBheXMgQml0R28gYSBmZWUuXG4gICAqXG4gICAqIFRoaXMgZmVlIGlzIGtub3duIGFzIHRoZSBcInBheS1hcy15b3UtZ28gZmVlXCIsIG9yIGp1c3QgXCJwYXlnb1wiIGZvciBzaG9ydC5cbiAgICpcbiAgICogU29tZSBjb2lucyBhcmUgdW5hYmxlIHRvIGNyZWF0ZSB0cmFuc2FjdGlvbnMgd2l0aCBtb3JlIHRoYW4gb25lIG91dHB1dCwgc28gcGF5Z28gb3V0cHV0cyBhcmUgbm90IHBvc3NpYmxlIGZvciB0aGVzZSBjb2lucy5cbiAgICovXG4gIFBBWUdPID0gJ3BheWdvJyxcbiAgLypcbiAgICogRG9lcyB0aGlzIGNvaW4gYWxpZ24gd2l0aCB0aGUgdW5zcGVudCBtb2RlbD9cbiAgICpcbiAgICogVGhlc2UgYXJlIHR5cGljYWxseSBCaXRjb2luIGFuZCBmb3JrcyBvZiBpdCwgc3VjaCBhcyBMaXRlY29pbiBhbmQgQml0Y29pbiBDYXNoLlxuICAgKi9cbiAgVU5TUEVOVF9NT0RFTCA9ICd1bnNwZW50LW1vZGVsJyxcbiAgLypcbiAgICogRG9lcyB0aGlzIGNvaW4gYWxpZ24gd2l0aCB0aGUgYWNjb3VudCBtb2RlbD9cbiAgICpcbiAgICogRXhhbXBsZXMgb2YgdGhpcyBjb2luIHR5cGUgYXJlIEV0aGVyZXVtLCBYUlAsIGFuZCBTdGVsbGFyXG4gICAqL1xuICBBQ0NPVU5UX01PREVMID0gJ2FjY291bnQtbW9kZWwnLFxuICAvKlxuICAgKiBEb2VzIHRoaXMgY29pbiBzdXBwb3J0IGNoaWxkLXBheXMtZm9yLXBhcmVudCB0cmFuc2FjdGlvbnM/XG4gICAqXG4gICAqIFRoZXNlIGFyZSBzcGVjaWFsIHR5cGVzIG9mIHRyYW5zYWN0aW9ucyB3aGljaCBjYW4gYWNjZWxlcmF0ZSB0aGUgY29uZmlybWF0aW9uIHRpbWVcbiAgICogb2YgYW5vdGhlciB0cmFuc2FjdGlvbiB3aGljaCBpcyBzdHVjayBpbiB0aGUgbWVtcG9vbCBkdWUgdG8gbG93IGZlZXMuXG4gICAqXG4gICAqIFRoaXMgaXMgb25seSBwb3NzaWJsZSBmb3IgY29pbnMgd2hpY2ggZm9sbG93IHRoZSB1bnNwZW50IG1vZGVsIChVVFhPIGNvaW5zKS5cbiAgICovXG4gIENISUxEX1BBWVNfRk9SX1BBUkVOVCA9ICdjcGZwJyxcbiAgLypcbiAgICogRG9lcyB0aGlzIGNvaW4gc3VwcG9ydCB0b2tlbnM/IFRoZXNlIGFyZSBkaXN0aW5jdCBhc3NldHMgZnJvbSB0aGUgdW5kZXJseWluZyBjb2luLCBidXQgcnVuIG9uIHRoZSBzYW1lIG5ldHdvcmsuXG4gICAqXG4gICAqIEZvciBleGFtcGxlLCBFdGhlcmV1bSdzIEVSQyAyMCB0b2tlbiBzdGFuZGFyZCBtZWFucyB0aGF0IGl0IHN1cHBvcnRzIHRva2Vucywgc28gaXQgc2hhbGwgaGF2ZSB0aGlzIGZlYXR1cmUuXG4gICAqL1xuICBTVVBQT1JUU19UT0tFTlMgPSAnc3VwcG9ydHMtdG9rZW5zJyxcbiAgLypcbiAgICogQXJlIGZlZXMgZm9yIHRyYW5zYWN0aW9ucyBvZiB0aGlzIGNvaW4gcGFpZCBmb3IgYnkgdGhlIEVudGVycHJpc2UgKGVnLCBFbnRlcnByaXNlIGdhcyB0YW5rKT9cbiAgICovXG4gIEVOVEVSUFJJU0VfUEFZU19GRUVTID0gJ2VudGVycHJpc2UtcGF5cy1mZWVzJyxcbiAgLypcbiAgICogVGhpcyBjb2luIHJlcXVpcmVzIHRoYXQgYWNjb3VudHMga2VlcCBhIG1pbmltdW0gYmFsYW5jZSBhcyByZXNlcnZlXG4gICAqL1xuICBSRVFVSVJFU19SRVNFUlZFID0gJ3JlcXVpcmVzLXJlc2VydmUnLFxuICAvKlxuICAgKiBUaGlzIGNvaW4gc3VwcG9ydHMgY3VzdG9kaWFsIHdhbGxldCB0eXBlc1xuICAgKi9cbiAgQ1VTVE9EWSA9ICdjdXN0b2R5JyxcbiAgLypcbiAgVGhpcyBjb2luIHVzZXMgVFNTIGZvciBrZXkgY3JlYXRpb24gYW5kIHNpZ25pbmdcbiAgICovXG4gIFRTUyA9ICd0c3MnLFxuICAvKlxuICAgKiBUaGlzIGNvaW4gc3VwcG9ydHMgc3Rha2luZ1xuICAgKi9cbiAgU1RBS0lORyA9ICdzdGFraW5nJyxcbn1cblxuLyoqXG4gKiBTb21lIGNvaW5zIGFyZSByZXByZXNlbnRhdGlvbnMgb2YgYW5vdGhlciB1bmRlcmx5aW5nIGFzc2V0IGNsYXNzLiBBbiBleGFtcGxlXG4gKiBpcyBXcmFwcGVkIEJpdGNvaW4sIHdoaWNoIHJlcHJlc2VudHMgQml0Y29pbiBvbiB0aGUgRXRoZXJldW0gYmxvY2tjaGFpbi5cbiAqXG4gKiBGb3IgdGhlc2UgY29pbnMsIHRoZSBgVW5kZXJseWluZ0Fzc2V0YCBwcm92aWRlcyBhIGxpbmsgdG8gdGhlIGFjdHVhbFxuICogYXNzZXQgZm9yIHdoaWNoIHRoZSBjb2luIGlzIGEgdW5pdCBvZiBhY2NvdW50LlxuICovXG5leHBvcnQgZW51bSBVbmRlcmx5aW5nQXNzZXQge1xuICBBREEgPSAnYWRhJyxcbiAgQUxHTyA9ICdhbGdvJyxcbiAgQVBFID0gJ2FwZScsXG4gIEFQSTMgPSAnYXBpMycsXG4gIEFWQVhDID0gJ2F2YXhjJyxcbiAgQVZBWFAgPSAnYXZheHAnLFxuICBBWEwgPSAnQVhMJyxcbiAgQkNIID0gJ2JjaCcsXG4gIEJDSEEgPSAnYmNoYScsXG4gIEJTQyA9ICdic2MnLFxuICBCU1YgPSAnYnN2JyxcbiAgQlRDID0gJ2J0YycsXG4gIEJURyA9ICdidGcnLFxuICBEQVNIID0gJ2Rhc2gnLFxuICBET1QgPSAnZG90JyxcbiAgQ0VMTyA9ICdjZWxvJywgLy8gQ2VsbyBtYWluIGNvaW5cbiAgQ1NQUiA9ICdjc3ByJyxcbiAgRVRIID0gJ2V0aCcsXG4gIEVUSDIgPSAnZXRoMicsXG4gIEVUSFcgPSAnZXRodycsXG4gIEVUQyA9ICdldGMnLFxuICBFT1MgPSAnZW9zJyxcbiAgRVJEID0gJ2VyZCcsXG4gIEVVUiA9ICdldXInLFxuICBFVVJPQyA9ICdldXJvYycsXG4gIEdCUCA9ICdnYnAnLFxuICBHVEMgPSAnZ3RjJyxcbiAgR1RFVEggPSAnZ3RldGgnLFxuICBIQkFSID0gJ2hiYXInLCAvLyBIZWRlcmEgbWFpbiBjb2luXG4gIExUQyA9ICdsdGMnLFxuICBORUFSID0gJ25lYXInLFxuICBQT0xZR09OID0gJ3BvbHlnb24nLFxuICBSQlRDID0gJ3JidGMnLCAvLyBSU0sgbWFpbiBjb2luXG4gIFNPTCA9ICdzb2wnLFxuICBTVUkgPSAnc3VpJyxcbiAgU1RYID0gJ3N0eCcsXG4gIFRSWCA9ICd0cngnLFxuICBVU0QgPSAndXNkJyxcbiAgWExNID0gJ3hsbScsXG4gIFhSUCA9ICd4cnAnLFxuICBYVFogPSAneHR6JyxcbiAgWkVDID0gJ3plYycsXG5cbiAgLy8gRVJDIDIwIHRva2Vuc1xuICAnMUlOQ0gnID0gJzFpbmNoJyxcbiAgJzFVUCcgPSAnMXVwJyxcbiAgQUFWRSA9ICdhYXZlJyxcbiAgQUJUID0gJ2FidCcsXG4gIEFDRSA9ICdhY2UnLFxuICBBQ1hUID0gJ2FjeHQnLFxuICBBQ0ggPSAnYWNoJyxcbiAgQUUgPSAnYWUnLFxuICBBRVJHTyA9ICdhZXJnbycsXG4gIEFFUkdPMSA9ICdhZXJnbzEnLFxuICBBR1dEID0gJ2Fnd2QnLFxuICBBSU9OID0gJ2Fpb24nLFxuICBBTEkgPSAnYWxpJyxcbiAgQUxQSEEgPSAnYWxwaGEnLFxuICBBTU4gPSAnYW1uJyxcbiAgQU1PID0gJ2FtbycsXG4gIEFNUCA9ICdhbXAnLFxuICBBTU9OID0gJ2Ftb24nLFxuICBBTVBYID0gJ2FtcHgnLFxuICBBTkEgPSAnYW5hJyxcbiAgQU5UID0gJ2FudCcsXG4gIEFOVFYyID0gJ2FudHYyJyxcbiAgQU9BID0gJ2FvYScsXG4gIEFQUEMgPSAnYXBwYycsXG4gIEFRVCA9ICdhcXQnLFxuICBBUkNUID0gJ2FyY3QnLFxuICBBUkNYID0gJ2FyY3gnLFxuICBBU1QgPSAnYXN0JyxcbiAgQVRSSSA9ICdhdHJpJyxcbiAgQVVESU8gPSAnYXVkaW8nLFxuICBBVURYID0gJ2F1ZHgnLFxuICBBVVNUID0gJ2F1c3QnLFxuICBBS1JPID0gJ2Frcm8nLFxuICBBWFBSID0gJ2F4cHInLFxuICBBWFMgPSAnYXhzJyxcbiAgQVhTVjIgPSAnYXhzdjInLFxuICBCQURHRVIgPSAnYmFkZ2VyJyxcbiAgQkFMID0gJ2JhbCcsXG4gIEJBTkQgPSAnYmFuZCcsXG4gIEJBU0lDID0gJ2Jhc2ljJyxcbiAgQkFUID0gJ2JhdCcsXG4gIEJBWCA9ICdiYXgnLFxuICBCQlggPSAnYmJ4JyxcbiAgQkNBUCA9ICdiY2FwJyxcbiAgQkNDID0gJ2JjYycsXG4gIEJDSU8gPSAnYmNpbycsXG4gIEJFRCA9ICdiZWQnLFxuICBCRVBSTyA9ICdiZXBybycsXG4gIEJJQ08gPSAnYmljbycsXG4gIEJJRCA9ICdiaWQnLFxuICBCSURMID0gJ2JpZGwnLFxuICBCSVJEID0gJ2JpcmQnLFxuICBCSVQgPSAnYml0JyxcbiAgQk5CID0gJ2JuYicsXG4gIEJOSyA9ICdibmsnLFxuICBCTkwgPSAnYm5sJyxcbiAgQk5UID0gJ2JudCcsXG4gIEJOVFkgPSAnYm50eScsXG4gIEJPTkQgPSAnYm9uZCcsXG4gIEJMT0NLUyA9ICdibG9ja3MnLFxuICBCT1ggPSAnYm94JyxcbiAgQk9CQSA9ICdib2JhJyxcbiAgQlJEID0gJ2JyZCcsXG4gIEJSWiA9ICdicnonLFxuICBCU1QgPSAnYnN0JyxcbiAgQlNYID0gJ2JzeCcsXG4gIEJUUlNUID0gJ2J0cnN0JyxcbiAgQlRUID0gJ2J0dCcsXG4gIEJUVSA9ICdidHUnLFxuICBCVVJQID0gJ2J1cnAnLFxuICBCVVNEID0gJ2J1c2QnLFxuICBCVVkgPSAnYnV5JyxcbiAgQlBUID0gJ2JwdCcsXG4gIEJYWCA9ICdieHgnLFxuICBCWFhWMSA9ICdieHh2MScsXG4gIEJaWiA9ICdienonLFxuICBDOFAgPSAnYzhwJyxcbiAgQ0FDWFQgPSAnY2FjeHQnLFxuICBDQURYID0gJ2NhZHgnLFxuICBDQUcgPSAnY2FnJyxcbiAgQ0JBVCA9ICdjYmF0JyxcbiAgQ0JDID0gJ2NiYycsXG4gIENCUkwgPSAnY2JybCcsXG4gIENDVCA9ICdjY3QnLFxuICBDREFHID0gJ2NkYWcnLFxuICBDREFJID0gJ2NkYWknLFxuICBDRFQgPSAnY2R0JyxcbiAgQ0VMID0gJ2NlbCcsXG4gIENFTFIgPSAnY2VscicsXG4gIENFVEggPSAnY2V0aCcsXG4gIENITyA9ICdjaG8nLFxuICBDSEZYID0gJ2NoZngnLFxuICBDSFNCID0gJ2Noc2InLFxuICBDSFogPSAnY2h6JyxcbiAgQ0lYMTAwID0gJ2NpeDEwMCcsXG4gIENMSVEgPSAnY2xpcScsXG4gIENMTiA9ICdjbG4nLFxuICBDTFQgPSAnY2x0JyxcbiAgQ0xWID0gJ2NsdicsXG4gIENORyA9ICdjbmcnLFxuICBDTllYID0gJ2NueXgnLFxuICBDT01QID0gJ2NvbXAnLFxuICBDT1RJID0gJ2NvdGknLFxuICBDT1ZFUiA9ICdjb3ZlcicsXG4gIENQQVkgPSAnY3BheScsXG4gIENQTFQgPSAnY3BsdCcsXG4gIENRVCA9ICdjcXQnLFxuICBDUVggPSAnY3F4JyxcbiAgQ1JBID0gJ2NyYScsXG4gIENSRFQgPSAnY3JkdCcsXG4gIENSRSA9ICdjcmUnLFxuICBDUkVBTSA9ICdjcmVhbScsXG4gIENSRVAgPSAnY3JlcCcsXG4gIENSTyA9ICdjcm8nLFxuICBDUlYgPSAnY3J2JyxcbiAgQ1JQVCA9ICdjcnB0JyxcbiAgQ1JQVDEgPSAnY3JwdDEnLFxuICBDU0xWID0gJ2NzbHYnLFxuICBDU1AgPSAnY3NwJyxcbiAgQ1RTSSA9ICdjdHNpJyxcbiAgQ1VTRCA9ICdjdXNkJyxcbiAgQ1VTREMgPSAnY3VzZGMnLFxuICBDV0JUQyA9ICdjd2J0YycsXG4gIENWQyA9ICdjdmMnLFxuICBDVlggPSAnY3Z4JyxcbiAgQ1pSWCA9ICdjenJ4JyxcbiAgREFDWEkgPSAnZGFjeGknLFxuICBEQUkgPSAnZGFpJyxcbiAgREFPID0gJ2RhbycsXG4gIERBVEEgPSAnZGF0YScsXG4gIERBVEFWMiA9ICdkYXRhdjInLFxuICBEQVRBRUNPTiA9ICdkYXRhZWNvbicsXG4gIERFQyA9ICdkZWMnLFxuICBERU5UID0gJ2RlbnQnLFxuICBERVAgPSAnZGVwJyxcbiAgREVYQSA9ICdkZXhhJyxcbiAgREZEID0gJ2RmZCcsXG4gIERGSSA9ICdkZmknLFxuICBER0NMID0gJ2RnY2wnLFxuICBER0QgPSAnZGdkJyxcbiAgREdYID0gJ2RneCcsXG4gIERJR0cgPSAnZGlnZycsXG4gIERJQSA9ICdkaWEnLFxuICBETVQgPSAnZG10JyxcbiAgRE9ETyA9ICdkb2RvJyxcbiAgRE9HRSA9ICdkb2dlJyxcbiAgRFBJID0gJ2RwaScsXG4gIERSUFUgPSAnZHJwdScsXG4gIERSViA9ICdkcnYnLFxuICBEVUMgPSAnZHVjJyxcbiAgRFgxVSA9ICdkeDF1JyxcbiAgRFhHVCA9ICdkeGd0JyxcbiAgRFhQVCA9ICdkeHB0JyxcbiAgRFhTVCA9ICdkeHN0JyxcbiAgRFlEWCA9ICdkeWR4JyxcbiAgRFlOID0gJ2R5bicsXG4gIEVBU1kgPSAnZWFzeScsXG4gIEVCVENRID0gJ2VidGNxJyxcbiAgRUNIVCA9ICdlY2h0JyxcbiAgRURJU09OID0gJ2VkaXNvbicsXG4gIEVETiA9ICdlZG4nLFxuICBFRFIgPSAnZWRyJyxcbiAgRUZJID0gJ2VmaScsXG4gIEVHTCA9ICdlZ2wnLFxuICBFR0xEID0gJ2VnbGQnLFxuICBFR09MRCA9ICdlZ29sZCcsXG4gIEVMRiA9ICdlbGYnLFxuICBFTVggPSAnZW14JyxcbiAgRU5HID0gJ2VuZycsXG4gIEVOSiA9ICdlbmonLFxuICBFTlMgPSAnZW5zJyxcbiAgRVFPID0gJ2VxbycsXG4gIEVUQSA9ICdldGEnLFxuICBFVEhPUyA9ICdldGhvcycsXG4gIEVUViA9ICdldHYnLFxuICBFVVJTID0gJ2V1cnMnLFxuICBFVVJTVCA9ICdldXJzdCcsXG4gIEVVUlQgPSAnZXVydCcsXG4gIEVVUlggPSAnZXVyeCcsXG4gIEVVWCA9ICdldXgnLFxuICBFVlggPSAnZXZ4JyxcbiAgRVhFID0gJ2V4ZScsXG4gIEZFSSA9ICdmZWknLFxuICBGRVQgPSAnZmV0JyxcbiAgRkVUMSA9ICdmZXQxJyxcbiAgRkRUID0gJ2ZkdCcsXG4gIEZGMSA9ICdmZjEnLFxuICBGRlQgPSAnZmZ0JyxcbiAgRklSRSA9ICdmaXJlJyxcbiAgRklYRUQgPSAnZml4ZWQnLFxuICBGTFkgPSAnZmx5JyxcbiAgRk1GID0gJ2ZtZicsXG4gIEZPUlRIID0gJ2ZvcnRoJyxcbiAgRlJPTlQgPSAnZnJvbnQnLFxuICBGVE0gPSAnZnRtJyxcbiAgRlRUID0gJ2Z0dCcsXG4gIEZVTiA9ICdmdW4nLFxuICBGV0IgPSAnZndiJyxcbiAgRlhSVCA9ICdmeHJ0JyxcbiAgRlhTID0gJ2Z4cycsXG4gIEdBTCA9ICdnYWwnLFxuICBHQUxBID0gJ2dhbGEnLFxuICBHQU1NQSA9ICdnYW1tYScsXG4gIEdCUFggPSAnZ2JweCcsXG4gIEdEVCA9ICdnZHQnLFxuICBHRUMgPSAnZ2VjJyxcbiAgR0VOID0gJ2dlbicsXG4gIEdGSSA9ICdnZmknLFxuICBHSFVCID0gJ2dodWInLFxuICBHSUdEUk9QID0gJ2dpZ2Ryb3AnLFxuICBHTERYID0gJ2dsZHgnLFxuICBHTE0gPSAnZ2xtJyxcbiAgR01UID0gJ2dtdCcsXG4gIEdOTyA9ICdnbm8nLFxuICBHTlQgPSAnZ250JyxcbiAgR09EUyA9ICdnb2RzJyxcbiAgR09HID0gJ2dvZycsXG4gIEdPTEQgPSAnZ29sZCcsXG4gIEdPVCA9ICdnb3QnLFxuICBHUlQgPSAnZ3J0JyxcbiAgR1RBQVZFMThEUCA9ICdndGFhdmUxOGRwJyxcbiAgR1RCQVQxOERQID0gJ2d0YmF0MThkcCcsXG4gIEdUQ09NUDE4RFAgPSAnZ3Rjb21wMThkcCcsXG4gIEdUR1JUMThEUCA9ICdndGdydDE4ZHAnLFxuICBHVExJTksxOERQID0gJ2d0bGluazE4ZHAnLFxuICBHVE1LUjE4RFAgPSAnZ3Rta3IxOGRwJyxcbiAgR1RTTlgxOERQID0gJ2d0c254MThkcCcsXG4gIEdUVU5JMThEUCA9ICdndHVuaTE4ZHAnLFxuICBHVFVTRFQ2RFAgPSAnZ3R1c2R0NmRwJyxcbiAgR1RZRkkxOERQID0gJ2d0eWZpMThkcCcsXG4gIEdUV0JUQzhEUCA9ICdndHdidGM4ZHAnLFxuICBHVE8gPSAnZ3RvJyxcbiAgR1RFUkMyRFAgPSAnZ3RlcmMyZHAnLFxuICBHVEVSQzZEUCA9ICdndGVyYzZkcCcsXG4gIEdURVJDMThEUCA9ICdndGVyYzE4ZHAnLFxuICBHVVNEID0gJ2d1c2QnLFxuICBHVVNEVCA9ICdndXNkdCcsXG4gIEdYQyA9ICdneGMnLFxuICBHWUVOID0gJ2d5ZW4nLFxuICBIQ04gPSAnaGNuJyxcbiAgSERPID0gJ2hkbycsXG4gIEhFREcgPSAnaGVkZycsXG4gIEhLRFggPSAnaGtkeCcsXG4gIEhMQyA9ICdobGMnLFxuICBITVQgPSAnaG10JyxcbiAgSE9MRCA9ICdob2xkJyxcbiAgSE9UID0gJ2hvdCcsXG4gIEhRVCA9ICdocXQnLFxuICBIU1QgPSAnaHN0JyxcbiAgSFQgPSAnaHQnLFxuICBIVU0gPSAnaHVtJyxcbiAgSFVTRCA9ICdodXNkJyxcbiAgSFhSTyA9ICdoeHJvJyxcbiAgSFlCID0gJ2h5YicsXG4gIEhZRFJPID0gJ2h5ZHJvJyxcbiAgSTggPSAnaTgnLFxuICBJQ0VUSCA9ICdpY2V0aCcsXG4gIElERVggPSAnaWRleCcsXG4gIElEUkMgPSAnaWRyYycsXG4gIElEUlQgPSAnaWRydCcsXG4gIElNWCA9ICdpbXgnLFxuICBJTVhWMiA9ICdpbXh2MicsXG4gIElOQ1ggPSAnaW5jeCcsXG4gIElORCA9ICdpbmQnLFxuICBJTkRFWCA9ICdpbmRleCcsXG4gIElORiA9ICdpbmYnLFxuICBJTkogPSAnaW5qJyxcbiAgSU5KVjIgPSAnaW5qdjInLFxuICBJTlNUID0gJ2luc3QnLFxuICBJTlggPSAnaW54JyxcbiAgSVNGID0gJ2lzZicsXG4gIElTUiA9ICdpc3InLFxuICBJVk8gPSAnaXZvJyxcbiAgSVZZID0gJ2l2eScsXG4gIEpCQyA9ICdqYmMnLFxuICBKQ1IgPSAnamNyJyxcbiAgSkNHID0gJ2pjZycsXG4gIEpGSU4gPSAnamZpbicsXG4gIEpQWVggPSAnanB5eCcsXG4gIEtFRVAgPSAna2VlcCcsXG4gIEtFWSA9ICdrZXknLFxuICBLSU4gPSAna2luJyxcbiAgS0lSTyA9ICdraXJvJyxcbiAgS05DID0gJ2tuYycsXG4gIEtOQzIgPSAna25jMicsXG4gIEtPSU4gPSAna29pbicsXG4gIEtPWiA9ICdrb3onLFxuICBLUDNSID0gJ2twM3InLFxuICBLWkUgPSAna3plJyxcbiAgTEFZRVIgPSAnbGF5ZXInLFxuICBMQkEgPSAnbGJhJyxcbiAgTEVORCA9ICdsZW5kJyxcbiAgTEVPID0gJ2xlbycsXG4gIExHTyA9ICdsZ28nLFxuICBMSU5LID0gJ2xpbmsnLFxuICBMSU9OID0gJ2xpb24nLFxuICBMTkMgPSAnbG5jJyxcbiAgTE9PS1MgPSAnbG9va3MnLFxuICBMT09NID0gJ2xvb20nLFxuICBMT09NMSA9ICdsb29tMScsXG4gIExSQyA9ICdscmMnLFxuICBMUkNWMiA9ICdscmN2MicsXG4gIExZTiA9ICdseW4nLFxuICBNQU5BID0gJ21hbmEnLFxuICBNQVBTID0gJ21hcHMnLFxuICBNQVRJQyA9ICdtYXRpYycsXG4gIE1DQVUgPSAnbWNhdScsXG4gIE1DREFJID0gJ21jZGFpJyxcbiAgTUNPID0gJ21jbycsXG4gIE1DTzIgPSAnbWNvMicsXG4gIE1DUyA9ICdtY3MnLFxuICBNQ1ggPSAnbWN4JyxcbiAgTURGQyA9ICdtZGZjJyxcbiAgTURYID0gJ21keCcsXG4gIE1FRFggPSAnbWVkeCcsXG4gIE1FTUUgPSAnbWVtZScsXG4gIE1FVCA9ICdtZXQnLFxuICBNRVRBID0gJ21ldGEnLFxuICBNRkcgPSAnbWZnJyxcbiAgTUZQSCA9ICdtZnBoJyxcbiAgTUZUID0gJ21mdCcsXG4gIE1JTEtWMiA9ICdtaWxrdjInLFxuICBNSVIgPSAnbWlyJyxcbiAgTUlUSCA9ICdtaXRoJyxcbiAgTUlYID0gJ21peCcsXG4gIE1JWk4gPSAnbWl6bicsXG4gIE1LUiA9ICdta3InLFxuICBNTlMgPSAnbW5zJyxcbiAgTU5ERSA9ICdtbmRlJyxcbiAgTU9DID0gJ21vYycsXG4gIE1PRiA9ICdtb2YnLFxuICBNUEFZID0gJ21wYXknLFxuICBNUEwgPSAnbXBsJyxcbiAgTVRDTiA9ICdtdGNuJyxcbiAgTVRMID0gJ210bCcsXG4gIE1VU0QgPSAnbXVzZCcsXG4gIE1WTCA9ICdtdmwnLFxuICBNVkkgPSAnbXZpJyxcbiAgTVdUID0gJ213dCcsXG4gIE5BUyA9ICduYXMnLFxuICBOQ1QgPSAnbmN0JyxcbiAgTkRYID0gJ25keCcsXG4gIE5FVSA9ICduZXUnLFxuICBORVhPID0gJ25leG8nLFxuICBORlRYID0gJ25mdHgnLFxuICBOR05UID0gJ25nbnQnLFxuICBOSUFYID0gJ25pYXgnLFxuICBOTVIgPSAnbm1yJyxcbiAgTlBYUyA9ICducHhzJyxcbiAgTlMyRFJQID0gJ25zMmRycCcsXG4gIE5VID0gJ251JyxcbiAgTllNID0gJ255bScsXG4gIE5aRFggPSAnbnpkeCcsXG4gIE9DRUFOID0gJ29jZWFuJyxcbiAgT0NFQU5WMiA9ICdvY2VhbnYyJyxcbiAgT0dOID0gJ29nbicsXG4gIE9NID0gJ29tJyxcbiAgT0tCID0gJ29rYicsXG4gIE9NRyA9ICdvbWcnLFxuICBPTkwgPSAnb25sJyxcbiAgT1AgPSAnb3AnLFxuICBPUFQgPSAnb3B0JyxcbiAgT1JBSSA9ICdvcmFpJyxcbiAgT1JCUyA9ICdvcmJzJyxcbiAgT1JDQSA9ICdvcmNhJyxcbiAgT1hUID0gJ294dCcsXG4gIE9YWSA9ICdveHknLFxuICBPSE0gPSAnb2htJyxcbiAgU0QgPSAnc2QnLFxuICBTT0hNID0gJ3NvaG0nLFxuICBHT0hNID0gJ2dvaG0nLFxuICBQQVIgPSAncGFyJyxcbiAgUEFTUyA9ICdwYXNzJyxcbiAgUEFVID0gJ3BhdScsXG4gIFBBWCA9ICdwYXgnLFxuICBQQVhHID0gJ3BheGcnLFxuICBQQVkgPSAncGF5JyxcbiAgUEJDSCA9ICdwYmNoJyxcbiAgUERBVEEgPSAncGRhdGEnLFxuICBQQlRDID0gJ3BidGMnLFxuICBQRUcgPSAncGVnJyxcbiAgUEVSUCA9ICdwZXJwJyxcbiAgUEVUSCA9ICdwZXRoJyxcbiAgUEhOWCA9ICdwaG54JyxcbiAgUElFID0gJ3BpZScsXG4gIFBMQyA9ICdwbGMnLFxuICBQRkNUID0gJ3BmY3QnLFxuICBQTEFORVQgPSAncGxhbmV0JyxcbiAgUExOWCA9ICdwbG54JyxcbiAgUExYID0gJ3BseCcsXG4gIFBNQSA9ICdwbWEnLFxuICBQT0xZID0gJ3BvbHknLFxuICBQT1dSID0gJ3Bvd3InLFxuICBQUFQgPSAncHB0JyxcbiAgUFJEWCA9ICdwcmR4JyxcbiAgUFJJTlRTID0gJ3ByaW50cycsXG4gIFBSTyA9ICdwcm8nLFxuICBQUlRTID0gJ3BydHMnLFxuICBQU1RBS0UgPSAncHN0YWtlJyxcbiAgUFVORElYID0gJ3B1bmRpeCcsXG4gIFBVU0QgPSAncHVzZCcsXG4gIFBYUCA9ICdweHAnLFxuICBQWVIgPSAncHlyJyxcbiAgUUFTSCA9ICdxYXNoJyxcbiAgUUNBRCA9ICdxY2FkJyxcbiAgUVVJQ0sgPSAncXVpY2snLFxuICBRRFQgPSAncWR0JyxcbiAgUUtDID0gJ3FrYycsXG4gIFFOVCA9ICdxbnQnLFxuICBRUkRPID0gJ3FyZG8nLFxuICBRUkwgPSAncXJsJyxcbiAgUVNQID0gJ3FzcCcsXG4gIFFWVCA9ICdxdnQnLFxuICBSQUQgPSAncmFkJyxcbiAgUkNPSU4gPSAncmNvaW4nLFxuICBSQVJFID0gJ3JhcmUnLFxuICBSQVJJID0gJ3JhcmknLFxuICBSQVkgPSAncmF5JyxcbiAgUkJZID0gJ3JieScsXG4gIFJETiA9ICdyZG4nLFxuICBSRUIgPSAncmViJyxcbiAgUkVCTCA9ICdyZWJsJyxcbiAgUkVFRiA9ICdyZWVmJyxcbiAgUkVQID0gJ3JlcCcsXG4gIFJFUFYyID0gJ3JlcHYyJyxcbiAgJ1JFVEgtSCcgPSAncmV0aC1oJyxcbiAgUkZSID0gJ3JmcicsXG4gIFJGVUVMID0gJ3JmdWVsJyxcbiAgUkdUID0gJ3JndCcsXG4gIFJJRiA9ICdyaWYnLFxuICBSSU5HWCA9ICdyaW5neCcsXG4gIFJMQyA9ICdybGMnLFxuICBSTFkgPSAncmx5JyxcbiAgUk5EUiA9ICdybmRyJyxcbiAgUk9PSyA9ICdyb29rJyxcbiAgUk9OID0gJ3JvbicsXG4gIFJPTkMgPSAncm9uYycsXG4gIFJPT0JFRSA9ICdyb29iZWUnLFxuICBSU1IgPSAncnNyJyxcbiAgUlVCWCA9ICdydWJ4JyxcbiAgUlVFREFUSyA9ICdydWVkYXRrJyxcbiAgU0FMVCA9ICdzYWx0JyxcbiAgU0FORCA9ICdzYW5kJyxcbiAgU0FTSElNSSA9ICdzYXNoaW1pJyxcbiAgU0dBID0gJ3NnYScsXG4gIFNHRFggPSAnc2dkeCcsXG4gIFNHUiA9ICdzZ3InLFxuICBTSEsgPSAnc2hrJyxcbiAgU0hPUFggPSAnc2hvcHgnLFxuICBTSElCID0gJ3NoaWInLFxuICBTSFIgPSAnc2hyJyxcbiAgU0lIID0gJ3NpaCcsXG4gIFNJTFYgPSAnc2lsdicsXG4gIFNJUEhFUiA9ICdzaXBoZXInLFxuICBTSVMgPSAnc2lzJyxcbiAgU0tBTEUgPSAnc2thbGUnLFxuICBTTEFCID0gJ3NsYWInLFxuICBTTE5EID0gJ3NsbmQnLFxuICBTTE9UID0gJ3Nsb3QnLFxuICBTTFAgPSAnc2xwJyxcbiAgU0xWWCA9ICdzbHZ4JyxcbiAgU05DID0gJ3NuYycsXG4gIFNOT1YgPSAnc25vdicsXG4gIFNOVCA9ICdzbnQnLFxuICBTTlggPSAnc254JyxcbiAgU09DID0gJ3NvYycsXG4gIFNQRUxMID0gJ3NwZWxsJyxcbiAgU1BPID0gJ3NwbycsXG4gIFNPTFZFID0gJ3NvbHZlJyxcbiAgU1JOVCA9ICdzcm50JyxcbiAgU1JNID0gJ3NybScsXG4gIFNUQlUgPSAnc3RidScsXG4gIFNUQyA9ICdzdGMnLFxuICBTVENWMiA9ICdzdGN2MicsXG4gICdTRVRILUgnID0gJ3NldGgtaCcsXG4gIFNUS0FBVkUgPSAnc3RrYWF2ZScsXG4gIFNUT1JFID0gJ3N0b3JlJyxcbiAgU1RPUkogPSAnc3RvcmonLFxuICBTVE1YID0gJ3N0bXgnLFxuICBTVE9STSA9ICdzdG9ybScsXG4gIFNUWkVOID0gJ3N0emVuJyxcbiAgU1VQRVIgPSAnc3VwZXInLFxuICBTVVNISSA9ICdzdXNoaScsXG4gIFNRVUlHID0gJ3NxdWlnJyxcbiAgU1hQID0gJ3N4cCcsXG4gIFRIUkVTSE9MRCA9ICd0aHJlc2hvbGQnLFxuICBUQVVEID0gJ3RhdWQnLFxuICBUQlRDMSA9ICd0YnRjMScsXG4gIFRDQUQgPSAndGNhZCcsXG4gIFRDTyA9ICd0Y28nLFxuICBURUwgPSAndGVsJyxcbiAgVEVOID0gJ3RlbicsXG4gIFRFTlggPSAndGVueCcsXG4gIFRFUkMgPSAndGVyYycsXG4gIFRFVVJPQyA9ICd0ZXVyb2MnLFxuICBURVJDMkRQID0gJ3RlcmMyZHAnLFxuICBURVJDNkRQID0gJ3RlcmM2ZHAnLFxuICBURVJDMThEUCA9ICd0ZXJjMThEUCcsXG4gIFRFUkMyMCA9ICd0ZXJjMjAnLFxuICBURVJDMkRQMSA9ICd0ZXJjMmRwMScsXG4gIFRFUkMyRFAyID0gJ3RlcmMyZHAyJyxcbiAgVEVSQzJEUDMgPSAndGVyYzJkcDMnLFxuICBURVJDMkRQNCA9ICd0ZXJjMmRwNCcsXG4gIFRFUkMyRFA1ID0gJ3RlcmMyZHA1JyxcbiAgVEVSQzZEUDEgPSAndGVyYzZkcDEnLFxuICBURVJDNkRQMiA9ICd0ZXJjNmRwMicsXG4gIFRFUkM2RFAzID0gJ3RlcmM2ZHAzJyxcbiAgVEVSQzZEUDQgPSAndGVyYzZkcDQnLFxuICBURVJDNkRQNSA9ICd0ZXJjNmRwNScsXG4gIFRFUkMxOERQMSA9ICd0ZXJjMThkcDEnLFxuICBURVJDMThEUDIgPSAndGVyYzE4ZHAyJyxcbiAgVEVSQzE4RFAzID0gJ3RlcmMxOGRwMycsXG4gIFRFUkMxOERQNCA9ICd0ZXJjMThkcDQnLFxuICBURVJDMThEUDUgPSAndGVyYzE4ZHA1JyxcbiAgVEVSQzE4RFA2ID0gJ3RlcmMxOGRwNicsXG4gIFRFUkMxOERQNyA9ICd0ZXJjMThkcDcnLFxuICBURVJDMThEUDggPSAndGVyYzE4ZHA4JyxcbiAgVEVSQzE4RFA5ID0gJ3RlcmMxOGRwOScsXG4gIFRFUkMxOERQMTAgPSAndGVyYzE4ZHAxMCcsXG4gIFRFUkMxOERQMTEgPSAndGVyYzE4ZHAxMScsXG4gIFRFUkMxOERQMTIgPSAndGVyYzE4ZHAxMicsXG4gIFRFUkMxOERQMTMgPSAndGVyYzE4ZHAxMycsXG4gIFRFUkMxOERQMTQgPSAndGVyYzE4ZHAxNCcsXG4gIFRFUkMxOERQMTUgPSAndGVyYzE4ZHAxNScsXG4gIFRHQlAgPSAndGdicCcsXG4gIFRIS0QgPSAndGhrZCcsXG4gIFRJT1ggPSAndGlveCcsXG4gIFRLTlQgPSAndGtudCcsXG4gIFRLWCA9ICd0a3gnLFxuICBUTEFCID0gJ3RsYWInLFxuICBUTUFUSUMgPSAndG1hdGljJyxcbiAgVE5UID0gJ3RudCcsXG4gIFRPSyA9ICd0b2snLFxuICBUUkFDID0gJ3RyYWMnLFxuICBUUkFYWCA9ICd0cmF4eCcsXG4gIFRSSUJFID0gJ3RyaWJlJyxcbiAgVFJMID0gJ3RybCcsXG4gIFRSU1QgPSAndHJzdCcsXG4gIFRSVSA9ICd0cnUnLFxuICBUUllCID0gJ3RyeWInLFxuICBUUllYID0gJ3RyeXgnLFxuICBUVVNEID0gJ3R1c2QnLFxuICBUWEwgPSAndHhsJyxcbiAgVUFJUiA9ICd1YWlyJyxcbiAgVUNPID0gJ3VjbycsXG4gIFVLRyA9ICd1a2cnLFxuICBVTUEgPSAndW1hJyxcbiAgVU1FRSA9ICd1bWVlJyxcbiAgVU5CID0gJ3VuYicsXG4gIFVOSSA9ICd1bmknLFxuICBVUCA9ICd1cCcsXG4gIFVQQlRDID0gJ3VwYnRjJyxcbiAgVVBQID0gJ3VwcCcsXG4gIFVQVCA9ICd1cHQnLFxuICBVUFVTRCA9ICd1cHVzZCcsXG4gIFVRQyA9ICd1cWMnLFxuICBVUkhEID0gJ3VyaGQnLFxuICBVU0RDID0gJ3VzZGMnLFxuICAvLyBBbHNvIGF2YWlsYWJsZSBvbiBFT1NcbiAgVVNEVCA9ICd1c2R0JyxcbiAgVVNEWCA9ICd1c2R4JyxcbiAgVVNHID0gJ3VzZycsXG4gIFVTUFggPSAndXNweCcsXG4gIFVTVCA9ICd1c3QnLFxuICBVU1ggPSAndXN4JyxcbiAgVVRLID0gJ3V0aycsXG4gIFVUSzEgPSAndXRrMScsXG4gIFZBTE9SID0gJ3ZhbG9yJyxcbiAgVkRYID0gJ3ZkeCcsXG4gIFZFR0EgPSAndmVnYScsXG4gIFZJU1IgPSAndmlzcicsXG4gIFZSR1ggPSAndnJneCcsXG4gIFZYQyA9ICd2eGMnLFxuICBWU1AgPSAndnNwJyxcbiAgV0FGTCA9ICd3YWZsJyxcbiAgV0FYID0gJ3dheCcsXG4gIFdBQkkgPSAnd2FiaScsXG4gIFdPTyA9ICd3b28nLFxuICBXVEsgPSAnd3RrJyxcbiAgV0JUQyA9ICd3YnRjJyxcbiAgV0NGRyA9ICd3Y2ZnJyxcbiAgV0VDID0gJ3dlYycsXG4gIFdFVCA9ICd3ZXQnLFxuICBXRVRIID0gJ3dldGgnLFxuICBXSEFMRSA9ICd3aGFsZScsXG4gIFdIVCA9ICd3aHQnLFxuICBXSUxEID0gJ3dpbGQnLFxuICBXTlhNID0gJ3dueG0nLFxuICBXTFVOQSA9ICd3bHVuYScsXG4gIFdMWFQgPSAnd2x4dCcsXG4gIFdTVEVUSCA9ICd3c3RldGgnLFxuICBXUFggPSAnd3B4JyxcbiAgV1RDID0gJ3d0YycsXG4gIFdYUlAgPSAnd3hycCcsXG4gIFdYUlBWMCA9ICd3eHJwdjAnLFxuICBXWFQgPSAnd3h0JyxcbiAgWEFVRCA9ICd4YXVkJyxcbiAgWEJHT0xEID0gJ3hiZ29sZCcsXG4gIFhDRCA9ICd4Y2QnLFxuICBYRVggPSAneGV4JyxcbiAgWFJMID0gJ3hybCcsXG4gIFhTR0QgPSAneHNnZCcsXG4gIFhTVVNISSA9ICd4c3VzaGknLFxuICBYVFAgPSAneHRwJyxcbiAgWUZEQUkgPSAneWZkYWknLFxuICBZRkkgPSAneWZpJyxcbiAgWUZJSSA9ICd5ZmlpJyxcbiAgWUdHID0gJ3lnZycsXG4gIFlMRCA9ICd5bGQnLFxuICBZTkcgPSAneW5nJyxcbiAgWVNFWSA9ICd5c2V5JyxcbiAgWkFSWCA9ICd6YXJ4JyxcbiAgWkNPID0gJ3pjbycsXG4gIFpJTCA9ICd6aWwnLFxuICBaSVggPSAneml4JyxcbiAgWkxXID0gJ3psdycsXG4gIFpNVCA9ICd6bXQnLFxuICBaT09NID0gJ3pvb20nLFxuICBaUlggPSAnenJ4JyxcbiAgWlVTRCA9ICd6dXNkJyxcbiAgJ3hsbTpCU1QtR0FEREZFNFI3MllVUDJBT0VMNjdPSFpOM0dKUVlQQzNWRTczNE4yWEZNRUdSUjJMMzJDWjNYWVonID0gJ3hsbTpCU1QtR0FEREZFNFI3MllVUDJBT0VMNjdPSFpOM0dKUVlQQzNWRTczNE4yWEZNRUdSUjJMMzJDWjNYWVonLFxuICAneGxtOlZFTE8tR0RNNFJRVVFRVVZTS1FBN1M2RU03WEJaUDNGQ0dINFE3Q0w2VEFCUTdCMkJFSjVFUkFSTTJNNU0nID0gJ3hsbTpWRUxPLUdETTRSUVVRUVVWU0tRQTdTNkVNN1hCWlAzRkNHSDRRN0NMNlRBQlE3QjJCRUo1RVJBUk0yTTVNJyxcbiAgJ3hsbTpTTFQtR0NLQTZLNVBDUTZQTkY1UlFCRjdQUURKV1JITzZVT0dGTVJMSzNEWUhET0kyNDRWNDdYS1E0R1AnID0gJ3hsbTpTTFQtR0NLQTZLNVBDUTZQTkY1UlFCRjdQUURKV1JITzZVT0dGTVJMSzNEWUhET0kyNDRWNDdYS1E0R1AnLFxuICAneGxtOlVTRC1HRFVLTUdVR0RaUUs2WUhZQTVaNkFZMkc0WERTWlBTWjNTVzVVTjNBUlZNTzZRU1JEV1A1WUxFWCcgPSAneGxtOlVTRC1HRFVLTUdVR0RaUUs2WUhZQTVaNkFZMkc0WERTWlBTWjNTVzVVTjNBUlZNTzZRU1JEV1A1WUxFWCcsXG4gICd4bG06RVRILUdCVk9MNjdUTVVRQkdMNFRaWU5NWTNaUTVXR1FZRlBGRDVWSlJXWFI3MlZBMzNWRk5MMjI1UEw1JyA9ICd4bG06RVRILUdCVk9MNjdUTVVRQkdMNFRaWU5NWTNaUTVXR1FZRlBGRDVWSlJXWFI3MlZBMzNWRk5MMjI1UEw1JyxcbiAgJ3hsbTpXWFQtR0FTQkxWSFM1Rk9BQlNETlc1U1BQSDNRUkpZWFk1SkhBMkFPQTJRSEgyRkpMWkJSWFNHNFNXWFQnID0gJ3hsbTpXWFQtR0FTQkxWSFM1Rk9BQlNETlc1U1BQSDNRUkpZWFk1SkhBMkFPQTJRSEgyRkpMWkJSWFNHNFNXWFQnLFxuICAneGxtOlVTREMtR0E1WlNFSllCMzdKUkM1QVZDSUE1TU9QNFJIVE0zMzVYMktHWDNJSE9KQVBQNVJFMzRLNEtaVk4nID0gJ3hsbTpVU0RDLUdBNVpTRUpZQjM3SlJDNUFWQ0lBNU1PUDRSSFRNMzM1WDJLR1gzSUhPSkFQUDVSRTM0SzRLWlZOJyxcbiAgJ3hsbTpTSVgtR0RNUzZFRUNPSDZNQk1DUDNGWVJZRVZSQklWM1RRR0xPRlFJUFZBSVRCUkpVTVRJNlY3QTJYNlonID0gJ3hsbTpTSVgtR0RNUzZFRUNPSDZNQk1DUDNGWVJZRVZSQklWM1RRR0xPRlFJUFZBSVRCUkpVTVRJNlY3QTJYNlonLFxuICAneGxtOkJSTFQtR0NIUTNGMkJGNVA3NERNRE5PT0dIVDVEVUNLQzc3M0FXNURUT0ZJTkMyNlc0S0dZRlBZRFBSU08nID0gJ3hsbTpCUkxULUdDSFEzRjJCRjVQNzRETUROT09HSFQ1RFVDS0M3NzNBVzVEVE9GSU5DMjZXNEtHWUZQWURQUlNPJyxcbiAgJ3hsbTpBUlNULUdDU0FaVldYWktXUzRYUzIyM001RjU0SDJCNlhQSUlYWlpHUDdLRUFJVTZZU0w1SERSR0NJM0RHJyA9ICd4bG06QVJTVC1HQ1NBWlZXWFpLV1M0WFMyMjNNNUY1NEgyQjZYUElJWFpaR1A3S0VBSVU2WVNMNUhEUkdDSTNERycsXG4gICd4bG06QVFVQS1HQk5aSUxTVFZRWjRSN0lLUURHSFlHWTJRWEw1UU9GSllRTVhQS1dSUk01UEFWN1k0TTY3QVFVQScgPSAneGxtOkFRVUEtR0JOWklMU1RWUVo0UjdJS1FER0hZR1kyUVhMNVFPRkpZUU1YUEtXUlJNNVBBVjdZNE02N0FRVUEnLFxuXG4gIC8vIEFsZ29yYW5kIG1haW5uZXQgdG9rZW5zXG4gICdhbGdvOlVTREMtMzE1NjY3MDQnID0gJ2FsZ286VVNEQy0zMTU2NjcwNCcsXG4gICdhbGdvOlVTRHQtMzEyNzY5JyA9ICdhbGdvOlVTRHQtMzEyNzY5JyxcbiAgJ2FsZ286TUNBVS02NTQ3MDE0JyA9ICdhbGdvOk1DQVUtNjU0NzAxNCcsXG4gICdhbGdvOlZDQUQtNDM4NTA1NTU5JyA9ICdhbGdvOlZDQUQtNDM4NTA1NTU5JyxcblxuICAvLyBLb3Zhbi1vbmx5IEVSQzIwIHRva2Vuc1xuICBURVNUID0gJ3Rlc3QnLFxuICBTQ0haID0gJ3NjaHonLFxuICBDQVQgPSAnY2F0JyxcblxuICAvLyBTdGVsbGFyIHRlc3RuZXQgdG9rZW5zXG4gICd0eGxtOkJTVC1HQlFUSU9TM1hHSEI3TFZZR0JLUVZKR0NaM1I0Skw1RTRDQlNXSjVBTElKVUhCS1M2MjYzNjQ0TCcgPSAndHhsbTpCU1QtR0JRVElPUzNYR0hCN0xWWUdCS1FWSkdDWjNSNEpMNUU0Q0JTV0o1QUxJSlVIQktTNjI2MzY0NEwnLFxuICAndHhsbTpUU1QtR0JRVElPUzNYR0hCN0xWWUdCS1FWSkdDWjNSNEpMNUU0Q0JTV0o1QUxJSlVIQktTNjI2MzY0NEwnID0gJ3R4bG06VFNULUdCUVRJT1MzWEdIQjdMVllHQktRVkpHQ1ozUjRKTDVFNENCU1dKNUFMSUpVSEJLUzYyNjM2NDRMJyxcblxuICAvLyBBbGdvcmFuZCB0ZXN0bmV0IHRva2Vuc1xuICAndGFsZ286VVNPTi0xNjAyNjcyOCcgPSAndGFsZ286VVNPTi0xNjAyNjcyOCcsXG4gICd0YWxnbzpTUFJXLTE2MDI2NzMyJyA9ICd0YWxnbzpTUFJXLTE2MDI2NzMyJyxcbiAgJ3RhbGdvOktBTC0xNjAyNjczMycgPSAndGFsZ286S0FMLTE2MDI2NzMzJyxcbiAgJ3RhbGdvOlVTREMtMTA0NTg5NDEnID0gJ3RhbGdvOlVTREMtMTA0NTg5NDEnLFxuICAndGFsZ286VVNEdC0xODA0NDcnID0gJ3RhbGdvOlVTRHQtMTgwNDQ3JyxcblxuICAvLyBFT1MgdG9rZW5zXG4gIENIRVggPSAnY2hleCcsXG4gIElRID0gJ2lxJyxcbiAgRU9TX0JPWCA9ICdlb3M6Ym94JyxcblxuICAvLyBBdmF4IFRva2VuIEVSQy0yMFxuICAnYXZheGM6cWknID0gJ2F2YXhjOnFpJyxcbiAgJ2F2YXhjOnhhdmEnID0gJ2F2YXhjOnhhdmEnLFxuICAnYXZheGM6a2xvJyA9ICdhdmF4YzprbG8nLFxuICAnYXZheGM6am9lJyA9ICdhdmF4Yzpqb2UnLFxuICAnYXZheGM6cG5nJyA9ICdhdmF4YzpwbmcnLFxuICAnYXZheGM6dXNkdCcgPSAnYXZheGM6dXNkdCcsXG4gICdhdmF4Yzp1c2RjJyA9ICdhdmF4Yzp1c2RjJyxcbiAgJ2F2YXhjOmxpbmsnID0gJ2F2YXhjOmxpbmsnLFxuXG4gIC8vIEJTQyBUb2tlbiBCRVAtMjBcbiAgJ2JzYzpidXNkJyA9ICdic2M6YnVzZCcsXG4gICd0YnNjOmJ1c2QnID0gJ3Ric2M6YnVzZCcsXG5cbiAgLy8gUG9seWdvbiB0ZXN0bmV0IHRva2Vuc1xuICAndHBvbHlnb246ZGVyYzIwJyA9ICd0cG9seWdvbjpkZXJjMjAnLFxuICAndHBvbHlnb246bGluaycgPSAndHBvbHlnb246bGluaycsXG5cbiAgRVJDNzIxID0gJ2VyYzcyMScsXG4gIEVSQzExNTUgPSAnZXJjMTE1NScsXG5cbiAgLy8gQ2FyZGFubyBUb2tlblxuICBhZGFUZXN0bmV0VG9rZW4gPSAndGVtcG9yYXJ5LXBsYWNlaG9sZGVyJyxcbn1cblxuLyoqXG4gKiBUaGlzIGlzIHRoZSBjdXJ2ZSBCaXRHbyBzaWducyBhZ2FpbnN0IHdpdGggdGhlIHVzZXIsIGJhY2t1cCBhbmQgQml0R28ga2V5LlxuICovXG5leHBvcnQgZW51bSBLZXlDdXJ2ZSB7XG4gIFNlY3AyNTZrMSA9ICdzZWNwMjU2azEnLFxuICBFZDI1NTE5ID0gJ2VkMjU1MTknLFxuICBCTFMgPSAnYmxzJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYXNlQ29pbkNvbnN0cnVjdG9yT3B0aW9ucyB7XG4gIGZ1bGxOYW1lOiBzdHJpbmc7IC8vIGZ1bGwsIGh1bWFuIHJlYWRhYmxlIG5hbWUgb2YgdGhpcyBjb2luLiBFZywgXCJCaXRjb2luIENhc2hcIiBmb3IgYmNoXG4gIG5hbWU6IHN0cmluZzsgLy8gdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgY29pbiwgdXN1YWxseSB0aGUgbG93ZXJjYXNlIHRpY2tlciBvciBzeW1ib2wuIEVnLCBcImJ0Y1wiIGZvciBiaXRjb2luXG4gIGFsaWFzPzogc3RyaW5nOyAvLyBhbHRlcm5hdGl2ZSBuYW1lIHVzdWFsbHkgdXNlZCBkdXJpbmcgbmFtZSBtaWdyYXRpb25zXG4gIHByZWZpeD86IHN0cmluZztcbiAgc3VmZml4Pzogc3RyaW5nO1xuICBraW5kOiBDb2luS2luZDtcbiAgaXNUb2tlbjogYm9vbGVhbjtcbiAgZmVhdHVyZXM6IENvaW5GZWF0dXJlW107XG4gIGRlY2ltYWxQbGFjZXM6IG51bWJlcjtcbiAgYXNzZXQ6IFVuZGVybHlpbmdBc3NldDtcbiAgbmV0d29yazogQmFzZU5ldHdvcms7XG4gIHByaW1hcnlLZXlDdXJ2ZTogS2V5Q3VydmU7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlQ29pbiB7XG4gIC8qXG4gICAgRGlzcGxheSBwcm9wZXJ0aWVzXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZnVsbE5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHByZWZpeD86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHN1ZmZpeD86IHN0cmluZztcbiAgLypcbiAgICBQcm9wZXJ0eSB0byBoZWxwIGR1cmluZyBtaWdyYXRpb24gb2YgdG9rZW4gbmFtZXMuXG4gICAgSGVscHMgdG8gZmluZCBhIGNvaW4vdG9rZW4gd2l0aCBhIGRpZmZlcmVudCBuYW1lIHRoYW4gdGhlIGN1cnJlbnQgb25lXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYWxpYXM/OiBzdHJpbmc7XG4gIC8qXG4gICAgQ2xhc3NpZmljYXRpb24gcHJvcGVydGllc1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGtpbmQ6IENvaW5LaW5kO1xuICBwdWJsaWMgcmVhZG9ubHkgZmFtaWx5OiBDb2luRmFtaWx5O1xuICBwdWJsaWMgcmVhZG9ubHkgaXNUb2tlbjogYm9vbGVhbjtcbiAgLypcbiAgICBDb2luIEZlYXR1cmVzLiBUaGVzZSBhcmUgeWVzIG9yIG5vIHF1ZXN0aW9ucyBhYm91dCB3aGF0IHRoZSBjb2luIHN1cHBvcnRzIGFuZCBkb2VzIG5vdCBzdXBwb3J0LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGZlYXR1cmVzOiBDb2luRmVhdHVyZVtdO1xuICAvKlxuICAgIENvaW4gTmV0d29yay4gVGhpcyBpcyBhIGxpc3Qgb2YgcHJvcGVydGllcyB3aGljaCBhcmUgcmVsZXZhbnQgdG8gdGhlIHVuZGVybHlpbmcgbmV0d29yayBvbiB3aGljaCB0aGlzIGNvaW4gZXhpc3RzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG5ldHdvcms6IEJhc2VOZXR3b3JrO1xuICAvKlxuICAgIENvbnZlcnNpb24gcHJvcGVydGllc1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRlY2ltYWxQbGFjZXM6IG51bWJlcjtcbiAgcHVibGljIHJlYWRvbmx5IGFzc2V0OiBVbmRlcmx5aW5nQXNzZXQ7XG5cbiAgLyoqXG4gICAqIFRoZSBwcmltYXJ5IGVsbGlwdGljIGN1cnZlIEJpdEdvIHNpZ25zIGFuZCBnZW5lcmF0ZXMga2V5cyBhZ2FpbnN0LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHByaW1hcnlLZXlDdXJ2ZTogS2V5Q3VydmU7XG5cbiAgLyoqXG4gICAqIFNldCBvZiBmZWF0dXJlcyB3aGljaCBhcmUgcmVxdWlyZWQgYnkgYSBjb2luIHN1YmNsYXNzXG4gICAqIEByZXR1cm4ge1NldDxDb2luRmVhdHVyZT59XG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVxdWlyZWRGZWF0dXJlcygpOiBTZXQ8Q29pbkZlYXR1cmU+O1xuXG4gIC8qKlxuICAgKiBTZXQgb2YgZmVhdHVyZXMgd2hpY2ggYXJlIG5vdCB2YWxpZCBhbmQgYXJlIGRpc2FsbG93ZWQgYnkgYSBjb2luIHN1YmNsYXNzXG4gICAqIEByZXR1cm4ge1NldDxDb2luRmVhdHVyZT59XG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZGlzYWxsb3dlZEZlYXR1cmVzKCk6IFNldDxDb2luRmVhdHVyZT47XG5cbiAgLyoqXG4gICAqIEVuc3VyZXMgdGhhdCB0aGUgYmFzZSBjb2luIGNvbnN0cnVjdG9yIHdhcyBwYXNzZWQgYSB2YWxpZCBzZXQgb2Ygb3B0aW9ucy5cbiAgICpcbiAgICogVGhpcyBpbmNsdWRlcyBjaGVja2luZyB0aGF0OlxuICAgKiAtIEFsbCBjb2luIGZlYXR1cmVzIG9mIHRoZSBuZXcgaW5zdGFuY2UgYXJlIGFsbG93ZWQgYnkgdGhlIGNvaW4gY2xhc3NcbiAgICogLSBObyBmZWF0dXJlcyByZXF1aXJlZCBieSB0aGUgY29pbiBjbGFzcyBhcmUgbWlzc2luZyBmcm9tIHRoZSBuZXcgaW5zdGFuY2VcbiAgICogQHBhcmFtIHtCYXNlQ29pbkNvbnN0cnVjdG9yT3B0aW9uc30gb3B0aW9uc1xuICAgKiBAdGhyb3dzIHtEaXNhbGxvd2VkQ29pbkZlYXR1cmVFcnJvcn0gaWYgYW55IG9mIHRoZSBjb2luIGZlYXR1cmVzIGFyZSBub3QgYWxsb3dlZCBmb3IgdGhlIGNvaW4gY2xhc3NcbiAgICogQHRocm93cyB7TWlzc2luZ1JlcXVpcmVkQ29pbkZlYXR1cmVFcnJvcn0gaWYgYW55IGZlYXR1cmVzIHJlcXVpcmVkIGJ5IHRoZSBjb2luIGNsYXNzIGFyZSBtaXNzaW5nXG4gICAqL1xuICBwcml2YXRlIHZhbGlkYXRlT3B0aW9ucyhvcHRpb25zOiBCYXNlQ29pbkNvbnN0cnVjdG9yT3B0aW9ucykge1xuICAgIGNvbnN0IHJlcXVpcmVkRmVhdHVyZXMgPSB0aGlzLnJlcXVpcmVkRmVhdHVyZXMoKTtcbiAgICBjb25zdCBkaXNhbGxvd2VkRmVhdHVyZXMgPSB0aGlzLmRpc2FsbG93ZWRGZWF0dXJlcygpO1xuXG4gICAgY29uc3QgaW50ZXJzZWN0aW9uRmVhdHVyZXMgPSBBcnJheS5mcm9tKHJlcXVpcmVkRmVhdHVyZXMpLmZpbHRlcigoZmVhdCkgPT4gZGlzYWxsb3dlZEZlYXR1cmVzLmhhcyhmZWF0KSk7XG5cbiAgICBpZiAoaW50ZXJzZWN0aW9uRmVhdHVyZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IENvbmZsaWN0aW5nQ29pbkZlYXR1cmVzRXJyb3Iob3B0aW9ucy5uYW1lLCBpbnRlcnNlY3Rpb25GZWF0dXJlcyk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBmZWF0dXJlIG9mIG9wdGlvbnMuZmVhdHVyZXMpIHtcbiAgICAgIGlmIChkaXNhbGxvd2VkRmVhdHVyZXMuaGFzKGZlYXR1cmUpKSB7XG4gICAgICAgIHRocm93IG5ldyBEaXNhbGxvd2VkQ29pbkZlYXR1cmVFcnJvcihvcHRpb25zLm5hbWUsIGZlYXR1cmUpO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVxdWlyZWRGZWF0dXJlcy5oYXMoZmVhdHVyZSkpIHtcbiAgICAgICAgcmVxdWlyZWRGZWF0dXJlcy5kZWxldGUoZmVhdHVyZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHJlcXVpcmVkRmVhdHVyZXMuc2l6ZSA+IDApIHtcbiAgICAgIC8vIHNvbWUgcmVxdWlyZWQgZmVhdHVyZXMgd2VyZSBtaXNzaW5nXG4gICAgICB0aHJvdyBuZXcgTWlzc2luZ1JlcXVpcmVkQ29pbkZlYXR1cmVFcnJvcihvcHRpb25zLm5hbWUsIEFycmF5LmZyb20ocmVxdWlyZWRGZWF0dXJlcykpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihvcHRpb25zOiBCYXNlQ29pbkNvbnN0cnVjdG9yT3B0aW9ucykge1xuICAgIHRoaXMudmFsaWRhdGVPcHRpb25zKG9wdGlvbnMpO1xuXG4gICAgdGhpcy5mdWxsTmFtZSA9IG9wdGlvbnMuZnVsbE5hbWU7XG4gICAgdGhpcy5uYW1lID0gb3B0aW9ucy5uYW1lO1xuICAgIHRoaXMuYWxpYXMgPSBvcHRpb25zLmFsaWFzO1xuICAgIHRoaXMucHJlZml4ID0gb3B0aW9ucy5wcmVmaXg7XG4gICAgdGhpcy5zdWZmaXggPSBvcHRpb25zLnN1ZmZpeDtcbiAgICB0aGlzLmtpbmQgPSBvcHRpb25zLmtpbmQ7XG4gICAgdGhpcy5mYW1pbHkgPSBvcHRpb25zLm5ldHdvcmsuZmFtaWx5O1xuICAgIHRoaXMuaXNUb2tlbiA9IG9wdGlvbnMuaXNUb2tlbjtcbiAgICB0aGlzLmZlYXR1cmVzID0gb3B0aW9ucy5mZWF0dXJlcztcbiAgICB0aGlzLmRlY2ltYWxQbGFjZXMgPSBvcHRpb25zLmRlY2ltYWxQbGFjZXM7XG4gICAgdGhpcy5hc3NldCA9IG9wdGlvbnMuYXNzZXQ7XG4gICAgdGhpcy5uZXR3b3JrID0gb3B0aW9ucy5uZXR3b3JrO1xuICAgIHRoaXMucHJpbWFyeUtleUN1cnZlID0gb3B0aW9ucy5wcmltYXJ5S2V5Q3VydmU7XG4gIH1cbn1cbiJdfQ==