@bitgo-beta/statics 10.0.1-alpha.38 → 10.0.1-alpha.381

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 (101) hide show
  1. package/.mocharc.js +1 -1
  2. package/CHANGELOG.md +3274 -0
  3. package/dist/src/account.d.ts +769 -31
  4. package/dist/src/account.d.ts.map +1 -1
  5. package/dist/src/account.js +1252 -127
  6. package/dist/src/ada.d.ts.map +1 -1
  7. package/dist/src/ada.js +9 -3
  8. package/dist/src/allCoinsAndTokens.d.ts +2 -0
  9. package/dist/src/allCoinsAndTokens.d.ts.map +1 -0
  10. package/dist/src/allCoinsAndTokens.js +675 -0
  11. package/dist/src/avaxp.d.ts.map +1 -1
  12. package/dist/src/avaxp.js +10 -3
  13. package/dist/src/base.d.ts +1742 -33
  14. package/dist/src/base.d.ts.map +1 -1
  15. package/dist/src/base.js +1817 -49
  16. package/dist/src/coinFeatures.d.ts +94 -0
  17. package/dist/src/coinFeatures.d.ts.map +1 -0
  18. package/dist/src/coinFeatures.js +593 -0
  19. package/dist/src/coins/avaxTokens.d.ts +2 -0
  20. package/dist/src/coins/avaxTokens.d.ts.map +1 -0
  21. package/dist/src/coins/avaxTokens.js +100 -0
  22. package/dist/src/coins/botOfcTokens.d.ts +2 -0
  23. package/dist/src/coins/botOfcTokens.d.ts.map +1 -0
  24. package/dist/src/coins/botOfcTokens.js +5 -0
  25. package/dist/src/coins/botTokens.d.ts +2 -0
  26. package/dist/src/coins/botTokens.d.ts.map +1 -0
  27. package/dist/src/coins/botTokens.js +5 -0
  28. package/dist/src/coins/bscTokens.d.ts +2 -0
  29. package/dist/src/coins/bscTokens.d.ts.map +1 -0
  30. package/dist/src/coins/bscTokens.js +160 -0
  31. package/dist/src/coins/cosmosTokens.d.ts +2 -0
  32. package/dist/src/coins/cosmosTokens.d.ts.map +1 -0
  33. package/dist/src/coins/cosmosTokens.js +12 -0
  34. package/dist/src/coins/erc20Coins.d.ts +2 -0
  35. package/dist/src/coins/erc20Coins.d.ts.map +1 -0
  36. package/dist/src/coins/erc20Coins.js +1516 -0
  37. package/dist/src/coins/nep141Tokens.d.ts +2 -0
  38. package/dist/src/coins/nep141Tokens.d.ts.map +1 -0
  39. package/dist/src/coins/nep141Tokens.js +14 -0
  40. package/dist/src/coins/ofcCoins.d.ts +2 -0
  41. package/dist/src/coins/ofcCoins.d.ts.map +1 -0
  42. package/dist/src/coins/ofcCoins.js +622 -0
  43. package/dist/src/coins/ofcErc20Coins.d.ts +3 -0
  44. package/dist/src/coins/ofcErc20Coins.d.ts.map +1 -0
  45. package/dist/src/coins/ofcErc20Coins.js +1416 -0
  46. package/dist/src/coins/polygonTokens.d.ts +2 -0
  47. package/dist/src/coins/polygonTokens.d.ts.map +1 -0
  48. package/dist/src/coins/polygonTokens.js +148 -0
  49. package/dist/src/coins/sip10Tokens.d.ts +2 -0
  50. package/dist/src/coins/sip10Tokens.d.ts.map +1 -0
  51. package/dist/src/coins/sip10Tokens.js +25 -0
  52. package/dist/src/coins/solTokens.d.ts +2 -0
  53. package/dist/src/coins/solTokens.d.ts.map +1 -0
  54. package/dist/src/coins/solTokens.js +365 -0
  55. package/dist/src/coins/vetTokens.d.ts +2 -0
  56. package/dist/src/coins/vetTokens.d.ts.map +1 -0
  57. package/dist/src/coins/vetTokens.js +11 -0
  58. package/dist/src/coins.d.ts +10 -0
  59. package/dist/src/coins.d.ts.map +1 -1
  60. package/dist/src/coins.js +287 -1393
  61. package/dist/src/constants.d.ts +1 -0
  62. package/dist/src/constants.d.ts.map +1 -1
  63. package/dist/src/constants.js +3 -2
  64. package/dist/src/index.d.ts +3 -1
  65. package/dist/src/index.d.ts.map +1 -1
  66. package/dist/src/index.js +23 -3
  67. package/dist/src/lightning.d.ts +43 -0
  68. package/dist/src/lightning.d.ts.map +1 -0
  69. package/dist/src/lightning.js +60 -0
  70. package/dist/src/map.d.ts +10 -0
  71. package/dist/src/map.d.ts.map +1 -1
  72. package/dist/src/map.js +117 -17
  73. package/dist/src/networkFeatureMapForTokens.d.ts +3 -0
  74. package/dist/src/networkFeatureMapForTokens.d.ts.map +1 -0
  75. package/dist/src/networkFeatureMapForTokens.js +30 -0
  76. package/dist/src/networks.d.ts +1095 -4
  77. package/dist/src/networks.d.ts.map +1 -1
  78. package/dist/src/networks.js +1433 -48
  79. package/dist/src/ofc.d.ts +495 -3
  80. package/dist/src/ofc.d.ts.map +1 -1
  81. package/dist/src/ofc.js +1200 -28
  82. package/dist/src/tokenConfig.d.ts +201 -14
  83. package/dist/src/tokenConfig.d.ts.map +1 -1
  84. package/dist/src/tokenConfig.js +764 -240
  85. package/dist/src/utxo.d.ts +3 -1
  86. package/dist/src/utxo.d.ts.map +1 -1
  87. package/dist/src/utxo.js +84 -3
  88. package/dist/tsconfig.tsbuildinfo +1 -2744
  89. package/package.json +2 -2
  90. package/dist/resources/dot/index.d.ts +0 -3
  91. package/dist/resources/dot/index.d.ts.map +0 -1
  92. package/dist/resources/dot/index.js +0 -15
  93. package/dist/resources/dot/mainnet.d.ts +0 -2
  94. package/dist/resources/dot/mainnet.d.ts.map +0 -1
  95. package/dist/resources/dot/mainnet.js +0 -5
  96. package/dist/resources/dot/westend.d.ts +0 -2
  97. package/dist/resources/dot/westend.d.ts.map +0 -1
  98. package/dist/resources/dot/westend.js +0 -5
  99. package/resources/dot/index.ts +0 -2
  100. package/resources/dot/mainnet.ts +0 -2
  101. package/resources/dot/westend.ts +0 -2
@@ -2,12 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Networks = exports.BaseNetwork = exports.NetworkType = void 0;
4
4
  const base_1 = require("./base");
5
- const dot_1 = require("../resources/dot");
6
5
  var NetworkType;
7
6
  (function (NetworkType) {
8
7
  NetworkType["MAINNET"] = "mainnet";
9
8
  NetworkType["TESTNET"] = "testnet";
10
- })(NetworkType = exports.NetworkType || (exports.NetworkType = {}));
9
+ })(NetworkType || (exports.NetworkType = NetworkType = {}));
11
10
  class BaseNetwork {
12
11
  }
13
12
  exports.BaseNetwork = BaseNetwork;
@@ -28,7 +27,7 @@ class Algorand extends Mainnet {
28
27
  super(...arguments);
29
28
  this.name = 'Algorand';
30
29
  this.family = base_1.CoinFamily.ALGO;
31
- this.explorerUrl = 'https://algoexplorer.io/tx/';
30
+ this.explorerUrl = 'https://allo.info/tx/';
32
31
  }
33
32
  }
34
33
  class AlgorandTestnet extends Testnet {
@@ -36,7 +35,7 @@ class AlgorandTestnet extends Testnet {
36
35
  super(...arguments);
37
36
  this.name = 'AlgorandTestnet';
38
37
  this.family = base_1.CoinFamily.ALGO;
39
- this.explorerUrl = 'https://testnet.algoexplorer.io/tx/';
38
+ this.explorerUrl = 'https://explorer.bitquery.io/algorand_testnet/tx/';
40
39
  }
41
40
  }
42
41
  class Ada extends Mainnet {
@@ -47,7 +46,7 @@ class Ada extends Mainnet {
47
46
  this.utxolibName = 'cardano';
48
47
  this.poolDeposit = 500000000;
49
48
  this.stakeKeyDeposit = 2000000;
50
- this.explorerUrl = 'https://explorer.cardano.org/en';
49
+ this.explorerUrl = 'https://cexplorer.io/';
51
50
  this.coinsPerUtxoWord = 34482;
52
51
  this.maxTransactionSize = 8000;
53
52
  this.maxValueSize = 4000;
@@ -67,14 +66,86 @@ class AdaTestnet extends Testnet {
67
66
  this.stakeKeyDeposit = 2000000;
68
67
  }
69
68
  }
69
+ class Apt extends Mainnet {
70
+ constructor() {
71
+ super(...arguments);
72
+ this.name = 'Apt';
73
+ this.family = base_1.CoinFamily.APT;
74
+ this.explorerUrl = 'https://explorer.aptoslabs.com/txn/?network=mainnet';
75
+ this.accountExplorerUrl = 'https://explorer.aptoslabs.com/account/?network=mainnet';
76
+ this.blockExplorerUrl = 'https://explorer.aptoslabs.com/block/?network=mainnet';
77
+ }
78
+ }
79
+ class AptTestnet extends Testnet {
80
+ constructor() {
81
+ super(...arguments);
82
+ this.name = 'Testnet Apt';
83
+ this.family = base_1.CoinFamily.APT;
84
+ this.explorerUrl = 'https://explorer.aptoslabs.com/txn/?network=testnet';
85
+ this.accountExplorerUrl = 'https://explorer.aptoslabs.com/account/?network=testnet';
86
+ this.blockExplorerUrl = 'https://explorer.aptoslabs.com/block/?network=testnet';
87
+ }
88
+ }
89
+ class Icp extends Mainnet {
90
+ constructor() {
91
+ super(...arguments);
92
+ this.name = 'Internet Computer';
93
+ this.family = base_1.CoinFamily.ICP;
94
+ this.explorerUrl = 'https://dashboard.internetcomputer.org/transaction/';
95
+ this.accountExplorerUrl = 'https://dashboard.internetcomputer.org/account/';
96
+ }
97
+ }
98
+ class IcpTestnet extends Testnet {
99
+ constructor() {
100
+ super(...arguments);
101
+ this.name = 'Testnet Internet Computer';
102
+ this.family = base_1.CoinFamily.ICP;
103
+ this.explorerUrl = 'https://dashboard.internetcomputer.org/transaction/'; // ICP testnet explorer is not available, so using mainnet explorer
104
+ this.accountExplorerUrl = 'https://dashboard.internetcomputer.org/account/';
105
+ }
106
+ }
107
+ class Arbitrum extends Mainnet {
108
+ constructor() {
109
+ super(...arguments);
110
+ this.name = 'Arbitrum';
111
+ this.family = base_1.CoinFamily.ARBETH;
112
+ this.explorerUrl = 'https://arbiscan.io/tx/';
113
+ this.accountExplorerUrl = 'https://arbiscan.io/address/';
114
+ this.chainId = 42161;
115
+ this.nativeCoinOperationHashPrefix = '42161';
116
+ this.tokenOperationHashPrefix = '42161-ERC20';
117
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
118
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
119
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
120
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
121
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
122
+ }
123
+ }
124
+ class ArbitrumTestnet extends Testnet {
125
+ constructor() {
126
+ super(...arguments);
127
+ this.name = 'ArbitrumTestnet';
128
+ this.family = base_1.CoinFamily.ARBETH;
129
+ this.explorerUrl = 'https://sepolia.arbiscan.io/tx/';
130
+ this.accountExplorerUrl = 'https://sepolia.arbiscan.io/address/';
131
+ this.chainId = 421614;
132
+ this.nativeCoinOperationHashPrefix = '421614';
133
+ this.tokenOperationHashPrefix = '421614-ERC20';
134
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
135
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
136
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
137
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
138
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
139
+ }
140
+ }
70
141
  class AvalancheC extends Mainnet {
71
142
  constructor() {
72
143
  super(...arguments);
73
144
  // https://docs.avax.network/build/tutorials/smart-contracts/deploy-a-smart-contract-on-avalanche-using-remix-and-metamask#avalanche-mainnet-settings
74
145
  this.name = 'AvalancheC';
75
146
  this.family = base_1.CoinFamily.AVAXC;
76
- this.explorerUrl = 'https://cchain.explorer.avax.network/tx/';
77
- this.accountExplorerUrl = 'https://cchain.explorer.avax.network/address/';
147
+ this.explorerUrl = 'https://subnets.avax.network/c-chain/tx/';
148
+ this.accountExplorerUrl = 'https://subnets.avax.network/c-chain/address/';
78
149
  this.chainId = 43114;
79
150
  }
80
151
  }
@@ -84,8 +155,8 @@ class AvalancheCTestnet extends Testnet {
84
155
  // https://docs.avax.network/build/tutorials/smart-contracts/deploy-a-smart-contract-on-avalanche-using-remix-and-metamask#avalanche-mainnet-settings
85
156
  this.name = 'AvalancheCTestnet';
86
157
  this.family = base_1.CoinFamily.AVAXC;
87
- this.explorerUrl = 'https://cchain.explorer.avax-test.network/tx/';
88
- this.accountExplorerUrl = 'https://cchain.explorer.avax-test.network/address/';
158
+ this.explorerUrl = 'https://subnets-test.avax.network/c-chain/tx/';
159
+ this.accountExplorerUrl = 'https://subnets-test.avax.network/c-chain/address/';
89
160
  this.chainId = 43113;
90
161
  }
91
162
  }
