@bitgo-beta/statics 15.1.1-beta.166 → 15.1.1-beta.1661

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 (117) hide show
  1. package/dist/src/account.d.ts +1049 -75
  2. package/dist/src/account.d.ts.map +1 -1
  3. package/dist/src/account.js +1662 -170
  4. package/dist/src/ada.d.ts.map +1 -1
  5. package/dist/src/ada.js +7 -3
  6. package/dist/src/allCoinsAndTokens.d.ts +2 -0
  7. package/dist/src/allCoinsAndTokens.d.ts.map +1 -0
  8. package/dist/src/allCoinsAndTokens.js +1421 -0
  9. package/dist/src/avaxp.d.ts.map +1 -1
  10. package/dist/src/avaxp.js +9 -3
  11. package/dist/src/base.d.ts +2218 -53
  12. package/dist/src/base.d.ts.map +1 -1
  13. package/dist/src/base.js +2316 -62
  14. package/dist/src/canton.d.ts +34 -0
  15. package/dist/src/canton.d.ts.map +1 -0
  16. package/dist/src/canton.js +51 -0
  17. package/dist/src/coinFeatures.d.ts +113 -0
  18. package/dist/src/coinFeatures.d.ts.map +1 -0
  19. package/dist/src/coinFeatures.js +732 -0
  20. package/dist/src/coins/adaTokens.d.ts +2 -0
  21. package/dist/src/coins/adaTokens.d.ts.map +1 -0
  22. package/dist/src/coins/adaTokens.js +22 -0
  23. package/dist/src/coins/avaxTokens.d.ts +2 -0
  24. package/dist/src/coins/avaxTokens.d.ts.map +1 -0
  25. package/dist/src/coins/avaxTokens.js +128 -0
  26. package/dist/src/coins/botOfcTokens.d.ts +2 -0
  27. package/dist/src/coins/botOfcTokens.d.ts.map +1 -0
  28. package/dist/src/coins/botOfcTokens.js +5 -0
  29. package/dist/src/coins/botTokens.d.ts +3 -0
  30. package/dist/src/coins/botTokens.d.ts.map +1 -0
  31. package/dist/src/coins/botTokens.js +43 -0
  32. package/dist/src/coins/bscTokens.d.ts +2 -0
  33. package/dist/src/coins/bscTokens.d.ts.map +1 -0
  34. package/dist/src/coins/bscTokens.js +203 -0
  35. package/dist/src/coins/cantonTokens.d.ts +2 -0
  36. package/dist/src/coins/cantonTokens.d.ts.map +1 -0
  37. package/dist/src/coins/cantonTokens.js +15 -0
  38. package/dist/src/coins/cosmosTokens.d.ts +2 -0
  39. package/dist/src/coins/cosmosTokens.d.ts.map +1 -0
  40. package/dist/src/coins/cosmosTokens.js +14 -0
  41. package/dist/src/coins/erc20Coins.d.ts +2 -0
  42. package/dist/src/coins/erc20Coins.d.ts.map +1 -0
  43. package/dist/src/coins/erc20Coins.js +2014 -0
  44. package/dist/src/coins/generateERC20.d.ts +35 -0
  45. package/dist/src/coins/generateERC20.d.ts.map +1 -0
  46. package/dist/src/coins/generateERC20.js +46 -0
  47. package/dist/src/coins/jettonTokens.d.ts +2 -0
  48. package/dist/src/coins/jettonTokens.d.ts.map +1 -0
  49. package/dist/src/coins/jettonTokens.js +18 -0
  50. package/dist/src/coins/nep141Tokens.d.ts +2 -0
  51. package/dist/src/coins/nep141Tokens.d.ts.map +1 -0
  52. package/dist/src/coins/nep141Tokens.js +17 -0
  53. package/dist/src/coins/ofcCoins.d.ts +2 -0
  54. package/dist/src/coins/ofcCoins.d.ts.map +1 -0
  55. package/dist/src/coins/ofcCoins.js +938 -0
  56. package/dist/src/coins/ofcErc20Coins.d.ts +4 -0
  57. package/dist/src/coins/ofcErc20Coins.d.ts.map +1 -0
  58. package/dist/src/coins/ofcErc20Coins.js +1768 -0
  59. package/dist/src/coins/polygonTokens.d.ts +2 -0
  60. package/dist/src/coins/polygonTokens.d.ts.map +1 -0
  61. package/dist/src/coins/polygonTokens.js +165 -0
  62. package/dist/src/coins/polyxTokens.d.ts +2 -0
  63. package/dist/src/coins/polyxTokens.d.ts.map +1 -0
  64. package/dist/src/coins/polyxTokens.js +22 -0
  65. package/dist/src/coins/sip10Tokens.d.ts +2 -0
  66. package/dist/src/coins/sip10Tokens.d.ts.map +1 -0
  67. package/dist/src/coins/sip10Tokens.js +25 -0
  68. package/dist/src/coins/solTokens.d.ts +3 -0
  69. package/dist/src/coins/solTokens.d.ts.map +1 -0
  70. package/dist/src/coins/solTokens.js +454 -0
  71. package/dist/src/coins/vetTokens.d.ts +2 -0
  72. package/dist/src/coins/vetTokens.d.ts.map +1 -0
  73. package/dist/src/coins/vetTokens.js +11 -0
  74. package/dist/src/coins.d.ts +11 -1
  75. package/dist/src/coins.d.ts.map +1 -1
  76. package/dist/src/coins.js +366 -1688
  77. package/dist/src/constants.d.ts +1 -0
  78. package/dist/src/constants.d.ts.map +1 -1
  79. package/dist/src/constants.js +3 -2
  80. package/dist/src/errors.d.ts +3 -0
  81. package/dist/src/errors.d.ts.map +1 -1
  82. package/dist/src/errors.js +9 -2
  83. package/dist/src/flrp.d.ts +40 -0
  84. package/dist/src/flrp.d.ts.map +1 -0
  85. package/dist/src/flrp.js +65 -0
  86. package/dist/src/hypeevm.d.ts +28 -0
  87. package/dist/src/hypeevm.d.ts.map +1 -0
  88. package/dist/src/hypeevm.js +60 -0
  89. package/dist/src/index.d.ts +4 -1
  90. package/dist/src/index.d.ts.map +1 -1
  91. package/dist/src/index.js +32 -3
  92. package/dist/src/lightning.d.ts +43 -0
  93. package/dist/src/lightning.d.ts.map +1 -0
  94. package/dist/src/lightning.js +60 -0
  95. package/dist/src/map.d.ts +16 -0
  96. package/dist/src/map.d.ts.map +1 -1
  97. package/dist/src/map.js +194 -17
  98. package/dist/src/networkFeatureMapForTokens.d.ts +3 -0
  99. package/dist/src/networkFeatureMapForTokens.d.ts.map +1 -0
  100. package/dist/src/networkFeatureMapForTokens.js +31 -0
  101. package/dist/src/networks.d.ts +1672 -33
  102. package/dist/src/networks.d.ts.map +1 -1
  103. package/dist/src/networks.js +2082 -103
  104. package/dist/src/ofc.d.ts +663 -3
  105. package/dist/src/ofc.d.ts.map +1 -1
  106. package/dist/src/ofc.js +1573 -28
  107. package/dist/src/tokenConfig.d.ts +641 -108
  108. package/dist/src/tokenConfig.d.ts.map +1 -1
  109. package/dist/src/tokenConfig.js +1011 -220
  110. package/dist/src/utxo.d.ts +3 -1
  111. package/dist/src/utxo.d.ts.map +1 -1
  112. package/dist/src/utxo.js +84 -3
  113. package/dist/tsconfig.tsbuildinfo +1 -1
  114. package/package.json +6 -3
  115. package/.mocharc.js +0 -10
  116. package/.prettierignore +0 -2
  117. package/CHANGELOG.md +0 -913
@@ -1,12 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Networks = exports.BaseNetwork = exports.NetworkType = void 0;
3
+ exports.Networks = exports.FlareTestnet = exports.Flare = exports.FlarePTestnet = exports.FlareP = exports.BaseNetwork = exports.NetworkType = void 0;
4
+ exports.getNetworkByName = getNetworkByName;
4
5
  const base_1 = require("./base");
5
6
  var NetworkType;
6
7
  (function (NetworkType) {
7
8
  NetworkType["MAINNET"] = "mainnet";
8
9
  NetworkType["TESTNET"] = "testnet";
9
- })(NetworkType = exports.NetworkType || (exports.NetworkType = {}));
10
+ })(NetworkType || (exports.NetworkType = NetworkType = {}));
10
11
  class BaseNetwork {
11
12
  }
12
13
  exports.BaseNetwork = BaseNetwork;
@@ -27,7 +28,7 @@ class Algorand extends Mainnet {
27
28
  super(...arguments);
28
29
  this.name = 'Algorand';
29
30
  this.family = base_1.CoinFamily.ALGO;
30
- this.explorerUrl = 'https://algoexplorer.io/tx/';
31
+ this.explorerUrl = 'https://allo.info/tx/';
31
32
  }
32
33
  }
33
34
  class AlgorandTestnet extends Testnet {
@@ -35,7 +36,7 @@ class AlgorandTestnet extends Testnet {
35
36
  super(...arguments);
36
37
  this.name = 'AlgorandTestnet';
37
38
  this.family = base_1.CoinFamily.ALGO;
38
- this.explorerUrl = 'https://testnet.algoexplorer.io/tx/';
39
+ this.explorerUrl = 'https://explorer.bitquery.io/algorand_testnet/tx/';
39
40
  }
40
41
  }
41
42
  class Ada extends Mainnet {
@@ -46,7 +47,8 @@ class Ada extends Mainnet {
46
47
  this.utxolibName = 'cardano';
47
48
  this.poolDeposit = 500000000;
48
49
  this.stakeKeyDeposit = 2000000;
49
- this.explorerUrl = 'https://explorer.cardano.org/en/transaction?id=';
50
+ this.explorerUrl = 'https://cardanoscan.io/transaction/';
51
+ this.accountExplorerUrl = 'https://cardanoscan.io/address/';
50
52
  this.coinsPerUtxoWord = 34482;
51
53
  this.maxTransactionSize = 8000;
52
54
  this.maxValueSize = 4000;
@@ -58,7 +60,8 @@ class AdaTestnet extends Testnet {
58
60
  this.name = 'AdaCardanoTestnet';
59
61
  this.family = base_1.CoinFamily.ADA;
60
62
  this.utxolibName = 'cardanoTestnet';
61
- this.explorerUrl = 'https://preprod.cexplorer.io/';
63
+ this.explorerUrl = 'https://preprod.cardanoscan.io/transaction/';
64
+ this.accountExplorerUrl = 'https://preprod.cardanoscan.io/address/';
62
65
  this.coinsPerUtxoWord = 34482;
63
66
  this.maxTransactionSize = 8000;
64
67
  this.maxValueSize = 4000;
@@ -66,6 +69,44 @@ class AdaTestnet extends Testnet {
66
69
  this.stakeKeyDeposit = 2000000;
67
70
  }
68
71
  }
72
+ class Apt extends Mainnet {
73
+ constructor() {
74
+ super(...arguments);
75
+ this.name = 'Apt';
76
+ this.family = base_1.CoinFamily.APT;
77
+ this.explorerUrl = 'https://explorer.aptoslabs.com/txn/?network=mainnet';
78
+ this.accountExplorerUrl = 'https://explorer.aptoslabs.com/account/?network=mainnet';
79
+ this.blockExplorerUrl = 'https://explorer.aptoslabs.com/block/?network=mainnet';
80
+ }
81
+ }
82
+ class AptTestnet extends Testnet {
83
+ constructor() {
84
+ super(...arguments);
85
+ this.name = 'Testnet Apt';
86
+ this.family = base_1.CoinFamily.APT;
87
+ this.explorerUrl = 'https://explorer.aptoslabs.com/txn/?network=testnet';
88
+ this.accountExplorerUrl = 'https://explorer.aptoslabs.com/account/?network=testnet';
89
+ this.blockExplorerUrl = 'https://explorer.aptoslabs.com/block/?network=testnet';
90
+ }
91
+ }
92
+ class Icp extends Mainnet {
93
+ constructor() {
94
+ super(...arguments);
95
+ this.name = 'Internet Computer';
96
+ this.family = base_1.CoinFamily.ICP;
97
+ this.explorerUrl = 'https://dashboard.internetcomputer.org/transaction/';
98
+ this.accountExplorerUrl = 'https://dashboard.internetcomputer.org/account/';
99
+ }
100
+ }
101
+ class IcpTestnet extends Testnet {
102
+ constructor() {
103
+ super(...arguments);
104
+ this.name = 'Testnet Internet Computer';
105
+ this.family = base_1.CoinFamily.ICP;
106
+ this.explorerUrl = 'https://dashboard.internetcomputer.org/transaction/'; // ICP testnet explorer is not available, so using mainnet explorer
107
+ this.accountExplorerUrl = 'https://dashboard.internetcomputer.org/account/';
108
+ }
109
+ }
69
110
  class Arbitrum extends Mainnet {
70
111
  constructor() {
71
112
  super(...arguments);
@@ -74,6 +115,13 @@ class Arbitrum extends Mainnet {
74
115
  this.explorerUrl = 'https://arbiscan.io/tx/';
75
116
  this.accountExplorerUrl = 'https://arbiscan.io/address/';
76
117
  this.chainId = 42161;
118
+ this.nativeCoinOperationHashPrefix = '42161';
119
+ this.tokenOperationHashPrefix = '42161-ERC20';
120
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
121
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
122
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
123
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
124
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
77
125
  }
78
126
  }
79
127
  class ArbitrumTestnet extends Testnet {
@@ -81,9 +129,16 @@ class ArbitrumTestnet extends Testnet {
81
129
  super(...arguments);
82
130
  this.name = 'ArbitrumTestnet';
83
131
  this.family = base_1.CoinFamily.ARBETH;
84
- this.explorerUrl = 'https://sepolia-explorer.arbitrum.io/tx/';
85
- this.accountExplorerUrl = 'https://sepolia-explorer.arbitrum.io/address/';
132
+ this.explorerUrl = 'https://sepolia.arbiscan.io/tx/';
133
+ this.accountExplorerUrl = 'https://sepolia.arbiscan.io/address/';
86
134
  this.chainId = 421614;
135
+ this.nativeCoinOperationHashPrefix = '421614';
136
+ this.tokenOperationHashPrefix = '421614-ERC20';
137
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
138
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
139
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
140
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
141
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
87
142
  }
88
143
  }
89
144
  class AvalancheC extends Mainnet {
@@ -92,9 +147,10 @@ class AvalancheC extends Mainnet {
92
147
  // https://docs.avax.network/build/tutorials/smart-contracts/deploy-a-smart-contract-on-avalanche-using-remix-and-metamask#avalanche-mainnet-settings
93
148
  this.name = 'AvalancheC';
94
149
  this.family = base_1.CoinFamily.AVAXC;
95
- this.explorerUrl = 'https://snowtrace.io/tx/';
96
- this.accountExplorerUrl = 'https://snowtrace.io/address/';
150
+ this.explorerUrl = 'https://subnets.avax.network/c-chain/tx/';
151
+ this.accountExplorerUrl = 'https://subnets.avax.network/c-chain/address/';
97
152
  this.chainId = 43114;
153
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
98
154
  }
99
155
  }
100
156
  class AvalancheCTestnet extends Testnet {
@@ -103,9 +159,10 @@ class AvalancheCTestnet extends Testnet {
103
159
  // https://docs.avax.network/build/tutorials/smart-contracts/deploy-a-smart-contract-on-avalanche-using-remix-and-metamask#avalanche-mainnet-settings
104
160
  this.name = 'AvalancheCTestnet';
105
161
  this.family = base_1.CoinFamily.AVAXC;
106
- this.explorerUrl = 'https://testnet.snowtrace.io/tx/';
107
- this.accountExplorerUrl = 'https://testnet.snowtrace.io/address/';
162
+ this.explorerUrl = 'https://subnets-test.avax.network/c-chain/tx/';
163
+ this.accountExplorerUrl = 'https://subnets-test.avax.network/c-chain/address/';
108
164
  this.chainId = 43113;
165
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
109
166
  }
110
167
  }
111
168
  class AvalancheP extends Mainnet {
@@ -123,6 +180,7 @@ class AvalancheP extends Mainnet {
123
180
  this.alias = 'P';
124
181
  this.vm = 'platformvm';
125
182
  this.txFee = '1000000'; // 1 MILLIAVAX
183
+ this.maxImportFee = '10000000'; // 0.01 AVAX
126
184
  this.createSubnetTx = '1000000000'; // 1 AVAX
127
185
  this.createChainTx = '1000000000'; // 1 AVAX
128
186
  this.creationTxFee = '10000000'; // 1 CENTIAVAX
@@ -151,6 +209,7 @@ class AvalanchePTestnet extends Testnet {
151
209
  this.hrp = 'fuji';
152
210
  this.vm = 'platformvm';
153
211
  this.txFee = '1000000'; // 1 MILLIAVAX
212
+ this.maxImportFee = '10000000'; // 0.01 AVAX
154
213
  this.createSubnetTx = '1000000000'; // 1 AVAX
155
214
  this.createChainTx = '1000000000'; // 1 AVAX
156
215
  this.creationTxFee = '10000000'; // 1 CENTIAVAX
@@ -169,9 +228,12 @@ class BinanceSmartChain extends Mainnet {
169
228
  super(...arguments);
170
229
  this.name = 'BinanceSmartChain';
171
230
  this.family = base_1.CoinFamily.BSC;
172
- this.explorerUrl = 'https://www.bscscan.com/tx/';
173
- this.accountExplorerUrl = 'https://www.bscscan.com/address/';
231
+ this.explorerUrl = 'https://bscscan.com/tx/';
232
+ this.accountExplorerUrl = 'https://bscscan.com/address/';
174
233
  this.chainId = 56;
234
+ this.nativeCoinOperationHashPrefix = '56';
235
+ this.tokenOperationHashPrefix = '56-ERC20';
236
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
175
237
  }
176
238
  }
177
239
  class BinanceSmartChainTestnet extends Testnet {
@@ -182,6 +244,81 @@ class BinanceSmartChainTestnet extends Testnet {
182
244
  this.explorerUrl = 'https://testnet.bscscan.com/tx/';
183
245
  this.accountExplorerUrl = 'https://testnet.bscscan.com/address/';
184
246
  this.chainId = 97;
247
+ this.nativeCoinOperationHashPrefix = '97';
248
+ this.tokenOperationHashPrefix = '97-ERC20';
249
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
250
+ }
251
+ }
252
+ class OpBNB extends Mainnet {
253
+ constructor() {
254
+ super(...arguments);
255
+ this.name = 'OpBNB';
256
+ this.family = base_1.CoinFamily.OPBNB;
257
+ this.explorerUrl = 'https://opbnbscan.com/tx/';
258
+ this.accountExplorerUrl = 'https://opbnbscan.com/address/';
259
+ this.chainId = 204;
260
+ this.nativeCoinOperationHashPrefix = '204';
261
+ this.tokenOperationHashPrefix = '204-ERC20';
262
+ }
263
+ }
264
+ class OpBNBTestnet extends Testnet {
265
+ constructor() {
266
+ super(...arguments);
267
+ this.name = 'OpBNBTestnet';
268
+ this.family = base_1.CoinFamily.OPBNB;
269
+ this.explorerUrl = 'https://testnet.opbnbscan.com/tx/';
270
+ this.accountExplorerUrl = 'https://testnet.opbnbscan.com/address/';
271
+ this.chainId = 5611;
272
+ this.nativeCoinOperationHashPrefix = '5611';
273
+ this.tokenOperationHashPrefix = '5611-ERC20';
274
+ }
275
+ }
276
+ class Fantom extends Mainnet {
277
+ constructor() {
278
+ super(...arguments);
279
+ this.name = 'Fantom';
280
+ this.family = base_1.CoinFamily.FANTOM;
281
+ this.explorerUrl = 'https://explorer.fantom.network/transactions/';
282
+ this.accountExplorerUrl = 'https://explorer.fantom.network/address/';
283
+ this.chainId = 250;
284
+ this.nativeCoinOperationHashPrefix = '250';
285
+ this.tokenOperationHashPrefix = '250-ERC20';
286
+ }
287
+ }
288
+ class FantomTestnet extends Testnet {
289
+ constructor() {
290
+ super(...arguments);
291
+ this.name = 'FantomTestnet';
292
+ this.family = base_1.CoinFamily.FANTOM;
293
+ this.explorerUrl = 'https://explorer.fantom.network/transactions/';
294
+ this.accountExplorerUrl = 'https://explorer.fantom.network/address/';
295
+ this.chainId = 4002;
296
+ this.nativeCoinOperationHashPrefix = '4002';
297
+ this.tokenOperationHashPrefix = '4002-ERC20';
298
+ }
299
+ }
300
+ class LightningBitcoin extends Mainnet {
301
+ constructor() {
302
+ super(...arguments);
303
+ this.name = 'LightningBitcoin';
304
+ this.family = base_1.CoinFamily.LNBTC;
305
+ this.utxolibName = 'bitcoin';
306
+ this.explorerUrl = 'https://mempool.space/lightning';
307
+ this.lightningServicePubKey = '0338508686f978ceffd7ce05404041b1a5b4f75a39bc92a6d355240ccc081f763e';
308
+ this.middlewarePubKey = '020d52f6458b17b565bc03516568d1a65c8cbd131ce03f2207567e4cd3322e82f3';
309
+ this.tatPubKey = '03953da20068c096858d3cca60f8c5b0e5a2f5d0383ecf9b6ab392d71e4f3e72df';
310
+ }
311
+ }
312
+ class LightningBitcoinTestnet extends Testnet {
313
+ constructor() {
314
+ super(...arguments);
315
+ this.name = 'LightningBitcoinTestnet';
316
+ this.family = base_1.CoinFamily.LNBTC;
317
+ this.utxolibName = 'testnet';
318
+ this.explorerUrl = 'https://mempool.space/testnet/lightning';
319
+ this.lightningServicePubKey = '024055021db1e7f019ebb783ab0b0810c21a819207d4cb1ec4a6e2150ac07f1482';
320
+ this.middlewarePubKey = '027cb3bc6b49fc385d282b42a7be232a94ffcbaffc7818b603b17722582bbf539b';
321
+ this.tatPubKey = '02e747c99c371eac9c14fb19913bec8a0e3e46e35ab1a45878e5b9afbb69899c1e';
185
322
  }
186
323
  }
187
324
  class Bitcoin extends Mainnet {
@@ -200,6 +337,35 @@ class BitcoinTestnet extends Testnet {
200
337
  this.family = base_1.CoinFamily.BTC;
201
338
  this.utxolibName = 'testnet';
202
339
  this.explorerUrl = 'https://mempool.space/testnet/tx/';
340
+ // Add our pubkey for our paygo wallet
341
+ this.paygoAddressAttestationPubkey = 'xpub6BKRgmCPX5oQiJgJ6Vq6BF8tDvZhwQki5dVVQohckK2ZJXtxj8K6M9pavLwt9piW33hZz17SWmG8QWsjJ1tHdde2Fs5UA3DFbApCtbdaGKn';
342
+ }
343
+ }
344
+ class BitcoinPublicSignet extends Testnet {
345
+ constructor() {
346
+ super(...arguments);
347
+ this.name = 'BitcoinPublicSignet';
348
+ this.family = base_1.CoinFamily.BTC;
349
+ this.utxolibName = 'bitcoinPublicSignet';
350
+ this.explorerUrl = 'https://mempool.space/signet/tx/';
351
+ }
352
+ }
353
+ class BitcoinTestnet4 extends Testnet {
354
+ constructor() {
355
+ super(...arguments);
356
+ this.name = 'BitcoinTestnet4';
357
+ this.family = base_1.CoinFamily.BTC;
358
+ this.utxolibName = 'bitcoinTestnet4';
359
+ this.explorerUrl = 'https://mempool.space/testnet4/tx/';
360
+ }
361
+ }
362
+ class BitcoinBitGoSignet extends Testnet {
363
+ constructor() {
364
+ super(...arguments);
365
+ this.name = 'BitcoinBitGoSignet';
366
+ this.family = base_1.CoinFamily.BTC;
367
+ this.utxolibName = 'bitcoinBitGoSignet';
368
+ this.explorerUrl = 'https://mempool.space/notanetwork/tx/';
203
369
  }
204
370
  }
205
371
  class BitcoinCash extends Mainnet {
@@ -217,7 +383,7 @@ class BitcoinCashTestnet extends Testnet {
217
383
  this.name = 'BitcoinCashTestnet';
218
384
  this.family = base_1.CoinFamily.BCH;
219
385
  this.utxolibName = 'bitcoincashTestnet';
220
- this.explorerUrl = 'https://www.blockchain.com/bch-testnet/tx/';
386
+ this.explorerUrl = 'https://tbch.loping.net/tx/';
221
387
  }
222
388
  }
223
389
  class BitcoinSV extends Mainnet {
@@ -310,30 +476,30 @@ class ECashTestnet extends Testnet {
310
476
  this.explorerUrl = undefined;
311
477
  }
312
478
  }
313
- class Polkadot extends Mainnet {
479
+ class PolkadotAssetHub extends Mainnet {
314
480
  constructor() {
315
481
  super(...arguments);
316
- this.name = 'Polkadot';
482
+ this.name = 'PolkadotAssetHub';
317
483
  this.family = base_1.CoinFamily.DOT;
318
- this.explorerUrl = 'https://polkadot.subscan.io/extrinsic/';
319
- this.specName = 'polkadot';
320
- this.genesisHash = '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3';
321
- this.specVersion = 9140;
322
- this.chainName = 'Polkadot';
323
- this.txVersion = 9;
484
+ this.explorerUrl = 'https://assethub-polkadot.subscan.io/extrinsic/';
485
+ this.specName = 'statemint';
486
+ this.genesisHash = '0x68d56f15f85d3136970ec16946040bc1752654e906147f7e43e9d539d7c3de2f';
487
+ this.specVersion = 1007001;
488
+ this.chainName = 'Polkadot Asset Hub';
489
+ this.txVersion = 15;
324
490
  }
325
491
  }
326
- class PolkadotTestnet extends Testnet {
492
+ class WestendAssetHub extends Testnet {
327
493
  constructor() {
328
494
  super(...arguments);
329
- this.name = 'Westend';
495
+ this.name = 'WestendAssetHub';
330
496
  this.family = base_1.CoinFamily.DOT;
331
- this.explorerUrl = 'https://westend.subscan.io/extrinsic/';
332
- this.specName = 'westend';
333
- this.genesisHash = '0xe143f23803ac50e8f6f8e62695d1ce9e4e1d68aa36c1cd2cfd15340213f3423e';
334
- this.specVersion = 9430;
335
- this.chainName = 'Westend';
336
- this.txVersion = 22;
497
+ this.explorerUrl = 'https://assethub-westend.subscan.io/extrinsic/';
498
+ this.specName = 'westmint';
499
+ this.genesisHash = '0x67f9723393ef76214df0118c34bbbd3dbebc8ed46a10973a8c969d48fe7598c9';
500
+ this.specVersion = 1020000;
501
+ this.chainName = 'Westend Asset Hub';
502
+ this.txVersion = 16;
337
503
  }
338
504
  }
339
505
  class Celo extends Mainnet {
@@ -344,6 +510,8 @@ class Celo extends Mainnet {
344
510
  this.explorerUrl = 'https://explorer.celo.org/tx/';
345
511
  this.accountExplorerUrl = 'https://explorer.celo.org/address/';
346
512
  this.chainId = 42220;
513
+ this.nativeCoinOperationHashPrefix = 'CELO';
514
+ this.tokenOperationHashPrefix = 'CELO-ERC20';
347
515
  }
348
516
  }
349
517
  class CeloTestnet extends Testnet {
@@ -351,9 +519,57 @@ class CeloTestnet extends Testnet {
351
519
  super(...arguments);
352
520
  this.name = 'CeloTestnet';
353
521
  this.family = base_1.CoinFamily.CELO;
354
- this.explorerUrl = 'https://alfajores-blockscout.celo-testnet.org/tx/';
355
- this.accountExplorerUrl = 'https://alfajores-blockscout.celo-testnet.org/address/';
356
- this.chainId = 44787;
522
+ this.explorerUrl = 'https://sepolia.celoscan.io/tx/';
523
+ this.accountExplorerUrl = 'https://sepolia.celoscan.io/address/';
524
+ this.chainId = 11142220;
525
+ this.nativeCoinOperationHashPrefix = 'CELO';
526
+ this.tokenOperationHashPrefix = 'CELO-ERC20';
527
+ }
528
+ }
529
+ class Chiliz extends Mainnet {
530
+ constructor() {
531
+ super(...arguments);
532
+ this.name = 'Chiliz';
533
+ this.family = base_1.CoinFamily.CHILIZ;
534
+ this.explorerUrl = 'https://chiliscan.com/tx/';
535
+ this.accountExplorerUrl = 'https://chiliscan.com/address/';
536
+ this.chainId = 88888;
537
+ this.nativeCoinOperationHashPrefix = '88888';
538
+ this.tokenOperationHashPrefix = '88888-ERC20';
539
+ }
540
+ }
541
+ class ChilizTestnet extends Testnet {
542
+ constructor() {
543
+ super(...arguments);
544
+ this.name = 'ChilizTestnet';
545
+ this.family = base_1.CoinFamily.CHILIZ;
546
+ this.explorerUrl = 'https://testnet.chiliscan.com/tx/';
547
+ this.accountExplorerUrl = 'https://testnet.chiliscan.com/address/';
548
+ this.chainId = 88882;
549
+ this.nativeCoinOperationHashPrefix = '88882';
550
+ this.tokenOperationHashPrefix = '88882-ERC20';
551
+ }
552
+ }
553
+ class CodexEth extends Mainnet {
554
+ constructor() {
555
+ super(...arguments);
556
+ this.name = 'Codex Ethereum';
557
+ this.family = base_1.CoinFamily.CODEXETH;
558
+ this.explorerUrl = 'https://explorer.codex.xyz/tx/';
559
+ this.accountExplorerUrl = 'https://explorer.codex.xyz/address/';
560
+ this.chainId = 81224;
561
+ this.nativeCoinOperationHashPrefix = '81224';
562
+ }
563
+ }
564
+ class CodexEthTestnet extends Testnet {
565
+ constructor() {
566
+ super(...arguments);
567
+ this.name = 'Testnet Codex Ethereum';
568
+ this.family = base_1.CoinFamily.CODEXETH;
569
+ this.explorerUrl = 'https://explorer.codex-stg.xyz/tx/';
570
+ this.accountExplorerUrl = 'https://explorer.codex-stg.xyz/address/';
571
+ this.chainId = 812242;
572
+ this.nativeCoinOperationHashPrefix = '812242';
357
573
  }
358
574
  }
359
575
  // TODO update explorerUrl STLX-1657
@@ -385,9 +601,21 @@ class Ethereum extends Mainnet {
385
601
  this.blockExplorerUrl = 'https://etherscan.io/block/';
386
602
  // from https://github.com/ethereumjs/ethereumjs-common/blob/a978f630858f6843176bb20b277569785914e899/src/chains/index.ts
387
603
  this.chainId = 1;
388
- this.batcherContractAddress = '0x0c9b25dfe02b2c89cce86e1a0bd6c04a7aca01b6';
604
+ this.batcherContractAddress = '0xebe27913fcc7510eadf10643a8f86bf5492a9541';
389
605
  this.forwarderFactoryAddress = '0xffa397285ce46fb78c588a9e993286aac68c37cd';
390
606
  this.forwarderImplementationAddress = '0x059ffafdc6ef594230de44f824e2bd0a51ca5ded';
607
+ this.walletV2ForwarderFactoryAddress = '0x29Ef46035e9fA3D570c598d3266424Ca11413b0C';
608
+ this.walletV2ForwarderImplementationAddress = '0x5397d0869aBA0D55e96D5716d383F6e1d8695ed7';
609
+ this.walletV4ForwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
610
+ this.walletV4ForwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
611
+ this.nativeCoinOperationHashPrefix = 'ETHER';
612
+ this.tokenOperationHashPrefix = 'ERC20';
613
+ this.walletFactoryAddress = '0x9a0d63911620f7fc15c3c020edbe4d7267ea3e4d';
614
+ this.walletImplementationAddress = '0xe8e847cf573fc8ed75621660a36affd18c543d7e';
615
+ this.walletV2FactoryAddress = '0xa7198f48C58E91f01317E70Cd24C5Cce475c1555';
616
+ this.walletV2ImplementationAddress = '0xe5DcdC13B628c2df813DB1080367E929c1507Ca0';
617
+ this.walletV4FactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
618
+ this.walletV4ImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
391
619
  }
392
620
  }
393
621
  class Ethereum2 extends Mainnet {
@@ -410,6 +638,30 @@ class EthereumW extends Mainnet {
410
638
  this.batcherContractAddress = '';
411
639
  this.forwarderFactoryAddress = '';
412
640
  this.forwarderImplementationAddress = '';
641
+ this.nativeCoinOperationHashPrefix = 'ETHER';
642
+ this.tokenOperationHashPrefix = 'ERC20';
643
+ }
644
+ }
645
+ class XtzEvm extends Mainnet {
646
+ constructor() {
647
+ super(...arguments);
648
+ this.name = 'XTZ EVM';
649
+ this.family = base_1.CoinFamily.XTZEVM;
650
+ this.explorerUrl = 'https://explorer.etherlink.com/tx/';
651
+ this.accountExplorerUrl = 'https://explorer.etherlink.com/address/';
652
+ this.chainId = 42793;
653
+ this.nativeCoinOperationHashPrefix = '42793';
654
+ }
655
+ }
656
+ class XtzEvmTestnet extends Testnet {
657
+ constructor() {
658
+ super(...arguments);
659
+ this.name = 'Testnet XTZ EVM';
660
+ this.family = base_1.CoinFamily.XTZEVM;
661
+ this.explorerUrl = 'https://shadownet.explorer.etherlink.com/tx/';
662
+ this.accountExplorerUrl = 'https://shadownet.explorer.etherlink.com/address/';
663
+ this.chainId = 128123;
664
+ this.nativeCoinOperationHashPrefix = '128123';
413
665
  }
414
666
  }
415
667
  class Pyrmont extends Testnet {
@@ -433,6 +685,8 @@ class Kovan extends Testnet {
433
685
  this.batcherContractAddress = '0xc0aaf2649e7b0f3950164681eca2b1a8f654a478';
434
686
  this.forwarderFactoryAddress = '0xa79a485294d226075ee65410bc94ea454f3e409d';
435
687
  this.forwarderImplementationAddress = '0xa946e748f25a5ec6878eb1a9f2e902028174c0b3';
688
+ this.nativeCoinOperationHashPrefix = 'ETHER';
689
+ this.tokenOperationHashPrefix = 'ERC20';
436
690
  }
437
691
  }
438
692
  class Goerli extends Testnet {
@@ -448,6 +702,8 @@ class Goerli extends Testnet {
448
702
  this.batcherContractAddress = '0xe8e847cf573fc8ed75621660a36affd18c543d7e';
449
703
  this.forwarderFactoryAddress = '0xf5caa5e3e93afbc21bd19ef4f2691a37121f7917';
450
704
  this.forwarderImplementationAddress = '0x80d5c91e8cc21df69fc4d64f21dc2d83121c3999';
705
+ this.nativeCoinOperationHashPrefix = 'ETHER';
706
+ this.tokenOperationHashPrefix = 'ERC20';
451
707
  }
452
708
  }
453
709
  class Holesky extends Testnet {
@@ -455,14 +711,45 @@ class Holesky extends Testnet {
455
711
  super(...arguments);
456
712
  this.name = 'Holesky';
457
713
  this.family = base_1.CoinFamily.ETH;
458
- this.explorerUrl = 'https://holesky.beaconcha.in/tx/';
459
- this.accountExplorerUrl = 'https://holesky.beaconcha.in/address/';
460
- this.blockExplorerUrl = 'https://holesky.beaconcha.in/block/';
714
+ this.explorerUrl = 'https://holesky.etherscan.io/tx/';
715
+ this.accountExplorerUrl = 'https://holesky.etherscan.io/address/';
716
+ this.blockExplorerUrl = 'https://holesky.etherscan.io/block/';
461
717
  // https://chainlist.org/chain/17000
462
718
  this.chainId = 17000;
463
- this.batcherContractAddress = '0xe8e847cf573fc8ed75621660a36affd18c543d7e';
464
- this.forwarderFactoryAddress = '0xf5caa5e3e93afbc21bd19ef4f2691a37121f7917';
465
- this.forwarderImplementationAddress = '0x80d5c91e8cc21df69fc4d64f21dc2d83121c3999';
719
+ this.batcherContractAddress = '0xebe27913fcc7510eadf10643a8f86bf5492a9541';
720
+ this.forwarderFactoryAddress = '0xffa397285ce46fb78c588a9e993286aac68c37cd';
721
+ this.forwarderImplementationAddress = '0x059ffafdc6ef594230de44f824e2bd0a51ca5ded';
722
+ this.nativeCoinOperationHashPrefix = 'ETHER';
723
+ this.tokenOperationHashPrefix = 'ERC20';
724
+ this.walletV4ForwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
725
+ this.walletV4ForwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
726
+ }
727
+ }
728
+ class Hoodi extends Testnet {
729
+ constructor() {
730
+ super(...arguments);
731
+ this.name = 'Hoodi';
732
+ this.family = base_1.CoinFamily.ETH;
733
+ this.explorerUrl = 'https://hoodi.etherscan.io/tx/';
734
+ this.accountExplorerUrl = 'https://hoodi.etherscan.io/address/';
735
+ this.blockExplorerUrl = 'https://hoodi.etherscan.io/block/';
736
+ // https://chainlist.org/chain/560048
737
+ this.chainId = 560048;
738
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
739
+ this.forwarderFactoryAddress = '0x0e2874d6824fae4f61e446012317a9b86384bd8e';
740
+ this.forwarderImplementationAddress = '0x7441f20a59be97011842404b9aefd8d85fd81aa6';
741
+ this.walletV2ForwarderFactoryAddress = '0x0e2874d6824fae4f61e446012317a9b86384bd8e';
742
+ this.walletV2ForwarderImplementationAddress = '0x7441f20a59be97011842404b9aefd8d85fd81aa6';
743
+ this.walletV4ForwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
744
+ this.walletV4ForwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
745
+ this.walletFactoryAddress = '0xf514cd80a41bde2e20033b251f1f74633caf3e59';
746
+ this.walletImplementationAddress = '0x6bb86b3b27b092bf8a285080fe7d58acdf841041';
747
+ this.walletV2FactoryAddress = '0xf514cd80a41bde2e20033b251f1f74633caf3e59';
748
+ this.walletV2ImplementationAddress = '0x6bb86b3b27b092bf8a285080fe7d58acdf841041';
749
+ this.walletV4FactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
750
+ this.walletV4ImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
751
+ this.nativeCoinOperationHashPrefix = 'ETHER';
752
+ this.tokenOperationHashPrefix = 'ERC20';
466
753
  }
467
754
  }
468
755
  class EthereumClassic extends Mainnet {
@@ -474,6 +761,8 @@ class EthereumClassic extends Mainnet {
474
761
  this.accountExplorerUrl = 'https://blockscout.com/etc/mainnet/address/';
475
762
  // from https://chainid.network/chains/
476
763
  this.chainId = 61;
764
+ this.nativeCoinOperationHashPrefix = 'ETC';
765
+ this.tokenOperationHashPrefix = 'ETC-ERC20';
477
766
  }
478
767
  }
479
768
  class EthereumClassicTestnet extends Testnet {
@@ -485,6 +774,8 @@ class EthereumClassicTestnet extends Testnet {
485
774
  this.accountExplorerUrl = 'https://blockscout.com/etc/mordor/address/';
486
775
  // from https://chainid.network/chains/
487
776
  this.chainId = 63;
777
+ this.nativeCoinOperationHashPrefix = 'ETC';
778
+ this.tokenOperationHashPrefix = 'ETC-ERC20';
488
779
  }
489
780
  }
490
781
  class Eos extends Mainnet {
@@ -508,7 +799,7 @@ class Hedera extends Mainnet {
508
799
  super(...arguments);
509
800
  this.name = 'Hedera';
510
801
  this.family = base_1.CoinFamily.HBAR;
511
- this.explorerUrl = 'https://explorer.kabuto.sh/mainnet/transaction/';
802
+ this.explorerUrl = 'https://hashscan.io/mainnet/transaction/';
512
803
  }
513
804
  }
514
805
  class HederaTestnet extends Testnet {
@@ -516,7 +807,7 @@ class HederaTestnet extends Testnet {
516
807
  super(...arguments);
517
808
  this.name = 'HederaTestnet';
518
809
  this.family = base_1.CoinFamily.HBAR;
519
- this.explorerUrl = 'https://explorer.kabuto.sh/testnet/transaction/';
810
+ this.explorerUrl = 'https://testnet.dragonglass.me/hedera/search?q=';
520
811
  }
521
812
  }
522
813
  class Litecoin extends Mainnet {
@@ -525,7 +816,7 @@ class Litecoin extends Mainnet {
525
816
  this.name = 'Litecoin';
526
817
  this.family = base_1.CoinFamily.LTC;
527
818
  this.utxolibName = 'litecoin';
528
- this.explorerUrl = 'https://blockchair.com/litecoin/transaction/';
819
+ this.explorerUrl = 'https://litecoinspace.org/tx/';
529
820
  }
530
821
  }
531
822
  class LitecoinTestnet extends Testnet {
@@ -561,6 +852,8 @@ class Rbtc extends Mainnet {
561
852
  this.explorerUrl = 'https://explorer.rsk.co/tx/';
562
853
  this.accountExplorerUrl = 'https://explorer.rsk.co/address/';
563
854
  this.chainId = 30;
855
+ this.nativeCoinOperationHashPrefix = 'RSK';
856
+ this.tokenOperationHashPrefix = 'RSK-ERC20';
564
857
  }
565
858
  }
566
859
  class RbtcTestnet extends Testnet {
@@ -571,6 +864,8 @@ class RbtcTestnet extends Testnet {
571
864
  this.explorerUrl = 'https://explorer.testnet.rsk.co/tx/';
572
865
  this.accountExplorerUrl = 'https://explorer.testnet.rsk.co/address/';
573
866
  this.chainId = 31;
867
+ this.nativeCoinOperationHashPrefix = 'RSK';
868
+ this.tokenOperationHashPrefix = 'RSK-ERC20';
574
869
  }
575
870
  }
576
871
  class Stellar extends Mainnet {
@@ -611,6 +906,7 @@ class Sui extends Mainnet {
611
906
  this.name = 'Sui';
612
907
  this.family = base_1.CoinFamily.SUI;
613
908
  this.explorerUrl = 'https://explorer.sui.io/txblock/?network=mainnet';
909
+ this.accountExplorerUrl = 'https://explorer.sui.io/address/?network=mainnet';
614
910
  }
615
911
  }
616
912
  class SuiTestnet extends Testnet {
@@ -619,6 +915,7 @@ class SuiTestnet extends Testnet {
619
915
  this.name = 'Testnet Sui';
620
916
  this.family = base_1.CoinFamily.SUI;
621
917
  this.explorerUrl = 'https://explorer.sui.io/txblock/?network=testnet';
918
+ this.accountExplorerUrl = 'https://explorer.sui.io/address/?network=testnet';
622
919
  }
623
920
  }
624
921
  class Atom extends Mainnet {
@@ -626,7 +923,7 @@ class Atom extends Mainnet {
626
923
  super(...arguments);
627
924
  this.name = 'Cosmos Hub ATOM';
628
925
  this.family = base_1.CoinFamily.ATOM;
629
- this.explorerUrl = 'https://atomscan.com/transactions/';
926
+ this.explorerUrl = 'https://www.mintscan.io/cosmos/tx/';
630
927
  }
631
928
  }
632
929
  class AtomTestnet extends Testnet {
@@ -634,7 +931,7 @@ class AtomTestnet extends Testnet {
634
931
  super(...arguments);
635
932
  this.name = 'Testnet Cosmos Hub ATOM';
636
933
  this.family = base_1.CoinFamily.ATOM;
637
- this.explorerUrl = 'https://explorer.theta-testnet.polypore.xyz/transactions/';
934
+ this.explorerUrl = 'https://explorer.polypore.xyz/provider/tx/';
638
935
  }
639
936
  }
640
937
  class Osmo extends Mainnet {
@@ -666,7 +963,7 @@ class TiaTestnet extends Testnet {
666
963
  super(...arguments);
667
964
  this.name = 'Testnet Celestia';
668
965
  this.family = base_1.CoinFamily.TIA;
669
- this.explorerUrl = 'https://testnet.mintscan.io/celestia-testnet/txs/';
966
+ this.explorerUrl = 'https://testnet.celestia.explorers.guru/transaction/';
670
967
  }
671
968
  }
672
969
  class Hash extends Mainnet {
@@ -706,8 +1003,7 @@ class Sei extends Mainnet {
706
1003
  super(...arguments);
707
1004
  this.name = 'Sei';
708
1005
  this.family = base_1.CoinFamily.SEI;
709
- // TODO(BG-78997): Sei is still only in testnet update to mainnet url when it's live
710
- this.explorerUrl = 'https://sei.explorers.guru/transaction/';
1006
+ this.explorerUrl = 'https://seitrace.com/tx/';
711
1007
  }
712
1008
  }
713
1009
  class SeiTestnet extends Testnet {
@@ -715,7 +1011,7 @@ class SeiTestnet extends Testnet {
715
1011
  super(...arguments);
716
1012
  this.name = 'Testnet Sei';
717
1013
  this.family = base_1.CoinFamily.SEI;
718
- this.explorerUrl = 'https://www.seiscan.app/atlantic-2/txs/';
1014
+ this.explorerUrl = 'https://testnet.seitrace.com/tx/';
719
1015
  }
720
1016
  }
721
1017
  class Zeta extends Mainnet {
@@ -723,8 +1019,7 @@ class Zeta extends Mainnet {
723
1019
  super(...arguments);
724
1020
  this.name = 'Zeta';
725
1021
  this.family = base_1.CoinFamily.ZETA;
726
- // TODO(WIN-142): Zeta is still only in testnet update to mainnet url when it's live
727
- this.explorerUrl = 'https://explorer.zetachain.com/cc/tx/';
1022
+ this.explorerUrl = 'https://explorer.zetachain.com/cosmos/tx/';
728
1023
  }
729
1024
  }
730
1025
  class ZetaTestnet extends Testnet {
@@ -732,7 +1027,7 @@ class ZetaTestnet extends Testnet {
732
1027
  super(...arguments);
733
1028
  this.name = 'Testnet Zeta';
734
1029
  this.family = base_1.CoinFamily.ZETA;
735
- this.explorerUrl = 'https://explorer.zetachain.com/cosmos/tx/';
1030
+ this.explorerUrl = 'https://athens.explorer.zetachain.com/cosmos/tx/';
736
1031
  }
737
1032
  }
738
1033
  class Injective extends Mainnet {
@@ -740,7 +1035,7 @@ class Injective extends Mainnet {
740
1035
  super(...arguments);
741
1036
  this.name = 'Injective';
742
1037
  this.family = base_1.CoinFamily.INJECTIVE;
743
- this.explorerUrl = 'https://explorer.injective.network/transaction/';
1038
+ this.explorerUrl = 'https://www.mintscan.io/injective/tx/';
744
1039
  }
745
1040
  }
746
1041
  class InjectiveTestnet extends Testnet {
@@ -751,20 +1046,60 @@ class InjectiveTestnet extends Testnet {
751
1046
  this.explorerUrl = 'https://testnet.explorer.injective.network/transaction/';
752
1047
  }
753
1048
  }
754
- class Kava extends Mainnet {
1049
+ class KavaCosmos extends Mainnet {
1050
+ constructor() {
1051
+ super(...arguments);
1052
+ this.name = 'KavaCosmos';
1053
+ this.family = base_1.CoinFamily.KAVACOSMOS;
1054
+ this.explorerUrl = 'https://www.mintscan.io/kava/tx/';
1055
+ this.addressPrefix = 'kava';
1056
+ this.validatorPrefix = 'kavavaloper';
1057
+ this.denom = 'ukava';
1058
+ this.gasAmount = '5000';
1059
+ this.gasLimit = 200000;
1060
+ this.validDenoms = ['kava', 'ukava'];
1061
+ }
1062
+ }
1063
+ class KavaCosmosTestnet extends Testnet {
1064
+ constructor() {
1065
+ super(...arguments);
1066
+ this.name = 'KavaCosmosTestnet';
1067
+ this.family = base_1.CoinFamily.KAVACOSMOS;
1068
+ this.explorerUrl = 'https://www.mintscan.io/kava-testnet/tx/';
1069
+ this.addressPrefix = 'kava';
1070
+ this.validatorPrefix = 'kavavaloper';
1071
+ this.denom = 'ukava';
1072
+ this.gasAmount = '5000';
1073
+ this.gasLimit = 200000;
1074
+ this.validDenoms = ['kava', 'ukava'];
1075
+ }
1076
+ }
1077
+ class Dydx extends Mainnet {
755
1078
  constructor() {
756
1079
  super(...arguments);
757
- this.name = 'Kava';
758
- this.family = base_1.CoinFamily.KAVA;
759
- this.explorerUrl = 'https://www.mintscan.io/kava/transactions/';
1080
+ this.name = 'Dydx';
1081
+ this.family = base_1.CoinFamily.DYDX;
1082
+ this.explorerUrl = 'https://www.mintscan.io/dydx/tx/';
1083
+ this.addressPrefix = 'dydx';
1084
+ this.validatorPrefix = 'dydxvaloper';
1085
+ this.denom = 'adydx';
1086
+ this.gasAmount = '5000000000000000';
1087
+ this.gasLimit = 200000;
1088
+ this.validDenoms = ['adydx'];
760
1089
  }
761
1090
  }
762
- class KavaTestnet extends Testnet {
1091
+ class DydxTestnet extends Testnet {
763
1092
  constructor() {
764
1093
  super(...arguments);
765
- this.name = 'KavaTestnet';
766
- this.family = base_1.CoinFamily.KAVA;
767
- this.explorerUrl = 'https://testnet.mintscan.io/kava-testnet/txs/';
1094
+ this.name = 'DydxTestnet';
1095
+ this.family = base_1.CoinFamily.DYDX;
1096
+ this.explorerUrl = 'https://www.mintscan.io/dydx-testnet/tx/';
1097
+ this.addressPrefix = 'dydx';
1098
+ this.validatorPrefix = 'dydxvaloper';
1099
+ this.denom = 'adv4tnt';
1100
+ this.gasAmount = '5000000000000000';
1101
+ this.gasLimit = 200000;
1102
+ this.validDenoms = ['adv4tnt'];
768
1103
  }
769
1104
  }
770
1105
  class Ton extends Mainnet {
@@ -772,7 +1107,7 @@ class Ton extends Mainnet {
772
1107
  super(...arguments);
773
1108
  this.name = 'Ton';
774
1109
  this.family = base_1.CoinFamily.TON;
775
- this.explorerUrl = 'https://https://tonscan.org/';
1110
+ this.explorerUrl = 'https://tonscan.org/tx/';
776
1111
  }
777
1112
  }
778
1113
  class TonTestnet extends Testnet {
@@ -780,39 +1115,147 @@ class TonTestnet extends Testnet {
780
1115
  super(...arguments);
781
1116
  this.name = 'Testnet Ton';
782
1117
  this.family = base_1.CoinFamily.TON;
783
- this.explorerUrl = 'https://https://testnet.tonscan.org/';
1118
+ this.explorerUrl = 'https://testnet.tonscan.org/tx/';
784
1119
  }
785
1120
  }
786
1121
  class Coreum extends Mainnet {
787
1122
  constructor() {
788
1123
  super(...arguments);
789
- this.name = 'Coreum';
1124
+ this.name = 'TX';
790
1125
  this.family = base_1.CoinFamily.COREUM;
791
- this.explorerUrl = 'https://explorer.coreum.com/coreum/transactions/';
1126
+ this.explorerUrl = 'https://explorer.tx.org/tx/transactions/';
792
1127
  }
793
1128
  }
794
1129
  class CoreumTestnet extends Testnet {
795
1130
  constructor() {
796
1131
  super(...arguments);
797
- this.name = 'CoreumTestnet';
1132
+ this.name = 'Testnet TX';
798
1133
  this.family = base_1.CoinFamily.COREUM;
799
- this.explorerUrl = 'https://explorer.testnet-1.coreum.dev/coreum/transactions/';
1134
+ this.explorerUrl = 'https://explorer.testnet-1.tx.org/tx/transactions/';
800
1135
  }
801
1136
  }
802
- class Bera extends Mainnet {
1137
+ class Rune extends Mainnet {
803
1138
  constructor() {
804
1139
  super(...arguments);
805
- this.name = 'Berachain';
806
- this.family = base_1.CoinFamily.BERA;
807
- this.explorerUrl = undefined;
1140
+ this.name = 'Rune';
1141
+ this.family = base_1.CoinFamily.THOR;
1142
+ this.explorerUrl = 'https://runescan.io/tx/';
808
1143
  }
809
1144
  }
810
- class BeraTestnet extends Testnet {
1145
+ class RuneTestNet extends Testnet {
811
1146
  constructor() {
812
1147
  super(...arguments);
813
- this.name = 'BerachainTestnet';
814
- this.family = base_1.CoinFamily.BERA;
815
- this.explorerUrl = undefined;
1148
+ this.name = 'RuneTestNet';
1149
+ this.family = base_1.CoinFamily.THOR;
1150
+ this.explorerUrl = 'https://runescan.io/tx/?network=stagenet';
1151
+ }
1152
+ }
1153
+ class Baby extends Mainnet {
1154
+ constructor() {
1155
+ super(...arguments);
1156
+ this.name = 'Babylon';
1157
+ this.family = base_1.CoinFamily.BABY;
1158
+ this.explorerUrl = 'https://babylon.explorers.guru/transaction/';
1159
+ }
1160
+ }
1161
+ class BabyTestnet extends Testnet {
1162
+ constructor() {
1163
+ super(...arguments);
1164
+ this.name = 'Testnet Babylon';
1165
+ this.family = base_1.CoinFamily.BABY;
1166
+ this.explorerUrl = 'https://testnet.babylon.explorers.guru/transaction/';
1167
+ }
1168
+ }
1169
+ class Mantra extends Mainnet {
1170
+ constructor() {
1171
+ super(...arguments);
1172
+ this.name = 'Mantra';
1173
+ this.family = base_1.CoinFamily.MANTRA;
1174
+ this.explorerUrl = 'https://explorer.mantrachain.io/MANTRA-1/tx/';
1175
+ this.addressPrefix = 'mantra';
1176
+ this.validatorPrefix = 'mantravaloper';
1177
+ this.denom = 'uom';
1178
+ this.gasAmount = '8000';
1179
+ this.gasLimit = 200000;
1180
+ this.validDenoms = ['om', 'uom'];
1181
+ }
1182
+ }
1183
+ class MantraTestnet extends Testnet {
1184
+ constructor() {
1185
+ super(...arguments);
1186
+ this.name = 'Testnet Mantra';
1187
+ this.family = base_1.CoinFamily.MANTRA;
1188
+ this.explorerUrl = 'https://explorer.mantrachain.io/MANTRA-Dukong/tx/';
1189
+ this.addressPrefix = 'mantra';
1190
+ this.validatorPrefix = 'mantravaloper';
1191
+ this.denom = 'uom';
1192
+ this.gasAmount = '8000';
1193
+ this.gasLimit = 200000;
1194
+ this.validDenoms = ['om', 'uom'];
1195
+ }
1196
+ }
1197
+ class Cronos extends Mainnet {
1198
+ constructor() {
1199
+ super(...arguments);
1200
+ this.name = 'Cronos POS';
1201
+ this.family = base_1.CoinFamily.CRONOS;
1202
+ this.explorerUrl = 'https://cronos-pos.org/explorer/tx/';
1203
+ }
1204
+ }
1205
+ class CronosTestnet extends Testnet {
1206
+ constructor() {
1207
+ super(...arguments);
1208
+ this.name = 'Testnet Cronos POS';
1209
+ this.family = base_1.CoinFamily.CRONOS;
1210
+ this.explorerUrl = 'https://cronos-pos.org/explorer/croeseid4/tx/';
1211
+ }
1212
+ }
1213
+ class FetchAi extends Mainnet {
1214
+ constructor() {
1215
+ super(...arguments);
1216
+ this.name = 'Fetch';
1217
+ this.family = base_1.CoinFamily.FETCHAI;
1218
+ this.explorerUrl = 'https://www.mintscan.io/fetchai';
1219
+ }
1220
+ }
1221
+ class FetchAiTestnet extends Testnet {
1222
+ constructor() {
1223
+ super(...arguments);
1224
+ this.name = 'Testnet Fetch';
1225
+ this.family = base_1.CoinFamily.FETCHAI;
1226
+ this.explorerUrl = 'https://explore-eridanus-1.fetch.ai/';
1227
+ }
1228
+ }
1229
+ class Initia extends Mainnet {
1230
+ constructor() {
1231
+ super(...arguments);
1232
+ this.name = 'Initia';
1233
+ this.family = base_1.CoinFamily.INITIA;
1234
+ this.explorerUrl = 'https://scan.initia.xyz/interwoven-1/txs/';
1235
+ }
1236
+ }
1237
+ class InitiaTestnet extends Testnet {
1238
+ constructor() {
1239
+ super(...arguments);
1240
+ this.name = 'Testnet Initia';
1241
+ this.family = base_1.CoinFamily.INITIA;
1242
+ this.explorerUrl = 'https://scan.testnet.initia.xyz/initiation-2/txs/';
1243
+ }
1244
+ }
1245
+ class Asi extends Mainnet {
1246
+ constructor() {
1247
+ super(...arguments);
1248
+ this.name = 'Fetch Native';
1249
+ this.family = base_1.CoinFamily.ASI;
1250
+ this.explorerUrl = 'https://companion.fetch.ai/fetchhub-4/transactions/';
1251
+ }
1252
+ }
1253
+ class AsiTestnet extends Testnet {
1254
+ constructor() {
1255
+ super(...arguments);
1256
+ this.name = 'Testnet Fetch Native';
1257
+ this.family = base_1.CoinFamily.ASI;
1258
+ this.explorerUrl = 'https://companion.fetch.ai/dorado-1/transactions/';
816
1259
  }
817
1260
  }
818
1261
  class Islm extends Mainnet {
@@ -836,7 +1279,7 @@ class Stx extends Mainnet {
836
1279
  super(...arguments);
837
1280
  this.name = 'Stx';
838
1281
  this.family = base_1.CoinFamily.STX;
839
- this.explorerUrl = 'https://explorer.stacks.co/txid/';
1282
+ this.explorerUrl = 'https://explorer.hiro.so/txid/';
840
1283
  this.sendmanymemoContractAddress = 'SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE';
841
1284
  this.stakingContractAddress = 'SP000000000000000000002Q6VF78';
842
1285
  }
@@ -846,7 +1289,7 @@ class StxTestnet extends Testnet {
846
1289
  super(...arguments);
847
1290
  this.name = 'StxTestnet';
848
1291
  this.family = base_1.CoinFamily.STX;
849
- this.explorerUrl = 'https://explorer.stacks.co/txid/?chain=testnet';
1292
+ this.explorerUrl = 'https://explorer.hiro.so/txid/?chain=testnet';
850
1293
  this.sendmanymemoContractAddress = 'ST3F1X4QGV2SM8XD96X45M6RTQXKA1PZJZZCQAB4B';
851
1294
  this.stakingContractAddress = 'ST000000000000000000002AMW42H';
852
1295
  }
@@ -883,11 +1326,33 @@ class Fiat extends Mainnet {
883
1326
  this.explorerUrl = undefined;
884
1327
  }
885
1328
  }
1329
+ class Bittensor extends Mainnet {
1330
+ constructor() {
1331
+ super(...arguments);
1332
+ this.name = 'Tao';
1333
+ this.family = base_1.CoinFamily.TAO;
1334
+ this.explorerUrl = 'https://taostats.io/extrinsic/';
1335
+ }
1336
+ }
1337
+ class BittensorTestnet extends Testnet {
1338
+ constructor() {
1339
+ super(...arguments);
1340
+ this.name = 'Testnet Tao';
1341
+ this.family = base_1.CoinFamily.TAO;
1342
+ this.explorerUrl = 'https://explorer.finney.opentensor.ai/#/';
1343
+ this.specName = 'node-subtensor';
1344
+ this.genesisHash = '0x8f9cf856bf558a14440e75569c9e58594757048d7b3a84b5d25f6bd978263105';
1345
+ this.specVersion = 224;
1346
+ this.chainName = 'bittensor';
1347
+ this.txVersion = 1;
1348
+ }
1349
+ }
886
1350
  class Trx extends Mainnet {
887
1351
  constructor() {
888
1352
  super(...arguments);
889
1353
  this.name = 'Trx';
890
1354
  this.family = base_1.CoinFamily.TRX;
1355
+ this.accountExplorerUrl = 'https://tronscan.org/#/address/';
891
1356
  this.explorerUrl = 'https://tronscan.org/#/transaction/';
892
1357
  this.maxFeeLimit = '5000000000';
893
1358
  this.contractCallFeeLimit = '100000000';
@@ -898,6 +1363,7 @@ class TrxTestnet extends Testnet {
898
1363
  super(...arguments);
899
1364
  this.name = 'TrxTestnet';
900
1365
  this.family = base_1.CoinFamily.TRX;
1366
+ this.accountExplorerUrl = 'https://shasta.tronscan.org/#/address/';
901
1367
  this.explorerUrl = 'https://shasta.tronscan.org/#/transaction/';
902
1368
  this.maxFeeLimit = '5000000000';
903
1369
  this.contractCallFeeLimit = '100000000';
@@ -916,7 +1382,7 @@ class XrpTestnet extends Testnet {
916
1382
  super(...arguments);
917
1383
  this.name = 'XrpTestnet';
918
1384
  this.family = base_1.CoinFamily.XRP;
919
- this.explorerUrl = 'https://test.bithomp.com/explorer/';
1385
+ this.explorerUrl = 'https://test.xrplexplorer.com/explorer/';
920
1386
  }
921
1387
  }
922
1388
  class Xtz extends Mainnet {
@@ -925,6 +1391,7 @@ class Xtz extends Mainnet {
925
1391
  this.name = 'Xtz';
926
1392
  this.family = base_1.CoinFamily.XTZ;
927
1393
  this.explorerUrl = 'https://tzstats.com/';
1394
+ this.accountExplorerUrl = 'https://tzstats.com/';
928
1395
  }
929
1396
  }
930
1397
  class XtzTestnet extends Testnet {
@@ -932,7 +1399,8 @@ class XtzTestnet extends Testnet {
932
1399
  super(...arguments);
933
1400
  this.name = 'XtzTestnet';
934
1401
  this.family = base_1.CoinFamily.XTZ;
935
- this.explorerUrl = 'https://mumbai.tzstats.com/';
1402
+ this.explorerUrl = 'https://ghostnet.tzkt.io/';
1403
+ this.accountExplorerUrl = 'https://ghostnet.tzkt.io/';
936
1404
  }
937
1405
  }
938
1406
  class ZCash extends Mainnet {
@@ -941,7 +1409,7 @@ class ZCash extends Mainnet {
941
1409
  this.name = 'ZCash';
942
1410
  this.family = base_1.CoinFamily.ZEC;
943
1411
  this.utxolibName = 'zcash';
944
- this.explorerUrl = 'https://chain.so/tx/ZEC/';
1412
+ this.explorerUrl = 'https://mainnet.zcashexplorer.app/transactions/';
945
1413
  }
946
1414
  }
947
1415
  class ZCashTestnet extends Testnet {
@@ -950,7 +1418,7 @@ class ZCashTestnet extends Testnet {
950
1418
  this.name = 'ZCashTestnet';
951
1419
  this.family = base_1.CoinFamily.ZEC;
952
1420
  this.utxolibName = 'zcashTest';
953
- this.explorerUrl = 'https://chain.so/tx/ZECTEST/';
1421
+ this.explorerUrl = 'https://testnet.zcashexplorer.app/transactions/';
954
1422
  }
955
1423
  }
956
1424
  class Near extends Mainnet {
@@ -958,7 +1426,7 @@ class Near extends Mainnet {
958
1426
  super(...arguments);
959
1427
  this.name = 'Near';
960
1428
  this.family = base_1.CoinFamily.NEAR;
961
- this.explorerUrl = 'https://explorer.near.org/transactions/';
1429
+ this.explorerUrl = 'https://nearblocks.io/txns/';
962
1430
  this.feeReserve = '50000000000000000000000';
963
1431
  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
964
1432
  }
@@ -968,7 +1436,7 @@ class NearTestnet extends Testnet {
968
1436
  super(...arguments);
969
1437
  this.name = 'NearTestnet';
970
1438
  this.family = base_1.CoinFamily.NEAR;
971
- this.explorerUrl = 'https://explorer.testnet.near.org/transactions/';
1439
+ this.explorerUrl = 'https://testnet.nearblocks.io/txns/';
972
1440
  this.feeReserve = '50000000000000000000000';
973
1441
  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
974
1442
  }
@@ -985,7 +1453,11 @@ class Polygon extends Mainnet {
985
1453
  this.forwarderImplementationAddress = '0x5397d0869aba0d55e96d5716d383f6e1d8695ed7';
986
1454
  this.walletFactoryAddress = '0xa7198f48c58e91f01317e70cd24c5cce475c1555';
987
1455
  this.walletImplementationAddress = '0xe5dcdc13b628c2df813db1080367e929c1507ca0';
988
- this.batcherContractAddress = '0x7adc9b3d7521710321bec7dd6897d337e53c2493';
1456
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1457
+ this.nativeCoinOperationHashPrefix = 'POLYGON';
1458
+ this.tokenOperationHashPrefix = 'POLYGON-ERC20';
1459
+ this.walletV4ForwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1460
+ this.walletV4ForwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
989
1461
  }
990
1462
  }
991
1463
  class PolygonTestnet extends Testnet {
@@ -993,14 +1465,18 @@ class PolygonTestnet extends Testnet {
993
1465
  super(...arguments);
994
1466
  this.name = 'PolygonTestnet';
995
1467
  this.family = base_1.CoinFamily.POLYGON;
996
- this.explorerUrl = 'https://mumbai.polygonscan.com/tx/';
997
- this.accountExplorerUrl = 'https://mumbai.polygonscan.com/address/';
998
- this.chainId = 80001;
999
- this.forwarderFactoryAddress = '0x7d10cfdcb763375fb5f0a0e9101f490f0bf1b43a';
1000
- this.forwarderImplementationAddress = '0xaa2216d72d7c149dfe4c3dd2154cd00994216506';
1001
- this.walletFactoryAddress = '0xe37c07faec87be075ce4002b5fedbde00a4fe9d5';
1002
- this.walletImplementationAddress = '0x11f8d70a4ee9d0962bb1160d776d4a996cfdff40';
1003
- this.batcherContractAddress = '0xcdf01a31ea2a1d62951aac3a5743c4416f9da3fb';
1468
+ this.explorerUrl = 'https://amoy.polygonscan.com/tx/';
1469
+ this.accountExplorerUrl = 'https://amoy.polygonscan.com/address/';
1470
+ this.chainId = 80002;
1471
+ this.forwarderFactoryAddress = '0x23223fd7cfc5f34b20f38ebb9a489e1ff3c084d1';
1472
+ this.forwarderImplementationAddress = '0xd4c24325b5ef514fbb1ecc76a9bb4dcb57a8341e';
1473
+ this.walletFactoryAddress = '0xe9c16033e01bf9f94bf9f99fc0fefcfb8b124992';
1474
+ this.walletImplementationAddress = '0xf8360c213e4f44cce03e48cb9281254de2a7a566';
1475
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1476
+ this.nativeCoinOperationHashPrefix = 'POLYGON';
1477
+ this.tokenOperationHashPrefix = 'POLYGON-ERC20';
1478
+ this.walletV4ForwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1479
+ this.walletV4ForwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1004
1480
  }
1005
1481
  }
1006
1482
  class Optimism extends Mainnet {
@@ -1008,9 +1484,18 @@ class Optimism extends Mainnet {
1008
1484
  super(...arguments);
1009
1485
  this.name = 'Optimism';
1010
1486
  this.family = base_1.CoinFamily.OPETH;
1011
- this.explorerUrl = 'https://optimistic.etherscan.io/ tx/';
1487
+ this.explorerUrl = 'https://optimistic.etherscan.io/tx/';
1012
1488
  this.accountExplorerUrl = 'https://optimistic.etherscan.io/address/';
1013
1489
  this.chainId = 10;
1490
+ this.nativeCoinOperationHashPrefix = '10';
1491
+ this.tokenOperationHashPrefix = '10-ERC20';
1492
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1493
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1494
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
1495
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
1496
+ this.walletV4ForwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1497
+ this.walletV4ForwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1498
+ this.batcherContractAddress = '0xebe27913fcc7510eadf10643a8f86bf5492a9541';
1014
1499
  }
1015
1500
  }
1016
1501
  class OptimismTestnet extends Testnet {
@@ -1018,32 +1503,1393 @@ class OptimismTestnet extends Testnet {
1018
1503
  super(...arguments);
1019
1504
  this.name = 'OptimismTestnet';
1020
1505
  this.family = base_1.CoinFamily.OPETH;
1021
- this.explorerUrl = 'https://optimism-sepolia.blockscout.com/tx/';
1022
- this.accountExplorerUrl = 'https://optimism-sepolia.blockscout.com/address/';
1506
+ this.explorerUrl = 'https://sepolia-optimism.etherscan.io/tx/';
1507
+ this.accountExplorerUrl = 'https://sepolia-optimism.etherscan.io/address/';
1023
1508
  this.chainId = 11155420;
1509
+ this.nativeCoinOperationHashPrefix = '11155420';
1510
+ this.tokenOperationHashPrefix = '11155420-ERC20';
1511
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1512
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1513
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
1514
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
1515
+ this.walletV4ForwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1516
+ this.walletV4ForwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1517
+ this.batcherContractAddress = '0xebe27913fcc7510eadf10643a8f86bf5492a9541';
1518
+ }
1519
+ }
1520
+ class ZkSync extends Mainnet {
1521
+ constructor() {
1522
+ super(...arguments);
1523
+ this.name = 'ZkSync';
1524
+ this.family = base_1.CoinFamily.ZKETH;
1525
+ this.explorerUrl = 'https://explorer.zksync.io/tx/';
1526
+ this.accountExplorerUrl = 'https://explorer.zksync.io/address/';
1527
+ this.chainId = 324;
1528
+ this.nativeCoinOperationHashPrefix = '324';
1529
+ this.tokenOperationHashPrefix = '324-ERC20';
1530
+ }
1531
+ }
1532
+ class ZkSyncTestnet extends Testnet {
1533
+ constructor() {
1534
+ super(...arguments);
1535
+ this.name = 'ZkSyncTestnet';
1536
+ this.family = base_1.CoinFamily.ZKETH;
1537
+ this.explorerUrl = 'https://sepolia.explorer.zksync.io/tx/';
1538
+ this.accountExplorerUrl = 'https://sepolia.explorer.zksync.io/address/';
1539
+ this.chainId = 300;
1540
+ this.nativeCoinOperationHashPrefix = '300';
1541
+ this.tokenOperationHashPrefix = '300-ERC20';
1542
+ this.forwarderFactoryAddress = '0xdd498702f44c4da08eb9e08d3f015eefe5cb71fc';
1543
+ this.forwarderImplementationAddress = '0xbe69cae311191fb45e648ed20847f06fad2dbab4';
1544
+ this.walletV4ForwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1545
+ this.walletV4ForwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1546
+ this.walletFactoryAddress = '0x4550e1e7616d3364877fc6c9324938dab678621a';
1547
+ this.walletImplementationAddress = '0x92db2759d1dca129a0d9d46877f361be819184c4';
1548
+ }
1549
+ }
1550
+ class ZkSyncEra extends Mainnet {
1551
+ constructor() {
1552
+ super(...arguments);
1553
+ this.name = 'ZkSyncEra';
1554
+ this.family = base_1.CoinFamily.ZKSYNCERA;
1555
+ this.explorerUrl = 'https://explorer.zksync.io/tx/';
1556
+ this.accountExplorerUrl = 'https://explorer.zksync.io/address/';
1557
+ this.chainId = 324;
1558
+ this.nativeCoinOperationHashPrefix = '324';
1559
+ this.tokenOperationHashPrefix = '324-ERC20';
1560
+ }
1561
+ }
1562
+ class ZkSyncEraTestnet extends Testnet {
1563
+ constructor() {
1564
+ super(...arguments);
1565
+ this.name = 'ZkSyncEraTestnet';
1566
+ this.family = base_1.CoinFamily.ZKSYNCERA;
1567
+ this.explorerUrl = 'https://sepolia.explorer.zksync.io/tx/';
1568
+ this.accountExplorerUrl = 'https://sepolia.explorer.zksync.io/address/';
1569
+ this.chainId = 300;
1570
+ this.nativeCoinOperationHashPrefix = '300';
1571
+ this.tokenOperationHashPrefix = '300-ERC20';
1572
+ this.forwarderFactoryAddress = '0xdd498702f44c4da08eb9e08d3f015eefe5cb71fc';
1573
+ this.forwarderImplementationAddress = '0xbe69cae311191fb45e648ed20847f06fad2dbab4';
1574
+ this.walletV4ForwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1575
+ this.walletV4ForwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1576
+ this.walletFactoryAddress = '0x4550e1e7616d3364877fc6c9324938dab678621a';
1577
+ this.walletImplementationAddress = '0x92db2759d1dca129a0d9d46877f361be819184c4';
1578
+ }
1579
+ }
1580
+ class Berachain extends Mainnet {
1581
+ constructor() {
1582
+ super(...arguments);
1583
+ this.name = 'Bera';
1584
+ this.family = base_1.CoinFamily.BERA;
1585
+ this.explorerUrl = 'https://berascan.com/tx/';
1586
+ this.accountExplorerUrl = 'https://berascan.com/address/';
1587
+ this.chainId = 80094;
1588
+ this.nativeCoinOperationHashPrefix = '80094';
1589
+ this.tokenOperationHashPrefix = '80094-ERC20';
1590
+ this.batcherContractAddress = '0xedf1a0016d9c41d2ad0c275e1ba708361a90c0d1';
1591
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1592
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1593
+ }
1594
+ }
1595
+ class BerachainTestnet extends Testnet {
1596
+ constructor() {
1597
+ super(...arguments);
1598
+ this.name = 'BeraTestnet';
1599
+ this.family = base_1.CoinFamily.BERA;
1600
+ this.explorerUrl = 'https://testnet.berascan.com/tx/';
1601
+ this.accountExplorerUrl = 'https://testnet.berascan.com/address/';
1602
+ this.chainId = 80069;
1603
+ this.nativeCoinOperationHashPrefix = '80069';
1604
+ this.tokenOperationHashPrefix = '80069-ERC20';
1605
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1606
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1607
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1608
+ }
1609
+ }
1610
+ class Oas extends Mainnet {
1611
+ constructor() {
1612
+ super(...arguments);
1613
+ this.name = 'Oas';
1614
+ this.family = base_1.CoinFamily.OAS;
1615
+ this.explorerUrl = 'https://explorer.oasys.games/tx/';
1616
+ this.accountExplorerUrl = 'https://explorer.oasys.games/address/';
1617
+ this.chainId = 248;
1618
+ this.nativeCoinOperationHashPrefix = '248';
1619
+ this.batcherContractAddress = '0xedf1a0016d9c41d2ad0c275e1ba708361a90c0d1';
1620
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1621
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1622
+ }
1623
+ }
1624
+ class OasTestnet extends Testnet {
1625
+ constructor() {
1626
+ super(...arguments);
1627
+ this.name = 'OasTestnet';
1628
+ this.family = base_1.CoinFamily.OAS;
1629
+ this.explorerUrl = 'https://explorer.testnet.oasys.games/tx/';
1630
+ this.accountExplorerUrl = 'https://explorer.testnet.oasys.games/address/';
1631
+ this.chainId = 9372;
1632
+ this.nativeCoinOperationHashPrefix = '9372';
1633
+ this.batcherContractAddress = '0xedf1a0016d9c41d2ad0c275e1ba708361a90c0d1';
1634
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1635
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1636
+ }
1637
+ }
1638
+ class Coredao extends Mainnet {
1639
+ constructor() {
1640
+ super(...arguments);
1641
+ this.name = 'Coredao';
1642
+ this.family = base_1.CoinFamily.COREDAO;
1643
+ this.explorerUrl = 'https://scan.coredao.org/tx/';
1644
+ this.accountExplorerUrl = 'https://scan.coredao.org/address/';
1645
+ this.chainId = 1116;
1646
+ this.nativeCoinOperationHashPrefix = '1116';
1647
+ this.batcherContractAddress = '0xc5d7a3b4c490c6242fb28f20e5fe33cd983372a3';
1648
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1649
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1650
+ }
1651
+ }
1652
+ class CoredaoTestnet extends Testnet {
1653
+ constructor() {
1654
+ super(...arguments);
1655
+ this.name = 'CoredaoTestnet';
1656
+ this.family = base_1.CoinFamily.COREDAO;
1657
+ this.explorerUrl = 'https://scan.test2.btcs.network/tx/';
1658
+ this.accountExplorerUrl = 'https://scan.test2.btcs.network/address/';
1659
+ this.chainId = 1114;
1660
+ this.nativeCoinOperationHashPrefix = '1114';
1661
+ this.batcherContractAddress = '0xc5d7a3b4c490c6242fb28f20e5fe33cd983372a3';
1662
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1663
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1664
+ }
1665
+ }
1666
+ class IP extends Mainnet {
1667
+ constructor() {
1668
+ super(...arguments);
1669
+ this.name = 'Story';
1670
+ this.family = base_1.CoinFamily.IP;
1671
+ this.explorerUrl = 'https://www.storyscan.io/tx/';
1672
+ this.accountExplorerUrl = 'https://www.storyscan.io/address/';
1673
+ this.chainId = 1514;
1674
+ this.nativeCoinOperationHashPrefix = '1514';
1675
+ }
1676
+ }
1677
+ class IPTestnet extends Testnet {
1678
+ constructor() {
1679
+ super(...arguments);
1680
+ this.name = 'StoryTestnet';
1681
+ this.family = base_1.CoinFamily.IP;
1682
+ this.explorerUrl = 'https://aeneid.explorer.story.foundation/tx/';
1683
+ this.accountExplorerUrl = 'https://aeneid.storyscan.io/address/';
1684
+ this.chainId = 1315;
1685
+ this.nativeCoinOperationHashPrefix = '1315';
1686
+ }
1687
+ }
1688
+ class ApeChain extends Mainnet {
1689
+ constructor() {
1690
+ super(...arguments);
1691
+ this.name = 'ApeChain';
1692
+ this.family = base_1.CoinFamily.APECHAIN;
1693
+ this.explorerUrl = 'https://apescan.io/tx/';
1694
+ this.accountExplorerUrl = 'https://apescan.io/address/';
1695
+ this.chainId = 33139;
1696
+ this.nativeCoinOperationHashPrefix = '33139';
1697
+ }
1698
+ }
1699
+ class ApeChainTestnet extends Testnet {
1700
+ constructor() {
1701
+ super(...arguments);
1702
+ this.name = 'ApeChainTestnet';
1703
+ this.family = base_1.CoinFamily.APECHAIN;
1704
+ this.explorerUrl = 'https://curtis.apescan.io/tx/';
1705
+ this.accountExplorerUrl = 'https://curtis.apescan.io/address/';
1706
+ this.chainId = 33111;
1707
+ this.nativeCoinOperationHashPrefix = '33111';
1708
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1709
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1710
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
1711
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
1712
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1713
+ }
1714
+ }
1715
+ class Pharos extends Mainnet {
1716
+ constructor() {
1717
+ super(...arguments);
1718
+ this.name = 'Pharos';
1719
+ this.family = base_1.CoinFamily.PHRS;
1720
+ this.explorerUrl = ''; // TODO: WIN-5787 Add mainnet url when available
1721
+ this.accountExplorerUrl = ''; // TODO: WIN-5787 Add mainnet url when available
1722
+ this.chainId = 688688; // TODO: WIN-5787 Add mainnet id when available
1723
+ this.nativeCoinOperationHashPrefix = '688688';
1724
+ }
1725
+ }
1726
+ class PharosTestnet extends Testnet {
1727
+ constructor() {
1728
+ super(...arguments);
1729
+ this.name = 'PharosTestnet';
1730
+ this.family = base_1.CoinFamily.PHRS;
1731
+ this.explorerUrl = 'https://atlantic.pharosscan.xyz/tx/';
1732
+ this.accountExplorerUrl = 'https://atlantic.pharosscan.xyz/address/';
1733
+ this.chainId = 688689;
1734
+ this.nativeCoinOperationHashPrefix = '688689';
1735
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1736
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1737
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
1738
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
1739
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1740
+ }
1741
+ }
1742
+ class Creditcoin extends Mainnet {
1743
+ constructor() {
1744
+ super(...arguments);
1745
+ this.name = 'Creditcoin';
1746
+ this.family = base_1.CoinFamily.CTC;
1747
+ this.explorerUrl = 'https://creditcoin.blockscout.com/tx/';
1748
+ this.accountExplorerUrl = 'https://creditcoin.blockscout.com/address/';
1749
+ this.chainId = 102030;
1750
+ this.nativeCoinOperationHashPrefix = '102030';
1751
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1752
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1753
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
1754
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
1755
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1756
+ }
1757
+ }
1758
+ class Plasma extends Mainnet {
1759
+ constructor() {
1760
+ super(...arguments);
1761
+ this.name = 'Plasma';
1762
+ this.family = base_1.CoinFamily.XPL;
1763
+ this.explorerUrl = 'https://plasmascan.to/tx/';
1764
+ this.accountExplorerUrl = 'https://plasmascan.to/address/';
1765
+ this.chainId = 9745;
1766
+ this.nativeCoinOperationHashPrefix = '9745';
1767
+ }
1768
+ }
1769
+ class PlasmaTestnet extends Testnet {
1770
+ constructor() {
1771
+ super(...arguments);
1772
+ this.name = 'PlasmaTestnet';
1773
+ this.family = base_1.CoinFamily.XPL;
1774
+ this.explorerUrl = 'https://testnet.plasmascan.to/tx/';
1775
+ this.accountExplorerUrl = 'https://testnet.plasmascan.to/address/';
1776
+ this.chainId = 9746;
1777
+ this.nativeCoinOperationHashPrefix = '9746';
1778
+ }
1779
+ }
1780
+ class HypeEVMTestnet extends Testnet {
1781
+ constructor() {
1782
+ super(...arguments);
1783
+ this.name = 'HyperliquidEVMTestnet';
1784
+ this.family = base_1.CoinFamily.HYPEEVM;
1785
+ this.explorerUrl = 'https://testnet.purrsec.com/tx/';
1786
+ this.accountExplorerUrl = 'https://testnet.purrsec.com/address/';
1787
+ this.chainId = 998;
1788
+ this.nativeCoinOperationHashPrefix = '998';
1789
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1790
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1791
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
1792
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
1793
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1794
+ }
1795
+ }
1796
+ class HypeEVM extends Mainnet {
1797
+ constructor() {
1798
+ super(...arguments);
1799
+ this.name = 'HyperliquidEVM';
1800
+ this.family = base_1.CoinFamily.HYPEEVM;
1801
+ this.explorerUrl = 'https://hyperevmscan.io/tx/';
1802
+ this.accountExplorerUrl = 'https://hyperevmscan.io/address/';
1803
+ this.chainId = 999;
1804
+ this.nativeCoinOperationHashPrefix = '999';
1805
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
1806
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
1807
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
1808
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
1809
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
1810
+ }
1811
+ }
1812
+ class KavaEVMTestnet extends Testnet {
1813
+ constructor() {
1814
+ super(...arguments);
1815
+ this.name = 'KavaEVMTestnet';
1816
+ this.family = base_1.CoinFamily.KAVAEVM;
1817
+ this.explorerUrl = 'https://testnet.kavascan.com/tx/';
1818
+ this.accountExplorerUrl = 'https://testnet.kavascan.com/address/';
1819
+ this.chainId = 2221;
1820
+ this.nativeCoinOperationHashPrefix = '2221';
1821
+ }
1822
+ }
1823
+ class KavaEVM extends Mainnet {
1824
+ constructor() {
1825
+ super(...arguments);
1826
+ this.name = 'KavaEVM';
1827
+ this.family = base_1.CoinFamily.KAVAEVM;
1828
+ this.explorerUrl = 'https://kavascan.com/tx/';
1829
+ this.accountExplorerUrl = 'https://kavascan.com/address/';
1830
+ this.chainId = 2222;
1831
+ this.nativeCoinOperationHashPrefix = '2222';
1832
+ }
1833
+ }
1834
+ class LineaETH extends Mainnet {
1835
+ constructor() {
1836
+ super(...arguments);
1837
+ this.name = 'Linea Ethereum Mainnet';
1838
+ this.family = base_1.CoinFamily.LINEAETH;
1839
+ this.explorerUrl = 'https://lineascan.build/tx/';
1840
+ this.accountExplorerUrl = 'https://lineascan.build/address/';
1841
+ this.chainId = 59144;
1842
+ this.nativeCoinOperationHashPrefix = '59144';
1843
+ }
1844
+ }
1845
+ class LineaETHTestnet extends Testnet {
1846
+ constructor() {
1847
+ super(...arguments);
1848
+ this.name = 'Linea Ethereum Testnet';
1849
+ this.family = base_1.CoinFamily.LINEAETH;
1850
+ this.explorerUrl = 'https://sepolia.lineascan.build/tx/';
1851
+ this.accountExplorerUrl = 'https://sepolia.lineascan.build/address/';
1852
+ this.chainId = 59141;
1853
+ this.nativeCoinOperationHashPrefix = '59141';
1854
+ }
1855
+ }
1856
+ class FluentETH extends Mainnet {
1857
+ constructor() {
1858
+ super(...arguments);
1859
+ this.name = 'Fluent Ethereum';
1860
+ this.family = base_1.CoinFamily.FLUENTETH;
1861
+ this.explorerUrl = 'https://devnet.fluentscan.xyz/tx/';
1862
+ this.accountExplorerUrl = 'https://devnet.fluentscan.xyz/address/';
1863
+ this.chainId = 20993;
1864
+ this.nativeCoinOperationHashPrefix = '20993';
1865
+ }
1866
+ }
1867
+ class FluentETHTestnet extends Testnet {
1868
+ constructor() {
1869
+ super(...arguments);
1870
+ this.name = 'Testnet Fluent Ethereum';
1871
+ this.family = base_1.CoinFamily.FLUENTETH;
1872
+ this.explorerUrl = 'https://testnet.fluentscan.xyz/tx/';
1873
+ this.accountExplorerUrl = 'https://testnet.fluentscan.xyz/address/';
1874
+ this.chainId = 20994;
1875
+ this.nativeCoinOperationHashPrefix = '20994';
1876
+ }
1877
+ }
1878
+ class Mantle extends Mainnet {
1879
+ constructor() {
1880
+ super(...arguments);
1881
+ this.name = 'Mantle Native';
1882
+ this.family = base_1.CoinFamily.MANTLE;
1883
+ this.explorerUrl = 'https://mantlescan.xyz/tx/';
1884
+ this.accountExplorerUrl = 'https://mantlescan.xyz/address/';
1885
+ this.chainId = 5000;
1886
+ this.nativeCoinOperationHashPrefix = '5000';
1887
+ }
1888
+ }
1889
+ class MantleTestnet extends Testnet {
1890
+ constructor() {
1891
+ super(...arguments);
1892
+ this.name = 'Testnet Mantle Native';
1893
+ this.family = base_1.CoinFamily.MANTLE;
1894
+ this.explorerUrl = 'https://sepolia.mantlescan.xyz/tx/';
1895
+ this.accountExplorerUrl = 'https://sepolia.mantlescan.xyz/address/';
1896
+ this.chainId = 5003;
1897
+ this.nativeCoinOperationHashPrefix = '5003';
1898
+ }
1899
+ }
1900
+ class JovayETH extends Mainnet {
1901
+ constructor() {
1902
+ super(...arguments);
1903
+ this.name = 'Jovay Ethereum';
1904
+ this.family = base_1.CoinFamily.JOVAYETH;
1905
+ this.explorerUrl = 'https://explorer.jovay.io/tx/';
1906
+ this.accountExplorerUrl = 'https://explorer.jovay.io/address/';
1907
+ this.chainId = 5734951;
1908
+ this.nativeCoinOperationHashPrefix = '5734951';
1909
+ }
1910
+ }
1911
+ class JovayETHTestnet extends Testnet {
1912
+ constructor() {
1913
+ super(...arguments);
1914
+ this.name = 'Testnet Jovay Ethereum';
1915
+ this.family = base_1.CoinFamily.JOVAYETH;
1916
+ this.explorerUrl = 'https://sepolia-explorer.jovay.io/tx/';
1917
+ this.accountExplorerUrl = 'https://sepolia-explorer.jovay.io/address/';
1918
+ this.chainId = 2019775;
1919
+ this.nativeCoinOperationHashPrefix = '2019775';
1920
+ }
1921
+ }
1922
+ class Unieth extends Mainnet {
1923
+ constructor() {
1924
+ super(...arguments);
1925
+ this.name = 'Unichain';
1926
+ this.family = base_1.CoinFamily.UNIETH;
1927
+ this.explorerUrl = 'https://uniscan.xyz/tx/';
1928
+ this.accountExplorerUrl = 'https://uniscan.xyz/address/';
1929
+ this.chainId = 130;
1930
+ this.nativeCoinOperationHashPrefix = '130';
1931
+ }
1932
+ }
1933
+ class UniethTestnet extends Testnet {
1934
+ constructor() {
1935
+ super(...arguments);
1936
+ this.name = 'Testnet Unichain';
1937
+ this.family = base_1.CoinFamily.UNIETH;
1938
+ this.explorerUrl = 'https://sepolia.uniscan.xyz/tx/';
1939
+ this.accountExplorerUrl = 'https://sepolia.uniscan.xyz/address/';
1940
+ this.chainId = 1301;
1941
+ this.nativeCoinOperationHashPrefix = '1301';
1942
+ }
1943
+ }
1944
+ class Hppeth extends Mainnet {
1945
+ constructor() {
1946
+ super(...arguments);
1947
+ this.name = 'House Party Protocol';
1948
+ this.family = base_1.CoinFamily.HPPETH;
1949
+ this.explorerUrl = 'https://explorer.hpp.io/tx/';
1950
+ this.accountExplorerUrl = 'https://explorer.hpp.io/address/';
1951
+ this.chainId = 190415;
1952
+ this.nativeCoinOperationHashPrefix = '190415';
1953
+ }
1954
+ }
1955
+ class HppethTestnet extends Testnet {
1956
+ constructor() {
1957
+ super(...arguments);
1958
+ this.name = 'Testnet House Party Protocol';
1959
+ this.family = base_1.CoinFamily.HPPETH;
1960
+ this.explorerUrl = 'https://sepolia-explorer.hpp.io/tx/';
1961
+ this.accountExplorerUrl = 'https://sepolia-explorer.hpp.io/address/';
1962
+ this.chainId = 181228;
1963
+ this.nativeCoinOperationHashPrefix = '181228';
1964
+ }
1965
+ }
1966
+ class HoodethTestnet extends Testnet {
1967
+ constructor() {
1968
+ super(...arguments);
1969
+ this.name = 'Testnet Robinhood Chain';
1970
+ this.family = base_1.CoinFamily.HOODETH;
1971
+ this.explorerUrl = 'https://explorer.testnet.chain.robinhood.com/tx/';
1972
+ this.accountExplorerUrl = 'https://explorer.testnet.chain.robinhood.com/address/';
1973
+ this.chainId = 46630;
1974
+ this.nativeCoinOperationHashPrefix = '46630';
1975
+ }
1976
+ }
1977
+ class Hoodeth extends Mainnet {
1978
+ constructor() {
1979
+ super(...arguments);
1980
+ this.name = 'Robinhood Chain';
1981
+ this.family = base_1.CoinFamily.HOODETH;
1982
+ this.explorerUrl = 'https://explorer.testnet.chain.robinhood.com/tx/'; // TODO: update to mainnet explorer when available
1983
+ this.accountExplorerUrl = 'https://explorer.testnet.chain.robinhood.com/address/'; // TODO: update to mainnet explorer when available
1984
+ this.chainId = 46630; // TODO: update to mainnet chain id when available
1985
+ this.nativeCoinOperationHashPrefix = '46630'; // TODO: update to mainnet chain id when available
1986
+ }
1987
+ }
1988
+ class HumanityProtocol extends Mainnet {
1989
+ constructor() {
1990
+ super(...arguments);
1991
+ this.name = 'Humanity Protocol';
1992
+ this.family = base_1.CoinFamily.H;
1993
+ this.explorerUrl = 'https://explorer.humanity.org/mainnet/txns/';
1994
+ this.accountExplorerUrl = 'https://explorer.humanity.org/mainnet/accounts/';
1995
+ this.chainId = 6985385;
1996
+ this.nativeCoinOperationHashPrefix = '6985385';
1997
+ }
1998
+ }
1999
+ class HumanityProtocolTestnet extends Testnet {
2000
+ constructor() {
2001
+ super(...arguments);
2002
+ this.name = 'Testnet Humanity Protocol';
2003
+ this.family = base_1.CoinFamily.H;
2004
+ this.explorerUrl = 'https://explorer.humanity.org/testnet/txns/';
2005
+ this.accountExplorerUrl = 'https://explorer.humanity.org/testnet/accounts/';
2006
+ this.chainId = 7080969;
2007
+ this.nativeCoinOperationHashPrefix = '7080969';
2008
+ }
2009
+ }
2010
+ class Xlayer extends Mainnet {
2011
+ constructor() {
2012
+ super(...arguments);
2013
+ this.name = 'X Layer';
2014
+ this.family = base_1.CoinFamily.OKBXLAYER;
2015
+ this.explorerUrl = 'https://www.oklink.com/x-layer/tx/';
2016
+ this.accountExplorerUrl = 'https://www.oklink.com/x-layer/address/';
2017
+ this.chainId = 196;
2018
+ this.nativeCoinOperationHashPrefix = '196';
2019
+ }
2020
+ }
2021
+ class XlayerTestnet extends Testnet {
2022
+ constructor() {
2023
+ super(...arguments);
2024
+ this.name = 'Testnet X Layer';
2025
+ this.family = base_1.CoinFamily.OKBXLAYER;
2026
+ this.explorerUrl = 'https://www.oklink.com/x-layer-testnet/tx/';
2027
+ this.accountExplorerUrl = 'https://www.oklink.com/x-layer-testnet/address/';
2028
+ this.chainId = 1952;
2029
+ this.nativeCoinOperationHashPrefix = '1952';
2030
+ }
2031
+ }
2032
+ class Morph extends Mainnet {
2033
+ constructor() {
2034
+ super(...arguments);
2035
+ this.name = 'Morph Mainnet';
2036
+ this.family = base_1.CoinFamily.MORPH;
2037
+ this.explorerUrl = 'https://explorer-api-hoodi.morphl2.io/tx/'; // TODO: WIN-8134 add mainnet url when available
2038
+ this.accountExplorerUrl = 'https://explorer-api-hoodi.morphl2.io/address/'; // TODO: WIN-8134 add mainnet account explorer url when available
2039
+ this.chainId = 2818;
2040
+ this.nativeCoinOperationHashPrefix = '2818';
2041
+ }
2042
+ }
2043
+ class MorphTestnet extends Testnet {
2044
+ constructor() {
2045
+ super(...arguments);
2046
+ this.name = 'Morph Testnet';
2047
+ this.family = base_1.CoinFamily.MORPH;
2048
+ this.explorerUrl = 'https://explorer-hoodi.morph.network/tx/';
2049
+ this.accountExplorerUrl = 'https://explorer-hoodi.morph.network/address/';
2050
+ this.chainId = 2910;
2051
+ this.nativeCoinOperationHashPrefix = '2910';
2052
+ }
2053
+ }
2054
+ class MorphETH extends Mainnet {
2055
+ constructor() {
2056
+ super(...arguments);
2057
+ this.name = 'Morph Ethereum Mainnet';
2058
+ this.family = base_1.CoinFamily.MORPHETH;
2059
+ this.explorerUrl = 'https://explorer.morph.network/tx/';
2060
+ this.accountExplorerUrl = 'https://explorer.morph.network/address/';
2061
+ this.chainId = 2818;
2062
+ this.nativeCoinOperationHashPrefix = '2818';
2063
+ }
2064
+ }
2065
+ class MorphETHTestnet extends Testnet {
2066
+ constructor() {
2067
+ super(...arguments);
2068
+ this.name = 'Morph Ethereum Testnet';
2069
+ this.family = base_1.CoinFamily.MORPHETH;
2070
+ this.explorerUrl = 'https://explorer-hoodi.morph.network/tx/';
2071
+ this.accountExplorerUrl = 'https://explorer-hoodi.morph.network/address/';
2072
+ this.chainId = 2910;
2073
+ this.nativeCoinOperationHashPrefix = '2910';
2074
+ }
2075
+ }
2076
+ class CreditcoinTestnet extends Testnet {
2077
+ constructor() {
2078
+ super(...arguments);
2079
+ this.name = 'CreditcoinTestnet';
2080
+ this.family = base_1.CoinFamily.CTC;
2081
+ this.explorerUrl = 'https://creditcoin-testnet.blockscout.com/tx/';
2082
+ this.accountExplorerUrl = 'https://creditcoin-testnet.blockscout.com/address/';
2083
+ this.chainId = 102031;
2084
+ this.nativeCoinOperationHashPrefix = '102031';
2085
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2086
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2087
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
2088
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
2089
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
2090
+ }
2091
+ }
2092
+ class Sonic extends Mainnet {
2093
+ constructor() {
2094
+ super(...arguments);
2095
+ this.name = 'Sonic';
2096
+ this.family = base_1.CoinFamily.SONIC;
2097
+ this.explorerUrl = 'https://sonicscan.org/tx/';
2098
+ this.accountExplorerUrl = 'https://sonicscan.org/address/';
2099
+ this.chainId = 146;
2100
+ this.nativeCoinOperationHashPrefix = '146';
2101
+ }
2102
+ }
2103
+ class SonicTestnet extends Testnet {
2104
+ constructor() {
2105
+ super(...arguments);
2106
+ this.name = 'SonicTestnet';
2107
+ this.family = base_1.CoinFamily.SONIC;
2108
+ this.explorerUrl = 'https://testnet.sonicscan.org/tx/';
2109
+ this.accountExplorerUrl = 'https://testnet.sonicscan.org/address/';
2110
+ this.chainId = 14601;
2111
+ this.nativeCoinOperationHashPrefix = '14601';
2112
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
2113
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
2114
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2115
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2116
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
2117
+ }
2118
+ }
2119
+ class Usdt0 extends Mainnet {
2120
+ constructor() {
2121
+ super(...arguments);
2122
+ this.name = 'USDT0';
2123
+ this.family = base_1.CoinFamily.USDT0;
2124
+ this.explorerUrl = 'https://stablescan.xyz/tx/';
2125
+ this.accountExplorerUrl = 'https://stablescan.xyz/address/';
2126
+ this.chainId = 988;
2127
+ this.nativeCoinOperationHashPrefix = '988';
2128
+ }
2129
+ }
2130
+ class Usdt0Testnet extends Testnet {
2131
+ constructor() {
2132
+ super(...arguments);
2133
+ this.name = 'Testnet USDT0';
2134
+ this.family = base_1.CoinFamily.USDT0;
2135
+ this.explorerUrl = 'https://testnet.stablescan.xyz/tx/';
2136
+ this.accountExplorerUrl = 'https://testnet.stablescan.xyz/address/';
2137
+ this.chainId = 2201;
2138
+ this.nativeCoinOperationHashPrefix = '2201';
2139
+ }
2140
+ }
2141
+ class Kaia extends Mainnet {
2142
+ constructor() {
2143
+ super(...arguments);
2144
+ this.name = 'Kaia';
2145
+ this.family = base_1.CoinFamily.KAIA;
2146
+ this.explorerUrl = 'https://kaiascan.io/tx/';
2147
+ this.accountExplorerUrl = 'https://kaiascan.io/address/';
2148
+ this.chainId = 8217;
2149
+ this.nativeCoinOperationHashPrefix = '8217';
2150
+ }
2151
+ }
2152
+ class KaiaTestnet extends Testnet {
2153
+ constructor() {
2154
+ super(...arguments);
2155
+ this.name = 'KaiaTestnet';
2156
+ this.family = base_1.CoinFamily.KAIA;
2157
+ this.explorerUrl = 'https://kairos.kaiascan.io/tx/';
2158
+ this.accountExplorerUrl = 'https://kairos.kaiascan.io/address/';
2159
+ this.chainId = 1001;
2160
+ this.nativeCoinOperationHashPrefix = '1001';
2161
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
2162
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
2163
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2164
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2165
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
2166
+ }
2167
+ }
2168
+ class Irys extends Mainnet {
2169
+ constructor() {
2170
+ super(...arguments);
2171
+ this.name = 'Irys';
2172
+ this.family = base_1.CoinFamily.IRYS;
2173
+ this.explorerUrl = 'https://evm-explorer.irys.xyz/tx/';
2174
+ this.accountExplorerUrl = 'https://evm-explorer.irys.xyz/address/';
2175
+ this.chainId = 3282;
2176
+ this.nativeCoinOperationHashPrefix = '3282';
2177
+ }
2178
+ }
2179
+ class IrysTestnet extends Testnet {
2180
+ constructor() {
2181
+ super(...arguments);
2182
+ this.name = 'IrysTestnet';
2183
+ this.family = base_1.CoinFamily.IRYS;
2184
+ this.explorerUrl = 'https://testnet-explorer.irys.xyz/tx/';
2185
+ this.accountExplorerUrl = 'https://testnet-explorer.irys.xyz/address/';
2186
+ this.chainId = 1270;
2187
+ this.nativeCoinOperationHashPrefix = '1270';
2188
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
2189
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
2190
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2191
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2192
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
2193
+ }
2194
+ }
2195
+ class Og extends Mainnet {
2196
+ constructor() {
2197
+ super(...arguments);
2198
+ this.name = 'Zero Gravity';
2199
+ this.family = base_1.CoinFamily.OG;
2200
+ this.explorerUrl = 'https://chainscan.0g.ai/tx/';
2201
+ this.accountExplorerUrl = 'https://chainscan.0g.ai/address/';
2202
+ this.chainId = 16661;
2203
+ this.nativeCoinOperationHashPrefix = '16661';
2204
+ }
2205
+ }
2206
+ class OgTestnet extends Testnet {
2207
+ constructor() {
2208
+ super(...arguments);
2209
+ this.name = 'Zero Gravity Testnet';
2210
+ this.family = base_1.CoinFamily.OG;
2211
+ this.explorerUrl = 'https://chainscan-galileo.0g.ai/tx/';
2212
+ this.accountExplorerUrl = 'https://chainscan-galileo.0g.ai/address/';
2213
+ this.chainId = 16602;
2214
+ this.nativeCoinOperationHashPrefix = '16602';
2215
+ }
2216
+ }
2217
+ class Xdc extends Mainnet {
2218
+ constructor() {
2219
+ super(...arguments);
2220
+ this.name = 'XdcChain';
2221
+ this.family = base_1.CoinFamily.XDC;
2222
+ this.explorerUrl = 'https://xdcscan.com/tx/';
2223
+ this.accountExplorerUrl = 'https://xdcscan.com/address/';
2224
+ this.chainId = 50;
2225
+ this.nativeCoinOperationHashPrefix = '50';
2226
+ this.batcherContractAddress = '0xc5d7a3b4c490c6242fb28f20e5fe33cd983372a3';
2227
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2228
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2229
+ }
2230
+ }
2231
+ class XdcTestnet extends Testnet {
2232
+ constructor() {
2233
+ super(...arguments);
2234
+ this.name = 'XdcChainTestnet';
2235
+ this.family = base_1.CoinFamily.XDC;
2236
+ this.explorerUrl = 'https://testnet.xdcscan.com/tx/';
2237
+ this.accountExplorerUrl = 'https://testnet.xdcscan.com/address/';
2238
+ this.chainId = 51;
2239
+ this.nativeCoinOperationHashPrefix = '51';
2240
+ this.batcherContractAddress = '0xebe27913fcc7510eadf10643a8f86bf5492a9541';
2241
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2242
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2243
+ }
2244
+ }
2245
+ class Wemix extends Mainnet {
2246
+ constructor() {
2247
+ super(...arguments);
2248
+ this.name = 'WemixChain';
2249
+ this.family = base_1.CoinFamily.WEMIX;
2250
+ this.explorerUrl = 'https://explorer.wemix.com/tx/';
2251
+ this.accountExplorerUrl = 'https://explorer.wemix.com/address/';
2252
+ this.chainId = 1111;
2253
+ this.nativeCoinOperationHashPrefix = '1111';
2254
+ this.batcherContractAddress = '0xc5d7a3b4c490c6242fb28f20e5fe33cd983372a3';
2255
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2256
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2257
+ }
2258
+ }
2259
+ class WemixTestnet extends Testnet {
2260
+ constructor() {
2261
+ super(...arguments);
2262
+ this.name = 'WemixChainTestnet';
2263
+ this.family = base_1.CoinFamily.WEMIX;
2264
+ this.explorerUrl = 'https://explorer.test.wemix.com/tx/';
2265
+ this.accountExplorerUrl = 'https://explorer.test.wemix.com/address/';
2266
+ this.chainId = 1112;
2267
+ this.nativeCoinOperationHashPrefix = '1112';
2268
+ this.batcherContractAddress = '0xc5d7a3b4c490c6242fb28f20e5fe33cd983372a3';
2269
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2270
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2271
+ }
2272
+ }
2273
+ class MonadTestnet extends Testnet {
2274
+ constructor() {
2275
+ super(...arguments);
2276
+ this.name = 'MonadTestnet';
2277
+ this.family = base_1.CoinFamily.MON;
2278
+ this.explorerUrl = 'https://testnet.monadexplorer.com/tx/';
2279
+ this.accountExplorerUrl = 'https://testnet.monadexplorer.com/address/';
2280
+ this.chainId = 10143;
2281
+ this.nativeCoinOperationHashPrefix = '10143';
2282
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
2283
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
2284
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2285
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2286
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
2287
+ }
2288
+ }
2289
+ class Monad extends Mainnet {
2290
+ constructor() {
2291
+ super(...arguments);
2292
+ this.name = 'Monad';
2293
+ this.family = base_1.CoinFamily.MON;
2294
+ this.explorerUrl = 'https://mainnet-beta.monvision.io/tx/';
2295
+ this.chainId = 143;
2296
+ this.nativeCoinOperationHashPrefix = '143';
2297
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
2298
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
2299
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2300
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2301
+ }
2302
+ }
2303
+ class World extends Mainnet {
2304
+ constructor() {
2305
+ super(...arguments);
2306
+ this.name = 'Worldchain';
2307
+ this.family = base_1.CoinFamily.WORLD;
2308
+ this.explorerUrl = 'https://worldscan.org/tx/';
2309
+ this.accountExplorerUrl = 'https://worldscan.org/address/';
2310
+ this.chainId = 480;
2311
+ this.nativeCoinOperationHashPrefix = '480';
2312
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
2313
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
2314
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2315
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2316
+ }
2317
+ }
2318
+ class WorldTestnet extends Testnet {
2319
+ constructor() {
2320
+ super(...arguments);
2321
+ this.name = 'WorldchainTestnet';
2322
+ this.family = base_1.CoinFamily.WORLD;
2323
+ this.explorerUrl = 'https://sepolia.worldscan.org/tx/';
2324
+ this.accountExplorerUrl = 'https://sepolia.worldscan.org/address/';
2325
+ this.chainId = 4801;
2326
+ this.nativeCoinOperationHashPrefix = '4801';
2327
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
2328
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2329
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2330
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
2331
+ }
2332
+ }
2333
+ class Soneium extends Mainnet {
2334
+ constructor() {
2335
+ super(...arguments);
2336
+ this.name = 'Soneium';
2337
+ this.family = base_1.CoinFamily.SONEIUM;
2338
+ this.explorerUrl = 'https://soneium.blockscout.com/tx/';
2339
+ this.accountExplorerUrl = 'https://soneium.blockscout.com/address/';
2340
+ this.chainId = 1868;
2341
+ this.nativeCoinOperationHashPrefix = '1868';
2342
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
2343
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
2344
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
2345
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2346
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2347
+ }
2348
+ }
2349
+ class SoneiumTestnet extends Testnet {
2350
+ constructor() {
2351
+ super(...arguments);
2352
+ this.name = 'SoneiumTestnet';
2353
+ this.family = base_1.CoinFamily.SONEIUM;
2354
+ this.explorerUrl = 'https://soneium-minato.blockscout.com/tx/';
2355
+ this.accountExplorerUrl = 'https://soneium-minato.blockscout.com/address/';
2356
+ this.chainId = 1946;
2357
+ this.nativeCoinOperationHashPrefix = '1946';
2358
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
2359
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
2360
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2361
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2362
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
2363
+ }
2364
+ }
2365
+ class SeiEvm extends Mainnet {
2366
+ constructor() {
2367
+ super(...arguments);
2368
+ this.name = 'Seievm';
2369
+ this.family = base_1.CoinFamily.SEIEVM;
2370
+ this.explorerUrl = 'https://seiscan.io/tx/';
2371
+ this.accountExplorerUrl = 'https://seiscan.io/address/';
2372
+ this.chainId = 1329;
2373
+ this.nativeCoinOperationHashPrefix = '1329';
2374
+ }
2375
+ }
2376
+ class SeiEvmTestnet extends Testnet {
2377
+ constructor() {
2378
+ super(...arguments);
2379
+ this.name = 'SeiEvmTestnet';
2380
+ this.family = base_1.CoinFamily.SEIEVM;
2381
+ this.explorerUrl = 'https://testnet.seiscan.io/tx/';
2382
+ this.accountExplorerUrl = 'https://testnet.seiscan.io/address/';
2383
+ this.chainId = 1328;
2384
+ this.nativeCoinOperationHashPrefix = '1328';
2385
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
2386
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
2387
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2388
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2389
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
2390
+ }
2391
+ }
2392
+ class SomniaTestnet extends Testnet {
2393
+ constructor() {
2394
+ super(...arguments);
2395
+ this.name = 'SomniaTestnet';
2396
+ this.family = base_1.CoinFamily.STT;
2397
+ this.explorerUrl = 'https://shannon-explorer.somnia.network/tx/';
2398
+ this.accountExplorerUrl = 'https://shannon-explorer.somnia.network/address/';
2399
+ this.chainId = 50312;
2400
+ this.nativeCoinOperationHashPrefix = '50312';
2401
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
2402
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
2403
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2404
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2405
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
2406
+ }
2407
+ }
2408
+ class Somi extends Mainnet {
2409
+ constructor() {
2410
+ super(...arguments);
2411
+ this.name = 'Somnia';
2412
+ this.family = base_1.CoinFamily.SOMI;
2413
+ this.explorerUrl = 'https://mainnet.somnia.w3us.site/tx/';
2414
+ this.chainId = 5031;
2415
+ this.nativeCoinOperationHashPrefix = '5031';
2416
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
2417
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
2418
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2419
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2420
+ this.batcherContractAddress = '0x3e1e5d78e44f15593b3b61ed278f12c27f0ff33e';
2421
+ }
2422
+ }
2423
+ class FlareP extends Mainnet {
2424
+ constructor() {
2425
+ super(...arguments);
2426
+ this.assetId = 'Flare';
2427
+ this.name = 'FlareP';
2428
+ this.family = base_1.CoinFamily.FLRP;
2429
+ this.explorerUrl = 'https://flarescan.com/blockchain/pvm/transactions/';
2430
+ this.accountExplorerUrl = 'https://flarescan.com/blockchain/pvm/address/';
2431
+ this.blockchainID = '11111111111111111111111111111111LpoYY';
2432
+ this.cChainBlockchainID = '2q9e4r6Mu3U68nU1fYjgbR6JvwrRx36CohpAX5UQxse55x1Q5';
2433
+ this.xChainBlockchainID = 'FJuSwZuP85eyBpuBrKECnpPedGyXoDy2hP9q4JD8qBTZGxJ';
2434
+ this.networkID = 14;
2435
+ this.hrp = 'flare';
2436
+ this.alias = 'P';
2437
+ this.vm = 'platformvm';
2438
+ this.minImportToPFee = '1261000'; // 0.1261 FLR
2439
+ this.txFee = '200000'; // FLR P-chain import requires higher fee than base txFee
2440
+ this.baseTxFee = '1000000';
2441
+ this.maxImportFee = '10000000'; // defaults
2442
+ this.createAssetTxFee = '1000000';
2443
+ this.createSubnetTx = '100000000'; // defaults
2444
+ this.transformSubnetTxFee = '100000000';
2445
+ this.createChainTx = '100000000'; // defaults
2446
+ this.creationTxFee = '10000000'; // defaults
2447
+ this.minConsumption = '0.1';
2448
+ this.maxConsumption = '0.12';
2449
+ this.maxSupply = '103688266974000000000'; // 103B tokens
2450
+ this.minStake = '1000000000000000'; // 1M FLR
2451
+ this.minStakeDuration = '5256000'; // 2 months
2452
+ this.maxStakeDuration = '31536000'; // 1 year
2453
+ this.minDelegationStake = '50000000000000'; // 50000 FLR
2454
+ this.minDelegationFee = '0';
2455
+ this.addPrimaryNetworkValidatorFee = '0';
2456
+ this.addSubnetValidatorFee = '1000000';
2457
+ this.addSubnetDelegatorFee = '1000000';
2458
+ }
2459
+ }
2460
+ exports.FlareP = FlareP;
2461
+ class FlarePTestnet extends Testnet {
2462
+ constructor() {
2463
+ super(...arguments);
2464
+ this.name = 'FlarePTestnet';
2465
+ this.family = base_1.CoinFamily.FLRP;
2466
+ this.explorerUrl = 'https://coston2.testnet.flarescan.com/blockchain/pvm/transactions';
2467
+ this.accountExplorerUrl = 'https://coston2.testnet.flarescan.com/blockchain/pvm/address/';
2468
+ this.flarePublicUrl = 'https://coston2.testnet.flare.network';
2469
+ this.blockchainID = '11111111111111111111111111111111LpoYY';
2470
+ this.cChainBlockchainID = 'vE8M98mEQH6wk56sStD1ML8HApTgSqfJZLk9gQ3Fsd4i6m3Bi';
2471
+ this.xChainBlockchainID = 'FJuSwZuP85eyBpuBrKECnpPedGyXoDy2hP9q4JD8qBTZGxYJ';
2472
+ this.networkID = 114;
2473
+ this.hrp = 'costwo';
2474
+ this.alias = 'P';
2475
+ this.assetId = 'fxMAKpBQQpFedrUhWMsDYfCUJxdUw4mneTczKBzNg3rc2JUub';
2476
+ this.vm = 'platformvm';
2477
+ this.minImportToPFee = '1261000'; // 0.1261 FLR
2478
+ this.txFee = '200000'; // FLR P-chain import requires higher fee than base txFee
2479
+ this.baseTxFee = '1000000';
2480
+ this.maxImportFee = '10000000'; // defaults
2481
+ this.createAssetTxFee = '1000000';
2482
+ this.createSubnetTx = '100000000'; // defaults
2483
+ this.transformSubnetTxFee = '100000000';
2484
+ this.createChainTx = '100000000'; // defaults
2485
+ this.creationTxFee = '10000000'; // defaults
2486
+ this.minConsumption = '0.1';
2487
+ this.maxConsumption = '0.12';
2488
+ this.maxSupply = '79000000000000000000000'; // 79 trillion tokens
2489
+ this.minStake = '1000000000000000'; // 1M FLR
2490
+ this.minStakeDuration = '5256000'; // 2 months
2491
+ this.maxStakeDuration = '31536000'; // 1 year
2492
+ this.minDelegationStake = '50000000000000'; // 50000 FLR
2493
+ this.minDelegationFee = '0';
2494
+ this.addPrimaryNetworkValidatorFee = '0';
2495
+ this.addSubnetValidatorFee = '1000000';
2496
+ this.addSubnetDelegatorFee = '1000000';
2497
+ }
2498
+ }
2499
+ exports.FlarePTestnet = FlarePTestnet;
2500
+ class Flare extends Mainnet {
2501
+ constructor() {
2502
+ super(...arguments);
2503
+ this.name = 'Flarechain';
2504
+ this.family = base_1.CoinFamily.FLR;
2505
+ this.explorerUrl = 'https://flare-explorer.flare.network/tx/';
2506
+ this.accountExplorerUrl = 'https://flare-explorer.flare.network/address/';
2507
+ this.flarePublicUrl = 'https://flare-explorer.flare.network';
2508
+ this.chainId = 14;
2509
+ this.nativeCoinOperationHashPrefix = '14';
2510
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
2511
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
2512
+ this.batcherContractAddress = '0xc5d7a3b4c490c6242fb28f20e5fe33cd983372a3';
2513
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2514
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2515
+ }
2516
+ }
2517
+ exports.Flare = Flare;
2518
+ class FlareTestnet extends Testnet {
2519
+ constructor() {
2520
+ super(...arguments);
2521
+ this.name = 'FlarechainTestnet';
2522
+ this.family = base_1.CoinFamily.FLR;
2523
+ this.explorerUrl = 'https://coston2-explorer.flare.network/tx/';
2524
+ this.accountExplorerUrl = 'https://coston2-explorer.flare.network/address/';
2525
+ this.chainId = 114;
2526
+ this.nativeCoinOperationHashPrefix = '114';
2527
+ this.walletFactoryAddress = '0x809ee567e413543af1caebcdb247f6a67eafc8dd';
2528
+ this.walletImplementationAddress = '0x944fef03af368414f29dc31a72061b8d64f568d2';
2529
+ this.batcherContractAddress = '0xc5d7a3b4c490c6242fb28f20e5fe33cd983372a3';
2530
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2531
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2532
+ }
2533
+ }
2534
+ exports.FlareTestnet = FlareTestnet;
2535
+ class Songbird extends Mainnet {
2536
+ constructor() {
2537
+ super(...arguments);
2538
+ this.name = 'Songbirdchain';
2539
+ this.family = base_1.CoinFamily.SGB;
2540
+ this.explorerUrl = 'https://songbird-explorer.flare.network/tx/';
2541
+ this.accountExplorerUrl = 'https://songbird-explorer.flare.network/address/';
2542
+ this.chainId = 19;
2543
+ this.nativeCoinOperationHashPrefix = '19';
2544
+ this.batcherContractAddress = '0xc5d7a3b4c490c6242fb28f20e5fe33cd983372a3';
2545
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2546
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2547
+ }
2548
+ }
2549
+ class SongbirdTestnet extends Testnet {
2550
+ constructor() {
2551
+ super(...arguments);
2552
+ this.name = 'SongbirdchainTestnet';
2553
+ this.family = base_1.CoinFamily.SGB;
2554
+ this.explorerUrl = 'https://coston-explorer.flare.network/tx/';
2555
+ this.accountExplorerUrl = 'https://coston-explorer.flare.network/address/';
2556
+ this.chainId = 16;
2557
+ this.nativeCoinOperationHashPrefix = '16';
2558
+ this.batcherContractAddress = '0xc5d7a3b4c490c6242fb28f20e5fe33cd983372a3';
2559
+ this.forwarderFactoryAddress = '0x37996e762fa8b671869740c79eb33f625b3bf92a';
2560
+ this.forwarderImplementationAddress = '0xd5fe1c1f216b775dfd30638fa7164d41321ef79b';
2561
+ }
2562
+ }
2563
+ class BaseChainTestnet extends Testnet {
2564
+ constructor() {
2565
+ super(...arguments);
2566
+ //BaseETH testnet
2567
+ this.name = 'BaseChainTestnet';
2568
+ this.family = base_1.CoinFamily.BASEETH;
2569
+ this.explorerUrl = 'https://sepolia.basescan.org/tx/';
2570
+ this.accountExplorerUrl = 'https://sepolia.basescan.org/address/';
2571
+ this.chainId = 84532;
2572
+ this.nativeCoinOperationHashPrefix = '84532';
2573
+ this.tokenOperationHashPrefix = '84532-ERC20';
2574
+ this.forwarderFactoryAddress = '0xdd498702f44c4da08eb9e08d3f015eefe5cb71fc';
2575
+ this.forwarderImplementationAddress = '0xbe69cae311191fb45e648ed20847f06fad2dbab4';
2576
+ this.walletFactoryAddress = '0x4550e1e7616d3364877fc6c9324938dab678621a';
2577
+ this.walletImplementationAddress = '0x92db2759d1dca129a0d9d46877f361be819184c4';
2578
+ }
2579
+ }
2580
+ class BaseChain extends Mainnet {
2581
+ constructor() {
2582
+ super(...arguments);
2583
+ //BaseETH
2584
+ this.name = 'BaseChain';
2585
+ this.family = base_1.CoinFamily.BASEETH;
2586
+ this.explorerUrl = 'https://basescan.org/tx/';
2587
+ this.accountExplorerUrl = 'https://basescan.org/address/';
2588
+ this.chainId = 8453;
2589
+ this.nativeCoinOperationHashPrefix = '8453';
2590
+ this.tokenOperationHashPrefix = '8453-ERC20';
2591
+ this.forwarderFactoryAddress = '0xdd498702f44c4da08eb9e08d3f015eefe5cb71fc';
2592
+ this.forwarderImplementationAddress = '0xbe69cae311191fb45e648ed20847f06fad2dbab4';
2593
+ this.walletFactoryAddress = '0x4550e1e7616d3364877fc6c9324938dab678621a';
2594
+ this.walletImplementationAddress = '0x92db2759d1dca129a0d9d46877f361be819184c4';
2595
+ }
2596
+ }
2597
+ class Polymesh extends Mainnet {
2598
+ constructor() {
2599
+ super(...arguments);
2600
+ this.name = 'Polymesh';
2601
+ this.family = base_1.CoinFamily.POLYX;
2602
+ this.explorerUrl = 'https://polymesh.subscan.io/extrinsic/';
2603
+ this.specName = 'polymesh_mainnet';
2604
+ this.genesisHash = '0x6fbd74e5e1d0a61d52ccfe9d4adaed16dd3a7caa37c6bc4d0c2fa12e8b2f4063';
2605
+ this.specVersion = 7002000;
2606
+ this.chainName = 'Polymesh Mainnet';
2607
+ this.txVersion = 7;
2608
+ }
2609
+ }
2610
+ class PolymeshTestnet extends Testnet {
2611
+ constructor() {
2612
+ super(...arguments);
2613
+ this.name = 'PolymeshTestnet';
2614
+ this.family = base_1.CoinFamily.POLYX;
2615
+ this.explorerUrl = 'https://polymesh-testnet.subscan.io/extrinsic/';
2616
+ this.specName = 'polymesh_testnet';
2617
+ this.genesisHash = '0x2ace05e703aa50b48c0ccccfc8b424f7aab9a1e2c424ed12e45d20b1e8ffd0d6';
2618
+ this.specVersion = 7002000;
2619
+ this.chainName = 'Polymesh Testnet';
2620
+ this.txVersion = 7;
2621
+ }
2622
+ }
2623
+ class Vet extends Mainnet {
2624
+ constructor() {
2625
+ super(...arguments);
2626
+ this.name = 'VeChain';
2627
+ this.family = base_1.CoinFamily.VET;
2628
+ this.explorerUrl = 'https://explore.vechain.org/transactions/';
2629
+ this.accountExplorerUrl = 'https://explore.vechain.org/accounts/';
2630
+ this.chainId = 100009;
2631
+ this.forwarderFactoryAddress = '0x65343e18c376d2fc8c3cf10cd146d63e2e0dc9ef';
2632
+ this.forwarderImplementationAddress = '0x62de34c87f847d385af07f6c25dbd97b1fffefc0';
2633
+ }
2634
+ }
2635
+ class VetTestnet extends Testnet {
2636
+ constructor() {
2637
+ super(...arguments);
2638
+ this.name = 'VeChainTestnet';
2639
+ this.family = base_1.CoinFamily.VET;
2640
+ this.explorerUrl = 'https://explore-testnet.vechain.org/transactions/';
2641
+ this.accountExplorerUrl = 'https://explore-testnet.vechain.org/accounts/';
2642
+ this.chainId = 100010;
2643
+ this.forwarderFactoryAddress = '0x65343e18c376d2fc8c3cf10cd146d63e2e0dc9ef';
2644
+ this.forwarderImplementationAddress = '0x62de34c87f847d385af07f6c25dbd97b1fffefc0';
2645
+ }
2646
+ }
2647
+ class Iota extends Mainnet {
2648
+ constructor() {
2649
+ super(...arguments);
2650
+ this.name = 'Iota';
2651
+ this.family = base_1.CoinFamily.IOTA;
2652
+ this.explorerUrl = 'https://explorer.iota.org/txblock/?network=mainnet';
2653
+ this.accountExplorerUrl = 'https://explorer.iota.org/address/?network=mainnet';
2654
+ }
2655
+ }
2656
+ class IotaTestnet extends Testnet {
2657
+ constructor() {
2658
+ super(...arguments);
2659
+ this.name = 'Testnet Iota';
2660
+ this.family = base_1.CoinFamily.IOTA;
2661
+ this.explorerUrl = 'https://explorer.iota.org/txblock/?network=testnet';
2662
+ this.accountExplorerUrl = 'https://explorer.iota.org/address/?network=testnet';
2663
+ }
2664
+ }
2665
+ class Flow extends Mainnet {
2666
+ constructor() {
2667
+ super(...arguments);
2668
+ this.name = 'Flow';
2669
+ this.family = base_1.CoinFamily.FLOW;
2670
+ this.explorerUrl = 'https://evm.flowscan.io/tx/';
2671
+ this.accountExplorerUrl = 'https://evm.flowscan.io/address/';
2672
+ this.chainId = 747;
2673
+ this.nativeCoinOperationHashPrefix = '747';
2674
+ }
2675
+ }
2676
+ class FlowTestnet extends Testnet {
2677
+ constructor() {
2678
+ super(...arguments);
2679
+ this.name = 'FlowTestnet';
2680
+ this.family = base_1.CoinFamily.FLOW;
2681
+ this.explorerUrl = 'https://evm-testnet.flowscan.io/tx/';
2682
+ this.accountExplorerUrl = 'https://evm-testnet.flowscan.io/address/';
2683
+ this.chainId = 545;
2684
+ this.nativeCoinOperationHashPrefix = '545';
2685
+ }
2686
+ }
2687
+ class MegaETH extends Mainnet {
2688
+ constructor() {
2689
+ super(...arguments);
2690
+ this.name = 'MegaETH';
2691
+ this.family = base_1.CoinFamily.MEGAETH;
2692
+ this.explorerUrl = 'https://megaeth.blockscout.com/tx/';
2693
+ this.accountExplorerUrl = 'https://megaeth.blockscout.com/address/';
2694
+ this.chainId = 4326;
2695
+ this.nativeCoinOperationHashPrefix = '4326';
2696
+ }
2697
+ }
2698
+ class MegaETHTestnet extends Testnet {
2699
+ constructor() {
2700
+ super(...arguments);
2701
+ this.name = 'MegaETHTestnet';
2702
+ this.family = base_1.CoinFamily.MEGAETH;
2703
+ this.explorerUrl = 'https://www.megaexplorer.xyz/tx/';
2704
+ this.accountExplorerUrl = 'https://www.megaexplorer.xyz/address/';
2705
+ this.chainId = 6343;
2706
+ this.nativeCoinOperationHashPrefix = '6343';
2707
+ }
2708
+ }
2709
+ class Plume extends Mainnet {
2710
+ constructor() {
2711
+ super(...arguments);
2712
+ this.name = 'Plume';
2713
+ this.family = base_1.CoinFamily.PLUME;
2714
+ this.explorerUrl = 'https://explorer.plume.org/tx/';
2715
+ this.accountExplorerUrl = 'https://explorer.plume.org/address/';
2716
+ this.chainId = 98866;
2717
+ this.nativeCoinOperationHashPrefix = '98866';
2718
+ }
2719
+ }
2720
+ class HederaEVMTestnet extends Testnet {
2721
+ constructor() {
2722
+ super(...arguments);
2723
+ this.name = 'Testnet Hedera EVM';
2724
+ this.family = base_1.CoinFamily.HBAREVM;
2725
+ this.explorerUrl = 'https://hashscan.io/testnet/transaction/';
2726
+ this.accountExplorerUrl = 'https://hashscan.io/testnet/account/';
2727
+ this.chainId = 296;
2728
+ this.nativeCoinOperationHashPrefix = '296';
2729
+ }
2730
+ }
2731
+ class HederaEVM extends Mainnet {
2732
+ constructor() {
2733
+ super(...arguments);
2734
+ this.name = 'Hedera EVM';
2735
+ this.family = base_1.CoinFamily.HBAREVM;
2736
+ this.explorerUrl = 'https://hashscan.io/mainnet/transaction/';
2737
+ this.accountExplorerUrl = 'https://hashscan.io/mainnet/account/';
2738
+ this.chainId = 295;
2739
+ this.nativeCoinOperationHashPrefix = '295';
2740
+ }
2741
+ }
2742
+ class HemiEth extends Mainnet {
2743
+ constructor() {
2744
+ super(...arguments);
2745
+ this.name = 'Hemi Ethereum';
2746
+ this.family = base_1.CoinFamily.HEMIETH;
2747
+ this.explorerUrl = 'https://explorer.hemi.xyz/tx/';
2748
+ this.accountExplorerUrl = 'https://explorer.hemi.xyz/address/';
2749
+ this.chainId = 43111;
2750
+ this.nativeCoinOperationHashPrefix = '43111';
2751
+ }
2752
+ }
2753
+ class HemiEthTestnet extends Testnet {
2754
+ constructor() {
2755
+ super(...arguments);
2756
+ this.name = 'Testnet Hemi Ethereum';
2757
+ this.family = base_1.CoinFamily.HEMIETH;
2758
+ this.explorerUrl = 'https://testnet.explorer.hemi.xyz/tx/';
2759
+ this.accountExplorerUrl = 'https://testnet.explorer.hemi.xyz/address/';
2760
+ this.chainId = 743111;
2761
+ this.nativeCoinOperationHashPrefix = '743111';
2762
+ }
2763
+ }
2764
+ class PlumeTestnet extends Testnet {
2765
+ constructor() {
2766
+ super(...arguments);
2767
+ this.name = 'PlumeTestnet';
2768
+ this.family = base_1.CoinFamily.PLUME;
2769
+ this.explorerUrl = 'https://testnet-explorer.plume.org/tx/';
2770
+ this.accountExplorerUrl = 'https://testnet-explorer.plume.org/address/';
2771
+ this.chainId = 98867;
2772
+ this.nativeCoinOperationHashPrefix = '98867';
2773
+ }
2774
+ }
2775
+ class Canton extends Mainnet {
2776
+ constructor() {
2777
+ super(...arguments);
2778
+ this.name = 'Canton';
2779
+ this.family = base_1.CoinFamily.CANTON;
2780
+ this.explorerUrl = 'https://lighthouse.cantonloop.com/transactions/';
2781
+ }
2782
+ }
2783
+ class CantonTestnet extends Testnet {
2784
+ constructor() {
2785
+ super(...arguments);
2786
+ this.name = 'CantonTestnet';
2787
+ this.family = base_1.CoinFamily.CANTON;
2788
+ this.explorerUrl = 'https://lighthouse.devnet.cantonloop.com/transactions/';
2789
+ }
2790
+ }
2791
+ class Dogeos extends Mainnet {
2792
+ constructor() {
2793
+ super(...arguments);
2794
+ this.name = 'Doge OS';
2795
+ this.family = base_1.CoinFamily.DOGEOS;
2796
+ this.explorerUrl = 'https://blockscout.testnet.dogeos.com/tx/'; //TODO: WIN-8082 => add mainnet url when available
2797
+ this.accountExplorerUrl = "'https://blockscout.testnet.dogeos.com/address/"; //TODO: WIN-8082 => add mainnet url when available
2798
+ this.chainId = 1234567; ////TODO: WIN-8082 => add mainnet chainId when available
2799
+ this.nativeCoinOperationHashPrefix = '1234567'; //TODO: WIN-8082 => add when mainnet details available
2800
+ }
2801
+ }
2802
+ class DogeosTestnet extends Testnet {
2803
+ constructor() {
2804
+ super(...arguments);
2805
+ this.name = 'Doge OS Testnet';
2806
+ this.family = base_1.CoinFamily.DOGEOS;
2807
+ this.explorerUrl = 'https://blockscout.testnet.dogeos.com/tx/';
2808
+ this.accountExplorerUrl = 'https://blockscout.testnet.dogeos.com/address/';
2809
+ this.chainId = 6281971;
2810
+ this.nativeCoinOperationHashPrefix = '6281971';
2811
+ }
2812
+ }
2813
+ class ArcUSDCTestnet extends Testnet {
2814
+ constructor() {
2815
+ super(...arguments);
2816
+ this.name = 'USDC (ARC) Testnet';
2817
+ this.family = base_1.CoinFamily.ARCUSDC;
2818
+ this.explorerUrl = 'https://testnet.arcscan.app/tx/';
2819
+ this.accountExplorerUrl = 'https://testnet.arcscan.app/address/';
2820
+ this.chainId = 5042002;
2821
+ this.nativeCoinOperationHashPrefix = '5042002';
2822
+ }
2823
+ }
2824
+ class ArcUSDC extends Mainnet {
2825
+ constructor() {
2826
+ super(...arguments);
2827
+ this.name = 'USDC (ARC)';
2828
+ this.family = base_1.CoinFamily.ARCUSDC;
2829
+ this.explorerUrl = 'https://testnet.arcscan.app/tx/'; // WIN-8844 change to prod explorer url
2830
+ this.accountExplorerUrl = 'https://testnet.arcscan.app/address/'; // change to prod explorer url when available
2831
+ this.chainId = 5042002; // change to prod chain id when available
2832
+ this.nativeCoinOperationHashPrefix = '5042002'; // change to prod native coin operation hash prefix when available
2833
+ }
2834
+ }
2835
+ class Tempo extends Mainnet {
2836
+ constructor() {
2837
+ super(...arguments);
2838
+ this.name = 'Tempo';
2839
+ this.family = base_1.CoinFamily.TEMPO;
2840
+ this.explorerUrl = 'https://explore.mainnet.tempo.xyz/tx/';
2841
+ this.accountExplorerUrl = 'https://explore.mainnet.tempo.xyz/address/';
2842
+ this.chainId = 4217;
2843
+ this.nativeCoinOperationHashPrefix = 'TEMPO';
2844
+ this.tokenOperationHashPrefix = 'TEMPO-TIP20';
2845
+ }
2846
+ }
2847
+ class TempoTestnet extends Testnet {
2848
+ constructor() {
2849
+ super(...arguments);
2850
+ this.name = 'Tempo Testnet';
2851
+ this.family = base_1.CoinFamily.TEMPO;
2852
+ this.explorerUrl = 'https://explore.tempo.xyz/tx/';
2853
+ this.accountExplorerUrl = 'https://explore.tempo.xyz/address/';
2854
+ this.chainId = 42431;
2855
+ this.nativeCoinOperationHashPrefix = '42431';
2856
+ this.tokenOperationHashPrefix = '42431';
1024
2857
  }
1025
2858
  }
1026
2859
  exports.Networks = {
1027
2860
  main: {
1028
2861
  ada: Object.freeze(new Ada()),
1029
2862
  algorand: Object.freeze(new Algorand()),
2863
+ apechain: Object.freeze(new ApeChain()),
2864
+ apt: Object.freeze(new Apt()),
1030
2865
  arbitrum: Object.freeze(new Arbitrum()),
2866
+ arcusdc: Object.freeze(new ArcUSDC()),
2867
+ asi: Object.freeze(new Asi()),
1031
2868
  atom: Object.freeze(new Atom()),
1032
2869
  avalancheC: Object.freeze(new AvalancheC()),
1033
2870
  avalancheP: Object.freeze(new AvalancheP()),
2871
+ baby: Object.freeze(new Baby()),
2872
+ basechain: Object.freeze(new BaseChain()),
1034
2873
  bitcoin: Object.freeze(new Bitcoin()),
1035
2874
  bitcoinCash: Object.freeze(new BitcoinCash()),
1036
2875
  bitcoinGold: Object.freeze(new BitcoinGold()),
1037
2876
  bitcoinSV: Object.freeze(new BitcoinSV()),
1038
- bera: Object.freeze(new Bera()),
2877
+ bera: Object.freeze(new Berachain()),
1039
2878
  bld: Object.freeze(new Bld()),
1040
2879
  bsc: Object.freeze(new BinanceSmartChain()),
2880
+ canton: Object.freeze(new Canton()),
1041
2881
  casper: Object.freeze(new Casper()),
1042
2882
  celo: Object.freeze(new Celo()),
2883
+ chiliz: Object.freeze(new Chiliz()),
2884
+ codexeth: Object.freeze(new CodexEth()),
2885
+ coredao: Object.freeze(new Coredao()),
1043
2886
  coreum: Object.freeze(new Coreum()),
2887
+ cronos: Object.freeze(new Cronos()),
1044
2888
  dash: Object.freeze(new Dash()),
1045
2889
  dogecoin: Object.freeze(new Dogecoin()),
1046
- dot: Object.freeze(new Polkadot()),
2890
+ dogeos: Object.freeze(new Dogeos()),
2891
+ dot: Object.freeze(new PolkadotAssetHub()),
2892
+ dydx: Object.freeze(new Dydx()),
1047
2893
  eCash: Object.freeze(new ECash()),
1048
2894
  eos: Object.freeze(new Eos()),
1049
2895
  ethereum: Object.freeze(new Ethereum()),
@@ -1051,85 +2897,218 @@ exports.Networks = {
1051
2897
  ethereumClassic: Object.freeze(new EthereumClassic()),
1052
2898
  ethereumW: Object.freeze(new EthereumW()),
1053
2899
  fiat: Object.freeze(new Fiat()),
2900
+ fetchai: Object.freeze(new FetchAi()),
2901
+ flow: Object.freeze(new Flow()),
2902
+ flr: Object.freeze(new Flare()),
2903
+ flrP: Object.freeze(new FlareP()),
2904
+ fluenteth: Object.freeze(new FluentETH()),
2905
+ h: Object.freeze(new HumanityProtocol()),
1054
2906
  hash: Object.freeze(new Hash()),
2907
+ hoodeth: Object.freeze(new Hoodeth()),
1055
2908
  hedera: Object.freeze(new Hedera()),
2909
+ hederaEVM: Object.freeze(new HederaEVM()),
2910
+ hemieth: Object.freeze(new HemiEth()),
2911
+ hppeth: Object.freeze(new Hppeth()),
2912
+ icp: Object.freeze(new Icp()),
2913
+ ip: Object.freeze(new IP()),
2914
+ initia: Object.freeze(new Initia()),
2915
+ iota: Object.freeze(new Iota()),
1056
2916
  injective: Object.freeze(new Injective()),
2917
+ irys: Object.freeze(new Irys()),
1057
2918
  islm: Object.freeze(new Islm()),
1058
- kava: Object.freeze(new Kava()),
2919
+ jovayeth: Object.freeze(new JovayETH()),
2920
+ kaia: Object.freeze(new Kaia()),
2921
+ kavacosmos: Object.freeze(new KavaCosmos()),
2922
+ kavaevm: Object.freeze(new KavaEVM()),
2923
+ lnbtc: Object.freeze(new LightningBitcoin()),
1059
2924
  litecoin: Object.freeze(new Litecoin()),
2925
+ megaeth: Object.freeze(new MegaETH()),
2926
+ mon: Object.freeze(new Monad()),
2927
+ mantle: Object.freeze(new Mantle()),
2928
+ mantra: Object.freeze(new Mantra()),
2929
+ plume: Object.freeze(new Plume()),
1060
2930
  polygon: Object.freeze(new Polygon()),
2931
+ polyx: Object.freeze(new Polymesh()),
2932
+ phrs: Object.freeze(new Pharos()),
2933
+ ctc: Object.freeze(new Creditcoin()),
2934
+ hypeevm: Object.freeze(new HypeEVM()),
2935
+ lineaeth: Object.freeze(new LineaETH()),
2936
+ oas: Object.freeze(new Oas()),
2937
+ og: Object.freeze(new Og()),
1061
2938
  ofc: Object.freeze(new Ofc()),
2939
+ okbxlayer: Object.freeze(new Xlayer()),
2940
+ opbnb: Object.freeze(new OpBNB()),
2941
+ fantom: Object.freeze(new Fantom()),
2942
+ morph: Object.freeze(new Morph()),
2943
+ morpheth: Object.freeze(new MorphETH()),
1062
2944
  optimism: Object.freeze(new Optimism()),
1063
2945
  osmo: Object.freeze(new Osmo()),
1064
2946
  rbtc: Object.freeze(new Rbtc()),
2947
+ rune: Object.freeze(new Rune()),
1065
2948
  stellar: Object.freeze(new Stellar()),
1066
2949
  sei: Object.freeze(new Sei()),
2950
+ seievm: Object.freeze(new SeiEvm()),
2951
+ sgb: Object.freeze(new Songbird()),
1067
2952
  sol: Object.freeze(new Sol()),
2953
+ sonic: Object.freeze(new Sonic()),
1068
2954
  sui: Object.freeze(new Sui()),
1069
2955
  near: Object.freeze(new Near()),
1070
2956
  stx: Object.freeze(new Stx()),
2957
+ somi: Object.freeze(new Somi()),
2958
+ soneium: Object.freeze(new Soneium()),
1071
2959
  susd: Object.freeze(new SUSD()),
2960
+ tao: Object.freeze(new Bittensor()),
2961
+ tempo: Object.freeze(new Tempo()),
1072
2962
  tia: Object.freeze(new Tia()),
1073
2963
  ton: Object.freeze(new Ton()),
1074
2964
  trx: Object.freeze(new Trx()),
2965
+ usdt0: Object.freeze(new Usdt0()),
2966
+ vet: Object.freeze(new Vet()),
2967
+ wemix: Object.freeze(new Wemix()),
2968
+ world: Object.freeze(new World()),
2969
+ xdc: Object.freeze(new Xdc()),
2970
+ xpl: Object.freeze(new Plasma()),
1075
2971
  xrp: Object.freeze(new Xrp()),
1076
2972
  xtz: Object.freeze(new Xtz()),
2973
+ xtzevm: Object.freeze(new XtzEvm()),
1077
2974
  zCash: Object.freeze(new ZCash()),
1078
2975
  zeta: Object.freeze(new Zeta()),
2976
+ zkSync: Object.freeze(new ZkSync()),
2977
+ zkSyncEra: Object.freeze(new ZkSyncEra()),
2978
+ unieth: Object.freeze(new Unieth()),
1079
2979
  },
1080
2980
  test: {
1081
2981
  ada: Object.freeze(new AdaTestnet()),
1082
2982
  algorand: Object.freeze(new AlgorandTestnet()),
2983
+ apechain: Object.freeze(new ApeChainTestnet()),
2984
+ apt: Object.freeze(new AptTestnet()),
1083
2985
  arbitrum: Object.freeze(new ArbitrumTestnet()),
2986
+ arcusdc: Object.freeze(new ArcUSDCTestnet()),
2987
+ asi: Object.freeze(new AsiTestnet()),
1084
2988
  atom: Object.freeze(new AtomTestnet()),
1085
2989
  avalancheC: Object.freeze(new AvalancheCTestnet()),
1086
2990
  avalancheP: Object.freeze(new AvalanchePTestnet()),
2991
+ baby: Object.freeze(new BabyTestnet()),
2992
+ basechain: Object.freeze(new BaseChainTestnet()),
1087
2993
  bitcoin: Object.freeze(new BitcoinTestnet()),
2994
+ bitcoinPublicSignet: Object.freeze(new BitcoinPublicSignet()),
2995
+ bitcoinTestnet4: Object.freeze(new BitcoinTestnet4()),
2996
+ bitcoinBitGoSignet: Object.freeze(new BitcoinBitGoSignet()),
1088
2997
  bitcoinCash: Object.freeze(new BitcoinCashTestnet()),
1089
2998
  bitcoinGold: Object.freeze(new BitcoinGoldTestnet()),
1090
2999
  bitcoinSV: Object.freeze(new BitcoinSVTestnet()),
1091
- bera: Object.freeze(new BeraTestnet()),
3000
+ bera: Object.freeze(new BerachainTestnet()),
1092
3001
  bld: Object.freeze(new BldTestnet()),
1093
3002
  bsc: Object.freeze(new BinanceSmartChainTestnet()),
3003
+ canton: Object.freeze(new CantonTestnet()),
1094
3004
  casper: Object.freeze(new CasperTestnet()),
1095
3005
  celo: Object.freeze(new CeloTestnet()),
3006
+ chiliz: Object.freeze(new ChilizTestnet()),
3007
+ codexeth: Object.freeze(new CodexEthTestnet()),
3008
+ coredao: Object.freeze(new CoredaoTestnet()),
3009
+ cronos: Object.freeze(new CronosTestnet()),
1096
3010
  dash: Object.freeze(new DashTestnet()),
1097
3011
  dogecoin: Object.freeze(new DogecoinTestnet()),
1098
- dot: Object.freeze(new PolkadotTestnet()),
3012
+ dogeos: Object.freeze(new DogeosTestnet()),
3013
+ dot: Object.freeze(new WestendAssetHub()),
3014
+ dydx: Object.freeze(new DydxTestnet()),
1099
3015
  eCash: Object.freeze(new ECashTestnet()),
1100
3016
  eos: Object.freeze(new EosTestnet()),
1101
3017
  fiat: Object.freeze(new FiatTestnet()),
3018
+ fetchai: Object.freeze(new FetchAiTestnet()),
3019
+ flow: Object.freeze(new FlowTestnet()),
3020
+ flr: Object.freeze(new FlareTestnet()),
3021
+ flrP: Object.freeze(new FlarePTestnet()),
3022
+ fluenteth: Object.freeze(new FluentETHTestnet()),
3023
+ h: Object.freeze(new HumanityProtocolTestnet()),
3024
+ mon: Object.freeze(new MonadTestnet()),
3025
+ megaeth: Object.freeze(new MegaETHTestnet()),
1102
3026
  pyrmont: Object.freeze(new Pyrmont()),
3027
+ plume: Object.freeze(new PlumeTestnet()),
1103
3028
  ethereumClassicTestnet: Object.freeze(new EthereumClassicTestnet()),
1104
3029
  hash: Object.freeze(new HashTestnet()),
1105
3030
  hedera: Object.freeze(new HederaTestnet()),
3031
+ hoodeth: Object.freeze(new HoodethTestnet()),
3032
+ hppeth: Object.freeze(new HppethTestnet()),
3033
+ hederaEVM: Object.freeze(new HederaEVMTestnet()),
3034
+ hemieth: Object.freeze(new HemiEthTestnet()),
3035
+ icp: Object.freeze(new IcpTestnet()),
3036
+ ip: Object.freeze(new IPTestnet()),
3037
+ initia: Object.freeze(new InitiaTestnet()),
1106
3038
  injective: Object.freeze(new InjectiveTestnet()),
3039
+ iota: Object.freeze(new IotaTestnet()),
3040
+ irys: Object.freeze(new IrysTestnet()),
1107
3041
  islm: Object.freeze(new IslmTestnet()),
1108
- kava: Object.freeze(new KavaTestnet()),
3042
+ jovayeth: Object.freeze(new JovayETHTestnet()),
3043
+ kavacosmos: Object.freeze(new KavaCosmosTestnet()),
3044
+ kavaevm: Object.freeze(new KavaEVMTestnet()),
1109
3045
  kovan: Object.freeze(new Kovan()),
1110
3046
  goerli: Object.freeze(new Goerli()),
1111
3047
  holesky: Object.freeze(new Holesky()),
3048
+ hoodi: Object.freeze(new Hoodi()),
3049
+ lnbtc: Object.freeze(new LightningBitcoinTestnet()),
1112
3050
  litecoin: Object.freeze(new LitecoinTestnet()),
3051
+ mantle: Object.freeze(new MantleTestnet()),
3052
+ mantra: Object.freeze(new MantraTestnet()),
1113
3053
  polygon: Object.freeze(new PolygonTestnet()),
3054
+ polyx: Object.freeze(new PolymeshTestnet()),
3055
+ phrs: Object.freeze(new PharosTestnet()),
3056
+ ctc: Object.freeze(new CreditcoinTestnet()),
3057
+ hypeevm: Object.freeze(new HypeEVMTestnet()),
3058
+ lineaeth: Object.freeze(new LineaETHTestnet()),
3059
+ oas: Object.freeze(new OasTestnet()),
3060
+ og: Object.freeze(new OgTestnet()),
1114
3061
  ofc: Object.freeze(new OfcTestnet()),
3062
+ okbxlayer: Object.freeze(new XlayerTestnet()),
3063
+ opbnb: Object.freeze(new OpBNBTestnet()),
3064
+ fantom: Object.freeze(new FantomTestnet()),
3065
+ morph: Object.freeze(new MorphTestnet()),
3066
+ morpheth: Object.freeze(new MorphETHTestnet()),
1115
3067
  optimism: Object.freeze(new OptimismTestnet()),
1116
3068
  osmo: Object.freeze(new OsmoTestnet()),
1117
3069
  rbtc: Object.freeze(new RbtcTestnet()),
3070
+ rune: Object.freeze(new RuneTestNet()),
3071
+ sgb: Object.freeze(new SongbirdTestnet()),
1118
3072
  stellar: Object.freeze(new StellarTestnet()),
1119
3073
  sei: Object.freeze(new SeiTestnet()),
3074
+ seievm: Object.freeze(new SeiEvmTestnet()),
1120
3075
  sol: Object.freeze(new SolTestnet()),
1121
3076
  sui: Object.freeze(new SuiTestnet()),
1122
3077
  near: Object.freeze(new NearTestnet()),
1123
3078
  stx: Object.freeze(new StxTestnet()),
3079
+ stt: Object.freeze(new SomniaTestnet()),
3080
+ soneium: Object.freeze(new SoneiumTestnet()),
3081
+ sonic: Object.freeze(new SonicTestnet()),
3082
+ kaia: Object.freeze(new KaiaTestnet()),
1124
3083
  susd: Object.freeze(new SUSDTestnet()),
1125
3084
  coreum: Object.freeze(new CoreumTestnet()),
3085
+ tao: Object.freeze(new BittensorTestnet()),
3086
+ tempo: Object.freeze(new TempoTestnet()),
1126
3087
  tia: Object.freeze(new TiaTestnet()),
1127
3088
  ton: Object.freeze(new TonTestnet()),
1128
3089
  trx: Object.freeze(new TrxTestnet()),
3090
+ usdt0: Object.freeze(new Usdt0Testnet()),
3091
+ vet: Object.freeze(new VetTestnet()),
3092
+ wemix: Object.freeze(new WemixTestnet()),
3093
+ world: Object.freeze(new WorldTestnet()),
3094
+ xdc: Object.freeze(new XdcTestnet()),
3095
+ xpl: Object.freeze(new PlasmaTestnet()),
1129
3096
  xrp: Object.freeze(new XrpTestnet()),
1130
3097
  xtz: Object.freeze(new XtzTestnet()),
3098
+ xtzevm: Object.freeze(new XtzEvmTestnet()),
1131
3099
  zCash: Object.freeze(new ZCashTestnet()),
1132
3100
  zeta: Object.freeze(new ZetaTestnet()),
3101
+ zkSync: Object.freeze(new ZkSyncTestnet()),
3102
+ zkSyncEra: Object.freeze(new ZkSyncEraTestnet()),
3103
+ unieth: Object.freeze(new UniethTestnet()),
1133
3104
  },
1134
3105
  };
1135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29ya3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmV0d29ya3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQW9DO0FBRXBDLElBQVksV0FHWDtBQUhELFdBQVksV0FBVztJQUNyQixrQ0FBbUIsQ0FBQTtJQUNuQixrQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBSFcsV0FBVyxHQUFYLG1CQUFXLEtBQVgsbUJBQVcsUUFHdEI7QUFFRCxNQUFzQixXQUFXO0NBS2hDO0FBTEQsa0NBS0M7QUFxRkQsTUFBZSxPQUFRLFNBQVEsV0FBVztJQUExQzs7UUFDRSxTQUFJLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQztJQUM3QixDQUFDO0NBQUE7QUFFRCxNQUFlLE9BQVEsU0FBUSxXQUFXO0lBQTFDOztRQUNFLFNBQUksR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDO0lBQzdCLENBQUM7Q0FBQTtBQUVELE1BQU0sUUFBUyxTQUFRLE9BQU87SUFBOUI7O1FBQ0UsU0FBSSxHQUFHLFVBQVUsQ0FBQztRQUNsQixXQUFNLEdBQUcsaUJBQVUsQ0FBQyxJQUFJLENBQUM7UUFDekIsZ0JBQVcsR0FBRyw2QkFBNkIsQ0FBQztJQUM5QyxDQUFDO0NBQUE7QUFFRCxNQUFNLGVBQWdCLFNBQVEsT0FBTztJQUFyQzs7UUFDRSxTQUFJLEdBQUcsaUJBQWlCLENBQUM7UUFDekIsV0FBTSxHQUFHLGlCQUFVLENBQUMsSUFBSSxDQUFDO1FBQ3pCLGdCQUFXLEdBQUcscUNBQXFDLENBQUM7SUFDdEQsQ0FBQztDQUFBO0FBRUQsTUFBTSxHQUFJLFNBQVEsT0FBTztJQUF6Qjs7UUFDRSxTQUFJLEdBQUcsWUFBWSxDQUFDO1FBQ3BCLFdBQU0sR0FBRyxpQkFBVSxDQUFDLEdBQUcsQ0FBQztRQUN4QixnQkFBVyxHQUFHLFNBQVMsQ0FBQztRQUN4QixnQkFBVyxHQUFHLFNBQVMsQ0FBQztRQUN4QixvQkFBZSxHQUFHLE9BQU8sQ0FBQztRQUMx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QVEsRUFBRSxDQUFDO1FBQ3ZDLE9BQU8sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksT0FBTyxFQUFFLENBQUM7UUFDckMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUM3QixRQUFRLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ3ZDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDL0IsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUMvQixPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3JDLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDN0IsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUM3QixHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzdCLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDL0IsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUM3QixJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQy9CLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDN0IsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUM3QixHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzdCLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxF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QUFNLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUM7UUFDakMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNuQyxPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3JDLFFBQVEsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksZUFBZSxFQUFFLENBQUM7UUFDOUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUM1QyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLFFBQVEsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksZUFBZSxFQUFFLENBQUM7UUFDOUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUN0QyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ3RDLE9BQU8sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksY0FBYyxFQUFFLENBQUM7UUFDNUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNwQyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksVUFBVSxFQUFFLENBQUM7UUFDcEMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUN0QyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksV0FBVyxFQUFFLENBQUM7UUFDdEMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUMxQyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksVUFBVSxFQUFFLENBQUM7UUFDcEMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNwQyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksVUFBVSxFQUFFLENBQUM7UUFDcEMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN4QyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDO0tBQ3ZDO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvaW5GYW1pbHkgfSBmcm9tICcuL2Jhc2UnO1xuXG5leHBvcnQgZW51bSBOZXR3b3JrVHlwZSB7XG4gIE1BSU5ORVQgPSAnbWFpbm5ldCcsXG4gIFRFU1RORVQgPSAndGVzdG5ldCcsXG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlTmV0d29yayB7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSB0eXBlOiBOZXR3b3JrVHlwZTtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGZhbWlseTogQ29pbkZhbWlseTtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGV4cGxvcmVyVXJsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXR4b05ldHdvcmsgZXh0ZW5kcyBCYXNlTmV0d29yayB7XG4gIC8vIE5ldHdvcmsgbmFtZSBhcyBkZWZpbmVkIGluIEBiaXRnby1iZXRhL3V0eG8tbGliIG5ldHdvcmtzLnRzXG4gIHV0eG9saWJOYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRhTmV0d29yayBleHRlbmRzIEJhc2VOZXR3b3JrIHtcbiAgLy8gTmV0d29yayBuYW1lIGFzIGRlZmluZWQgaW4gQGJpdGdvLWJldGEvdXR4by1saWIgbmV0d29ya3MudHNcbiAgLy8gbWF5YmUgYWRkIG5ldHdvcmsgaWRlbnRpZmllciAvIG1hZ2ljIG5ldHdvcmsgbnVtYmVyXG4gIHV0eG9saWJOYW1lOiBzdHJpbmc7XG4gIHBvb2xEZXBvc2l0OiBudW1iZXI7XG4gIHN0YWtlS2V5RGVwb3NpdDogbnVtYmVyO1xuICBtYXhWYWx1ZVNpemU6IG51bWJlcjtcbiAgbWF4VHJhbnNhY3Rpb25TaXplOiBudW1iZXI7XG4gIGNvaW5zUGVyVXR4b1dvcmQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdmFsYW5jaGVOZXR3b3JrIGV4dGVuZHMgQmFzZU5ldHdvcmsge1xuICByZWFkb25seSBhbGlhczogc3RyaW5nO1xuICByZWFkb25seSBibG9ja2NoYWluSUQ6IHN0cmluZztcbiAgcmVhZG9ubHkgY0NoYWluQmxvY2tjaGFpbklEOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5ldHdvcmtJRDogbnVtYmVyO1xuICByZWFkb25seSBocnA6IHN0cmluZztcbiAgcmVhZG9ubHkgdm06IHN0cmluZztcbiAgcmVhZG9ubHkgY3JlYXRpb25UeEZlZTogc3RyaW5nO1xuICByZWFkb25seSBjcmVhdGVTdWJuZXRUeDogc3RyaW5nO1xuICByZWFkb25seSBjcmVhdGVDaGFpblR4OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1pbkNvbnN1bXB0aW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1heENvbnN1bXB0aW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1heFN1cHBseTogc3RyaW5nO1xuICByZWFkb25seSBtaW5TdGFrZTogc3RyaW5nO1xuICByZWFkb25seSBtaW5TdGFrZUR1cmF0aW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1heFN0YWtlRHVyYXRpb246IHN0cmluZztcbiAgcmVhZG9ubHkgbWluRGVsZWdhdGlvblN0YWtlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1pbkRlbGVnYXRpb25GZWU6IHN0cmluZztcbiAgLy8gY3VycmVudCB2YWxpZCBhc3NldCBpZCBpcyBBVkFYXG4gIHJlYWRvbmx5IGF2YXhBc3NldElEOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHR4RmVlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWNjb3VudE5ldHdvcmsgZXh0ZW5kcyBCYXNlTmV0d29yayB7XG4gIC8vIHNvbWUgY2hhaW5zIHBheSBmZWVzIHZpYSBhbiBlbnRlcnByaXNlIGdhcyB0YXNrLiBUaGUgYWNjb3VudCBleHBsb3JlciB1cmxcbiAgLy8gaXMgYSB1cmwgdGhhdCBjYW4gYmUgdXNlZCB0byBsb29rIHVwIHRoZSBhY2NvdW50IGZvciB0aGUgZ2FzIHRhbmsgb24tY2hhaW4uXG4gIHJlYWRvbmx5IGFjY291bnRFeHBsb3JlclVybD86IHN0cmluZztcbiAgcmVhZG9ubHkgYmxvY2tFeHBsb3JlclVybD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBTcGVjaWZpY2F0aW9uIG5hbWUgdHlwZSBvZiB0aGUgY2hhaW4uIFVzZWQgaW4gc2V0dGluZyB1cCB0aGUgcmVnaXN0cnlcbiAqL1xuZXhwb3J0IHR5cGUgUG9sa2Fkb3RTcGVjTmFtZVR5cGUgPSAna3VzYW1hJyB8ICdwb2xrYWRvdCcgfCAnd2VzdGVuZCcgfCAnc3RhdGVtaW50JyB8ICdzdGF0ZW1pbmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERvdE5ldHdvcmsgZXh0ZW5kcyBBY2NvdW50TmV0d29yayB7XG4gIC8vIHNvbWUgY2hhaW5zIHBheSBmZWVzIHZpYSBhbiBlbnRlcnByaXNlIGdhcyB0YXNrLiBUaGUgYWNjb3VudCBleHBsb3JlciB1cmxcbiAgLy8gaXMgYSB1cmwgdGhhdCBjYW4gYmUgdXNlZCB0byBsb29rIHVwIHRoZSBhY2NvdW50IGZvciB0aGUgZ2FzIHRhbmsgb24tY2hhaW4uXG4gIHJlYWRvbmx5IHNwZWNOYW1lOiBQb2xrYWRvdFNwZWNOYW1lVHlwZTtcbiAgcmVhZG9ubHkgZ2VuZXNpc0hhc2g6IHN0cmluZztcbiAgcmVhZG9ubHkgc3BlY1ZlcnNpb246IG51bWJlcjtcbiAgcmVhZG9ubHkgY2hhaW5OYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHR4VmVyc2lvbjogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV0aGVyZXVtTmV0d29yayBleHRlbmRzIEFjY291bnROZXR3b3JrIHtcbiAgLy8gdW5pcXVlIGNoYWluIGlkIHVzZWQgZm9yIHJlcGxheS1wcm90ZWN0aW5nIHRyYW5zYWN0aW9uc1xuICByZWFkb25seSBjaGFpbklkOiBudW1iZXI7XG4gIHJlYWRvbmx5IGJhdGNoZXJDb250cmFjdEFkZHJlc3M/OiBzdHJpbmc7XG4gIC8vIGZvcndhcmRlciBjb25maWd1cmF0aW9uIGFkZHJlc3NlcyB1c2VkIGZvciBjYWxjdWxhdGluZyBmb3J3YXJkZXIgdmVyc2lvbiAxIGFkZHJlc3Nlc1xuICByZWFkb25seSBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcz86IHN0cmluZztcbiAgcmVhZG9ubHkgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyb25OZXR3b3JrIGV4dGVuZHMgQWNjb3VudE5ldHdvcmsge1xuICBtYXhGZWVMaW1pdDogc3RyaW5nO1xuICBjb250cmFjdENhbGxGZWVMaW1pdDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWNrc05ldHdvcmsgZXh0ZW5kcyBBY2NvdW50TmV0d29yayB7XG4gIHJlYWRvbmx5IHNlbmRtYW55bWVtb0NvbnRyYWN0QWRkcmVzczogc3RyaW5nO1xuICByZWFkb25seSBzdGFraW5nQ29udHJhY3RBZGRyZXNzOiBzdHJpbmc7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktaW50ZXJmYWNlXG5leHBvcnQgaW50ZXJmYWNlIE9mY05ldHdvcmsgZXh0ZW5kcyBCYXNlTmV0d29yayB7fVxuXG5hYnN0cmFjdCBjbGFzcyBNYWlubmV0IGV4dGVuZHMgQmFzZU5ldHdvcmsge1xuICB0eXBlID0gTmV0d29ya1R5cGUuTUFJTk5FVDtcbn1cblxuYWJzdHJhY3QgY2xhc3MgVGVzdG5ldCBleHRlbmRzIEJhc2VOZXR3b3JrIHtcbiAgdHlwZSA9IE5ldHdvcmtUeXBlLlRFU1RORVQ7XG59XG5cbmNsYXNzIEFsZ29yYW5kIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdBbGdvcmFuZCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQUxHTztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9hbGdvZXhwbG9yZXIuaW8vdHgvJztcbn1cblxuY2xhc3MgQWxnb3JhbmRUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdBbGdvcmFuZFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFMR087XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5hbGdvZXhwbG9yZXIuaW8vdHgvJztcbn1cblxuY2xhc3MgQWRhIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFkYU5ldHdvcmsge1xuICBuYW1lID0gJ0FkYUNhcmRhbm8nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFEQTtcbiAgdXR4b2xpYk5hbWUgPSAnY2FyZGFubyc7XG4gIHBvb2xEZXBvc2l0ID0gNTAwMDAwMDAwO1xuICBzdGFrZUtleURlcG9zaXQgPSAyMDAwMDAwO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmNhcmRhbm8ub3JnL2VuL3RyYW5zYWN0aW9uP2lkPSc7XG4gIGNvaW5zUGVyVXR4b1dvcmQgPSAzNDQ4MjtcbiAgbWF4VHJhbnNhY3Rpb25TaXplID0gODAwMDtcbiAgbWF4VmFsdWVTaXplID0gNDAwMDtcbn1cblxuY2xhc3MgQWRhVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBZGFOZXR3b3JrIHtcbiAgbmFtZSA9ICdBZGFDYXJkYW5vVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQURBO1xuICB1dHhvbGliTmFtZSA9ICdjYXJkYW5vVGVzdG5ldCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vcHJlcHJvZC5jZXhwbG9yZXIuaW8vJztcbiAgY29pbnNQZXJVdHhvV29yZCA9IDM0NDgyO1xuICBtYXhUcmFuc2FjdGlvblNpemUgPSA4MDAwO1xuICBtYXhWYWx1ZVNpemUgPSA0MDAwO1xuICBwb29sRGVwb3NpdCA9IDUwMDAwMDAwMDtcbiAgc3Rha2VLZXlEZXBvc2l0ID0gMjAwMDAwMDtcbn1cblxuY2xhc3MgQXJiaXRydW0gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdBcmJpdHJ1bSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQVJCRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2FyYmlzY2FuLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2FyYmlzY2FuLmlvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDQyMTYxO1xufVxuXG5jbGFzcyBBcmJpdHJ1bVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdBcmJpdHJ1bVRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFSQkVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zZXBvbGlhLWV4cGxvcmVyLmFyYml0cnVtLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEtZXhwbG9yZXIuYXJiaXRydW0uaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNDIxNjE0O1xufVxuXG5jbGFzcyBBdmFsYW5jaGVDIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgLy8gaHR0cHM6Ly9kb2NzLmF2YXgubmV0d29yay9idWlsZC90dXRvcmlhbHMvc21hcnQtY29udHJhY3RzL2RlcGxveS1hLXNtYXJ0LWNvbnRyYWN0LW9uLWF2YWxhbmNoZS11c2luZy1yZW1peC1hbmQtbWV0YW1hc2sjYXZhbGFuY2hlLW1haW5uZXQtc2V0dGluZ3NcbiAgbmFtZSA9ICdBdmFsYW5jaGVDJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5BVkFYQztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zbm93dHJhY2UuaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc25vd3RyYWNlLmlvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDQzMTE0O1xufVxuXG5jbGFzcyBBdmFsYW5jaGVDVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIC8vIGh0dHBzOi8vZG9jcy5hdmF4Lm5ldHdvcmsvYnVpbGQvdHV0b3JpYWxzL3NtYXJ0LWNvbnRyYWN0cy9kZXBsb3ktYS1zbWFydC1jb250cmFjdC1vbi1hdmFsYW5jaGUtdXNpbmctcmVtaXgtYW5kLW1ldGFtYXNrI2F2YWxhbmNoZS1tYWlubmV0LXNldHRpbmdzXG4gIG5hbWUgPSAnQXZhbGFuY2hlQ1Rlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFWQVhDO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQuc25vd3RyYWNlLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQuc25vd3RyYWNlLmlvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDQzMTEzO1xufVxuXG5jbGFzcyBBdmFsYW5jaGVQIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEF2YWxhbmNoZU5ldHdvcmsge1xuICBuYW1lID0gJ0F2YWxhbmNoZVAnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFWQVhQO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3N1Ym5ldHMuYXZheC5uZXR3b3JrL3AtY2hhaW4vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc3VibmV0cy5hdmF4Lm5ldHdvcmsvcC1jaGFpbi9hZGRyZXNzLyc7XG4gIGJsb2NrY2hhaW5JRCA9ICcxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMUxwb1lZJztcbiAgY0NoYWluQmxvY2tjaGFpbklEID0gJzJxOWU0cjZNdTNVNjhuVTFmWWpnYlI2SnZ3clJ4MzZDb2hwQVg1VVF4c2U1NXgxUTUnO1xuICBhdmF4QXNzZXRJRCA9ICdGdndFQWhteEtmZWlHOFNuRXZxNDJoYzZ3aFJ5WTNFRllBdmViTXFETkRHQ2d4TjVaJztcbiAgbmV0d29ya0lEID0gMTtcbiAgaHJwID0gJ2F2YXgnO1xuICBhbGlhcyA9ICdQJztcbiAgdm0gPSAncGxhdGZvcm12bSc7XG4gIHR4RmVlID0gJzEwMDAwMDAnOyAvLyAxIE1JTExJQVZBWFxuICBjcmVhdGVTdWJuZXRUeCA9ICcxMDAwMDAwMDAwJzsgLy8gMSBBVkFYXG4gIGNyZWF0ZUNoYWluVHggPSAnMTAwMDAwMDAwMCc7IC8vIDEgQVZBWFxuICBjcmVhdGlvblR4RmVlID0gJzEwMDAwMDAwJzsgLy8gMSBDRU5USUFWQVhcbiAgbWluQ29uc3VtcHRpb24gPSAnMC4xJztcbiAgbWF4Q29uc3VtcHRpb24gPSAnMC4xMic7XG4gIG1heFN1cHBseSA9ICc3MjAwMDAwMDAwMDAwMDAwMDAnOyAvLyA3MjAgbWlsIHRva2Vuc1xuICBtaW5TdGFrZSA9ICcyMDAwMDAwMDAwMDAwJzsgLy8gMjAwMCBBVkFYXG4gIG1pblN0YWtlRHVyYXRpb24gPSAnMTIwOTYwMCc7IC8vIDIgd2Vla3NcbiAgbWF4U3Rha2VEdXJhdGlvbiA9ICczMTUzNjAwMCc7IC8vIDEgeWVhclxuICBtaW5EZWxlZ2F0aW9uU3Rha2UgPSAnMjUwMDAwMDAwMDAnOyAvLyAyNSBBVkFYXG4gIG1pbkRlbGVnYXRpb25GZWUgPSAnMic7XG59XG5cbmNsYXNzIEF2YWxhbmNoZVBUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEF2YWxhbmNoZU5ldHdvcmsge1xuICBuYW1lID0gJ0F2YWxhbmNoZVBUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5BVkFYUDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zdWJuZXRzLXRlc3QuYXZheC5uZXR3b3JrL3AtY2hhaW4vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc3VibmV0cy10ZXN0LmF2YXgubmV0d29yay9wLWNoYWluL2FkZHJlc3MvJztcbiAgYmxvY2tjaGFpbklEID0gJzExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExTHBvWVknO1xuICBjQ2hhaW5CbG9ja2NoYWluSUQgPSAneUg4RDdUaE5Ka3htdGt1djJqZ0JhNFAxUm4zUXByNHBQcjdRWU5mY2RvUzZrNkhXcCc7XG4gIGF2YXhBc3NldElEID0gJ1U4aVJxSm9pSm04eFpIQWFjbXZZeVpWd3FReDZ1RE50UWVQM0NRNmZjZ1FrM0pxbksnO1xuICBuZXR3b3JrSUQgPSA1O1xuICBhbGlhcyA9ICdQJztcbiAgaHJwID0gJ2Z1amknO1xuICB2bSA9ICdwbGF0Zm9ybXZtJztcbiAgdHhGZWUgPSAnMTAwMDAwMCc7IC8vIDEgTUlMTElBVkFYXG4gIGNyZWF0ZVN1Ym5ldFR4ID0gJzEwMDAwMDAwMDAnOyAvLyAxIEFWQVhcbiAgY3JlYXRlQ2hhaW5UeCA9ICcxMDAwMDAwMDAwJzsgLy8gMSBBVkFYXG4gIGNyZWF0aW9uVHhGZWUgPSAnMTAwMDAwMDAnOyAvLyAxIENFTlRJQVZBWFxuICBtaW5Db25zdW1wdGlvbiA9ICcwLjEnO1xuICBtYXhDb25zdW1wdGlvbiA9ICcwLjEyJztcbiAgbWF4U3VwcGx5ID0gJzcyMDAwMDAwMDAwMDAwMDAwMCc7IC8vIDcyMCBtaWwgdG9rZW5zXG4gIG1pblN0YWtlID0gJzEwMDAwMDAwMDAnOyAvLyAxIEFWQVhcbiAgbWluU3Rha2VEdXJhdGlvbiA9ICc4NjQwMCc7IC8vIDEgZGF5XG4gIG1heFN0YWtlRHVyYXRpb24gPSAnMzE1MzYwMDAnOyAvLyAxIHllYXJcbiAgbWluRGVsZWdhdGlvblN0YWtlID0gJzEwMDAwMDAwMDAnOyAvLyAxIEFWQVhcbiAgbWluRGVsZWdhdGlvbkZlZSA9ICcyJztcbn1cblxuY2xhc3MgQmluYW5jZVNtYXJ0Q2hhaW4gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdCaW5hbmNlU21hcnRDaGFpbic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQlNDO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3d3dy5ic2NzY2FuLmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly93d3cuYnNjc2Nhbi5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNTY7XG59XG5cbmNsYXNzIEJpbmFuY2VTbWFydENoYWluVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0JpbmFuY2VTbWFydENoYWluVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQlNDO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQuYnNjc2Nhbi5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5ic2NzY2FuLmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA5Nztcbn1cblxuY2xhc3MgQml0Y29pbiBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnQml0Y29pbic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQlRDO1xuICB1dHhvbGliTmFtZSA9ICdiaXRjb2luJztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9tZW1wb29sLnNwYWNlL3R4Lyc7XG59XG5cbmNsYXNzIEJpdGNvaW5UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdCaXRjb2luVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQlRDO1xuICB1dHhvbGliTmFtZSA9ICd0ZXN0bmV0JztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9tZW1wb29sLnNwYWNlL3Rlc3RuZXQvdHgvJztcbn1cblxuY2xhc3MgQml0Y29pbkNhc2ggZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0JpdGNvaW5DYXNoJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CQ0g7XG4gIHV0eG9saWJOYW1lID0gJ2JpdGNvaW5jYXNoJztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly93d3cuYmxvY2tjaGFpbi5jb20vYmNoL3R4Lyc7XG59XG5cbmNsYXNzIEJpdGNvaW5DYXNoVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnQml0Y29pbkNhc2hUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CQ0g7XG4gIHV0eG9saWJOYW1lID0gJ2JpdGNvaW5jYXNoVGVzdG5ldCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd3d3LmJsb2NrY2hhaW4uY29tL2JjaC10ZXN0bmV0L3R4Lyc7XG59XG5jbGFzcyBCaXRjb2luU1YgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0JpdGNvaW5TVic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQlNWO1xuICB1dHhvbGliTmFtZSA9ICdiaXRjb2luc3YnO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Jsb2NrY2hhaXIuY29tL2JpdGNvaW4tc3YvdHJhbnNhY3Rpb24vJztcbn1cblxuY2xhc3MgQml0Y29pblNWVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnQml0Y29pblNWVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQlNWO1xuICB1dHhvbGliTmFtZSA9ICdiaXRjb2luc3ZUZXN0bmV0JztcbiAgZXhwbG9yZXJVcmwgPSB1bmRlZmluZWQ7XG59XG5cbmNsYXNzIEJpdGNvaW5Hb2xkIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdCaXRjb2luR29sZCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQlRHO1xuICB1dHhvbGliTmFtZSA9ICdiaXRjb2luZ29sZCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYnRnZXhwbG9yZXIuY29tL3R4Lyc7XG59XG5cbmNsYXNzIEJpdGNvaW5Hb2xkVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnQml0Y29pbkdvbGRUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CVEc7XG4gIHV0eG9saWJOYW1lID0gJ2JpdGNvaW5nb2xkVGVzdG5ldCc7XG4gIGV4cGxvcmVyVXJsID0gdW5kZWZpbmVkO1xufVxuXG5jbGFzcyBEYXNoIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdEYXNoJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5EQVNIO1xuICB1dHhvbGliTmFtZSA9ICdkYXNoJztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9pbnNpZ2h0LmRhc2hldm8ub3JnL2luc2lnaHQvdHgvJztcbn1cblxuY2xhc3MgRGFzaFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0Rhc2hUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5EQVNIO1xuICB1dHhvbGliTmFtZSA9ICdkYXNoVGVzdCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC1pbnNpZ2h0LmRhc2hldm8ub3JnL2luc2lnaHQvdHgvJztcbn1cblxuY2xhc3MgRG9nZWNvaW4gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0RvZ2Vjb2luJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5ET0dFO1xuICB1dHhvbGliTmFtZSA9ICdkb2dlY29pbic7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmxvY2tjaGFpci5jb20vZG9nZWNvaW4vdHJhbnNhY3Rpb24vJztcbn1cblxuY2xhc3MgRG9nZWNvaW5UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdEb2dlY29pblRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkRPR0U7XG4gIHV0eG9saWJOYW1lID0gJ2RvZ2Vjb2luVGVzdCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmxvY2tleHBsb3Jlci5vbmUvZG9nZWNvaW4vdGVzdG5ldC90eC8nO1xufVxuXG5jbGFzcyBFQ2FzaCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnRUNhc2gnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJDSEE7XG4gIHV0eG9saWJOYW1lID0gJ2VjYXNoJztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ibG9ja2NoYWlyLmNvbS9lY2FzaCc7XG59XG5cbmNsYXNzIEVDYXNoVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnRUNhc2hUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CQ0hBO1xuICB1dHhvbGliTmFtZSA9ICdlY2FzaFRlc3QnO1xuICBleHBsb3JlclVybCA9IHVuZGVmaW5lZDtcbn1cblxuY2xhc3MgUG9sa2Fkb3QgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRG90TmV0d29yayB7XG4gIG5hbWUgPSAnUG9sa2Fkb3QnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkRPVDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9wb2xrYWRvdC5zdWJzY2FuLmlvL2V4dHJpbnNpYy8nO1xuICBzcGVjTmFtZSA9ICdwb2xrYWRvdCcgYXMgUG9sa2Fkb3RTcGVjTmFtZVR5cGU7XG4gIGdlbmVzaXNIYXNoID0gJzB4OTFiMTcxYmIxNThlMmQzODQ4ZmEyM2E5ZjFjMjUxODJmYjhlMjAzMTNiMmMxZWI0OTIxOWRhN2E3MGNlOTBjMyc7XG4gIHNwZWNWZXJzaW9uID0gOTE0MDtcbiAgY2hhaW5OYW1lID0gJ1BvbGthZG90JztcbiAgdHhWZXJzaW9uID0gOTtcbn1cblxuY2xhc3MgUG9sa2Fkb3RUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIERvdE5ldHdvcmsge1xuICBuYW1lID0gJ1dlc3RlbmQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkRPVDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly93ZXN0ZW5kLnN1YnNjYW4uaW8vZXh0cmluc2ljLyc7XG4gIHNwZWNOYW1lID0gJ3dlc3RlbmQnIGFzIFBvbGthZG90U3BlY05hbWVUeXBlO1xuICBnZW5lc2lzSGFzaCA9ICcweGUxNDNmMjM4MDNhYzUwZThmNmY4ZTYyNjk1ZDFjZTllNGUxZDY4YWEzNmMxY2QyY2ZkMTUzNDAyMTNmMzQyM2UnO1xuICBzcGVjVmVyc2lvbiA9IDk0MzA7XG4gIGNoYWluTmFtZSA9ICdXZXN0ZW5kJztcbiAgdHhWZXJzaW9uID0gMjI7XG59XG5cbmNsYXNzIENlbG8gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdDZWxvJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5DRUxPO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmNlbG8ub3JnL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmNlbG8ub3JnL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDQyMjIwO1xufVxuXG5jbGFzcyBDZWxvVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0NlbG9UZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5DRUxPO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2FsZmFqb3Jlcy1ibG9ja3Njb3V0LmNlbG8tdGVzdG5ldC5vcmcvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYWxmYWpvcmVzLWJsb2Nrc2NvdXQuY2Vsby10ZXN0bmV0Lm9yZy9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA0NDc4Nztcbn1cblxuLy8gVE9ETyB1cGRhdGUgZXhwbG9yZXJVcmwgU1RMWC0xNjU3XG5jbGFzcyBDYXNwZXIgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0Nhc3Blcic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ1NQUjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9jc3ByLmxpdmUvZGVwbG95Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2NzcHIubGl2ZS9hY2NvdW50Lyc7XG59XG5cbmNsYXNzIENhc3BlclRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0Nhc3BlclRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkNTUFI7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vaW50ZWdyYXRpb24uY3Nwci5saXZlL2RlcGxveS8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9pbnRlZ3JhdGlvbi5jc3ByLmxpdmUvYWNjb3VudC8nO1xufVxuXG5jbGFzcyBFdGhlcmV1bSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0V0aGVyZXVtJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5FVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXRoZXJzY2FuLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V0aGVyc2Nhbi5pby9hZGRyZXNzLyc7XG4gIGJsb2NrRXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ldGhlcnNjYW4uaW8vYmxvY2svJztcbiAgLy8gZnJvbSBodHRwczovL2dpdGh1Yi5jb20vZXRoZXJldW1qcy9ldGhlcmV1bWpzLWNvbW1vbi9ibG9iL2E5NzhmNjMwODU4ZjY4NDMxNzZiYjIwYjI3NzU2OTc4NTkxNGU4OTkvc3JjL2NoYWlucy9pbmRleC50c1xuICBjaGFpbklkID0gMTtcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDBjOWIyNWRmZTAyYjJjODljY2U4NmUxYTBiZDZjMDRhN2FjYTAxYjYnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweGZmYTM5NzI4NWNlNDZmYjc4YzU4OGE5ZTk5MzI4NmFhYzY4YzM3Y2QnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHgwNTlmZmFmZGM2ZWY1OTQyMzBkZTQ0ZjgyNGUyYmQwYTUxY2E1ZGVkJztcbn1cblxuY2xhc3MgRXRoZXJldW0yIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdFdGhlcmV1bTInO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkVUSDI7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmVhY29uc2Nhbi5jb20vdHgnO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9iZWFjb25zY2FuLmNvbS9hZGRyZXNzJztcbn1cblxuY2xhc3MgRXRoZXJldW1XIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnRXRoZXJldW0gUG9XJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5FVEhXO1xuICBleHBsb3JlclVybCA9ICcnO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnJztcbiAgY2hhaW5JZCA9IDEwMDAxO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJyc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJyc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcnO1xufVxuXG5jbGFzcyBQeXJtb250IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdQeXJtb250JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5FVEgyO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2JlYWNvbnNjYW4uY29tL3B5cm1vbnQvdHgnO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9iZWFjb25zY2FuLmNvbS9weXJtb250L2FkZHJlc3MnO1xufVxuXG5jbGFzcyBLb3ZhbiBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0tvdmFuJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5FVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8va292YW4uZXRoZXJzY2FuLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2tvdmFuLmV0aGVyc2Nhbi5pby9hZGRyZXNzLyc7XG4gIC8vIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2V0aGVyZXVtanMvZXRoZXJldW1qcy1jb21tb24vYmxvYi9hOTc4ZjYzMDg1OGY2ODQzMTc2YmIyMGIyNzc1Njk3ODU5MTRlODk5L3NyYy9jaGFpbnMvaW5kZXgudHNcbiAgY2hhaW5JZCA9IDQyO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4YzBhYWYyNjQ5ZTdiMGYzOTUwMTY0NjgxZWNhMmIxYThmNjU0YTQ3OCc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4YTc5YTQ4NTI5NGQyMjYwNzVlZTY1NDEwYmM5NGVhNDU0ZjNlNDA5ZCc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGE5NDZlNzQ4ZjI1YTVlYzY4NzhlYjFhOWYyZTkwMjAyODE3NGMwYjMnO1xufVxuXG5jbGFzcyBHb2VybGkgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdHb2VybGknO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9nb2VybGkuZXRoZXJzY2FuLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2dvZXJsaS5ldGhlcnNjYW4uaW8vYWRkcmVzcy8nO1xuICBibG9ja0V4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZ29lcmxpLmV0aGVyc2Nhbi5pby9ibG9jay8nO1xuICAvLyBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9ldGhlcmV1bWpzL2V0aGVyZXVtanMtY29tbW9uL2Jsb2IvYTk3OGY2MzA4NThmNjg0MzE3NmJiMjBiMjc3NTY5Nzg1OTE0ZTg5OS9zcmMvY2hhaW5zL2luZGV4LnRzXG4gIGNoYWluSWQgPSA1O1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4ZThlODQ3Y2Y1NzNmYzhlZDc1NjIxNjYwYTM2YWZmZDE4YzU0M2Q3ZSc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4ZjVjYWE1ZTNlOTNhZmJjMjFiZDE5ZWY0ZjI2OTFhMzcxMjFmNzkxNyc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDgwZDVjOTFlOGNjMjFkZjY5ZmM0ZDY0ZjIxZGMyZDgzMTIxYzM5OTknO1xufVxuXG5jbGFzcyBIb2xlc2t5IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnSG9sZXNreSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2hvbGVza3kuYmVhY29uY2hhLmluL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2hvbGVza3kuYmVhY29uY2hhLmluL2FkZHJlc3MvJztcbiAgYmxvY2tFeHBsb3JlclVybCA9ICdodHRwczovL2hvbGVza3kuYmVhY29uY2hhLmluL2Jsb2NrLyc7XG4gIC8vIGh0dHBzOi8vY2hhaW5saXN0Lm9yZy9jaGFpbi8xNzAwMFxuICBjaGFpbklkID0gMTcwMDA7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHhlOGU4NDdjZjU3M2ZjOGVkNzU2MjE2NjBhMzZhZmZkMThjNTQzZDdlJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHhmNWNhYTVlM2U5M2FmYmMyMWJkMTllZjRmMjY5MWEzNzEyMWY3OTE3JztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ODBkNWM5MWU4Y2MyMWRmNjlmYzRkNjRmMjFkYzJkODMxMjFjMzk5OSc7XG59XG5cbmNsYXNzIEV0aGVyZXVtQ2xhc3NpYyBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0V0aGVyZXVtQ2xhc3NpYyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRVRDO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Jsb2Nrc2NvdXQuY29tL2V0Yy9tYWlubmV0L3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2Jsb2Nrc2NvdXQuY29tL2V0Yy9tYWlubmV0L2FkZHJlc3MvJztcbiAgLy8gZnJvbSAgaHR0cHM6Ly9jaGFpbmlkLm5ldHdvcmsvY2hhaW5zL1xuICBjaGFpbklkID0gNjE7XG59XG5cbmNsYXNzIEV0aGVyZXVtQ2xhc3NpY1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdFdGhlcmV1bUNsYXNzaWNUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5FVEM7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmxvY2tzY291dC5jb20vZXRjL21vcmRvci90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ibG9ja3Njb3V0LmNvbS9ldGMvbW9yZG9yL2FkZHJlc3MvJztcbiAgLy8gZnJvbSAgaHR0cHM6Ly9jaGFpbmlkLm5ldHdvcmsvY2hhaW5zL1xuICBjaGFpbklkID0gNjM7XG59XG5cbmNsYXNzIEVvcyBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnRW9zJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5FT1M7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuZW9zbmV0d29yay5jb20vdHJhbnNhY3Rpb24vJztcbn1cblxuY2xhc3MgRW9zVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnRW9zVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRU9TO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2t5bGluLmVvc3guaW8vdHgvJztcbn1cblxuY2xhc3MgSGVkZXJhIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdIZWRlcmEnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkhCQVI7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIua2FidXRvLnNoL21haW5uZXQvdHJhbnNhY3Rpb24vJztcbn1cblxuY2xhc3MgSGVkZXJhVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnSGVkZXJhVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSEJBUjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5rYWJ1dG8uc2gvdGVzdG5ldC90cmFuc2FjdGlvbi8nO1xufVxuXG5jbGFzcyBMaXRlY29pbiBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnTGl0ZWNvaW4nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkxUQztcbiAgdXR4b2xpYk5hbWUgPSAnbGl0ZWNvaW4nO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Jsb2NrY2hhaXIuY29tL2xpdGVjb2luL3RyYW5zYWN0aW9uLyc7XG59XG5cbmNsYXNzIExpdGVjb2luVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnTGl0ZWNvaW5UZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5MVEM7XG4gIHV0eG9saWJOYW1lID0gJ2xpdGVjb2luVGVzdCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmxvY2tleHBsb3Jlci5vbmUvbGl0ZWNvaW4vdGVzdG5ldC90eC8nO1xufVxuXG5jbGFzcyBPZmMgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgT2ZjTmV0d29yayB7XG4gIG5hbWUgPSAnT2ZjJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5PRkM7XG4gIGV4cGxvcmVyVXJsID0gdW5kZWZpbmVkO1xufVxuXG5jbGFzcyBPZmNUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIE9mY05ldHdvcmsge1xuICBuYW1lID0gJ09mY1Rlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk9GQztcbiAgZXhwbG9yZXJVcmwgPSB1bmRlZmluZWQ7XG59XG5cbmNsYXNzIFJidGMgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdSYnRjJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5SQlRDO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnJzay5jby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5yc2suY28vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMzA7XG59XG5cbmNsYXNzIFJidGNUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnUmJ0Y1Rlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlJCVEM7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIudGVzdG5ldC5yc2suY28vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIudGVzdG5ldC5yc2suY28vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMzE7XG59XG5cbmNsYXNzIFN0ZWxsYXIgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1N0ZWxsYXInO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlhMTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zdGVsbGFyLmV4cGVydC9leHBsb3Jlci9wdWJsaWMvdHgvJztcbn1cblxuY2xhc3MgU3RlbGxhclRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1N0ZWxsYXJUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5YTE07XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc3RlbGxhci5leHBlcnQvZXhwbG9yZXIvdGVzdG5ldC90eC8nO1xufVxuXG5jbGFzcyBTb2wgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1NvbCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU09MO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnNvbGFuYS5jb20vdHgvJztcbn1cblxuY2xhc3MgU29sVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnU29sVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU09MO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnNvbGFuYS5jb20vdHgvP2NsdXN0ZXI9ZGV2bmV0Jztcbn1cblxuY2xhc3MgU3VpIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdTdWknO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNVSTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5zdWkuaW8vdHhibG9jay8/bmV0d29yaz1tYWlubmV0Jztcbn1cblxuY2xhc3MgU3VpVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBTdWknO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNVSTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5zdWkuaW8vdHhibG9jay8/bmV0d29yaz10ZXN0bmV0Jztcbn1cblxuY2xhc3MgQXRvbSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnQ29zbW9zIEh1YiBBVE9NJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5BVE9NO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2F0b21zY2FuLmNvbS90cmFuc2FjdGlvbnMvJztcbn1cblxuY2xhc3MgQXRvbVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgQ29zbW9zIEh1YiBBVE9NJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5BVE9NO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnRoZXRhLXRlc3RuZXQucG9seXBvcmUueHl6L3RyYW5zYWN0aW9ucy8nO1xufVxuXG5jbGFzcyBPc21vIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdPc21vc2lzJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5PU01PO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3d3dy5taW50c2Nhbi5pby9vc21vc2lzL3R4cy8nO1xufVxuXG5jbGFzcyBPc21vVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBPc21vc2lzJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5PU01PO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQub3Ntb3Npcy5leHBsb3JlcnMuZ3VydS90cmFuc2FjdGlvbi8nO1xufVxuXG5jbGFzcyBUaWEgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0NlbGVzdGlhJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5USUE7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd3d3Lm1pbnRzY2FuLmlvL2NlbGVzdGlhL3R4Lyc7XG59XG5cbmNsYXNzIFRpYVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgQ2VsZXN0aWEnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlRJQTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0Lm1pbnRzY2FuLmlvL2NlbGVzdGlhLXRlc3RuZXQvdHhzLyc7XG59XG5cbmNsYXNzIEhhc2ggZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1Byb3ZlbmFuY2UnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkhBU0g7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIucHJvdmVuYW5jZS5pby90eC8nO1xufVxuXG5jbGFzcyBIYXNoVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBQcm92ZW5hbmNlJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5IQVNIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnRlc3QucHJvdmVuYW5jZS5pby90eC8nO1xufVxuXG5jbGFzcyBCbGQgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0Fnb3JpYyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQkxEO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2JpZ2RpcHBlci5saXZlL2Fnb3JpYy90cmFuc2FjdGlvbnMvJztcbn1cblxuY2xhc3MgQmxkVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBBZ29yaWMnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJMRDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9lbWVyeW5ldC5leHBsb3Jlci5hZ29yaWMubmV0L2Fnb3JpYy90eC8nO1xufVxuXG5jbGFzcyBTZWkgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1NlaSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU0VJO1xuICAvLyAgVE9ETyhCRy03ODk5Nyk6IFNlaSBpcyBzdGlsbCBvbmx5IGluIHRlc3RuZXQgdXBkYXRlIHRvIG1haW5uZXQgdXJsIHdoZW4gaXQncyBsaXZlXG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2VpLmV4cGxvcmVycy5ndXJ1L3RyYW5zYWN0aW9uLyc7XG59XG5cbmNsYXNzIFNlaVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgU2VpJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TRUk7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd3d3LnNlaXNjYW4uYXBwL2F0bGFudGljLTIvdHhzLyc7XG59XG5cbmNsYXNzIFpldGEgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1pldGEnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlpFVEE7XG4gIC8vICBUT0RPKFdJTi0xNDIpOiBaZXRhIGlzIHN0aWxsIG9ubHkgaW4gdGVzdG5ldCB1cGRhdGUgdG8gbWFpbm5ldCB1cmwgd2hlbiBpdCdzIGxpdmVcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci56ZXRhY2hhaW4uY29tL2NjL3R4Lyc7XG59XG5cbmNsYXNzIFpldGFUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IFpldGEnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlpFVEE7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuemV0YWNoYWluLmNvbS9jb3Ntb3MvdHgvJztcbn1cblxuY2xhc3MgSW5qZWN0aXZlIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdJbmplY3RpdmUnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LklOSkVDVElWRTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5pbmplY3RpdmUubmV0d29yay90cmFuc2FjdGlvbi8nO1xufVxuXG5jbGFzcyBJbmplY3RpdmVUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdJbmplY3RpdmVUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5JTkpFQ1RJVkU7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5leHBsb3Jlci5pbmplY3RpdmUubmV0d29yay90cmFuc2FjdGlvbi8nO1xufVxuXG5jbGFzcyBLYXZhIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdLYXZhJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5LQVZBO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3d3dy5taW50c2Nhbi5pby9rYXZhL3RyYW5zYWN0aW9ucy8nO1xufVxuXG5jbGFzcyBLYXZhVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnS2F2YVRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LktBVkE7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5taW50c2Nhbi5pby9rYXZhLXRlc3RuZXQvdHhzLyc7XG59XG5cbmNsYXNzIFRvbiBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnVG9uJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5UT047XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vaHR0cHM6Ly90b25zY2FuLm9yZy8nO1xufVxuXG5jbGFzcyBUb25UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IFRvbic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuVE9OO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2h0dHBzOi8vdGVzdG5ldC50b25zY2FuLm9yZy8nO1xufVxuXG5jbGFzcyBDb3JldW0gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0NvcmV1bSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ09SRVVNO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmNvcmV1bS5jb20vY29yZXVtL3RyYW5zYWN0aW9ucy8nO1xufVxuXG5jbGFzcyBDb3JldW1UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdDb3JldW1UZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5DT1JFVU07XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIudGVzdG5ldC0xLmNvcmV1bS5kZXYvY29yZXVtL3RyYW5zYWN0aW9ucy8nO1xufVxuXG5jbGFzcyBCZXJhIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdCZXJhY2hhaW4nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJFUkE7XG4gIGV4cGxvcmVyVXJsID0gdW5kZWZpbmVkO1xufVxuXG5jbGFzcyBCZXJhVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnQmVyYWNoYWluVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQkVSQTtcbiAgZXhwbG9yZXJVcmwgPSB1bmRlZmluZWQ7XG59XG5cbmNsYXNzIElzbG0gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0hhcXEnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LklTTE07XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vcGluZy5wdWIvaGFxcS90eC8nO1xufVxuXG5jbGFzcyBJc2xtVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnSGFxcVRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LklTTE07XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5waW5nLnB1Yi9oYXFxL3R4Lyc7XG59XG5cbmNsYXNzIFN0eCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBTdGFja3NOZXR3b3JrIHtcbiAgbmFtZSA9ICdTdHgnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNUWDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5zdGFja3MuY28vdHhpZC8nO1xuICBzZW5kbWFueW1lbW9Db250cmFjdEFkZHJlc3MgPSAnU1AzRkJSMkFHSzVIOVFCREgzRUVONkRGOEVLOEpZN1JYOFFKNVNWVEUnO1xuICBzdGFraW5nQ29udHJhY3RBZGRyZXNzID0gJ1NQMDAwMDAwMDAwMDAwMDAwMDAwMDAyUTZWRjc4Jztcbn1cblxuY2xhc3MgU3R4VGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBTdGFja3NOZXR3b3JrIHtcbiAgbmFtZSA9ICdTdHhUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TVFg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuc3RhY2tzLmNvL3R4aWQvP2NoYWluPXRlc3RuZXQnO1xuICBzZW5kbWFueW1lbW9Db250cmFjdEFkZHJlc3MgPSAnU1QzRjFYNFFHVjJTTThYRDk2WDQ1TTZSVFFYS0ExUFpKWlpDUUFCNEInO1xuICBzdGFraW5nQ29udHJhY3RBZGRyZXNzID0gJ1NUMDAwMDAwMDAwMDAwMDAwMDAwMDAyQU1XNDJIJztcbn1cblxuY2xhc3MgU1VTRCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnU1VTRCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU1VTRDtcbiAgZXhwbG9yZXJVcmwgPSB1bmRlZmluZWQ7XG59XG5cbmNsYXNzIFNVU0RUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdTVVNEVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU1VTRDtcbiAgZXhwbG9yZXJVcmwgPSB1bmRlZmluZWQ7XG59XG5cbmNsYXNzIEZpYXRUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEJhc2VOZXR3b3JrIHtcbiAgbmFtZSA9ICdGaWF0VGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRklBVDtcbiAgZXhwbG9yZXJVcmwgPSB1bmRlZmluZWQ7XG59XG5cbmNsYXNzIEZpYXQgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQmFzZU5ldHdvcmsge1xuICBuYW1lID0gJ0ZpYXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkZJQVQ7XG4gIGV4cGxvcmVyVXJsID0gdW5kZWZpbmVkO1xufVxuXG5jbGFzcyBUcnggZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgVHJvbk5ldHdvcmsge1xuICBuYW1lID0gJ1RyeCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuVFJYO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Ryb25zY2FuLm9yZy8jL3RyYW5zYWN0aW9uLyc7XG4gIG1heEZlZUxpbWl0ID0gJzUwMDAwMDAwMDAnO1xuICBjb250cmFjdENhbGxGZWVMaW1pdCA9ICcxMDAwMDAwMDAnO1xufVxuXG5jbGFzcyBUcnhUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIFRyb25OZXR3b3JrIHtcbiAgbmFtZSA9ICdUcnhUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5UUlg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2hhc3RhLnRyb25zY2FuLm9yZy8jL3RyYW5zYWN0aW9uLyc7XG4gIG1heEZlZUxpbWl0ID0gJzUwMDAwMDAwMDAnO1xuICBjb250cmFjdENhbGxGZWVMaW1pdCA9ICcxMDAwMDAwMDAnO1xufVxuXG5jbGFzcyBYcnAgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1hycCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWFJQO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2xpdmVuZXQueHJwbC5vcmcvdHJhbnNhY3Rpb25zLyc7XG59XG5cbmNsYXNzIFhycFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1hycFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlhSUDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0LmJpdGhvbXAuY29tL2V4cGxvcmVyLyc7XG59XG5cbmNsYXNzIFh0eiBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnWHR6JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5YVFo7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdHpzdGF0cy5jb20vJztcbn1cblxuY2xhc3MgWHR6VGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnWHR6VGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWFRaO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL211bWJhaS50enN0YXRzLmNvbS8nO1xufVxuXG5jbGFzcyBaQ2FzaCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnWkNhc2gnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlpFQztcbiAgdXR4b2xpYk5hbWUgPSAnemNhc2gnO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2NoYWluLnNvL3R4L1pFQy8nO1xufVxuXG5jbGFzcyBaQ2FzaFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ1pDYXNoVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWkVDO1xuICB1dHhvbGliTmFtZSA9ICd6Y2FzaFRlc3QnO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2NoYWluLnNvL3R4L1pFQ1RFU1QvJztcbn1cblxuY2xhc3MgTmVhciBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnTmVhcic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuTkVBUjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5uZWFyLm9yZy90cmFuc2FjdGlvbnMvJztcbiAgZmVlUmVzZXJ2ZSA9ICc1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMCc7XG4gIHN0b3JhZ2VSZXNlcnZlID0gJzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAnOyAvLyBmZWVSZXNlcnZlICsgc3RvcmFnZVJlc2VydmUgaXMgbWluaW11bSBhY2NvdW50IGJhbGFuY2UgZm9yIGEgTkVBUiB3YWxsZXQgaHR0cHM6Ly9kb2NzLm5lYXIub3JnL2ludGVncmF0b3IvZmFxI2lzLXRoZXJlLWEtbWluaW11bS1hY2NvdW50LWJhbGFuY2Vcbn1cblxuY2xhc3MgTmVhclRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ05lYXJUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5ORUFSO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnRlc3RuZXQubmVhci5vcmcvdHJhbnNhY3Rpb25zLyc7XG4gIGZlZVJlc2VydmUgPSAnNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnO1xuICBzdG9yYWdlUmVzZXJ2ZSA9ICcyMDAwMDAwMDAwMDAwMDAwMDAwMDAwJzsgLy8gZmVlUmVzZXJ2ZSArIHN0b3JhZ2VSZXNlcnZlIGlzIG1pbmltdW0gYWNjb3VudCBiYWxhbmNlIGZvciBhIE5FQVIgd2FsbGV0IGh0dHBzOi8vZG9jcy5uZWFyLm9yZy9pbnRlZ3JhdG9yL2ZhcSNpcy10aGVyZS1hLW1pbmltdW0tYWNjb3VudC1iYWxhbmNlXG59XG5cbmNsYXNzIFBvbHlnb24gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdQb2x5Z29uJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5QT0xZR09OO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3BvbHlnb25zY2FuLmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9wb2x5Z29uc2Nhbi5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTM3O1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDI5ZWY0NjAzNWU5ZmEzZDU3MGM1OThkMzI2NjQyNGNhMTE0MTNiMGMnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg1Mzk3ZDA4NjlhYmEwZDU1ZTk2ZDU3MTZkMzgzZjZlMWQ4Njk1ZWQ3JztcbiAgd2FsbGV0RmFjdG9yeUFkZHJlc3MgPSAnMHhhNzE5OGY0OGM1OGU5MWYwMTMxN2U3MGNkMjRjNWNjZTQ3NWMxNTU1JztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZTVkY2RjMTNiNjI4YzJkZjgxM2RiMTA4MDM2N2U5MjljMTUwN2NhMCc7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHg3YWRjOWIzZDc1MjE3MTAzMjFiZWM3ZGQ2ODk3ZDMzN2U1M2MyNDkzJztcbn1cblxuY2xhc3MgUG9seWdvblRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdQb2x5Z29uVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuUE9MWUdPTjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9tdW1iYWkucG9seWdvbnNjYW4uY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL211bWJhaS5wb2x5Z29uc2Nhbi5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gODAwMDE7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4N2QxMGNmZGNiNzYzMzc1ZmI1ZjBhMGU5MTAxZjQ5MGYwYmYxYjQzYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGFhMjIxNmQ3MmQ3YzE0OWRmZTRjM2RkMjE1NGNkMDA5OTQyMTY1MDYnO1xuICB3YWxsZXRGYWN0b3J5QWRkcmVzcyA9ICcweGUzN2MwN2ZhZWM4N2JlMDc1Y2U0MDAyYjVmZWRiZGUwMGE0ZmU5ZDUnO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHgxMWY4ZDcwYTRlZTlkMDk2MmJiMTE2MGQ3NzZkNGE5OTZjZmRmZjQwJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweGNkZjAxYTMxZWEyYTFkNjI5NTFhYWMzYTU3NDNjNDQxNmY5ZGEzZmInO1xufVxuXG5jbGFzcyBPcHRpbWlzbSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ09wdGltaXNtJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5PUEVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9vcHRpbWlzdGljLmV0aGVyc2Nhbi5pby8gdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vb3B0aW1pc3RpYy5ldGhlcnNjYW4uaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTA7XG59XG5cbmNsYXNzIE9wdGltaXNtVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ09wdGltaXNtVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuT1BFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vb3B0aW1pc20tc2Vwb2xpYS5ibG9ja3Njb3V0LmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9vcHRpbWlzbS1zZXBvbGlhLmJsb2Nrc2NvdXQuY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDExMTU1NDIwO1xufVxuXG5leHBvcnQgY29uc3QgTmV0d29ya3MgPSB7XG4gIG1haW46IHtcbiAgICBhZGE6IE9iamVjdC5mcmVlemUobmV3IEFkYSgpKSxcbiAgICBhbGdvcmFuZDogT2JqZWN0LmZyZWV6ZShuZXcgQWxnb3JhbmQoKSksXG4gICAgYXJiaXRydW06IE9iamVjdC5mcmVlemUobmV3IEFyYml0cnVtKCkpLFxuICAgIGF0b206IE9iamVjdC5mcmVlemUobmV3IEF0b20oKSksXG4gICAgYXZhbGFuY2hlQzogT2JqZWN0LmZyZWV6ZShuZXcgQXZhbGFuY2hlQygpKSxcbiAgICBhdmFsYW5jaGVQOiBPYmplY3QuZnJlZXplKG5ldyBBdmFsYW5jaGVQKCkpLFxuICAgIGJpdGNvaW46IE9iamVjdC5mcmVlemUobmV3IEJpdGNvaW4oKSksXG4gICAgYml0Y29pbkNhc2g6IE9iamVjdC5mcmVlemUobmV3IEJpdGNvaW5DYXNoKCkpLFxuICAgIGJpdGNvaW5Hb2xkOiBPYmplY3QuZnJlZXplKG5ldyBCaXRjb2luR29sZCgpKSxcbiAgICBiaXRjb2luU1Y6IE9iamVjdC5mcmVlemUobmV3IEJpdGNvaW5TVigpKSxcbiAgICBiZXJhOiBPYmplY3QuZnJlZXplKG5ldyBCZXJhKCkpLFxuICAgIGJsZDogT2JqZWN0LmZyZWV6ZShuZXcgQmxkKCkpLFxuICAgIGJzYzogT2JqZWN0LmZyZWV6ZShuZXcgQmluYW5jZVNtYXJ0Q2hhaW4oKSksXG4gICAgY2FzcGVyOiBPYmplY3QuZnJlZXplKG5ldyBDYXNwZXIoKSksXG4gICAgY2VsbzogT2JqZWN0LmZyZWV6ZShuZXcgQ2VsbygpKSxcbiAgICBjb3JldW06IE9iamVjdC5mcmVlemUobmV3IENvcmV1bSgpKSxcbiAgICBkYXNoOiBPYmplY3QuZnJlZXplKG5ldyBEYXNoKCkpLFxuICAgIGRvZ2Vjb2luOiBPYmplY3QuZnJlZXplKG5ldyBEb2dlY29pbigpKSxcbiAgICBkb3Q6IE9iamVjdC5mcmVlemUobmV3IFBvbGthZG90KCkpLFxuICAgIGVDYXNoOiBPYmplY3QuZnJlZXplKG5ldyBFQ2FzaCgpKSxcbiAgICBlb3M6IE9iamVjdC5mcmVlemUobmV3IEVvcygpKSxcbiAgICBldGhlcmV1bTogT2JqZWN0LmZyZWV6ZShuZXcgRXRoZXJldW0oKSksXG4gICAgZXRoZXJldW0yOiBPYmplY3QuZnJlZXplKG5ldyBFdGhlcmV1bTIoKSksXG4gICAgZXRoZXJldW1DbGFzc2ljOiBPYmplY3QuZnJlZXplKG5ldyBFdGhlcmV1bUNsYXNzaWMoKSksXG4gICAgZXRoZXJldW1XOiBPYmplY3QuZnJlZXplKG5ldyBFdGhlcmV1bVcoKSksXG4gICAgZmlhdDogT2JqZWN0LmZyZWV6ZShuZXcgRmlhdCgpKSxcbiAgICBoYXNoOiBPYmplY3QuZnJlZXplKG5ldyBIYXNoKCkpLFxuICAgIGhlZGVyYTogT2JqZWN0LmZyZWV6ZShuZXcgSGVkZXJhKCkpLFxuICAgIGluamVjdGl2ZTogT2JqZWN0LmZyZWV6ZShuZXcgSW5qZWN0aXZlKCkpLFxuICAgIGlzbG06IE9iamVjdC5mcmVlemUobmV3IElzbG0oKSksXG4gICAga2F2YTogT2JqZWN0LmZyZWV6ZShuZXcgS2F2YSgpKSxcbiAgICBsaXRlY29pbjogT2JqZWN0LmZyZWV6ZShuZXcgTGl0ZWNvaW4oKSksXG4gICAgcG9seWdvbjogT2JqZWN0LmZyZWV6ZShuZXcgUG9seWdvbigpKSxcbiAgICBvZmM6IE9iamVjdC5mcmVlemUobmV3IE9mYygpKSxcbiAgICBvcHRpbWlzbTogT2JqZWN0LmZyZWV6ZShuZXcgT3B0aW1pc20oKSksXG4gICAgb3NtbzogT2JqZWN0LmZyZWV6ZShuZXcgT3NtbygpKSxcbiAgICByYnRjOiBPYmplY3QuZnJlZXplKG5ldyBSYnRjKCkpLFxuICAgIHN0ZWxsYXI6IE9iamVjdC5mcmVlemUobmV3IFN0ZWxsYXIoKSksXG4gICAgc2VpOiBPYmplY3QuZnJlZXplKG5ldyBTZWkoKSksXG4gICAgc29sOiBPYmplY3QuZnJlZXplKG5ldyBTb2woKSksXG4gICAgc3VpOiBPYmplY3QuZnJlZXplKG5ldyBTdWkoKSksXG4gICAgbmVhcjogT2JqZWN0LmZyZWV6ZShuZXcgTmVhcigpKSxcbiAgICBzdHg6IE9iamVjdC5mcmVlemUobmV3IFN0eCgpKSxcbiAgICBzdXNkOiBPYmplY3QuZnJlZXplKG5ldyBTVVNEKCkpLFxuICAgIHRpYTogT2JqZWN0LmZyZWV6ZShuZXcgVGlhKCkpLFxuICAgIHRvbjogT2JqZWN0LmZyZWV6ZShuZXcgVG9uKCkpLFxuICAgIHRyeDogT2JqZWN0LmZyZWV6ZShuZXcgVHJ4KCkpLFxuICAgIHhycDogT2JqZWN0LmZyZWV6ZShuZXcgWHJwKCkpLFxuICAgIHh0ejogT2JqZWN0LmZyZWV6ZShuZXcgWHR6KCkpLFxuICAgIHpDYXNoOiBPYmplY3QuZnJlZXplKG5ldyBaQ2FzaCgpKSxcbiAgICB6ZXRhOiBPYmplY3QuZnJlZXplKG5ldyBaZXRhKCkpLFxuICB9LFxuICB0ZXN0OiB7XG4gICAgYWRhOiBPYmplY3QuZnJlZXplKG5ldyBBZGFUZXN0bmV0KCkpLFxuICAgIGFsZ29yYW5kOiBPYmplY3QuZnJlZXplKG5ldyBBbGdvcmFuZFRlc3RuZXQoKSksXG4gICAgYXJiaXRydW06IE9iamVjdC5mcmVlemUobmV3IEFyYml0cnVtVGVzdG5ldCgpKSxcbiAgICBhdG9tOiBPYmplY3QuZnJlZXplKG5ldyBBdG9tVGVzdG5ldCgpKSxcbiAgICBhdmFsYW5jaGVDOiBPYmplY3QuZnJlZXplKG5ldyBBdmFsYW5jaGVDVGVzdG5ldCgpKSxcbiAgICBhdmFsYW5jaGVQOiBPYmplY3QuZnJlZXplKG5ldyBBdmFsYW5jaGVQVGVzdG5ldCgpKSxcbiAgICBiaXRjb2luOiBPYmplY3QuZnJlZXplKG5ldyBCaXRjb2luVGVzdG5ldCgpKSxcbiAgICBiaXRjb2luQ2FzaDogT2JqZWN0LmZyZWV6ZShuZXcgQml0Y29pbkNhc2hUZXN0bmV0KCkpLFxuICAgIGJpdGNvaW5Hb2xkOiBPYmplY3QuZnJlZXplKG5ldyBCaXRjb2luR29sZFRlc3RuZXQoKSksXG4gICAgYml0Y29pblNWOiBPYmplY3QuZnJlZXplKG5ldyBCaXRjb2luU1ZUZXN0bmV0KCkpLFxuICAgIGJlcmE6IE9iamVjdC5mcmVlemUobmV3IEJlcmFUZXN0bmV0KCkpLFxuICAgIGJsZDogT2JqZWN0LmZyZWV6ZShuZXcgQmxkVGVzdG5ldCgpKSxcbiAgICBic2M6IE9iamVjdC5mcmVlemUobmV3IEJpbmFuY2VTbWFydENoYWluVGVzdG5ldCgpKSxcbiAgICBjYXNwZXI6IE9iamVjdC5mcmVlemUobmV3IENhc3BlclRlc3RuZXQoKSksXG4gICAgY2VsbzogT2JqZWN0LmZyZWV6ZShuZXcgQ2Vsb1Rlc3RuZXQoKSksXG4gICAgZGFzaDogT2JqZWN0LmZyZWV6ZShuZXcgRGFzaFRlc3RuZXQoKSksXG4gICAgZG9nZWNvaW46IE9iamVjdC5mcmVlemUobmV3IERvZ2Vjb2luVGVzdG5ldCgpKSxcbiAgICBkb3Q6IE9iamVjdC5mcmVlemUobmV3IFBvbGthZG90VGVzdG5ldCgpKSxcbiAgICBlQ2FzaDogT2JqZWN0LmZyZWV6ZShuZXcgRUNhc2hUZXN0bmV0KCkpLFxuICAgIGVvczogT2JqZWN0LmZyZWV6ZShuZXcgRW9zVGVzdG5ldCgpKSxcbiAgICBmaWF0OiBPYmplY3QuZnJlZXplKG5ldyBGaWF0VGVzdG5ldCgpKSxcbiAgICBweXJtb250OiBPYmplY3QuZnJlZXplKG5ldyBQeXJtb250KCkpLFxuICAgIGV0aGVyZXVtQ2xhc3NpY1Rlc3RuZXQ6IE9iamVjdC5mcmVlemUobmV3IEV0aGVyZXVtQ2xhc3NpY1Rlc3RuZXQoKSksXG4gICAgaGFzaDogT2JqZWN0LmZyZWV6ZShuZXcgSGFzaFRlc3RuZXQoKSksXG4gICAgaGVkZXJhOiBPYmplY3QuZnJlZXplKG5ldyBIZWRlcmFUZXN0bmV0KCkpLFxuICAgIGluamVjdGl2ZTogT2JqZWN0LmZyZWV6ZShuZXcgSW5qZWN0aXZlVGVzdG5ldCgpKSxcbiAgICBpc2xtOiBPYmplY3QuZnJlZXplKG5ldyBJc2xtVGVzdG5ldCgpKSxcbiAgICBrYXZhOiBPYmplY3QuZnJlZXplKG5ldyBLYXZhVGVzdG5ldCgpKSxcbiAgICBrb3ZhbjogT2JqZWN0LmZyZWV6ZShuZXcgS292YW4oKSksXG4gICAgZ29lcmxpOiBPYmplY3QuZnJlZXplKG5ldyBHb2VybGkoKSksXG4gICAgaG9sZXNreTogT2JqZWN0LmZyZWV6ZShuZXcgSG9sZXNreSgpKSxcbiAgICBsaXRlY29pbjogT2JqZWN0LmZyZWV6ZShuZXcgTGl0ZWNvaW5UZXN0bmV0KCkpLFxuICAgIHBvbHlnb246IE9iamVjdC5mcmVlemUobmV3IFBvbHlnb25UZXN0bmV0KCkpLFxuICAgIG9mYzogT2JqZWN0LmZyZWV6ZShuZXcgT2ZjVGVzdG5ldCgpKSxcbiAgICBvcHRpbWlzbTogT2JqZWN0LmZyZWV6ZShuZXcgT3B0aW1pc21UZXN0bmV0KCkpLFxuICAgIG9zbW86IE9iamVjdC5mcmVlemUobmV3IE9zbW9UZXN0bmV0KCkpLFxuICAgIHJidGM6IE9iamVjdC5mcmVlemUobmV3IFJidGNUZXN0bmV0KCkpLFxuICAgIHN0ZWxsYXI6IE9iamVjdC5mcmVlemUobmV3IFN0ZWxsYXJUZXN0bmV0KCkpLFxuICAgIHNlaTogT2JqZWN0LmZyZWV6ZShuZXcgU2VpVGVzdG5ldCgpKSxcbiAgICBzb2w6IE9iamVjdC5mcmVlemUobmV3IFNvbFRlc3RuZXQoKSksXG4gICAgc3VpOiBPYmplY3QuZnJlZXplKG5ldyBTdWlUZXN0bmV0KCkpLFxuICAgIG5lYXI6IE9iamVjdC5mcmVlemUobmV3IE5lYXJUZXN0bmV0KCkpLFxuICAgIHN0eDogT2JqZWN0LmZyZWV6ZShuZXcgU3R4VGVzdG5ldCgpKSxcbiAgICBzdXNkOiBPYmplY3QuZnJlZXplKG5ldyBTVVNEVGVzdG5ldCgpKSxcbiAgICBjb3JldW06IE9iamVjdC5mcmVlemUobmV3IENvcmV1bVRlc3RuZXQoKSksXG4gICAgdGlhOiBPYmplY3QuZnJlZXplKG5ldyBUaWFUZXN0bmV0KCkpLFxuICAgIHRvbjogT2JqZWN0LmZyZWV6ZShuZXcgVG9uVGVzdG5ldCgpKSxcbiAgICB0cng6IE9iamVjdC5mcmVlemUobmV3IFRyeFRlc3RuZXQoKSksXG4gICAgeHJwOiBPYmplY3QuZnJlZXplKG5ldyBYcnBUZXN0bmV0KCkpLFxuICAgIHh0ejogT2JqZWN0LmZyZWV6ZShuZXcgWHR6VGVzdG5ldCgpKSxcbiAgICB6Q2FzaDogT2JqZWN0LmZyZWV6ZShuZXcgWkNhc2hUZXN0bmV0KCkpLFxuICAgIHpldGE6IE9iamVjdC5mcmVlemUobmV3IFpldGFUZXN0bmV0KCkpLFxuICB9LFxufTtcbiJdfQ==
3106
+ const networkByName = new Map(Object.values(exports.Networks).flatMap((category) => Object.values(category).map((network) => [network.name, network])));
3107
+ /**
3108
+ * Look up a registered network by its display name (e.g. "Ethereum", "Bitcoin").
3109
+ * Returns undefined for names not registered in local statics.
3110
+ */
3111
+ function getNetworkByName(name) {
3112
+ return networkByName.get(name);
3113
+ }
3114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29ya3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmV0d29ya3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBNnVGQSw0Q0FFQztBQWxzRkQsaUNBQW9DO0FBRXBDLElBQVksV0FHWDtBQUhELFdBQVksV0FBVztJQUNyQixrQ0FBbUIsQ0FBQTtJQUNuQixrQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBSFcsV0FBVywyQkFBWCxXQUFXLFFBR3RCO0FBRUQsTUFBc0IsV0FBVztDQUtoQztBQUxELGtDQUtDO0FBeUlELE1BQWUsT0FBUSxTQUFRLFdBQVc7SUFBMUM7O1FBQ0UsU0FBSSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUM7SUFDN0IsQ0FBQztDQUFBO0FBRUQsTUFBZSxPQUFRLFNBQVEsV0FBVztJQUExQzs7UUFDRSxTQUFJLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQztJQUM3QixDQUFDO0NBQUE7QUFFRCxNQUFNLFFBQVMsU0FBUSxPQUFPO0lBQTlCOztRQUNFLFNBQUksR0FBRyxVQUFVLENBQUM7UUFDbEIsV0FBTSxHQUFHLGlCQUFVLENBQUMsSUFBSSxDQUFDO1FBQ3pCLGdCQUFXLEdBQUcsdUJBQXVCLENBQUM7SUFDeEMsQ0FBQztDQUFBO0FBRUQsTUFBTSxlQUFnQixTQUFRLE9BQU87SUFBckM7O1FBQ0UsU0FBSSxHQUFHLGlCQUFpQixDQUFDO1FBQ3pCLFdBQU0sR0FBRyxpQkFBVSxDQUFDLElBQUksQ0FBQztRQUN6QixnQkFBVyxHQUFHLG1EQUFtRCxDQUFDO0lBQ3BFLENBQUM7Q0FBQTtBQUVELE1BQU0sR0FBSSxTQUFRLE9BQU87SUFBekI7O1FBQ0UsU0FBSSxHQUFHLFlBQVksQ0FBQztRQUNwQixXQUFNLEdBQUcsaUJBQVUsQ0FBQyxHQUFHLENBQUM7UUFDeEIsZ0JBQVcsR0FBRyxTQUFTLENBQUM7UUFDeEIsZ0JBQVcsR0FBRyxTQUFTLENBQUM7UUFDeEIsb0JBQWUsR0FBRyxPQUFPLENBQUM7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RSxDQUFDO1FBQ25DLFNBQVMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksU0FBUyxFQUFFLENBQUM7UUFDekMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNyQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ25DLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDN0IsRUFBRSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUMzQixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ25DLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDL0IsU0FBUyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUN6QyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQy9CLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDL0IsUUFBUSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUN2QyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQy9CLFVBQVUsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksVUFBVSxFQUFFLENBQUM7UUFDM0MsT0FBTyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNyQyxLQUFLLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFDNUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxRQUFRLEVBQUUs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QUFNLENBQUMsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUMxQyxRQUFRLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQzlDLE9BQU8sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksY0FBYyxFQUFFLENBQUM7UUFDNUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUMxQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ3RDLFFBQVEsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksZUFBZSxFQUFFLENBQUM7UUFDOUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUMxQyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3pDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksV0FBVyxFQUFFLENBQUM7UUFDdEMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN4QyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksV0FBVyxFQUFFLENBQUM7UUFDdEMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUM1QyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ3RDLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdEMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUN4QyxTQUFTLEVBQUUsTUFBTSxDQUFDLE1BQU0s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QUFNLENBQUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN4QyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksVUFBVSxFQUFFLENBQUM7UUFDcEMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNwQyxLQUFLLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3hDLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksVUFBVSxFQUFFLENBQUM7UUFDcEMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN4QyxLQUFLLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3hDLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksVUFBVSxFQUFFLENBQUM7UUFDcEMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUN2QyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksVUFBVSxFQUFFLENBQUM7UUFDcEMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUMxQyxLQUFLLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3hDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksV0FBVyxFQUFFLENBQUM7UUFDdEMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUMxQyxTQUFTLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFDaEQsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxhQUFhLEVBQUUsQ0FBQztLQUMzQztDQUNGLENBQUM7QUFFRixNQUFNLGFBQWEsR0FBNkIsSUFBSSxHQUFHLENBQ3JELE1BQU0sQ0FBQyxNQUFNLENBQUMsZ0JBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQ2pILENBQUM7QUFFRjs7O0dBR0c7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxJQUFZO0lBQzNDLE9BQU8sYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNqQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gRmxhcmVOZXR3b3JrIGludGVyZmFjZSBmb3IgRmxhcmUtZmFtaWx5IGNoYWluc1xuZXhwb3J0IGludGVyZmFjZSBGbGFyZU5ldHdvcmsgZXh0ZW5kcyBCYXNlTmV0d29yayB7XG4gIG5hbWU6IHN0cmluZztcbiAgZmFtaWx5OiBDb2luRmFtaWx5O1xuICBleHBsb3JlclVybDogc3RyaW5nO1xuICBhY2NvdW50RXhwbG9yZXJVcmw6IHN0cmluZztcbiAgY2hhaW5JZD86IG51bWJlcjtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXg/OiBzdHJpbmc7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3M/OiBzdHJpbmc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzPzogc3RyaW5nO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3M/OiBzdHJpbmc7XG4gIGJsb2NrY2hhaW5JRDogc3RyaW5nO1xuICBjQ2hhaW5CbG9ja2NoYWluSUQ6IHN0cmluZztcbiAgbmV0d29ya0lEOiBudW1iZXI7XG4gIGhycDogc3RyaW5nO1xuICBhbGlhczogc3RyaW5nO1xuICBhc3NldElkOiBzdHJpbmc7XG4gIHZtPzogc3RyaW5nO1xuICB0eEZlZTogc3RyaW5nO1xuICBtaW5JbXBvcnRUb1BGZWU6IHN0cmluZztcbiAgbWF4SW1wb3J0RmVlOiBzdHJpbmc7XG4gIGNyZWF0ZVN1Ym5ldFR4Pzogc3RyaW5nO1xuICBjcmVhdGVDaGFpblR4Pzogc3RyaW5nO1xuICBjcmVhdGlvblR4RmVlPzogc3RyaW5nO1xuICBtaW5Db25zdW1wdGlvbj86IHN0cmluZztcbiAgbWF4Q29uc3VtcHRpb24/OiBzdHJpbmc7XG4gIG1heFN1cHBseT86IHN0cmluZztcbiAgbWluU3Rha2U6IHN0cmluZztcbiAgbWluU3Rha2VEdXJhdGlvbj86IHN0cmluZztcbiAgbWF4U3Rha2VEdXJhdGlvbj86IHN0cmluZztcbiAgbWluRGVsZWdhdGlvblN0YWtlPzogc3RyaW5nO1xuICBtaW5EZWxlZ2F0aW9uRmVlPzogc3RyaW5nO1xuICBmbGFyZVB1YmxpY1VybD86IHN0cmluZztcbiAgYmFzZVR4RmVlPzogc3RyaW5nO1xuICBjcmVhdGVBc3NldFR4RmVlPzogc3RyaW5nO1xuICBjcmVhdGVTdWJuZXRUeEZlZT86IHN0cmluZztcbiAgdHJhbnNmb3JtU3VibmV0VHhGZWU/OiBzdHJpbmc7XG4gIGNyZWF0ZUJsb2NrY2hhaW5UeEZlZT86IHN0cmluZztcbiAgYWRkUHJpbWFyeU5ldHdvcmtWYWxpZGF0b3JGZWU/OiBzdHJpbmc7XG4gIGFkZFByaW1hcnlOZXR3b3JrRGVsZWdhdG9yRmVlPzogc3RyaW5nO1xuICBhZGRTdWJuZXRWYWxpZGF0b3JGZWU/OiBzdHJpbmc7XG4gIGFkZFN1Ym5ldERlbGVnYXRvckZlZT86IHN0cmluZztcbiAgeENoYWluQmxvY2tjaGFpbklEPzogc3RyaW5nO1xufVxuXG5pbXBvcnQgeyBDb2luRmFtaWx5IH0gZnJvbSAnLi9iYXNlJztcblxuZXhwb3J0IGVudW0gTmV0d29ya1R5cGUge1xuICBNQUlOTkVUID0gJ21haW5uZXQnLFxuICBURVNUTkVUID0gJ3Rlc3RuZXQnLFxufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZU5ldHdvcmsge1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgdHlwZTogTmV0d29ya1R5cGU7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBmYW1pbHk6IENvaW5GYW1pbHk7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBleHBsb3JlclVybDogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFV0eG9OZXR3b3JrIGV4dGVuZHMgQmFzZU5ldHdvcmsge1xuICAvLyBOZXR3b3JrIG5hbWUgYXMgZGVmaW5lZCBpbiBAYml0Z28tYmV0YS91dHhvLWxpYiBuZXR3b3Jrcy50c1xuICB1dHhvbGliTmFtZTogc3RyaW5nO1xuICBwYXlnb0FkZHJlc3NBdHRlc3RhdGlvblB1YmtleT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaWdodG5pbmdOZXR3b3JrIGV4dGVuZHMgVXR4b05ldHdvcmsge1xuICAvKipcbiAgICogVGhlIHB1YmxpYyBrZXkgb2YgdGhlIExpZ2h0bmluZyBzZXJ2aWNlLCB1c2VkIGZvciBkZXJpdmluZyB0aGUgc2hhcmVkIEVsbGlwdGljIEN1cnZlIERpZmZpZS1IZWxsbWFuIChFQ0RIKSBzZWNyZXRcbiAgICogYmV0d2VlbiB0aGUgdXNlcidzIGV4dGVuZGVkIHByaXZhdGUga2V5IGFuZCB0aGUgTGlnaHRuaW5nIHNlcnZpY2UuIFRoaXMga2V5IGZhY2lsaXRhdGVzIHNlY3VyZSBjb21tdW5pY2F0aW9uXG4gICAqIGJ5IGVuYWJsaW5nIHRoZSBjcmVhdGlvbiBvZiBhIHNoYXJlZCBzZWNyZXQgZm9yIGVuY3J5cHRpb24gYW5kIGRlY3J5cHRpb24gb2YgZGF0YS5cbiAgICovXG4gIGxpZ2h0bmluZ1NlcnZpY2VQdWJLZXk6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBwdWJsaWMga2V5IG9mIHRoZSBtaWRkbGV3YXJlIHNlcnZpY2UsIHVzZWQgZm9yIGRlcml2aW5nIHRoZSBzaGFyZWQgRWxsaXB0aWMgQ3VydmUgRGlmZmllLUhlbGxtYW4gKEVDREgpIHNlY3JldFxuICAgKiBiZXR3ZWVuIHRoZSB1c2VyJ3MgZXh0ZW5kZWQgcHJpdmF0ZSBrZXkgYW5kIHRoZSBtaWRkbGV3YXJlIHNlcnZpY2UuXG4gICAqL1xuICBtaWRkbGV3YXJlUHViS2V5OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgcHVibGljIGtleSBvZiB0aGUgVEFUIHNlcnZpY2UsIHVzZWQgZm9yIGRlcml2aW5nIHRoZSBzaGFyZWQgRWxsaXB0aWMgQ3VydmUgRGlmZmllLUhlbGxtYW4gKEVDREgpIHNlY3JldFxuICAgKiBiZXR3ZWVuIHRoZSB1c2VyJ3MgZXh0ZW5kZWQgcHJpdmF0ZSBrZXkgYW5kIHRoZSBUQVQgc2VydmljZS5cbiAgICovXG4gIHRhdFB1YktleTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFkYU5ldHdvcmsgZXh0ZW5kcyBCYXNlTmV0d29yayB7XG4gIC8vIE5ldHdvcmsgbmFtZSBhcyBkZWZpbmVkIGluIEBiaXRnby1iZXRhL3V0eG8tbGliIG5ldHdvcmtzLnRzXG4gIC8vIG1heWJlIGFkZCBuZXR3b3JrIGlkZW50aWZpZXIgLyBtYWdpYyBuZXR3b3JrIG51bWJlclxuICB1dHhvbGliTmFtZTogc3RyaW5nO1xuICBwb29sRGVwb3NpdDogbnVtYmVyO1xuICBzdGFrZUtleURlcG9zaXQ6IG51bWJlcjtcbiAgbWF4VmFsdWVTaXplOiBudW1iZXI7XG4gIG1heFRyYW5zYWN0aW9uU2l6ZTogbnVtYmVyO1xuICBjb2luc1BlclV0eG9Xb3JkOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXZhbGFuY2hlTmV0d29yayBleHRlbmRzIEJhc2VOZXR3b3JrIHtcbiAgcmVhZG9ubHkgYWxpYXM6IHN0cmluZztcbiAgcmVhZG9ubHkgYmxvY2tjaGFpbklEOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNDaGFpbkJsb2NrY2hhaW5JRDogc3RyaW5nO1xuICByZWFkb25seSBuZXR3b3JrSUQ6IG51bWJlcjtcbiAgcmVhZG9ubHkgaHJwOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZtOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNyZWF0aW9uVHhGZWU6IHN0cmluZztcbiAgcmVhZG9ubHkgY3JlYXRlU3VibmV0VHg6IHN0cmluZztcbiAgcmVhZG9ubHkgY3JlYXRlQ2hhaW5UeDogc3RyaW5nO1xuICByZWFkb25seSBtaW5Db25zdW1wdGlvbjogc3RyaW5nO1xuICByZWFkb25seSBtYXhDb25zdW1wdGlvbjogc3RyaW5nO1xuICByZWFkb25seSBtYXhTdXBwbHk6IHN0cmluZztcbiAgcmVhZG9ubHkgbWluU3Rha2U6IHN0cmluZztcbiAgcmVhZG9ubHkgbWluU3Rha2VEdXJhdGlvbjogc3RyaW5nO1xuICByZWFkb25seSBtYXhTdGFrZUR1cmF0aW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1pbkRlbGVnYXRpb25TdGFrZTogc3RyaW5nO1xuICByZWFkb25seSBtaW5EZWxlZ2F0aW9uRmVlOiBzdHJpbmc7XG4gIC8vIGN1cnJlbnQgdmFsaWQgYXNzZXQgaWQgaXMgQVZBWFxuICByZWFkb25seSBhdmF4QXNzZXRJRDogc3RyaW5nO1xuICByZWFkb25seSB0eEZlZTogc3RyaW5nO1xuICByZWFkb25seSBtYXhJbXBvcnRGZWU6IHN0cmluZzsgLy8gMC4wMSBBVkFYXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWNjb3VudE5ldHdvcmsgZXh0ZW5kcyBCYXNlTmV0d29yayB7XG4gIC8vIHNvbWUgY2hhaW5zIHBheSBmZWVzIHZpYSBhbiBlbnRlcnByaXNlIGdhcyB0YXNrLiBUaGUgYWNjb3VudCBleHBsb3JlciB1cmxcbiAgLy8gaXMgYSB1cmwgdGhhdCBjYW4gYmUgdXNlZCB0byBsb29rIHVwIHRoZSBhY2NvdW50IGZvciB0aGUgZ2FzIHRhbmsgb24tY2hhaW4uXG4gIHJlYWRvbmx5IGFjY291bnRFeHBsb3JlclVybD86IHN0cmluZztcbiAgcmVhZG9ubHkgYmxvY2tFeHBsb3JlclVybD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb3Ntb3NOZXR3b3JrIGV4dGVuZHMgQWNjb3VudE5ldHdvcmsge1xuICByZWFkb25seSBhZGRyZXNzUHJlZml4OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZhbGlkYXRvclByZWZpeDogc3RyaW5nO1xuICByZWFkb25seSBkZW5vbTogc3RyaW5nO1xuICByZWFkb25seSBnYXNBbW91bnQ6IHN0cmluZztcbiAgcmVhZG9ubHkgZ2FzTGltaXQ6IG51bWJlcjtcbiAgcmVhZG9ubHkgdmFsaWREZW5vbXM6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFNwZWNpZmljYXRpb24gbmFtZSB0eXBlIG9mIHRoZSBjaGFpbi4gVXNlZCBpbiBzZXR0aW5nIHVwIHRoZSByZWdpc3RyeVxuICovXG5leHBvcnQgdHlwZSBQb2xrYWRvdFNwZWNOYW1lVHlwZSA9ICdrdXNhbWEnIHwgJ3BvbGthZG90JyB8ICd3ZXN0ZW5kJyB8ICdzdGF0ZW1pbnQnIHwgJ3N0YXRlbWluZScgfCAnd2VzdG1pbnQnO1xuXG5leHBvcnQgdHlwZSBTdWJzdHJhdGVTcGVjTmFtZVR5cGUgPVxuICB8ICdrdXNhbWEnXG4gIHwgJ3BvbGthZG90J1xuICB8ICd3ZXN0ZW5kJ1xuICB8ICdzdGF0ZW1pbnQnXG4gIHwgJ3N0YXRlbWluZSdcbiAgfCAnbm9kZS1zdWJ0ZW5zb3InXG4gIHwgJ3BvbHltZXNoX3Rlc3RuZXQnXG4gIHwgJ3BvbHltZXNoX21haW5uZXQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERvdE5ldHdvcmsgZXh0ZW5kcyBBY2NvdW50TmV0d29yayB7XG4gIC8vIHNvbWUgY2hhaW5zIHBheSBmZWVzIHZpYSBhbiBlbnRlcnByaXNlIGdhcyB0YXNrLiBUaGUgYWNjb3VudCBleHBsb3JlciB1cmxcbiAgLy8gaXMgYSB1cmwgdGhhdCBjYW4gYmUgdXNlZCB0byBsb29rIHVwIHRoZSBhY2NvdW50IGZvciB0aGUgZ2FzIHRhbmsgb24tY2hhaW4uXG4gIHJlYWRvbmx5IHNwZWNOYW1lOiBQb2xrYWRvdFNwZWNOYW1lVHlwZTtcbiAgcmVhZG9ubHkgZ2VuZXNpc0hhc2g6IHN0cmluZztcbiAgcmVhZG9ubHkgc3BlY1ZlcnNpb246IG51bWJlcjtcbiAgcmVhZG9ubHkgY2hhaW5OYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHR4VmVyc2lvbjogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV0aGVyZXVtTmV0d29yayBleHRlbmRzIEFjY291bnROZXR3b3JrIHtcbiAgLy8gdW5pcXVlIGNoYWluIGlkIHVzZWQgZm9yIHJlcGxheS1wcm90ZWN0aW5nIHRyYW5zYWN0aW9uc1xuICByZWFkb25seSBjaGFpbklkOiBudW1iZXI7XG4gIHJlYWRvbmx5IGJhdGNoZXJDb250cmFjdEFkZHJlc3M/OiBzdHJpbmc7XG4gIC8vIGZvcndhcmRlciBjb25maWd1cmF0aW9uIGFkZHJlc3NlcyB1c2VkIGZvciBjYWxjdWxhdGluZyBmb3J3YXJkZXIgdmVyc2lvbiAxIGFkZHJlc3Nlc1xuICByZWFkb25seSBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcz86IHN0cmluZztcbiAgcmVhZG9ubHkgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzPzogc3RyaW5nO1xuICByZWFkb25seSB3YWxsZXRWMkZvcndhcmRlckZhY3RvcnlBZGRyZXNzPzogc3RyaW5nO1xuICByZWFkb25seSB3YWxsZXRWMkZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcz86IHN0cmluZztcbiAgcmVhZG9ubHkgd2FsbGV0VjRGb3J3YXJkZXJGYWN0b3J5QWRkcmVzcz86IHN0cmluZztcbiAgcmVhZG9ubHkgd2FsbGV0VjRGb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3M/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHdhbGxldEZhY3RvcnlBZGRyZXNzPzogc3RyaW5nO1xuICByZWFkb25seSB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3M/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHdhbGxldFYyRmFjdG9yeUFkZHJlc3M/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHdhbGxldFYySW1wbGVtZW50YXRpb25BZGRyZXNzPzogc3RyaW5nO1xuICByZWFkb25seSB3YWxsZXRWNEZhY3RvcnlBZGRyZXNzPzogc3RyaW5nO1xuICByZWFkb25seSB3YWxsZXRWNEltcGxlbWVudGF0aW9uQWRkcmVzcz86IHN0cmluZztcbiAgcmVhZG9ubHkgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXg/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcm9uTmV0d29yayBleHRlbmRzIEFjY291bnROZXR3b3JrIHtcbiAgbWF4RmVlTGltaXQ6IHN0cmluZztcbiAgY29udHJhY3RDYWxsRmVlTGltaXQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGFja3NOZXR3b3JrIGV4dGVuZHMgQWNjb3VudE5ldHdvcmsge1xuICByZWFkb25seSBzZW5kbWFueW1lbW9Db250cmFjdEFkZHJlc3M6IHN0cmluZztcbiAgcmVhZG9ubHkgc3Rha2luZ0NvbnRyYWN0QWRkcmVzczogc3RyaW5nO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWludGVyZmFjZVxuZXhwb3J0IGludGVyZmFjZSBPZmNOZXR3b3JrIGV4dGVuZHMgQmFzZU5ldHdvcmsge31cblxuYWJzdHJhY3QgY2xhc3MgTWFpbm5ldCBleHRlbmRzIEJhc2VOZXR3b3JrIHtcbiAgdHlwZSA9IE5ldHdvcmtUeXBlLk1BSU5ORVQ7XG59XG5cbmFic3RyYWN0IGNsYXNzIFRlc3RuZXQgZXh0ZW5kcyBCYXNlTmV0d29yayB7XG4gIHR5cGUgPSBOZXR3b3JrVHlwZS5URVNUTkVUO1xufVxuXG5jbGFzcyBBbGdvcmFuZCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnQWxnb3JhbmQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFMR087XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYWxsby5pbmZvL3R4Lyc7XG59XG5cbmNsYXNzIEFsZ29yYW5kVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnQWxnb3JhbmRUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5BTEdPO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmJpdHF1ZXJ5LmlvL2FsZ29yYW5kX3Rlc3RuZXQvdHgvJztcbn1cblxuY2xhc3MgQWRhIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFkYU5ldHdvcmsge1xuICBuYW1lID0gJ0FkYUNhcmRhbm8nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFEQTtcbiAgdXR4b2xpYk5hbWUgPSAnY2FyZGFubyc7XG4gIHBvb2xEZXBvc2l0ID0gNTAwMDAwMDAwO1xuICBzdGFrZUtleURlcG9zaXQgPSAyMDAwMDAwO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2NhcmRhbm9zY2FuLmlvL3RyYW5zYWN0aW9uLyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2NhcmRhbm9zY2FuLmlvL2FkZHJlc3MvJztcbiAgY29pbnNQZXJVdHhvV29yZCA9IDM0NDgyO1xuICBtYXhUcmFuc2FjdGlvblNpemUgPSA4MDAwO1xuICBtYXhWYWx1ZVNpemUgPSA0MDAwO1xufVxuXG5jbGFzcyBBZGFUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFkYU5ldHdvcmsge1xuICBuYW1lID0gJ0FkYUNhcmRhbm9UZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5BREE7XG4gIHV0eG9saWJOYW1lID0gJ2NhcmRhbm9UZXN0bmV0JztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9wcmVwcm9kLmNhcmRhbm9zY2FuLmlvL3RyYW5zYWN0aW9uLyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3ByZXByb2QuY2FyZGFub3NjYW4uaW8vYWRkcmVzcy8nO1xuICBjb2luc1BlclV0eG9Xb3JkID0gMzQ0ODI7XG4gIG1heFRyYW5zYWN0aW9uU2l6ZSA9IDgwMDA7XG4gIG1heFZhbHVlU2l6ZSA9IDQwMDA7XG4gIHBvb2xEZXBvc2l0ID0gNTAwMDAwMDAwO1xuICBzdGFrZUtleURlcG9zaXQgPSAyMDAwMDAwO1xufVxuXG5jbGFzcyBBcHQgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0FwdCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQVBUO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmFwdG9zbGFicy5jb20vdHhuLz9uZXR3b3JrPW1haW5uZXQnO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5hcHRvc2xhYnMuY29tL2FjY291bnQvP25ldHdvcms9bWFpbm5ldCc7XG4gIGJsb2NrRXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5hcHRvc2xhYnMuY29tL2Jsb2NrLz9uZXR3b3JrPW1haW5uZXQnO1xufVxuXG5jbGFzcyBBcHRUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IEFwdCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQVBUO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmFwdG9zbGFicy5jb20vdHhuLz9uZXR3b3JrPXRlc3RuZXQnO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5hcHRvc2xhYnMuY29tL2FjY291bnQvP25ldHdvcms9dGVzdG5ldCc7XG4gIGJsb2NrRXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5hcHRvc2xhYnMuY29tL2Jsb2NrLz9uZXR3b3JrPXRlc3RuZXQnO1xufVxuXG5jbGFzcyBJY3AgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0ludGVybmV0IENvbXB1dGVyJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5JQ1A7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZGFzaGJvYXJkLmludGVybmV0Y29tcHV0ZXIub3JnL3RyYW5zYWN0aW9uLyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2Rhc2hib2FyZC5pbnRlcm5ldGNvbXB1dGVyLm9yZy9hY2NvdW50Lyc7XG59XG5cbmNsYXNzIEljcFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgSW50ZXJuZXQgQ29tcHV0ZXInO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LklDUDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9kYXNoYm9hcmQuaW50ZXJuZXRjb21wdXRlci5vcmcvdHJhbnNhY3Rpb24vJzsgLy8gSUNQIHRlc3RuZXQgZXhwbG9yZXIgaXMgbm90IGF2YWlsYWJsZSwgc28gdXNpbmcgbWFpbm5ldCBleHBsb3JlclxuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9kYXNoYm9hcmQuaW50ZXJuZXRjb21wdXRlci5vcmcvYWNjb3VudC8nO1xufVxuXG5jbGFzcyBBcmJpdHJ1bSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0FyYml0cnVtJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5BUkJFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYXJiaXNjYW4uaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYXJiaXNjYW4uaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNDIxNjE7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzQyMTYxJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzQyMTYxLUVSQzIwJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4ODA5ZWU1NjdlNDEzNTQzYWYxY2FlYmNkYjI0N2Y2YTY3ZWFmYzhkZCc7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDk0NGZlZjAzYWYzNjg0MTRmMjlkYzMxYTcyMDYxYjhkNjRmNTY4ZDInO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG59XG5cbmNsYXNzIEFyYml0cnVtVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0FyYml0cnVtVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQVJCRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEuYXJiaXNjYW4uaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vwb2xpYS5hcmJpc2Nhbi5pby9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA0MjE2MTQ7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzQyMTYxNCc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc0MjE2MTQtRVJDMjAnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbiAgd2FsbGV0RmFjdG9yeUFkZHJlc3MgPSAnMHg4MDllZTU2N2U0MTM1NDNhZjFjYWViY2RiMjQ3ZjZhNjdlYWZjOGRkJztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTQ0ZmVmMDNhZjM2ODQxNGYyOWRjMzFhNzIwNjFiOGQ2NGY1NjhkMic7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbn1cblxuY2xhc3MgQXZhbGFuY2hlQyBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIC8vIGh0dHBzOi8vZG9jcy5hdmF4Lm5ldHdvcmsvYnVpbGQvdHV0b3JpYWxzL3NtYXJ0LWNvbnRyYWN0cy9kZXBsb3ktYS1zbWFydC1jb250cmFjdC1vbi1hdmFsYW5jaGUtdXNpbmctcmVtaXgtYW5kLW1ldGFtYXNrI2F2YWxhbmNoZS1tYWlubmV0LXNldHRpbmdzXG4gIG5hbWUgPSAnQXZhbGFuY2hlQyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQVZBWEM7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc3VibmV0cy5hdmF4Lm5ldHdvcmsvYy1jaGFpbi90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zdWJuZXRzLmF2YXgubmV0d29yay9jLWNoYWluL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDQzMTE0O1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG59XG5cbmNsYXNzIEF2YWxhbmNoZUNUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgLy8gaHR0cHM6Ly9kb2NzLmF2YXgubmV0d29yay9idWlsZC90dXRvcmlhbHMvc21hcnQtY29udHJhY3RzL2RlcGxveS1hLXNtYXJ0LWNvbnRyYWN0LW9uLWF2YWxhbmNoZS11c2luZy1yZW1peC1hbmQtbWV0YW1hc2sjYXZhbGFuY2hlLW1haW5uZXQtc2V0dGluZ3NcbiAgbmFtZSA9ICdBdmFsYW5jaGVDVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQVZBWEM7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc3VibmV0cy10ZXN0LmF2YXgubmV0d29yay9jLWNoYWluL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3N1Ym5ldHMtdGVzdC5hdmF4Lm5ldHdvcmsvYy1jaGFpbi9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA0MzExMztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xufVxuXG5jbGFzcyBBdmFsYW5jaGVQIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEF2YWxhbmNoZU5ldHdvcmsge1xuICBuYW1lID0gJ0F2YWxhbmNoZVAnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFWQVhQO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3N1Ym5ldHMuYXZheC5uZXR3b3JrL3AtY2hhaW4vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc3VibmV0cy5hdmF4Lm5ldHdvcmsvcC1jaGFpbi9hZGRyZXNzLyc7XG4gIGJsb2NrY2hhaW5JRCA9ICcxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMUxwb1lZJztcbiAgY0NoYWluQmxvY2tjaGFpbklEID0gJzJxOWU0cjZNdTNVNjhuVTFmWWpnYlI2SnZ3clJ4MzZDb2hwQVg1VVF4c2U1NXgxUTUnO1xuICBhdmF4QXNzZXRJRCA9ICdGdndFQWhteEtmZWlHOFNuRXZxNDJoYzZ3aFJ5WTNFRllBdmViTXFETkRHQ2d4TjVaJztcbiAgbmV0d29ya0lEID0gMTtcbiAgaHJwID0gJ2F2YXgnO1xuICBhbGlhcyA9ICdQJztcbiAgdm0gPSAncGxhdGZvcm12bSc7XG4gIHR4RmVlID0gJzEwMDAwMDAnOyAvLyAxIE1JTExJQVZBWFxuICBtYXhJbXBvcnRGZWUgPSAnMTAwMDAwMDAnOyAvLyAwLjAxIEFWQVhcbiAgY3JlYXRlU3VibmV0VHggPSAnMTAwMDAwMDAwMCc7IC8vIDEgQVZBWFxuICBjcmVhdGVDaGFpblR4ID0gJzEwMDAwMDAwMDAnOyAvLyAxIEFWQVhcbiAgY3JlYXRpb25UeEZlZSA9ICcxMDAwMDAwMCc7IC8vIDEgQ0VOVElBVkFYXG4gIG1pbkNvbnN1bXB0aW9uID0gJzAuMSc7XG4gIG1heENvbnN1bXB0aW9uID0gJzAuMTInO1xuICBtYXhTdXBwbHkgPSAnNzIwMDAwMDAwMDAwMDAwMDAwJzsgLy8gNzIwIG1pbCB0b2tlbnNcbiAgbWluU3Rha2UgPSAnMjAwMDAwMDAwMDAwMCc7IC8vIDIwMDAgQVZBWFxuICBtaW5TdGFrZUR1cmF0aW9uID0gJzEyMDk2MDAnOyAvLyAyIHdlZWtzXG4gIG1heFN0YWtlRHVyYXRpb24gPSAnMzE1MzYwMDAnOyAvLyAxIHllYXJcbiAgbWluRGVsZWdhdGlvblN0YWtlID0gJzI1MDAwMDAwMDAwJzsgLy8gMjUgQVZBWFxuICBtaW5EZWxlZ2F0aW9uRmVlID0gJzInO1xufVxuXG5jbGFzcyBBdmFsYW5jaGVQVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBdmFsYW5jaGVOZXR3b3JrIHtcbiAgbmFtZSA9ICdBdmFsYW5jaGVQVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQVZBWFA7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc3VibmV0cy10ZXN0LmF2YXgubmV0d29yay9wLWNoYWluL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3N1Ym5ldHMtdGVzdC5hdmF4Lm5ldHdvcmsvcC1jaGFpbi9hZGRyZXNzLyc7XG4gIGJsb2NrY2hhaW5JRCA9ICcxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMUxwb1lZJztcbiAgY0NoYWluQmxvY2tjaGFpbklEID0gJ3lIOEQ3VGhOSmt4bXRrdXYyamdCYTRQMVJuM1FwcjRwUHI3UVlOZmNkb1M2azZIV3AnO1xuICBhdmF4QXNzZXRJRCA9ICdVOGlScUpvaUptOHhaSEFhY212WXlaVndxUXg2dUROdFFlUDNDUTZmY2dRazNKcW5LJztcbiAgbmV0d29ya0lEID0gNTtcbiAgYWxpYXMgPSAnUCc7XG4gIGhycCA9ICdmdWppJztcbiAgdm0gPSAncGxhdGZvcm12bSc7XG4gIHR4RmVlID0gJzEwMDAwMDAnOyAvLyAxIE1JTExJQVZBWFxuICBtYXhJbXBvcnRGZWUgPSAnMTAwMDAwMDAnOyAvLyAwLjAxIEFWQVhcbiAgY3JlYXRlU3VibmV0VHggPSAnMTAwMDAwMDAwMCc7IC8vIDEgQVZBWFxuICBjcmVhdGVDaGFpblR4ID0gJzEwMDAwMDAwMDAnOyAvLyAxIEFWQVhcbiAgY3JlYXRpb25UeEZlZSA9ICcxMDAwMDAwMCc7IC8vIDEgQ0VOVElBVkFYXG4gIG1pbkNvbnN1bXB0aW9uID0gJzAuMSc7XG4gIG1heENvbnN1bXB0aW9uID0gJzAuMTInO1xuICBtYXhTdXBwbHkgPSAnNzIwMDAwMDAwMDAwMDAwMDAwJzsgLy8gNzIwIG1pbCB0b2tlbnNcbiAgbWluU3Rha2UgPSAnMTAwMDAwMDAwMCc7IC8vIDEgQVZBWFxuICBtaW5TdGFrZUR1cmF0aW9uID0gJzg2NDAwJzsgLy8gMSBkYXlcbiAgbWF4U3Rha2VEdXJhdGlvbiA9ICczMTUzNjAwMCc7IC8vIDEgeWVhclxuICBtaW5EZWxlZ2F0aW9uU3Rha2UgPSAnMTAwMDAwMDAwMCc7IC8vIDEgQVZBWFxuICBtaW5EZWxlZ2F0aW9uRmVlID0gJzInO1xufVxuXG5jbGFzcyBCaW5hbmNlU21hcnRDaGFpbiBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0JpbmFuY2VTbWFydENoYWluJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CU0M7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYnNjc2Nhbi5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYnNjc2Nhbi5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNTY7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzU2JztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzU2LUVSQzIwJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xufVxuXG5jbGFzcyBCaW5hbmNlU21hcnRDaGFpblRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdCaW5hbmNlU21hcnRDaGFpblRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJTQztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LmJzY3NjYW4uY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQuYnNjc2Nhbi5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gOTc7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzk3JztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzk3LUVSQzIwJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xufVxuXG5jbGFzcyBPcEJOQiBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ09wQk5CJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5PUEJOQjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9vcGJuYnNjYW4uY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL29wYm5ic2Nhbi5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMjA0O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcyMDQnO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMjA0LUVSQzIwJztcbn1cblxuY2xhc3MgT3BCTkJUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnT3BCTkJUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5PUEJOQjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0Lm9wYm5ic2Nhbi5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5vcGJuYnNjYW4uY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDU2MTE7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzU2MTEnO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNTYxMS1FUkMyMCc7XG59XG5cbmNsYXNzIEZhbnRvbSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0ZhbnRvbSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRkFOVE9NO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmZhbnRvbS5uZXR3b3JrL3RyYW5zYWN0aW9ucy8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5mYW50b20ubmV0d29yay9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAyNTA7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzI1MCc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcyNTAtRVJDMjAnO1xufVxuXG5jbGFzcyBGYW50b21UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnRmFudG9tVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRkFOVE9NO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmZhbnRvbS5uZXR3b3JrL3RyYW5zYWN0aW9ucy8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5mYW50b20ubmV0d29yay9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA0MDAyO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc0MDAyJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzQwMDItRVJDMjAnO1xufVxuXG5jbGFzcyBMaWdodG5pbmdCaXRjb2luIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIExpZ2h0bmluZ05ldHdvcmsge1xuICBuYW1lID0gJ0xpZ2h0bmluZ0JpdGNvaW4nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkxOQlRDO1xuICB1dHhvbGliTmFtZSA9ICdiaXRjb2luJztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9tZW1wb29sLnNwYWNlL2xpZ2h0bmluZyc7XG4gIGxpZ2h0bmluZ1NlcnZpY2VQdWJLZXkgPSAnMDMzODUwODY4NmY5NzhjZWZmZDdjZTA1NDA0MDQxYjFhNWI0Zjc1YTM5YmM5MmE2ZDM1NTI0MGNjYzA4MWY3NjNlJztcbiAgbWlkZGxld2FyZVB1YktleSA9ICcwMjBkNTJmNjQ1OGIxN2I1NjViYzAzNTE2NTY4ZDFhNjVjOGNiZDEzMWNlMDNmMjIwNzU2N2U0Y2QzMzIyZTgyZjMnO1xuICB0YXRQdWJLZXkgPSAnMDM5NTNkYTIwMDY4YzA5Njg1OGQzY2NhNjBmOGM1YjBlNWEyZjVkMDM4M2VjZjliNmFiMzkyZDcxZTRmM2U3MmRmJztcbn1cblxuY2xhc3MgTGlnaHRuaW5nQml0Y29pblRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgTGlnaHRuaW5nTmV0d29yayB7XG4gIG5hbWUgPSAnTGlnaHRuaW5nQml0Y29pblRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkxOQlRDO1xuICB1dHhvbGliTmFtZSA9ICd0ZXN0bmV0JztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9tZW1wb29sLnNwYWNlL3Rlc3RuZXQvbGlnaHRuaW5nJztcbiAgbGlnaHRuaW5nU2VydmljZVB1YktleSA9ICcwMjQwNTUwMjFkYjFlN2YwMTllYmI3ODNhYjBiMDgxMGMyMWE4MTkyMDdkNGNiMWVjNGE2ZTIxNTBhYzA3ZjE0ODInO1xuICBtaWRkbGV3YXJlUHViS2V5ID0gJzAyN2NiM2JjNmI0OWZjMzg1ZDI4MmI0MmE3YmUyMzJhOTRmZmNiYWZmYzc4MThiNjAzYjE3NzIyNTgyYmJmNTM5Yic7XG4gIHRhdFB1YktleSA9ICcwMmU3NDdjOTljMzcxZWFjOWMxNGZiMTk5MTNiZWM4YTBlM2U0NmUzNWFiMWE0NTg3OGU1YjlhZmJiNjk4OTljMWUnO1xufVxuXG5jbGFzcyBCaXRjb2luIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdCaXRjb2luJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CVEM7XG4gIHV0eG9saWJOYW1lID0gJ2JpdGNvaW4nO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL21lbXBvb2wuc3BhY2UvdHgvJztcbn1cblxuY2xhc3MgQml0Y29pblRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0JpdGNvaW5UZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CVEM7XG4gIHV0eG9saWJOYW1lID0gJ3Rlc3RuZXQnO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL21lbXBvb2wuc3BhY2UvdGVzdG5ldC90eC8nO1xuICAvLyBBZGQgb3VyIHB1YmtleSBmb3Igb3VyIHBheWdvIHdhbGxldFxuICBwYXlnb0FkZHJlc3NBdHRlc3RhdGlvblB1YmtleSA9XG4gICAgJ3hwdWI2QktSZ21DUFg1b1FpSmdKNlZxNkJGOHREdlpod1FraTVkVlZRb2hja0syWkpYdHhqOEs2TTlwYXZMd3Q5cGlXMzNoWnoxN1NXbUc4UVdzakoxdEhkZGUyRnM1VUEzREZiQXBDdGJkYUdLbic7XG59XG5cbmNsYXNzIEJpdGNvaW5QdWJsaWNTaWduZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0JpdGNvaW5QdWJsaWNTaWduZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJUQztcbiAgdXR4b2xpYk5hbWUgPSAnYml0Y29pblB1YmxpY1NpZ25ldCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vbWVtcG9vbC5zcGFjZS9zaWduZXQvdHgvJztcbn1cblxuY2xhc3MgQml0Y29pblRlc3RuZXQ0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdCaXRjb2luVGVzdG5ldDQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJUQztcbiAgdXR4b2xpYk5hbWUgPSAnYml0Y29pblRlc3RuZXQ0JztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9tZW1wb29sLnNwYWNlL3Rlc3RuZXQ0L3R4Lyc7XG59XG5cbmNsYXNzIEJpdGNvaW5CaXRHb1NpZ25ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnQml0Y29pbkJpdEdvU2lnbmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CVEM7XG4gIHV0eG9saWJOYW1lID0gJ2JpdGNvaW5CaXRHb1NpZ25ldCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vbWVtcG9vbC5zcGFjZS9ub3RhbmV0d29yay90eC8nO1xufVxuXG5jbGFzcyBCaXRjb2luQ2FzaCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnQml0Y29pbkNhc2gnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJDSDtcbiAgdXR4b2xpYk5hbWUgPSAnYml0Y29pbmNhc2gnO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3d3dy5ibG9ja2NoYWluLmNvbS9iY2gvdHgvJztcbn1cblxuY2xhc3MgQml0Y29pbkNhc2hUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdCaXRjb2luQ2FzaFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJDSDtcbiAgdXR4b2xpYk5hbWUgPSAnYml0Y29pbmNhc2hUZXN0bmV0JztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90YmNoLmxvcGluZy5uZXQvdHgvJztcbn1cbmNsYXNzIEJpdGNvaW5TViBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnQml0Y29pblNWJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CU1Y7XG4gIHV0eG9saWJOYW1lID0gJ2JpdGNvaW5zdic7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmxvY2tjaGFpci5jb20vYml0Y29pbi1zdi90cmFuc2FjdGlvbi8nO1xufVxuXG5jbGFzcyBCaXRjb2luU1ZUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdCaXRjb2luU1ZUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CU1Y7XG4gIHV0eG9saWJOYW1lID0gJ2JpdGNvaW5zdlRlc3RuZXQnO1xuICBleHBsb3JlclVybCA9IHVuZGVmaW5lZDtcbn1cblxuY2xhc3MgQml0Y29pbkdvbGQgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0JpdGNvaW5Hb2xkJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CVEc7XG4gIHV0eG9saWJOYW1lID0gJ2JpdGNvaW5nb2xkJztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9idGdleHBsb3Jlci5jb20vdHgvJztcbn1cblxuY2xhc3MgQml0Y29pbkdvbGRUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdCaXRjb2luR29sZFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJURztcbiAgdXR4b2xpYk5hbWUgPSAnYml0Y29pbmdvbGRUZXN0bmV0JztcbiAgZXhwbG9yZXJVcmwgPSB1bmRlZmluZWQ7XG59XG5cbmNsYXNzIERhc2ggZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0Rhc2gnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkRBU0g7XG4gIHV0eG9saWJOYW1lID0gJ2Rhc2gnO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2luc2lnaHQuZGFzaGV2by5vcmcvaW5zaWdodC90eC8nO1xufVxuXG5jbGFzcyBEYXNoVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnRGFzaFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkRBU0g7XG4gIHV0eG9saWJOYW1lID0gJ2Rhc2hUZXN0JztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LWluc2lnaHQuZGFzaGV2by5vcmcvaW5zaWdodC90eC8nO1xufVxuXG5jbGFzcyBEb2dlY29pbiBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBVdHhvTmV0d29yayB7XG4gIG5hbWUgPSAnRG9nZWNvaW4nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkRPR0U7XG4gIHV0eG9saWJOYW1lID0gJ2RvZ2Vjb2luJztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ibG9ja2NoYWlyLmNvbS9kb2dlY29pbi90cmFuc2FjdGlvbi8nO1xufVxuXG5jbGFzcyBEb2dlY29pblRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0RvZ2Vjb2luVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRE9HRTtcbiAgdXR4b2xpYk5hbWUgPSAnZG9nZWNvaW5UZXN0JztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ibG9ja2V4cGxvcmVyLm9uZS9kb2dlY29pbi90ZXN0bmV0L3R4Lyc7XG59XG5cbmNsYXNzIEVDYXNoIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdFQ2FzaCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQkNIQTtcbiAgdXR4b2xpYk5hbWUgPSAnZWNhc2gnO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Jsb2NrY2hhaXIuY29tL2VjYXNoJztcbn1cblxuY2xhc3MgRUNhc2hUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdFQ2FzaFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJDSEE7XG4gIHV0eG9saWJOYW1lID0gJ2VjYXNoVGVzdCc7XG4gIGV4cGxvcmVyVXJsID0gdW5kZWZpbmVkO1xufVxuXG5jbGFzcyBQb2xrYWRvdEFzc2V0SHViIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIERvdE5ldHdvcmsge1xuICBuYW1lID0gJ1BvbGthZG90QXNzZXRIdWInO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkRPVDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9hc3NldGh1Yi1wb2xrYWRvdC5zdWJzY2FuLmlvL2V4dHJpbnNpYy8nO1xuICBzcGVjTmFtZSA9ICdzdGF0ZW1pbnQnIGFzIFBvbGthZG90U3BlY05hbWVUeXBlO1xuICBnZW5lc2lzSGFzaCA9ICcweDY4ZDU2ZjE1Zjg1ZDMxMzY5NzBlYzE2OTQ2MDQwYmMxNzUyNjU0ZTkwNjE0N2Y3ZTQzZTlkNTM5ZDdjM2RlMmYnO1xuICBzcGVjVmVyc2lvbiA9IDEwMDcwMDE7XG4gIGNoYWluTmFtZSA9ICdQb2xrYWRvdCBBc3NldCBIdWInO1xuICB0eFZlcnNpb24gPSAxNTtcbn1cblxuY2xhc3MgV2VzdGVuZEFzc2V0SHViIGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIERvdE5ldHdvcmsge1xuICBuYW1lID0gJ1dlc3RlbmRBc3NldEh1Yic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRE9UO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Fzc2V0aHViLXdlc3RlbmQuc3Vic2Nhbi5pby9leHRyaW5zaWMvJztcbiAgc3BlY05hbWUgPSAnd2VzdG1pbnQnIGFzIFBvbGthZG90U3BlY05hbWVUeXBlO1xuICBnZW5lc2lzSGFzaCA9ICcweDY3Zjk3MjMzOTNlZjc2MjE0ZGYwMTE4YzM0YmJiZDNkYmViYzhlZDQ2YTEwOTczYThjOTY5ZDQ4ZmU3NTk4YzknO1xuICBzcGVjVmVyc2lvbiA9IDEwMjAwMDA7XG4gIGNoYWluTmFtZSA9ICdXZXN0ZW5kIEFzc2V0IEh1Yic7XG4gIHR4VmVyc2lvbiA9IDE2O1xufVxuXG5jbGFzcyBDZWxvIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnQ2Vsbyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ0VMTztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5jZWxvLm9yZy90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5jZWxvLm9yZy9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA0MjIyMDtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnQ0VMTyc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdDRUxPLUVSQzIwJztcbn1cblxuY2xhc3MgQ2Vsb1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdDZWxvVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ0VMTztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zZXBvbGlhLmNlbG9zY2FuLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEuY2Vsb3NjYW4uaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTExNDIyMjA7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ0NFTE8nO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnQ0VMTy1FUkMyMCc7XG59XG5cbmNsYXNzIENoaWxpeiBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0NoaWxpeic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ0hJTElaO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2NoaWxpc2Nhbi5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY2hpbGlzY2FuLmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA4ODg4ODtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnODg4ODgnO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnODg4ODgtRVJDMjAnO1xufVxuXG5jbGFzcyBDaGlsaXpUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnQ2hpbGl6VGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ0hJTElaO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQuY2hpbGlzY2FuLmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LmNoaWxpc2Nhbi5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gODg4ODI7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzg4ODgyJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzg4ODgyLUVSQzIwJztcbn1cblxuY2xhc3MgQ29kZXhFdGggZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdDb2RleCBFdGhlcmV1bSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ09ERVhFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuY29kZXgueHl6L3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmNvZGV4Lnh5ei9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA4MTIyNDtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnODEyMjQnO1xufVxuXG5jbGFzcyBDb2RleEV0aFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IENvZGV4IEV0aGVyZXVtJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5DT0RFWEVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5jb2RleC1zdGcueHl6L3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmNvZGV4LXN0Zy54eXovYWRkcmVzcy8nO1xuICBjaGFpbklkID0gODEyMjQyO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc4MTIyNDInO1xufVxuXG4vLyBUT0RPIHVwZGF0ZSBleHBsb3JlclVybCBTVExYLTE2NTdcbmNsYXNzIENhc3BlciBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnQ2FzcGVyJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5DU1BSO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2NzcHIubGl2ZS9kZXBsb3kvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY3Nwci5saXZlL2FjY291bnQvJztcbn1cblxuY2xhc3MgQ2FzcGVyVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnQ2FzcGVyVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ1NQUjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9pbnRlZ3JhdGlvbi5jc3ByLmxpdmUvZGVwbG95Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2ludGVncmF0aW9uLmNzcHIubGl2ZS9hY2NvdW50Lyc7XG59XG5cbmNsYXNzIEV0aGVyZXVtIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnRXRoZXJldW0nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ldGhlcnNjYW4uaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXRoZXJzY2FuLmlvL2FkZHJlc3MvJztcbiAgYmxvY2tFeHBsb3JlclVybCA9ICdodHRwczovL2V0aGVyc2Nhbi5pby9ibG9jay8nO1xuICAvLyBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9ldGhlcmV1bWpzL2V0aGVyZXVtanMtY29tbW9uL2Jsb2IvYTk3OGY2MzA4NThmNjg0MzE3NmJiMjBiMjc3NTY5Nzg1OTE0ZTg5OS9zcmMvY2hhaW5zL2luZGV4LnRzXG4gIGNoYWluSWQgPSAxO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4ZWJlMjc5MTNmY2M3NTEwZWFkZjEwNjQzYThmODZiZjU0OTJhOTU0MSc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4ZmZhMzk3Mjg1Y2U0NmZiNzhjNTg4YTllOTkzMjg2YWFjNjhjMzdjZCc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDA1OWZmYWZkYzZlZjU5NDIzMGRlNDRmODI0ZTJiZDBhNTFjYTVkZWQnO1xuICB3YWxsZXRWMkZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4MjlFZjQ2MDM1ZTlmQTNENTcwYzU5OGQzMjY2NDI0Q2ExMTQxM2IwQyc7XG4gIHdhbGxldFYyRm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4NTM5N2QwODY5YUJBMEQ1NWU5NkQ1NzE2ZDM4M0Y2ZTFkODY5NWVkNyc7XG4gIHdhbGxldFY0Rm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgd2FsbGV0VjRGb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnRVRIRVInO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnRVJDMjAnO1xuICB3YWxsZXRGYWN0b3J5QWRkcmVzcyA9ICcweDlhMGQ2MzkxMTYyMGY3ZmMxNWMzYzAyMGVkYmU0ZDcyNjdlYTNlNGQnO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhlOGU4NDdjZjU3M2ZjOGVkNzU2MjE2NjBhMzZhZmZkMThjNTQzZDdlJztcbiAgd2FsbGV0VjJGYWN0b3J5QWRkcmVzcyA9ICcweGE3MTk4ZjQ4QzU4RTkxZjAxMzE3RTcwQ2QyNEM1Q2NlNDc1YzE1NTUnO1xuICB3YWxsZXRWMkltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGU1RGNkQzEzQjYyOGMyZGY4MTNEQjEwODAzNjdFOTI5YzE1MDdDYTAnO1xuICB3YWxsZXRWNEZhY3RvcnlBZGRyZXNzID0gJzB4ODA5ZWU1NjdlNDEzNTQzYWYxY2FlYmNkYjI0N2Y2YTY3ZWFmYzhkZCc7XG4gIHdhbGxldFY0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTQ0ZmVmMDNhZjM2ODQxNGYyOWRjMzFhNzIwNjFiOGQ2NGY1NjhkMic7XG59XG5cbmNsYXNzIEV0aGVyZXVtMiBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnRXRoZXJldW0yJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5FVEgyO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2JlYWNvbnNjYW4uY29tL3R4JztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmVhY29uc2Nhbi5jb20vYWRkcmVzcyc7XG59XG5cbmNsYXNzIEV0aGVyZXVtVyBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0V0aGVyZXVtIFBvVyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRVRIVztcbiAgZXhwbG9yZXJVcmwgPSAnJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJyc7XG4gIGNoYWluSWQgPSAxMDAwMTtcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnJztcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnRVRIRVInO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnRVJDMjAnO1xufVxuXG5jbGFzcyBYdHpFdm0gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdYVFogRVZNJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5YVFpFVk07XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuZXRoZXJsaW5rLmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5ldGhlcmxpbmsuY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDQyNzkzO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc0Mjc5Myc7XG59XG5cbmNsYXNzIFh0ekV2bVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IFhUWiBFVk0nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlhUWkVWTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zaGFkb3duZXQuZXhwbG9yZXIuZXRoZXJsaW5rLmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zaGFkb3duZXQuZXhwbG9yZXIuZXRoZXJsaW5rLmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxMjgxMjM7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzEyODEyMyc7XG59XG5cbmNsYXNzIFB5cm1vbnQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1B5cm1vbnQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkVUSDI7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmVhY29uc2Nhbi5jb20vcHlybW9udC90eCc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2JlYWNvbnNjYW4uY29tL3B5cm1vbnQvYWRkcmVzcyc7XG59XG5cbmNsYXNzIEtvdmFuIGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnS292YW4nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9rb3Zhbi5ldGhlcnNjYW4uaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8va292YW4uZXRoZXJzY2FuLmlvL2FkZHJlc3MvJztcbiAgLy8gZnJvbSBodHRwczovL2dpdGh1Yi5jb20vZXRoZXJldW1qcy9ldGhlcmV1bWpzLWNvbW1vbi9ibG9iL2E5NzhmNjMwODU4ZjY4NDMxNzZiYjIwYjI3NzU2OTc4NTkxNGU4OTkvc3JjL2NoYWlucy9pbmRleC50c1xuICBjaGFpbklkID0gNDI7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHhjMGFhZjI2NDllN2IwZjM5NTAxNjQ2ODFlY2EyYjFhOGY2NTRhNDc4JztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHhhNzlhNDg1Mjk0ZDIyNjA3NWVlNjU0MTBiYzk0ZWE0NTRmM2U0MDlkJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4YTk0NmU3NDhmMjVhNWVjNjg3OGViMWE5ZjJlOTAyMDI4MTc0YzBiMyc7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ0VUSEVSJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ0VSQzIwJztcbn1cblxuY2xhc3MgR29lcmxpIGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnR29lcmxpJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5FVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZ29lcmxpLmV0aGVyc2Nhbi5pby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9nb2VybGkuZXRoZXJzY2FuLmlvL2FkZHJlc3MvJztcbiAgYmxvY2tFeHBsb3JlclVybCA9ICdodHRwczovL2dvZXJsaS5ldGhlcnNjYW4uaW8vYmxvY2svJztcbiAgLy8gZnJvbSBodHRwczovL2dpdGh1Yi5jb20vZXRoZXJldW1qcy9ldGhlcmV1bWpzLWNvbW1vbi9ibG9iL2E5NzhmNjMwODU4ZjY4NDMxNzZiYjIwYjI3NzU2OTc4NTkxNGU4OTkvc3JjL2NoYWlucy9pbmRleC50c1xuICBjaGFpbklkID0gNTtcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweGU4ZTg0N2NmNTczZmM4ZWQ3NTYyMTY2MGEzNmFmZmQxOGM1NDNkN2UnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweGY1Y2FhNWUzZTkzYWZiYzIxYmQxOWVmNGYyNjkxYTM3MTIxZjc5MTcnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg4MGQ1YzkxZThjYzIxZGY2OWZjNGQ2NGYyMWRjMmQ4MzEyMWMzOTk5JztcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnRVRIRVInO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnRVJDMjAnO1xufVxuXG5jbGFzcyBIb2xlc2t5IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnSG9sZXNreSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2hvbGVza3kuZXRoZXJzY2FuLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2hvbGVza3kuZXRoZXJzY2FuLmlvL2FkZHJlc3MvJztcbiAgYmxvY2tFeHBsb3JlclVybCA9ICdodHRwczovL2hvbGVza3kuZXRoZXJzY2FuLmlvL2Jsb2NrLyc7XG4gIC8vIGh0dHBzOi8vY2hhaW5saXN0Lm9yZy9jaGFpbi8xNzAwMFxuICBjaGFpbklkID0gMTcwMDA7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHhlYmUyNzkxM2ZjYzc1MTBlYWRmMTA2NDNhOGY4NmJmNTQ5MmE5NTQxJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHhmZmEzOTcyODVjZTQ2ZmI3OGM1ODhhOWU5OTMyODZhYWM2OGMzN2NkJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4MDU5ZmZhZmRjNmVmNTk0MjMwZGU0NGY4MjRlMmJkMGE1MWNhNWRlZCc7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ0VUSEVSJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ0VSQzIwJztcbiAgd2FsbGV0VjRGb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICB3YWxsZXRWNEZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xufVxuXG5jbGFzcyBIb29kaSBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0hvb2RpJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5FVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vaG9vZGkuZXRoZXJzY2FuLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2hvb2RpLmV0aGVyc2Nhbi5pby9hZGRyZXNzLyc7XG4gIGJsb2NrRXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ob29kaS5ldGhlcnNjYW4uaW8vYmxvY2svJztcbiAgLy8gaHR0cHM6Ly9jaGFpbmxpc3Qub3JnL2NoYWluLzU2MDA0OFxuICBjaGFpbklkID0gNTYwMDQ4O1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4MGUyODc0ZDY4MjRmYWU0ZjYxZTQ0NjAxMjMxN2E5Yjg2Mzg0YmQ4ZSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDc0NDFmMjBhNTliZTk3MDExODQyNDA0YjlhZWZkOGQ4NWZkODFhYTYnO1xuICB3YWxsZXRWMkZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4MGUyODc0ZDY4MjRmYWU0ZjYxZTQ0NjAxMjMxN2E5Yjg2Mzg0YmQ4ZSc7XG4gIHdhbGxldFYyRm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4NzQ0MWYyMGE1OWJlOTcwMTE4NDI0MDRiOWFlZmQ4ZDg1ZmQ4MWFhNic7XG4gIHdhbGxldFY0Rm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgd2FsbGV0VjRGb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbiAgd2FsbGV0RmFjdG9yeUFkZHJlc3MgPSAnMHhmNTE0Y2Q4MGE0MWJkZTJlMjAwMzNiMjUxZjFmNzQ2MzNjYWYzZTU5JztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4NmJiODZiM2IyN2IwOTJiZjhhMjg1MDgwZmU3ZDU4YWNkZjg0MTA0MSc7XG4gIHdhbGxldFYyRmFjdG9yeUFkZHJlc3MgPSAnMHhmNTE0Y2Q4MGE0MWJkZTJlMjAwMzNiMjUxZjFmNzQ2MzNjYWYzZTU5JztcbiAgd2FsbGV0VjJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg2YmI4NmIzYjI3YjA5MmJmOGEyODUwODBmZTdkNThhY2RmODQxMDQxJztcbiAgd2FsbGV0VjRGYWN0b3J5QWRkcmVzcyA9ICcweDgwOWVlNTY3ZTQxMzU0M2FmMWNhZWJjZGIyNDdmNmE2N2VhZmM4ZGQnO1xuICB3YWxsZXRWNEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDk0NGZlZjAzYWYzNjg0MTRmMjlkYzMxYTcyMDYxYjhkNjRmNTY4ZDInO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdFVEhFUic7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdFUkMyMCc7XG59XG5cbmNsYXNzIEV0aGVyZXVtQ2xhc3NpYyBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0V0aGVyZXVtQ2xhc3NpYyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRVRDO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Jsb2Nrc2NvdXQuY29tL2V0Yy9tYWlubmV0L3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2Jsb2Nrc2NvdXQuY29tL2V0Yy9tYWlubmV0L2FkZHJlc3MvJztcbiAgLy8gZnJvbSAgaHR0cHM6Ly9jaGFpbmlkLm5ldHdvcmsvY2hhaW5zL1xuICBjaGFpbklkID0gNjE7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ0VUQyc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdFVEMtRVJDMjAnO1xufVxuXG5jbGFzcyBFdGhlcmV1bUNsYXNzaWNUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnRXRoZXJldW1DbGFzc2ljVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRVRDO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Jsb2Nrc2NvdXQuY29tL2V0Yy9tb3Jkb3IvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmxvY2tzY291dC5jb20vZXRjL21vcmRvci9hZGRyZXNzLyc7XG4gIC8vIGZyb20gIGh0dHBzOi8vY2hhaW5pZC5uZXR3b3JrL2NoYWlucy9cbiAgY2hhaW5JZCA9IDYzO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdFVEMnO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnRVRDLUVSQzIwJztcbn1cblxuY2xhc3MgRW9zIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdFb3MnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkVPUztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5lb3NuZXR3b3JrLmNvbS90cmFuc2FjdGlvbi8nO1xufVxuXG5jbGFzcyBFb3NUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdFb3NUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5FT1M7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8va3lsaW4uZW9zeC5pby90eC8nO1xufVxuXG5jbGFzcyBIZWRlcmEgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0hlZGVyYSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSEJBUjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9oYXNoc2Nhbi5pby9tYWlubmV0L3RyYW5zYWN0aW9uLyc7XG59XG5cbmNsYXNzIEhlZGVyYVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0hlZGVyYVRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkhCQVI7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5kcmFnb25nbGFzcy5tZS9oZWRlcmEvc2VhcmNoP3E9Jztcbn1cblxuY2xhc3MgTGl0ZWNvaW4gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0xpdGVjb2luJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5MVEM7XG4gIHV0eG9saWJOYW1lID0gJ2xpdGVjb2luJztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9saXRlY29pbnNwYWNlLm9yZy90eC8nO1xufVxuXG5jbGFzcyBMaXRlY29pblRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgVXR4b05ldHdvcmsge1xuICBuYW1lID0gJ0xpdGVjb2luVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuTFRDO1xuICB1dHhvbGliTmFtZSA9ICdsaXRlY29pblRlc3QnO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Jsb2NrZXhwbG9yZXIub25lL2xpdGVjb2luL3Rlc3RuZXQvdHgvJztcbn1cblxuY2xhc3MgT2ZjIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIE9mY05ldHdvcmsge1xuICBuYW1lID0gJ09mYyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuT0ZDO1xuICBleHBsb3JlclVybCA9IHVuZGVmaW5lZDtcbn1cblxuY2xhc3MgT2ZjVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBPZmNOZXR3b3JrIHtcbiAgbmFtZSA9ICdPZmNUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5PRkM7XG4gIGV4cGxvcmVyVXJsID0gdW5kZWZpbmVkO1xufVxuXG5jbGFzcyBSYnRjIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnUmJ0Yyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuUkJUQztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5yc2suY28vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIucnNrLmNvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDMwO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdSU0snO1xuICB0b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnUlNLLUVSQzIwJztcbn1cblxuY2xhc3MgUmJ0Y1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdSYnRjVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuUkJUQztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci50ZXN0bmV0LnJzay5jby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci50ZXN0bmV0LnJzay5jby9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAzMTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnUlNLJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ1JTSy1FUkMyMCc7XG59XG5cbmNsYXNzIFN0ZWxsYXIgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1N0ZWxsYXInO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlhMTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zdGVsbGFyLmV4cGVydC9leHBsb3Jlci9wdWJsaWMvdHgvJztcbn1cblxuY2xhc3MgU3RlbGxhclRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1N0ZWxsYXJUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5YTE07XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc3RlbGxhci5leHBlcnQvZXhwbG9yZXIvdGVzdG5ldC90eC8nO1xufVxuXG5jbGFzcyBTb2wgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1NvbCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU09MO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnNvbGFuYS5jb20vdHgvJztcbn1cblxuY2xhc3MgU29sVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnU29sVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU09MO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnNvbGFuYS5jb20vdHgvP2NsdXN0ZXI9ZGV2bmV0Jztcbn1cblxuY2xhc3MgU3VpIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdTdWknO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNVSTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5zdWkuaW8vdHhibG9jay8/bmV0d29yaz1tYWlubmV0JztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuc3VpLmlvL2FkZHJlc3MvP25ldHdvcms9bWFpbm5ldCc7XG59XG5cbmNsYXNzIFN1aVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgU3VpJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TVUk7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuc3VpLmlvL3R4YmxvY2svP25ldHdvcms9dGVzdG5ldCc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnN1aS5pby9hZGRyZXNzLz9uZXR3b3JrPXRlc3RuZXQnO1xufVxuXG5jbGFzcyBBdG9tIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdDb3Ntb3MgSHViIEFUT00nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFUT007XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd3d3Lm1pbnRzY2FuLmlvL2Nvc21vcy90eC8nO1xufVxuXG5jbGFzcyBBdG9tVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBDb3Ntb3MgSHViIEFUT00nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFUT007XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIucG9seXBvcmUueHl6L3Byb3ZpZGVyL3R4Lyc7XG59XG5cbmNsYXNzIE9zbW8gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ09zbW9zaXMnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk9TTU87XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd3d3Lm1pbnRzY2FuLmlvL29zbW9zaXMvdHhzLyc7XG59XG5cbmNsYXNzIE9zbW9UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IE9zbW9zaXMnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk9TTU87XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5vc21vc2lzLmV4cGxvcmVycy5ndXJ1L3RyYW5zYWN0aW9uLyc7XG59XG5cbmNsYXNzIFRpYSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnQ2VsZXN0aWEnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlRJQTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly93d3cubWludHNjYW4uaW8vY2VsZXN0aWEvdHgvJztcbn1cblxuY2xhc3MgVGlhVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBDZWxlc3RpYSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuVElBO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQuY2VsZXN0aWEuZXhwbG9yZXJzLmd1cnUvdHJhbnNhY3Rpb24vJztcbn1cblxuY2xhc3MgSGFzaCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnUHJvdmVuYW5jZSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSEFTSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5wcm92ZW5hbmNlLmlvL3R4Lyc7XG59XG5cbmNsYXNzIEhhc2hUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IFByb3ZlbmFuY2UnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkhBU0g7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIudGVzdC5wcm92ZW5hbmNlLmlvL3R4Lyc7XG59XG5cbmNsYXNzIEJsZCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnQWdvcmljJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CTEQ7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYmlnZGlwcGVyLmxpdmUvYWdvcmljL3RyYW5zYWN0aW9ucy8nO1xufVxuXG5jbGFzcyBCbGRUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IEFnb3JpYyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQkxEO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2VtZXJ5bmV0LmV4cGxvcmVyLmFnb3JpYy5uZXQvYWdvcmljL3R4Lyc7XG59XG5cbmNsYXNzIFNlaSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnU2VpJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TRUk7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2VpdHJhY2UuY29tL3R4Lyc7XG59XG5cbmNsYXNzIFNlaVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgU2VpJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TRUk7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5zZWl0cmFjZS5jb20vdHgvJztcbn1cblxuY2xhc3MgWmV0YSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnWmV0YSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWkVUQTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci56ZXRhY2hhaW4uY29tL2Nvc21vcy90eC8nO1xufVxuXG5jbGFzcyBaZXRhVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBaZXRhJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5aRVRBO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2F0aGVucy5leHBsb3Jlci56ZXRhY2hhaW4uY29tL2Nvc21vcy90eC8nO1xufVxuXG5jbGFzcyBJbmplY3RpdmUgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0luamVjdGl2ZSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSU5KRUNUSVZFO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3d3dy5taW50c2Nhbi5pby9pbmplY3RpdmUvdHgvJztcbn1cblxuY2xhc3MgSW5qZWN0aXZlVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnSW5qZWN0aXZlVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSU5KRUNUSVZFO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQuZXhwbG9yZXIuaW5qZWN0aXZlLm5ldHdvcmsvdHJhbnNhY3Rpb24vJztcbn1cblxuY2xhc3MgS2F2YUNvc21vcyBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBDb3Ntb3NOZXR3b3JrIHtcbiAgbmFtZSA9ICdLYXZhQ29zbW9zJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5LQVZBQ09TTU9TO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3d3dy5taW50c2Nhbi5pby9rYXZhL3R4Lyc7XG4gIGFkZHJlc3NQcmVmaXggPSAna2F2YSc7XG4gIHZhbGlkYXRvclByZWZpeCA9ICdrYXZhdmFsb3Blcic7XG4gIGRlbm9tID0gJ3VrYXZhJztcbiAgZ2FzQW1vdW50ID0gJzUwMDAnO1xuICBnYXNMaW1pdCA9IDIwMDAwMDtcbiAgdmFsaWREZW5vbXMgPSBbJ2thdmEnLCAndWthdmEnXTtcbn1cblxuY2xhc3MgS2F2YUNvc21vc1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQ29zbW9zTmV0d29yayB7XG4gIG5hbWUgPSAnS2F2YUNvc21vc1Rlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LktBVkFDT1NNT1M7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd3d3Lm1pbnRzY2FuLmlvL2thdmEtdGVzdG5ldC90eC8nO1xuICBhZGRyZXNzUHJlZml4ID0gJ2thdmEnO1xuICB2YWxpZGF0b3JQcmVmaXggPSAna2F2YXZhbG9wZXInO1xuICBkZW5vbSA9ICd1a2F2YSc7XG4gIGdhc0Ftb3VudCA9ICc1MDAwJztcbiAgZ2FzTGltaXQgPSAyMDAwMDA7XG4gIHZhbGlkRGVub21zID0gWydrYXZhJywgJ3VrYXZhJ107XG59XG5cbmNsYXNzIER5ZHggZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQ29zbW9zTmV0d29yayB7XG4gIG5hbWUgPSAnRHlkeCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRFlEWDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly93d3cubWludHNjYW4uaW8vZHlkeC90eC8nO1xuICBhZGRyZXNzUHJlZml4ID0gJ2R5ZHgnO1xuICB2YWxpZGF0b3JQcmVmaXggPSAnZHlkeHZhbG9wZXInO1xuICBkZW5vbSA9ICdhZHlkeCc7XG4gIGdhc0Ftb3VudCA9ICc1MDAwMDAwMDAwMDAwMDAwJztcbiAgZ2FzTGltaXQgPSAyMDAwMDA7XG4gIHZhbGlkRGVub21zID0gWydhZHlkeCddO1xufVxuXG5jbGFzcyBEeWR4VGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBDb3Ntb3NOZXR3b3JrIHtcbiAgbmFtZSA9ICdEeWR4VGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRFlEWDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly93d3cubWludHNjYW4uaW8vZHlkeC10ZXN0bmV0L3R4Lyc7XG4gIGFkZHJlc3NQcmVmaXggPSAnZHlkeCc7XG4gIHZhbGlkYXRvclByZWZpeCA9ICdkeWR4dmFsb3Blcic7XG4gIGRlbm9tID0gJ2FkdjR0bnQnO1xuICBnYXNBbW91bnQgPSAnNTAwMDAwMDAwMDAwMDAwMCc7XG4gIGdhc0xpbWl0ID0gMjAwMDAwO1xuICB2YWxpZERlbm9tcyA9IFsnYWR2NHRudCddO1xufVxuXG5jbGFzcyBUb24gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1Rvbic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuVE9OO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3RvbnNjYW4ub3JnL3R4Lyc7XG59XG5cbmNsYXNzIFRvblRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgVG9uJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5UT047XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC50b25zY2FuLm9yZy90eC8nO1xufVxuXG5jbGFzcyBDb3JldW0gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1RYJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5DT1JFVU07XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIudHgub3JnL3R4L3RyYW5zYWN0aW9ucy8nO1xufVxuXG5jbGFzcyBDb3JldW1UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IFRYJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5DT1JFVU07XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIudGVzdG5ldC0xLnR4Lm9yZy90eC90cmFuc2FjdGlvbnMvJztcbn1cblxuY2xhc3MgUnVuZSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnUnVuZSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuVEhPUjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ydW5lc2Nhbi5pby90eC8nO1xufVxuXG5jbGFzcyBSdW5lVGVzdE5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnUnVuZVRlc3ROZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlRIT1I7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vcnVuZXNjYW4uaW8vdHgvP25ldHdvcms9c3RhZ2VuZXQnO1xufVxuXG5jbGFzcyBCYWJ5IGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdCYWJ5bG9uJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CQUJZO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2JhYnlsb24uZXhwbG9yZXJzLmd1cnUvdHJhbnNhY3Rpb24vJztcbn1cblxuY2xhc3MgQmFieVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgQmFieWxvbic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQkFCWTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LmJhYnlsb24uZXhwbG9yZXJzLmd1cnUvdHJhbnNhY3Rpb24vJztcbn1cblxuY2xhc3MgTWFudHJhIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIENvc21vc05ldHdvcmsge1xuICBuYW1lID0gJ01hbnRyYSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuTUFOVFJBO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLm1hbnRyYWNoYWluLmlvL01BTlRSQS0xL3R4Lyc7XG4gIGFkZHJlc3NQcmVmaXggPSAnbWFudHJhJztcbiAgdmFsaWRhdG9yUHJlZml4ID0gJ21hbnRyYXZhbG9wZXInO1xuICBkZW5vbSA9ICd1b20nO1xuICBnYXNBbW91bnQgPSAnODAwMCc7XG4gIGdhc0xpbWl0ID0gMjAwMDAwO1xuICB2YWxpZERlbm9tcyA9IFsnb20nLCAndW9tJ107XG59XG5cbmNsYXNzIE1hbnRyYVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQ29zbW9zTmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBNYW50cmEnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk1BTlRSQTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5tYW50cmFjaGFpbi5pby9NQU5UUkEtRHVrb25nL3R4Lyc7XG4gIGFkZHJlc3NQcmVmaXggPSAnbWFudHJhJztcbiAgdmFsaWRhdG9yUHJlZml4ID0gJ21hbnRyYXZhbG9wZXInO1xuICBkZW5vbSA9ICd1b20nO1xuICBnYXNBbW91bnQgPSAnODAwMCc7XG4gIGdhc0xpbWl0ID0gMjAwMDAwO1xuICB2YWxpZERlbm9tcyA9IFsnb20nLCAndW9tJ107XG59XG5cbmNsYXNzIENyb25vcyBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnQ3Jvbm9zIFBPUyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ1JPTk9TO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Nyb25vcy1wb3Mub3JnL2V4cGxvcmVyL3R4Lyc7XG59XG5cbmNsYXNzIENyb25vc1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgQ3Jvbm9zIFBPUyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ1JPTk9TO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Nyb25vcy1wb3Mub3JnL2V4cGxvcmVyL2Nyb2VzZWlkNC90eC8nO1xufVxuXG5jbGFzcyBGZXRjaEFpIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdGZXRjaCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRkVUQ0hBSTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly93d3cubWludHNjYW4uaW8vZmV0Y2hhaSc7XG59XG5cbmNsYXNzIEZldGNoQWlUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IEZldGNoJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5GRVRDSEFJO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmUtZXJpZGFudXMtMS5mZXRjaC5haS8nO1xufVxuXG5jbGFzcyBJbml0aWEgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0luaXRpYSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSU5JVElBO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3NjYW4uaW5pdGlhLnh5ei9pbnRlcndvdmVuLTEvdHhzLyc7XG59XG5cbmNsYXNzIEluaXRpYVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgSW5pdGlhJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5JTklUSUE7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Nhbi50ZXN0bmV0LmluaXRpYS54eXovaW5pdGlhdGlvbi0yL3R4cy8nO1xufVxuXG5jbGFzcyBBc2kgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ0ZldGNoIE5hdGl2ZSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQVNJO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2NvbXBhbmlvbi5mZXRjaC5haS9mZXRjaGh1Yi00L3RyYW5zYWN0aW9ucy8nO1xufVxuXG5jbGFzcyBBc2lUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IEZldGNoIE5hdGl2ZSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQVNJO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2NvbXBhbmlvbi5mZXRjaC5haS9kb3JhZG8tMS90cmFuc2FjdGlvbnMvJztcbn1cblxuY2xhc3MgSXNsbSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnSGFxcSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSVNMTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9waW5nLnB1Yi9oYXFxL3R4Lyc7XG59XG5cbmNsYXNzIElzbG1UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdIYXFxVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSVNMTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LnBpbmcucHViL2hhcXEvdHgvJztcbn1cblxuY2xhc3MgU3R4IGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIFN0YWNrc05ldHdvcmsge1xuICBuYW1lID0gJ1N0eCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU1RYO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmhpcm8uc28vdHhpZC8nO1xuICBzZW5kbWFueW1lbW9Db250cmFjdEFkZHJlc3MgPSAnU1AzRkJSMkFHSzVIOVFCREgzRUVONkRGOEVLOEpZN1JYOFFKNVNWVEUnO1xuICBzdGFraW5nQ29udHJhY3RBZGRyZXNzID0gJ1NQMDAwMDAwMDAwMDAwMDAwMDAwMDAyUTZWRjc4Jztcbn1cblxuY2xhc3MgU3R4VGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBTdGFja3NOZXR3b3JrIHtcbiAgbmFtZSA9ICdTdHhUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TVFg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuaGlyby5zby90eGlkLz9jaGFpbj10ZXN0bmV0JztcbiAgc2VuZG1hbnltZW1vQ29udHJhY3RBZGRyZXNzID0gJ1NUM0YxWDRRR1YyU004WEQ5Nlg0NU02UlRRWEtBMVBaSlpaQ1FBQjRCJztcbiAgc3Rha2luZ0NvbnRyYWN0QWRkcmVzcyA9ICdTVDAwMDAwMDAwMDAwMDAwMDAwMDAwMkFNVzQySCc7XG59XG5cbmNsYXNzIFNVU0QgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1NVU0QnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNVU0Q7XG4gIGV4cGxvcmVyVXJsID0gdW5kZWZpbmVkO1xufVxuXG5jbGFzcyBTVVNEVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnU1VTRFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNVU0Q7XG4gIGV4cGxvcmVyVXJsID0gdW5kZWZpbmVkO1xufVxuXG5jbGFzcyBGaWF0VGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBCYXNlTmV0d29yayB7XG4gIG5hbWUgPSAnRmlhdFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkZJQVQ7XG4gIGV4cGxvcmVyVXJsID0gdW5kZWZpbmVkO1xufVxuXG5jbGFzcyBGaWF0IGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEJhc2VOZXR3b3JrIHtcbiAgbmFtZSA9ICdGaWF0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5GSUFUO1xuICBleHBsb3JlclVybCA9IHVuZGVmaW5lZDtcbn1cblxuY2xhc3MgQml0dGVuc29yIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUYW8nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlRBTztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90YW9zdGF0cy5pby9leHRyaW5zaWMvJztcbn1cblxuY2xhc3MgQml0dGVuc29yVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBUYW8nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlRBTztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5maW5uZXkub3BlbnRlbnNvci5haS8jLyc7XG4gIHNwZWNOYW1lID0gJ25vZGUtc3VidGVuc29yJyBhcyBTdWJzdHJhdGVTcGVjTmFtZVR5cGU7XG4gIGdlbmVzaXNIYXNoID0gJzB4OGY5Y2Y4NTZiZjU1OGExNDQ0MGU3NTU2OWM5ZTU4NTk0NzU3MDQ4ZDdiM2E4NGI1ZDI1ZjZiZDk3ODI2MzEwNSc7XG4gIHNwZWNWZXJzaW9uID0gMjI0O1xuICBjaGFpbk5hbWUgPSAnYml0dGVuc29yJztcbiAgdHhWZXJzaW9uID0gMTtcbn1cblxuY2xhc3MgVHJ4IGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIFRyb25OZXR3b3JrIHtcbiAgbmFtZSA9ICdUcngnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlRSWDtcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdHJvbnNjYW4ub3JnLyMvYWRkcmVzcy8nO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Ryb25zY2FuLm9yZy8jL3RyYW5zYWN0aW9uLyc7XG4gIG1heEZlZUxpbWl0ID0gJzUwMDAwMDAwMDAnO1xuICBjb250cmFjdENhbGxGZWVMaW1pdCA9ICcxMDAwMDAwMDAnO1xufVxuXG5jbGFzcyBUcnhUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIFRyb25OZXR3b3JrIHtcbiAgbmFtZSA9ICdUcnhUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5UUlg7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3NoYXN0YS50cm9uc2Nhbi5vcmcvIy9hZGRyZXNzLyc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2hhc3RhLnRyb25zY2FuLm9yZy8jL3RyYW5zYWN0aW9uLyc7XG4gIG1heEZlZUxpbWl0ID0gJzUwMDAwMDAwMDAnO1xuICBjb250cmFjdENhbGxGZWVMaW1pdCA9ICcxMDAwMDAwMDAnO1xufVxuXG5jbGFzcyBYcnAgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1hycCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWFJQO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2xpdmVuZXQueHJwbC5vcmcvdHJhbnNhY3Rpb25zLyc7XG59XG5cbmNsYXNzIFhycFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgQWNjb3VudE5ldHdvcmsge1xuICBuYW1lID0gJ1hycFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlhSUDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0LnhycGxleHBsb3Jlci5jb20vZXhwbG9yZXIvJztcbn1cblxuY2xhc3MgWHR6IGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdYdHonO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlhUWjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90enN0YXRzLmNvbS8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90enN0YXRzLmNvbS8nO1xufVxuXG5jbGFzcyBYdHpUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdYdHpUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5YVFo7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZ2hvc3RuZXQudHprdC5pby8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9naG9zdG5ldC50emt0LmlvLyc7XG59XG5cbmNsYXNzIFpDYXNoIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdaQ2FzaCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWkVDO1xuICB1dHhvbGliTmFtZSA9ICd6Y2FzaCc7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vbWFpbm5ldC56Y2FzaGV4cGxvcmVyLmFwcC90cmFuc2FjdGlvbnMvJztcbn1cblxuY2xhc3MgWkNhc2hUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIFV0eG9OZXR3b3JrIHtcbiAgbmFtZSA9ICdaQ2FzaFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlpFQztcbiAgdXR4b2xpYk5hbWUgPSAnemNhc2hUZXN0JztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LnpjYXNoZXhwbG9yZXIuYXBwL3RyYW5zYWN0aW9ucy8nO1xufVxuXG5jbGFzcyBOZWFyIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdOZWFyJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5ORUFSO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL25lYXJibG9ja3MuaW8vdHhucy8nO1xuICBmZWVSZXNlcnZlID0gJzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJztcbiAgc3RvcmFnZVJlc2VydmUgPSAnMjAwMDAwMDAwMDAwMDAwMDAwMDAwMCc7IC8vIGZlZVJlc2VydmUgKyBzdG9yYWdlUmVzZXJ2ZSBpcyBtaW5pbXVtIGFjY291bnQgYmFsYW5jZSBmb3IgYSBORUFSIHdhbGxldCBodHRwczovL2RvY3MubmVhci5vcmcvaW50ZWdyYXRvci9mYXEjaXMtdGhlcmUtYS1taW5pbXVtLWFjY291bnQtYmFsYW5jZVxufVxuXG5jbGFzcyBOZWFyVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnTmVhclRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk5FQVI7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5uZWFyYmxvY2tzLmlvL3R4bnMvJztcbiAgZmVlUmVzZXJ2ZSA9ICc1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMCc7XG4gIHN0b3JhZ2VSZXNlcnZlID0gJzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAnOyAvLyBmZWVSZXNlcnZlICsgc3RvcmFnZVJlc2VydmUgaXMgbWluaW11bSBhY2NvdW50IGJhbGFuY2UgZm9yIGEgTkVBUiB3YWxsZXQgaHR0cHM6Ly9kb2NzLm5lYXIub3JnL2ludGVncmF0b3IvZmFxI2lzLXRoZXJlLWEtbWluaW11bS1hY2NvdW50LWJhbGFuY2Vcbn1cblxuY2xhc3MgUG9seWdvbiBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1BvbHlnb24nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlBPTFlHT047XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vcG9seWdvbnNjYW4uY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3BvbHlnb25zY2FuLmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxMzc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4MjllZjQ2MDM1ZTlmYTNkNTcwYzU5OGQzMjY2NDI0Y2ExMTQxM2IwYyc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDUzOTdkMDg2OWFiYTBkNTVlOTZkNTcxNmQzODNmNmUxZDg2OTVlZDcnO1xuICB3YWxsZXRGYWN0b3J5QWRkcmVzcyA9ICcweGE3MTk4ZjQ4YzU4ZTkxZjAxMzE3ZTcwY2QyNGM1Y2NlNDc1YzE1NTUnO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhlNWRjZGMxM2I2MjhjMmRmODEzZGIxMDgwMzY3ZTkyOWMxNTA3Y2EwJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdQT0xZR09OJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ1BPTFlHT04tRVJDMjAnO1xuICB3YWxsZXRWNEZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIHdhbGxldFY0Rm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG59XG5cbmNsYXNzIFBvbHlnb25UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnUG9seWdvblRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlBPTFlHT047XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYW1veS5wb2x5Z29uc2Nhbi5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYW1veS5wb2x5Z29uc2Nhbi5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gODAwMDI7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4MjMyMjNmZDdjZmM1ZjM0YjIwZjM4ZWJiOWE0ODllMWZmM2MwODRkMSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ0YzI0MzI1YjVlZjUxNGZiYjFlY2M3NmE5YmI0ZGNiNTdhODM0MWUnO1xuICB3YWxsZXRGYWN0b3J5QWRkcmVzcyA9ICcweGU5YzE2MDMzZTAxYmY5Zjk0YmY5Zjk5ZmMwZmVmY2ZiOGIxMjQ5OTInO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhmODM2MGMyMTNlNGY0NGNjZTAzZTQ4Y2I5MjgxMjU0ZGUyYTdhNTY2JztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdQT0xZR09OJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJ1BPTFlHT04tRVJDMjAnO1xuICB3YWxsZXRWNEZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIHdhbGxldFY0Rm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG59XG5cbmNsYXNzIE9wdGltaXNtIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnT3B0aW1pc20nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk9QRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL29wdGltaXN0aWMuZXRoZXJzY2FuLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL29wdGltaXN0aWMuZXRoZXJzY2FuLmlvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDEwO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxMCc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxMC1FUkMyMCc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xuICB3YWxsZXRGYWN0b3J5QWRkcmVzcyA9ICcweDgwOWVlNTY3ZTQxMzU0M2FmMWNhZWJjZGIyNDdmNmE2N2VhZmM4ZGQnO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg5NDRmZWYwM2FmMzY4NDE0ZjI5ZGMzMWE3MjA2MWI4ZDY0ZjU2OGQyJztcbiAgd2FsbGV0VjRGb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICB3YWxsZXRWNEZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4ZWJlMjc5MTNmY2M3NTEwZWFkZjEwNjQzYThmODZiZjU0OTJhOTU0MSc7XG59XG5cbmNsYXNzIE9wdGltaXNtVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ09wdGltaXNtVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuT1BFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vwb2xpYS1vcHRpbWlzbS5ldGhlcnNjYW4uaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vwb2xpYS1vcHRpbWlzbS5ldGhlcnNjYW4uaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTExNTU0MjA7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzExMTU1NDIwJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzExMTU1NDIwLUVSQzIwJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4ODA5ZWU1NjdlNDEzNTQzYWYxY2FlYmNkYjI0N2Y2YTY3ZWFmYzhkZCc7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDk0NGZlZjAzYWYzNjg0MTRmMjlkYzMxYTcyMDYxYjhkNjRmNTY4ZDInO1xuICB3YWxsZXRWNEZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIHdhbGxldFY0Rm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHhlYmUyNzkxM2ZjYzc1MTBlYWRmMTA2NDNhOGY4NmJmNTQ5MmE5NTQxJztcbn1cblxuY2xhc3MgWmtTeW5jIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnWmtTeW5jJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5aS0VUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci56a3N5bmMuaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuemtzeW5jLmlvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDMyNDtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMzI0JztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzMyNC1FUkMyMCc7XG59XG5cbmNsYXNzIFprU3luY1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdaa1N5bmNUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5aS0VUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zZXBvbGlhLmV4cGxvcmVyLnprc3luYy5pby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zZXBvbGlhLmV4cGxvcmVyLnprc3luYy5pby9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAzMDA7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzMwMCc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICczMDAtRVJDMjAnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweGRkNDk4NzAyZjQ0YzRkYTA4ZWI5ZTA4ZDNmMDE1ZWVmZTVjYjcxZmMnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhiZTY5Y2FlMzExMTkxZmI0NWU2NDhlZDIwODQ3ZjA2ZmFkMmRiYWI0JztcbiAgd2FsbGV0VjRGb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICB3YWxsZXRWNEZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xuICB3YWxsZXRGYWN0b3J5QWRkcmVzcyA9ICcweDQ1NTBlMWU3NjE2ZDMzNjQ4NzdmYzZjOTMyNDkzOGRhYjY3ODYyMWEnO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg5MmRiMjc1OWQxZGNhMTI5YTBkOWQ0Njg3N2YzNjFiZTgxOTE4NGM0Jztcbn1cblxuY2xhc3MgWmtTeW5jRXJhIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnWmtTeW5jRXJhJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5aS1NZTkNFUkE7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuemtzeW5jLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnprc3luYy5pby9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAzMjQ7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzMyNCc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICczMjQtRVJDMjAnO1xufVxuXG5jbGFzcyBaa1N5bmNFcmFUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnWmtTeW5jRXJhVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWktTWU5DRVJBO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEuZXhwbG9yZXIuemtzeW5jLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEuZXhwbG9yZXIuemtzeW5jLmlvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDMwMDtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMzAwJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzMwMC1FUkMyMCc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4ZGQ0OTg3MDJmNDRjNGRhMDhlYjllMDhkM2YwMTVlZWZlNWNiNzFmYyc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGJlNjljYWUzMTExOTFmYjQ1ZTY0OGVkMjA4NDdmMDZmYWQyZGJhYjQnO1xuICB3YWxsZXRWNEZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIHdhbGxldFY0Rm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4NDU1MGUxZTc2MTZkMzM2NDg3N2ZjNmM5MzI0OTM4ZGFiNjc4NjIxYSc7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDkyZGIyNzU5ZDFkY2ExMjlhMGQ5ZDQ2ODc3ZjM2MWJlODE5MTg0YzQnO1xufVxuXG5jbGFzcyBCZXJhY2hhaW4gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdCZXJhJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CRVJBO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2JlcmFzY2FuLmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9iZXJhc2Nhbi5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gODAwOTQ7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzgwMDk0JztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzgwMDk0LUVSQzIwJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweGVkZjFhMDAxNmQ5YzQxZDJhZDBjMjc1ZTFiYTcwODM2MWE5MGMwZDEnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbn1cblxuY2xhc3MgQmVyYWNoYWluVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0JlcmFUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CRVJBO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQuYmVyYXNjYW4uY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQuYmVyYXNjYW4uY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDgwMDY5O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc4MDA2OSc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc4MDA2OS1FUkMyMCc7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG59XG5cbmNsYXNzIE9hcyBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ09hcyc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuT0FTO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLm9hc3lzLmdhbWVzL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLm9hc3lzLmdhbWVzL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDI0ODtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMjQ4JztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweGVkZjFhMDAxNmQ5YzQxZDJhZDBjMjc1ZTFiYTcwODM2MWE5MGMwZDEnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbn1cblxuY2xhc3MgT2FzVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ09hc1Rlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk9BUztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci50ZXN0bmV0Lm9hc3lzLmdhbWVzL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnRlc3RuZXQub2FzeXMuZ2FtZXMvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gOTM3MjtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnOTM3Mic7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHhlZGYxYTAwMTZkOWM0MWQyYWQwYzI3NWUxYmE3MDgzNjFhOTBjMGQxJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG59XG5cbmNsYXNzIENvcmVkYW8gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdDb3JlZGFvJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5DT1JFREFPO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3NjYW4uY29yZWRhby5vcmcvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Nhbi5jb3JlZGFvLm9yZy9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxMTE2O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxMTE2JztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweGM1ZDdhM2I0YzQ5MGM2MjQyZmIyOGYyMGU1ZmUzM2NkOTgzMzcyYTMnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbn1cblxuY2xhc3MgQ29yZWRhb1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdDb3JlZGFvVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQ09SRURBTztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zY2FuLnRlc3QyLmJ0Y3MubmV0d29yay90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zY2FuLnRlc3QyLmJ0Y3MubmV0d29yay9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxMTE0O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxMTE0JztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweGM1ZDdhM2I0YzQ5MGM2MjQyZmIyOGYyMGU1ZmUzM2NkOTgzMzcyYTMnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbn1cblxuY2xhc3MgSVAgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdTdG9yeSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSVA7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd3d3LnN0b3J5c2Nhbi5pby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly93d3cuc3RvcnlzY2FuLmlvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDE1MTQ7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzE1MTQnO1xufVxuXG5jbGFzcyBJUFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdTdG9yeVRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LklQO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2FlbmVpZC5leHBsb3Jlci5zdG9yeS5mb3VuZGF0aW9uL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2FlbmVpZC5zdG9yeXNjYW4uaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTMxNTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTMxNSc7XG59XG5cbmNsYXNzIEFwZUNoYWluIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnQXBlQ2hhaW4nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFQRUNIQUlOO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2FwZXNjYW4uaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vYXBlc2Nhbi5pby9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAzMzEzOTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMzMxMzknO1xufVxuXG5jbGFzcyBBcGVDaGFpblRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdBcGVDaGFpblRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFQRUNIQUlOO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2N1cnRpcy5hcGVzY2FuLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2N1cnRpcy5hcGVzY2FuLmlvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDMzMTExO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICczMzExMSc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xuICB3YWxsZXRGYWN0b3J5QWRkcmVzcyA9ICcweDgwOWVlNTY3ZTQxMzU0M2FmMWNhZWJjZGIyNDdmNmE2N2VhZmM4ZGQnO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg5NDRmZWYwM2FmMzY4NDE0ZjI5ZGMzMWE3MjA2MWI4ZDY0ZjU2OGQyJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xufVxuXG5jbGFzcyBQaGFyb3MgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdQaGFyb3MnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlBIUlM7XG4gIGV4cGxvcmVyVXJsID0gJyc7IC8vIFRPRE86IFdJTi01Nzg3IEFkZCBtYWlubmV0IHVybCB3aGVuIGF2YWlsYWJsZVxuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnJzsgLy8gVE9ETzogV0lOLTU3ODcgQWRkIG1haW5uZXQgdXJsIHdoZW4gYXZhaWxhYmxlXG4gIGNoYWluSWQgPSA2ODg2ODg7IC8vIFRPRE86IFdJTi01Nzg3IEFkZCBtYWlubmV0IGlkIHdoZW4gYXZhaWxhYmxlXG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzY4ODY4OCc7XG59XG5cbmNsYXNzIFBoYXJvc1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdQaGFyb3NUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5QSFJTO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2F0bGFudGljLnBoYXJvc3NjYW4ueHl6L3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2F0bGFudGljLnBoYXJvc3NjYW4ueHl6L2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDY4ODY4OTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNjg4Njg5JztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4ODA5ZWU1NjdlNDEzNTQzYWYxY2FlYmNkYjI0N2Y2YTY3ZWFmYzhkZCc7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDk0NGZlZjAzYWYzNjg0MTRmMjlkYzMxYTcyMDYxYjhkNjRmNTY4ZDInO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG59XG5cbmNsYXNzIENyZWRpdGNvaW4gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdDcmVkaXRjb2luJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5DVEM7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY3JlZGl0Y29pbi5ibG9ja3Njb3V0LmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9jcmVkaXRjb2luLmJsb2Nrc2NvdXQuY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDEwMjAzMDtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTAyMDMwJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4ODA5ZWU1NjdlNDEzNTQzYWYxY2FlYmNkYjI0N2Y2YTY3ZWFmYzhkZCc7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDk0NGZlZjAzYWYzNjg0MTRmMjlkYzMxYTcyMDYxYjhkNjRmNTY4ZDInO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG59XG5cbmNsYXNzIFBsYXNtYSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1BsYXNtYSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWFBMO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3BsYXNtYXNjYW4udG8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vcGxhc21hc2Nhbi50by9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA5NzQ1O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc5NzQ1Jztcbn1cblxuY2xhc3MgUGxhc21hVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1BsYXNtYVRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlhQTDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LnBsYXNtYXNjYW4udG8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5wbGFzbWFzY2FuLnRvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDk3NDY7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzk3NDYnO1xufVxuXG5jbGFzcyBIeXBlRVZNVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0h5cGVybGlxdWlkRVZNVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSFlQRUVWTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LnB1cnJzZWMuY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQucHVycnNlYy5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gOTk4O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc5OTgnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbiAgd2FsbGV0RmFjdG9yeUFkZHJlc3MgPSAnMHg4MDllZTU2N2U0MTM1NDNhZjFjYWViY2RiMjQ3ZjZhNjdlYWZjOGRkJztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTQ0ZmVmMDNhZjM2ODQxNGYyOWRjMzFhNzIwNjFiOGQ2NGY1NjhkMic7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbn1cblxuY2xhc3MgSHlwZUVWTSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0h5cGVybGlxdWlkRVZNJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5IWVBFRVZNO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2h5cGVyZXZtc2Nhbi5pby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9oeXBlcmV2bXNjYW4uaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gOTk5O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc5OTknO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbiAgd2FsbGV0RmFjdG9yeUFkZHJlc3MgPSAnMHg4MDllZTU2N2U0MTM1NDNhZjFjYWViY2RiMjQ3ZjZhNjdlYWZjOGRkJztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTQ0ZmVmMDNhZjM2ODQxNGYyOWRjMzFhNzIwNjFiOGQ2NGY1NjhkMic7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbn1cblxuY2xhc3MgS2F2YUVWTVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdLYXZhRVZNVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuS0FWQUVWTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LmthdmFzY2FuLmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LmthdmFzY2FuLmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAyMjIxO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcyMjIxJztcbn1cblxuY2xhc3MgS2F2YUVWTSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0thdmFFVk0nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LktBVkFFVk07XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8va2F2YXNjYW4uY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2thdmFzY2FuLmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAyMjIyO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcyMjIyJztcbn1cblxuY2xhc3MgTGluZWFFVEggZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdMaW5lYSBFdGhlcmV1bSBNYWlubmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5MSU5FQUVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9saW5lYXNjYW4uYnVpbGQvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vbGluZWFzY2FuLmJ1aWxkL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDU5MTQ0O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc1OTE0NCc7XG59XG5cbmNsYXNzIExpbmVhRVRIVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0xpbmVhIEV0aGVyZXVtIFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkxJTkVBRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEubGluZWFzY2FuLmJ1aWxkL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEubGluZWFzY2FuLmJ1aWxkL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDU5MTQxO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc1OTE0MSc7XG59XG5cbmNsYXNzIEZsdWVudEVUSCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0ZsdWVudCBFdGhlcmV1bSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRkxVRU5URVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Rldm5ldC5mbHVlbnRzY2FuLnh5ei90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9kZXZuZXQuZmx1ZW50c2Nhbi54eXovYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMjA5OTM7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzIwOTkzJztcbn1cblxuY2xhc3MgRmx1ZW50RVRIVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgRmx1ZW50IEV0aGVyZXVtJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5GTFVFTlRFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5mbHVlbnRzY2FuLnh5ei90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LmZsdWVudHNjYW4ueHl6L2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDIwOTk0O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcyMDk5NCc7XG59XG5cbmNsYXNzIE1hbnRsZSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ01hbnRsZSBOYXRpdmUnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk1BTlRMRTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9tYW50bGVzY2FuLnh5ei90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9tYW50bGVzY2FuLnh5ei9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA1MDAwO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc1MDAwJztcbn1cblxuY2xhc3MgTWFudGxlVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgTWFudGxlIE5hdGl2ZSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuTUFOVExFO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEubWFudGxlc2Nhbi54eXovdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vwb2xpYS5tYW50bGVzY2FuLnh5ei9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA1MDAzO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc1MDAzJztcbn1cblxuY2xhc3MgSm92YXlFVEggZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdKb3ZheSBFdGhlcmV1bSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSk9WQVlFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuam92YXkuaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuam92YXkuaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNTczNDk1MTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNTczNDk1MSc7XG59XG5cbmNsYXNzIEpvdmF5RVRIVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgSm92YXkgRXRoZXJldW0nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkpPVkFZRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEtZXhwbG9yZXIuam92YXkuaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vwb2xpYS1leHBsb3Jlci5qb3ZheS5pby9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAyMDE5Nzc1O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcyMDE5Nzc1Jztcbn1cblxuY2xhc3MgVW5pZXRoIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnVW5pY2hhaW4nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlVOSUVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly91bmlzY2FuLnh5ei90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly91bmlzY2FuLnh5ei9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxMzA7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzEzMCc7XG59XG5cbmNsYXNzIFVuaWV0aFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IFVuaWNoYWluJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5VTklFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vwb2xpYS51bmlzY2FuLnh5ei90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zZXBvbGlhLnVuaXNjYW4ueHl6L2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDEzMDE7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzEzMDEnO1xufVxuXG5jbGFzcyBIcHBldGggZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdIb3VzZSBQYXJ0eSBQcm90b2NvbCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSFBQRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmhwcC5pby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5ocHAuaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTkwNDE1O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxOTA0MTUnO1xufVxuXG5jbGFzcyBIcHBldGhUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBIb3VzZSBQYXJ0eSBQcm90b2NvbCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSFBQRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEtZXhwbG9yZXIuaHBwLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3NlcG9saWEtZXhwbG9yZXIuaHBwLmlvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDE4MTIyODtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTgxMjI4Jztcbn1cblxuY2xhc3MgSG9vZGV0aFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IFJvYmluaG9vZCBDaGFpbic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSE9PREVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci50ZXN0bmV0LmNoYWluLnJvYmluaG9vZC5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIudGVzdG5ldC5jaGFpbi5yb2Jpbmhvb2QuY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDQ2NjMwO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc0NjYzMCc7XG59XG5cbmNsYXNzIEhvb2RldGggZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdSb2Jpbmhvb2QgQ2hhaW4nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkhPT0RFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIudGVzdG5ldC5jaGFpbi5yb2Jpbmhvb2QuY29tL3R4Lyc7IC8vIFRPRE86IHVwZGF0ZSB0byBtYWlubmV0IGV4cGxvcmVyIHdoZW4gYXZhaWxhYmxlXG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnRlc3RuZXQuY2hhaW4ucm9iaW5ob29kLmNvbS9hZGRyZXNzLyc7IC8vIFRPRE86IHVwZGF0ZSB0byBtYWlubmV0IGV4cGxvcmVyIHdoZW4gYXZhaWxhYmxlXG4gIGNoYWluSWQgPSA0NjYzMDsgLy8gVE9ETzogdXBkYXRlIHRvIG1haW5uZXQgY2hhaW4gaWQgd2hlbiBhdmFpbGFibGVcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNDY2MzAnOyAvLyBUT0RPOiB1cGRhdGUgdG8gbWFpbm5ldCBjaGFpbiBpZCB3aGVuIGF2YWlsYWJsZVxufVxuXG5jbGFzcyBIdW1hbml0eVByb3RvY29sIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnSHVtYW5pdHkgUHJvdG9jb2wnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lkg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuaHVtYW5pdHkub3JnL21haW5uZXQvdHhucy8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5odW1hbml0eS5vcmcvbWFpbm5ldC9hY2NvdW50cy8nO1xuICBjaGFpbklkID0gNjk4NTM4NTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNjk4NTM4NSc7XG59XG5cbmNsYXNzIEh1bWFuaXR5UHJvdG9jb2xUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBIdW1hbml0eSBQcm90b2NvbCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5odW1hbml0eS5vcmcvdGVzdG5ldC90eG5zLyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmh1bWFuaXR5Lm9yZy90ZXN0bmV0L2FjY291bnRzLyc7XG4gIGNoYWluSWQgPSA3MDgwOTY5O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc3MDgwOTY5Jztcbn1cblxuY2xhc3MgWGxheWVyIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnWCBMYXllcic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuT0tCWExBWUVSO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3d3dy5va2xpbmsuY29tL3gtbGF5ZXIvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd3d3Lm9rbGluay5jb20veC1sYXllci9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxOTY7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzE5Nic7XG59XG5cbmNsYXNzIFhsYXllclRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IFggTGF5ZXInO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk9LQlhMQVlFUjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly93d3cub2tsaW5rLmNvbS94LWxheWVyLXRlc3RuZXQvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd3d3Lm9rbGluay5jb20veC1sYXllci10ZXN0bmV0L2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDE5NTI7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzE5NTInO1xufVxuXG5jbGFzcyBNb3JwaCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ01vcnBoIE1haW5uZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk1PUlBIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLWFwaS1ob29kaS5tb3JwaGwyLmlvL3R4Lyc7IC8vIFRPRE86IFdJTi04MTM0IGFkZCBtYWlubmV0IHVybCB3aGVuIGF2YWlsYWJsZVxuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci1hcGktaG9vZGkubW9ycGhsMi5pby9hZGRyZXNzLyc7IC8vIFRPRE86IFdJTi04MTM0IGFkZCBtYWlubmV0IGFjY291bnQgZXhwbG9yZXIgdXJsIHdoZW4gYXZhaWxhYmxlXG4gIGNoYWluSWQgPSAyODE4O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcyODE4Jztcbn1cblxuY2xhc3MgTW9ycGhUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnTW9ycGggVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuTU9SUEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXItaG9vZGkubW9ycGgubmV0d29yay90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci1ob29kaS5tb3JwaC5uZXR3b3JrL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDI5MTA7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzI5MTAnO1xufVxuXG5jbGFzcyBNb3JwaEVUSCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ01vcnBoIEV0aGVyZXVtIE1haW5uZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk1PUlBIRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLm1vcnBoLm5ldHdvcmsvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIubW9ycGgubmV0d29yay9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAyODE4O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcyODE4Jztcbn1cblxuY2xhc3MgTW9ycGhFVEhUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnTW9ycGggRXRoZXJldW0gVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuTU9SUEhFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXItaG9vZGkubW9ycGgubmV0d29yay90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci1ob29kaS5tb3JwaC5uZXR3b3JrL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDI5MTA7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzI5MTAnO1xufVxuXG5jbGFzcyBDcmVkaXRjb2luVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0NyZWRpdGNvaW5UZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5DVEM7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY3JlZGl0Y29pbi10ZXN0bmV0LmJsb2Nrc2NvdXQuY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2NyZWRpdGNvaW4tdGVzdG5ldC5ibG9ja3Njb3V0LmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxMDIwMzE7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzEwMjAzMSc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xuICB3YWxsZXRGYWN0b3J5QWRkcmVzcyA9ICcweDgwOWVlNTY3ZTQxMzU0M2FmMWNhZWJjZGIyNDdmNmE2N2VhZmM4ZGQnO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg5NDRmZWYwM2FmMzY4NDE0ZjI5ZGMzMWE3MjA2MWI4ZDY0ZjU2OGQyJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xufVxuXG5jbGFzcyBTb25pYyBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1NvbmljJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5TT05JQztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zb25pY3NjYW4ub3JnL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3Nvbmljc2Nhbi5vcmcvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTQ2O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxNDYnO1xufVxuXG5jbGFzcyBTb25pY1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdTb25pY1Rlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNPTklDO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQuc29uaWNzY2FuLm9yZy90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LnNvbmljc2Nhbi5vcmcvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTQ2MDE7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzE0NjAxJztcbiAgd2FsbGV0RmFjdG9yeUFkZHJlc3MgPSAnMHg4MDllZTU2N2U0MTM1NDNhZjFjYWViY2RiMjQ3ZjZhNjdlYWZjOGRkJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTQ0ZmVmMDNhZjM2ODQxNGYyOWRjMzFhNzIwNjFiOGQ2NGY1NjhkMic7XG59XG5cbmNsYXNzIFVzZHQwIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnVVNEVDAnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlVTRFQwO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3N0YWJsZXNjYW4ueHl6L3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3N0YWJsZXNjYW4ueHl6L2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDk4ODtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnOTg4Jztcbn1cblxuY2xhc3MgVXNkdDBUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBVU0RUMCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuVVNEVDA7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5zdGFibGVzY2FuLnh5ei90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LnN0YWJsZXNjYW4ueHl6L2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDIyMDE7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzIyMDEnO1xufVxuXG5jbGFzcyBLYWlhIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnS2FpYSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuS0FJQTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9rYWlhc2Nhbi5pby90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9rYWlhc2Nhbi5pby9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA4MjE3O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc4MjE3Jztcbn1cblxuY2xhc3MgS2FpYVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdLYWlhVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuS0FJQTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9rYWlyb3Mua2FpYXNjYW4uaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8va2Fpcm9zLmthaWFzY2FuLmlvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDEwMDE7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzEwMDEnO1xuICB3YWxsZXRGYWN0b3J5QWRkcmVzcyA9ICcweDgwOWVlNTY3ZTQxMzU0M2FmMWNhZWJjZGIyNDdmNmE2N2VhZmM4ZGQnO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg5NDRmZWYwM2FmMzY4NDE0ZjI5ZGMzMWE3MjA2MWI4ZDY0ZjU2OGQyJztcbn1cblxuY2xhc3MgSXJ5cyBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0lyeXMnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LklSWVM7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXZtLWV4cGxvcmVyLmlyeXMueHl6L3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V2bS1leHBsb3Jlci5pcnlzLnh5ei9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAzMjgyO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICczMjgyJztcbn1cblxuY2xhc3MgSXJ5c1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdJcnlzVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSVJZUztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LWV4cGxvcmVyLmlyeXMueHl6L3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQtZXhwbG9yZXIuaXJ5cy54eXovYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTI3MDtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTI3MCc7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4ODA5ZWU1NjdlNDEzNTQzYWYxY2FlYmNkYjI0N2Y2YTY3ZWFmYzhkZCc7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDk0NGZlZjAzYWYzNjg0MTRmMjlkYzMxYTcyMDYxYjhkNjRmNTY4ZDInO1xufVxuXG5jbGFzcyBPZyBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1plcm8gR3Jhdml0eSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuT0c7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY2hhaW5zY2FuLjBnLmFpL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2NoYWluc2Nhbi4wZy5haS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxNjY2MTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTY2NjEnO1xufVxuXG5jbGFzcyBPZ1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdaZXJvIEdyYXZpdHkgVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuT0c7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY2hhaW5zY2FuLWdhbGlsZW8uMGcuYWkvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vY2hhaW5zY2FuLWdhbGlsZW8uMGcuYWkvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTY2MDI7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzE2NjAyJztcbn1cblxuY2xhc3MgWGRjIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnWGRjQ2hhaW4nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlhEQztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly94ZGNzY2FuLmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly94ZGNzY2FuLmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA1MDtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNTAnO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4YzVkN2EzYjRjNDkwYzYyNDJmYjI4ZjIwZTVmZTMzY2Q5ODMzNzJhMyc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xufVxuY2xhc3MgWGRjVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1hkY0NoYWluVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuWERDO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQueGRjc2Nhbi5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC54ZGNzY2FuLmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA1MTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNTEnO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4ZWJlMjc5MTNmY2M3NTEwZWFkZjEwNjQzYThmODZiZjU0OTJhOTU0MSc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xufVxuY2xhc3MgV2VtaXggZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdXZW1peENoYWluJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5XRU1JWDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci53ZW1peC5jb20vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIud2VtaXguY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDExMTE7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzExMTEnO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4YzVkN2EzYjRjNDkwYzYyNDJmYjI4ZjIwZTVmZTMzY2Q5ODMzNzJhMyc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xufVxuY2xhc3MgV2VtaXhUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnV2VtaXhDaGFpblRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LldFTUlYO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnRlc3Qud2VtaXguY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnRlc3Qud2VtaXguY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDExMTI7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzExMTInO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4YzVkN2EzYjRjNDkwYzYyNDJmYjI4ZjIwZTVmZTMzY2Q5ODMzNzJhMyc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xufVxuY2xhc3MgTW9uYWRUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnTW9uYWRUZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5NT047XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5tb25hZGV4cGxvcmVyLmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0Lm1vbmFkZXhwbG9yZXIuY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDEwMTQzO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxMDE0Myc7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4ODA5ZWU1NjdlNDEzNTQzYWYxY2FlYmNkYjI0N2Y2YTY3ZWFmYzhkZCc7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDk0NGZlZjAzYWYzNjg0MTRmMjlkYzMxYTcyMDYxYjhkNjRmNTY4ZDInO1xufVxuY2xhc3MgTW9uYWQgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdNb25hZCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuTU9OO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL21haW5uZXQtYmV0YS5tb252aXNpb24uaW8vdHgvJztcbiAgY2hhaW5JZCA9IDE0MztcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTQzJztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTQ0ZmVmMDNhZjM2ODQxNGYyOWRjMzFhNzIwNjFiOGQ2NGY1NjhkMic7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG59XG5cbmNsYXNzIFdvcmxkIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnV29ybGRjaGFpbic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuV09STEQ7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd29ybGRzY2FuLm9yZy90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly93b3JsZHNjYW4ub3JnL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDQ4MDtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNDgwJztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTQ0ZmVmMDNhZjM2ODQxNGYyOWRjMzFhNzIwNjFiOGQ2NGY1NjhkMic7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHgzZTFlNWQ3OGU0NGYxNTU5M2IzYjYxZWQyNzhmMTJjMjdmMGZmMzNlJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG59XG5cbmNsYXNzIFdvcmxkVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1dvcmxkY2hhaW5UZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5XT1JMRDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zZXBvbGlhLndvcmxkc2Nhbi5vcmcvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vwb2xpYS53b3JsZHNjYW4ub3JnL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDQ4MDE7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzQ4MDEnO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg5NDRmZWYwM2FmMzY4NDE0ZjI5ZGMzMWE3MjA2MWI4ZDY0ZjU2OGQyJztcbn1cblxuY2xhc3MgU29uZWl1bSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1NvbmVpdW0nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNPTkVJVU07XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc29uZWl1bS5ibG9ja3Njb3V0LmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zb25laXVtLmJsb2Nrc2NvdXQuY29tL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDE4Njg7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzE4NjgnO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg5NDRmZWYwM2FmMzY4NDE0ZjI5ZGMzMWE3MjA2MWI4ZDY0ZjU2OGQyJztcbiAgd2FsbGV0RmFjdG9yeUFkZHJlc3MgPSAnMHg4MDllZTU2N2U0MTM1NDNhZjFjYWViY2RiMjQ3ZjZhNjdlYWZjOGRkJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbn1cblxuY2xhc3MgU29uZWl1bVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdTb25laXVtVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU09ORUlVTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zb25laXVtLW1pbmF0by5ibG9ja3Njb3V0LmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zb25laXVtLW1pbmF0by5ibG9ja3Njb3V0LmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxOTQ2O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxOTQ2JztcbiAgd2FsbGV0RmFjdG9yeUFkZHJlc3MgPSAnMHg4MDllZTU2N2U0MTM1NDNhZjFjYWViY2RiMjQ3ZjZhNjdlYWZjOGRkJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTQ0ZmVmMDNhZjM2ODQxNGYyOWRjMzFhNzIwNjFiOGQ2NGY1NjhkMic7XG59XG5cbmNsYXNzIFNlaUV2bSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1NlaWV2bSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU0VJRVZNO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3NlaXNjYW4uaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vpc2Nhbi5pby9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxMzI5O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxMzI5Jztcbn1cblxuY2xhc3MgU2VpRXZtVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1NlaUV2bVRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNFSUVWTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LnNlaXNjYW4uaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5zZWlzY2FuLmlvL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDEzMjg7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzEzMjgnO1xuICB3YWxsZXRGYWN0b3J5QWRkcmVzcyA9ICcweDgwOWVlNTY3ZTQxMzU0M2FmMWNhZWJjZGIyNDdmNmE2N2VhZmM4ZGQnO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg5NDRmZWYwM2FmMzY4NDE0ZjI5ZGMzMWE3MjA2MWI4ZDY0ZjU2OGQyJztcbn1cblxuY2xhc3MgU29tbmlhVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1NvbW5pYVRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNUVDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9zaGFubm9uLWV4cGxvcmVyLnNvbW5pYS5uZXR3b3JrL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL3NoYW5ub24tZXhwbG9yZXIuc29tbmlhLm5ldHdvcmsvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNTAzMTI7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzUwMzEyJztcbiAgd2FsbGV0RmFjdG9yeUFkZHJlc3MgPSAnMHg4MDllZTU2N2U0MTM1NDNhZjFjYWViY2RiMjQ3ZjZhNjdlYWZjOGRkJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweDNlMWU1ZDc4ZTQ0ZjE1NTkzYjNiNjFlZDI3OGYxMmMyN2YwZmYzM2UnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTQ0ZmVmMDNhZjM2ODQxNGYyOWRjMzFhNzIwNjFiOGQ2NGY1NjhkMic7XG59XG5cbmNsYXNzIFNvbWkgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdTb21uaWEnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNPTUk7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vbWFpbm5ldC5zb21uaWEudzN1cy5zaXRlL3R4Lyc7XG4gIGNoYWluSWQgPSA1MDMxO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc1MDMxJztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTQ0ZmVmMDNhZjM2ODQxNGYyOWRjMzFhNzIwNjFiOGQ2NGY1NjhkMic7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4ODA5ZWU1NjdlNDEzNTQzYWYxY2FlYmNkYjI0N2Y2YTY3ZWFmYzhkZCc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4M2UxZTVkNzhlNDRmMTU1OTNiM2I2MWVkMjc4ZjEyYzI3ZjBmZjMzZSc7XG59XG5cbmV4cG9ydCBjbGFzcyBGbGFyZVAgZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRmxhcmVOZXR3b3JrIHtcbiAgYXNzZXRJZCA9ICdGbGFyZSc7XG4gIG5hbWUgPSAnRmxhcmVQJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5GTFJQO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2ZsYXJlc2Nhbi5jb20vYmxvY2tjaGFpbi9wdm0vdHJhbnNhY3Rpb25zLyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2ZsYXJlc2Nhbi5jb20vYmxvY2tjaGFpbi9wdm0vYWRkcmVzcy8nO1xuICBibG9ja2NoYWluSUQgPSAnMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTFMcG9ZWSc7XG4gIGNDaGFpbkJsb2NrY2hhaW5JRCA9ICcycTllNHI2TXUzVTY4blUxZllqZ2JSNkp2d3JSeDM2Q29ocEFYNVVReHNlNTV4MVE1JztcbiAgeENoYWluQmxvY2tjaGFpbklEID0gJ0ZKdVN3WnVQODVleUJwdUJyS0VDbnBQZWRHeVhvRHkyaFA5cTRKRDhxQlRaR3hKJztcbiAgbmV0d29ya0lEID0gMTQ7XG4gIGhycCA9ICdmbGFyZSc7XG4gIGFsaWFzID0gJ1AnO1xuICB2bSA9ICdwbGF0Zm9ybXZtJztcbiAgbWluSW1wb3J0VG9QRmVlID0gJzEyNjEwMDAnOyAvLyAwLjEyNjEgRkxSXG4gIHR4RmVlID0gJzIwMDAwMCc7IC8vIEZMUiBQLWNoYWluIGltcG9ydCByZXF1aXJlcyBoaWdoZXIgZmVlIHRoYW4gYmFzZSB0eEZlZVxuICBiYXNlVHhGZWUgPSAnMTAwMDAwMCc7XG4gIG1heEltcG9ydEZlZSA9ICcxMDAwMDAwMCc7IC8vIGRlZmF1bHRzXG4gIGNyZWF0ZUFzc2V0VHhGZWUgPSAnMTAwMDAwMCc7XG4gIGNyZWF0ZVN1Ym5ldFR4ID0gJzEwMDAwMDAwMCc7IC8vIGRlZmF1bHRzXG4gIHRyYW5zZm9ybVN1Ym5ldFR4RmVlID0gJzEwMDAwMDAwMCc7XG4gIGNyZWF0ZUNoYWluVHggPSAnMTAwMDAwMDAwJzsgLy8gZGVmYXVsdHNcbiAgY3JlYXRpb25UeEZlZSA9ICcxMDAwMDAwMCc7IC8vIGRlZmF1bHRzXG4gIG1pbkNvbnN1bXB0aW9uID0gJzAuMSc7XG4gIG1heENvbnN1bXB0aW9uID0gJzAuMTInO1xuICBtYXhTdXBwbHkgPSAnMTAzNjg4MjY2OTc0MDAwMDAwMDAwJzsgLy8gMTAzQiB0b2tlbnNcbiAgbWluU3Rha2UgPSAnMTAwMDAwMDAwMDAwMDAwMCc7IC8vIDFNIEZMUlxuICBtaW5TdGFrZUR1cmF0aW9uID0gJzUyNTYwMDAnOyAvLyAyIG1vbnRoc1xuICBtYXhTdGFrZUR1cmF0aW9uID0gJzMxNTM2MDAwJzsgLy8gMSB5ZWFyXG4gIG1pbkRlbGVnYXRpb25TdGFrZSA9ICc1MDAwMDAwMDAwMDAwMCc7IC8vIDUwMDAwIEZMUlxuICBtaW5EZWxlZ2F0aW9uRmVlID0gJzAnO1xuICBhZGRQcmltYXJ5TmV0d29ya1ZhbGlkYXRvckZlZSA9ICcwJztcbiAgYWRkU3VibmV0VmFsaWRhdG9yRmVlID0gJzEwMDAwMDAnO1xuICBhZGRTdWJuZXREZWxlZ2F0b3JGZWUgPSAnMTAwMDAwMCc7XG59XG5cbmV4cG9ydCBjbGFzcyBGbGFyZVBUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEZsYXJlTmV0d29yayB7XG4gIG5hbWUgPSAnRmxhcmVQVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRkxSUDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9jb3N0b24yLnRlc3RuZXQuZmxhcmVzY2FuLmNvbS9ibG9ja2NoYWluL3B2bS90cmFuc2FjdGlvbnMnO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9jb3N0b24yLnRlc3RuZXQuZmxhcmVzY2FuLmNvbS9ibG9ja2NoYWluL3B2bS9hZGRyZXNzLyc7XG4gIGZsYXJlUHVibGljVXJsID0gJ2h0dHBzOi8vY29zdG9uMi50ZXN0bmV0LmZsYXJlLm5ldHdvcmsnO1xuICBibG9ja2NoYWluSUQgPSAnMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTFMcG9ZWSc7XG4gIGNDaGFpbkJsb2NrY2hhaW5JRCA9ICd2RThNOThtRVFINndrNTZzU3REMU1MOEhBcFRnU3FmSlpMazlnUTNGc2Q0aTZtM0JpJztcbiAgeENoYWluQmxvY2tjaGFpbklEID0gJ0ZKdVN3WnVQODVleUJwdUJyS0VDbnBQZWRHeVhvRHkyaFA5cTRKRDhxQlRaR3hZSic7XG4gIG5ldHdvcmtJRCA9IDExNDtcbiAgaHJwID0gJ2Nvc3R3byc7XG4gIGFsaWFzID0gJ1AnO1xuICBhc3NldElkID0gJ2Z4TUFLcEJRUXBGZWRyVWhXTXNEWWZDVUp4ZFV3NG1uZVRjektCek5nM3JjMkpVdWInO1xuICB2bSA9ICdwbGF0Zm9ybXZtJztcbiAgbWluSW1wb3J0VG9QRmVlID0gJzEyNjEwMDAnOyAvLyAwLjEyNjEgRkxSXG4gIHR4RmVlID0gJzIwMDAwMCc7IC8vIEZMUiBQLWNoYWluIGltcG9ydCByZXF1aXJlcyBoaWdoZXIgZmVlIHRoYW4gYmFzZSB0eEZlZVxuICBiYXNlVHhGZWUgPSAnMTAwMDAwMCc7XG4gIG1heEltcG9ydEZlZSA9ICcxMDAwMDAwMCc7IC8vIGRlZmF1bHRzXG4gIGNyZWF0ZUFzc2V0VHhGZWUgPSAnMTAwMDAwMCc7XG4gIGNyZWF0ZVN1Ym5ldFR4ID0gJzEwMDAwMDAwMCc7IC8vIGRlZmF1bHRzXG4gIHRyYW5zZm9ybVN1Ym5ldFR4RmVlID0gJzEwMDAwMDAwMCc7XG4gIGNyZWF0ZUNoYWluVHggPSAnMTAwMDAwMDAwJzsgLy8gZGVmYXVsdHNcbiAgY3JlYXRpb25UeEZlZSA9ICcxMDAwMDAwMCc7IC8vIGRlZmF1bHRzXG4gIG1pbkNvbnN1bXB0aW9uID0gJzAuMSc7XG4gIG1heENvbnN1bXB0aW9uID0gJzAuMTInO1xuICBtYXhTdXBwbHkgPSAnNzkwMDAwMDAwMDAwMDAwMDAwMDAwMDAnOyAvLyA3OSB0cmlsbGlvbiB0b2tlbnNcbiAgbWluU3Rha2UgPSAnMTAwMDAwMDAwMDAwMDAwMCc7IC8vIDFNIEZMUlxuICBtaW5TdGFrZUR1cmF0aW9uID0gJzUyNTYwMDAnOyAvLyAyIG1vbnRoc1xuICBtYXhTdGFrZUR1cmF0aW9uID0gJzMxNTM2MDAwJzsgLy8gMSB5ZWFyXG4gIG1pbkRlbGVnYXRpb25TdGFrZSA9ICc1MDAwMDAwMDAwMDAwMCc7IC8vIDUwMDAwIEZMUlxuICBtaW5EZWxlZ2F0aW9uRmVlID0gJzAnO1xuICBhZGRQcmltYXJ5TmV0d29ya1ZhbGlkYXRvckZlZSA9ICcwJztcbiAgYWRkU3VibmV0VmFsaWRhdG9yRmVlID0gJzEwMDAwMDAnO1xuICBhZGRTdWJuZXREZWxlZ2F0b3JGZWUgPSAnMTAwMDAwMCc7XG59XG5cbmV4cG9ydCBjbGFzcyBGbGFyZSBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0ZsYXJlY2hhaW4nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkZMUjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9mbGFyZS1leHBsb3Jlci5mbGFyZS5uZXR3b3JrL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2ZsYXJlLWV4cGxvcmVyLmZsYXJlLm5ldHdvcmsvYWRkcmVzcy8nO1xuICBmbGFyZVB1YmxpY1VybCA9ICdodHRwczovL2ZsYXJlLWV4cGxvcmVyLmZsYXJlLm5ldHdvcmsnO1xuICBjaGFpbklkID0gMTQ7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzE0JztcbiAgd2FsbGV0RmFjdG9yeUFkZHJlc3MgPSAnMHg4MDllZTU2N2U0MTM1NDNhZjFjYWViY2RiMjQ3ZjZhNjdlYWZjOGRkJztcbiAgd2FsbGV0SW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4OTQ0ZmVmMDNhZjM2ODQxNGYyOWRjMzFhNzIwNjFiOGQ2NGY1NjhkMic7XG4gIGJhdGNoZXJDb250cmFjdEFkZHJlc3MgPSAnMHhjNWQ3YTNiNGM0OTBjNjI0MmZiMjhmMjBlNWZlMzNjZDk4MzM3MmEzJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHgzNzk5NmU3NjJmYThiNjcxODY5NzQwYzc5ZWIzM2Y2MjViM2JmOTJhJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4ZDVmZTFjMWYyMTZiNzc1ZGZkMzA2MzhmYTcxNjRkNDEzMjFlZjc5Yic7XG59XG5cbmV4cG9ydCBjbGFzcyBGbGFyZVRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdGbGFyZWNoYWluVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuRkxSO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Nvc3RvbjItZXhwbG9yZXIuZmxhcmUubmV0d29yay90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9jb3N0b24yLWV4cGxvcmVyLmZsYXJlLm5ldHdvcmsvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gMTE0O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxMTQnO1xuICB3YWxsZXRGYWN0b3J5QWRkcmVzcyA9ICcweDgwOWVlNTY3ZTQxMzU0M2FmMWNhZWJjZGIyNDdmNmE2N2VhZmM4ZGQnO1xuICB3YWxsZXRJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHg5NDRmZWYwM2FmMzY4NDE0ZjI5ZGMzMWE3MjA2MWI4ZDY0ZjU2OGQyJztcbiAgYmF0Y2hlckNvbnRyYWN0QWRkcmVzcyA9ICcweGM1ZDdhM2I0YzQ5MGM2MjQyZmIyOGYyMGU1ZmUzM2NkOTgzMzcyYTMnO1xuICBmb3J3YXJkZXJGYWN0b3J5QWRkcmVzcyA9ICcweDM3OTk2ZTc2MmZhOGI2NzE4Njk3NDBjNzllYjMzZjYyNWIzYmY5MmEnO1xuICBmb3J3YXJkZXJJbXBsZW1lbnRhdGlvbkFkZHJlc3MgPSAnMHhkNWZlMWMxZjIxNmI3NzVkZmQzMDYzOGZhNzE2NGQ0MTMyMWVmNzliJztcbn1cbmNsYXNzIFNvbmdiaXJkIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnU29uZ2JpcmRjaGFpbic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuU0dCO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3NvbmdiaXJkLWV4cGxvcmVyLmZsYXJlLm5ldHdvcmsvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc29uZ2JpcmQtZXhwbG9yZXIuZmxhcmUubmV0d29yay9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxOTtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTknO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4YzVkN2EzYjRjNDkwYzYyNDJmYjI4ZjIwZTVmZTMzY2Q5ODMzNzJhMyc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xufVxuY2xhc3MgU29uZ2JpcmRUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnU29uZ2JpcmRjaGFpblRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlNHQjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9jb3N0b24tZXhwbG9yZXIuZmxhcmUubmV0d29yay90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9jb3N0b24tZXhwbG9yZXIuZmxhcmUubmV0d29yay9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSAxNjtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnMTYnO1xuICBiYXRjaGVyQ29udHJhY3RBZGRyZXNzID0gJzB4YzVkN2EzYjRjNDkwYzYyNDJmYjI4ZjIwZTVmZTMzY2Q5ODMzNzJhMyc7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4Mzc5OTZlNzYyZmE4YjY3MTg2OTc0MGM3OWViMzNmNjI1YjNiZjkyYSc7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweGQ1ZmUxYzFmMjE2Yjc3NWRmZDMwNjM4ZmE3MTY0ZDQxMzIxZWY3OWInO1xufVxuY2xhc3MgQmFzZUNoYWluVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICAvL0Jhc2VFVEggdGVzdG5ldFxuICBuYW1lID0gJ0Jhc2VDaGFpblRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkJBU0VFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vwb2xpYS5iYXNlc2Nhbi5vcmcvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vc2Vwb2xpYS5iYXNlc2Nhbi5vcmcvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gODQ1MzI7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzg0NTMyJztcbiAgdG9rZW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzg0NTMyLUVSQzIwJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHhkZDQ5ODcwMmY0NGM0ZGEwOGViOWUwOGQzZjAxNWVlZmU1Y2I3MWZjJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4YmU2OWNhZTMxMTE5MWZiNDVlNjQ4ZWQyMDg0N2YwNmZhZDJkYmFiNCc7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4NDU1MGUxZTc2MTZkMzM2NDg3N2ZjNmM5MzI0OTM4ZGFiNjc4NjIxYSc7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDkyZGIyNzU5ZDFkY2ExMjlhMGQ5ZDQ2ODc3ZjM2MWJlODE5MTg0YzQnO1xufVxuXG5jbGFzcyBCYXNlQ2hhaW4gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgLy9CYXNlRVRIXG4gIG5hbWUgPSAnQmFzZUNoYWluJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5CQVNFRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2Jhc2VzY2FuLm9yZy90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9iYXNlc2Nhbi5vcmcvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gODQ1MztcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnODQ1Myc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc4NDUzLUVSQzIwJztcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHhkZDQ5ODcwMmY0NGM0ZGEwOGViOWUwOGQzZjAxNWVlZmU1Y2I3MWZjJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4YmU2OWNhZTMxMTE5MWZiNDVlNjQ4ZWQyMDg0N2YwNmZhZDJkYmFiNCc7XG4gIHdhbGxldEZhY3RvcnlBZGRyZXNzID0gJzB4NDU1MGUxZTc2MTZkMzM2NDg3N2ZjNmM5MzI0OTM4ZGFiNjc4NjIxYSc7XG4gIHdhbGxldEltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDkyZGIyNzU5ZDFkY2ExMjlhMGQ5ZDQ2ODc3ZjM2MWJlODE5MTg0YzQnO1xufVxuXG5jbGFzcyBQb2x5bWVzaCBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBBY2NvdW50TmV0d29yayB7XG4gIG5hbWUgPSAnUG9seW1lc2gnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlBPTFlYO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3BvbHltZXNoLnN1YnNjYW4uaW8vZXh0cmluc2ljLyc7XG4gIHNwZWNOYW1lID0gJ3BvbHltZXNoX21haW5uZXQnO1xuICBnZW5lc2lzSGFzaCA9ICcweDZmYmQ3NGU1ZTFkMGE2MWQ1MmNjZmU5ZDRhZGFlZDE2ZGQzYTdjYWEzN2M2YmM0ZDBjMmZhMTJlOGIyZjQwNjMnO1xuICBzcGVjVmVyc2lvbiA9IDcwMDIwMDA7XG4gIGNoYWluTmFtZSA9ICdQb2x5bWVzaCBNYWlubmV0JztcbiAgdHhWZXJzaW9uID0gNztcbn1cblxuY2xhc3MgUG9seW1lc2hUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdQb2x5bWVzaFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlBPTFlYO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3BvbHltZXNoLXRlc3RuZXQuc3Vic2Nhbi5pby9leHRyaW5zaWMvJztcbiAgc3BlY05hbWUgPSAncG9seW1lc2hfdGVzdG5ldCcgYXMgU3Vic3RyYXRlU3BlY05hbWVUeXBlO1xuICBnZW5lc2lzSGFzaCA9ICcweDJhY2UwNWU3MDNhYTUwYjQ4YzBjY2NjZmM4YjQyNGY3YWFiOWExZTJjNDI0ZWQxMmU0NWQyMGIxZThmZmQwZDYnO1xuICBzcGVjVmVyc2lvbiA9IDcwMDIwMDA7XG4gIGNoYWluTmFtZSA9ICdQb2x5bWVzaCBUZXN0bmV0JztcbiAgdHhWZXJzaW9uID0gNztcbn1cblxuY2xhc3MgVmV0IGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnVmVDaGFpbic7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuVkVUO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmUudmVjaGFpbi5vcmcvdHJhbnNhY3Rpb25zLyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmUudmVjaGFpbi5vcmcvYWNjb3VudHMvJztcbiAgY2hhaW5JZCA9IDEwMDAwOTtcbiAgZm9yd2FyZGVyRmFjdG9yeUFkZHJlc3MgPSAnMHg2NTM0M2UxOGMzNzZkMmZjOGMzY2YxMGNkMTQ2ZDYzZTJlMGRjOWVmJztcbiAgZm9yd2FyZGVySW1wbGVtZW50YXRpb25BZGRyZXNzID0gJzB4NjJkZTM0Yzg3Zjg0N2QzODVhZjA3ZjZjMjVkYmQ5N2IxZmZmZWZjMCc7XG59XG5cbmNsYXNzIFZldFRlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdWZUNoYWluVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuVkVUO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmUtdGVzdG5ldC52ZWNoYWluLm9yZy90cmFuc2FjdGlvbnMvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZS10ZXN0bmV0LnZlY2hhaW4ub3JnL2FjY291bnRzLyc7XG4gIGNoYWluSWQgPSAxMDAwMTA7XG4gIGZvcndhcmRlckZhY3RvcnlBZGRyZXNzID0gJzB4NjUzNDNlMThjMzc2ZDJmYzhjM2NmMTBjZDE0NmQ2M2UyZTBkYzllZic7XG4gIGZvcndhcmRlckltcGxlbWVudGF0aW9uQWRkcmVzcyA9ICcweDYyZGUzNGM4N2Y4NDdkMzg1YWYwN2Y2YzI1ZGJkOTdiMWZmZmVmYzAnO1xufVxuXG5jbGFzcyBJb3RhIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdJb3RhJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5JT1RBO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmlvdGEub3JnL3R4YmxvY2svP25ldHdvcms9bWFpbm5ldCc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmlvdGEub3JnL2FkZHJlc3MvP25ldHdvcms9bWFpbm5ldCc7XG59XG5cbmNsYXNzIElvdGFUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEFjY291bnROZXR3b3JrIHtcbiAgbmFtZSA9ICdUZXN0bmV0IElvdGEnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LklPVEE7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuaW90YS5vcmcvdHhibG9jay8/bmV0d29yaz10ZXN0bmV0JztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZXIuaW90YS5vcmcvYWRkcmVzcy8/bmV0d29yaz10ZXN0bmV0Jztcbn1cblxuY2xhc3MgRmxvdyBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0Zsb3cnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkZMT1c7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXZtLmZsb3dzY2FuLmlvL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V2bS5mbG93c2Nhbi5pby9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA3NDc7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzc0Nyc7XG59XG5cbmNsYXNzIEZsb3dUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnRmxvd1Rlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkZMT1c7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXZtLXRlc3RuZXQuZmxvd3NjYW4uaW8vdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXZtLXRlc3RuZXQuZmxvd3NjYW4uaW8vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNTQ1O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc1NDUnO1xufVxuXG5jbGFzcyBNZWdhRVRIIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnTWVnYUVUSCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuTUVHQUVUSDtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9tZWdhZXRoLmJsb2Nrc2NvdXQuY29tL3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL21lZ2FldGguYmxvY2tzY291dC5jb20vYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNDMyNjtcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNDMyNic7XG59XG5cbmNsYXNzIE1lZ2FFVEhUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnTWVnYUVUSFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5Lk1FR0FFVEg7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd3d3Lm1lZ2FleHBsb3Jlci54eXovdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vd3d3Lm1lZ2FleHBsb3Jlci54eXovYWRkcmVzcy8nO1xuICBjaGFpbklkID0gNjM0MztcbiAgbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAnNjM0Myc7XG59XG5cbmNsYXNzIFBsdW1lIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnUGx1bWUnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlBMVU1FO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLnBsdW1lLm9yZy90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9leHBsb3Jlci5wbHVtZS5vcmcvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gOTg4NjY7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzk4ODY2Jztcbn1cblxuY2xhc3MgSGVkZXJhRVZNVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1Rlc3RuZXQgSGVkZXJhIEVWTSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuSEJBUkVWTTtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9oYXNoc2Nhbi5pby90ZXN0bmV0L3RyYW5zYWN0aW9uLyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2hhc2hzY2FuLmlvL3Rlc3RuZXQvYWNjb3VudC8nO1xuICBjaGFpbklkID0gMjk2O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcyOTYnO1xufVxuXG5jbGFzcyBIZWRlcmFFVk0gZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdIZWRlcmEgRVZNJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5IQkFSRVZNO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2hhc2hzY2FuLmlvL21haW5uZXQvdHJhbnNhY3Rpb24vJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vaGFzaHNjYW4uaW8vbWFpbm5ldC9hY2NvdW50Lyc7XG4gIGNoYWluSWQgPSAyOTU7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzI5NSc7XG59XG5cbmNsYXNzIEhlbWlFdGggZXh0ZW5kcyBNYWlubmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdIZW1pIEV0aGVyZXVtJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5IRU1JRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmhlbWkueHl6L3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmVyLmhlbWkueHl6L2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDQzMTExO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc0MzExMSc7XG59XG5cbmNsYXNzIEhlbWlFdGhUZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnVGVzdG5ldCBIZW1pIEV0aGVyZXVtJztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5IRU1JRVRIO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL3Rlc3RuZXQuZXhwbG9yZXIuaGVtaS54eXovdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5leHBsb3Jlci5oZW1pLnh5ei9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA3NDMxMTE7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzc0MzExMSc7XG59XG5cbmNsYXNzIFBsdW1lVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1BsdW1lVGVzdG5ldCc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuUExVTUU7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC1leHBsb3Jlci5wbHVtZS5vcmcvdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC1leHBsb3Jlci5wbHVtZS5vcmcvYWRkcmVzcy8nO1xuICBjaGFpbklkID0gOTg4Njc7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzk4ODY3Jztcbn1cblxuY2xhc3MgQ2FudG9uIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEJhc2VOZXR3b3JrIHtcbiAgbmFtZSA9ICdDYW50b24nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkNBTlRPTjtcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9saWdodGhvdXNlLmNhbnRvbmxvb3AuY29tL3RyYW5zYWN0aW9ucy8nO1xufVxuXG5jbGFzcyBDYW50b25UZXN0bmV0IGV4dGVuZHMgVGVzdG5ldCBpbXBsZW1lbnRzIEJhc2VOZXR3b3JrIHtcbiAgbmFtZSA9ICdDYW50b25UZXN0bmV0JztcbiAgZmFtaWx5ID0gQ29pbkZhbWlseS5DQU5UT047XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vbGlnaHRob3VzZS5kZXZuZXQuY2FudG9ubG9vcC5jb20vdHJhbnNhY3Rpb25zLyc7XG59XG5cbmNsYXNzIERvZ2VvcyBleHRlbmRzIE1haW5uZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ0RvZ2UgT1MnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkRPR0VPUztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ibG9ja3Njb3V0LnRlc3RuZXQuZG9nZW9zLmNvbS90eC8nOyAvL1RPRE86IFdJTi04MDgyID0+IGFkZCBtYWlubmV0IHVybCB3aGVuIGF2YWlsYWJsZVxuICBhY2NvdW50RXhwbG9yZXJVcmwgPSBcIidodHRwczovL2Jsb2Nrc2NvdXQudGVzdG5ldC5kb2dlb3MuY29tL2FkZHJlc3MvXCI7IC8vVE9ETzogV0lOLTgwODIgPT4gYWRkIG1haW5uZXQgdXJsIHdoZW4gYXZhaWxhYmxlXG4gIGNoYWluSWQgPSAxMjM0NTY3OyAvLy8vVE9ETzogV0lOLTgwODIgPT4gYWRkIG1haW5uZXQgY2hhaW5JZCB3aGVuIGF2YWlsYWJsZVxuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICcxMjM0NTY3JzsgLy9UT0RPOiBXSU4tODA4MiA9PiBhZGQgd2hlbiBtYWlubmV0IGRldGFpbHMgYXZhaWxhYmxlXG59XG5cbmNsYXNzIERvZ2Vvc1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdEb2dlIE9TIFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkRPR0VPUztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ibG9ja3Njb3V0LnRlc3RuZXQuZG9nZW9zLmNvbS90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly9ibG9ja3Njb3V0LnRlc3RuZXQuZG9nZW9zLmNvbS9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA2MjgxOTcxO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc2MjgxOTcxJztcbn1cblxuY2xhc3MgQXJjVVNEQ1Rlc3RuZXQgZXh0ZW5kcyBUZXN0bmV0IGltcGxlbWVudHMgRXRoZXJldW1OZXR3b3JrIHtcbiAgbmFtZSA9ICdVU0RDIChBUkMpIFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LkFSQ1VTREM7XG4gIGV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vdGVzdG5ldC5hcmNzY2FuLmFwcC90eC8nO1xuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LmFyY3NjYW4uYXBwL2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDUwNDIwMDI7XG4gIG5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gJzUwNDIwMDInO1xufVxuXG5jbGFzcyBBcmNVU0RDIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnVVNEQyAoQVJDKSc7XG4gIGZhbWlseSA9IENvaW5GYW1pbHkuQVJDVVNEQztcbiAgZXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LmFyY3NjYW4uYXBwL3R4Lyc7IC8vIFdJTi04ODQ0IGNoYW5nZSB0byBwcm9kIGV4cGxvcmVyIHVybFxuICBhY2NvdW50RXhwbG9yZXJVcmwgPSAnaHR0cHM6Ly90ZXN0bmV0LmFyY3NjYW4uYXBwL2FkZHJlc3MvJzsgLy8gY2hhbmdlIHRvIHByb2QgZXhwbG9yZXIgdXJsIHdoZW4gYXZhaWxhYmxlXG4gIGNoYWluSWQgPSA1MDQyMDAyOyAvLyBjaGFuZ2UgdG8gcHJvZCBjaGFpbiBpZCB3aGVuIGF2YWlsYWJsZVxuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc1MDQyMDAyJzsgLy8gY2hhbmdlIHRvIHByb2QgbmF0aXZlIGNvaW4gb3BlcmF0aW9uIGhhc2ggcHJlZml4IHdoZW4gYXZhaWxhYmxlXG59XG5cbmNsYXNzIFRlbXBvIGV4dGVuZHMgTWFpbm5ldCBpbXBsZW1lbnRzIEV0aGVyZXVtTmV0d29yayB7XG4gIG5hbWUgPSAnVGVtcG8nO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlRFTVBPO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmUubWFpbm5ldC50ZW1wby54eXovdHgvJztcbiAgYWNjb3VudEV4cGxvcmVyVXJsID0gJ2h0dHBzOi8vZXhwbG9yZS5tYWlubmV0LnRlbXBvLnh5ei9hZGRyZXNzLyc7XG4gIGNoYWluSWQgPSA0MjE3O1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdURU1QTyc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICdURU1QTy1USVAyMCc7XG59XG5cbmNsYXNzIFRlbXBvVGVzdG5ldCBleHRlbmRzIFRlc3RuZXQgaW1wbGVtZW50cyBFdGhlcmV1bU5ldHdvcmsge1xuICBuYW1lID0gJ1RlbXBvIFRlc3RuZXQnO1xuICBmYW1pbHkgPSBDb2luRmFtaWx5LlRFTVBPO1xuICBleHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmUudGVtcG8ueHl6L3R4Lyc7XG4gIGFjY291bnRFeHBsb3JlclVybCA9ICdodHRwczovL2V4cGxvcmUudGVtcG8ueHl6L2FkZHJlc3MvJztcbiAgY2hhaW5JZCA9IDQyNDMxO1xuICBuYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc0MjQzMSc7XG4gIHRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA9ICc0MjQzMSc7XG59XG5cbmV4cG9ydCBjb25zdCBOZXR3b3JrcyA9IHtcbiAgbWFpbjoge1xuICAgIGFkYTogT2JqZWN0LmZyZWV6ZShuZXcgQWRhKCkpLFxuICAgIGFsZ29yYW5kOiBPYmplY3QuZnJlZXplKG5ldyBBbGdvcmFuZCgpKSxcbiAgICBhcGVjaGFpbjogT2JqZWN0LmZyZWV6ZShuZXcgQXBlQ2hhaW4oKSksXG4gICAgYXB0OiBPYmplY3QuZnJlZXplKG5ldyBBcHQoKSksXG4gICAgYXJiaXRydW06IE9iamVjdC5mcmVlemUobmV3IEFyYml0cnVtKCkpLFxuICAgIGFyY3VzZGM6IE9iamVjdC5mcmVlemUobmV3IEFyY1VTREMoKSksXG4gICAgYXNpOiBPYmplY3QuZnJlZXplKG5ldyBBc2koKSksXG4gICAgYXRvbTogT2JqZWN0LmZyZWV6ZShuZXcgQXRvbSgpKSxcbiAgICBhdmFsYW5jaGVDOiBPYmplY3QuZnJlZXplKG5ldyBBdmFsYW5jaGVDKCkpLFxuICAgIGF2YWxhbmNoZVA6IE9iamVjdC5mcmVlemUobmV3IEF2YWxhbmNoZVAoKSksXG4gICAgYmFieTogT2JqZWN0LmZyZWV6ZShuZXcgQmFieSgpKSxcbiAgICBiYXNlY2hhaW46IE9iamVjdC5mcmVlemUobmV3IEJhc2VDaGFpbigpKSxcbiAgICBiaXRjb2luOiBPYmplY3QuZnJlZXplKG5ldyBCaXRjb2luKCkpLFxuICAgIGJpdGNvaW5DYXNoOiBPYmplY3QuZnJlZXplKG5ldyBCaXRjb2luQ2FzaCgpKSxcbiAgICBiaXRjb2luR29sZDogT2JqZWN0LmZyZWV6ZShuZXcgQml0Y29pbkdvbGQoKSksXG4gICAgYml0Y29pblNWOiBPYmplY3QuZnJlZXplKG5ldyBCaXRjb2luU1YoKSksXG4gICAgYmVyYTogT2JqZWN0LmZyZWV6ZShuZXcgQmVyYWNoYWluKCkpLFxuICAgIGJsZDogT2JqZWN0LmZyZWV6ZShuZXcgQmxkKCkpLFxuICAgIGJzYzogT2JqZWN0LmZyZWV6ZShuZXcgQmluYW5jZVNtYXJ0Q2hhaW4oKSksXG4gICAgY2FudG9uOiBPYmplY3QuZnJlZXplKG5ldyBDYW50b24oKSksXG4gICAgY2FzcGVyOiBPYmplY3QuZnJlZXplKG5ldyBDYXNwZXIoKSksXG4gICAgY2VsbzogT2JqZWN0LmZyZWV6ZShuZXcgQ2VsbygpKSxcbiAgICBjaGlsaXo6IE9iamVjdC5mcmVlemUobmV3IENoaWxpeigpKSxcbiAgICBjb2RleGV0aDogT2JqZWN0LmZyZWV6ZShuZXcgQ29kZXhFdGgoKSksXG4gICAgY29yZWRhbzogT2JqZWN0LmZyZWV6ZShuZXcgQ29yZWRhbygpKSxcbiAgICBjb3JldW06IE9iamVjdC5mcmVlemUobmV3IENvcmV1bSgpKSxcbiAgICBjcm9ub3M6IE9iamVjdC5mcmVlemUobmV3IENyb25vcygpKSxcbiAgICBkYXNoOiBPYmplY3QuZnJlZXplKG5ldyBEYXNoKCkpLFxuICAgIGRvZ2Vjb2luOiBPYmplY3QuZnJlZXplKG5ldyBEb2dlY29pbigpKSxcbiAgICBkb2dlb3M6IE9iamVjdC5mcmVlemUobmV3IERvZ2VvcygpKSxcbiAgICBkb3Q6IE9iamVjdC5mcmVlemUobmV3IFBvbGthZG90QXNzZXRIdWIoKSksXG4gICAgZHlkeDogT2JqZWN0LmZyZWV6ZShuZXcgRHlkeCgpKSxcbiAgICBlQ2FzaDogT2JqZWN0LmZyZWV6ZShuZXcgRUNhc2goKSksXG4gICAgZW9zOiBPYmplY3QuZnJlZXplKG5ldyBFb3MoKSksXG4gICAgZXRoZXJldW06IE9iamVjdC5mcmVlemUobmV3IEV0aGVyZXVtKCkpLFxuICAgIGV0aGVyZXVtMjogT2JqZWN0LmZyZWV6ZShuZXcgRXRoZXJldW0yKCkpLFxuICAgIGV0aGVyZXVtQ2xhc3NpYzogT2JqZWN0LmZyZWV6ZShuZXcgRXRoZXJldW1DbGFzc2ljKCkpLFxuICAgIGV0aGVyZXVtVzogT2JqZWN0LmZyZWV6ZShuZXcgRXRoZXJldW1XKCkpLFxuICAgIGZpYXQ6IE9iamVjdC5mcmVlemUobmV3IEZpYXQoKSksXG4gICAgZmV0Y2hhaTogT2JqZWN0LmZyZWV6ZShuZXcgRmV0Y2hBaSgpKSxcbiAgICBmbG93OiBPYmplY3QuZnJlZXplKG5ldyBGbG93KCkpLFxuICAgIGZscjogT2JqZWN0LmZyZWV6ZShuZXcgRmxhcmUoKSksXG4gICAgZmxyUDogT2JqZWN0LmZyZWV6ZShuZXcgRmxhcmVQKCkpLFxuICAgIGZsdWVudGV0aDogT2JqZWN0LmZyZWV6ZShuZXcgRmx1ZW50RVRIKCkpLFxuICAgIGg6IE9iamVjdC5mcmVlemUobmV3IEh1bWFuaXR5UHJvdG9jb2woKSksXG4gICAgaGFzaDogT2JqZWN0LmZyZWV6ZShuZXcgSGFzaCgpKSxcbiAgICBob29kZXRoOiBPYmplY3QuZnJlZXplKG5ldyBIb29kZXRoKCkpLFxuICAgIGhlZGVyYTogT2JqZWN0LmZyZWV6ZShuZXcgSGVkZXJhKCkpLFxuICAgIGhlZGVyYUVWTTogT2JqZWN0LmZyZWV6ZShuZXcgSGVkZXJhRVZNKCkpLFxuICAgIGhlbWlldGg6IE9iamVjdC5mcmVlemUobmV3IEhlbWlFdGgoKSksXG4gICAgaHBwZXRoOiBPYmplY3QuZnJlZXplKG5ldyBIcHBldGgoKSksXG4gICAgaWNwOiBPYmplY3QuZnJlZXplKG5ldyBJY3AoKSksXG4gICAgaXA6IE9iamVjdC5mcmVlemUobmV3IElQKCkpLFxuICAgIGluaXRpYTogT2JqZWN0LmZyZWV6ZShuZXcgSW5pdGlhKCkpLFxuICAgIGlvdGE6IE9iamVjdC5mcmVlemUobmV3IElvdGEoKSksXG4gICAgaW5qZWN0aXZlOiBPYmplY3QuZnJlZXplKG5ldyBJbmplY3RpdmUoKSksXG4gICAgaXJ5czogT2JqZWN0LmZyZWV6ZShuZXcgSXJ5cygpKSxcbiAgICBpc2xtOiBPYmplY3QuZnJlZXplKG5ldyBJc2xtKCkpLFxuICAgIGpvdmF5ZXRoOiBPYmplY3QuZnJlZXplKG5ldyBKb3ZheUVUSCgpKSxcbiAgICBrYWlhOiBPYmplY3QuZnJlZXplKG5ldyBLYWlhKCkpLFxuICAgIGthdmFjb3Ntb3M6IE9iamVjdC5mcmVlemUobmV3IEthdmFDb3Ntb3MoKSksXG4gICAga2F2YWV2bTogT2JqZWN0LmZyZWV6ZShuZXcgS2F2YUVWTSgpKSxcbiAgICBsbmJ0YzogT2JqZWN0LmZyZWV6ZShuZXcgTGlnaHRuaW5nQml0Y29pbigpKSxcbiAgICBsaXRlY29pbjogT2JqZWN0LmZyZWV6ZShuZXcgTGl0ZWNvaW4oKSksXG4gICAgbWVnYWV0aDogT2JqZWN0LmZyZWV6ZShuZXcgTWVnYUVUSCgpKSxcbiAgICBtb246IE9iamVjdC5mcmVlemUobmV3IE1vbmFkKCkpLFxuICAgIG1hbnRsZTogT2JqZWN0LmZyZWV6ZShuZXcgTWFudGxlKCkpLFxuICAgIG1hbnRyYTogT2JqZWN0LmZyZWV6ZShuZXcgTWFudHJhKCkpLFxuICAgIHBsdW1lOiBPYmplY3QuZnJlZXplKG5ldyBQbHVtZSgpKSxcbiAgICBwb2x5Z29uOiBPYmplY3QuZnJlZXplKG5ldyBQb2x5Z29uKCkpLFxuICAgIHBvbHl4OiBPYmplY3QuZnJlZXplKG5ldyBQb2x5bWVzaCgpKSxcbiAgICBwaHJzOiBPYmplY3QuZnJlZXplKG5ldyBQaGFyb3MoKSksXG4gICAgY3RjOiBPYmplY3QuZnJlZXplKG5ldyBDcmVkaXRjb2luKCkpLFxuICAgIGh5cGVldm06IE9iamVjdC5mcmVlemUobmV3IEh5cGVFVk0oKSksXG4gICAgbGluZWFldGg6IE9iamVjdC5mcmVlemUobmV3IExpbmVhRVRIKCkpLFxuICAgIG9hczogT2JqZWN0LmZyZWV6ZShuZXcgT2FzKCkpLFxuICAgIG9nOiBPYmplY3QuZnJlZXplKG5ldyBPZygpKSxcbiAgICBvZmM6IE9iamVjdC5mcmVlemUobmV3IE9mYygpKSxcbiAgICBva2J4bGF5ZXI6IE9iamVjdC5mcmVlemUobmV3IFhsYXllcigpKSxcbiAgICBvcGJuYjogT2JqZWN0LmZyZWV6ZShuZXcgT3BCTkIoKSksXG4gICAgZmFudG9tOiBPYmplY3QuZnJlZXplKG5ldyBGYW50b20oKSksXG4gICAgbW9ycGg6IE9iamVjdC5mcmVlemUobmV3IE1vcnBoKCkpLFxuICAgIG1vcnBoZXRoOiBPYmplY3QuZnJlZXplKG5ldyBNb3JwaEVUSCgpKSxcbiAgICBvcHRpbWlzbTogT2JqZWN0LmZyZWV6ZShuZXcgT3B0aW1pc20oKSksXG4gICAgb3NtbzogT2JqZWN0LmZyZWV6ZShuZXcgT3NtbygpKSxcbiAgICByYnRjOiBPYmplY3QuZnJlZXplKG5ldyBSYnRjKCkpLFxuICAgIHJ1bmU6IE9iamVjdC5mcmVlemUobmV3IFJ1bmUoKSksXG4gICAgc3RlbGxhcjogT2JqZWN0LmZyZWV6ZShuZXcgU3RlbGxhcigpKSxcbiAgICBzZWk6IE9iamVjdC5mcmVlemUobmV3IFNlaSgpKSxcbiAgICBzZWlldm06IE9iamVjdC5mcmVlemUobmV3IFNlaUV2bSgpKSxcbiAgICBzZ2I6IE9iamVjdC5mcmVlemUobmV3IFNvbmdiaXJkKCkpLFxuICAgIHNvbDogT2JqZWN0LmZyZWV6ZShuZXcgU29sKCkpLFxuICAgIHNvbmljOiBPYmplY3QuZnJlZXplKG5ldyBTb25pYygpKSxcbiAgICBzdWk6IE9iamVjdC5mcmVlemUobmV3IFN1aSgpKSxcbiAgICBuZWFyOiBPYmplY3QuZnJlZXplKG5ldyBOZWFyKCkpLFxuICAgIHN0eDogT2JqZWN0LmZyZWV6ZShuZXcgU3R4KCkpLFxuICAgIHNvbWk6IE9iamVjdC5mcmVlemUobmV3IFNvbWkoKSksXG4gICAgc29uZWl1bTogT2JqZWN0LmZyZWV6ZShuZXcgU29uZWl1bSgpKSxcbiAgICBzdXNkOiBPYmplY3QuZnJlZXplKG5ldyBTVVNEKCkpLFxuICAgIHRhbzogT2JqZWN0LmZyZWV6ZShuZXcgQml0dGVuc29yKCkpLFxuICAgIHRlbXBvOiBPYmplY3QuZnJlZXplKG5ldyBUZW1wbygpKSxcbiAgICB0aWE6IE9iamVjdC5mcmVlemUobmV3IFRpYSgpKSxcbiAgICB0b246IE9iamVjdC5mcmVlemUobmV3IFRvbigpKSxcbiAgICB0cng6IE9iamVjdC5mcmVlemUobmV3IFRyeCgpKSxcbiAgICB1c2R0MDogT2JqZWN0LmZyZWV6ZShuZXcgVXNkdDAoKSksXG4gICAgdmV0OiBPYmplY3QuZnJlZXplKG5ldyBWZXQoKSksXG4gICAgd2VtaXg6IE9iamVjdC5mcmVlemUobmV3IFdlbWl4KCkpLFxuICAgIHdvcmxkOiBPYmplY3QuZnJlZXplKG5ldyBXb3JsZCgpKSxcbiAgICB4ZGM6IE9iamVjdC5mcmVlemUobmV3IFhkYygpKSxcbiAgICB4cGw6IE9iamVjdC5mcmVlemUobmV3IFBsYXNtYSgpKSxcbiAgICB4cnA6IE9iamVjdC5mcmVlemUobmV3IFhycCgpKSxcbiAgICB4dHo6IE9iamVjdC5mcmVlemUobmV3IFh0eigpKSxcbiAgICB4dHpldm06IE9iamVjdC5mcmVlemUobmV3IFh0ekV2bSgpKSxcbiAgICB6Q2FzaDogT2JqZWN0LmZyZWV6ZShuZXcgWkNhc2goKSksXG4gICAgemV0YTogT2JqZWN0LmZyZWV6ZShuZXcgWmV0YSgpKSxcbiAgICB6a1N5bmM6IE9iamVjdC5mcmVlemUobmV3IFprU3luYygpKSxcbiAgICB6a1N5bmNFcmE6IE9iamVjdC5mcmVlemUobmV3IFprU3luY0VyYSgpKSxcbiAgICB1bmlldGg6IE9iamVjdC5mcmVlemUobmV3IFVuaWV0aCgpKSxcbiAgfSxcbiAgdGVzdDoge1xuICAgIGFkYTogT2JqZWN0LmZyZWV6ZShuZXcgQWRhVGVzdG5ldCgpKSxcbiAgICBhbGdvcmFuZDogT2JqZWN0LmZyZWV6ZShuZXcgQWxnb3JhbmRUZXN0bmV0KCkpLFxuICAgIGFwZWNoYWluOiBPYmplY3QuZnJlZXplKG5ldyBBcGVDaGFpblRlc3RuZXQoKSksXG4gICAgYXB0OiBPYmplY3QuZnJlZXplKG5ldyBBcHRUZXN0bmV0KCkpLFxuICAgIGFyYml0cnVtOiBPYmplY3QuZnJlZXplKG5ldyBBcmJpdHJ1bVRlc3RuZXQoKSksXG4gICAgYXJjdXNkYzogT2JqZWN0LmZyZWV6ZShuZXcgQXJjVVNEQ1Rlc3RuZXQoKSksXG4gICAgYXNpOiBPYmplY3QuZnJlZXplKG5ldyBBc2lUZXN0bmV0KCkpLFxuICAgIGF0b206IE9iamVjdC5mcmVlemUobmV3IEF0b21UZXN0bmV0KCkpLFxuICAgIGF2YWxhbmNoZUM6IE9iamVjdC5mcmVlemUobmV3IEF2YWxhbmNoZUNUZXN0bmV0KCkpLFxuICAgIGF2YWxhbmNoZVA6IE9iamVjdC5mcmVlemUobmV3IEF2YWxhbmNoZVBUZXN0bmV0KCkpLFxuICAgIGJhYnk6IE9iamVjdC5mcmVlemUobmV3IEJhYnlUZXN0bmV0KCkpLFxuICAgIGJhc2VjaGFpbjogT2JqZWN0LmZyZWV6ZShuZXcgQmFzZUNoYWluVGVzdG5ldCgpKSxcbiAgICBiaXRjb2luOiBPYmplY3QuZnJlZXplKG5ldyBCaXRjb2luVGVzdG5ldCgpKSxcbiAgICBiaXRjb2luUHVibGljU2lnbmV0OiBPYmplY3QuZnJlZXplKG5ldyBCaXRjb2luUHVibGljU2lnbmV0KCkpLFxuICAgIGJpdGNvaW5UZXN0bmV0NDogT2JqZWN0LmZyZWV6ZShuZXcgQml0Y29pblRlc3RuZXQ0KCkpLFxuICAgIGJpdGNvaW5CaXRHb1NpZ25ldDogT2JqZWN0LmZyZWV6ZShuZXcgQml0Y29pbkJpdEdvU2lnbmV0KCkpLFxuICAgIGJpdGNvaW5DYXNoOiBPYmplY3QuZnJlZXplKG5ldyBCaXRjb2luQ2FzaFRlc3RuZXQoKSksXG4gICAgYml0Y29pbkdvbGQ6IE9iamVjdC5mcmVlemUobmV3IEJpdGNvaW5Hb2xkVGVzdG5ldCgpKSxcbiAgICBiaXRjb2luU1Y6IE9iamVjdC5mcmVlemUobmV3IEJpdGNvaW5TVlRlc3RuZXQoKSksXG4gICAgYmVyYTogT2JqZWN0LmZyZWV6ZShuZXcgQmVyYWNoYWluVGVzdG5ldCgpKSxcbiAgICBibGQ6IE9iamVjdC5mcmVlemUobmV3IEJsZFRlc3RuZXQoKSksXG4gICAgYnNjOiBPYmplY3QuZnJlZXplKG5ldyBCaW5hbmNlU21hcnRDaGFpblRlc3RuZXQoKSksXG4gICAgY2FudG9uOiBPYmplY3QuZnJlZXplKG5ldyBDYW50b25UZXN0bmV0KCkpLFxuICAgIGNhc3BlcjogT2JqZWN0LmZyZWV6ZShuZXcgQ2FzcGVyVGVzdG5ldCgpKSxcbiAgICBjZWxvOiBPYmplY3QuZnJlZXplKG5ldyBDZWxvVGVzdG5ldCgpKSxcbiAgICBjaGlsaXo6IE9iamVjdC5mcmVlemUobmV3IENoaWxpelRlc3RuZXQoKSksXG4gICAgY29kZXhldGg6IE9iamVjdC5mcmVlemUobmV3IENvZGV4RXRoVGVzdG5ldCgpKSxcbiAgICBjb3JlZGFvOiBPYmplY3QuZnJlZXplKG5ldyBDb3JlZGFvVGVzdG5ldCgpKSxcbiAgICBjcm9ub3M6IE9iamVjdC5mcmVlemUobmV3IENyb25vc1Rlc3RuZXQoKSksXG4gICAgZGFzaDogT2JqZWN0LmZyZWV6ZShuZXcgRGFzaFRlc3RuZXQoKSksXG4gICAgZG9nZWNvaW46IE9iamVjdC5mcmVlemUobmV3IERvZ2Vjb2luVGVzdG5ldCgpKSxcbiAgICBkb2dlb3M6IE9iamVjdC5mcmVlemUobmV3IERvZ2Vvc1Rlc3RuZXQoKSksXG4gICAgZG90OiBPYmplY3QuZnJlZXplKG5ldyBXZXN0ZW5kQXNzZXRIdWIoKSksXG4gICAgZHlkeDogT2JqZWN0LmZyZWV6ZShuZXcgRHlkeFRlc3RuZXQoKSksXG4gICAgZUNhc2g6IE9iamVjdC5mcmVlemUobmV3IEVDYXNoVGVzdG5ldCgpKSxcbiAgICBlb3M6IE9iamVjdC5mcmVlemUobmV3IEVvc1Rlc3RuZXQoKSksXG4gICAgZmlhdDogT2JqZWN0LmZyZWV6ZShuZXcgRmlhdFRlc3RuZXQoKSksXG4gICAgZmV0Y2hhaTogT2JqZWN0LmZyZWV6ZShuZXcgRmV0Y2hBaVRlc3RuZXQoKSksXG4gICAgZmxvdzogT2JqZWN0LmZyZWV6ZShuZXcgRmxvd1Rlc3RuZXQoKSksXG4gICAgZmxyOiBPYmplY3QuZnJlZXplKG5ldyBGbGFyZVRlc3RuZXQoKSksXG4gICAgZmxyUDogT2JqZWN0LmZyZWV6ZShuZXcgRmxhcmVQVGVzdG5ldCgpKSxcbiAgICBmbHVlbnRldGg6IE9iamVjdC5mcmVlemUobmV3IEZsdWVudEVUSFRlc3RuZXQoKSksXG4gICAgaDogT2JqZWN0LmZyZWV6ZShuZXcgSHVtYW5pdHlQcm90b2NvbFRlc3RuZXQoKSksXG4gICAgbW9uOiBPYmplY3QuZnJlZXplKG5ldyBNb25hZFRlc3RuZXQoKSksXG4gICAgbWVnYWV0aDogT2JqZWN0LmZyZWV6ZShuZXcgTWVnYUVUSFRlc3RuZXQoKSksXG4gICAgcHlybW9udDogT2JqZWN0LmZyZWV6ZShuZXcgUHlybW9udCgpKSxcbiAgICBwbHVtZTogT2JqZWN0LmZyZWV6ZShuZXcgUGx1bWVUZXN0bmV0KCkpLFxuICAgIGV0aGVyZXVtQ2xhc3NpY1Rlc3RuZXQ6IE9iamVjdC5mcmVlemUobmV3IEV0aGVyZXVtQ2xhc3NpY1Rlc3RuZXQoKSksXG4gICAgaGFzaDogT2JqZWN0LmZyZWV6ZShuZXcgSGFzaFRlc3RuZXQoKSksXG4gICAgaGVkZXJhOiBPYmplY3QuZnJlZXplKG5ldyBIZWRlcmFUZXN0bmV0KCkpLFxuICAgIGhvb2RldGg6IE9iamVjdC5mcmVlemUobmV3IEhvb2RldGhUZXN0bmV0KCkpLFxuICAgIGhwcGV0aDogT2JqZWN0LmZyZWV6ZShuZXcgSHBwZXRoVGVzdG5ldCgpKSxcbiAgICBoZWRlcmFFVk06IE9iamVjdC5mcmVlemUobmV3IEhlZGVyYUVWTVRlc3RuZXQoKSksXG4gICAgaGVtaWV0aDogT2JqZWN0LmZyZWV6ZShuZXcgSGVtaUV0aFRlc3RuZXQoKSksXG4gICAgaWNwOiBPYmplY3QuZnJlZXplKG5ldyBJY3BUZXN0bmV0KCkpLFxuICAgIGlwOiBPYmplY3QuZnJlZXplKG5ldyBJUFRlc3RuZXQoKSksXG4gICAgaW5pdGlhOiBPYmplY3QuZnJlZXplKG5ldyBJbml0aWFUZXN0bmV0KCkpLFxuICAgIGluamVjdGl2ZTogT2JqZWN0LmZyZWV6ZShuZXcgSW5qZWN0aXZlVGVzdG5ldCgpKSxcbiAgICBpb3RhOiBPYmplY3QuZnJlZXplKG5ldyBJb3RhVGVzdG5ldCgpKSxcbiAgICBpcnlzOiBPYmplY3QuZnJlZXplKG5ldyBJcnlzVGVzdG5ldCgpKSxcbiAgICBpc2xtOiBPYmplY3QuZnJlZXplKG5ldyBJc2xtVGVzdG5ldCgpKSxcbiAgICBqb3ZheWV0aDogT2JqZWN0LmZyZWV6ZShuZXcgSm92YXlFVEhUZXN0bmV0KCkpLFxuICAgIGthdmFjb3Ntb3M6IE9iamVjdC5mcmVlemUobmV3IEthdmFDb3Ntb3NUZXN0bmV0KCkpLFxuICAgIGthdmFldm06IE9iamVjdC5mcmVlemUobmV3IEthdmFFVk1UZXN0bmV0KCkpLFxuICAgIGtvdmFuOiBPYmplY3QuZnJlZXplKG5ldyBLb3ZhbigpKSxcbiAgICBnb2VybGk6IE9iamVjdC5mcmVlemUobmV3IEdvZXJsaSgpKSxcbiAgICBob2xlc2t5OiBPYmplY3QuZnJlZXplKG5ldyBIb2xlc2t5KCkpLFxuICAgIGhvb2RpOiBPYmplY3QuZnJlZXplKG5ldyBIb29kaSgpKSxcbiAgICBsbmJ0YzogT2JqZWN0LmZyZWV6ZShuZXcgTGlnaHRuaW5nQml0Y29pblRlc3RuZXQoKSksXG4gICAgbGl0ZWNvaW46IE9iamVjdC5mcmVlemUobmV3IExpdGVjb2luVGVzdG5ldCgpKSxcbiAgICBtYW50bGU6IE9iamVjdC5mcmVlemUobmV3IE1hbnRsZVRlc3RuZXQoKSksXG4gICAgbWFudHJhOiBPYmplY3QuZnJlZXplKG5ldyBNYW50cmFUZXN0bmV0KCkpLFxuICAgIHBvbHlnb246IE9iamVjdC5mcmVlemUobmV3IFBvbHlnb25UZXN0bmV0KCkpLFxuICAgIHBvbHl4OiBPYmplY3QuZnJlZXplKG5ldyBQb2x5bWVzaFRlc3RuZXQoKSksXG4gICAgcGhyczogT2JqZWN0LmZyZWV6ZShuZXcgUGhhcm9zVGVzdG5ldCgpKSxcbiAgICBjdGM6IE9iamVjdC5mcmVlemUobmV3IENyZWRpdGNvaW5UZXN0bmV0KCkpLFxuICAgIGh5cGVldm06IE9iamVjdC5mcmVlemUobmV3IEh5cGVFVk1UZXN0bmV0KCkpLFxuICAgIGxpbmVhZXRoOiBPYmplY3QuZnJlZXplKG5ldyBMaW5lYUVUSFRlc3RuZXQoKSksXG4gICAgb2FzOiBPYmplY3QuZnJlZXplKG5ldyBPYXNUZXN0bmV0KCkpLFxuICAgIG9nOiBPYmplY3QuZnJlZXplKG5ldyBPZ1Rlc3RuZXQoKSksXG4gICAgb2ZjOiBPYmplY3QuZnJlZXplKG5ldyBPZmNUZXN0bmV0KCkpLFxuICAgIG9rYnhsYXllcjogT2JqZWN0LmZyZWV6ZShuZXcgWGxheWVyVGVzdG5ldCgpKSxcbiAgICBvcGJuYjogT2JqZWN0LmZyZWV6ZShuZXcgT3BCTkJUZXN0bmV0KCkpLFxuICAgIGZhbnRvbTogT2JqZWN0LmZyZWV6ZShuZXcgRmFudG9tVGVzdG5ldCgpKSxcbiAgICBtb3JwaDogT2JqZWN0LmZyZWV6ZShuZXcgTW9ycGhUZXN0bmV0KCkpLFxuICAgIG1vcnBoZXRoOiBPYmplY3QuZnJlZXplKG5ldyBNb3JwaEVUSFRlc3RuZXQoKSksXG4gICAgb3B0aW1pc206IE9iamVjdC5mcmVlemUobmV3IE9wdGltaXNtVGVzdG5ldCgpKSxcbiAgICBvc21vOiBPYmplY3QuZnJlZXplKG5ldyBPc21vVGVzdG5ldCgpKSxcbiAgICByYnRjOiBPYmplY3QuZnJlZXplKG5ldyBSYnRjVGVzdG5ldCgpKSxcbiAgICBydW5lOiBPYmplY3QuZnJlZXplKG5ldyBSdW5lVGVzdE5ldCgpKSxcbiAgICBzZ2I6IE9iamVjdC5mcmVlemUobmV3IFNvbmdiaXJkVGVzdG5ldCgpKSxcbiAgICBzdGVsbGFyOiBPYmplY3QuZnJlZXplKG5ldyBTdGVsbGFyVGVzdG5ldCgpKSxcbiAgICBzZWk6IE9iamVjdC5mcmVlemUobmV3IFNlaVRlc3RuZXQoKSksXG4gICAgc2VpZXZtOiBPYmplY3QuZnJlZXplKG5ldyBTZWlFdm1UZXN0bmV0KCkpLFxuICAgIHNvbDogT2JqZWN0LmZyZWV6ZShuZXcgU29sVGVzdG5ldCgpKSxcbiAgICBzdWk6IE9iamVjdC5mcmVlemUobmV3IFN1aVRlc3RuZXQoKSksXG4gICAgbmVhcjogT2JqZWN0LmZyZWV6ZShuZXcgTmVhclRlc3RuZXQoKSksXG4gICAgc3R4OiBPYmplY3QuZnJlZXplKG5ldyBTdHhUZXN0bmV0KCkpLFxuICAgIHN0dDogT2JqZWN0LmZyZWV6ZShuZXcgU29tbmlhVGVzdG5ldCgpKSxcbiAgICBzb25laXVtOiBPYmplY3QuZnJlZXplKG5ldyBTb25laXVtVGVzdG5ldCgpKSxcbiAgICBzb25pYzogT2JqZWN0LmZyZWV6ZShuZXcgU29uaWNUZXN0bmV0KCkpLFxuICAgIGthaWE6IE9iamVjdC5mcmVlemUobmV3IEthaWFUZXN0bmV0KCkpLFxuICAgIHN1c2Q6IE9iamVjdC5mcmVlemUobmV3IFNVU0RUZXN0bmV0KCkpLFxuICAgIGNvcmV1bTogT2JqZWN0LmZyZWV6ZShuZXcgQ29yZXVtVGVzdG5ldCgpKSxcbiAgICB0YW86IE9iamVjdC5mcmVlemUobmV3IEJpdHRlbnNvclRlc3RuZXQoKSksXG4gICAgdGVtcG86IE9iamVjdC5mcmVlemUobmV3IFRlbXBvVGVzdG5ldCgpKSxcbiAgICB0aWE6IE9iamVjdC5mcmVlemUobmV3IFRpYVRlc3RuZXQoKSksXG4gICAgdG9uOiBPYmplY3QuZnJlZXplKG5ldyBUb25UZXN0bmV0KCkpLFxuICAgIHRyeDogT2JqZWN0LmZyZWV6ZShuZXcgVHJ4VGVzdG5ldCgpKSxcbiAgICB1c2R0MDogT2JqZWN0LmZyZWV6ZShuZXcgVXNkdDBUZXN0bmV0KCkpLFxuICAgIHZldDogT2JqZWN0LmZyZWV6ZShuZXcgVmV0VGVzdG5ldCgpKSxcbiAgICB3ZW1peDogT2JqZWN0LmZyZWV6ZShuZXcgV2VtaXhUZXN0bmV0KCkpLFxuICAgIHdvcmxkOiBPYmplY3QuZnJlZXplKG5ldyBXb3JsZFRlc3RuZXQoKSksXG4gICAgeGRjOiBPYmplY3QuZnJlZXplKG5ldyBYZGNUZXN0bmV0KCkpLFxuICAgIHhwbDogT2JqZWN0LmZyZWV6ZShuZXcgUGxhc21hVGVzdG5ldCgpKSxcbiAgICB4cnA6IE9iamVjdC5mcmVlemUobmV3IFhycFRlc3RuZXQoKSksXG4gICAgeHR6OiBPYmplY3QuZnJlZXplKG5ldyBYdHpUZXN0bmV0KCkpLFxuICAgIHh0emV2bTogT2JqZWN0LmZyZWV6ZShuZXcgWHR6RXZtVGVzdG5ldCgpKSxcbiAgICB6Q2FzaDogT2JqZWN0LmZyZWV6ZShuZXcgWkNhc2hUZXN0bmV0KCkpLFxuICAgIHpldGE6IE9iamVjdC5mcmVlemUobmV3IFpldGFUZXN0bmV0KCkpLFxuICAgIHprU3luYzogT2JqZWN0LmZyZWV6ZShuZXcgWmtTeW5jVGVzdG5ldCgpKSxcbiAgICB6a1N5bmNFcmE6IE9iamVjdC5mcmVlemUobmV3IFprU3luY0VyYVRlc3RuZXQoKSksXG4gICAgdW5pZXRoOiBPYmplY3QuZnJlZXplKG5ldyBVbmlldGhUZXN0bmV0KCkpLFxuICB9LFxufTtcblxuY29uc3QgbmV0d29ya0J5TmFtZTogTWFwPHN0cmluZywgQmFzZU5ldHdvcms+ID0gbmV3IE1hcChcbiAgT2JqZWN0LnZhbHVlcyhOZXR3b3JrcykuZmxhdE1hcCgoY2F0ZWdvcnkpID0+IE9iamVjdC52YWx1ZXMoY2F0ZWdvcnkpLm1hcCgobmV0d29yaykgPT4gW25ldHdvcmsubmFtZSwgbmV0d29ya10pKVxuKTtcblxuLyoqXG4gKiBMb29rIHVwIGEgcmVnaXN0ZXJlZCBuZXR3b3JrIGJ5IGl0cyBkaXNwbGF5IG5hbWUgKGUuZy4gXCJFdGhlcmV1bVwiLCBcIkJpdGNvaW5cIikuXG4gKiBSZXR1cm5zIHVuZGVmaW5lZCBmb3IgbmFtZXMgbm90IHJlZ2lzdGVyZWQgaW4gbG9jYWwgc3RhdGljcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE5ldHdvcmtCeU5hbWUobmFtZTogc3RyaW5nKTogQmFzZU5ldHdvcmsgfCB1bmRlZmluZWQge1xuICByZXR1cm4gbmV0d29ya0J5TmFtZS5nZXQobmFtZSk7XG59XG4iXX0=