@@ -94,8 +165,8 @@ class AvalancheP extends Mainnet {
94
165
  super(...arguments);
95
166
  this.name = 'AvalancheP';
96
167
  this.family = base_1.CoinFamily.AVAXP;
97
- this.explorerUrl = 'https://explorer-xp.avax.network/tx/';
98
- this.accountExplorerUrl = 'https://explorer-xp.avax.network/address/';
168
+ this.explorerUrl = 'https://subnets.avax.network/p-chain/tx/';
169
+ this.accountExplorerUrl = 'https://subnets.avax.network/p-chain/address/';
99
170
  this.blockchainID = '11111111111111111111111111111111LpoYY';
100
171
  this.cChainBlockchainID = '2q9e4r6Mu3U68nU1fYjgbR6JvwrRx36CohpAX5UQxse55x1Q5';
101
172
  this.avaxAssetID = 'FvwEAhmxKfeiG8SnEvq42hc6whRyY3EFYAvebMqDNDGCgxN5Z';
@@ -104,6 +175,7 @@ class AvalancheP extends Mainnet {
104
175
  this.alias = 'P';
105
176
  this.vm = 'platformvm';
106
177
  this.txFee = '1000000'; // 1 MILLIAVAX
178
+ this.maxImportFee = '10000000'; // 0.01 AVAX
107
179
  this.createSubnetTx = '1000000000'; // 1 AVAX
108
180
  this.createChainTx = '1000000000'; // 1 AVAX
109
181
  this.creationTxFee = '10000000'; // 1 CENTIAVAX
@@ -122,8 +194,8 @@ class AvalanchePTestnet extends Testnet {
122
194
  super(...arguments);
123
195
  this.name = 'AvalanchePTestnet';
124
196
  this.family = base_1.CoinFamily.AVAXP;
125
- this.explorerUrl = 'https://explorer-xp.avax-test.network/tx/';
126
- this.accountExplorerUrl = 'https://explorer-xp.avax-test.network/address/';
197
+ this.explorerUrl = 'https://subnets-test.avax.network/p-chain/tx/';
198
+ this.accountExplorerUrl = 'https://subnets-test.avax.network/p-chain/address/';
127
199
  this.blockchainID = '11111111111111111111111111111111LpoYY';
128
200
  this.cChainBlockchainID = 'yH8D7ThNJkxmtkuv2jgBa4P1Rn3Qpr4pPr7QYNfcdoS6k6HWp';
129
201
  this.avaxAssetID = 'U8iRqJoiJm8xZHAacmvYyZVwqQx6uDNtQeP3CQ6fcgQk3JqnK';
@@ -132,6 +204,7 @@ class AvalanchePTestnet extends Testnet {
132
204
  this.hrp = 'fuji';
133
205
  this.vm = 'platformvm';
134
206
  this.txFee = '1000000'; // 1 MILLIAVAX
207
+ this.maxImportFee = '10000000'; // 0.01 AVAX
135
208
  this.createSubnetTx = '1000000000'; // 1 AVAX
136
209
  this.createChainTx = '1000000000'; // 1 AVAX
137
210
  this.creationTxFee = '10000000'; // 1 CENTIAVAX
@@ -150,9 +223,12 @@ class BinanceSmartChain extends Mainnet {
150
223
  super(...arguments);
151
224
  this.name = 'BinanceSmartChain';
152
225
  this.family = base_1.CoinFamily.BSC;
153
- this.explorerUrl = 'https://www.bscscan.com/tx/';
154
- this.accountExplorerUrl = 'https://www.bscscan.com/address/';
226
+ this.explorerUrl = 'https://bscscan.com/tx/';
227
+ this.accountExplorerUrl = 'https://bscscan.com/address/';
155
228
  this.chainId = 56;
229
+ this.nativeCoinOperationHashPrefix = '56';
230
+ this.tokenOperationHashPrefix = '56-ERC20';
231
+ this.batcherContractAddress = '0xb1b7e7cc1ecafbfd0771a5eb5454ab5b0356980d';
156
232
  }
157
233
  }
158
234
  class BinanceSmartChainTestnet extends Testnet {
@@ -163,6 +239,33 @@ class BinanceSmartChainTestnet extends Testnet {
163
239
  this.explorerUrl = 'https://testnet.bscscan.com/tx/';
164
240
  this.accountExplorerUrl = 'https://testnet.bscscan.com/address/';
165
241
  this.chainId = 97;
242
+ this.nativeCoinOperationHashPrefix = '97';
243
+ this.tokenOperationHashPrefix = '97-ERC20';
244
+ this.batcherContractAddress = '0x6faf4b6bae3d4bf20c5d866c938f51992c63e825';
245
+ }
246
+ }
247
+ class LightningBitcoin extends Mainnet {
248
+ constructor() {
249
+ super(...arguments);
250
+ this.name = 'LightningBitcoin';
251
+ this.family = base_1.CoinFamily.LNBTC;
252
+ this.utxolibName = 'bitcoin';
253
+ this.explorerUrl = 'https://mempool.space/lightning';
254
+ this.lightningServicePubKey = '0338508686f978ceffd7ce05404041b1a5b4f75a39bc92a6d355240ccc081f763e';
255
+ this.middlewarePubKey = '020d52f6458b17b565bc03516568d1a65c8cbd131ce03f2207567e4cd3322e82f3';
256
+ this.tatPubKey = '03953da20068c096858d3cca60f8c5b0e5a2f5d0383ecf9b6ab392d71e4f3e72df';
257
+ }
258
+ }
259
+ class LightningBitcoinTestnet extends Testnet {
260
+ constructor() {
261
+ super(...arguments);
262
+ this.name = 'LightningBitcoinTestnet';
263
+ this.family = base_1.CoinFamily.LNBTC;
264
+ this.utxolibName = 'testnet';
265
+ this.explorerUrl = 'https://mempool.space/testnet/lightning';
266
+ this.lightningServicePubKey = '024055021db1e7f019ebb783ab0b0810c21a819207d4cb1ec4a6e2150ac07f1482';
267
+ this.middlewarePubKey = '027cb3bc6b49fc385d282b42a7be232a94ffcbaffc7818b603b17722582bbf539b';
268
+ this.tatPubKey = '02e747c99c371eac9c14fb19913bec8a0e3e46e35ab1a45878e5b9afbb69899c1e';
166
269
  }
167
270
  }
168
271
  class Bitcoin extends Mainnet {
@@ -171,7 +274,7 @@ class Bitcoin extends Mainnet {
171
274
  this.name = 'Bitcoin';
172
275
  this.family = base_1.CoinFamily.BTC;
173
276
  this.utxolibName = 'bitcoin';
174
- this.explorerUrl = 'https://blockstream.info/tx/';
277
+ this.explorerUrl = 'https://mempool.space/tx/';
175
278
  }
176
279
  }
177
280
  class BitcoinTestnet extends Testnet {
@@ -180,7 +283,36 @@ class BitcoinTestnet extends Testnet {
180
283
  this.name = 'BitcoinTestnet';
181
284
  this.family = base_1.CoinFamily.BTC;
182
285
  this.utxolibName = 'testnet';
183
- this.explorerUrl = 'https://blockstream.info/testnet/tx/';
286
+ this.explorerUrl = 'https://mempool.space/testnet/tx/';
287
+ // Add our pubkey for our paygo wallet
288
+ this.paygoAddressAttestationPubkey = 'xpub6BKRgmCPX5oQiJgJ6Vq6BF8tDvZhwQki5dVVQohckK2ZJXtxj8K6M9pavLwt9piW33hZz17SWmG8QWsjJ1tHdde2Fs5UA3DFbApCtbdaGKn';
289
+ }
290
+ }
291
+ class BitcoinPublicSignet extends Testnet {
292
+ constructor() {
293
+ super(...arguments);
294
+ this.name = 'BitcoinPublicSignet';
295
+ this.family = base_1.CoinFamily.BTC;
296
+ this.utxolibName = 'bitcoinPublicSignet';
297
+ this.explorerUrl = 'https://mempool.space/signet/tx/';
298
+ }
299
+ }
300
+ class BitcoinTestnet4 extends Testnet {
301
+ constructor() {
302
+ super(...arguments);
303
+ this.name = 'BitcoinTestnet4';
304
+ this.family = base_1.CoinFamily.BTC;
305
+ this.utxolibName = 'bitcoinTestnet4';
306
+ this.explorerUrl = 'https://mempool.space/testnet4/tx/';
307
+ }
308
+ }
309
+ class BitcoinBitGoSignet extends Testnet {
310
+ constructor() {
311
+ super(...arguments);
312
+ this.name = 'BitcoinBitGoSignet';
313
+ this.family = base_1.CoinFamily.BTC;
314
+ this.utxolibName = 'bitcoinBitGoSignet';
315
+ this.explorerUrl = 'https://mempool.space/notanetwork/tx/';
184
316
  }
185
317
  }
186
318
  class BitcoinCash extends Mainnet {
@@ -198,7 +330,7 @@ class BitcoinCashTestnet extends Testnet {
198
330
  this.name = 'BitcoinCashTestnet';
199
331
  this.family = base_1.CoinFamily.BCH;
200
332
  this.utxolibName = 'bitcoincashTestnet';
201
- this.explorerUrl = 'https://www.blockchain.com/bch-testnet/tx/';
333
+ this.explorerUrl = 'https://tbch.loping.net/tx/';
202
334
  }
203
335
  }
204
336
  class BitcoinSV extends Mainnet {
@@ -301,7 +433,6 @@ class Polkadot extends Mainnet {
301
433
  this.genesisHash = '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3';
302
434
  this.specVersion = 9140;
303
435
  this.chainName = 'Polkadot';
304
- this.metadataRpc = dot_1.mainnetMetadataRpc;
305
436
  this.txVersion = 9;
306
437
  }
307
438
  }
@@ -313,10 +444,9 @@ class PolkadotTestnet extends Testnet {
313
444
  this.explorerUrl = 'https://westend.subscan.io/extrinsic/';
314
445
  this.specName = 'westend';
315
446
  this.genesisHash = '0xe143f23803ac50e8f6f8e62695d1ce9e4e1d68aa36c1cd2cfd15340213f3423e';
316
- this.specVersion = 9320;
447
+ this.specVersion = 9430;
317
448
  this.chainName = 'Westend';
318
- this.metadataRpc = dot_1.westendMetadataRpc;
319
- this.txVersion = 14;
449
+ this.txVersion = 22;
320
450
  }
321
451
  }
322
452
  class Celo extends Mainnet {
@@ -327,6 +457,8 @@ class Celo extends Mainnet {
327
457
  this.explorerUrl = 'https://explorer.celo.org/tx/';
328
458
  this.accountExplorerUrl = 'https://explorer.celo.org/address/';
329
459
  this.chainId = 42220;
460
+ this.nativeCoinOperationHashPrefix = 'CELO';
461
+ this.tokenOperationHashPrefix = 'CELO-ERC20';
330
462
  }
331
463
  }
332
464
  class CeloTestnet extends Testnet {
@@ -337,6 +469,8 @@ class CeloTestnet extends Testnet {
337
469
  this.explorerUrl = 'https://alfajores-blockscout.celo-testnet.org/tx/';
338
470
  this.accountExplorerUrl = 'https://alfajores-blockscout.celo-testnet.org/address/';
339
471
  this.chainId = 44787;
472
+ this.nativeCoinOperationHashPrefix = 'CELO';
473
+ this.tokenOperationHashPrefix = 'CELO-ERC20';
340
474
  }
341
475
  }
342
476
  // TODO update explorerUrl STLX-1657
@@ -365,11 +499,16 @@ class Ethereum extends Mainnet {
365
499
  this.family = base_1.CoinFamily.ETH;
366
500
  this.explorerUrl = 'https://etherscan.io/tx/';
367
501
  this.accountExplorerUrl = 'https://etherscan.io/address/';
502
+ this.blockExplorerUrl = 'https://etherscan.io/block/';
368
503
  // from https://github.com/ethereumjs/ethereumjs-common/blob/a978f630858f6843176bb20b277569785914e899/src/chains/index.ts
369
504
  this.chainId = 1;
370
- this.batcherContractAddress = '0x0c9b25dfe02b2c89cce86e1a0bd6c04a7aca01b6';
505
+ this.batcherContractAddress = '0xebe27913fcc7510eadf10643a8f86bf5492a9541';
371
506
  this.forwarderFactoryAddress = '0xffa397285ce46fb78c588a9e993286aac68c37cd';
372
507
  this.forwarderImplementationAddress = '0x059ffafdc6ef594230de44f824e2bd0a51ca5ded';
508
+ this.nativeCoinOperationHashPrefix = 'ETHER';
509
+ this.tokenOperationHashPrefix = 'ERC20';
510
+ this.walletV4ForwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
511
+ this.walletV4ForwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
373
512
  }
374
513
  }
375
514
  class Ethereum2 extends Mainnet {
@@ -392,6 +531,8 @@ class EthereumW extends Mainnet {
392
531
  this.batcherContractAddress = '';
393
532
  this.forwarderFactoryAddress = '';
394
533
  this.forwarderImplementationAddress = '';
534
+ this.nativeCoinOperationHashPrefix = 'ETHER';
535
+ this.tokenOperationHashPrefix = 'ERC20';
395
536
  }
396
537
  }
397
538
  class Pyrmont extends Testnet {
@@ -415,6 +556,8 @@ class Kovan extends Testnet {
415
556
  this.batcherContractAddress = '0xc0aaf2649e7b0f3950164681eca2b1a8f654a478';
416
557
  this.forwarderFactoryAddress = '0xa79a485294d226075ee65410bc94ea454f3e409d';
417
558
  this.forwarderImplementationAddress = '0xa946e748f25a5ec6878eb1a9f2e902028174c0b3';
559
+ this.nativeCoinOperationHashPrefix = 'ETHER';
560
+ this.tokenOperationHashPrefix = 'ERC20';
418
561
  }
419
562
  }
420
563
  class Goerli extends Testnet {
@@ -424,11 +567,52 @@ class Goerli extends Testnet {
424
567
  this.family = base_1.CoinFamily.ETH;
425
568
  this.explorerUrl = 'https://goerli.etherscan.io/tx/';
426
569
  this.accountExplorerUrl = 'https://goerli.etherscan.io/address/';
570
+ this.blockExplorerUrl = 'https://goerli.etherscan.io/block/';
427
571
  // from https://github.com/ethereumjs/ethereumjs-common/blob/a978f630858f6843176bb20b277569785914e899/src/chains/index.ts
428
572
  this.chainId = 5;
429
573
  this.batcherContractAddress = '0xe8e847cf573fc8ed75621660a36affd18c543d7e';
430
574
  this.forwarderFactoryAddress = '0xf5caa5e3e93afbc21bd19ef4f2691a37121f7917';
431
575
  this.forwarderImplementationAddress = '0x80d5c91e8cc21df69fc4d64f21dc2d83121c3999';
576
+ this.nativeCoinOperationHashPrefix = 'ETHER';
577
+ this.tokenOperationHashPrefix = 'ERC20';
578
+ }
579
+ }
580
+ class Holesky extends Testnet {
581
+ constructor() {
582
+ super(...arguments);
583
+ this.name = 'Holesky';
584
+ this.family = base_1.CoinFamily.ETH;
585
+ this.explorerUrl = 'https://holesky.etherscan.io/tx/';
586
+ this.accountExplorerUrl = 'https://holesky.etherscan.io/address/';
587
+ this.blockExplorerUrl = 'https://holesky.etherscan.io/block/';
588
+ // https://chainlist.org/chain/17000
589
+ this.chainId = 17000;
590
+ this.batcherContractAddress = '0xebe27913fcc7510eadf10643a8f86bf5492a9541';
591
+ this.forwarderFactoryAddress = '0xffa397285ce46fb78c588a9e993286aac68c37cd';
592
+ this.forwarderImplementationAddress = '0x059ffafdc6ef594230de44f824e2bd0a51ca5ded';
593
+ this.nativeCoinOperationHashPrefix = 'ETHER';
594
+ this.tokenOperationHashPrefix = 'ERC20';
595
+ this.walletV4ForwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
596
+ this.walletV4ForwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
597
+ }
598
+ }
599
+ class Hoodi extends Testnet {
600
+ constructor() {
601
+ super(...arguments);
602
+ this.name = 'Hoodi';
603
+ this.family = base_1.CoinFamily.ETH;
604
+ this.explorerUrl = 'https://hoodi.etherscan.io/tx/';
605
+ this.accountExplorerUrl = 'https://hoodi.etherscan.io/address/';
606
+ this.blockExplorerUrl = 'https://hoodi.etherscan.io/block/';
607
+ // https://chainlist.org/chain/560048
608
+ this.chainId = 560048;
609
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
610
+ this.forwarderFactoryAddress = '0x0e2874d6824fae4f61e446012317a9b86384bd8e';
611
+ this.forwarderImplementationAddress = '0x7441f20a59be97011842404b9aefd8d85fd81aa6';
612
+ this.nativeCoinOperationHashPrefix = 'ETHER';
613
+ this.tokenOperationHashPrefix = 'ERC20';
614
+ this.walletV4ForwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
615
+ this.walletV4ForwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
432
616
  }
433
617
  }
434
618
  class EthereumClassic extends Mainnet {
@@ -440,6 +624,8 @@ class EthereumClassic extends Mainnet {
440
624
  this.accountExplorerUrl = 'https://blockscout.com/etc/mainnet/address/';
441
625
  // from https://chainid.network/chains/
442
626
  this.chainId = 61;
627
+ this.nativeCoinOperationHashPrefix = 'ETC';
628
+ this.tokenOperationHashPrefix = 'ETC-ERC20';
443
629
  }
444
630
  }
445
631
  class EthereumClassicTestnet extends Testnet {
@@ -451,6 +637,8 @@ class EthereumClassicTestnet extends Testnet {
451
637
  this.accountExplorerUrl = 'https://blockscout.com/etc/mordor/address/';
452
638
  // from https://chainid.network/chains/
453
639
  this.chainId = 63;
640
+ this.nativeCoinOperationHashPrefix = 'ETC';
641
+ this.tokenOperationHashPrefix = 'ETC-ERC20';
454
642
  }
455
643
  }
456
644
  class Eos extends Mainnet {
@@ -474,7 +662,7 @@ class Hedera extends Mainnet {
474
662
  super(...arguments);
475
663
  this.name = 'Hedera';
476
664
  this.family = base_1.CoinFamily.HBAR;
477
- this.explorerUrl = 'https://explorer.kabuto.sh/mainnet/transaction/';
665
+ this.explorerUrl = 'https://hashscan.io/mainnet/transaction/';
478
666
  }
479
667
  }
480
668
  class HederaTestnet extends Testnet {
@@ -482,7 +670,7 @@ class HederaTestnet extends Testnet {
482
670
  super(...arguments);
483
671
  this.name = 'HederaTestnet';
484
672
  this.family = base_1.CoinFamily.HBAR;
485
- this.explorerUrl = 'https://explorer.kabuto.sh/testnet/transaction/';
673
+ this.explorerUrl = 'https://testnet.dragonglass.me/hedera/search?q=';
486
674
  }
487
675
  }
488
676
  class Litecoin extends Mainnet {
@@ -527,6 +715,8 @@ class Rbtc extends Mainnet {
527
715
  this.explorerUrl = 'https://explorer.rsk.co/tx/';
528
716
  this.accountExplorerUrl = 'https://explorer.rsk.co/address/';
529
717
  this.chainId = 30;
718
+ this.nativeCoinOperationHashPrefix = 'RSK';
719
+ this.tokenOperationHashPrefix = 'RSK-ERC20';
530
720
  }
531
721
  }
532
722
  class RbtcTestnet extends Testnet {
@@ -537,6 +727,8 @@ class RbtcTestnet extends Testnet {
537
727
  this.explorerUrl = 'https://explorer.testnet.rsk.co/tx/';
538
728
  this.accountExplorerUrl = 'https://explorer.testnet.rsk.co/address/';
539
729
  this.chainId = 31;
730
+ this.nativeCoinOperationHashPrefix = 'RSK';
731
+ this.tokenOperationHashPrefix = 'RSK-ERC20';
540
732
  }
541
733
  }
542
734
  class Stellar extends Mainnet {
@@ -576,8 +768,7 @@ class Sui extends Mainnet {
576
768
  super(...arguments);
577
769
  this.name = 'Sui';
578
770
  this.family = base_1.CoinFamily.SUI;
579
- // TODO(BG-58364): mysten is still only in devnet update to mainnet url when it's live
580
- this.explorerUrl = 'https://explorer.sui.io/txblock/?network=testnet';
771
+ this.explorerUrl = 'https://explorer.sui.io/txblock/?network=mainnet';
581
772
  }
582
773
  }
583
774
  class SuiTestnet extends Testnet {
@@ -593,7 +784,7 @@ class Atom extends Mainnet {
593
784
  super(...arguments);
594
785
  this.name = 'Cosmos Hub ATOM';
595
786
  this.family = base_1.CoinFamily.ATOM;
596
- this.explorerUrl = 'https://atomscan.com/transactions/';
787
+ this.explorerUrl = 'https://www.mintscan.io/cosmos/tx/';
597
788
  }
598
789
  }
599
790
  class AtomTestnet extends Testnet {
@@ -601,7 +792,295 @@ class AtomTestnet extends Testnet {
601
792
  super(...arguments);
602
793
  this.name = 'Testnet Cosmos Hub ATOM';
603
794
  this.family = base_1.CoinFamily.ATOM;
604
- this.explorerUrl = 'https://explorer.theta-testnet.polypore.xyz/transactions/';
795
+ this.explorerUrl = 'https://explorer.polypore.xyz/provider/tx/';
796
+ }
797
+ }
798
+ class Osmo extends Mainnet {
799
+ constructor() {
800
+ super(...arguments);
801
+ this.name = 'Osmosis';
802
+ this.family = base_1.CoinFamily.OSMO;
803
+ this.explorerUrl = 'https://www.mintscan.io/osmosis/txs/';
804
+ }
805
+ }
806
+ class OsmoTestnet extends Testnet {
807
+ constructor() {
808
+ super(...arguments);
809
+ this.name = 'Testnet Osmosis';
810
+ this.family = base_1.CoinFamily.OSMO;
811
+ this.explorerUrl = 'https://testnet.osmosis.explorers.guru/transaction/';
812
+ }
813
+ }
814
+ class Tia extends Mainnet {
815
+ constructor() {
816
+ super(...arguments);
817
+ this.name = 'Celestia';
818
+ this.family = base_1.CoinFamily.TIA;
819
+ this.explorerUrl = 'https://www.mintscan.io/celestia/tx/';
820
+ }
821
+ }
822
+ class TiaTestnet extends Testnet {
823
+ constructor() {
824
+ super(...arguments);
825
+ this.name = 'Testnet Celestia';
826
+ this.family = base_1.CoinFamily.TIA;
827
+ this.explorerUrl = 'https://testnet.celestia.explorers.guru/transaction/';
828
+ }
829
+ }
830
+ class Hash extends Mainnet {
831
+ constructor() {
832
+ super(...arguments);
833
+ this.name = 'Provenance';
834
+ this.family = base_1.CoinFamily.HASH;
835
+ this.explorerUrl = 'https://explorer.provenance.io/tx/';
836
+ }
837
+ }
838
+ class HashTestnet extends Testnet {
839
+ constructor() {
840
+ super(...arguments);
841
+ this.name = 'Testnet Provenance';
842
+ this.family = base_1.CoinFamily.HASH;
843
+ this.explorerUrl = 'https://explorer.test.provenance.io/tx/';
844
+ }
845
+ }
846
+ class Bld extends Mainnet {
847
+ constructor() {
848
+ super(...arguments);
849
+ this.name = 'Agoric';
850
+ this.family = base_1.CoinFamily.BLD;
851
+ this.explorerUrl = 'https://bigdipper.live/agoric/transactions/';
852
+ }
853
+ }
854
+ class BldTestnet extends Testnet {
855
+ constructor() {
856
+ super(...arguments);
857
+ this.name = 'Testnet Agoric';
858
+ this.family = base_1.CoinFamily.BLD;
859
+ this.explorerUrl = 'https://emerynet.explorer.agoric.net/agoric/tx/';
860
+ }
861
+ }
862
+ class Sei extends Mainnet {
863
+ constructor() {
864
+ super(...arguments);
865
+ this.name = 'Sei';
866
+ this.family = base_1.CoinFamily.SEI;
867
+ this.explorerUrl = 'https://seistream.app/transactions/';
868
+ }
869
+ }
870
+ class SeiTestnet extends Testnet {
871
+ constructor() {
872
+ super(...arguments);
873
+ this.name = 'Testnet Sei';
874
+ this.family = base_1.CoinFamily.SEI;
875
+ this.explorerUrl = 'https://testnet.seistream.app/transactions/';
876
+ }
877
+ }
878
+ class Zeta extends Mainnet {
879
+ constructor() {
880
+ super(...arguments);
881
+ this.name = 'Zeta';
882
+ this.family = base_1.CoinFamily.ZETA;
883
+ this.explorerUrl = 'https://explorer.zetachain.com/cosmos/tx/';
884
+ }
885
+ }
886
+ class ZetaTestnet extends Testnet {
887
+ constructor() {
888
+ super(...arguments);
889
+ this.name = 'Testnet Zeta';
890
+ this.family = base_1.CoinFamily.ZETA;
891
+ this.explorerUrl = 'https://athens.explorer.zetachain.com/cosmos/tx/';
892
+ }
893
+ }
894
+ class Injective extends Mainnet {
895
+ constructor() {
896
+ super(...arguments);
897
+ this.name = 'Injective';
898
+ this.family = base_1.CoinFamily.INJECTIVE;
899
+ this.explorerUrl = 'https://www.mintscan.io/injective/tx/';
900
+ }
901
+ }
902
+ class InjectiveTestnet extends Testnet {
903
+ constructor() {
904
+ super(...arguments);
905
+ this.name = 'InjectiveTestnet';
906
+ this.family = base_1.CoinFamily.INJECTIVE;
907
+ this.explorerUrl = 'https://testnet.explorer.injective.network/transaction/';
908
+ }
909
+ }
910
+ class Kava extends Mainnet {
911
+ constructor() {
912
+ super(...arguments);
913
+ this.name = 'Kava';
914
+ this.family = base_1.CoinFamily.KAVA;
915
+ this.explorerUrl = 'https://www.mintscan.io/kava/transactions/';
916
+ }
917
+ }
918
+ class KavaTestnet extends Testnet {
919
+ constructor() {
920
+ super(...arguments);
921
+ this.name = 'KavaTestnet';
922
+ this.family = base_1.CoinFamily.KAVA;
923
+ this.explorerUrl = 'https://testnet.mintscan.io/kava-testnet/txs/';
924
+ }
925
+ }
926
+ class Ton extends Mainnet {
927
+ constructor() {
928
+ super(...arguments);
929
+ this.name = 'Ton';
930
+ this.family = base_1.CoinFamily.TON;
931
+ this.explorerUrl = 'https://tonscan.org/tx/';
932
+ }
933
+ }
934
+ class TonTestnet extends Testnet {
935
+ constructor() {
936
+ super(...arguments);
937
+ this.name = 'Testnet Ton';
938
+ this.family = base_1.CoinFamily.TON;
939
+ this.explorerUrl = 'https://testnet.tonscan.org/tx/';
940
+ }
941
+ }
942
+ class Coreum extends Mainnet {
943
+ constructor() {
944
+ super(...arguments);
945
+ this.name = 'Coreum';
946
+ this.family = base_1.CoinFamily.COREUM;
947
+ this.explorerUrl = 'https://www.mintscan.io/coreum/tx/';
948
+ }
949
+ }
950
+ class CoreumTestnet extends Testnet {
951
+ constructor() {
952
+ super(...arguments);
953
+ this.name = 'CoreumTestnet';
954
+ this.family = base_1.CoinFamily.COREUM;
955
+ this.explorerUrl = 'https://explorer.testnet-1.coreum.dev/coreum/transactions/';
956
+ }
957
+ }
958
+ class Rune extends Mainnet {
959
+ constructor() {
960
+ super(...arguments);
961
+ this.name = 'Rune';
962
+ this.family = base_1.CoinFamily.THOR;
963
+ this.explorerUrl = 'https://runescan.io/tx/';
964
+ }
965
+ }
966
+ class RuneTestNet extends Testnet {
967
+ constructor() {
968
+ super(...arguments);
969
+ this.name = 'RuneTestNet';
970
+ this.family = base_1.CoinFamily.THOR;
971
+ this.explorerUrl = 'https://runescan.io/tx/?network=stagenet';
972
+ }
973
+ }
974
+ class Baby extends Mainnet {
975
+ constructor() {
976
+ super(...arguments);
977
+ this.name = 'Babylon';
978
+ this.family = base_1.CoinFamily.BABY;
979
+ this.explorerUrl = 'https://babylon.explorers.guru/transaction/';
980
+ }
981
+ }
982
+ class BabyTestnet extends Testnet {
983
+ constructor() {
984
+ super(...arguments);
985
+ this.name = 'Testnet Babylon';
986
+ this.family = base_1.CoinFamily.BABY;
987
+ this.explorerUrl = 'https://testnet.babylon.explorers.guru/transaction/';
988
+ }
989
+ }
990
+ class Mantra extends Mainnet {
991
+ constructor() {
992
+ super(...arguments);
993
+ this.name = 'Mantra';
994
+ this.family = base_1.CoinFamily.MANTRA;
995
+ this.explorerUrl = 'https://explorer.mantrachain.io/MANTRA-1/tx/';
996
+ }
997
+ }
998
+ class MantraTestnet extends Testnet {
999
+ constructor() {
1000
+ super(...arguments);
1001
+ this.name = 'Testnet Mantra';
1002
+ this.family = base_1.CoinFamily.MANTRA;
1003
+ this.explorerUrl = 'https://explorer.mantrachain.io/MANTRA-Dukong/tx/';
1004
+ }
1005
+ }
1006
+ class Cronos extends Mainnet {
1007
+ constructor() {
1008
+ super(...arguments);
1009
+ this.name = 'Cronos POS';
1010
+ this.family = base_1.CoinFamily.CRONOS;
1011
+ this.explorerUrl = 'https://cronos-pos.org/explorer/tx/';
1012
+ }
1013
+ }
1014
+ class CronosTestnet extends Testnet {
1015
+ constructor() {
1016
+ super(...arguments);
1017
+ this.name = 'Testnet Cronos POS';
1018
+ this.family = base_1.CoinFamily.CRONOS;
1019
+ this.explorerUrl = 'https://cronos-pos.org/explorer/croeseid4/tx/';
1020
+ }
1021
+ }
1022
+ class FetchAi extends Mainnet {
1023
+ constructor() {
1024
+ super(...arguments);
1025
+ this.name = 'Fetch';
1026
+ this.family = base_1.CoinFamily.FETCHAI;
1027
+ this.explorerUrl = 'https://www.mintscan.io/fetchai';
1028
+ }
1029
+ }
1030
+ class FetchAiTestnet extends Testnet {
1031
+ constructor() {
1032
+ super(...arguments);
1033
+ this.name = 'Testnet Fetch';
1034
+ this.family = base_1.CoinFamily.FETCHAI;
1035
+ this.explorerUrl = 'https://explore-eridanus-1.fetch.ai/';
1036
+ }
1037
+ }
1038
+ class Initia extends Mainnet {
1039
+ constructor() {
1040
+ super(...arguments);
1041
+ this.name = 'Initia';
1042
+ this.family = base_1.CoinFamily.INITIA;
1043
+ this.explorerUrl = 'https://scan.initia.xyz/interwoven-1/txs/';
1044
+ }
1045
+ }
1046
+ class InitiaTestnet extends Testnet {
1047
+ constructor() {
1048
+ super(...arguments);
1049
+ this.name = 'Testnet Initia';
1050
+ this.family = base_1.CoinFamily.INITIA;
1051
+ this.explorerUrl = 'https://scan.testnet.initia.xyz/initiation-2/txs/';
1052
+ }
1053
+ }
1054
+ class Asi extends Mainnet {
1055
+ constructor() {
1056
+ super(...arguments);
1057
+ this.name = 'Fetch Native';
1058
+ this.family = base_1.CoinFamily.ASI;
1059
+ this.explorerUrl = 'https://companion.fetch.ai/fetchhub-4/transactions/';
1060
+ }
1061
+ }
1062
+ class AsiTestnet extends Testnet {
1063
+ constructor() {
1064
+ super(...arguments);
1065
+ this.name = 'Testnet Fetch Native';
1066
+ this.family = base_1.CoinFamily.ASI;
1067
+ this.explorerUrl = 'https://companion.fetch.ai/dorado-1/transactions/';
1068
+ }
1069
+ }
1070
+ class Islm extends Mainnet {
1071
+ constructor() {
1072
+ super(...arguments);
1073
+ this.name = 'Haqq';
1074
+ this.family = base_1.CoinFamily.ISLM;
1075
+ this.explorerUrl = 'https://ping.pub/haqq/tx/';
1076
+ }
1077
+ }
1078
+ class IslmTestnet extends Testnet {
1079
+ constructor() {
1080
+ super(...arguments);
1081
+ this.name = 'HaqqTestnet';
1082
+ this.family = base_1.CoinFamily.ISLM;
1083
+ this.explorerUrl = 'https://testnet.ping.pub/haqq/tx/';
605
1084
  }
606
1085
  }
607
1086
  class Stx extends Mainnet {
@@ -609,7 +1088,7 @@ class Stx extends Mainnet {
609
1088
  super(...arguments);
610
1089
  this.name = 'Stx';
611
1090
  this.family = base_1.CoinFamily.STX;
612
- this.explorerUrl = 'https://explorer.stacks.co/txid/';
1091
+ this.explorerUrl = 'https://explorer.hiro.so/txid/';
613
1092
  this.sendmanymemoContractAddress = 'SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE';
614
1093
  this.stakingContractAddress = 'SP000000000000000000002Q6VF78';
615
1094
  }
@@ -619,7 +1098,7 @@ class StxTestnet extends Testnet {
619
1098
  super(...arguments);
620
1099
  this.name = 'StxTestnet';
621
1100
  this.family = base_1.CoinFamily.STX;
622
- this.explorerUrl = 'https://explorer.stacks.co/txid/?chain=testnet';
1101
+ this.explorerUrl = 'https://explorer.hiro.so/txid/?chain=testnet';
623
1102
  this.sendmanymemoContractAddress = 'ST3F1X4QGV2SM8XD96X45M6RTQXKA1PZJZZCQAB4B';
624
1103
  this.stakingContractAddress = 'ST000000000000000000002AMW42H';
625
1104
  }
@@ -656,11 +1135,33 @@ class Fiat extends Mainnet {
656
1135
  this.explorerUrl = undefined;
657
1136
  }
658
1137
  }
1138
+ class Bittensor extends Mainnet {
1139
+ constructor() {
1140
+ super(...arguments);
1141
+ this.name = 'Tao';
1142
+ this.family = base_1.CoinFamily.TAO;
1143
+ this.explorerUrl = 'https://taostats.io/extrinsic/';
1144
+ }
1145
+ }
1146
+ class BittensorTestnet extends Testnet {
1147
+ constructor() {
1148
+ super(...arguments);
1149
+ this.name = 'Testnet Tao';
1150
+ this.family = base_1.CoinFamily.TAO;
1151
+ this.explorerUrl = 'https://explorer.finney.opentensor.ai/#/';
1152
+ this.specName = 'node-subtensor';
1153
+ this.genesisHash = '0x8f9cf856bf558a14440e75569c9e58594757048d7b3a84b5d25f6bd978263105';
1154
+ this.specVersion = 224;
1155
+ this.chainName = 'bittensor';
1156
+ this.txVersion = 1;
1157
+ }
1158
+ }
659
1159
  class Trx extends Mainnet {
660
1160
  constructor() {
661
1161
  super(...arguments);
662
1162
  this.name = 'Trx';
663
1163
  this.family = base_1.CoinFamily.TRX;
1164
+ this.accountExplorerUrl = 'https://tronscan.org/#/address/';
664
1165
  this.explorerUrl = 'https://tronscan.org/#/transaction/';
665
1166
  this.maxFeeLimit = '5000000000';
666
1167
  this.contractCallFeeLimit = '100000000';
@@ -671,6 +1172,7 @@ class TrxTestnet extends Testnet {
671
1172
  super(...arguments);
672
1173
  this.name = 'TrxTestnet';
673
1174
  this.family = base_1.CoinFamily.TRX;
1175
+ this.accountExplorerUrl = 'https://shasta.tronscan.org/#/address/';
674
1176
  this.explorerUrl = 'https://shasta.tronscan.org/#/transaction/';
675
1177
  this.maxFeeLimit = '5000000000';
676
1178
  this.contractCallFeeLimit = '100000000';
@@ -689,7 +1191,7 @@ class XrpTestnet extends Testnet {
689
1191
  super(...arguments);
690
1192
  this.name = 'XrpTestnet';
691
1193
  this.family = base_1.CoinFamily.XRP;
692
- this.explorerUrl = 'https://test.bithomp.com/explorer/';
1194
+ this.explorerUrl = 'https://test.xrplexplorer.com/explorer/';
693
1195
  }
694
1196
  }
695
1197
  class Xtz extends Mainnet {
@@ -697,8 +1199,8 @@ class Xtz extends Mainnet {
697
1199
  super(...arguments);
698
1200
  this.name = 'Xtz';
699
1201
  this.family = base_1.CoinFamily.XTZ;
700
- this.explorerUrl = 'https://tezblock.io/transaction/';
701
- this.accountExplorerUrl = 'https://tezblock.io/account/';
1202
+ this.explorerUrl = 'https://tzstats.com/';
1203
+ this.accountExplorerUrl = 'https://tzstats.com/';
702
1204
  }
703
1205
  }
704
1206
  class XtzTestnet extends Testnet {
@@ -706,8 +1208,8 @@ class XtzTestnet extends Testnet {
706
1208
  super(...arguments);
707
1209
  this.name = 'XtzTestnet';
708
1210
  this.family = base_1.CoinFamily.XTZ;
709
- this.explorerUrl = 'https://carthagenet.tezblock.io/transaction/';
710
- this.accountExplorerUrl = 'https://carthagenet.tezblock.io/account/';
1211
+ this.explorerUrl = 'https://ghostnet.tzkt.io/';
1212
+ this.accountExplorerUrl = 'https://ghostnet.tzkt.io/';
711
1213
  }
712
1214
  }
713
1215
  class ZCash extends Mainnet {
@@ -733,7 +1235,7 @@ class Near extends Mainnet {
733
1235
  super(...arguments);
734
1236
  this.name = 'Near';
735
1237
  this.family = base_1.CoinFamily.NEAR;
736
- this.explorerUrl = 'https://explorer.near.org/transactions/';
1238
+ this.explorerUrl = 'https://nearblocks.io/txns/';
737
1239
  this.feeReserve = '50000000000000000000000';
738
1240
  this.storageReserve = '2000000000000000000000'; // feeReserve + storageReserve is minimum account balance for a NEAR wallet https://docs.near.org/integrator/faq#is-there-a-minimum-account-balance
739
1241
  }
@@ -743,7 +1245,7 @@ class NearTestnet extends Testnet {
743
1245
  super(...arguments);
744
1246
  this.name = 'NearTestnet';
745
1247
  this.family = base_1.CoinFamily.NEAR;
746
- this.explorerUrl = 'https://explorer.testnet.near.org/transactions/';
1248
+ this.explorerUrl = 'https://testnet.nearblocks.io/txns/';
747
1249
  this.feeReserve = '50000000000000000000000';
748
1250
  this.storageReserve = '2000000000000000000000'; // feeReserve + storageReserve is minimum account balance for a NEAR wallet https://docs.near.org/integrator/faq#is-there-a-minimum-account-balance
749
1251
  }
@@ -760,7 +1262,9 @@ class Polygon extends Mainnet {
760
1262
  this.forwarderImplementationAddress = '0x5397d0869aba0d55e96d5716d383f6e1d8695ed7';
761
1263
  this.walletFactoryAddress = '0xa7198f48c58e91f01317e70cd24c5cce475c1555';
762
1264
  this.walletImplementationAddress = '0xe5dcdc13b628c2df813db1080367e929c1507ca0';
763
- this.batcherContractAddress = '0x7adc9b3d7521710321bec7dd6897d337e53c2493';
1265
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1266
+ this.nativeCoinOperationHashPrefix = 'POLYGON';
1267
+ this.tokenOperationHashPrefix = 'POLYGON-ERC20';
764
1268
  }
765
1269
  }
766
1270
  class PolygonTestnet extends Testnet {
@@ -768,30 +1272,814 @@ class PolygonTestnet extends Testnet {
768
1272
  super(...arguments);
769
1273
  this.name = 'PolygonTestnet';
770
1274
  this.family = base_1.CoinFamily.POLYGON;
771
- this.explorerUrl = 'https://mumbai.polygonscan.com/tx/';
772
- this.accountExplorerUrl = 'https://mumbai.polygonscan.com/address/';
773
- this.chainId = 80001;
774
- this.forwarderFactoryAddress = '0x7d10cfdcb763375fb5f0a0e9101f490f0bf1b43a';
775
- this.forwarderImplementationAddress = '0xaa2216d72d7c149dfe4c3dd2154cd00994216506';
776
- this.walletFactoryAddress = '0xe37c07faec87be075ce4002b5fedbde00a4fe9d5';
777
- this.walletImplementationAddress = '0x11f8d70a4ee9d0962bb1160d776d4a996cfdff40';
778
- this.batcherContractAddress = '0xcdf01a31ea2a1d62951aac3a5743c4416f9da3fb';
1275
+ this.explorerUrl = 'https://amoy.polygonscan.com/tx/';
1276
+ this.accountExplorerUrl = 'https://amoy.polygonscan.com/address/';
1277
+ this.chainId = 80002;
1278
+ this.forwarderFactoryAddress = '0x23223fd7cfc5f34b20f38ebb9a489e1ff3c084d1';
1279
+ this.forwarderImplementationAddress = '0xd4c24325b5ef514fbb1ecc76a9bb4dcb57a8341e';
1280
+ this.walletFactoryAddress = '0xe9c16033e01bf9f94bf9f99fc0fefcfb8b124992';
1281
+ this.walletImplementationAddress = '0xf8360c213e4f44cce03e48cb9281254de2a7a566';
1282
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1283
+ this.nativeCoinOperationHashPrefix = 'POLYGON';
1284
+ this.tokenOperationHashPrefix = 'POLYGON-ERC20';
1285
+ }
1286
+ }
1287
+ class Optimism extends Mainnet {
1288
+ constructor() {
1289
+ super(...arguments);
1290
+ this.name = 'Optimism';
1291
+ this.family = base_1.CoinFamily.OPETH;
1292
+ this.explorerUrl = 'https://optimistic.etherscan.io/tx/';
1293
+ this.accountExplorerUrl = 'https://optimistic.etherscan.io/address/';
1294
+ this.chainId = 10;
1295
+ this.nativeCoinOperationHashPrefix = '10';
1296
+ this.tokenOperationHashPrefix = '10-ERC20';
1297
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1298
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1299
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
1300
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
1301
+ this.batcherContractAddress = '0xebe27913fcc7510eadf10643a8f86bf5492a9541';
1302
+ }
1303
+ }
1304
+ class OptimismTestnet extends Testnet {
1305
+ constructor() {
1306
+ super(...arguments);
1307
+ this.name = 'OptimismTestnet';
1308
+ this.family = base_1.CoinFamily.OPETH;
1309
+ this.explorerUrl = 'https://sepolia-optimism.etherscan.io/tx/';
1310
+ this.accountExplorerUrl = 'https://sepolia-optimism.etherscan.io/address/';
1311
+ this.chainId = 11155420;
1312
+ this.nativeCoinOperationHashPrefix = '11155420';
1313
+ this.tokenOperationHashPrefix = '11155420-ERC20';
1314
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1315
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1316
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
1317
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
1318
+ this.batcherContractAddress = '0xebe27913fcc7510eadf10643a8f86bf5492a9541';
1319
+ }
1320
+ }
1321
+ class ZkSync extends Mainnet {
1322
+ constructor() {
1323
+ super(...arguments);
1324
+ this.name = 'ZkSync';
1325
+ this.family = base_1.CoinFamily.ZKETH;
1326
+ this.explorerUrl = 'https://explorer.zksync.io/tx/';
1327
+ this.accountExplorerUrl = 'https://explorer.zksync.io/address/';
1328
+ this.chainId = 324;
1329
+ this.nativeCoinOperationHashPrefix = '324';
1330
+ this.tokenOperationHashPrefix = '324-ERC20';
1331
+ }
1332
+ }
1333
+ class ZkSyncTestnet extends Testnet {
1334
+ constructor() {
1335
+ super(...arguments);
1336
+ this.name = 'ZkSyncTestnet';
1337
+ this.family = base_1.CoinFamily.ZKETH;
1338
+ this.explorerUrl = 'https://sepolia.explorer.zksync.io/tx/';
1339
+ this.accountExplorerUrl = 'https://sepolia.explorer.zksync.io/address/';
1340
+ this.chainId = 300;
1341
+ this.nativeCoinOperationHashPrefix = '300';
1342
+ this.tokenOperationHashPrefix = '300-ERC20';
1343
+ this.forwarderFactoryAddress = '0xdd498702f44c4da08eb9e08d3f015eefe5cb71fc';
1344
+ this.forwarderImplementationAddress = '0xbe69cae311191fb45e648ed20847f06fad2dbab4';
1345
+ this.walletFactoryAddress = '0x4550e1e7616d3364877fc6c9324938dab678621a';
1346
+ this.walletImplementationAddress = '0x92db2759d1dca129a0d9d46877f361be819184c4';
1347
+ }
1348
+ }
1349
+ class Berachain extends Mainnet {
1350
+ constructor() {
1351
+ super(...arguments);
1352
+ this.name = 'Bera';
1353
+ this.family = base_1.CoinFamily.BERA;
1354
+ this.explorerUrl = 'https://berascan.com/tx/';
1355
+ this.accountExplorerUrl = 'https://berascan.com/address/';
1356
+ this.chainId = 80094;
1357
+ this.nativeCoinOperationHashPrefix = '80094';
1358
+ this.tokenOperationHashPrefix = '80094-ERC20';
1359
+ this.batcherContractAddress = '0xedf1a0016d9c41d2ad0c275e1ba708361a90c0d1';
1360
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1361
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1362
+ }
1363
+ }
1364
+ class BerachainTestnet extends Testnet {
1365
+ constructor() {
1366
+ super(...arguments);
1367
+ this.name = 'BeraTestnet';
1368
+ this.family = base_1.CoinFamily.BERA;
1369
+ this.explorerUrl = 'https://testnet.berascan.com/tx/';
1370
+ this.accountExplorerUrl = 'https://testnet.berascan.com/address/';
1371
+ this.chainId = 80000;
1372
+ this.nativeCoinOperationHashPrefix = '80000';
1373
+ this.tokenOperationHashPrefix = '80000-ERC20';
1374
+ this.batcherContractAddress = '0xedf1a0016d9c41d2ad0c275e1ba708361a90c0d1';
1375
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1376
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1377
+ }
1378
+ }
1379
+ class Oas extends Mainnet {
1380
+ constructor() {
1381
+ super(...arguments);
1382
+ this.name = 'Oas';
1383
+ this.family = base_1.CoinFamily.OAS;
1384
+ this.explorerUrl = 'https://explorer.oasys.games/tx/';
1385
+ this.accountExplorerUrl = 'https://explorer.oasys.games/address/';
1386
+ this.chainId = 248;
1387
+ this.nativeCoinOperationHashPrefix = '248';
1388
+ this.batcherContractAddress = '0xedf1a0016d9c41d2ad0c275e1ba708361a90c0d1';
1389
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1390
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1391
+ }
1392
+ }
1393
+ class OasTestnet extends Testnet {
1394
+ constructor() {
1395
+ super(...arguments);
1396
+ this.name = 'OasTestnet';
1397
+ this.family = base_1.CoinFamily.OAS;
1398
+ this.explorerUrl = 'https://explorer.testnet.oasys.games/tx/';
1399
+ this.accountExplorerUrl = 'https://explorer.testnet.oasys.games/address/';
1400
+ this.chainId = 9372;
1401
+ this.nativeCoinOperationHashPrefix = '9372';
1402
+ this.batcherContractAddress = '0xedf1a0016d9c41d2ad0c275e1ba708361a90c0d1';
1403
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1404
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1405
+ }
1406
+ }
1407
+ class Coredao extends Mainnet {
1408
+ constructor() {
1409
+ super(...arguments);
1410
+ this.name = 'Coredao';
1411
+ this.family = base_1.CoinFamily.COREDAO;
1412
+ this.explorerUrl = 'https://scan.coredao.org/tx/';
1413
+ this.accountExplorerUrl = 'https://scan.coredao.org/address/';
1414
+ this.chainId = 1116;
1415
+ this.nativeCoinOperationHashPrefix = '1116';
1416
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1417
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1418
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1419
+ }
1420
+ }
1421
+ class CoredaoTestnet extends Testnet {
1422
+ constructor() {
1423
+ super(...arguments);
1424
+ this.name = 'CoredaoTestnet';
1425
+ this.family = base_1.CoinFamily.COREDAO;
1426
+ this.explorerUrl = 'https://scan.test2.btcs.network/tx/';
1427
+ this.accountExplorerUrl = 'https://scan.test2.btcs.network/address/';
1428
+ this.chainId = 1114;
1429
+ this.nativeCoinOperationHashPrefix = '1114';
1430
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1431
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1432
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1433
+ }
1434
+ }
1435
+ class IP extends Mainnet {
1436
+ constructor() {
1437
+ super(...arguments);
1438
+ this.name = 'Story';
1439
+ this.family = base_1.CoinFamily.IP;
1440
+ this.explorerUrl = 'https://www.storyscan.io/tx/';
1441
+ this.accountExplorerUrl = 'https://www.storyscan.io/address/';
1442
+ this.chainId = 1514;
1443
+ this.nativeCoinOperationHashPrefix = '1514';
1444
+ }
1445
+ }
1446
+ class IPTestnet extends Testnet {
1447
+ constructor() {
1448
+ super(...arguments);
1449
+ this.name = 'StoryTestnet';
1450
+ this.family = base_1.CoinFamily.IP;
1451
+ this.explorerUrl = 'https://aeneid.explorer.story.foundation/transactions/';
1452
+ this.accountExplorerUrl = 'https://aeneid.storyscan.io/address/';
1453
+ this.chainId = 1315;
1454
+ this.nativeCoinOperationHashPrefix = '1315';
1455
+ }
1456
+ }
1457
+ class ApeChain extends Mainnet {
1458
+ constructor() {
1459
+ super(...arguments);
1460
+ this.name = 'ApeChain';
1461
+ this.family = base_1.CoinFamily.APECHAIN;
1462
+ this.explorerUrl = 'https://apescan.io/tx/';
1463
+ this.accountExplorerUrl = 'https://apescan.io/address/';
1464
+ this.chainId = 33139;
1465
+ this.nativeCoinOperationHashPrefix = '33139';
1466
+ }
1467
+ }
1468
+ class ApeChainTestnet extends Testnet {
1469
+ constructor() {
1470
+ super(...arguments);
1471
+ this.name = 'ApeChainTestnet';
1472
+ this.family = base_1.CoinFamily.APECHAIN;
1473
+ this.explorerUrl = 'https://curtis.apescan.io/tx/';
1474
+ this.accountExplorerUrl = 'https://curtis.apescan.io/address/';
1475
+ this.chainId = 33111;
1476
+ this.nativeCoinOperationHashPrefix = '33111';
1477
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1478
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1479
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
1480
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
1481
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1482
+ }
1483
+ }
1484
+ class Pharos extends Mainnet {
1485
+ constructor() {
1486
+ super(...arguments);
1487
+ this.name = 'Pharos';
1488
+ this.family = base_1.CoinFamily.PHRS;
1489
+ this.explorerUrl = ''; // TODO: WIN-5787 Add mainnet url when available
1490
+ this.accountExplorerUrl = ''; // TODO: WIN-5787 Add mainnet url when available
1491
+ this.chainId = 688688; // TODO: WIN-5787 Add mainnet id when available
1492
+ this.nativeCoinOperationHashPrefix = '688688';
1493
+ }
1494
+ }
1495
+ class PharosTestnet extends Testnet {
1496
+ constructor() {
1497
+ super(...arguments);
1498
+ this.name = 'PharosTestnet';
1499
+ this.family = base_1.CoinFamily.PHRS;
1500
+ this.explorerUrl = 'https://testnet.pharosscan.xyz/tx/';
1501
+ this.accountExplorerUrl = 'https://testnet.pharosscan.xyz/address/';
1502
+ this.chainId = 688688;
1503
+ this.nativeCoinOperationHashPrefix = '688688';
1504
+ }
1505
+ }
1506
+ class Creditcoin extends Mainnet {
1507
+ constructor() {
1508
+ super(...arguments);
1509
+ this.name = 'Creditcoin';
1510
+ this.family = base_1.CoinFamily.CTC;
1511
+ this.explorerUrl = 'https://creditcoin.blockscout.com/tx/';
1512
+ this.accountExplorerUrl = 'https://creditcoin.blockscout.com/address/';
1513
+ this.chainId = 102030;
1514
+ this.nativeCoinOperationHashPrefix = '102030';
1515
+ }
1516
+ }
1517
+ class Plasma extends Mainnet {
1518
+ constructor() {
1519
+ super(...arguments);
1520
+ this.name = 'Plasma';
1521
+ this.family = base_1.CoinFamily.XPL;
1522
+ this.explorerUrl = ''; //TODO- WIN-6654 when mainnet details available
1523
+ this.accountExplorerUrl = ''; //TODO- WIN-6654 when mainnet details available
1524
+ this.chainId = 9999999999999; //TODO- WIN-6654 when mainnet details available ,this is a dummy value
1525
+ this.nativeCoinOperationHashPrefix = ''; //TODO- WIN-6654 when mainnet details available
1526
+ }
1527
+ }
1528
+ class PlasmaTestnet extends Testnet {
1529
+ constructor() {
1530
+ super(...arguments);
1531
+ this.name = 'PlasmaTestnet';
1532
+ this.family = base_1.CoinFamily.XPL;
1533
+ this.explorerUrl = 'https://testnet.plasmascan.to/blockchain/transactions';
1534
+ this.accountExplorerUrl = 'http://testnet.plasmaexplorer.io/address/';
1535
+ this.chainId = 9746;
1536
+ this.nativeCoinOperationHashPrefix = '9746';
1537
+ }
1538
+ }
1539
+ class HypeEVMTestnet extends Testnet {
1540
+ constructor() {
1541
+ super(...arguments);
1542
+ this.name = 'HyperliquidEVMTestnet';
1543
+ this.family = base_1.CoinFamily.HYPEEVM;
1544
+ this.explorerUrl = 'https://testnet.purrsec.com/tx/';
1545
+ this.accountExplorerUrl = 'https://testnet.purrsec.com/address/';
1546
+ this.chainId = 998;
1547
+ this.nativeCoinOperationHashPrefix = '998';
1548
+ }
1549
+ }
1550
+ class HypeEVM extends Mainnet {
1551
+ constructor() {
1552
+ super(...arguments);
1553
+ this.name = 'HyperliquidEVM';
1554
+ this.family = base_1.CoinFamily.HYPEEVM;
1555
+ this.explorerUrl = 'https://hyperevm-explorer.vercel.app/tx/';
1556
+ this.accountExplorerUrl = 'https://hyperevm-explorer.vercel.app/address/';
1557
+ this.chainId = 999;
1558
+ this.nativeCoinOperationHashPrefix = '999';
1559
+ }
1560
+ }
1561
+ class LineaETH extends Mainnet {
1562
+ constructor() {
1563
+ super(...arguments);
1564
+ this.name = 'Linea Ethereum Testnet';
1565
+ this.family = base_1.CoinFamily.LINEAETH;
1566
+ this.explorerUrl = 'https://lineascan.build/tx/';
1567
+ this.accountExplorerUrl = 'https://lineascan.build/address/';
1568
+ this.chainId = 59144;
1569
+ this.nativeCoinOperationHashPrefix = '59144';
1570
+ }
1571
+ }
1572
+ class LineaETHTestnet extends Testnet {
1573
+ constructor() {
1574
+ super(...arguments);
1575
+ this.name = 'Linea Ethereum Testnet';
1576
+ this.family = base_1.CoinFamily.LINEAETH;
1577
+ this.explorerUrl = 'https://sepolia.lineascan.build/tx/';
1578
+ this.accountExplorerUrl = 'https://sepolia.lineascan.build/address/';
1579
+ this.chainId = 59141;
1580
+ this.nativeCoinOperationHashPrefix = '59141';
1581
+ }
1582
+ }
1583
+ class CreditcoinTestnet extends Testnet {
1584
+ constructor() {
1585
+ super(...arguments);
1586
+ this.name = 'CreditcoinTestnet';
1587
+ this.family = base_1.CoinFamily.CTC;
1588
+ this.explorerUrl = 'https://creditcoin-testnet.blockscout.com/tx/';
1589
+ this.accountExplorerUrl = 'https://creditcoin-testnet.blockscout.com/address/';
1590
+ this.chainId = 102031;
1591
+ this.nativeCoinOperationHashPrefix = '102031';
1592
+ }
1593
+ }
1594
+ class Sonic extends Mainnet {
1595
+ constructor() {
1596
+ super(...arguments);
1597
+ this.name = 'Sonic';
1598
+ this.family = base_1.CoinFamily.SONIC;
1599
+ this.explorerUrl = 'https://sonicscan.org/tx/';
1600
+ this.accountExplorerUrl = 'https://sonicscan.org/address/';
1601
+ this.chainId = 146;
1602
+ this.nativeCoinOperationHashPrefix = '146';
1603
+ }
1604
+ }
1605
+ class SonicTestnet extends Testnet {
1606
+ constructor() {
1607
+ super(...arguments);
1608
+ this.name = 'SonicTestnet';
1609
+ this.family = base_1.CoinFamily.SONIC;
1610
+ this.explorerUrl = 'https://testnet.sonicscan.org/tx/';
1611
+ this.accountExplorerUrl = 'https://testnet.sonicscan.org/address/';
1612
+ this.chainId = 57054;
1613
+ this.nativeCoinOperationHashPrefix = '57054';
1614
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
1615
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1616
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1617
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1618
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
1619
+ }
1620
+ }
1621
+ class Kaia extends Mainnet {
1622
+ constructor() {
1623
+ super(...arguments);
1624
+ this.name = 'Kaia';
1625
+ this.family = base_1.CoinFamily.KAIA;
1626
+ this.explorerUrl = 'https://kaiascan.io/tx/';
1627
+ this.accountExplorerUrl = 'https://kaiascan.io/address/';
1628
+ this.chainId = 8217;
1629
+ this.nativeCoinOperationHashPrefix = '8217';
1630
+ }
1631
+ }
1632
+ class KaiaTestnet extends Testnet {
1633
+ constructor() {
1634
+ super(...arguments);
1635
+ this.name = 'KaiaTestnet';
1636
+ this.family = base_1.CoinFamily.KAIA;
1637
+ this.explorerUrl = 'https://kairos.kaiascan.io/tx/';
1638
+ this.accountExplorerUrl = 'https://kairos.kaiascan.io/address/';
1639
+ this.chainId = 1001;
1640
+ this.nativeCoinOperationHashPrefix = '1001';
1641
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
1642
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1643
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1644
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1645
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
1646
+ }
1647
+ }
1648
+ class Irys extends Mainnet {
1649
+ constructor() {
1650
+ super(...arguments);
1651
+ this.name = 'Irys';
1652
+ this.family = base_1.CoinFamily.IRYS;
1653
+ this.explorerUrl = ''; //WIN-6191 add mainnet url when available
1654
+ this.accountExplorerUrl = ''; //WIN-6191 add mainnet url when available
1655
+ this.chainId = 1270; //WIN-6191 add mainnet id when available
1656
+ this.nativeCoinOperationHashPrefix = '1270';
1657
+ }
1658
+ }
1659
+ class IrysTestnet extends Testnet {
1660
+ constructor() {
1661
+ super(...arguments);
1662
+ this.name = 'IrysTestnet';
1663
+ this.family = base_1.CoinFamily.IRYS;
1664
+ this.explorerUrl = 'https://testnet-explorer.irys.xyz/tx/';
1665
+ this.accountExplorerUrl = 'https://testnet-explorer.irys.xyz/address/';
1666
+ this.chainId = 1270;
1667
+ this.nativeCoinOperationHashPrefix = '1270';
1668
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
1669
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1670
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1671
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1672
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
1673
+ }
1674
+ }
1675
+ class Og extends Mainnet {
1676
+ constructor() {
1677
+ super(...arguments);
1678
+ this.name = 'Zero Gravity';
1679
+ this.family = base_1.CoinFamily.OG;
1680
+ this.explorerUrl = ''; //TODO- WIN-6519 when mainnet details available
1681
+ this.accountExplorerUrl = ''; //TODO- WIN-6519 when mainnet details available
1682
+ this.chainId = 9999999999999; //TODO- WIN-6519 when mainnet details available ,this is a dummy value
1683
+ this.nativeCoinOperationHashPrefix = ''; //TODO- WIN-6519 when mainnet details available
1684
+ }
1685
+ }
1686
+ class OgTestnet extends Testnet {
1687
+ constructor() {
1688
+ super(...arguments);
1689
+ this.name = 'Zero Gravity Testnet';
1690
+ this.family = base_1.CoinFamily.OG;
1691
+ this.explorerUrl = 'https://chainscan-galileo.0g.ai/tx/';
1692
+ this.accountExplorerUrl = 'https://chainscan-galileo.0g.ai/address/';
1693
+ this.chainId = 16601;
1694
+ this.nativeCoinOperationHashPrefix = '16601';
1695
+ }
1696
+ }
1697
+ class Xdc extends Mainnet {
1698
+ constructor() {
1699
+ super(...arguments);
1700
+ this.name = 'XdcChain';
1701
+ this.family = base_1.CoinFamily.XDC;
1702
+ this.explorerUrl = 'https://xdcscan.com/tx/';
1703
+ this.accountExplorerUrl = 'https://xdcscan.com/address/';
1704
+ this.chainId = 50;
1705
+ this.nativeCoinOperationHashPrefix = '50';
1706
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1707
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1708
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1709
+ }
1710
+ }
1711
+ class XdcTestnet extends Testnet {
1712
+ constructor() {
1713
+ super(...arguments);
1714
+ this.name = 'XdcChainTestnet';
1715
+ this.family = base_1.CoinFamily.XDC;
1716
+ this.explorerUrl = 'https://testnet.xdcscan.com/tx/';
1717
+ this.accountExplorerUrl = 'https://testnet.xdcscan.com/address/';
1718
+ this.chainId = 51;
1719
+ this.nativeCoinOperationHashPrefix = '51';
1720
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1721
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1722
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1723
+ }
1724
+ }
1725
+ class Wemix extends Mainnet {
1726
+ constructor() {
1727
+ super(...arguments);
1728
+ this.name = 'WemixChain';
1729
+ this.family = base_1.CoinFamily.WEMIX;
1730
+ this.explorerUrl = 'https://explorer.wemix.com/tx/';
1731
+ this.accountExplorerUrl = 'https://explorer.wemix.com/address/';
1732
+ this.chainId = 1111;
1733
+ this.nativeCoinOperationHashPrefix = '1111';
1734
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1735
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1736
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1737
+ }
1738
+ }
1739
+ class WemixTestnet extends Testnet {
1740
+ constructor() {
1741
+ super(...arguments);
1742
+ this.name = 'WemixChainTestnet';
1743
+ this.family = base_1.CoinFamily.WEMIX;
1744
+ this.explorerUrl = 'https://explorer.test.wemix.com/tx/';
1745
+ this.accountExplorerUrl = 'https://explorer.test.wemix.com/address/';
1746
+ this.chainId = 1112;
1747
+ this.nativeCoinOperationHashPrefix = '1112';
1748
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1749
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1750
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1751
+ }
1752
+ }
1753
+ class MonadTestnet extends Testnet {
1754
+ constructor() {
1755
+ super(...arguments);
1756
+ this.name = 'MonadTestnet';
1757
+ this.family = base_1.CoinFamily.MON;
1758
+ this.explorerUrl = 'https://testnet.monadexplorer.com/tx/';
1759
+ this.accountExplorerUrl = 'https://testnet.monadexplorer.com/address/';
1760
+ this.chainId = 10143;
1761
+ this.nativeCoinOperationHashPrefix = '10143';
1762
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
1763
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1764
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1765
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1766
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
1767
+ }
1768
+ }
1769
+ class Monad extends Mainnet {
1770
+ constructor() {
1771
+ super(...arguments);
1772
+ this.name = 'Monad';
1773
+ this.family = base_1.CoinFamily.MON;
1774
+ this.explorerUrl = 'https://mainnet-beta.monvision.io/tx';
1775
+ this.chainId = 143;
1776
+ this.nativeCoinOperationHashPrefix = '143';
1777
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
1778
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1779
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1780
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1781
+ }
1782
+ }
1783
+ class World extends Mainnet {
1784
+ constructor() {
1785
+ super(...arguments);
1786
+ this.name = 'Worldchain';
1787
+ this.family = base_1.CoinFamily.WORLD;
1788
+ this.explorerUrl = 'https://worldscan.org/tx/';
1789
+ this.accountExplorerUrl = 'https://worldscan.org/address/';
1790
+ this.chainId = 480;
1791
+ this.nativeCoinOperationHashPrefix = '480';
1792
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
1793
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1794
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1795
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1796
+ }
1797
+ }
1798
+ class WorldTestnet extends Testnet {
1799
+ constructor() {
1800
+ super(...arguments);
1801
+ this.name = 'WorldchainTestnet';
1802
+ this.family = base_1.CoinFamily.WORLD;
1803
+ this.explorerUrl = 'https://sepolia.worldscan.org/tx/';
1804
+ this.accountExplorerUrl = 'https://sepolia.worldscan.org/address/';
1805
+ this.chainId = 4801;
1806
+ this.nativeCoinOperationHashPrefix = '4801';
1807
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1808
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1809
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1810
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
1811
+ }
1812
+ }
1813
+ class Soneium extends Mainnet {
1814
+ constructor() {
1815
+ super(...arguments);
1816
+ this.name = 'Soneium';
1817
+ this.family = base_1.CoinFamily.SONEIUM;
1818
+ this.explorerUrl = 'https://soneium.blockscout.com/tx/';
1819
+ this.accountExplorerUrl = 'https://soneium.blockscout.com/address/';
1820
+ this.chainId = 1868;
1821
+ this.nativeCoinOperationHashPrefix = '1868';
1822
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
1823
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
1824
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1825
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1826
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1827
+ }
1828
+ }
1829
+ class SoneiumTestnet extends Testnet {
1830
+ constructor() {
1831
+ super(...arguments);
1832
+ this.name = 'SoneiumTestnet';
1833
+ this.family = base_1.CoinFamily.SONEIUM;
1834
+ this.explorerUrl = 'https://soneium-minato.blockscout.com/tx/';
1835
+ this.accountExplorerUrl = 'https://soneium-minato.blockscout.com/address/';
1836
+ this.chainId = 1946;
1837
+ this.nativeCoinOperationHashPrefix = '1946';
1838
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
1839
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1840
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1841
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1842
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
1843
+ }
1844
+ }
1845
+ class SeiEvm extends Mainnet {
1846
+ constructor() {
1847
+ super(...arguments);
1848
+ this.name = 'Seievm';
1849
+ this.family = base_1.CoinFamily.SEIEVM;
1850
+ this.explorerUrl = 'https://seitrace.com/tx/';
1851
+ this.accountExplorerUrl = 'https://seitrace.com/address/';
1852
+ this.chainId = 1329;
1853
+ this.nativeCoinOperationHashPrefix = '1329';
1854
+ }
1855
+ }
1856
+ class SeiEvmTestnet extends Testnet {
1857
+ constructor() {
1858
+ super(...arguments);
1859
+ this.name = 'SeiEvmTestnet';
1860
+ this.family = base_1.CoinFamily.SEIEVM;
1861
+ this.explorerUrl = 'https://seitrace.com/tx/';
1862
+ this.accountExplorerUrl = 'https://seitrace.com/address/';
1863
+ this.chainId = 1328;
1864
+ this.nativeCoinOperationHashPrefix = '1328';
1865
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
1866
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1867
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1868
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1869
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
1870
+ }
1871
+ }
1872
+ class Somnia extends Mainnet {
1873
+ constructor() {
1874
+ super(...arguments);
1875
+ this.name = 'Somnia';
1876
+ this.family = base_1.CoinFamily.STT;
1877
+ this.explorerUrl = 'https://mainnet.somnia.w3us.site/tx/';
1878
+ this.chainId = 5031;
1879
+ this.nativeCoinOperationHashPrefix = '5031';
1880
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
1881
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
1882
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1883
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1884
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1885
+ }
1886
+ }
1887
+ class SomniaTestnet extends Testnet {
1888
+ constructor() {
1889
+ super(...arguments);
1890
+ this.name = 'SomniaTestnet';
1891
+ this.family = base_1.CoinFamily.STT;
1892
+ this.explorerUrl = 'https://shannon-explorer.somnia.network/tx/';
1893
+ this.accountExplorerUrl = 'https://shannon-explorer.somnia.network/address/';
1894
+ this.chainId = 50312;
1895
+ this.nativeCoinOperationHashPrefix = '50312';
1896
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
1897
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1898
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1899
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1900
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
1901
+ }
1902
+ }
1903
+ class Somi extends Mainnet {
1904
+ constructor() {
1905
+ super(...arguments);
1906
+ this.name = 'Somnia';
1907
+ this.family = base_1.CoinFamily.SOMI;
1908
+ this.explorerUrl = 'https://mainnet.somnia.w3us.site/tx/';
1909
+ this.chainId = 5031;
1910
+ this.nativeCoinOperationHashPrefix = '5031';
1911
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
1912
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
1913
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1914
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1915
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1916
+ }
1917
+ }
1918
+ class Flare extends Mainnet {
1919
+ constructor() {
1920
+ super(...arguments);
1921
+ this.name = 'Flarechain';
1922
+ this.family = base_1.CoinFamily.FLR;
1923
+ this.explorerUrl = 'https://flare-explorer.flare.network/tx/';
1924
+ this.accountExplorerUrl = 'https://flare-explorer.flare.network/address/';
1925
+ this.chainId = 14;
1926
+ this.nativeCoinOperationHashPrefix = '14';
1927
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1928
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1929
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1930
+ }
1931
+ }
1932
+ class FlareTestnet extends Testnet {
1933
+ constructor() {
1934
+ super(...arguments);
1935
+ this.name = 'FlarechainTestnet';
1936
+ this.family = base_1.CoinFamily.FLR;
1937
+ this.explorerUrl = 'https://coston2-explorer.flare.network/tx/';
1938
+ this.accountExplorerUrl = 'https://coston2-explorer.flare.network/address/';
1939
+ this.chainId = 114;
1940
+ this.nativeCoinOperationHashPrefix = '114';
1941
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1942
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1943
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1944
+ }
1945
+ }
1946
+ class Songbird extends Mainnet {
1947
+ constructor() {
1948
+ super(...arguments);
1949
+ this.name = 'Songbirdchain';
1950
+ this.family = base_1.CoinFamily.SGB;
1951
+ this.explorerUrl = 'https://songbird-explorer.flare.network/tx/';
1952
+ this.accountExplorerUrl = 'https://songbird-explorer.flare.network/address/';
1953
+ this.chainId = 19;
1954
+ this.nativeCoinOperationHashPrefix = '19';
1955
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1956
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1957
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1958
+ }
1959
+ }
1960
+ class SongbirdTestnet extends Testnet {
1961
+ constructor() {
1962
+ super(...arguments);
1963
+ this.name = 'SongbirdchainTestnet';
1964
+ this.family = base_1.CoinFamily.SGB;
1965
+ this.explorerUrl = 'https://coston-explorer.flare.network/tx/';
1966
+ this.accountExplorerUrl = 'https://coston-explorer.flare.network/address/';
1967
+ this.chainId = 16;
1968
+ this.nativeCoinOperationHashPrefix = '16';
1969
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1970
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1971
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1972
+ }
1973
+ }
1974
+ class BaseChainTestnet extends Testnet {
1975
+ constructor() {
1976
+ super(...arguments);
1977
+ //BaseETH testnet
1978
+ this.name = 'BaseChainTestnet';
1979
+ this.family = base_1.CoinFamily.BASEETH;
1980
+ this.explorerUrl = 'https://sepolia.basescan.org/tx/';
1981
+ this.accountExplorerUrl = 'https://sepolia.basescan.org/address/';
1982
+ this.chainId = 84532;
1983
+ this.nativeCoinOperationHashPrefix = '84532';
1984
+ this.tokenOperationHashPrefix = '84532-ERC20';
1985
+ this.forwarderFactoryAddress = '0xdd498702f44c4da08eb9e08d3f015eefe5cb71fc';
1986
+ this.forwarderImplementationAddress = '0xbe69cae311191fb45e648ed20847f06fad2dbab4';
1987
+ this.walletFactoryAddress = '0x4550e1e7616d3364877fc6c9324938dab678621a';
1988
+ this.walletImplementationAddress = '0x92db2759d1dca129a0d9d46877f361be819184c4';
1989
+ }
1990
+ }
1991
+ class BaseChain extends Mainnet {
1992
+ constructor() {
1993
+ super(...arguments);
1994
+ //BaseETH
1995
+ this.name = 'BaseChain';
1996
+ this.family = base_1.CoinFamily.BASEETH;
1997
+ this.explorerUrl = 'https://basescan.org/tx/';
1998
+ this.accountExplorerUrl = 'https://basescan.org/address/';
1999
+ this.chainId = 8453;
2000
+ this.nativeCoinOperationHashPrefix = '8453';
2001
+ this.tokenOperationHashPrefix = '8453-ERC20';
2002
+ this.forwarderFactoryAddress = '0xdd498702f44c4da08eb9e08d3f015eefe5cb71fc';
2003
+ this.forwarderImplementationAddress = '0xbe69cae311191fb45e648ed20847f06fad2dbab4';
2004
+ this.walletFactoryAddress = '0x4550e1e7616d3364877fc6c9324938dab678621a';
2005
+ this.walletImplementationAddress = '0x92db2759d1dca129a0d9d46877f361be819184c4';
2006
+ }
2007
+ }
2008
+ class Polymesh extends Mainnet {
2009
+ constructor() {
2010
+ super(...arguments);
2011
+ this.name = 'Polymesh';
2012
+ this.family = base_1.CoinFamily.POLYX;
2013
+ this.explorerUrl = 'https://polymesh.subscan.io/extrinsic/';
2014
+ this.specName = 'polymesh_mainnet';
2015
+ this.genesisHash = '0x6fbd74e5e1d0a61d52ccfe9d4adaed16dd3a7caa37c6bc4d0c2fa12e8b2f4063';
2016
+ this.specVersion = 7002000;
2017
+ this.chainName = 'Polymesh Mainnet';
2018
+ this.txVersion = 7;
2019
+ }
2020
+ }
2021
+ class PolymeshTestnet extends Testnet {
2022
+ constructor() {
2023
+ super(...arguments);
2024
+ this.name = 'PolymeshTestnet';
2025
+ this.family = base_1.CoinFamily.POLYX;
2026
+ this.explorerUrl = 'https://polymesh-testnet.subscan.io/extrinsic/';
2027
+ this.specName = 'polymesh_testnet';
2028
+ this.genesisHash = '0x2ace05e703aa50b48c0ccccfc8b424f7aab9a1e2c424ed12e45d20b1e8ffd0d6';
2029
+ this.specVersion = 7002000;
2030
+ this.chainName = 'Polymesh Testnet';
2031
+ this.txVersion = 7;
2032
+ }
2033
+ }
2034
+ class Vet extends Mainnet {
2035
+ constructor() {
2036
+ super(...arguments);
2037
+ this.name = 'VeChain';
2038
+ this.family = base_1.CoinFamily.VET;
2039
+ this.explorerUrl = 'https://explore.vechain.org/transactions/';
2040
+ this.accountExplorerUrl = 'https://explore.vechain.org/accounts/';
2041
+ this.chainId = 100009;
2042
+ this.forwarderFactoryAddress = '0x65343e18c376d2fc8c3cf10cd146d63e2e0dc9ef';
2043
+ this.forwarderImplementationAddress = '0x62de34c87f847d385af07f6c25dbd97b1fffefc0';
2044
+ }
2045
+ }
2046
+ class VetTestnet extends Testnet {
2047
+ constructor() {
2048
+ super(...arguments);
2049
+ this.name = 'VeChainTestnet';
2050
+ this.family = base_1.CoinFamily.VET;
2051
+ this.explorerUrl = 'https://explore-testnet.vechain.org/transactions/';
2052
+ this.accountExplorerUrl = 'https://explore-testnet.vechain.org/accounts/';
2053
+ this.chainId = 100010;
2054
+ this.forwarderFactoryAddress = '0x65343e18c376d2fc8c3cf10cd146d63e2e0dc9ef';
2055
+ this.forwarderImplementationAddress = '0x62de34c87f847d385af07f6c25dbd97b1fffefc0';
779
2056
  }
780
2057
  }
781
2058
  exports.Networks = {
782
2059
  main: {
783
2060
  ada: Object.freeze(new Ada()),
784
2061
  algorand: Object.freeze(new Algorand()),
2062
+ apechain: Object.freeze(new ApeChain()),
2063
+ apt: Object.freeze(new Apt()),
2064
+ arbitrum: Object.freeze(new Arbitrum()),
2065
+ asi: Object.freeze(new Asi()),
785
2066
  atom: Object.freeze(new Atom()),
786
2067
  avalancheC: Object.freeze(new AvalancheC()),
787
2068
  avalancheP: Object.freeze(new AvalancheP()),
2069
+ baby: Object.freeze(new Baby()),
2070
+ basechain: Object.freeze(new BaseChain()),
788
2071
  bitcoin: Object.freeze(new Bitcoin()),
789
2072
  bitcoinCash: Object.freeze(new BitcoinCash()),
790
2073
  bitcoinGold: Object.freeze(new BitcoinGold()),
791
2074
  bitcoinSV: Object.freeze(new BitcoinSV()),
2075
+ bera: Object.freeze(new Berachain()),
2076
+ bld: Object.freeze(new Bld()),
792
2077
  bsc: Object.freeze(new BinanceSmartChain()),
793
2078
  casper: Object.freeze(new Casper()),
794
2079
  celo: Object.freeze(new Celo()),
2080
+ coredao: Object.freeze(new Coredao()),
2081
+ coreum: Object.freeze(new Coreum()),
2082
+ cronos: Object.freeze(new Cronos()),
795
2083
  dash: Object.freeze(new Dash()),
796
2084
  dogecoin: Object.freeze(new Dogecoin()),
797
2085
  dot: Object.freeze(new Polkadot()),
@@ -802,60 +2090,157 @@ exports.Networks = {
802
2090
  ethereumClassic: Object.freeze(new EthereumClassic()),
803
2091
  ethereumW: Object.freeze(new EthereumW()),
804
2092
  fiat: Object.freeze(new Fiat()),
2093
+ fetchai: Object.freeze(new FetchAi()),
2094
+ flr: Object.freeze(new Flare()),
2095
+ hash: Object.freeze(new Hash()),
805
2096
  hedera: Object.freeze(new Hedera()),
2097
+ icp: Object.freeze(new Icp()),
2098
+ ip: Object.freeze(new IP()),
2099
+ initia: Object.freeze(new Initia()),
2100
+ injective: Object.freeze(new Injective()),
2101
+ irys: Object.freeze(new Irys()),
2102
+ islm: Object.freeze(new Islm()),
2103
+ kaia: Object.freeze(new Kaia()),
2104
+ kava: Object.freeze(new Kava()),
2105
+ lnbtc: Object.freeze(new LightningBitcoin()),
806
2106
  litecoin: Object.freeze(new Litecoin()),
2107
+ mon: Object.freeze(new Monad()),
2108
+ mantra: Object.freeze(new Mantra()),
807
2109
  polygon: Object.freeze(new Polygon()),
2110
+ polyx: Object.freeze(new Polymesh()),
2111
+ phrs: Object.freeze(new Pharos()),
2112
+ ctc: Object.freeze(new Creditcoin()),
2113
+ hypeevm: Object.freeze(new HypeEVM()),
2114
+ lineaeth: Object.freeze(new LineaETH()),
2115
+ oas: Object.freeze(new Oas()),
2116
+ og: Object.freeze(new Og()),
808
2117
  ofc: Object.freeze(new Ofc()),
2118
+ optimism: Object.freeze(new Optimism()),
2119
+ osmo: Object.freeze(new Osmo()),
809
2120
  rbtc: Object.freeze(new Rbtc()),
2121
+ rune: Object.freeze(new Rune()),
810
2122
  stellar: Object.freeze(new Stellar()),
2123
+ sei: Object.freeze(new Sei()),
2124
+ seievm: Object.freeze(new SeiEvm()),
2125
+ sgb: Object.freeze(new Songbird()),
811
2126
  sol: Object.freeze(new Sol()),
2127
+ sonic: Object.freeze(new Sonic()),
812
2128
  sui: Object.freeze(new Sui()),
813
2129
  near: Object.freeze(new Near()),
814
2130
  stx: Object.freeze(new Stx()),
2131
+ stt: Object.freeze(new Somnia()),
2132
+ somi: Object.freeze(new Somi()),
2133
+ soneium: Object.freeze(new Soneium()),
815
2134
  susd: Object.freeze(new SUSD()),
2135
+ tao: Object.freeze(new Bittensor()),
2136
+ tia: Object.freeze(new Tia()),
2137
+ ton: Object.freeze(new Ton()),
816
2138
  trx: Object.freeze(new Trx()),
2139
+ vet: Object.freeze(new Vet()),
2140
+ wemix: Object.freeze(new Wemix()),
2141
+ world: Object.freeze(new World()),
2142
+ xdc: Object.freeze(new Xdc()),
2143
+ xpl: Object.freeze(new Plasma()),
817
2144
  xrp: Object.freeze(new Xrp()),
818
2145
  xtz: Object.freeze(new Xtz()),
819
2146
  zCash: Object.freeze(new ZCash()),
2147
+ zeta: Object.freeze(new Zeta()),
2148
+ zkSync: Object.freeze(new ZkSync()),
820
2149
  },
821
2150
  test: {
822
2151
  ada: Object.freeze(new AdaTestnet()),
823
2152
  algorand: Object.freeze(new AlgorandTestnet()),
2153
+ apechain: Object.freeze(new ApeChainTestnet()),
2154
+ apt: Object.freeze(new AptTestnet()),
2155
+ arbitrum: Object.freeze(new ArbitrumTestnet()),
2156
+ asi: Object.freeze(new AsiTestnet()),
824
2157
  atom: Object.freeze(new AtomTestnet()),
825
2158
  avalancheC: Object.freeze(new AvalancheCTestnet()),
826
2159
  avalancheP: Object.freeze(new AvalanchePTestnet()),
2160
+ baby: Object.freeze(new BabyTestnet()),
2161
+ basechain: Object.freeze(new BaseChainTestnet()),
827
2162
  bitcoin: Object.freeze(new BitcoinTestnet()),
2163
+ bitcoinPublicSignet: Object.freeze(new BitcoinPublicSignet()),
2164
+ bitcoinTestnet4: Object.freeze(new BitcoinTestnet4()),
2165
+ bitcoinBitGoSignet: Object.freeze(new BitcoinBitGoSignet()),
828
2166
  bitcoinCash: Object.freeze(new BitcoinCashTestnet()),
829
2167
  bitcoinGold: Object.freeze(new BitcoinGoldTestnet()),
830
2168
  bitcoinSV: Object.freeze(new BitcoinSVTestnet()),
2169
+ bera: Object.freeze(new BerachainTestnet()),
2170
+ bld: Object.freeze(new BldTestnet()),
831
2171
  bsc: Object.freeze(new BinanceSmartChainTestnet()),
832
2172
  casper: Object.freeze(new CasperTestnet()),
2173
+ coredao: Object.freeze(new CoredaoTestnet()),
833
2174
  celo: Object.freeze(new CeloTestnet()),
2175
+ cronos: Object.freeze(new CronosTestnet()),
834
2176
  dash: Object.freeze(new DashTestnet()),
835
2177
  dogecoin: Object.freeze(new DogecoinTestnet()),
836
2178
  dot: Object.freeze(new PolkadotTestnet()),
837
2179
  eCash: Object.freeze(new ECashTestnet()),
838
2180
  eos: Object.freeze(new EosTestnet()),
839
2181
  fiat: Object.freeze(new FiatTestnet()),
2182
+ fetchai: Object.freeze(new FetchAiTestnet()),
2183
+ flr: Object.freeze(new FlareTestnet()),
2184
+ mon: Object.freeze(new MonadTestnet()),
840
2185
  pyrmont: Object.freeze(new Pyrmont()),
841
2186
  ethereumClassicTestnet: Object.freeze(new EthereumClassicTestnet()),
2187
+ hash: Object.freeze(new HashTestnet()),
842
2188
  hedera: Object.freeze(new HederaTestnet()),
2189
+ icp: Object.freeze(new IcpTestnet()),
2190
+ ip: Object.freeze(new IPTestnet()),
2191
+ initia: Object.freeze(new InitiaTestnet()),
2192
+ injective: Object.freeze(new InjectiveTestnet()),
2193
+ irys: Object.freeze(new IrysTestnet()),
2194
+ islm: Object.freeze(new IslmTestnet()),
2195
+ kava: Object.freeze(new KavaTestnet()),
843
2196
  kovan: Object.freeze(new Kovan()),
844
2197
  goerli: Object.freeze(new Goerli()),
2198
+ holesky: Object.freeze(new Holesky()),
2199
+ hoodi: Object.freeze(new Hoodi()),
2200
+ lnbtc: Object.freeze(new LightningBitcoinTestnet()),
845
2201
  litecoin: Object.freeze(new LitecoinTestnet()),
2202
+ mantra: Object.freeze(new MantraTestnet()),
846
2203
  polygon: Object.freeze(new PolygonTestnet()),
2204
+ polyx: Object.freeze(new PolymeshTestnet()),
2205
+ phrs: Object.freeze(new PharosTestnet()),
2206
+ ctc: Object.freeze(new CreditcoinTestnet()),
2207
+ hypeevm: Object.freeze(new HypeEVMTestnet()),
2208
+ lineaeth: Object.freeze(new LineaETHTestnet()),
2209
+ oas: Object.freeze(new OasTestnet()),
2210
+ og: Object.freeze(new OgTestnet()),
847
2211
  ofc: Object.freeze(new OfcTestnet()),
2212
+ optimism: Object.freeze(new OptimismTestnet()),
2213
+ osmo: Object.freeze(new OsmoTestnet()),
848
2214
  rbtc: Object.freeze(new RbtcTestnet()),
2215
+ rune: Object.freeze(new RuneTestNet()),
2216
+ sgb: Object.freeze(new SongbirdTestnet()),
849
2217
  stellar: Object.freeze(new StellarTestnet()),
2218
+ sei: Object.freeze(new SeiTestnet()),
2219
+ seievm: Object.freeze(new SeiEvmTestnet()),
850
2220
  sol: Object.freeze(new SolTestnet()),
851
2221
  sui: Object.freeze(new SuiTestnet()),
852
2222
  near: Object.freeze(new NearTestnet()),
853
2223
  stx: Object.freeze(new StxTestnet()),
2224
+ stt: Object.freeze(new SomniaTestnet()),
2225
+ soneium: Object.freeze(new SoneiumTestnet()),
2226
+ sonic: Object.freeze(new SonicTestnet()),
2227
+ kaia: Object.freeze(new KaiaTestnet()),
854
2228
  susd: Object.freeze(new SUSDTestnet()),
2229
+ coreum: Object.freeze(new CoreumTestnet()),
2230
+ tao: Object.freeze(new BittensorTestnet()),
2231
+ tia: Object.freeze(new TiaTestnet()),
2232
+ ton: Object.freeze(new TonTestnet()),
855
2233
  trx: Object.freeze(new TrxTestnet()),
2234
+ vet: Object.freeze(new VetTestnet()),
2235
+ wemix: Object.freeze(new WemixTestnet()),
2236
+ world: Object.freeze(new WorldTestnet()),
2237
+ xdc: Object.freeze(new XdcTestnet()),
2238
+ xpl: Object.freeze(new PlasmaTestnet()),
856
2239
  xrp: Object.freeze(new XrpTestnet()),
857
2240
  xtz: Object.freeze(new XtzTestnet()),
858
2241
  zCash: Object.freeze(new ZCashTestnet()),
2242
+ zeta: Object.freeze(new ZetaTestnet()),
2243
+ zkSync: Object.freeze(new ZkSyncTestnet()),
859
2244
  },
860
2245
  };
861
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29ya3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmV0d29ya3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQW9DO0FBQ3BDLDBDQUEwRTtBQUUxRSxJQUFZLFdBR1g7QUFIRCxXQUFZLFdBQVc7SUFDckIsa0NBQW1CLENBQUE7SUFDbkIsa0NBQW1CLENBQUE7QUFDckIsQ0FBQyxFQUhXLFdBQVcsR0FBWCxtQkFBVyxLQUFYLG1CQUFXLFFBR3RCO0FBRUQsTUFBc0IsV0FBVztDQUtoQztBQUxELGtDQUtDO0FBcUZELE1BQWUsT0FBUSxTQUFRLFdBQVc7SUFBMUM7O1FBQ0UsU0FBSSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUM7SUFDN0IsQ0FBQztDQUFBO0FBRUQsTUFBZSxPQUFRLFNBQVEsV0FBVztJQUExQzs7UUFDRSxTQUFJLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQztJQUM3QixDQUFDO0NBQUE7QUFFRCxNQUFNLFFBQVMsU0FBUSxPQUFPO0lBQTlCOztRQUNFLFNBQUksR0FBRyxVQUFVLENBQUM7UUFDbEIsV0FBTSxHQUFHLGlCQUFVLENBQUMsSUFBSSxDQUFDO1FBQ3pCLGdCQUFXLEdBQUcsNkJBQTZCLENBQUM7SUFDOUMsQ0FBQztDQUFBO0FBRUQsTUFBTSxlQUFnQixTQUFRLE9BQU87SUFBckM7O1FBQ0UsU0FBSSxHQUFHLGlCQUFpQixDQUFDO1FBQ3pCLFdBQU0sR0FBRyxpQkFBVSxDQUFDLElBQUksQ0FBQztRQUN6QixnQkFBVyxHQUFHLHFDQUFxQyxDQUFDO0lBQ3RELENBQUM7Q0FBQTtBQUVELE1BQU0sR0FBSSxTQUFRLE9BQU87SUFBekI7O1FBQ0UsU0FBSSxHQUFHLFlBQVksQ0FBQztRQUNwQixXQUFNLEdBQUcsaUJBQVUsQ0FBQyxHQUFHLENBQUM7UUFDeEIsZ0JBQVcsR0FBRyxTQUFTLENBQUM7UUFDeEIsZ0JBQVcsR0FBRyxTQUFTLENBQUM7UUFDeEIsb0JBQWUsR0FBRyxP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QUMsTUFBTSxDQUFDLElBQUksY0FBYyxFQUFFLENBQUM7UUFDNUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNwQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ3RDLE9BQU8sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksY0FBYyxFQUFFLENBQUM7UUFDNUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNwQyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksV0FBVyxFQUFFLENBQUM7UUFDdEMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNwQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ3RDLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksVUFBVSxFQUFFLENBQUM7UUFDcEMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNwQyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLEtBQUssRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksWUFBWSxFQUFFLENBQUM7S0FDekM7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29pbkZhbWlseSB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyBtYWlubmV0TWV0YWRhdGFScGMsIHdlc3RlbmRNZXRhZGF0YVJwYyB9IGZyb20gJy4uL3Jlc291cmNlcy9kb3QnO1xuXG5leHBvcnQgZW51bSBOZXR3b3JrVHlwZSB7XG4gIE1BSU5ORVQgPSAnbWFpbm5ldCcsXG4gIFRFU1RORVQgPSAndGVzdG5ldCcsXG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlTmV0d29yayB7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSB0eXBlOiBOZXR3b3JrVHlwZTtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGZhbWlseTogQ29pbkZhbWlseTtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGV4cGxvcmVyVXJsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXR4b05ldHdvcmsgZXh0ZW5kcyBCYXNlTmV0d29yayB7XG4gIC8vIE5ldHdvcmsgbmFtZSBhcyBkZWZpbmVkIGluIEBiaXRnby1iZXRhL3V0eG8tbGliIG5ldHdvcmtzLnRzXG4gIHV0eG9saWJOYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRhTmV0d29yayBleHRlbmRzIEJhc2VOZXR3b3JrIHtcbiAgLy8gTmV0d29yayBuYW1lIGFzIGRlZmluZWQgaW4gQGJpdGdvLWJldGEvdXR4by1saWIgbmV0d29ya3MudHNcbiAgLy8gbWF5YmUgYWRkIG5ldHdvcmsgaWRlbnRpZmllciAvIG1hZ2ljIG5ldHdvcmsgbnVtYmVyXG4gIHV0eG9saWJOYW1lOiBzdHJpbmc7XG4gIHBvb2xEZXBvc2l0OiBudW1iZXI7XG4gIHN0YWtlS2V5RGVwb3NpdDogbnVtYmVyO1xuICBtYXhWYWx1ZVNpemU6IG51bWJlcjtcbiAgbWF4VHJhbnNhY3Rpb25TaXplOiBudW1iZXI7XG4gIGNvaW5zUGVyVXR4b1dvcmQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdmFsYW5jaGVOZXR3b3JrIGV4dGVuZHMgQmFzZU5ldHdvcmsge1xuICByZWFkb25seSBhbGlhczogc3RyaW5nO1xuICByZWFkb25seSBibG9ja2NoYWluSUQ6IHN0cmluZztcbiAgcmVhZG9ubHkgY0NoYWluQmxvY2tjaGFpbklEOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5ldHdvcmtJRDogbnVtYmVyO1xuICByZWFkb25seSBocnA6IHN0cmluZztcbiAgcmVhZG9ubHkgdm06IHN0cmluZztcbiAgcmVhZG9ubHkgY3JlYXRpb25UeEZlZTogc3RyaW5nO1xuICByZWFkb25seSBjcmVhdGVTdWJuZXRUeDogc3RyaW5nO1xuICByZWFkb25seSBjcmVhdGVDaGFpblR4OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1pbkNvbnN1bXB0aW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1heENvbnN1bXB0aW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1heFN1cHBseTogc3RyaW5nO1xuICByZWFkb25seSBtaW5TdGFrZTogc3RyaW5nO1xuICByZWFkb25seSBtaW5TdGFrZUR1cmF0aW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1heFN0YWtlRHVyYXRpb246IHN0cmluZztcbiAgcmVhZG9ubHkgbWluRGVsZWdhdGlvblN0YWtlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1pbkRlbGVnYXRpb25GZWU6IHN0cmluZztcbiAgLy8gY3VycmVudCB2YWxpZCBhc3NldCBpZCBpcyBBVkFYXG4gIHJlYWRvbmx5IGF2YXhBc3NldElEOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHR4RmVlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWNjb3VudE5ldHdvcmsgZXh0ZW5kcyBCYXNlTmV0d29yayB7XG4gIC8vIHNvbWUgY2hhaW5zIHBheSBmZWVzIHZpYSBhbiBlbnRlcnByaXNlIGdhcyB0YXNrLiBUaGUgYWNjb3VudCBleHBsb3JlciB1cmxcbiAgLy8gaXMgYSB1cmwgdGhhdCBjYW4gYmUgdXNlZCB0byBsb29rIHVwIHRoZSBhY2NvdW50IGZvciB0aGUgZ2FzIHRhbmsgb24tY2hhaW4uXG4gIHJlYWRvbmx5IGFjY291bnRFeHBsb3JlclVybD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBTcGVjaWZpY2F0aW9uIG5hbWUgdHlwZSBvZiB0aGUgY2hhaW4uIFVzZWQgaW4gc2V0dGluZyB1cCB0aGUgcmVnaXN0cnlcbiAqL1xuZXhwb3J0IHR5cGUgUG9sa2Fkb3RTcGVjTmFtZVR5cGUgPSAna3VzYW1hJyB8ICdwb2xrYWRvdCcgfCAnd2VzdGVuZCcgfCAnc3RhdGVtaW50JyB8ICdzdGF0ZW1pbmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERvdE5ldHdvcmsgZXh0ZW5kcyBBY2NvdW50TmV0d29yayB7XG4gIC8vIHNvbWUgY2hhaW5zIHBheSBmZWVzIHZpYSBhbiBlbnRlcnByaXNlIGdhcyB0YXNrLiBUaGUgYWNjb3VudCBleHBsb3JlciB1cmxcbiAgLy8gaXMgYSB1cmwgdGhhdCBjYW4gYmUgdXNlZCB0byBsb29rIHVwIHRoZSBhY2NvdW50IGZvciB0aGUgZ2FzIHRhbmsgb24tY2hhaW4uXG4gIHJlYWRvbmx5IHNwZWNOYW1lOiBQb2xrYWRvdFNwZWNOYW1lVHlwZTtcbiAgcmVhZG9ubHkgZ2VuZXNpc0hhc2g6IHN0cmluZztcbiAgcmVhZG9ubHkgc3BlY1ZlcnNpb246IG51bWJlcjtcbiAgcmVhZG9ubHkgY2hhaW5OYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1ldGFkYXRhUnBjOiBgMHgke3N0cmluZ31gO1xuICByZWFkb25seSB0eFZlcnNpb246IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFdGhlcmV1bU5ldHdvcmsgZXh0ZW5kcyBBY2NvdW50TmV0d29yayB7XG4gIC8vIHVuaXF1ZSBjaGFpbiBpZCB1c2VkIGZvciByZXBsYXktcHJvdGVjdGluZyB0cmFuc2FjdGlvbnNcbiAgcmVhZG9ubHkgY2hhaW5JZDogbnVtYmVyO1xuICByZWFkb25seSBiYXRjaGVyQ29udHJhY3RBZGRyZXNzPzogc3RyaW5nO1xuICAvLyBmb3J3YXJkZXIgY29uZmlndXJhdGlvbiBhZGRyZXNzZXMgdXNlZCBmb3IgY2FsY3VsYXRpbmcgZm9yd2FyZGVyIHZlcnNpb24gMSBhZGRyZXNzZXNcbiAgcmVhZG9ubHkgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3M/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcm9uTmV0d29yayBleHRlbmRzIEFjY291bnROZXR3b3JrIHtcbiAgbWF4RmVlTGltaXQ6IHN0cmluZztcbiAgY29udHJhY3RDYWxsRmVlTGltaXQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGFja3NOZXR3b3JrIGV4dGVuZHMgQWNjb3VudE5ldHdvcmsge1xuICByZWFkb25seSBzZW5kbWFueW1lbW9Db250cmFjdEFkZHJlc3M6IHN0cmluZztcbiAgcmVhZG9ubHkgc3Rha2luZ0NvbnRyYWN0QWRkcmVzczogc3RyaW5nO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWludGVyZmFjZVxuZXhwb3J0IGludGVyZmFjZSBPZmNOZXR3b3JrIGV4dGVuZHMgQmFzZU5ldHdvcmsge31cblxuYWJzdHJhY3QgY2xhc3MgTWFpbm5ldCBleHRlbmRzIEJhc2VOZXR3b3JrIHtcbiAgdHlwZSA9IE5ldHdvcmtUeXBlLk1BSU5ORVQ7XG59XG5cbmFic3RyYWN0IGNsYXNzIFRlc3RuZXQgZXh0ZW5kcyBCYXNlTmV0d29yayB7XG4gIHR5cGUgPSBOZXR3b3JrVHlwZS5URVNUTkVUO1xufVxuXG5jbGFzcyBBbGdvcmFuZCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnQWxnb3JhbmQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFMR087XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYWxnb2V4cGxvcmVyLmlvL3R4Lyc7XG59XG5cbmNsYXNzIEFsZ29yYW5kVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnQWxnb3JhbmRUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5BTEdPO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQuYWxnb2V4cGxvcmVyLmlvL3R4Lyc7XG59XG5cbmNsYXNzIEFkYSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBZGFOZXR3b3JrIHtcbiAgbmFtZSA9ICdBZGFDYXJkYW5vJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5BREE7XG4gIHV0eG9saWJOYW1lID0gJ2NhcmRhbm8nO1xuICBwb29sRGVwb3NpdCA9IDUwMDAwMDAwMDtcbiAgc3Rha2VLZXlEZXBvc2l0ID0gMjAwMDAwMDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5jYXJkYW5vLm9yZy9lbic7XG4gIGNvaW5zUGVyVXR4b1dvcmQgPSAzNDQ4MjtcbiAgbWF4VHJhbnNhY3Rpb25TaXplID0gODAwMDtcbiAgbWF4VmFsdWVTaXplID0gNDAwMDtcbn1cblxuY2xhc3MgQWRhVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBZGFOZXR3b3JrIHtcbiAgbmFtZSA9ICdBZGFDYXJkYW5vVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQURBO1xuICB1dHhvbGliTmFtZSA9ICdjYXJkYW5vVGVzdG5ldCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vcHJlcHJvZC5jZXhwbG9yZXIuaW8vJztcbiAgY29pbnNQZXJVdHhvV29yZCA9IDM0NDgyO1xuICBtYXhUcmFuc2FjdGlvblNpemUgPSA4MDAwO1xuICBtYXhWYWx1ZVNpemUgPSA0MDAwO1xuICBwb29sRGVwb3NpdCA9IDUwMDAwMDAwMDtcbiAgc3Rha2VLZXlEZXBvc2l0ID0gMjAwMDAwMDtcbn1cblxuY2xhc3MgQXZhbGFuY2hlQyBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIC8vIGh0dHBzOi8vZG9jcy5hdmF4Lm5ldHdvcmsvYnVpbGQvdHV0b3JpYWxzL3NtYXJ0LWNvbnRyYWN0cy9kZXBsb3ktYS1zbWFydC1jb250cmFjdC1vbi1hdmFsYW5jaGUtdXNpbmctcmVtaXgtYW5kLW1ldGFtYXNrI2F2YWxhbmNoZS1tYWlubmV0LXNldHRpbmdzXG4gIG5hbWUgPSAnQXZhbGFuY2hlQyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQVZBWEM7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY2NoYWluLmV4cGxvcmVyLmF2YXgubmV0d29yay90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9jY2hhaW4uZXhwbG9yZXIuYXZheC5uZXR3b3JrL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDQzMTE0O1xufVxuXG5jbGFzcyBBdmFsYW5jaGVDVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIC8vIGh0dHBzOi8vZG9jcy5hdmF4Lm5ldHdvcmsvYnVpbGQvdHV0b3JpYWxzL3NtYXJ0LWNvbnRyYWN0cy9kZXBsb3ktYS1zbWFydC1jb250cmFjdC1vbi1hdmFsYW5jaGUtdXNpbmctcmVtaXgtYW5kLW1ldGFtYXNrI2F2YWxhbmNoZS1tYWlubmV0LXNldHRpbmdzXG4gIG5hbWUgPSAnQXZhbGFuY2hlQ1Rlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFWQVhDO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2NjaGFpbi5leHBsb3Jlci5hdmF4LXRlc3QubmV0d29yay90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9jY2hhaW4uZXhwbG9yZXIuYXZheC10ZXN0Lm5ldHdvcmsvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNDMxMTM7XG59XG5cbmNsYXNzIEF2YWxhbmNoZVAgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQXZhbGFuY2hlTmV0d29yayB7XG4gIG5hbWUgPSAnQXZhbGFuY2hlUCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQVZBWFA7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIteHAuYXZheC5uZXR3b3JrL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLXhwLmF2YXgubmV0d29yay9hZGRyZXNzLyc7XG4gIGJsb2NrY2hhaW5JRCA9ICcxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMUxwb1lZJztcbiAgY0NoYWluQmxvY2tjaGFpbklEID0gJzJxOWU0cjZNdTNVNjhuVTFmWWpnYlI2SnZ3clJ4MzZDb2hwQVg1VVF4c2U1NXgxUTUnO1xuICBhdmF4QXNzZXRJRCA9ICdGdndFQWhteEtmZWlHOFNuRXZxNDJoYzZ3aFJ5WTNFRllBdmViTXFETkRHQ2d4TjVaJztcbiAgbmV0d29ya0lEID0gMTtcbiAgaHJwID0gJ2F2YXgnO1xuICBhbGlhcyA9ICdQJztcbiAgdm0gPSAncGxhdGZvcm12bSc7XG4gIHR4RmVlID0gJzEwMDAwMDAnOyAvLyAxIE1JTExJQVZBWFxuICBjcmVhdGVTdWJuZXRUeCA9ICcxMDAwMDAwMDAwJzsgLy8gMSBBVkFYXG4gIGNyZWF0ZUNoYWluVHggPSAnMTAwMDAwMDAwMCc7IC8vIDEgQVZBWFxuICBjcmVhdGlvblR4RmVlID0gJzEwMDAwMDAwJzsgLy8gMSBDRU5USUFWQVhcbiAgbWluQ29uc3VtcHRpb24gPSAnMC4xJztcbiAgbWF4Q29uc3VtcHRpb24gPSAnMC4xMic7XG4gIG1heFN1cHBseSA9ICc3MjAwMDAwMDAwMDAwMDAwMDAnOyAvLyA3MjAgbWlsIHRva2Vuc1xuICBtaW5TdGFrZSA9ICcyMDAwMDAwMDAwMDAwJzsgLy8gMjAwMCBBVkFYXG4gIG1pblN0YWtlRHVyYXRpb24gPSAnMTIwOTYwMCc7IC8vIDIgd2Vla3NcbiAgbWF4U3Rha2VEdXJhdGlvbiA9ICczMTUzNjAwMCc7IC8vIDEgeWVhclxuICBtaW5EZWxlZ2F0aW9uU3Rha2UgPSAnMjUwMDAwMDAwMDAnOyAvLyAyNSBBVkFYXG4gIG1pbkRlbGVnYXRpb25GZWUgPSAnMic7XG59XG5cbmNsYXNzIEF2YWxhbmNoZVBUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEF2YWxhbmNoZU5ldHdvcmsge1xuICBuYW1lID0gJ0F2YWxhbmNoZVBUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5BVkFYUDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci14cC5hdmF4LXRlc3QubmV0d29yay90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci14cC5hdmF4LXRlc3QubmV0d29yay9hZGRyZXNzLyc7XG4gIGJsb2NrY2hhaW5JRCA9ICcxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMUxwb1lZJztcbiAgY0NoYWluQmxvY2tjaGFpbklEID0gJ3lIOEQ3VGhOSmt4bXRrdXYyamdCYTRQMVJuM1FwcjRwUHI3UVlOZmNkb1M2azZIV3AnO1xuICBhdmF4QXNzZXRJRCA9ICdVOGlScUpvaUptOHhaSEFhY212WXlaVndxUXg2dUROdFFlUDNDUTZmY2dRazNKcW5LJztcbiAgbmV0d29ya0lEID0gNTtcbiAgYWxpYXMgPSAnUCc7XG4gIGhycCA9ICdmdWppJztcbiAgdm0gPSAncGxhdGZvcm12bSc7XG4gIHR4RmVlID0gJzEwMDAwMDAnOyAvLyAxIE1JTExJQVZBWFxuICBjcmVhdGVTdWJuZXRUeCA9ICcxMDAwMDAwMDAwJzsgLy8gMSBBVkFYXG4gIGNyZWF0ZUNoYWluVHggPSAnMTAwMDAwMDAwMCc7IC8vIDEgQVZBWFxuICBjcmVhdGlvblR4RmVlID0gJzEwMDAwMDAwJzsgLy8gMSBDRU5USUFWQVhcbiAgbWluQ29uc3VtcHRpb24gPSAnMC4xJztcbiAgbWF4Q29uc3VtcHRpb24gPSAnMC4xMic7XG4gIG1heFN1cHBseSA9ICc3MjAwMDAwMDAwMDAwMDAwMDAnOyAvLyA3MjAgbWlsIHRva2Vuc1xuICBtaW5TdGFrZSA9ICcxMDAwMDAwMDAwJzsgLy8gMSBBVkFYXG4gIG1pblN0YWtlRHVyYXRpb24gPSAnODY0MDAnOyAvLyAxIGRheVxuICBtYXhTdGFrZUR1cmF0aW9uID0gJzMxNTM2MDAwJzsgLy8gMSB5ZWFyXG4gIG1pbkRlbGVnYXRpb25TdGFrZSA9ICcxMDAwMDAwMDAwJzsgLy8gMSBBVkFYXG4gIG1pbkRlbGVnYXRpb25GZWUgPSAnMic7XG59XG5cbmNsYXNzIEJpbmFuY2VTbWFydENoYWluIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnQmluYW5jZVNtYXJ0Q2hhaW4nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJTQztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly93d3cuYnNjc2Nhbi5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd3d3LmJzY3NjYW4uY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDU2O1xufVxuXG5jbGFzcyBCaW5hbmNlU21hcnRDaGFpblRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdCaW5hbmNlU21hcnRDaGFpblRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJTQztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LmJzY3NjYW4uY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQuYnNjc2Nhbi5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gOTc7XG59XG5cbmNsYXNzIEJpdGNvaW4gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0JpdGNvaW4nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJUQztcbiAgdXR4b2xpYk5hbWUgPSAnYml0Y29pbic7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmxvY2tzdHJlYW0uaW5mby90eC8nO1xufVxuXG5jbGFzcyBCaXRjb2luVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnQml0Y29pblRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJUQztcbiAgdXR4b2xpYk5hbWUgPSAndGVzdG5ldCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmxvY2tzdHJlYW0uaW5mby90ZXN0bmV0L3R4Lyc7XG59XG5cbmNsYXNzIEJpdGNvaW5DYXNoIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdCaXRjb2luQ2FzaCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQkNIO1xuICB1dHhvbGliTmFtZSA9ICdiaXRjb2luY2FzaCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd3d3LmJsb2NrY2hhaW4uY29tL2JjaC90eC8nO1xufVxuXG5jbGFzcyBCaXRjb2luQ2FzaFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0JpdGNvaW5DYXNoVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQkNIO1xuICB1dHhvbGliTmFtZSA9ICdiaXRjb2luY2FzaFRlc3RuZXQnO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3d3dy5ibG9ja2NoYWluLmNvbS9iY2gtdGVzdG5ldC90eC8nO1xufVxuY2xhc3MgQml0Y29pblNWIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdCaXRjb2luU1YnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJTVjtcbiAgdXR4b2xpYk5hbWUgPSAnYml0Y29pbnN2JztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ibG9ja2NoYWlyLmNvbS9iaXRjb2luLXN2L3RyYW5zYWN0aW9uLyc7XG59XG5cbmNsYXNzIEJpdGNvaW5TVlRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0JpdGNvaW5TVlRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJTVjtcbiAgdXR4b2xpYk5hbWUgPSAnYml0Y29pbnN2VGVzdG5ldCc7XG4gIGV4cGxvcmVyVXJsID0gdW5kZWZpbmVkO1xufVxuXG5jbGFzcyBCaXRjb2luR29sZCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnQml0Y29pbkdvbGQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJURztcbiAgdXR4b2xpYk5hbWUgPSAnYml0Y29pbmdvbGQnO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2J0Z2V4cGxvcmVyLmNvbS90eC8nO1xufVxuXG5jbGFzcyBCaXRjb2luR29sZFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0JpdGNvaW5Hb2xkVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQlRHO1xuICB1dHhvbGliTmFtZSA9ICdiaXRjb2luZ29sZFRlc3RuZXQnO1xuICBleHBsb3JlclVybCA9IHVuZGVmaW5lZDtcbn1cblxuY2xhc3MgRGFzaCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnRGFzaCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuREFTSDtcbiAgdXR4b2xpYk5hbWUgPSAnZGFzaCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vaW5zaWdodC5kYXNoZXZvLm9yZy9pbnNpZ2h0L3R4Lyc7XG59XG5cbmNsYXNzIERhc2hUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdEYXNoVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuREFTSDtcbiAgdXR4b2xpYk5hbWUgPSAnZGFzaFRlc3QnO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQtaW5zaWdodC5kYXNoZXZvLm9yZy9pbnNpZ2h0L3R4Lyc7XG59XG5cbmNsYXNzIERvZ2Vjb2luIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdEb2dlY29pbic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRE9HRTtcbiAgdXR4b2xpYk5hbWUgPSAnZG9nZWNvaW4nO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Jsb2NrY2hhaXIuY29tL2RvZ2Vjb2luL3RyYW5zYWN0aW9uLyc7XG59XG5cbmNsYXNzIERvZ2Vjb2luVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnRG9nZWNvaW5UZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5ET0dFO1xuICB1dHhvbGliTmFtZSA9ICdkb2dlY29pblRlc3QnO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Jsb2NrZXhwbG9yZXIub25lL2RvZ2Vjb2luL3Rlc3RuZXQvdHgvJztcbn1cblxuY2xhc3MgRUNhc2ggZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0VDYXNoJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CQ0hBO1xuICB1dHhvbGliTmFtZSA9ICdlY2FzaCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmxvY2tjaGFpci5jb20vZWNhc2gnO1xufVxuXG5jbGFzcyBFQ2FzaFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0VDYXNoVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQkNIQTtcbiAgdXR4b2xpYk5hbWUgPSAnZWNhc2hUZXN0JztcbiAgZXhwbG9yZXJVcmwgPSB1bmRlZmluZWQ7XG59XG5cbmNsYXNzIFBvbGthZG90IGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIERvdE5ldHdvcmsge1xuICBuYW1lID0gJ1BvbGthZG90JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5ET1Q7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vcG9sa2Fkb3Quc3Vic2Nhbi5pby9leHRyaW5zaWMvJztcbiAgc3BlY05hbWUgPSAncG9sa2Fkb3QnIGFzIFBvbGthZG90U3BlY05hbWVUeXBlO1xuICBnZW5lc2lzSGFzaCA9ICcweDkxYjE3MWJiMTU4ZTJkMzg0OGZhMjNhOWYxYzI1MTgyZmI4ZTIwMzEzYjJjMWViNDkyMTlkYTdhNzBjZTkwYzMnO1xuICBzcGVjVmVyc2lvbiA9IDkxNDA7XG4gIGNoYWluTmFtZSA9ICdQb2xrYWRvdCc7XG4gIG1ldGFkYXRhUnBjID0gbWFpbm5ldE1ldGFkYXRhUnBjIGFzIGAweCR7c3RyaW5nfWA7XG4gIHR4VmVyc2lvbiA9IDk7XG59XG5cbmNsYXNzIFBvbGthZG90VGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBEb3ROZXR3b3JrIHtcbiAgbmFtZSA9ICdXZXN0ZW5kJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5ET1Q7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd2VzdGVuZC5zdWJzY2FuLmlvL2V4dHJpbnNpYy8nO1xuICBzcGVjTmFtZSA9ICd3ZXN0ZW5kJyBhcyBQb2xrYWRvdFNwZWNOYW1lVHlwZTtcbiAgZ2VuZXNpc0hhc2ggPSAnMHhlMTQzZjIzODAzYWM1MGU4ZjZmOGU2MjY5NWQxY2U5ZTRlMWQ2OGFhMzZjMWNkMmNmZDE1MzQwMjEzZjM0MjNlJztcbiAgc3BlY1ZlcnNpb24gPSA5MzIwO1xuICBjaGFpbk5hbWUgPSAnV2VzdGVuZCc7XG4gIG1ldGFkYXRhUnBjID0gd2VzdGVuZE1ldGFkYXRhUnBjIGFzIGAweCR7c3RyaW5nfWA7XG4gIHR4VmVyc2lvbiA9IDE0O1xufVxuXG5jbGFzcyBDZWxvIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnQ2Vsbyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ0VMTztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5jZWxvLm9yZy90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5jZWxvLm9yZy9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA0MjIyMDtcbn1cblxuY2xhc3MgQ2Vsb1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdDZWxvVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ0VMTztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9hbGZham9yZXMtYmxvY2tzY291dC5jZWxvLXRlc3RuZXQub3JnL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2FsZmFqb3Jlcy1ibG9ja3Njb3V0LmNlbG8tdGVzdG5ldC5vcmcvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNDQ3ODc7XG59XG5cbi8vIFRPRE8gdXBkYXRlIGV4cGxvcmVyVXJsIFNUTFgtMTY1N1xuY2xhc3MgQ2FzcGVyIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdDYXNwZXInO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkNTUFI7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY3Nwci5saXZlL2RlcGxveS8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9jc3ByLmxpdmUvYWNjb3VudC8nO1xufVxuXG5jbGFzcyBDYXNwZXJUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdDYXNwZXJUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5DU1BSO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2ludGVncmF0aW9uLmNzcHIubGl2ZS9kZXBsb3kvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vaW50ZWdyYXRpb24uY3Nwci5saXZlL2FjY291bnQvJztcbn1cblxuY2xhc3MgRXRoZXJldW0gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdFdGhlcmV1bSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V0aGVyc2Nhbi5pby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ldGhlcnNjYW4uaW8vYWRkcmVzcy8nO1xuICAvLyBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9ldGhlcmV1bWpzL2V0aGVyZXVtanMtY29tbW9uL2Jsb2IvYTk3OGY2MzA4NThmNjg0MzE3NmJiMjBiMjc3NTY5Nzg1OTE0ZTg5OS9zcmMvY2hhaW5zL2luZGV4LnRzXG4gIGNoYWluSWQgPSAxO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4MGM5YjI1ZGZlMDJiMmM4OWNjZTg2ZTFhMGJkNmMwNGE3YWNhMDFiNic7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4ZmZhMzk3Mjg1Y2U0NmZiNzhjNTg4YTllOTkzMjg2YWFjNjhjMzdjZCc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDA1OWZmYWZkYzZlZjU5NDIzMGRlNDRmODI0ZTJiZDBhNTFjYTVkZWQnO1xufVxuXG5jbGFzcyBFdGhlcmV1bTIgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0V0aGVyZXVtMic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRVRIMjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9iZWFjb25zY2FuLmNvbS90eCc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2JlYWNvbnNjYW4uY29tL2FkZHJlc3MnO1xufVxuXG5jbGFzcyBFdGhlcmV1bVcgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdFdGhlcmV1bSBQb1cnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkVUSFc7XG4gIGV4cGxvcmVyVXJsID0gJyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICcnO1xuICBjaGFpbklkID0gMTAwMDE7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJyc7XG59XG5cbmNsYXNzIFB5cm1vbnQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1B5cm1vbnQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkVUSDI7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmVhY29uc2Nhbi5jb20vcHlybW9udC90eCc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2JlYWNvbnNjYW4uY29tL3B5cm1vbnQvYWRkcmVzcyc7XG59XG5cbmNsYXNzIEtvdmFuIGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnS292YW4nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9rb3Zhbi5ldGhlcnNjYW4uaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8va292YW4uZXRoZXJzY2FuLmlvL2FkZHJlc3MvJztcbiAgLy8gZnJvbSBodHRwczovL2dpdGh1Yi5jb20vZXRoZXJldW1qcy9ldGhlcmV1bWpzLWNvbW1vbi9ibG9iL2E5NzhmNjMwODU4ZjY4NDMxNzZiYjIwYjI3NzU2OTc4NTkxNGU4OTkvc3JjL2NoYWlucy9pbmRleC50c1xuICBjaGFpbklkID0gNDI7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHhjMGFhZjI2NDllN2IwZjM5NTAxNjQ2ODFlY2EyYjFhOGY2NTRhNDc4JztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHhhNzlhNDg1Mjk0ZDIyNjA3NWVlNjU0MTBiYzk0ZWE0NTRmM2U0MDlkJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4YTk0NmU3NDhmMjVhNWVjNjg3OGViMWE5ZjJlOTAyMDI4MTc0YzBiMyc7XG59XG5cbmNsYXNzIEdvZXJsaSBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0dvZXJsaSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2dvZXJsaS5ldGhlcnNjYW4uaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZ29lcmxpLmV0aGVyc2Nhbi5pby9hZGRyZXNzLyc7XG4gIC8vIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2V0aGVyZXVtanMvZXRoZXJldW1qcy1jb21tb24vYmxvYi9hOTc4ZjYzMDg1OGY2ODQzMTc2YmIyMGIyNzc1Njk3ODU5MTRlODk5L3NyYy9jaGFpbnMvaW5kZXgudHNcbiAgY2hhaW5JZCA9IDU7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHhlOGU4NDdjZjU3M2ZjOGVkNzU2MjE2NjBhMzZhZmZkMThjNTQzZDdlJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHhmNWNhYTVlM2U5M2FmYmMyMWJkMTllZjRmMjY5MWEzNzEyMWY3OTE3JztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ODBkNWM5MWU4Y2MyMWRmNjlmYzRkNjRmMjFkYzJkODMxMjFjMzk5OSc7XG59XG5cbmNsYXNzIEV0aGVyZXVtQ2xhc3NpYyBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0V0aGVyZXVtQ2xhc3NpYyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRVRDO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Jsb2Nrc2NvdXQuY29tL2V0Yy9tYWlubmV0L3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2Jsb2Nrc2NvdXQuY29tL2V0Yy9tYWlubmV0L2FkZHJlc3MvJztcbiAgLy8gZnJvbSAgaHR0cHM6Ly9jaGFpbmlkLm5ldHdvcmsvY2hhaW5zL1xuICBjaGFpbklkID0gNjE7XG59XG5cbmNsYXNzIEV0aGVyZXVtQ2xhc3NpY1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdFdGhlcmV1bUNsYXNzaWNUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5FVEM7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmxvY2tzY291dC5jb20vZXRjL21vcmRvci90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ibG9ja3Njb3V0LmNvbS9ldGMvbW9yZG9yL2FkZHJlc3MvJztcbiAgLy8gZnJvbSAgaHR0cHM6Ly9jaGFpbmlkLm5ldHdvcmsvY2hhaW5zL1xuICBjaGFpbklkID0gNjM7XG59XG5cbmNsYXNzIEVvcyBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnRW9zJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5FT1M7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuZW9zbmV0d29yay5jb20vdHJhbnNhY3Rpb24vJztcbn1cblxuY2xhc3MgRW9zVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnRW9zVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRU9TO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2t5bGluLmVvc3guaW8vdHgvJztcbn1cblxuY2xhc3MgSGVkZXJhIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdIZWRlcmEnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkhCQVI7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIua2FidXRvLnNoL21haW5uZXQvdHJhbnNhY3Rpb24vJztcbn1cblxuY2xhc3MgSGVkZXJhVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnSGVkZXJhVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSEJBUjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5rYWJ1dG8uc2gvdGVzdG5ldC90cmFuc2FjdGlvbi8nO1xufVxuXG5jbGFzcyBMaXRlY29pbiBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnTGl0ZWNvaW4nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkxUQztcbiAgdXR4b2xpYk5hbWUgPSAnbGl0ZWNvaW4nO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Jsb2NrY2hhaXIuY29tL2xpdGVjb2luL3RyYW5zYWN0aW9uLyc7XG59XG5cbmNsYXNzIExpdGVjb2luVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnTGl0ZWNvaW5UZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5MVEM7XG4gIHV0eG9saWJOYW1lID0gJ2xpdGVjb2luVGVzdCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmxvY2tleHBsb3Jlci5vbmUvbGl0ZWNvaW4vdGVzdG5ldC90eC8nO1xufVxuXG5jbGFzcyBPZmMgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgT2ZjTmV0d29yayB7XG4gIG5hbWUgPSAnT2ZjJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5PRkM7XG4gIGV4cGxvcmVyVXJsID0gdW5kZWZpbmVkO1xufVxuXG5jbGFzcyBPZmNUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIE9mY05ldHdvcmsge1xuICBuYW1lID0gJ09mY1Rlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk9GQztcbiAgZXhwbG9yZXJVcmwgPSB1bmRlZmluZWQ7XG59XG5cbmNsYXNzIFJidGMgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdSYnRjJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5SQlRDO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnJzay5jby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5yc2suY28vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMzA7XG59XG5cbmNsYXNzIFJidGNUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnUmJ0Y1Rlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlJCVEM7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIudGVzdG5ldC5yc2suY28vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIudGVzdG5ldC5yc2suY28vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMzE7XG59XG5cbmNsYXNzIFN0ZWxsYXIgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1N0ZWxsYXInO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlhMTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zdGVsbGFyLmV4cGVydC9leHBsb3Jlci9wdWJsaWMvdHgvJztcbn1cblxuY2xhc3MgU3RlbGxhclRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1N0ZWxsYXJUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5YTE07XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc3RlbGxhci5leHBlcnQvZXhwbG9yZXIvdGVzdG5ldC90eC8nO1xufVxuXG5jbGFzcyBTb2wgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1NvbCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU09MO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnNvbGFuYS5jb20vdHgvJztcbn1cblxuY2xhc3MgU29sVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnU29sVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU09MO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnNvbGFuYS5jb20vdHgvP2NsdXN0ZXI9ZGV2bmV0Jztcbn1cblxuY2xhc3MgU3VpIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdTdWknO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNVSTtcbiAgLy8gIFRPRE8oQkctNTgzNjQpOiBteXN0ZW4gaXMgc3RpbGwgb25seSBpbiBkZXZuZXQgdXBkYXRlIHRvIG1haW5uZXQgdXJsIHdoZW4gaXQncyBsaXZlXG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuc3VpLmlvL3R4YmxvY2svP25ldHdvcms9dGVzdG5ldCc7XG59XG5cbmNsYXNzIFN1aVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgU3VpJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TVUk7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuc3VpLmlvL3R4YmxvY2svP25ldHdvcms9dGVzdG5ldCc7XG59XG5cbmNsYXNzIEF0b20gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0Nvc21vcyBIdWIgQVRPTSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQVRPTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9hdG9tc2Nhbi5jb20vdHJhbnNhY3Rpb25zLyc7XG59XG5cbmNsYXNzIEF0b21UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IENvc21vcyBIdWIgQVRPTSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQVRPTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci50aGV0YS10ZXN0bmV0LnBvbHlwb3JlLnh5ei90cmFuc2FjdGlvbnMvJztcbn1cblxuY2xhc3MgU3R4IGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIFN0YWNrc05ldHdvcmsge1xuICBuYW1lID0gJ1N0eCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU1RYO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnN0YWNrcy5jby90eGlkLyc7XG4gIHNlbmRtYW55bWVtb0NvbnRyYWN0QWRkcmVzcyA9ICdTUDNGQlIyQUdLNUg5UUJESDNFRU42REY4RUs4Slk3Ulg4UUo1U1ZURSc7XG4gIHN0YWtpbmdDb250cmFjdEFkZHJlc3MgPSAnU1AwMDAwMDAwMDAwMDAwMDAwMDAwMDJRNlZGNzgnO1xufVxuXG5jbGFzcyBTdHhUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIFN0YWNrc05ldHdvcmsge1xuICBuYW1lID0gJ1N0eFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNUWDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5zdGFja3MuY28vdHhpZC8/Y2hhaW49dGVzdG5ldCc7XG4gIHNlbmRtYW55bWVtb0NvbnRyYWN0QWRkcmVzcyA9ICdTVDNGMVg0UUdWMlNNOFhEOTZYNDVNNlJUUVhLQTFQWkpaWkNRQUI0Qic7XG4gIHN0YWtpbmdDb250cmFjdEFkZHJlc3MgPSAnU1QwMDAwMDAwMDAwMDAwMDAwMDAwMDJBTVc0MkgnO1xufVxuXG5jbGFzcyBTVVNEIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdTVVNEJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TVVNEO1xuICBleHBsb3JlclVybCA9IHVuZGVmaW5lZDtcbn1cblxuY2xhc3MgU1VTRFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1NVU0RUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TVVNEO1xuICBleHBsb3JlclVybCA9IHVuZGVmaW5lZDtcbn1cblxuY2xhc3MgRmlhdFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQmFzZU5ldHdvcmsge1xuICBuYW1lID0gJ0ZpYXRUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5GSUFUO1xuICBleHBsb3JlclVybCA9IHVuZGVmaW5lZDtcbn1cblxuY2xhc3MgRmlhdCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBCYXNlTmV0d29yayB7XG4gIG5hbWUgPSAnRmlhdCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRklBVDtcbiAgZXhwbG9yZXJVcmwgPSB1bmRlZmluZWQ7XG59XG5cbmNsYXNzIFRyeCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBUcm9uTmV0d29yayB7XG4gIG5hbWUgPSAnVHJ4JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5UUlg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdHJvbnNjYW4ub3JnLyMvdHJhbnNhY3Rpb24vJztcbiAgbWF4RmVlTGltaXQgPSAnNTAwMDAwMDAwMCc7XG4gIGNvbnRyYWN0Q2FsbEZlZUxpbWl0ID0gJzEwMDAwMDAwMCc7XG59XG5cbmNsYXNzIFRyeFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgVHJvbk5ldHdvcmsge1xuICBuYW1lID0gJ1RyeFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlRSWDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zaGFzdGEudHJvbnNjYW4ub3JnLyMvdHJhbnNhY3Rpb24vJztcbiAgbWF4RmVlTGltaXQgPSAnNTAwMDAwMDAwMCc7XG4gIGNvbnRyYWN0Q2FsbEZlZUxpbWl0ID0gJzEwMDAwMDAwMCc7XG59XG5cbmNsYXNzIFhycCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnWHJwJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5YUlA7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vbGl2ZW5ldC54cnBsLm9yZy90cmFuc2FjdGlvbnMvJztcbn1cblxuY2xhc3MgWHJwVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnWHJwVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWFJQO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3QuYml0aG9tcC5jb20vZXhwbG9yZXIvJztcbn1cblxuY2xhc3MgWHR6IGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdYdHonO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlhUWjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXpibG9jay5pby90cmFuc2FjdGlvbi8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXpibG9jay5pby9hY2NvdW50Lyc7XG59XG5cbmNsYXNzIFh0elRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1h0elRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlhUWjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9jYXJ0aGFnZW5ldC50ZXpibG9jay5pby90cmFuc2FjdGlvbi8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9jYXJ0aGFnZW5ldC50ZXpibG9jay5pby9hY2NvdW50Lyc7XG59XG5cbmNsYXNzIFpDYXNoIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdaQ2FzaCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWkVDO1xuICB1dHhvbGliTmFtZSA9ICd6Y2FzaCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY2hhaW4uc28vdHgvWkVDLyc7XG59XG5cbmNsYXNzIFpDYXNoVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnWkNhc2hUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5aRUM7XG4gIHV0eG9saWJOYW1lID0gJ3pjYXNoVGVzdCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY2hhaW4uc28vdHgvWkVDVEVTVC8nO1xufVxuXG5jbGFzcyBOZWFyIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdOZWFyJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5ORUFSO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLm5lYXIub3JnL3RyYW5zYWN0aW9ucy8nO1xuICBmZWVSZXNlcnZlID0gJzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJztcbiAgc3RvcmFnZVJlc2VydmUgPSAnMjAwMDAwMDAwMDAwMDAwMDAwMDAwMCc7IC8vIGZlZVJlc2VydmUgKyBzdG9yYWdlUmVzZXJ2ZSBpcyBtaW5pbXVtIGFjY291bnQgYmFsYW5jZSBmb3IgYSBORUFSIHdhbGxldCBodHRwczovL2RvY3MubmVhci5vcmcvaW50ZWdyYXRvci9mYXEjaXMtdGhlcmUtYS1taW5pbXVtLWFjY291bnQtYmFsYW5jZVxufVxuXG5jbGFzcyBOZWFyVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnTmVhclRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk5FQVI7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIudGVzdG5ldC5uZWFyLm9yZy90cmFuc2FjdGlvbnMvJztcbiAgZmVlUmVzZXJ2ZSA9ICc1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMCc7XG4gIHN0b3JhZ2VSZXNlcnZlID0gJzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAnOyAvLyBmZWVSZXNlcnZlICsgc3RvcmFnZVJlc2VydmUgaXMgbWluaW11bSBhY2NvdW50IGJhbGFuY2UgZm9yIGEgTkVBUiB3YWxsZXQgaHR0cHM6Ly9kb2NzLm5lYXIub3JnL2ludGVncmF0b3IvZmFxI2lzLXRoZXJlLWEtbWluaW11bS1hY2NvdW50LWJhbGFuY2Vcbn1cblxuY2xhc3MgUG9seWdvbiBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1BvbHlnb24nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlBPTFlHT047XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vcG9seWdvbnNjYW4uY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3BvbHlnb25zY2FuLmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxMzc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4MjllZjQ2MDM1ZTlmYTNkNTcwYzU5OGQzMjY2NDI0Y2ExMTQxM2IwYyc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDUzOTdkMDg2OWFiYTBkNTVlOTZkNTcxNmQzODNmNmUxZDg2OTVlZDcnO1xuICB3YWxsZXRGYWN0b3J5QWRkcmVzcyA9ICcweGE3MTk4ZjQ4YzU4ZTkxZjAxMzE3ZTcwY2QyNGM1Y2NlNDc1YzE1NTUnO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhlNWRjZGMxM2I2MjhjMmRmODEzZGIxMDgwMzY3ZTkyOWMxNTA3Y2EwJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDdhZGM5YjNkNzUyMTcxMDMyMWJlYzdkZDY4OTdkMzM3ZTUzYzI0OTMnO1xufVxuXG5jbGFzcyBQb2x5Z29uVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1BvbHlnb25UZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5QT0xZR09OO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL211bWJhaS5wb2x5Z29uc2Nhbi5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vbXVtYmFpLnBvbHlnb25zY2FuLmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA4MDAwMTtcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHg3ZDEwY2ZkY2I3NjMzNzVmYjVmMGEwZTkxMDFmNDkwZjBiZjFiNDNhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4YWEyMjE2ZDcyZDdjMTQ5ZGZlNGMzZGQyMTU0Y2QwMDk5NDIxNjUwNic7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4ZTM3YzA3ZmFlYzg3YmUwNzVjZTQwMDJiNWZlZGJkZTAwYTRmZTlkNSc7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDExZjhkNzBhNGVlOWQwOTYyYmIxMTYwZDc3NmQ0YTk5NmNmZGZmNDAnO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4Y2RmMDFhMzFlYTJhMWQ2Mjk1MWFhYzNhNTc0M2M0NDE2ZjlkYTNmYic7XG59XG5cbmV4cG9ydCBjb25zdCBOZXR3b3JrcyA9IHtcbiAgbWFpbjoge1xuICAgIGFkYTogT2JqZWN0LmZyZWV6ZShuZXcgQWRhKCkpLFxuICAgIGFsZ29yYW5kOiBPYmplY3QuZnJlZXplKG5ldyBBbGdvcmFuZCgpKSxcbiAgICBhdG9tOiBPYmplY3QuZnJlZXplKG5ldyBBdG9tKCkpLFxuICAgIGF2YWxhbmNoZUM6IE9iamVjdC5mcmVlemUobmV3IEF2YWxhbmNoZUMoKSksXG4gICAgYXZhbGFuY2hlUDogT2JqZWN0LmZyZWV6ZShuZXcgQXZhbGFuY2hlUCgpKSxcbiAgICBiaXRjb2luOiBPYmplY3QuZnJlZXplKG5ldyBCaXRjb2luKCkpLFxuICAgIGJpdGNvaW5DYXNoOiBPYmplY3QuZnJlZXplKG5ldyBCaXRjb2luQ2FzaCgpKSxcbiAgICBiaXRjb2luR29sZDogT2JqZWN0LmZyZWV6ZShuZXcgQml0Y29pbkdvbGQoKSksXG4gICAgYml0Y29pblNWOiBPYmplY3QuZnJlZXplKG5ldyBCaXRjb2luU1YoKSksXG4gICAgYnNjOiBPYmplY3QuZnJlZXplKG5ldyBCaW5hbmNlU21hcnRDaGFpbigpKSxcbiAgICBjYXNwZXI6IE9iamVjdC5mcmVlemUobmV3IENhc3BlcigpKSxcbiAgICBjZWxvOiBPYmplY3QuZnJlZXplKG5ldyBDZWxvKCkpLFxuICAgIGRhc2g6IE9iamVjdC5mcmVlemUobmV3IERhc2goKSksXG4gICAgZG9nZWNvaW46IE9iamVjdC5mcmVlemUobmV3IERvZ2Vjb2luKCkpLFxuICAgIGRvdDogT2JqZWN0LmZyZWV6ZShuZXcgUG9sa2Fkb3QoKSksXG4gICAgZUNhc2g6IE9iamVjdC5mcmVlemUobmV3IEVDYXNoKCkpLFxuICAgIGVvczogT2JqZWN0LmZyZWV6ZShuZXcgRW9zKCkpLFxuICAgIGV0aGVyZXVtOiBPYmplY3QuZnJlZXplKG5ldyBFdGhlcmV1bSgpKSxcbiAgICBldGhlcmV1bTI6IE9iamVjdC5mcmVlemUobmV3IEV0aGVyZXVtMigpKSxcbiAgICBldGhlcmV1bUNsYXNzaWM6IE9iamVjdC5mcmVlemUobmV3IEV0aGVyZXVtQ2xhc3NpYygpKSxcbiAgICBldGhlcmV1bVc6IE9iamVjdC5mcmVlemUobmV3IEV0aGVyZXVtVygpKSxcbiAgICBmaWF0OiBPYmplY3QuZnJlZXplKG5ldyBGaWF0KCkpLFxuICAgIGhlZGVyYTogT2JqZWN0LmZyZWV6ZShuZXcgSGVkZXJhKCkpLFxuICAgIGxpdGVjb2luOiBPYmplY3QuZnJlZXplKG5ldyBMaXRlY29pbigpKSxcbiAgICBwb2x5Z29uOiBPYmplY3QuZnJlZXplKG5ldyBQb2x5Z29uKCkpLFxuICAgIG9mYzogT2JqZWN0LmZyZWV6ZShuZXcgT2ZjKCkpLFxuICAgIHJidGM6IE9iamVjdC5mcmVlemUobmV3IFJidGMoKSksXG4gICAgc3RlbGxhcjogT2JqZWN0LmZyZWV6ZShuZXcgU3RlbGxhcigpKSxcbiAgICBzb2w6IE9iamVjdC5mcmVlemUobmV3IFNvbCgpKSxcbiAgICBzdWk6IE9iamVjdC5mcmVlemUobmV3IFN1aSgpKSxcbiAgICBuZWFyOiBPYmplY3QuZnJlZXplKG5ldyBOZWFyKCkpLFxuICAgIHN0eDogT2JqZWN0LmZyZWV6ZShuZXcgU3R4KCkpLFxuICAgIHN1c2Q6IE9iamVjdC5mcmVlemUobmV3IFNVU0QoKSksXG4gICAgdHJ4OiBPYmplY3QuZnJlZXplKG5ldyBUcngoKSksXG4gICAgeHJwOiBPYmplY3QuZnJlZXplKG5ldyBYcnAoKSksXG4gICAgeHR6OiBPYmplY3QuZnJlZXplKG5ldyBYdHooKSksXG4gICAgekNhc2g6IE9iamVjdC5mcmVlemUobmV3IFpDYXNoKCkpLFxuICB9LFxuICB0ZXN0OiB7XG4gICAgYWRhOiBPYmplY3QuZnJlZXplKG5ldyBBZGFUZXN0bmV0KCkpLFxuICAgIGFsZ29yYW5kOiBPYmplY3QuZnJlZXplKG5ldyBBbGdvcmFuZFRlc3RuZXQoKSksXG4gICAgYXRvbTogT2JqZWN0LmZyZWV6ZShuZXcgQXRvbVRlc3RuZXQoKSksXG4gICAgYXZhbGFuY2hlQzogT2JqZWN0LmZyZWV6ZShuZXcgQXZhbGFuY2hlQ1Rlc3RuZXQoKSksXG4gICAgYXZhbGFuY2hlUDogT2JqZWN0LmZyZWV6ZShuZXcgQXZhbGFuY2hlUFRlc3RuZXQoKSksXG4gICAgYml0Y29pbjogT2JqZWN0LmZyZWV6ZShuZXcgQml0Y29pblRlc3RuZXQoKSksXG4gICAgYml0Y29pbkNhc2g6IE9iamVjdC5mcmVlemUobmV3IEJpdGNvaW5DYXNoVGVzdG5ldCgpKSxcbiAgICBiaXRjb2luR29sZDogT2JqZWN0LmZyZWV6ZShuZXcgQml0Y29pbkdvbGRUZXN0bmV0KCkpLFxuICAgIGJpdGNvaW5TVjogT2JqZWN0LmZyZWV6ZShuZXcgQml0Y29pblNWVGVzdG5ldCgpKSxcbiAgICBic2M6IE9iamVjdC5mcmVlemUobmV3IEJpbmFuY2VTbWFydENoYWluVGVzdG5ldCgpKSxcbiAgICBjYXNwZXI6IE9iamVjdC5mcmVlemUobmV3IENhc3BlclRlc3RuZXQoKSksXG4gICAgY2VsbzogT2JqZWN0LmZyZWV6ZShuZXcgQ2Vsb1Rlc3RuZXQoKSksXG4gICAgZGFzaDogT2JqZWN0LmZyZWV6ZShuZXcgRGFzaFRlc3RuZXQoKSksXG4gICAgZG9nZWNvaW46IE9iamVjdC5mcmVlemUobmV3IERvZ2Vjb2luVGVzdG5ldCgpKSxcbiAgICBkb3Q6IE9iamVjdC5mcmVlemUobmV3IFBvbGthZG90VGVzdG5ldCgpKSxcbiAgICBlQ2FzaDogT2JqZWN0LmZyZWV6ZShuZXcgRUNhc2hUZXN0bmV0KCkpLFxuICAgIGVvczogT2JqZWN0LmZyZWV6ZShuZXcgRW9zVGVzdG5ldCgpKSxcbiAgICBmaWF0OiBPYmplY3QuZnJlZXplKG5ldyBGaWF0VGVzdG5ldCgpKSxcbiAgICBweXJtb250OiBPYmplY3QuZnJlZXplKG5ldyBQeXJtb250KCkpLFxuICAgIGV0aGVyZXVtQ2xhc3NpY1Rlc3RuZXQ6IE9iamVjdC5mcmVlemUobmV3IEV0aGVyZXVtQ2xhc3NpY1Rlc3RuZXQoKSksXG4gICAgaGVkZXJhOiBPYmplY3QuZnJlZXplKG5ldyBIZWRlcmFUZXN0bmV0KCkpLFxuICAgIGtvdmFuOiBPYmplY3QuZnJlZXplKG5ldyBLb3ZhbigpKSxcbiAgICBnb2VybGk6IE9iamVjdC5mcmVlemUobmV3IEdvZXJsaSgpKSxcbiAgICBsaXRlY29pbjogT2JqZWN0LmZyZWV6ZShuZXcgTGl0ZWNvaW5UZXN0bmV0KCkpLFxuICAgIHBvbHlnb246IE9iamVjdC5mcmVlemUobmV3IFBvbHlnb25UZXN0bmV0KCkpLFxuICAgIG9mYzogT2JqZWN0LmZyZWV6ZShuZXcgT2ZjVGVzdG5ldCgpKSxcbiAgICByYnRjOiBPYmplY3QuZnJlZXplKG5ldyBSYnRjVGVzdG5ldCgpKSxcbiAgICBzdGVsbGFyOiBPYmplY3QuZnJlZXplKG5ldyBTdGVsbGFyVGVzdG5ldCgpKSxcbiAgICBzb2w6IE9iamVjdC5mcmVlemUobmV3IFNvbFRlc3RuZXQoKSksXG4gICAgc3VpOiBPYmplY3QuZnJlZXplKG5ldyBTdWlUZXN0bmV0KCkpLFxuICAgIG5lYXI6IE9iamVjdC5mcmVlemUobmV3IE5lYXJUZXN0bmV0KCkpLFxuICAgIHN0eDogT2JqZWN0LmZyZWV6ZShuZXcgU3R4VGVzdG5ldCgpKSxcbiAgICBzdXNkOiBPYmplY3QuZnJlZXplKG5ldyBTVVNEVGVzdG5ldCgpKSxcbiAgICB0cng6IE9iamVjdC5mcmVlemUobmV3IFRyeFRlc3RuZXQoKSksXG4gICAgeHJwOiBPYmplY3QuZnJlZXplKG5ldyBYcnBUZXN0bmV0KCkpLFxuICAgIHh0ejogT2JqZWN0LmZyZWV6ZShuZXcgWHR6VGVzdG5ldCgpKSxcbiAgICB6Q2FzaDogT2JqZWN0LmZyZWV6ZShuZXcgWkNhc2hUZXN0bmV0KCkpLFxuICB9LFxufTtcbiJdfQ==
2246
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29ya3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmV0d29ya3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQW9DO0FBRXBDLElBQVksV0FHWDtBQUhELFdBQVksV0FBVztJQUNyQixrQ0FBbUIsQ0FBQTtJQUNuQixrQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBSFcsV0FBVywyQkFBWCxXQUFXLFFBR3RCO0FBRUQsTUFBc0IsV0FBVztDQUtoQztBQUxELGtDQUtDO0FBaUlELE1BQWUsT0FBUSxTQUFRLFdBQVc7SUFBMUM7O1FBQ0UsU0FBSSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUM7SUFDN0IsQ0FBQztDQUFBO0FBRUQsTUFBZSxPQUFRLFNBQVEsV0FBVztJQUExQzs7UUFDRSxTQUFJLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQztJQUM3QixDQUFDO0NBQUE7QUFFRCxNQUFNLFFBQVMsU0FBUSxPQUFPO0lBQTlCOztRQUNFLFNBQUksR0FBRyxVQUFVLENBQUM7UUFDbEIsV0FBTSxHQUFHLGlCQUFVLENBQUMsSUFBSSxDQUFDO1FBQ3pCLGdCQUFXLEdBQUcsdUJBQXVCLENBQUM7SUFDeEMsQ0FBQztDQUFBO0FBRUQsTUFBTSxlQUFnQixTQUFRLE9BQU87SUFBckM7O1FBQ0UsU0FBSSxHQUFHLGlCQUFpQixDQUFDO1FBQ3pCLFdBQU0sR0FBRyxpQkFBVSxDQUFDLElBQUksQ0FBQztRQUN6QixnQkFBVyxHQUFHLG1EQUFtRCxDQUFDO0lBQ3BFLENBQUM7Q0FBQTtBQUVELE1BQU0sR0FBSSxTQUFRLE9BQU87SUFBekI7O1FBQ0UsU0FBSSxHQUFHLFlBQVksQ0FBQztRQUNwQixXQUFNLEdBQUcsaUJBQVUsQ0FBQyxHQUFHLENBQUM7UUFDeEIsZ0JBQVcsR0FBRyxTQUFTLENBQUM7UUFDeEIsZ0JBQVcsR0FBRyxTQUFTLENBQUM7UUFDeEIsb0JBQWUsR0FBRyxPQUFPLENBQUM7UUFDMUIsZ0JBQVcsR0FB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QUFDLE1BQU0sQ0FBQyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ3ZDLFNBQVMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksU0FBUyxFQUFFLENBQUM7UUFDekMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUNyRCxTQUFTLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ3pDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDL0IsT0FBTyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNyQyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQy9CLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDL0IsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNuQyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzdCLEVBQUUsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7UUFDM0IsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNuQyxTQUFTLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ3pDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDL0IsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUMvQixJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQy9CLElBQUksRUFBRSxNQUFNLENBQUMs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QUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDN0IsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUM3QixHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzdCLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDN0IsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUNqQyxLQUFLLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ2pDLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDN0IsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNoQyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzdCLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDN0IsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUNqQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQy9CLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxFQUFFLENBQUM7S0FDcEM7SUFDRCxJQUFJLEVBQUU7UUFDSixHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLFFBQVEsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksZUFBZSxFQUFFLENBQUM7UUFDOUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUM5QyxHQUFHLEVBQUUs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UUFDcEMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNwQyxLQUFLLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3hDLEtBQUssRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksWUFBWSxFQUFFLENBQUM7UUFDeEMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNwQyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ3ZDLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksVUFBVSxFQUFFLENBQUM7UUFDcEMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNwQyxLQUFLLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3hDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksV0FBVyxFQUFFLENBQUM7UUFDdEMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxhQUFhLEVBQUUsQ0FBQztLQUMzQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2luRmFtaWx5IH0gZnJvbSAnLi9iYXNlJztcblxuZXhwb3J0IGVudW0gTmV0d29ya1R5cGUge1xuICBNQUlOTkVUID0gJ21haW5uZXQnLFxuICBURVNUTkVUID0gJ3Rlc3RuZXQnLFxufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZU5ldHdvcmsge1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgdHlwZTogTmV0d29ya1R5cGU7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBmYW1pbHk6IENvaW5GYW1pbHk7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBleHBsb3JlclVybDogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFV0eG9OZXR3b3JrIGV4dGVuZHMgQmFzZU5ldHdvcmsge1xuICAvLyBOZXR3b3JrIG5hbWUgYXMgZGVmaW5lZCBpbiBAYml0Z28tYmV0YS91dHhvLWxpYiBuZXR3b3Jrcy50c1xuICB1dHhvbGliTmFtZTogc3RyaW5nO1xuICBwYXlnb0FkZHJlc3NBdHRlc3RhdGlvblB1YmtleT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaWdodG5pbmdOZXR3b3JrIGV4dGVuZHMgVXR4b05ldHdvcmsge1xuICAvKipcbiAgICogVGhlIHB1YmxpYyBrZXkgb2YgdGhlIExpZ2h0bmluZyBzZXJ2aWNlLCB1c2VkIGZvciBkZXJpdmluZyB0aGUgc2hhcmVkIEVsbGlwdGljIEN1cnZlIERpZmZpZS1IZWxsbWFuIChFQ0RIKSBzZWNyZXRcbiAgICogYmV0d2VlbiB0aGUgdXNlcidzIGV4dGVuZGVkIHByaXZhdGUga2V5IGFuZCB0aGUgTGlnaHRuaW5nIHNlcnZpY2UuIFRoaXMga2V5IGZhY2lsaXRhdGVzIHNlY3VyZSBjb21tdW5pY2F0aW9uXG4gICAqIGJ5IGVuYWJsaW5nIHRoZSBjcmVhdGlvbiBvZiBhIHNoYXJlZCBzZWNyZXQgZm9yIGVuY3J5cHRpb24gYW5kIGRlY3J5cHRpb24gb2YgZGF0YS5cbiAgICovXG4gIGxpZ2h0bmluZ1NlcnZpY2VQdWJLZXk6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBwdWJsaWMga2V5IG9mIHRoZSBtaWRkbGV3YXJlIHNlcnZpY2UsIHVzZWQgZm9yIGRlcml2aW5nIHRoZSBzaGFyZWQgRWxsaXB0aWMgQ3VydmUgRGlmZmllLUhlbGxtYW4gKEVDREgpIHNlY3JldFxuICAgKiBiZXR3ZWVuIHRoZSB1c2VyJ3MgZXh0ZW5kZWQgcHJpdmF0ZSBrZXkgYW5kIHRoZSBtaWRkbGV3YXJlIHNlcnZpY2UuXG4gICAqL1xuICBtaWRkbGV3YXJlUHViS2V5OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgcHVibGljIGtleSBvZiB0aGUgVEFUIHNlcnZpY2UsIHVzZWQgZm9yIGRlcml2aW5nIHRoZSBzaGFyZWQgRWxsaXB0aWMgQ3VydmUgRGlmZmllLUhlbGxtYW4gKEVDREgpIHNlY3JldFxuICAgKiBiZXR3ZWVuIHRoZSB1c2VyJ3MgZXh0ZW5kZWQgcHJpdmF0ZSBrZXkgYW5kIHRoZSBUQVQgc2VydmljZS5cbiAgICovXG4gIHRhdFB1YktleTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFkYU5ldHdvcmsgZXh0ZW5kcyBCYXNlTmV0d29yayB7XG4gIC8vIE5ldHdvcmsgbmFtZSBhcyBkZWZpbmVkIGluIEBiaXRnby1iZXRhL3V0eG8tbGliIG5ldHdvcmtzLnRzXG4gIC8vIG1heWJlIGFkZCBuZXR3b3JrIGlkZW50aWZpZXIgLyBtYWdpYyBuZXR3b3JrIG51bWJlclxuICB1dHhvbGliTmFtZTogc3RyaW5nO1xuICBwb29sRGVwb3NpdDogbnVtYmVyO1xuICBzdGFrZUtleURlcG9zaXQ6IG51bWJlcjtcbiAgbWF4VmFsdWVTaXplOiBudW1iZXI7XG4gIG1heFRyYW5zYWN0aW9uU2l6ZTogbnVtYmVyO1xuICBjb2luc1BlclV0eG9Xb3JkOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXZhbGFuY2hlTmV0d29yayBleHRlbmRzIEJhc2VOZXR3b3JrIHtcbiAgcmVhZG9ubHkgYWxpYXM6IHN0cmluZztcbiAgcmVhZG9ubHkgYmxvY2tjaGFpbklEOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNDaGFpbkJsb2NrY2hhaW5JRDogc3RyaW5nO1xuICByZWFkb25seSBuZXR3b3JrSUQ6IG51bWJlcjtcbiAgcmVhZG9ubHkgaHJwOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZtOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNyZWF0aW9uVHhGZWU6IHN0cmluZztcbiAgcmVhZG9ubHkgY3JlYXRlU3VibmV0VHg6IHN0cmluZztcbiAgcmVhZG9ubHkgY3JlYXRlQ2hhaW5UeDogc3RyaW5nO1xuICByZWFkb25seSBtaW5Db25zdW1wdGlvbjogc3RyaW5nO1xuICByZWFkb25seSBtYXhDb25zdW1wdGlvbjogc3RyaW5nO1xuICByZWFkb25seSBtYXhTdXBwbHk6IHN0cmluZztcbiAgcmVhZG9ubHkgbWluU3Rha2U6IHN0cmluZztcbiAgcmVhZG9ubHkgbWluU3Rha2VEdXJhdGlvbjogc3RyaW5nO1xuICByZWFkb25seSBtYXhTdGFrZUR1cmF0aW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1pbkRlbGVnYXRpb25TdGFrZTogc3RyaW5nO1xuICByZWFkb25seSBtaW5EZWxlZ2F0aW9uRmVlOiBzdHJpbmc7XG4gIC8vIGN1cnJlbnQgdmFsaWQgYXNzZXQgaWQgaXMgQVZBWFxuICByZWFkb25seSBhdmF4QXNzZXRJRDogc3RyaW5nO1xuICByZWFkb25seSB0eEZlZTogc3RyaW5nO1xuICByZWFkb25seSBtYXhJbXBvcnRGZWU6IHN0cmluZzsgLy8gMC4wMSBBVkFYXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWNjb3VudE5ldHdvcmsgZXh0ZW5kcyBCYXNlTmV0d29yayB7XG4gIC8vIHNvbWUgY2hhaW5zIHBheSBmZWVzIHZpYSBhbiBlbnRlcnByaXNlIGdhcyB0YXNrLiBUaGUgYWNjb3VudCBleHBsb3JlciB1cmxcbiAgLy8gaXMgYSB1cmwgdGhhdCBjYW4gYmUgdXNlZCB0byBsb29rIHVwIHRoZSBhY2NvdW50IGZvciB0aGUgZ2FzIHRhbmsgb24tY2hhaW4uXG4gIHJlYWRvbmx5IGFjY291bnRFeHBsb3JlclVybD86IHN0cmluZztcbiAgcmVhZG9ubHkgYmxvY2tFeHBsb3JlclVybD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb3Ntb3NOZXR3b3JrIGV4dGVuZHMgQWNjb3VudE5ldHdvcmsge1xuICByZWFkb25seSBhZGRyZXNzUHJlZml4OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZhbGlkYXRvclByZWZpeDogc3RyaW5nO1xuICByZWFkb25seSBkZW5vbTogc3RyaW5nO1xuICByZWFkb25seSBnYXNBbW91bnQ6IHN0cmluZztcbiAgcmVhZG9ubHkgZ2FzTGltaXQ6IG51bWJlcjtcbiAgcmVhZG9ubHkgdmFsaWREZW5vbXM6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFNwZWNpZmljYXRpb24gbmFtZSB0eXBlIG9mIHRoZSBjaGFpbi4gVXNlZCBpbiBzZXR0aW5nIHVwIHRoZSByZWdpc3RyeVxuICovXG5leHBvcnQgdHlwZSBQb2xrYWRvdFNwZWNOYW1lVHlwZSA9ICdrdXNhbWEnIHwgJ3BvbGthZG90JyB8ICd3ZXN0ZW5kJyB8ICdzdGF0ZW1pbnQnIHwgJ3N0YXRlbWluZSc7XG5cbmV4cG9ydCB0eXBlIFN1YnN0cmF0ZVNwZWNOYW1lVHlwZSA9XG4gIHwgJ2t1c2FtYSdcbiAgfCAncG9sa2Fkb3QnXG4gIHwgJ3dlc3RlbmQnXG4gIHwgJ3N0YXRlbWludCdcbiAgfCAnc3RhdGVtaW5lJ1xuICB8ICdub2RlLXN1YnRlbnNvcidcbiAgfCAncG9seW1lc2hfdGVzdG5ldCdcbiAgfCAncG9seW1lc2hfbWFpbm5ldCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG90TmV0d29yayBleHRlbmRzIEFjY291bnROZXR3b3JrIHtcbiAgLy8gc29tZSBjaGFpbnMgcGF5IGZlZXMgdmlhIGFuIGVudGVycHJpc2UgZ2FzIHRhc2suIFRoZSBhY2NvdW50IGV4cGxvcmVyIHVybFxuICAvLyBpcyBhIHVybCB0aGF0IGNhbiBiZSB1c2VkIHRvIGxvb2sgdXAgdGhlIGFjY291bnQgZm9yIHRoZSBnYXMgdGFuayBvbi1jaGFpbi5cbiAgcmVhZG9ubHkgc3BlY05hbWU6IFBvbGthZG90U3BlY05hbWVUeXBlO1xuICByZWFkb25seSBnZW5lc2lzSGFzaDogc3RyaW5nO1xuICByZWFkb25seSBzcGVjVmVyc2lvbjogbnVtYmVyO1xuICByZWFkb25seSBjaGFpbk5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgdHhWZXJzaW9uOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXRoZXJldW1OZXR3b3JrIGV4dGVuZHMgQWNjb3VudE5ldHdvcmsge1xuICAvLyB1bmlxdWUgY2hhaW4gaWQgdXNlZCBmb3IgcmVwbGF5LXByb3RlY3RpbmcgdHJhbnNhY3Rpb25zXG4gIHJlYWRvbmx5IGNoYWluSWQ6IG51bWJlcjtcbiAgcmVhZG9ubHkgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcz86IHN0cmluZztcbiAgLy8gZm9yd2FyZGVyIGNvbmZpZ3VyYXRpb24gYWRkcmVzc2VzIHVzZWQgZm9yIGNhbGN1bGF0aW5nIGZvcndhcmRlciB2ZXJzaW9uIDEgYWRkcmVzc2VzXG4gIHJlYWRvbmx5IGZvcndhcmRlckZhY3RvcnlBZGRyZXNzPzogc3RyaW5nO1xuICByZWFkb25seSBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3M/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4Pzogc3RyaW5nO1xuICByZWFkb25seSB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXg/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHdhbGxldFY0Rm9yd2FyZGVyRmFjdG9yeUFkZHJlc3M/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHdhbGxldFY0Rm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyb25OZXR3b3JrIGV4dGVuZHMgQWNjb3VudE5ldHdvcmsge1xuICBtYXhGZWVMaW1pdDogc3RyaW5nO1xuICBjb250cmFjdENhbGxGZWVMaW1pdDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWNrc05ldHdvcmsgZXh0ZW5kcyBBY2NvdW50TmV0d29yayB7XG4gIHJlYWRvbmx5IHNlbmRtYW55bWVtb0NvbnRyYWN0QWRkcmVzczogc3RyaW5nO1xuICByZWFkb25seSBzdGFraW5nQ29udHJhY3RBZGRyZXNzOiBzdHJpbmc7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktaW50ZXJmYWNlXG5leHBvcnQgaW50ZXJmYWNlIE9mY05ldHdvcmsgZXh0ZW5kcyBCYXNlTmV0d29yayB7fVxuXG5hYnN0cmFjdCBjbGFzcyBNYWlubmV0IGV4dGVuZHMgQmFzZU5ldHdvcmsge1xuICB0eXBlID0gTmV0d29ya1R5cGUuTUFJTk5FVDtcbn1cblxuYWJzdHJhY3QgY2xhc3MgVGVzdG5ldCBleHRlbmRzIEJhc2VOZXR3b3JrIHtcbiAgdHlwZSA9IE5ldHdvcmtUeXBlLlRFU1RORVQ7XG59XG5cbmNsYXNzIEFsZ29yYW5kIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdBbGdvcmFuZCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQUxHTztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9hbGxvLmluZm8vdHgvJztcbn1cblxuY2xhc3MgQWxnb3JhbmRUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdBbGdvcmFuZFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFMR087XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuYml0cXVlcnkuaW8vYWxnb3JhbmRfdGVzdG5ldC90eC8nO1xufVxuXG5jbGFzcyBBZGEgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWRhTmV0d29yayB7XG4gIG5hbWUgPSAnQWRhQ2FyZGFubyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQURBO1xuICB1dHhvbGliTmFtZSA9ICdjYXJkYW5vJztcbiAgcG9vbERlcG9zaXQgPSA1MDAwMDAwMDA7XG4gIHN0YWtlS2V5RGVwb3NpdCA9IDIwMDAwMDA7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY2V4cGxvcmVyLmlvLyc7XG4gIGNvaW5zUGVyVXR4b1dvcmQgPSAzNDQ4MjtcbiAgbWF4VHJhbnNhY3Rpb25TaXplID0gODAwMDtcbiAgbWF4VmFsdWVTaXplID0gNDAwMDtcbn1cblxuY2xhc3MgQWRhVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBZGFOZXR3b3JrIHtcbiAgbmFtZSA9ICdBZGFDYXJkYW5vVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQURBO1xuICB1dHhvbGliTmFtZSA9ICdjYXJkYW5vVGVzdG5ldCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vcHJlcHJvZC5jZXhwbG9yZXIuaW8vJztcbiAgY29pbnNQZXJVdHhvV29yZCA9IDM0NDgyO1xuICBtYXhUcmFuc2FjdGlvblNpemUgPSA4MDAwO1xuICBtYXhWYWx1ZVNpemUgPSA0MDAwO1xuICBwb29sRGVwb3NpdCA9IDUwMDAwMDAwMDtcbiAgc3Rha2VLZXlEZXBvc2l0ID0gMjAwMDAwMDtcbn1cblxuY2xhc3MgQXB0IGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdBcHQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFQVDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5hcHRvc2xhYnMuY29tL3R4bi8/bmV0d29yaz1tYWlubmV0JztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuYXB0b3NsYWJzLmNvbS9hY2NvdW50Lz9uZXR3b3JrPW1haW5uZXQnO1xuICBibG9ja0V4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuYXB0b3NsYWJzLmNvbS9ibG9jay8/bmV0d29yaz1tYWlubmV0Jztcbn1cblxuY2xhc3MgQXB0VGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBBcHQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFQVDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5hcHRvc2xhYnMuY29tL3R4bi8/bmV0d29yaz10ZXN0bmV0JztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuYXB0b3NsYWJzLmNvbS9hY2NvdW50Lz9uZXR3b3JrPXRlc3RuZXQnO1xuICBibG9ja0V4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuYXB0b3NsYWJzLmNvbS9ibG9jay8/bmV0d29yaz10ZXN0bmV0Jztcbn1cblxuY2xhc3MgSWNwIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdJbnRlcm5ldCBDb21wdXRlcic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSUNQO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Rhc2hib2FyZC5pbnRlcm5ldGNvbXB1dGVyLm9yZy90cmFuc2FjdGlvbi8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9kYXNoYm9hcmQuaW50ZXJuZXRjb21wdXRlci5vcmcvYWNjb3VudC8nO1xufVxuXG5jbGFzcyBJY3BUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IEludGVybmV0IENvbXB1dGVyJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5JQ1A7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZGFzaGJvYXJkLmludGVybmV0Y29tcHV0ZXIub3JnL3RyYW5zYWN0aW9uLyc7IC8vIElDUCB0ZXN0bmV0IGV4cGxvcmVyIGlzIG5vdCBhdmFpbGFibGUsIHNvIHVzaW5nIG1haW5uZXQgZXhwbG9yZXJcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZGFzaGJvYXJkLmludGVybmV0Y29tcHV0ZXIub3JnL2FjY291bnQvJztcbn1cblxuY2xhc3MgQXJiaXRydW0gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdBcmJpdHJ1bSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQVJCRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2FyYmlzY2FuLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2FyYmlzY2FuLmlvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDQyMTYxO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc0MjE2MSc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc0MjE2MS1FUkMyMCc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xuICB3YWxsZXRGYWN0b3J5QWRkcmVzcyA9ICcweDgwOWVlNTY3ZTQxMzU0M2FmMWNhZWJjZGIyNDdmNmE2N2VhZmM4ZGQnO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg5NDRmZWYwM2FmMzY4NDE0ZjI5ZGMzMWE3MjA2MWI4ZDY0ZjU2OGQyJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xufVxuXG5jbGFzcyBBcmJpdHJ1bVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdBcmJpdHJ1bVRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFSQkVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zZXBvbGlhLmFyYmlzY2FuLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEuYXJiaXNjYW4uaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNDIxNjE0O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc0MjE2MTQnO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNDIxNjE0LUVSQzIwJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4ODA5ZWU1NjdlNDEzNTQzYWYxY2FlYmNkYjI0N2Y2YTY3ZWFmYzhkZCc7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDk0NGZlZjAzYWYzNjg0MTRmMjlkYzMxYTcyMDYxYjhkNjRmNTY4ZDInO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG59XG5cbmNsYXNzIEF2YWxhbmNoZUMgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICAvLyBodHRwczovL2RvY3MuYXZheC5uZXR3b3JrL2J1aWxkL3R1dG9yaWFscy9zbWFydC1jb250cmFjdHMvZGVwbG95LWEtc21hcnQtY29udHJhY3Qtb24tYXZhbGFuY2hlLXVzaW5nLXJlbWl4LWFuZC1tZXRhbWFzayNhdmFsYW5jaGUtbWFpbm5ldC1zZXR0aW5nc1xuICBuYW1lID0gJ0F2YWxhbmNoZUMnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFWQVhDO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3N1Ym5ldHMuYXZheC5uZXR3b3JrL2MtY2hhaW4vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc3VibmV0cy5hdmF4Lm5ldHdvcmsvYy1jaGFpbi9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA0MzExNDtcbn1cblxuY2xhc3MgQXZhbGFuY2hlQ1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICAvLyBodHRwczovL2RvY3MuYXZheC5uZXR3b3JrL2J1aWxkL3R1dG9yaWFscy9zbWFydC1jb250cmFjdHMvZGVwbG95LWEtc21hcnQtY29udHJhY3Qtb24tYXZhbGFuY2hlLXVzaW5nLXJlbWl4LWFuZC1tZXRhbWFzayNhdmFsYW5jaGUtbWFpbm5ldC1zZXR0aW5nc1xuICBuYW1lID0gJ0F2YWxhbmNoZUNUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5BVkFYQztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zdWJuZXRzLXRlc3QuYXZheC5uZXR3b3JrL2MtY2hhaW4vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc3VibmV0cy10ZXN0LmF2YXgubmV0d29yay9jLWNoYWluL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDQzMTEzO1xufVxuXG5jbGFzcyBBdmFsYW5jaGVQIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEF2YWxhbmNoZU5ldHdvcmsge1xuICBuYW1lID0gJ0F2YWxhbmNoZVAnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFWQVhQO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3N1Ym5ldHMuYXZheC5uZXR3b3JrL3AtY2hhaW4vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc3VibmV0cy5hdmF4Lm5ldHdvcmsvcC1jaGFpbi9hZGRyZXNzLyc7XG4gIGJsb2NrY2hhaW5JRCA9ICcxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMUxwb1lZJztcbiAgY0NoYWluQmxvY2tjaGFpbklEID0gJzJxOWU0cjZNdTNVNjhuVTFmWWpnYlI2SnZ3clJ4MzZDb2hwQVg1VVF4c2U1NXgxUTUnO1xuICBhdmF4QXNzZXRJRCA9ICdGdndFQWhteEtmZWlHOFNuRXZxNDJoYzZ3aFJ5WTNFRllBdmViTXFETkRHQ2d4TjVaJztcbiAgbmV0d29ya0lEID0gMTtcbiAgaHJwID0gJ2F2YXgnO1xuICBhbGlhcyA9ICdQJztcbiAgdm0gPSAncGxhdGZvcm12bSc7XG4gIHR4RmVlID0gJzEwMDAwMDAnOyAvLyAxIE1JTExJQVZBWFxuICBtYXhJbXBvcnRGZWUgPSAnMTAwMDAwMDAnOyAvLyAwLjAxIEFWQVhcbiAgY3JlYXRlU3VibmV0VHggPSAnMTAwMDAwMDAwMCc7IC8vIDEgQVZBWFxuICBjcmVhdGVDaGFpblR4ID0gJzEwMDAwMDAwMDAnOyAvLyAxIEFWQVhcbiAgY3JlYXRpb25UeEZlZSA9ICcxMDAwMDAwMCc7IC8vIDEgQ0VOVElBVkFYXG4gIG1pbkNvbnN1bXB0aW9uID0gJzAuMSc7XG4gIG1heENvbnN1bXB0aW9uID0gJzAuMTInO1xuICBtYXhTdXBwbHkgPSAnNzIwMDAwMDAwMDAwMDAwMDAwJzsgLy8gNzIwIG1pbCB0b2tlbnNcbiAgbWluU3Rha2UgPSAnMjAwMDAwMDAwMDAwMCc7IC8vIDIwMDAgQVZBWFxuICBtaW5TdGFrZUR1cmF0aW9uID0gJzEyMDk2MDAnOyAvLyAyIHdlZWtzXG4gIG1heFN0YWtlRHVyYXRpb24gPSAnMzE1MzYwMDAnOyAvLyAxIHllYXJcbiAgbWluRGVsZWdhdGlvblN0YWtlID0gJzI1MDAwMDAwMDAwJzsgLy8gMjUgQVZBWFxuICBtaW5EZWxlZ2F0aW9uRmVlID0gJzInO1xufVxuXG5jbGFzcyBBdmFsYW5jaGVQVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBdmFsYW5jaGVOZXR3b3JrIHtcbiAgbmFtZSA9ICdBdmFsYW5jaGVQVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQVZBWFA7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc3VibmV0cy10ZXN0LmF2YXgubmV0d29yay9wLWNoYWluL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3N1Ym5ldHMtdGVzdC5hdmF4Lm5ldHdvcmsvcC1jaGFpbi9hZGRyZXNzLyc7XG4gIGJsb2NrY2hhaW5JRCA9ICcxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMUxwb1lZJztcbiAgY0NoYWluQmxvY2tjaGFpbklEID0gJ3lIOEQ3VGhOSmt4bXRrdXYyamdCYTRQMVJuM1FwcjRwUHI3UVlOZmNkb1M2azZIV3AnO1xuICBhdmF4QXNzZXRJRCA9ICdVOGlScUpvaUptOHhaSEFhY212WXlaVndxUXg2dUROdFFlUDNDUTZmY2dRazNKcW5LJztcbiAgbmV0d29ya0lEID0gNTtcbiAgYWxpYXMgPSAnUCc7XG4gIGhycCA9ICdmdWppJztcbiAgdm0gPSAncGxhdGZvcm12bSc7XG4gIHR4RmVlID0gJzEwMDAwMDAnOyAvLyAxIE1JTExJQVZBWFxuICBtYXhJbXBvcnRGZWUgPSAnMTAwMDAwMDAnOyAvLyAwLjAxIEFWQVhcbiAgY3JlYXRlU3VibmV0VHggPSAnMTAwMDAwMDAwMCc7IC8vIDEgQVZBWFxuICBjcmVhdGVDaGFpblR4ID0gJzEwMDAwMDAwMDAnOyAvLyAxIEFWQVhcbiAgY3JlYXRpb25UeEZlZSA9ICcxMDAwMDAwMCc7IC8vIDEgQ0VOVElBVkFYXG4gIG1pbkNvbnN1bXB0aW9uID0gJzAuMSc7XG4gIG1heENvbnN1bXB0aW9uID0gJzAuMTInO1xuICBtYXhTdXBwbHkgPSAnNzIwMDAwMDAwMDAwMDAwMDAwJzsgLy8gNzIwIG1pbCB0b2tlbnNcbiAgbWluU3Rha2UgPSAnMTAwMDAwMDAwMCc7IC8vIDEgQVZBWFxuICBtaW5TdGFrZUR1cmF0aW9uID0gJzg2NDAwJzsgLy8gMSBkYXlcbiAgbWF4U3Rha2VEdXJhdGlvbiA9ICczMTUzNjAwMCc7IC8vIDEgeWVhclxuICBtaW5EZWxlZ2F0aW9uU3Rha2UgPSAnMTAwMDAwMDAwMCc7IC8vIDEgQVZBWFxuICBtaW5EZWxlZ2F0aW9uRmVlID0gJzInO1xufVxuXG5jbGFzcyBCaW5hbmNlU21hcnRDaGFpbiBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0JpbmFuY2VTbWFydENoYWluJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CU0M7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYnNjc2Nhbi5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYnNjc2Nhbi5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNTY7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzU2JztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzU2LUVSQzIwJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweGIxYjdlN2NjMWVjYWZiZmQwNzcxYTVlYjU0NTRhYjViMDM1Njk4MGQnO1xufVxuXG5jbGFzcyBCaW5hbmNlU21hcnRDaGFpblRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdCaW5hbmNlU21hcnRDaGFpblRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJTQztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LmJzY3NjYW4uY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQuYnNjc2Nhbi5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gOTc7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzk3JztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzk3LUVSQzIwJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDZmYWY0YjZiYWUzZDRiZjIwYzVkODY2YzkzOGY1MTk5MmM2M2U4MjUnO1xufVxuXG5jbGFzcyBMaWdodG5pbmdCaXRjb2luIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIExpZ2h0bmluZ05ldHdvcmsge1xuICBuYW1lID0gJ0xpZ2h0bmluZ0JpdGNvaW4nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkxOQlRDO1xuICB1dHhvbGliTmFtZSA9ICdiaXRjb2luJztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9tZW1wb29sLnNwYWNlL2xpZ2h0bmluZyc7XG4gIGxpZ2h0bmluZ1NlcnZpY2VQdWJLZXkgPSAnMDMzODUwODY4NmY5NzhjZWZmZDdjZTA1NDA0MDQxYjFhNWI0Zjc1YTM5YmM5MmE2ZDM1NTI0MGNjYzA4MWY3NjNlJztcbiAgbWlkZGxld2FyZVB1YktleSA9ICcwMjBkNTJmNjQ1OGIxN2I1NjViYzAzNTE2NTY4ZDFhNjVjOGNiZDEzMWNlMDNmMjIwNzU2N2U0Y2QzMzIyZTgyZjMnO1xuICB0YXRQdWJLZXkgPSAnMDM5NTNkYTIwMDY4YzA5Njg1OGQzY2NhNjBmOGM1YjBlNWEyZjVkMDM4M2VjZjliNmFiMzkyZDcxZTRmM2U3MmRmJztcbn1cblxuY2xhc3MgTGlnaHRuaW5nQml0Y29pblRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgTGlnaHRuaW5nTmV0d29yayB7XG4gIG5hbWUgPSAnTGlnaHRuaW5nQml0Y29pblRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkxOQlRDO1xuICB1dHhvbGliTmFtZSA9ICd0ZXN0bmV0JztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9tZW1wb29sLnNwYWNlL3Rlc3RuZXQvbGlnaHRuaW5nJztcbiAgbGlnaHRuaW5nU2VydmljZVB1YktleSA9ICcwMjQwNTUwMjFkYjFlN2YwMTllYmI3ODNhYjBiMDgxMGMyMWE4MTkyMDdkNGNiMWVjNGE2ZTIxNTBhYzA3ZjE0ODInO1xuICBtaWRkbGV3YXJlUHViS2V5ID0gJzAyN2NiM2JjNmI0OWZjMzg1ZDI4MmI0MmE3YmUyMzJhOTRmZmNiYWZmYzc4MThiNjAzYjE3NzIyNTgyYmJmNTM5Yic7XG4gIHRhdFB1YktleSA9ICcwMmU3NDdjOTljMzcxZWFjOWMxNGZiMTk5MTNiZWM4YTBlM2U0NmUzNWFiMWE0NTg3OGU1YjlhZmJiNjk4OTljMWUnO1xufVxuXG5jbGFzcyBCaXRjb2luIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdCaXRjb2luJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CVEM7XG4gIHV0eG9saWJOYW1lID0gJ2JpdGNvaW4nO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL21lbXBvb2wuc3BhY2UvdHgvJztcbn1cblxuY2xhc3MgQml0Y29pblRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0JpdGNvaW5UZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CVEM7XG4gIHV0eG9saWJOYW1lID0gJ3Rlc3RuZXQnO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL21lbXBvb2wuc3BhY2UvdGVzdG5ldC90eC8nO1xuICAvLyBBZGQgb3VyIHB1YmtleSBmb3Igb3VyIHBheWdvIHdhbGxldFxuICBwYXlnb0FkZHJlc3NBdHRlc3RhdGlvblB1YmtleSA9XG4gICAgJ3hwdWI2QktSZ21DUFg1b1FpSmdKNlZxNkJGOHREdlpod1FraTVkVlZRb2hja0syWkpYdHhqOEs2TTlwYXZMd3Q5cGlXMzNoWnoxN1NXbUc4UVdzakoxdEhkZGUyRnM1VUEzREZiQXBDdGJkYUdLbic7XG59XG5cbmNsYXNzIEJpdGNvaW5QdWJsaWNTaWduZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0JpdGNvaW5QdWJsaWNTaWduZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJUQztcbiAgdXR4b2xpYk5hbWUgPSAnYml0Y29pblB1YmxpY1NpZ25ldCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vbWVtcG9vbC5zcGFjZS9zaWduZXQvdHgvJztcbn1cblxuY2xhc3MgQml0Y29pblRlc3RuZXQ0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdCaXRjb2luVGVzdG5ldDQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJUQztcbiAgdXR4b2xpYk5hbWUgPSAnYml0Y29pblRlc3RuZXQ0JztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9tZW1wb29sLnNwYWNlL3Rlc3RuZXQ0L3R4Lyc7XG59XG5cbmNsYXNzIEJpdGNvaW5CaXRHb1NpZ25ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnQml0Y29pbkJpdEdvU2lnbmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CVEM7XG4gIHV0eG9saWJOYW1lID0gJ2JpdGNvaW5CaXRHb1NpZ25ldCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vbWVtcG9vbC5zcGFjZS9ub3RhbmV0d29yay90eC8nO1xufVxuXG5jbGFzcyBCaXRjb2luQ2FzaCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnQml0Y29pbkNhc2gnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJDSDtcbiAgdXR4b2xpYk5hbWUgPSAnYml0Y29pbmNhc2gnO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3d3dy5ibG9ja2NoYWluLmNvbS9iY2gvdHgvJztcbn1cblxuY2xhc3MgQml0Y29pbkNhc2hUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdCaXRjb2luQ2FzaFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJDSDtcbiAgdXR4b2xpYk5hbWUgPSAnYml0Y29pbmNhc2hUZXN0bmV0JztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90YmNoLmxvcGluZy5uZXQvdHgvJztcbn1cbmNsYXNzIEJpdGNvaW5TViBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnQml0Y29pblNWJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CU1Y7XG4gIHV0eG9saWJOYW1lID0gJ2JpdGNvaW5zdic7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmxvY2tjaGFpci5jb20vYml0Y29pbi1zdi90cmFuc2FjdGlvbi8nO1xufVxuXG5jbGFzcyBCaXRjb2luU1ZUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdCaXRjb2luU1ZUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CU1Y7XG4gIHV0eG9saWJOYW1lID0gJ2JpdGNvaW5zdlRlc3RuZXQnO1xuICBleHBsb3JlclVybCA9IHVuZGVmaW5lZDtcbn1cblxuY2xhc3MgQml0Y29pbkdvbGQgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0JpdGNvaW5Hb2xkJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CVEc7XG4gIHV0eG9saWJOYW1lID0gJ2JpdGNvaW5nb2xkJztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9idGdleHBsb3Jlci5jb20vdHgvJztcbn1cblxuY2xhc3MgQml0Y29pbkdvbGRUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdCaXRjb2luR29sZFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJURztcbiAgdXR4b2xpYk5hbWUgPSAnYml0Y29pbmdvbGRUZXN0bmV0JztcbiAgZXhwbG9yZXJVcmwgPSB1bmRlZmluZWQ7XG59XG5cbmNsYXNzIERhc2ggZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0Rhc2gnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkRBU0g7XG4gIHV0eG9saWJOYW1lID0gJ2Rhc2gnO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2luc2lnaHQuZGFzaGV2by5vcmcvaW5zaWdodC90eC8nO1xufVxuXG5jbGFzcyBEYXNoVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnRGFzaFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkRBU0g7XG4gIHV0eG9saWJOYW1lID0gJ2Rhc2hUZXN0JztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LWluc2lnaHQuZGFzaGV2by5vcmcvaW5zaWdodC90eC8nO1xufVxuXG5jbGFzcyBEb2dlY29pbiBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnRG9nZWNvaW4nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkRPR0U7XG4gIHV0eG9saWJOYW1lID0gJ2RvZ2Vjb2luJztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ibG9ja2NoYWlyLmNvbS9kb2dlY29pbi90cmFuc2FjdGlvbi8nO1xufVxuXG5jbGFzcyBEb2dlY29pblRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0RvZ2Vjb2luVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRE9HRTtcbiAgdXR4b2xpYk5hbWUgPSAnZG9nZWNvaW5UZXN0JztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ibG9ja2V4cGxvcmVyLm9uZS9kb2dlY29pbi90ZXN0bmV0L3R4Lyc7XG59XG5cbmNsYXNzIEVDYXNoIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdFQ2FzaCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQkNIQTtcbiAgdXR4b2xpYk5hbWUgPSAnZWNhc2gnO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Jsb2NrY2hhaXIuY29tL2VjYXNoJztcbn1cblxuY2xhc3MgRUNhc2hUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdFQ2FzaFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJDSEE7XG4gIHV0eG9saWJOYW1lID0gJ2VjYXNoVGVzdCc7XG4gIGV4cGxvcmVyVXJsID0gdW5kZWZpbmVkO1xufVxuXG5jbGFzcyBQb2xrYWRvdCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBEb3ROZXR3b3JrIHtcbiAgbmFtZSA9ICdQb2xrYWRvdCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRE9UO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3BvbGthZG90LnN1YnNjYW4uaW8vZXh0cmluc2ljLyc7XG4gIHNwZWNOYW1lID0gJ3BvbGthZG90JyBhcyBQb2xrYWRvdFNwZWNOYW1lVHlwZTtcbiAgZ2VuZXNpc0hhc2ggPSAnMHg5MWIxNzFiYjE1OGUyZDM4NDhmYTIzYTlmMWMyNTE4MmZiOGUyMDMxM2IyYzFlYjQ5MjE5ZGE3YTcwY2U5MGMzJztcbiAgc3BlY1ZlcnNpb24gPSA5MTQwO1xuICBjaGFpbk5hbWUgPSAnUG9sa2Fkb3QnO1xuICB0eFZlcnNpb24gPSA5O1xufVxuXG5jbGFzcyBQb2xrYWRvdFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRG90TmV0d29yayB7XG4gIG5hbWUgPSAnV2VzdGVuZCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRE9UO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3dlc3RlbmQuc3Vic2Nhbi5pby9leHRyaW5zaWMvJztcbiAgc3BlY05hbWUgPSAnd2VzdGVuZCcgYXMgUG9sa2Fkb3RTcGVjTmFtZVR5cGU7XG4gIGdlbmVzaXNIYXNoID0gJzB4ZTE0M2YyMzgwM2FjNTBlOGY2ZjhlNjI2OTVkMWNlOWU0ZTFkNjhhYTM2YzFjZDJjZmQxNTM0MDIxM2YzNDIzZSc7XG4gIHNwZWNWZXJzaW9uID0gOTQzMDtcbiAgY2hhaW5OYW1lID0gJ1dlc3RlbmQnO1xuICB0eFZlcnNpb24gPSAyMjtcbn1cblxuY2xhc3MgQ2VsbyBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0NlbG8nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkNFTE87XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuY2Vsby5vcmcvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuY2Vsby5vcmcvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNDIyMjA7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ0NFTE8nO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnQ0VMTy1FUkMyMCc7XG59XG5cbmNsYXNzIENlbG9UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnQ2Vsb1Rlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkNFTE87XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYWxmYWpvcmVzLWJsb2Nrc2NvdXQuY2Vsby10ZXN0bmV0Lm9yZy90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9hbGZham9yZXMtYmxvY2tzY291dC5jZWxvLXRlc3RuZXQub3JnL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDQ0Nzg3O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdDRUxPJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ0NFTE8tRVJDMjAnO1xufVxuXG4vLyBUT0RPIHVwZGF0ZSBleHBsb3JlclVybCBTVExYLTE2NTdcbmNsYXNzIENhc3BlciBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnQ2FzcGVyJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5DU1BSO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2NzcHIubGl2ZS9kZXBsb3kvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY3Nwci5saXZlL2FjY291bnQvJztcbn1cblxuY2xhc3MgQ2FzcGVyVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnQ2FzcGVyVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ1NQUjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9pbnRlZ3JhdGlvbi5jc3ByLmxpdmUvZGVwbG95Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2ludGVncmF0aW9uLmNzcHIubGl2ZS9hY2NvdW50Lyc7XG59XG5cbmNsYXNzIEV0aGVyZXVtIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnRXRoZXJldW0nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ldGhlcnNjYW4uaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXRoZXJzY2FuLmlvL2FkZHJlc3MvJztcbiAgYmxvY2tFeHBsb3JlclVybCA9ICdodHRwczovL2V0aGVyc2Nhbi5pby9ibG9jay8nO1xuICAvLyBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9ldGhlcmV1bWpzL2V0aGVyZXVtanMtY29tbW9uL2Jsb2IvYTk3OGY2MzA4NThmNjg0MzE3NmJiMjBiMjc3NTY5Nzg1OTE0ZTg5OS9zcmMvY2hhaW5zL2luZGV4LnRzXG4gIGNoYWluSWQgPSAxO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4ZWJlMjc5MTNmY2M3NTEwZWFkZjEwNjQzYThmODZiZjU0OTJhOTU0MSc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4ZmZhMzk3Mjg1Y2U0NmZiNzhjNTg4YTllOTkzMjg2YWFjNjhjMzdjZCc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDA1OWZmYWZkYzZlZjU5NDIzMGRlNDRmODI0ZTJiZDBhNTFjYTVkZWQnO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdFVEhFUic7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdFUkMyMCc7XG4gIHdhbGxldFY0Rm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgd2FsbGV0VjRGb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbn1cblxuY2xhc3MgRXRoZXJldW0yIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdFdGhlcmV1bTInO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkVUSDI7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmVhY29uc2Nhbi5jb20vdHgnO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9iZWFjb25zY2FuLmNvbS9hZGRyZXNzJztcbn1cblxuY2xhc3MgRXRoZXJldW1XIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnRXRoZXJldW0gUG9XJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5FVEhXO1xuICBleHBsb3JlclVybCA9ICcnO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnJztcbiAgY2hhaW5JZCA9IDEwMDAxO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJyc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJyc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcnO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdFVEhFUic7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdFUkMyMCc7XG59XG5cbmNsYXNzIFB5cm1vbnQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1B5cm1vbnQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkVUSDI7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmVhY29uc2Nhbi5jb20vcHlybW9udC90eCc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2JlYWNvbnNjYW4uY29tL3B5cm1vbnQvYWRkcmVzcyc7XG59XG5cbmNsYXNzIEtvdmFuIGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnS292YW4nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9rb3Zhbi5ldGhlcnNjYW4uaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8va292YW4uZXRoZXJzY2FuLmlvL2FkZHJlc3MvJztcbiAgLy8gZnJvbSBodHRwczovL2dpdGh1Yi5jb20vZXRoZXJldW1qcy9ldGhlcmV1bWpzLWNvbW1vbi9ibG9iL2E5NzhmNjMwODU4ZjY4NDMxNzZiYjIwYjI3NzU2OTc4NTkxNGU4OTkvc3JjL2NoYWlucy9pbmRleC50c1xuICBjaGFpbklkID0gNDI7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHhjMGFhZjI2NDllN2IwZjM5NTAxNjQ2ODFlY2EyYjFhOGY2NTRhNDc4JztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHhhNzlhNDg1Mjk0ZDIyNjA3NWVlNjU0MTBiYzk0ZWE0NTRmM2U0MDlkJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4YTk0NmU3NDhmMjVhNWVjNjg3OGViMWE5ZjJlOTAyMDI4MTc0YzBiMyc7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ0VUSEVSJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ0VSQzIwJztcbn1cblxuY2xhc3MgR29lcmxpIGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnR29lcmxpJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5FVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZ29lcmxpLmV0aGVyc2Nhbi5pby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9nb2VybGkuZXRoZXJzY2FuLmlvL2FkZHJlc3MvJztcbiAgYmxvY2tFeHBsb3JlclVybCA9ICdodHRwczovL2dvZXJsaS5ldGhlcnNjYW4uaW8vYmxvY2svJztcbiAgLy8gZnJvbSBodHRwczovL2dpdGh1Yi5jb20vZXRoZXJldW1qcy9ldGhlcmV1bWpzLWNvbW1vbi9ibG9iL2E5NzhmNjMwODU4ZjY4NDMxNzZiYjIwYjI3NzU2OTc4NTkxNGU4OTkvc3JjL2NoYWlucy9pbmRleC50c1xuICBjaGFpbklkID0gNTtcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweGU4ZTg0N2NmNTczZmM4ZWQ3NTYyMTY2MGEzNmFmZmQxOGM1NDNkN2UnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweGY1Y2FhNWUzZTkzYWZiYzIxYmQxOWVmNGYyNjkxYTM3MTIxZjc5MTcnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg4MGQ1YzkxZThjYzIxZGY2OWZjNGQ2NGYyMWRjMmQ4MzEyMWMzOTk5JztcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnRVRIRVInO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnRVJDMjAnO1xufVxuXG5jbGFzcyBIb2xlc2t5IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnSG9sZXNreSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2hvbGVza3kuZXRoZXJzY2FuLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2hvbGVza3kuZXRoZXJzY2FuLmlvL2FkZHJlc3MvJztcbiAgYmxvY2tFeHBsb3JlclVybCA9ICdodHRwczovL2hvbGVza3kuZXRoZXJzY2FuLmlvL2Jsb2NrLyc7XG4gIC8vIGh0dHBzOi8vY2hhaW5saXN0Lm9yZy9jaGFpbi8xNzAwMFxuICBjaGFpbklkID0gMTcwMDA7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHhlYmUyNzkxM2ZjYzc1MTBlYWRmMTA2NDNhOGY4NmJmNTQ5MmE5NTQxJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHhmZmEzOTcyODVjZTQ2ZmI3OGM1ODhhOWU5OTMyODZhYWM2OGMzN2NkJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4MDU5ZmZhZmRjNmVmNTk0MjMwZGU0NGY4MjRlMmJkMGE1MWNhNWRlZCc7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ0VUSEVSJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ0VSQzIwJztcbiAgd2FsbGV0VjRGb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICB3YWxsZXRWNEZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xufVxuXG5jbGFzcyBIb29kaSBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0hvb2RpJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5FVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vaG9vZGkuZXRoZXJzY2FuLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2hvb2RpLmV0aGVyc2Nhbi5pby9hZGRyZXNzLyc7XG4gIGJsb2NrRXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ob29kaS5ldGhlcnNjYW4uaW8vYmxvY2svJztcbiAgLy8gaHR0cHM6Ly9jaGFpbmxpc3Qub3JnL2NoYWluLzU2MDA0OFxuICBjaGFpbklkID0gNTYwMDQ4O1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4MGUyODc0ZDY4MjRmYWU0ZjYxZTQ0NjAxMjMxN2E5Yjg2Mzg0YmQ4ZSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDc0NDFmMjBhNTliZTk3MDExODQyNDA0YjlhZWZkOGQ4NWZkODFhYTYnO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdFVEhFUic7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdFUkMyMCc7XG4gIHdhbGxldFY0Rm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgd2FsbGV0VjRGb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbn1cblxuY2xhc3MgRXRoZXJldW1DbGFzc2ljIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnRXRoZXJldW1DbGFzc2ljJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5FVEM7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmxvY2tzY291dC5jb20vZXRjL21haW5uZXQvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmxvY2tzY291dC5jb20vZXRjL21haW5uZXQvYWRkcmVzcy8nO1xuICAvLyBmcm9tICBodHRwczovL2NoYWluaWQubmV0d29yay9jaGFpbnMvXG4gIGNoYWluSWQgPSA2MTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnRVRDJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ0VUQy1FUkMyMCc7XG59XG5cbmNsYXNzIEV0aGVyZXVtQ2xhc3NpY1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdFdGhlcmV1bUNsYXNzaWNUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5FVEM7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmxvY2tzY291dC5jb20vZXRjL21vcmRvci90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ibG9ja3Njb3V0LmNvbS9ldGMvbW9yZG9yL2FkZHJlc3MvJztcbiAgLy8gZnJvbSAgaHR0cHM6Ly9jaGFpbmlkLm5ldHdvcmsvY2hhaW5zL1xuICBjaGFpbklkID0gNjM7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ0VUQyc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdFVEMtRVJDMjAnO1xufVxuXG5jbGFzcyBFb3MgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0Vvcyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRU9TO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmVvc25ldHdvcmsuY29tL3RyYW5zYWN0aW9uLyc7XG59XG5cbmNsYXNzIEVvc1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0Vvc1Rlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkVPUztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9reWxpbi5lb3N4LmlvL3R4Lyc7XG59XG5cbmNsYXNzIEhlZGVyYSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnSGVkZXJhJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5IQkFSO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2hhc2hzY2FuLmlvL21haW5uZXQvdHJhbnNhY3Rpb24vJztcbn1cblxuY2xhc3MgSGVkZXJhVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnSGVkZXJhVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSEJBUjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LmRyYWdvbmdsYXNzLm1lL2hlZGVyYS9zZWFyY2g/cT0nO1xufVxuXG5jbGFzcyBMaXRlY29pbiBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnTGl0ZWNvaW4nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkxUQztcbiAgdXR4b2xpYk5hbWUgPSAnbGl0ZWNvaW4nO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Jsb2NrY2hhaXIuY29tL2xpdGVjb2luL3RyYW5zYWN0aW9uLyc7XG59XG5cbmNsYXNzIExpdGVjb2luVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnTGl0ZWNvaW5UZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5MVEM7XG4gIHV0eG9saWJOYW1lID0gJ2xpdGVjb2luVGVzdCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmxvY2tleHBsb3Jlci5vbmUvbGl0ZWNvaW4vdGVzdG5ldC90eC8nO1xufVxuXG5jbGFzcyBPZmMgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgT2ZjTmV0d29yayB7XG4gIG5hbWUgPSAnT2ZjJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5PRkM7XG4gIGV4cGxvcmVyVXJsID0gdW5kZWZpbmVkO1xufVxuXG5jbGFzcyBPZmNUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIE9mY05ldHdvcmsge1xuICBuYW1lID0gJ09mY1Rlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk9GQztcbiAgZXhwbG9yZXJVcmwgPSB1bmRlZmluZWQ7XG59XG5cbmNsYXNzIFJidGMgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdSYnRjJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5SQlRDO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnJzay5jby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5yc2suY28vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMzA7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ1JTSyc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdSU0stRVJDMjAnO1xufVxuXG5jbGFzcyBSYnRjVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1JidGNUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5SQlRDO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnRlc3RuZXQucnNrLmNvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnRlc3RuZXQucnNrLmNvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDMxO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdSU0snO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnUlNLLUVSQzIwJztcbn1cblxuY2xhc3MgU3RlbGxhciBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnU3RlbGxhcic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWExNO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3N0ZWxsYXIuZXhwZXJ0L2V4cGxvcmVyL3B1YmxpYy90eC8nO1xufVxuXG5jbGFzcyBTdGVsbGFyVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnU3RlbGxhclRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlhMTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zdGVsbGFyLmV4cGVydC9leHBsb3Jlci90ZXN0bmV0L3R4Lyc7XG59XG5cbmNsYXNzIFNvbCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnU29sJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TT0w7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuc29sYW5hLmNvbS90eC8nO1xufVxuXG5jbGFzcyBTb2xUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdTb2xUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TT0w7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuc29sYW5hLmNvbS90eC8/Y2x1c3Rlcj1kZXZuZXQnO1xufVxuXG5jbGFzcyBTdWkgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1N1aSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU1VJO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnN1aS5pby90eGJsb2NrLz9uZXR3b3JrPW1haW5uZXQnO1xufVxuXG5jbGFzcyBTdWlUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IFN1aSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU1VJO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnN1aS5pby90eGJsb2NrLz9uZXR3b3JrPXRlc3RuZXQnO1xufVxuXG5jbGFzcyBBdG9tIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdDb3Ntb3MgSHViIEFUT00nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFUT007XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd3d3Lm1pbnRzY2FuLmlvL2Nvc21vcy90eC8nO1xufVxuXG5jbGFzcyBBdG9tVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBDb3Ntb3MgSHViIEFUT00nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFUT007XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIucG9seXBvcmUueHl6L3Byb3ZpZGVyL3R4Lyc7XG59XG5cbmNsYXNzIE9zbW8gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ09zbW9zaXMnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk9TTU87XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd3d3Lm1pbnRzY2FuLmlvL29zbW9zaXMvdHhzLyc7XG59XG5cbmNsYXNzIE9zbW9UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IE9zbW9zaXMnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk9TTU87XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5vc21vc2lzLmV4cGxvcmVycy5ndXJ1L3RyYW5zYWN0aW9uLyc7XG59XG5cbmNsYXNzIFRpYSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnQ2VsZXN0aWEnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlRJQTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly93d3cubWludHNjYW4uaW8vY2VsZXN0aWEvdHgvJztcbn1cblxuY2xhc3MgVGlhVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBDZWxlc3RpYSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuVElBO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQuY2VsZXN0aWEuZXhwbG9yZXJzLmd1cnUvdHJhbnNhY3Rpb24vJztcbn1cblxuY2xhc3MgSGFzaCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnUHJvdmVuYW5jZSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSEFTSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5wcm92ZW5hbmNlLmlvL3R4Lyc7XG59XG5cbmNsYXNzIEhhc2hUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IFByb3ZlbmFuY2UnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkhBU0g7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIudGVzdC5wcm92ZW5hbmNlLmlvL3R4Lyc7XG59XG5cbmNsYXNzIEJsZCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnQWdvcmljJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CTEQ7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmlnZGlwcGVyLmxpdmUvYWdvcmljL3RyYW5zYWN0aW9ucy8nO1xufVxuXG5jbGFzcyBCbGRUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IEFnb3JpYyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQkxEO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2VtZXJ5bmV0LmV4cGxvcmVyLmFnb3JpYy5uZXQvYWdvcmljL3R4Lyc7XG59XG5cbmNsYXNzIFNlaSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnU2VpJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TRUk7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vpc3RyZWFtLmFwcC90cmFuc2FjdGlvbnMvJztcbn1cblxuY2xhc3MgU2VpVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBTZWknO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNFSTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LnNlaXN0cmVhbS5hcHAvdHJhbnNhY3Rpb25zLyc7XG59XG5cbmNsYXNzIFpldGEgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1pldGEnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlpFVEE7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuemV0YWNoYWluLmNvbS9jb3Ntb3MvdHgvJztcbn1cblxuY2xhc3MgWmV0YVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgWmV0YSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWkVUQTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9hdGhlbnMuZXhwbG9yZXIuemV0YWNoYWluLmNvbS9jb3Ntb3MvdHgvJztcbn1cblxuY2xhc3MgSW5qZWN0aXZlIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdJbmplY3RpdmUnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LklOSkVDVElWRTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly93d3cubWludHNjYW4uaW8vaW5qZWN0aXZlL3R4Lyc7XG59XG5cbmNsYXNzIEluamVjdGl2ZVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0luamVjdGl2ZVRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LklOSkVDVElWRTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LmV4cGxvcmVyLmluamVjdGl2ZS5uZXR3b3JrL3RyYW5zYWN0aW9uLyc7XG59XG5cbmNsYXNzIEthdmEgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0thdmEnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LktBVkE7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd3d3Lm1pbnRzY2FuLmlvL2thdmEvdHJhbnNhY3Rpb25zLyc7XG59XG5cbmNsYXNzIEthdmFUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdLYXZhVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuS0FWQTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0Lm1pbnRzY2FuLmlvL2thdmEtdGVzdG5ldC90eHMvJztcbn1cblxuY2xhc3MgVG9uIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUb24nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlRPTjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90b25zY2FuLm9yZy90eC8nO1xufVxuXG5jbGFzcyBUb25UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IFRvbic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuVE9OO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQudG9uc2Nhbi5vcmcvdHgvJztcbn1cblxuY2xhc3MgQ29yZXVtIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdDb3JldW0nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkNPUkVVTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly93d3cubWludHNjYW4uaW8vY29yZXVtL3R4Lyc7XG59XG5cbmNsYXNzIENvcmV1bVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0NvcmV1bVRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkNPUkVVTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci50ZXN0bmV0LTEuY29yZXVtLmRldi9jb3JldW0vdHJhbnNhY3Rpb25zLyc7XG59XG5cbmNsYXNzIFJ1bmUgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1J1bmUnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlRIT1I7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vcnVuZXNjYW4uaW8vdHgvJztcbn1cblxuY2xhc3MgUnVuZVRlc3ROZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1J1bmVUZXN0TmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5USE9SO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3J1bmVzY2FuLmlvL3R4Lz9uZXR3b3JrPXN0YWdlbmV0Jztcbn1cblxuY2xhc3MgQmFieSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnQmFieWxvbic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQkFCWTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9iYWJ5bG9uLmV4cGxvcmVycy5ndXJ1L3RyYW5zYWN0aW9uLyc7XG59XG5cbmNsYXNzIEJhYnlUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IEJhYnlsb24nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJBQlk7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5iYWJ5bG9uLmV4cGxvcmVycy5ndXJ1L3RyYW5zYWN0aW9uLyc7XG59XG5cbmNsYXNzIE1hbnRyYSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnTWFudHJhJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5NQU5UUkE7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIubWFudHJhY2hhaW4uaW8vTUFOVFJBLTEvdHgvJztcbn1cblxuY2xhc3MgTWFudHJhVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBNYW50cmEnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk1BTlRSQTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5tYW50cmFjaGFpbi5pby9NQU5UUkEtRHVrb25nL3R4Lyc7XG59XG5cbmNsYXNzIENyb25vcyBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnQ3Jvbm9zIFBPUyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ1JPTk9TO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Nyb25vcy1wb3Mub3JnL2V4cGxvcmVyL3R4Lyc7XG59XG5cbmNsYXNzIENyb25vc1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgQ3Jvbm9zIFBPUyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ1JPTk9TO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Nyb25vcy1wb3Mub3JnL2V4cGxvcmVyL2Nyb2VzZWlkNC90eC8nO1xufVxuXG5jbGFzcyBGZXRjaEFpIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdGZXRjaCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRkVUQ0hBSTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly93d3cubWludHNjYW4uaW8vZmV0Y2hhaSc7XG59XG5cbmNsYXNzIEZldGNoQWlUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IEZldGNoJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5GRVRDSEFJO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmUtZXJpZGFudXMtMS5mZXRjaC5haS8nO1xufVxuXG5jbGFzcyBJbml0aWEgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0luaXRpYSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSU5JVElBO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3NjYW4uaW5pdGlhLnh5ei9pbnRlcndvdmVuLTEvdHhzLyc7XG59XG5cbmNsYXNzIEluaXRpYVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgSW5pdGlhJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5JTklUSUE7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Nhbi50ZXN0bmV0LmluaXRpYS54eXovaW5pdGlhdGlvbi0yL3R4cy8nO1xufVxuXG5jbGFzcyBBc2kgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0ZldGNoIE5hdGl2ZSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQVNJO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2NvbXBhbmlvbi5mZXRjaC5haS9mZXRjaGh1Yi00L3RyYW5zYWN0aW9ucy8nO1xufVxuXG5jbGFzcyBBc2lUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IEZldGNoIE5hdGl2ZSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQVNJO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2NvbXBhbmlvbi5mZXRjaC5haS9kb3JhZG8tMS90cmFuc2FjdGlvbnMvJztcbn1cblxuY2xhc3MgSXNsbSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnSGFxcSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSVNMTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9waW5nLnB1Yi9oYXFxL3R4Lyc7XG59XG5cbmNsYXNzIElzbG1UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdIYXFxVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSVNMTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LnBpbmcucHViL2hhcXEvdHgvJztcbn1cblxuY2xhc3MgU3R4IGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIFN0YWNrc05ldHdvcmsge1xuICBuYW1lID0gJ1N0eCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU1RYO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmhpcm8uc28vdHhpZC8nO1xuICBzZW5kbWFueW1lbW9Db250cmFjdEFkZHJlc3MgPSAnU1AzRkJSMkFHSzVIOVFCREgzRUVONkRGOEVLOEpZN1JYOFFKNVNWVEUnO1xuICBzdGFraW5nQ29udHJhY3RBZGRyZXNzID0gJ1NQMDAwMDAwMDAwMDAwMDAwMDAwMDAyUTZWRjc4Jztcbn1cblxuY2xhc3MgU3R4VGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBTdGFja3NOZXR3b3JrIHtcbiAgbmFtZSA9ICdTdHhUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TVFg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuaGlyby5zby90eGlkLz9jaGFpbj10ZXN0bmV0JztcbiAgc2VuZG1hbnltZW1vQ29udHJhY3RBZGRyZXNzID0gJ1NUM0YxWDRRR1YyU004WEQ5Nlg0NU02UlRRWEtBMVBaSlpaQ1FBQjRCJztcbiAgc3Rha2luZ0NvbnRyYWN0QWRkcmVzcyA9ICdTVDAwMDAwMDAwMDAwMDAwMDAwMDAwMkFNVzQySCc7XG59XG5cbmNsYXNzIFNVU0QgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1NVU0QnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNVU0Q7XG4gIGV4cGxvcmVyVXJsID0gdW5kZWZpbmVkO1xufVxuXG5jbGFzcyBTVVNEVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnU1VTRFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNVU0Q7XG4gIGV4cGxvcmVyVXJsID0gdW5kZWZpbmVkO1xufVxuXG5jbGFzcyBGaWF0VGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBCYXNlTmV0d29yayB7XG4gIG5hbWUgPSAnRmlhdFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkZJQVQ7XG4gIGV4cGxvcmVyVXJsID0gdW5kZWZpbmVkO1xufVxuXG5jbGFzcyBGaWF0IGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEJhc2VOZXR3b3JrIHtcbiAgbmFtZSA9ICdGaWF0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5GSUFUO1xuICBleHBsb3JlclVybCA9IHVuZGVmaW5lZDtcbn1cblxuY2xhc3MgQml0dGVuc29yIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUYW8nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlRBTztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90YW9zdGF0cy5pby9leHRyaW5zaWMvJztcbn1cblxuY2xhc3MgQml0dGVuc29yVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBUYW8nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlRBTztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5maW5uZXkub3BlbnRlbnNvci5haS8jLyc7XG4gIHNwZWNOYW1lID0gJ25vZGUtc3VidGVuc29yJyBhcyBTdWJzdHJhdGVTcGVjTmFtZVR5cGU7XG4gIGdlbmVzaXNIYXNoID0gJzB4OGY5Y2Y4NTZiZjU1OGExNDQ0MGU3NTU2OWM5ZTU4NTk0NzU3MDQ4ZDdiM2E4NGI1ZDI1ZjZiZDk3ODI2MzEwNSc7XG4gIHNwZWNWZXJzaW9uID0gMjI0O1xuICBjaGFpbk5hbWUgPSAnYml0dGVuc29yJztcbiAgdHhWZXJzaW9uID0gMTtcbn1cblxuY2xhc3MgVHJ4IGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIFRyb25OZXR3b3JrIHtcbiAgbmFtZSA9ICdUcngnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlRSWDtcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdHJvbnNjYW4ub3JnLyMvYWRkcmVzcy8nO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Ryb25zY2FuLm9yZy8jL3RyYW5zYWN0aW9uLyc7XG4gIG1heEZlZUxpbWl0ID0gJzUwMDAwMDAwMDAnO1xuICBjb250cmFjdENhbGxGZWVMaW1pdCA9ICcxMDAwMDAwMDAnO1xufVxuXG5jbGFzcyBUcnhUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIFRyb25OZXR3b3JrIHtcbiAgbmFtZSA9ICdUcnhUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5UUlg7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3NoYXN0YS50cm9uc2Nhbi5vcmcvIy9hZGRyZXNzLyc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2hhc3RhLnRyb25zY2FuLm9yZy8jL3RyYW5zYWN0aW9uLyc7XG4gIG1heEZlZUxpbWl0ID0gJzUwMDAwMDAwMDAnO1xuICBjb250cmFjdENhbGxGZWVMaW1pdCA9ICcxMDAwMDAwMDAnO1xufVxuXG5jbGFzcyBYcnAgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1hycCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWFJQO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2xpdmVuZXQueHJwbC5vcmcvdHJhbnNhY3Rpb25zLyc7XG59XG5cbmNsYXNzIFhycFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1hycFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlhSUDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0LnhycGxleHBsb3Jlci5jb20vZXhwbG9yZXIvJztcbn1cblxuY2xhc3MgWHR6IGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdYdHonO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlhUWjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90enN0YXRzLmNvbS8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90enN0YXRzLmNvbS8nO1xufVxuXG5jbGFzcyBYdHpUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdYdHpUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5YVFo7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZ2hvc3RuZXQudHprdC5pby8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9naG9zdG5ldC50emt0LmlvLyc7XG59XG5cbmNsYXNzIFpDYXNoIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdaQ2FzaCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWkVDO1xuICB1dHhvbGliTmFtZSA9ICd6Y2FzaCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY2hhaW4uc28vdHgvWkVDLyc7XG59XG5cbmNsYXNzIFpDYXNoVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnWkNhc2hUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5aRUM7XG4gIHV0eG9saWJOYW1lID0gJ3pjYXNoVGVzdCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY2hhaW4uc28vdHgvWkVDVEVTVC8nO1xufVxuXG5jbGFzcyBOZWFyIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdOZWFyJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5ORUFSO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL25lYXJibG9ja3MuaW8vdHhucy8nO1xuICBmZWVSZXNlcnZlID0gJzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJztcbiAgc3RvcmFnZVJlc2VydmUgPSAnMjAwMDAwMDAwMDAwMDAwMDAwMDAwMCc7IC8vIGZlZVJlc2VydmUgKyBzdG9yYWdlUmVzZXJ2ZSBpcyBtaW5pbXVtIGFjY291bnQgYmFsYW5jZSBmb3IgYSBORUFSIHdhbGxldCBodHRwczovL2RvY3MubmVhci5vcmcvaW50ZWdyYXRvci9mYXEjaXMtdGhlcmUtYS1taW5pbXVtLWFjY291bnQtYmFsYW5jZVxufVxuXG5jbGFzcyBOZWFyVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnTmVhclRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk5FQVI7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5uZWFyYmxvY2tzLmlvL3R4bnMvJztcbiAgZmVlUmVzZXJ2ZSA9ICc1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMCc7XG4gIHN0b3JhZ2VSZXNlcnZlID0gJzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAnOyAvLyBmZWVSZXNlcnZlICsgc3RvcmFnZVJlc2VydmUgaXMgbWluaW11bSBhY2NvdW50IGJhbGFuY2UgZm9yIGEgTkVBUiB3YWxsZXQgaHR0cHM6Ly9kb2NzLm5lYXIub3JnL2ludGVncmF0b3IvZmFxI2lzLXRoZXJlLWEtbWluaW11bS1hY2NvdW50LWJhbGFuY2Vcbn1cblxuY2xhc3MgUG9seWdvbiBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1BvbHlnb24nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlBPTFlHT047XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vcG9seWdvbnNjYW4uY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3BvbHlnb25zY2FuLmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxMzc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4MjllZjQ2MDM1ZTlmYTNkNTcwYzU5OGQzMjY2NDI0Y2ExMTQxM2IwYyc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDUzOTdkMDg2OWFiYTBkNTVlOTZkNTcxNmQzODNmNmUxZDg2OTVlZDcnO1xuICB3YWxsZXRGYWN0b3J5QWRkcmVzcyA9ICcweGE3MTk4ZjQ4YzU4ZTkxZjAxMzE3ZTcwY2QyNGM1Y2NlNDc1YzE1NTUnO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhlNWRjZGMxM2I2MjhjMmRmODEzZGIxMDgwMzY3ZTkyOWMxNTA3Y2EwJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdQT0xZR09OJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ1BPTFlHT04tRVJDMjAnO1xufVxuXG5jbGFzcyBQb2x5Z29uVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1BvbHlnb25UZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5QT0xZR09OO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Ftb3kucG9seWdvbnNjYW4uY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2Ftb3kucG9seWdvbnNjYW4uY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDgwMDAyO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDIzMjIzZmQ3Y2ZjNWYzNGIyMGYzOGViYjlhNDg5ZTFmZjNjMDg0ZDEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNGMyNDMyNWI1ZWY1MTRmYmIxZWNjNzZhOWJiNGRjYjU3YTgzNDFlJztcbiAgd2FsbGV0RmFjdG9yeUFkZHJlc3MgPSAnMHhlOWMxNjAzM2UwMWJmOWY5NGJmOWY5OWZjMGZlZmNmYjhiMTI0OTkyJztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZjgzNjBjMjEzZTRmNDRjY2UwM2U0OGNiOTI4MTI1NGRlMmE3YTU2Nic7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnUE9MWUdPTic7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdQT0xZR09OLUVSQzIwJztcbn1cblxuY2xhc3MgT3B0aW1pc20gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdPcHRpbWlzbSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuT1BFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vb3B0aW1pc3RpYy5ldGhlcnNjYW4uaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vb3B0aW1pc3RpYy5ldGhlcnNjYW4uaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTA7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzEwJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzEwLUVSQzIwJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4ODA5ZWU1NjdlNDEzNTQzYWYxY2FlYmNkYjI0N2Y2YTY3ZWFmYzhkZCc7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDk0NGZlZjAzYWYzNjg0MTRmMjlkYzMxYTcyMDYxYjhkNjRmNTY4ZDInO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4ZWJlMjc5MTNmY2M3NTEwZWFkZjEwNjQzYThmODZiZjU0OTJhOTU0MSc7XG59XG5cbmNsYXNzIE9wdGltaXNtVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ09wdGltaXNtVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuT1BFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vwb2xpYS1vcHRpbWlzbS5ldGhlcnNjYW4uaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vwb2xpYS1vcHRpbWlzbS5ldGhlcnNjYW4uaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTExNTU0MjA7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzExMTU1NDIwJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzExMTU1NDIwLUVSQzIwJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4ODA5ZWU1NjdlNDEzNTQzYWYxY2FlYmNkYjI0N2Y2YTY3ZWFmYzhkZCc7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDk0NGZlZjAzYWYzNjg0MTRmMjlkYzMxYTcyMDYxYjhkNjRmNTY4ZDInO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4ZWJlMjc5MTNmY2M3NTEwZWFkZjEwNjQzYThmODZiZjU0OTJhOTU0MSc7XG59XG5cbmNsYXNzIFprU3luYyBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1prU3luYyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWktFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuemtzeW5jLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnprc3luYy5pby9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAzMjQ7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzMyNCc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICczMjQtRVJDMjAnO1xufVxuXG5jbGFzcyBaa1N5bmNUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnWmtTeW5jVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWktFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vwb2xpYS5leHBsb3Jlci56a3N5bmMuaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vwb2xpYS5leHBsb3Jlci56a3N5bmMuaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMzAwO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICczMDAnO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMzAwLUVSQzIwJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHhkZDQ5ODcwMmY0NGM0ZGEwOGViOWUwOGQzZjAxNWVlZmU1Y2I3MWZjJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4YmU2OWNhZTMxMTE5MWZiNDVlNjQ4ZWQyMDg0N2YwNmZhZDJkYmFiNCc7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4NDU1MGUxZTc2MTZkMzM2NDg3N2ZjNmM5MzI0OTM4ZGFiNjc4NjIxYSc7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDkyZGIyNzU5ZDFkY2ExMjlhMGQ5ZDQ2ODc3ZjM2MWJlODE5MTg0YzQnO1xufVxuXG5jbGFzcyBCZXJhY2hhaW4gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdCZXJhJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CRVJBO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2JlcmFzY2FuLmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9iZXJhc2Nhbi5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gODAwOTQ7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzgwMDk0JztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzgwMDk0LUVSQzIwJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweGVkZjFhMDAxNmQ5YzQxZDJhZDBjMjc1ZTFiYTcwODM2MWE5MGMwZDEnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbn1cblxuY2xhc3MgQmVyYWNoYWluVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0JlcmFUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CRVJBO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQuYmVyYXNjYW4uY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQuYmVyYXNjYW4uY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDgwMDAwO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc4MDAwMCc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc4MDAwMC1FUkMyMCc7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHhlZGYxYTAwMTZkOWM0MWQyYWQwYzI3NWUxYmE3MDgzNjFhOTBjMGQxJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG59XG5cbmNsYXNzIE9hcyBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ09hcyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuT0FTO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLm9hc3lzLmdhbWVzL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLm9hc3lzLmdhbWVzL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDI0ODtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMjQ4JztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweGVkZjFhMDAxNmQ5YzQxZDJhZDBjMjc1ZTFiYTcwODM2MWE5MGMwZDEnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbn1cblxuY2xhc3MgT2FzVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ09hc1Rlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk9BUztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci50ZXN0bmV0Lm9hc3lzLmdhbWVzL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnRlc3RuZXQub2FzeXMuZ2FtZXMvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gOTM3MjtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnOTM3Mic7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHhlZGYxYTAwMTZkOWM0MWQyYWQwYzI3NWUxYmE3MDgzNjFhOTBjMGQxJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG59XG5cbmNsYXNzIENvcmVkYW8gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdDb3JlZGFvJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5DT1JFREFPO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3NjYW4uY29yZWRhby5vcmcvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Nhbi5jb3JlZGFvLm9yZy9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxMTE2O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxMTE2JztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbn1cblxuY2xhc3MgQ29yZWRhb1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdDb3JlZGFvVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ09SRURBTztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zY2FuLnRlc3QyLmJ0Y3MubmV0d29yay90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zY2FuLnRlc3QyLmJ0Y3MubmV0d29yay9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxMTE0O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxMTE0JztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbn1cblxuY2xhc3MgSVAgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdTdG9yeSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSVA7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd3d3LnN0b3J5c2Nhbi5pby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly93d3cuc3RvcnlzY2FuLmlvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDE1MTQ7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzE1MTQnO1xufVxuXG5jbGFzcyBJUFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdTdG9yeVRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LklQO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2FlbmVpZC5leHBsb3Jlci5zdG9yeS5mb3VuZGF0aW9uL3RyYW5zYWN0aW9ucy8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9hZW5laWQuc3RvcnlzY2FuLmlvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDEzMTU7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzEzMTUnO1xufVxuXG5jbGFzcyBBcGVDaGFpbiBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0FwZUNoYWluJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5BUEVDSEFJTjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9hcGVzY2FuLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2FwZXNjYW4uaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMzMxMzk7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzMzMTM5Jztcbn1cblxuY2xhc3MgQXBlQ2hhaW5UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnQXBlQ2hhaW5UZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5BUEVDSEFJTjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9jdXJ0aXMuYXBlc2Nhbi5pby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9jdXJ0aXMuYXBlc2Nhbi5pby9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAzMzExMTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMzMxMTEnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbiAgd2FsbGV0RmFjdG9yeUFkZHJlc3MgPSAnMHg4MDllZTU2N2U0MTM1NDNhZjFjYWViY2RiMjQ3ZjZhNjdlYWZjOGRkJztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTQ0ZmVmMDNhZjM2ODQxNGYyOWRjMzFhNzIwNjFiOGQ2NGY1NjhkMic7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbn1cblxuY2xhc3MgUGhhcm9zIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnUGhhcm9zJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5QSFJTO1xuICBleHBsb3JlclVybCA9ICcnOyAvLyBUT0RPOiBXSU4tNTc4NyBBZGQgbWFpbm5ldCB1cmwgd2hlbiBhdmFpbGFibGVcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJyc7IC8vIFRPRE86IFdJTi01Nzg3IEFkZCBtYWlubmV0IHVybCB3aGVuIGF2YWlsYWJsZVxuICBjaGFpbklkID0gNjg4Njg4OyAvLyBUT0RPOiBXSU4tNTc4NyBBZGQgbWFpbm5ldCBpZCB3aGVuIGF2YWlsYWJsZVxuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc2ODg2ODgnO1xufVxuXG5jbGFzcyBQaGFyb3NUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnUGhhcm9zVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuUEhSUztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LnBoYXJvc3NjYW4ueHl6L3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQucGhhcm9zc2Nhbi54eXovYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNjg4Njg4O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc2ODg2ODgnO1xufVxuXG5jbGFzcyBDcmVkaXRjb2luIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnQ3JlZGl0Y29pbic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ1RDO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2NyZWRpdGNvaW4uYmxvY2tzY291dC5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY3JlZGl0Y29pbi5ibG9ja3Njb3V0LmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxMDIwMzA7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzEwMjAzMCc7XG59XG5cbmNsYXNzIFBsYXNtYSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1BsYXNtYSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWFBMO1xuICBleHBsb3JlclVybCA9ICcnOyAvL1RPRE8tIFdJTi02NjU0IHdoZW4gbWFpbm5ldCBkZXRhaWxzIGF2YWlsYWJsZVxuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnJzsgLy9UT0RPLSBXSU4tNjY1NCB3aGVuIG1haW5uZXQgZGV0YWlscyBhdmFpbGFibGVcbiAgY2hhaW5JZCA9IDk5OTk5OTk5OTk5OTk7IC8vVE9ETy0gV0lOLTY2NTQgd2hlbiBtYWlubmV0IGRldGFpbHMgYXZhaWxhYmxlICx0aGlzIGlzIGEgZHVtbXkgdmFsdWVcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnJzsgLy9UT0RPLSBXSU4tNjY1NCB3aGVuIG1haW5uZXQgZGV0YWlscyBhdmFpbGFibGVcbn1cblxuY2xhc3MgUGxhc21hVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1BsYXNtYVRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlhQTDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LnBsYXNtYXNjYW4udG8vYmxvY2tjaGFpbi90cmFuc2FjdGlvbnMnO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cDovL3Rlc3RuZXQucGxhc21hZXhwbG9yZXIuaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gOTc0NjtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnOTc0Nic7XG59XG5cbmNsYXNzIEh5cGVFVk1UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnSHlwZXJsaXF1aWRFVk1UZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5IWVBFRVZNO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQucHVycnNlYy5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5wdXJyc2VjLmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA5OTg7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzk5OCc7XG59XG5cbmNsYXNzIEh5cGVFVk0gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdIeXBlcmxpcXVpZEVWTSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSFlQRUVWTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9oeXBlcmV2bS1leHBsb3Jlci52ZXJjZWwuYXBwL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2h5cGVyZXZtLWV4cGxvcmVyLnZlcmNlbC5hcHAvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gOTk5O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc5OTknO1xufVxuXG5jbGFzcyBMaW5lYUVUSCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0xpbmVhIEV0aGVyZXVtIFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkxJTkVBRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2xpbmVhc2Nhbi5idWlsZC90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9saW5lYXNjYW4uYnVpbGQvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNTkxNDQ7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzU5MTQ0Jztcbn1cblxuY2xhc3MgTGluZWFFVEhUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnTGluZWEgRXRoZXJldW0gVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuTElORUFFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vwb2xpYS5saW5lYXNjYW4uYnVpbGQvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vwb2xpYS5saW5lYXNjYW4uYnVpbGQvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNTkxNDE7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzU5MTQxJztcbn1cblxuY2xhc3MgQ3JlZGl0Y29pblRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdDcmVkaXRjb2luVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ1RDO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2NyZWRpdGNvaW4tdGVzdG5ldC5ibG9ja3Njb3V0LmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9jcmVkaXRjb2luLXRlc3RuZXQuYmxvY2tzY291dC5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTAyMDMxO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxMDIwMzEnO1xufVxuXG5jbGFzcyBTb25pYyBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1NvbmljJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TT05JQztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zb25pY3NjYW4ub3JnL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3Nvbmljc2Nhbi5vcmcvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTQ2O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxNDYnO1xufVxuXG5jbGFzcyBTb25pY1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdTb25pY1Rlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNPTklDO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQuc29uaWNzY2FuLm9yZy90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LnNvbmljc2Nhbi5vcmcvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNTcwNTQ7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzU3MDU0JztcbiAgd2FsbGV0RmFjdG9yeUFkZHJlc3MgPSAnMHg4MDllZTU2N2U0MTM1NDNhZjFjYWViY2RiMjQ3ZjZhNjdlYWZjOGRkJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTQ0ZmVmMDNhZjM2ODQxNGYyOWRjMzFhNzIwNjFiOGQ2NGY1NjhkMic7XG59XG5cbmNsYXNzIEthaWEgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdLYWlhJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5LQUlBO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2thaWFzY2FuLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2thaWFzY2FuLmlvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDgyMTc7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzgyMTcnO1xufVxuXG5jbGFzcyBLYWlhVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0thaWFUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5LQUlBO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2thaXJvcy5rYWlhc2Nhbi5pby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9rYWlyb3Mua2FpYXNjYW4uaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTAwMTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTAwMSc7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4ODA5ZWU1NjdlNDEzNTQzYWYxY2FlYmNkYjI0N2Y2YTY3ZWFmYzhkZCc7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDk0NGZlZjAzYWYzNjg0MTRmMjlkYzMxYTcyMDYxYjhkNjRmNTY4ZDInO1xufVxuXG5jbGFzcyBJcnlzIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnSXJ5cyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSVJZUztcbiAgZXhwbG9yZXJVcmwgPSAnJzsgLy9XSU4tNjE5MSBhZGQgbWFpbm5ldCB1cmwgd2hlbiBhdmFpbGFibGVcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJyc7IC8vV0lOLTYxOTEgYWRkIG1haW5uZXQgdXJsIHdoZW4gYXZhaWxhYmxlXG4gIGNoYWluSWQgPSAxMjcwOyAvL1dJTi02MTkxIGFkZCBtYWlubmV0IGlkIHdoZW4gYXZhaWxhYmxlXG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzEyNzAnO1xufVxuXG5jbGFzcyBJcnlzVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0lyeXNUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5JUllTO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQtZXhwbG9yZXIuaXJ5cy54eXovdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC1leHBsb3Jlci5pcnlzLnh5ei9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxMjcwO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxMjcwJztcbiAgd2FsbGV0RmFjdG9yeUFkZHJlc3MgPSAnMHg4MDllZTU2N2U0MTM1NDNhZjFjYWViY2RiMjQ3ZjZhNjdlYWZjOGRkJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTQ0ZmVmMDNhZjM2ODQxNGYyOWRjMzFhNzIwNjFiOGQ2NGY1NjhkMic7XG59XG5cbmNsYXNzIE9nIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnWmVybyBHcmF2aXR5JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5PRztcbiAgZXhwbG9yZXJVcmwgPSAnJzsgLy9UT0RPLSBXSU4tNjUxOSB3aGVuIG1haW5uZXQgZGV0YWlscyBhdmFpbGFibGVcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJyc7IC8vVE9ETy0gV0lOLTY1MTkgd2hlbiBtYWlubmV0IGRldGFpbHMgYXZhaWxhYmxlXG4gIGNoYWluSWQgPSA5OTk5OTk5OTk5OTk5OyAvL1RPRE8tIFdJTi02NTE5IHdoZW4gbWFpbm5ldCBkZXRhaWxzIGF2YWlsYWJsZSAsdGhpcyBpcyBhIGR1bW15IHZhbHVlXG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJyc7IC8vVE9ETy0gV0lOLTY1MTkgd2hlbiBtYWlubmV0IGRldGFpbHMgYXZhaWxhYmxlXG59XG5cbmNsYXNzIE9nVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1plcm8gR3Jhdml0eSBUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5PRztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9jaGFpbnNjYW4tZ2FsaWxlby4wZy5haS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9jaGFpbnNjYW4tZ2FsaWxlby4wZy5haS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxNjYwMTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTY2MDEnO1xufVxuXG5jbGFzcyBYZGMgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdYZGNDaGFpbic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWERDO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3hkY3NjYW4uY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3hkY3NjYW4uY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDUwO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc1MCc7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG59XG5jbGFzcyBYZGNUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnWGRjQ2hhaW5UZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5YREM7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC54ZGNzY2FuLmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LnhkY3NjYW4uY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDUxO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc1MSc7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG59XG5jbGFzcyBXZW1peCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1dlbWl4Q2hhaW4nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LldFTUlYO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLndlbWl4LmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci53ZW1peC5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTExMTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTExMSc7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG59XG5jbGFzcyBXZW1peFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdXZW1peENoYWluVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuV0VNSVg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIudGVzdC53ZW1peC5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIudGVzdC53ZW1peC5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTExMjtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTExMic7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG59XG5jbGFzcyBNb25hZFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdNb25hZFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk1PTjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0Lm1vbmFkZXhwbG9yZXIuY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQubW9uYWRleHBsb3Jlci5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTAxNDM7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzEwMTQzJztcbiAgd2FsbGV0RmFjdG9yeUFkZHJlc3MgPSAnMHg4MDllZTU2N2U0MTM1NDNhZjFjYWViY2RiMjQ3ZjZhNjdlYWZjOGRkJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTQ0ZmVmMDNhZjM2ODQxNGYyOWRjMzFhNzIwNjFiOGQ2NGY1NjhkMic7XG59XG5jbGFzcyBNb25hZCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ01vbmFkJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5NT047XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vbWFpbm5ldC1iZXRhLm1vbnZpc2lvbi5pby90eCc7XG4gIGNoYWluSWQgPSAxNDM7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzE0Myc7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDk0NGZlZjAzYWYzNjg0MTRmMjlkYzMxYTcyMDYxYjhkNjRmNTY4ZDInO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xufVxuXG5jbGFzcyBXb3JsZCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1dvcmxkY2hhaW4nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LldPUkxEO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3dvcmxkc2Nhbi5vcmcvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd29ybGRzY2FuLm9yZy9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA0ODA7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzQ4MCc7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDk0NGZlZjAzYWYzNjg0MTRmMjlkYzMxYTcyMDYxYjhkNjRmNTY4ZDInO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xufVxuXG5jbGFzcyBXb3JsZFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdXb3JsZGNoYWluVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuV09STEQ7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vwb2xpYS53b3JsZHNjYW4ub3JnL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEud29ybGRzY2FuLm9yZy9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA0ODAxO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc0ODAxJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTQ0ZmVmMDNhZjM2ODQxNGYyOWRjMzFhNzIwNjFiOGQ2NGY1NjhkMic7XG59XG5cbmNsYXNzIFNvbmVpdW0gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdTb25laXVtJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TT05FSVVNO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3NvbmVpdW0uYmxvY2tzY291dC5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc29uZWl1bS5ibG9ja3Njb3V0LmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxODY4O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxODY4JztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTQ0ZmVmMDNhZjM2ODQxNGYyOWRjMzFhNzIwNjFiOGQ2NGY1NjhkMic7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4ODA5ZWU1NjdlNDEzNTQzYWYxY2FlYmNkYjI0N2Y2YTY3ZWFmYzhkZCc7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG59XG5cbmNsYXNzIFNvbmVpdW1UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnU29uZWl1bVRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNPTkVJVU07XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc29uZWl1bS1taW5hdG8uYmxvY2tzY291dC5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc29uZWl1bS1taW5hdG8uYmxvY2tzY291dC5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTk0NjtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTk0Nic7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4ODA5ZWU1NjdlNDEzNTQzYWYxY2FlYmNkYjI0N2Y2YTY3ZWFmYzhkZCc7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDk0NGZlZjAzYWYzNjg0MTRmMjlkYzMxYTcyMDYxYjhkNjRmNTY4ZDInO1xufVxuXG5jbGFzcyBTZWlFdm0gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdTZWlldm0nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNFSUVWTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zZWl0cmFjZS5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2VpdHJhY2UuY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDEzMjk7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzEzMjknO1xufVxuXG5jbGFzcyBTZWlFdm1UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnU2VpRXZtVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU0VJRVZNO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3NlaXRyYWNlLmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zZWl0cmFjZS5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTMyODtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTMyOCc7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4ODA5ZWU1NjdlNDEzNTQzYWYxY2FlYmNkYjI0N2Y2YTY3ZWFmYzhkZCc7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDk0NGZlZjAzYWYzNjg0MTRmMjlkYzMxYTcyMDYxYjhkNjRmNTY4ZDInO1xufVxuXG5jbGFzcyBTb21uaWEgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdTb21uaWEnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNUVDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9tYWlubmV0LnNvbW5pYS53M3VzLnNpdGUvdHgvJztcbiAgY2hhaW5JZCA9IDUwMzE7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzUwMzEnO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg5NDRmZWYwM2FmMzY4NDE0ZjI5ZGMzMWE3MjA2MWI4ZDY0ZjU2OGQyJztcbiAgd2FsbGV0RmFjdG9yeUFkZHJlc3MgPSAnMHg4MDllZTU2N2U0MTM1NDNhZjFjYWViY2RiMjQ3ZjZhNjdlYWZjOGRkJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbn1cblxuY2xhc3MgU29tbmlhVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1NvbW5pYVRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNUVDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zaGFubm9uLWV4cGxvcmVyLnNvbW5pYS5uZXR3b3JrL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3NoYW5ub24tZXhwbG9yZXIuc29tbmlhLm5ldHdvcmsvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNTAzMTI7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzUwMzEyJztcbiAgd2FsbGV0RmFjdG9yeUFkZHJlc3MgPSAnMHg4MDllZTU2N2U0MTM1NDNhZjFjYWViY2RiMjQ3ZjZhNjdlYWZjOGRkJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTQ0ZmVmMDNhZjM2ODQxNGYyOWRjMzFhNzIwNjFiOGQ2NGY1NjhkMic7XG59XG5cbmNsYXNzIFNvbWkgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdTb21uaWEnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNPTUk7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vbWFpbm5ldC5zb21uaWEudzN1cy5zaXRlL3R4Lyc7XG4gIGNoYWluSWQgPSA1MDMxO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc1MDMxJztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTQ0ZmVmMDNhZjM2ODQxNGYyOWRjMzFhNzIwNjFiOGQ2NGY1NjhkMic7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4ODA5ZWU1NjdlNDEzNTQzYWYxY2FlYmNkYjI0N2Y2YTY3ZWFmYzhkZCc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG59XG5cbmNsYXNzIEZsYXJlIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnRmxhcmVjaGFpbic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRkxSO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2ZsYXJlLWV4cGxvcmVyLmZsYXJlLm5ldHdvcmsvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZmxhcmUtZXhwbG9yZXIuZmxhcmUubmV0d29yay9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxNDtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTQnO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xufVxuY2xhc3MgRmxhcmVUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnRmxhcmVjaGFpblRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkZMUjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9jb3N0b24yLWV4cGxvcmVyLmZsYXJlLm5ldHdvcmsvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY29zdG9uMi1leHBsb3Jlci5mbGFyZS5uZXR3b3JrL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDExNDtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTE0JztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbn1cbmNsYXNzIFNvbmdiaXJkIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnU29uZ2JpcmRjaGFpbic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU0dCO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3NvbmdiaXJkLWV4cGxvcmVyLmZsYXJlLm5ldHdvcmsvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc29uZ2JpcmQtZXhwbG9yZXIuZmxhcmUubmV0d29yay9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxOTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTknO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xufVxuY2xhc3MgU29uZ2JpcmRUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnU29uZ2JpcmRjaGFpblRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNHQjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9jb3N0b24tZXhwbG9yZXIuZmxhcmUubmV0d29yay90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9jb3N0b24tZXhwbG9yZXIuZmxhcmUubmV0d29yay9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxNjtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTYnO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xufVxuY2xhc3MgQmFzZUNoYWluVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICAvL0Jhc2VFVEggdGVzdG5ldFxuICBuYW1lID0gJ0Jhc2VDaGFpblRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJBU0VFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vwb2xpYS5iYXNlc2Nhbi5vcmcvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vwb2xpYS5iYXNlc2Nhbi5vcmcvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gODQ1MzI7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzg0NTMyJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzg0NTMyLUVSQzIwJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHhkZDQ5ODcwMmY0NGM0ZGEwOGViOWUwOGQzZjAxNWVlZmU1Y2I3MWZjJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4YmU2OWNhZTMxMTE5MWZiNDVlNjQ4ZWQyMDg0N2YwNmZhZDJkYmFiNCc7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4NDU1MGUxZTc2MTZkMzM2NDg3N2ZjNmM5MzI0OTM4ZGFiNjc4NjIxYSc7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDkyZGIyNzU5ZDFkY2ExMjlhMGQ5ZDQ2ODc3ZjM2MWJlODE5MTg0YzQnO1xufVxuXG5jbGFzcyBCYXNlQ2hhaW4gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgLy9CYXNlRVRIXG4gIG5hbWUgPSAnQmFzZUNoYWluJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CQVNFRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Jhc2VzY2FuLm9yZy90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9iYXNlc2Nhbi5vcmcvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gODQ1MztcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnODQ1Myc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc4NDUzLUVSQzIwJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHhkZDQ5ODcwMmY0NGM0ZGEwOGViOWUwOGQzZjAxNWVlZmU1Y2I3MWZjJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4YmU2OWNhZTMxMTE5MWZiNDVlNjQ4ZWQyMDg0N2YwNmZhZDJkYmFiNCc7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4NDU1MGUxZTc2MTZkMzM2NDg3N2ZjNmM5MzI0OTM4ZGFiNjc4NjIxYSc7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDkyZGIyNzU5ZDFkY2ExMjlhMGQ5ZDQ2ODc3ZjM2MWJlODE5MTg0YzQnO1xufVxuXG5jbGFzcyBQb2x5bWVzaCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnUG9seW1lc2gnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlBPTFlYO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3BvbHltZXNoLnN1YnNjYW4uaW8vZXh0cmluc2ljLyc7XG4gIHNwZWNOYW1lID0gJ3BvbHltZXNoX21haW5uZXQnO1xuICBnZW5lc2lzSGFzaCA9ICcweDZmYmQ3NGU1ZTFkMGE2MWQ1MmNjZmU5ZDRhZGFlZDE2ZGQzYTdjYWEzN2M2YmM0ZDBjMmZhMTJlOGIyZjQwNjMnO1xuICBzcGVjVmVyc2lvbiA9IDcwMDIwMDA7XG4gIGNoYWluTmFtZSA9ICdQb2x5bWVzaCBNYWlubmV0JztcbiAgdHhWZXJzaW9uID0gNztcbn1cblxuY2xhc3MgUG9seW1lc2hUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdQb2x5bWVzaFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlBPTFlYO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3BvbHltZXNoLXRlc3RuZXQuc3Vic2Nhbi5pby9leHRyaW5zaWMvJztcbiAgc3BlY05hbWUgPSAncG9seW1lc2hfdGVzdG5ldCcgYXMgU3Vic3RyYXRlU3BlY05hbWVUeXBlO1xuICBnZW5lc2lzSGFzaCA9ICcweDJhY2UwNWU3MDNhYTUwYjQ4YzBjY2NjZmM4YjQyNGY3YWFiOWExZTJjNDI0ZWQxMmU0NWQyMGIxZThmZmQwZDYnO1xuICBzcGVjVmVyc2lvbiA9IDcwMDIwMDA7XG4gIGNoYWluTmFtZSA9ICdQb2x5bWVzaCBUZXN0bmV0JztcbiAgdHhWZXJzaW9uID0gNztcbn1cblxuY2xhc3MgVmV0IGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnVmVDaGFpbic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuVkVUO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmUudmVjaGFpbi5vcmcvdHJhbnNhY3Rpb25zLyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmUudmVjaGFpbi5vcmcvYWNjb3VudHMvJztcbiAgY2hhaW5JZCA9IDEwMDAwOTtcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHg2NTM0M2UxOGMzNzZkMmZjOGMzY2YxMGNkMTQ2ZDYzZTJlMGRjOWVmJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4NjJkZTM0Yzg3Zjg0N2QzODVhZjA3ZjZjMjVkYmQ5N2IxZmZmZWZjMCc7XG59XG5cbmNsYXNzIFZldFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdWZUNoYWluVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuVkVUO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmUtdGVzdG5ldC52ZWNoYWluLm9yZy90cmFuc2FjdGlvbnMvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZS10ZXN0bmV0LnZlY2hhaW4ub3JnL2FjY291bnRzLyc7XG4gIGNoYWluSWQgPSAxMDAwMTA7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4NjUzNDNlMThjMzc2ZDJmYzhjM2NmMTBjZDE0NmQ2M2UyZTBkYzllZic7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDYyZGUzNGM4N2Y4NDdkMzg1YWYwN2Y2YzI1ZGJkOTdiMWZmZmVmYzAnO1xufVxuXG5leHBvcnQgY29uc3QgTmV0d29ya3MgPSB7XG4gIG1haW46IHtcbiAgICBhZGE6IE9iamVjdC5mcmVlemUobmV3IEFkYSgpKSxcbiAgICBhbGdvcmFuZDogT2JqZWN0LmZyZWV6ZShuZXcgQWxnb3JhbmQoKSksXG4gICAgYXBlY2hhaW46IE9iamVjdC5mcmVlemUobmV3IEFwZUNoYWluKCkpLFxuICAgIGFwdDogT2JqZWN0LmZyZWV6ZShuZXcgQXB0KCkpLFxuICAgIGFyYml0cnVtOiBPYmplY3QuZnJlZXplKG5ldyBBcmJpdHJ1bSgpKSxcbiAgICBhc2k6IE9iamVjdC5mcmVlemUobmV3IEFzaSgpKSxcbiAgICBhdG9tOiBPYmplY3QuZnJlZXplKG5ldyBBdG9tKCkpLFxuICAgIGF2YWxhbmNoZUM6IE9iamVjdC5mcmVlemUobmV3IEF2YWxhbmNoZUMoKSksXG4gICAgYXZhbGFuY2hlUDogT2JqZWN0LmZyZWV6ZShuZXcgQXZhbGFuY2hlUCgpKSxcbiAgICBiYWJ5OiBPYmplY3QuZnJlZXplKG5ldyBCYWJ5KCkpLFxuICAgIGJhc2VjaGFpbjogT2JqZWN0LmZyZWV6ZShuZXcgQmFzZUNoYWluKCkpLFxuICAgIGJpdGNvaW46IE9iamVjdC5mcmVlemUobmV3IEJpdGNvaW4oKSksXG4gICAgYml0Y29pbkNhc2g6IE9iamVjdC5mcmVlemUobmV3IEJpdGNvaW5DYXNoKCkpLFxuICAgIGJpdGNvaW5Hb2xkOiBPYmplY3QuZnJlZXplKG5ldyBCaXRjb2luR29sZCgpKSxcbiAgICBiaXRjb2luU1Y6IE9iamVjdC5mcmVlemUobmV3IEJpdGNvaW5TVigpKSxcbiAgICBiZXJhOiBPYmplY3QuZnJlZXplKG5ldyBCZXJhY2hhaW4oKSksXG4gICAgYmxkOiBPYmplY3QuZnJlZXplKG5ldyBCbGQoKSksXG4gICAgYnNjOiBPYmplY3QuZnJlZXplKG5ldyBCaW5hbmNlU21hcnRDaGFpbigpKSxcbiAgICBjYXNwZXI6IE9iamVjdC5mcmVlemUobmV3IENhc3BlcigpKSxcbiAgICBjZWxvOiBPYmplY3QuZnJlZXplKG5ldyBDZWxvKCkpLFxuICAgIGNvcmVkYW86IE9iamVjdC5mcmVlemUobmV3IENvcmVkYW8oKSksXG4gICAgY29yZXVtOiBPYmplY3QuZnJlZXplKG5ldyBDb3JldW0oKSksXG4gICAgY3Jvbm9zOiBPYmplY3QuZnJlZXplKG5ldyBDcm9ub3MoKSksXG4gICAgZGFzaDogT2JqZWN0LmZyZWV6ZShuZXcgRGFzaCgpKSxcbiAgICBkb2dlY29pbjogT2JqZWN0LmZyZWV6ZShuZXcgRG9nZWNvaW4oKSksXG4gICAgZG90OiBPYmplY3QuZnJlZXplKG5ldyBQb2xrYWRvdCgpKSxcbiAgICBlQ2FzaDogT2JqZWN0LmZyZWV6ZShuZXcgRUNhc2goKSksXG4gICAgZW9zOiBPYmplY3QuZnJlZXplKG5ldyBFb3MoKSksXG4gICAgZXRoZXJldW06IE9iamVjdC5mcmVlemUobmV3IEV0aGVyZXVtKCkpLFxuICAgIGV0aGVyZXVtMjogT2JqZWN0LmZyZWV6ZShuZXcgRXRoZXJldW0yKCkpLFxuICAgIGV0aGVyZXVtQ2xhc3NpYzogT2JqZWN0LmZyZWV6ZShuZXcgRXRoZXJldW1DbGFzc2ljKCkpLFxuICAgIGV0aGVyZXVtVzogT2JqZWN0LmZyZWV6ZShuZXcgRXRoZXJldW1XKCkpLFxuICAgIGZpYXQ6IE9iamVjdC5mcmVlemUobmV3IEZpYXQoKSksXG4gICAgZmV0Y2hhaTogT2JqZWN0LmZyZWV6ZShuZXcgRmV0Y2hBaSgpKSxcbiAgICBmbHI6IE9iamVjdC5mcmVlemUobmV3IEZsYXJlKCkpLFxuICAgIGhhc2g6IE9iamVjdC5mcmVlemUobmV3IEhhc2goKSksXG4gICAgaGVkZXJhOiBPYmplY3QuZnJlZXplKG5ldyBIZWRlcmEoKSksXG4gICAgaWNwOiBPYmplY3QuZnJlZXplKG5ldyBJY3AoKSksXG4gICAgaXA6IE9iamVjdC5mcmVlemUobmV3IElQKCkpLFxuICAgIGluaXRpYTogT2JqZWN0LmZyZWV6ZShuZXcgSW5pdGlhKCkpLFxuICAgIGluamVjdGl2ZTogT2JqZWN0LmZyZWV6ZShuZXcgSW5qZWN0aXZlKCkpLFxuICAgIGlyeXM6IE9iamVjdC5mcmVlemUobmV3IElyeXMoKSksXG4gICAgaXNsbTogT2JqZWN0LmZyZWV6ZShuZXcgSXNsbSgpKSxcbiAgICBrYWlhOiBPYmplY3QuZnJlZXplKG5ldyBLYWlhKCkpLFxuICAgIGthdmE6IE9iamVjdC5mcmVlemUobmV3IEthdmEoKSksXG4gICAgbG5idGM6IE9iamVjdC5mcmVlemUobmV3IExpZ2h0bmluZ0JpdGNvaW4oKSksXG4gICAgbGl0ZWNvaW46IE9iamVjdC5mcmVlemUobmV3IExpdGVjb2luKCkpLFxuICAgIG1vbjogT2JqZWN0LmZyZWV6ZShuZXcgTW9uYWQoKSksXG4gICAgbWFudHJhOiBPYmplY3QuZnJlZXplKG5ldyBNYW50cmEoKSksXG4gICAgcG9seWdvbjogT2JqZWN0LmZyZWV6ZShuZXcgUG9seWdvbigpKSxcbiAgICBwb2x5eDogT2JqZWN0LmZyZWV6ZShuZXcgUG9seW1lc2goKSksXG4gICAgcGhyczogT2JqZWN0LmZyZWV6ZShuZXcgUGhhcm9zKCkpLFxuICAgIGN0YzogT2JqZWN0LmZyZWV6ZShuZXcgQ3JlZGl0Y29pbigpKSxcbiAgICBoeXBlZXZtOiBPYmplY3QuZnJlZXplKG5ldyBIeXBlRVZNKCkpLFxuICAgIGxpbmVhZXRoOiBPYmplY3QuZnJlZXplKG5ldyBMaW5lYUVUSCgpKSxcbiAgICBvYXM6IE9iamVjdC5mcmVlemUobmV3IE9hcygpKSxcbiAgICBvZzogT2JqZWN0LmZyZWV6ZShuZXcgT2coKSksXG4gICAgb2ZjOiBPYmplY3QuZnJlZXplKG5ldyBPZmMoKSksXG4gICAgb3B0aW1pc206IE9iamVjdC5mcmVlemUobmV3IE9wdGltaXNtKCkpLFxuICAgIG9zbW86IE9iamVjdC5mcmVlemUobmV3IE9zbW8oKSksXG4gICAgcmJ0YzogT2JqZWN0LmZyZWV6ZShuZXcgUmJ0YygpKSxcbiAgICBydW5lOiBPYmplY3QuZnJlZXplKG5ldyBSdW5lKCkpLFxuICAgIHN0ZWxsYXI6IE9iamVjdC5mcmVlemUobmV3IFN0ZWxsYXIoKSksXG4gICAgc2VpOiBPYmplY3QuZnJlZXplKG5ldyBTZWkoKSksXG4gICAgc2VpZXZtOiBPYmplY3QuZnJlZXplKG5ldyBTZWlFdm0oKSksXG4gICAgc2diOiBPYmplY3QuZnJlZXplKG5ldyBTb25nYmlyZCgpKSxcbiAgICBzb2w6IE9iamVjdC5mcmVlemUobmV3IFNvbCgpKSxcbiAgICBzb25pYzogT2JqZWN0LmZyZWV6ZShuZXcgU29uaWMoKSksXG4gICAgc3VpOiBPYmplY3QuZnJlZXplKG5ldyBTdWkoKSksXG4gICAgbmVhcjogT2JqZWN0LmZyZWV6ZShuZXcgTmVhcigpKSxcbiAgICBzdHg6IE9iamVjdC5mcmVlemUobmV3IFN0eCgpKSxcbiAgICBzdHQ6IE9iamVjdC5mcmVlemUobmV3IFNvbW5pYSgpKSxcbiAgICBzb21pOiBPYmplY3QuZnJlZXplKG5ldyBTb21pKCkpLFxuICAgIHNvbmVpdW06IE9iamVjdC5mcmVlemUobmV3IFNvbmVpdW0oKSksXG4gICAgc3VzZDogT2JqZWN0LmZyZWV6ZShuZXcgU1VTRCgpKSxcbiAgICB0YW86IE9iamVjdC5mcmVlemUobmV3IEJpdHRlbnNvcigpKSxcbiAgICB0aWE6IE9iamVjdC5mcmVlemUobmV3IFRpYSgpKSxcbiAgICB0b246IE9iamVjdC5mcmVlemUobmV3IFRvbigpKSxcbiAgICB0cng6IE9iamVjdC5mcmVlemUobmV3IFRyeCgpKSxcbiAgICB2ZXQ6IE9iamVjdC5mcmVlemUobmV3IFZldCgpKSxcbiAgICB3ZW1peDogT2JqZWN0LmZyZWV6ZShuZXcgV2VtaXgoKSksXG4gICAgd29ybGQ6IE9iamVjdC5mcmVlemUobmV3IFdvcmxkKCkpLFxuICAgIHhkYzogT2JqZWN0LmZyZWV6ZShuZXcgWGRjKCkpLFxuICAgIHhwbDogT2JqZWN0LmZyZWV6ZShuZXcgUGxhc21hKCkpLFxuICAgIHhycDogT2JqZWN0LmZyZWV6ZShuZXcgWHJwKCkpLFxuICAgIHh0ejogT2JqZWN0LmZyZWV6ZShuZXcgWHR6KCkpLFxuICAgIHpDYXNoOiBPYmplY3QuZnJlZXplKG5ldyBaQ2FzaCgpKSxcbiAgICB6ZXRhOiBPYmplY3QuZnJlZXplKG5ldyBaZXRhKCkpLFxuICAgIHprU3luYzogT2JqZWN0LmZyZWV6ZShuZXcgWmtTeW5jKCkpLFxuICB9LFxuICB0ZXN0OiB7XG4gICAgYWRhOiBPYmplY3QuZnJlZXplKG5ldyBBZGFUZXN0bmV0KCkpLFxuICAgIGFsZ29yYW5kOiBPYmplY3QuZnJlZXplKG5ldyBBbGdvcmFuZFRlc3RuZXQoKSksXG4gICAgYXBlY2hhaW46IE9iamVjdC5mcmVlemUobmV3IEFwZUNoYWluVGVzdG5ldCgpKSxcbiAgICBhcHQ6IE9iamVjdC5mcmVlemUobmV3IEFwdFRlc3RuZXQoKSksXG4gICAgYXJiaXRydW06IE9iamVjdC5mcmVlemUobmV3IEFyYml0cnVtVGVzdG5ldCgpKSxcbiAgICBhc2k6IE9iamVjdC5mcmVlemUobmV3IEFzaVRlc3RuZXQoKSksXG4gICAgYXRvbTogT2JqZWN0LmZyZWV6ZShuZXcgQXRvbVRlc3RuZXQoKSksXG4gICAgYXZhbGFuY2hlQzogT2JqZWN0LmZyZWV6ZShuZXcgQXZhbGFuY2hlQ1Rlc3RuZXQoKSksXG4gICAgYXZhbGFuY2hlUDogT2JqZWN0LmZyZWV6ZShuZXcgQXZhbGFuY2hlUFRlc3RuZXQoKSksXG4gICAgYmFieTogT2JqZWN0LmZyZWV6ZShuZXcgQmFieVRlc3RuZXQoKSksXG4gICAgYmFzZWNoYWluOiBPYmplY3QuZnJlZXplKG5ldyBCYXNlQ2hhaW5UZXN0bmV0KCkpLFxuICAgIGJpdGNvaW46IE9iamVjdC5mcmVlemUobmV3IEJpdGNvaW5UZXN0bmV0KCkpLFxuICAgIGJpdGNvaW5QdWJsaWNTaWduZXQ6IE9iamVjdC5mcmVlemUobmV3IEJpdGNvaW5QdWJsaWNTaWduZXQoKSksXG4gICAgYml0Y29pblRlc3RuZXQ0OiBPYmplY3QuZnJlZXplKG5ldyBCaXRjb2luVGVzdG5ldDQoKSksXG4gICAgYml0Y29pbkJpdEdvU2lnbmV0OiBPYmplY3QuZnJlZXplKG5ldyBCaXRjb2luQml0R29TaWduZXQoKSksXG4gICAgYml0Y29pbkNhc2g6IE9iamVjdC5mcmVlemUobmV3IEJpdGNvaW5DYXNoVGVzdG5ldCgpKSxcbiAgICBiaXRjb2luR29sZDogT2JqZWN0LmZyZWV6ZShuZXcgQml0Y29pbkdvbGRUZXN0bmV0KCkpLFxuICAgIGJpdGNvaW5TVjogT2JqZWN0LmZyZWV6ZShuZXcgQml0Y29pblNWVGVzdG5ldCgpKSxcbiAgICBiZXJhOiBPYmplY3QuZnJlZXplKG5ldyBCZXJhY2hhaW5UZXN0bmV0KCkpLFxuICAgIGJsZDogT2JqZWN0LmZyZWV6ZShuZXcgQmxkVGVzdG5ldCgpKSxcbiAgICBic2M6IE9iamVjdC5mcmVlemUobmV3IEJpbmFuY2VTbWFydENoYWluVGVzdG5ldCgpKSxcbiAgICBjYXNwZXI6IE9iamVjdC5mcmVlemUobmV3IENhc3BlclRlc3RuZXQoKSksXG4gICAgY29yZWRhbzogT2JqZWN0LmZyZWV6ZShuZXcgQ29yZWRhb1Rlc3RuZXQoKSksXG4gICAgY2VsbzogT2JqZWN0LmZyZWV6ZShuZXcgQ2Vsb1Rlc3RuZXQoKSksXG4gICAgY3Jvbm9zOiBPYmplY3QuZnJlZXplKG5ldyBDcm9ub3NUZXN0bmV0KCkpLFxuICAgIGRhc2g6IE9iamVjdC5mcmVlemUobmV3IERhc2hUZXN0bmV0KCkpLFxuICAgIGRvZ2Vjb2luOiBPYmplY3QuZnJlZXplKG5ldyBEb2dlY29pblRlc3RuZXQoKSksXG4gICAgZG90OiBPYmplY3QuZnJlZXplKG5ldyBQb2xrYWRvdFRlc3RuZXQoKSksXG4gICAgZUNhc2g6IE9iamVjdC5mcmVlemUobmV3IEVDYXNoVGVzdG5ldCgpKSxcbiAgICBlb3M6IE9iamVjdC5mcmVlemUobmV3IEVvc1Rlc3RuZXQoKSksXG4gICAgZmlhdDogT2JqZWN0LmZyZWV6ZShuZXcgRmlhdFRlc3RuZXQoKSksXG4gICAgZmV0Y2hhaTogT2JqZWN0LmZyZWV6ZShuZXcgRmV0Y2hBaVRlc3RuZXQoKSksXG4gICAgZmxyOiBPYmplY3QuZnJlZXplKG5ldyBGbGFyZVRlc3RuZXQoKSksXG4gICAgbW9uOiBPYmplY3QuZnJlZXplKG5ldyBNb25hZFRlc3RuZXQoKSksXG4gICAgcHlybW9udDogT2JqZWN0LmZyZWV6ZShuZXcgUHlybW9udCgpKSxcbiAgICBldGhlcmV1bUNsYXNzaWNUZXN0bmV0OiBPYmplY3QuZnJlZXplKG5ldyBFdGhlcmV1bUNsYXNzaWNUZXN0bmV0KCkpLFxuICAgIGhhc2g6IE9iamVjdC5mcmVlemUobmV3IEhhc2hUZXN0bmV0KCkpLFxuICAgIGhlZGVyYTogT2JqZWN0LmZyZWV6ZShuZXcgSGVkZXJhVGVzdG5ldCgpKSxcbiAgICBpY3A6IE9iamVjdC5mcmVlemUobmV3IEljcFRlc3RuZXQoKSksXG4gICAgaXA6IE9iamVjdC5mcmVlemUobmV3IElQVGVzdG5ldCgpKSxcbiAgICBpbml0aWE6IE9iamVjdC5mcmVlemUobmV3IEluaXRpYVRlc3RuZXQoKSksXG4gICAgaW5qZWN0aXZlOiBPYmplY3QuZnJlZXplKG5ldyBJbmplY3RpdmVUZXN0bmV0KCkpLFxuICAgIGlyeXM6IE9iamVjdC5mcmVlemUobmV3IElyeXNUZXN0bmV0KCkpLFxuICAgIGlzbG06IE9iamVjdC5mcmVlemUobmV3IElzbG1UZXN0bmV0KCkpLFxuICAgIGthdmE6IE9iamVjdC5mcmVlemUobmV3IEthdmFUZXN0bmV0KCkpLFxuICAgIGtvdmFuOiBPYmplY3QuZnJlZXplKG5ldyBLb3ZhbigpKSxcbiAgICBnb2VybGk6IE9iamVjdC5mcmVlemUobmV3IEdvZXJsaSgpKSxcbiAgICBob2xlc2t5OiBPYmplY3QuZnJlZXplKG5ldyBIb2xlc2t5KCkpLFxuICAgIGhvb2RpOiBPYmplY3QuZnJlZXplKG5ldyBIb29kaSgpKSxcbiAgICBsbmJ0YzogT2JqZWN0LmZyZWV6ZShuZXcgTGlnaHRuaW5nQml0Y29pblRlc3RuZXQoKSksXG4gICAgbGl0ZWNvaW46IE9iamVjdC5mcmVlemUobmV3IExpdGVjb2luVGVzdG5ldCgpKSxcbiAgICBtYW50cmE6IE9iamVjdC5mcmVlemUobmV3IE1hbnRyYVRlc3RuZXQoKSksXG4gICAgcG9seWdvbjogT2JqZWN0LmZyZWV6ZShuZXcgUG9seWdvblRlc3RuZXQoKSksXG4gICAgcG9seXg6IE9iamVjdC5mcmVlemUobmV3IFBvbHltZXNoVGVzdG5ldCgpKSxcbiAgICBwaHJzOiBPYmplY3QuZnJlZXplKG5ldyBQaGFyb3NUZXN0bmV0KCkpLFxuICAgIGN0YzogT2JqZWN0LmZyZWV6ZShuZXcgQ3JlZGl0Y29pblRlc3RuZXQoKSksXG4gICAgaHlwZWV2bTogT2JqZWN0LmZyZWV6ZShuZXcgSHlwZUVWTVRlc3RuZXQoKSksXG4gICAgbGluZWFldGg6IE9iamVjdC5mcmVlemUobmV3IExpbmVhRVRIVGVzdG5ldCgpKSxcbiAgICBvYXM6IE9iamVjdC5mcmVlemUobmV3IE9hc1Rlc3RuZXQoKSksXG4gICAgb2c6IE9iamVjdC5mcmVlemUobmV3IE9nVGVzdG5ldCgpKSxcbiAgICBvZmM6IE9iamVjdC5mcmVlemUobmV3IE9mY1Rlc3RuZXQoKSksXG4gICAgb3B0aW1pc206IE9iamVjdC5mcmVlemUobmV3IE9wdGltaXNtVGVzdG5ldCgpKSxcbiAgICBvc21vOiBPYmplY3QuZnJlZXplKG5ldyBPc21vVGVzdG5ldCgpKSxcbiAgICByYnRjOiBPYmplY3QuZnJlZXplKG5ldyBSYnRjVGVzdG5ldCgpKSxcbiAgICBydW5lOiBPYmplY3QuZnJlZXplKG5ldyBSdW5lVGVzdE5ldCgpKSxcbiAgICBzZ2I6IE9iamVjdC5mcmVlemUobmV3IFNvbmdiaXJkVGVzdG5ldCgpKSxcbiAgICBzdGVsbGFyOiBPYmplY3QuZnJlZXplKG5ldyBTdGVsbGFyVGVzdG5ldCgpKSxcbiAgICBzZWk6IE9iamVjdC5mcmVlemUobmV3IFNlaVRlc3RuZXQoKSksXG4gICAgc2VpZXZtOiBPYmplY3QuZnJlZXplKG5ldyBTZWlFdm1UZXN0bmV0KCkpLFxuICAgIHNvbDogT2JqZWN0LmZyZWV6ZShuZXcgU29sVGVzdG5ldCgpKSxcbiAgICBzdWk6IE9iamVjdC5mcmVlemUobmV3IFN1aVRlc3RuZXQoKSksXG4gICAgbmVhcjogT2JqZWN0LmZyZWV6ZShuZXcgTmVhclRlc3RuZXQoKSksXG4gICAgc3R4OiBPYmplY3QuZnJlZXplKG5ldyBTdHhUZXN0bmV0KCkpLFxuICAgIHN0dDogT2JqZWN0LmZyZWV6ZShuZXcgU29tbmlhVGVzdG5ldCgpKSxcbiAgICBzb25laXVtOiBPYmplY3QuZnJlZXplKG5ldyBTb25laXVtVGVzdG5ldCgpKSxcbiAgICBzb25pYzogT2JqZWN0LmZyZWV6ZShuZXcgU29uaWNUZXN0bmV0KCkpLFxuICAgIGthaWE6IE9iamVjdC5mcmVlemUobmV3IEthaWFUZXN0bmV0KCkpLFxuICAgIHN1c2Q6IE9iamVjdC5mcmVlemUobmV3IFNVU0RUZXN0bmV0KCkpLFxuICAgIGNvcmV1bTogT2JqZWN0LmZyZWV6ZShuZXcgQ29yZXVtVGVzdG5ldCgpKSxcbiAgICB0YW86IE9iamVjdC5mcmVlemUobmV3IEJpdHRlbnNvclRlc3RuZXQoKSksXG4gICAgdGlhOiBPYmplY3QuZnJlZXplKG5ldyBUaWFUZXN0bmV0KCkpLFxuICAgIHRvbjogT2JqZWN0LmZyZWV6ZShuZXcgVG9uVGVzdG5ldCgpKSxcbiAgICB0cng6IE9iamVjdC5mcmVlemUobmV3IFRyeFRlc3RuZXQoKSksXG4gICAgdmV0OiBPYmplY3QuZnJlZXplKG5ldyBWZXRUZXN0bmV0KCkpLFxuICAgIHdlbWl4OiBPYmplY3QuZnJlZXplKG5ldyBXZW1peFRlc3RuZXQoKSksXG4gICAgd29ybGQ6IE9iamVjdC5mcmVlemUobmV3IFdvcmxkVGVzdG5ldCgpKSxcbiAgICB4ZGM6IE9iamVjdC5mcmVlemUobmV3IFhkY1Rlc3RuZXQoKSksXG4gICAgeHBsOiBPYmplY3QuZnJlZXplKG5ldyBQbGFzbWFUZXN0bmV0KCkpLFxuICAgIHhycDogT2JqZWN0LmZyZWV6ZShuZXcgWHJwVGVzdG5ldCgpKSxcbiAgICB4dHo6IE9iamVjdC5mcmVlemUobmV3IFh0elRlc3RuZXQoKSksXG4gICAgekNhc2g6IE9iamVjdC5mcmVlemUobmV3IFpDYXNoVGVzdG5ldCgpKSxcbiAgICB6ZXRhOiBPYmplY3QuZnJlZXplKG5ldyBaZXRhVGVzdG5ldCgpKSxcbiAgICB6a1N5bmM6IE9iamVjdC5mcmVlemUobmV3IFprU3luY1Rlc3RuZXQoKSksXG4gIH0sXG59O1xuIl19