@bitgo/statics 58.14.0 → 58.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/src/account.d.ts +1 -1
  2. package/dist/src/account.d.ts.map +1 -1
  3. package/dist/src/allCoinsAndTokens.d.ts.map +1 -1
  4. package/dist/src/allCoinsAndTokens.js +92 -1
  5. package/dist/src/base.d.ts +48 -3
  6. package/dist/src/base.d.ts.map +1 -1
  7. package/dist/src/base.js +51 -2
  8. package/dist/src/coinFeatures.d.ts +13 -12
  9. package/dist/src/coinFeatures.d.ts.map +1 -1
  10. package/dist/src/coinFeatures.js +16 -4
  11. package/dist/src/coins/adaTokens.d.ts.map +1 -1
  12. package/dist/src/coins/adaTokens.js +6 -5
  13. package/dist/src/coins/avaxTokens.d.ts.map +1 -1
  14. package/dist/src/coins/avaxTokens.js +2 -2
  15. package/dist/src/coins/bscTokens.d.ts.map +1 -1
  16. package/dist/src/coins/bscTokens.js +3 -1
  17. package/dist/src/coins/erc20Coins.d.ts.map +1 -1
  18. package/dist/src/coins/erc20Coins.js +12 -5
  19. package/dist/src/coins/jettonTokens.d.ts.map +1 -1
  20. package/dist/src/coins/jettonTokens.js +5 -1
  21. package/dist/src/coins/ofcCoins.d.ts.map +1 -1
  22. package/dist/src/coins/ofcCoins.js +14 -1
  23. package/dist/src/coins/ofcErc20Coins.d.ts.map +1 -1
  24. package/dist/src/coins/ofcErc20Coins.js +20 -2
  25. package/dist/src/coins/polygonTokens.d.ts.map +1 -1
  26. package/dist/src/coins/polygonTokens.js +2 -1
  27. package/dist/src/coins/solTokens.d.ts.map +1 -1
  28. package/dist/src/coins/solTokens.js +6 -2
  29. package/dist/src/coins.d.ts.map +1 -1
  30. package/dist/src/coins.js +23 -1
  31. package/dist/src/lightning.d.ts.map +1 -1
  32. package/dist/src/lightning.js +4 -2
  33. package/dist/src/networks.d.ts +124 -15
  34. package/dist/src/networks.d.ts.map +1 -1
  35. package/dist/src/networks.js +134 -10
  36. package/dist/src/tokenConfig.d.ts +133 -239
  37. package/dist/src/tokenConfig.d.ts.map +1 -1
  38. package/dist/src/tokenConfig.js +161 -220
  39. package/dist/tsconfig.tsbuildinfo +1 -1
  40. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"coins.d.ts","sourceRoot":"","sources":["../../src/coins.ts"],"names":[],"mappings":"AA+BA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAQhC,eAAO,MAAM,KAAK,SAMhB,CAAC;AAEH,wBAAgB,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,SAAS,CAuPjF;AAiCD,wBAAgB,sBAAsB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAElH;AAED,wBAAgB,gCAAgC,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,GAAG,OAAO,CAkD1G;AAED,wBAAgB,uCAAuC,CACrD,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,EAAE,CAAC,GAC7D,OAAO,CA2BT;AAED,wBAAgB,oCAAoC,CAClD,WAAW,EAAE,qBAAqB,GACjC,QAAQ,CAAC,QAAQ,CAAC,GAAG,SAAS,CAsBhC"}
1
+ {"version":3,"file":"coins.d.ts","sourceRoot":"","sources":["../../src/coins.ts"],"names":[],"mappings":"AA+BA,OAAO,EAAE,QAAQ,EAAe,MAAM,QAAQ,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAQhC,eAAO,MAAM,KAAK,SAMhB,CAAC;AAmBH,wBAAgB,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,SAAS,CAuQjF;AAiCD,wBAAgB,sBAAsB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAElH;AAED,wBAAgB,gCAAgC,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,GAAG,OAAO,CAkD1G;AAED,wBAAgB,uCAAuC,CACrD,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,EAAE,CAAC,GAC7D,OAAO,CA2BT;AAED,wBAAgB,oCAAoC,CAClD,WAAW,EAAE,qBAAqB,GACjC,QAAQ,CAAC,QAAQ,CAAC,GAAG,SAAS,CAsBhC"}
package/dist/src/coins.js CHANGED
@@ -8,6 +8,7 @@ exports.createTokenMapUsingTrimmedConfigDetails = createTokenMapUsingTrimmedConf
8
8
  exports.createTokenUsingTrimmedConfigDetails = createTokenUsingTrimmedConfigDetails;
9
9
  const account_1 = require("./account");
10
10
  const ofc_1 = require("./ofc");
11
+ const base_1 = require("./base");
11
12
  const map_1 = require("./map");
12
13
  const networks_1 = require("./networks");
13
14
  const networkFeatureMapForTokens_1 = require("./networkFeatureMapForTokens");
@@ -22,6 +23,19 @@ exports.coins = map_1.CoinMap.fromCoins([
22
23
  ...ofcCoins_1.ofcCoins,
23
24
  ...botOfcTokens_1.botOfcTokens,
24
25
  ]);
26
+ // Build a map of ERC20-supporting chain family names to their mainnet coin names
27
+ // Maps family -> coin name (e.g., 'ip' -> 'ip')
28
+ const erc20ChainToNameMap = {};
29
+ // TODO: remove ip and hypeeevm coins here and remove other evm coins from switch block, once changes are tested (Ticket: https://bitgoinc.atlassian.net/browse/WIN-7835)
30
+ const enabledEvmCoins = ['ip', 'hypeevm', 'plume'];
31
+ allCoinsAndTokens_1.allCoinsAndTokens.forEach((coin) => {
32
+ if (coin.features.includes(base_1.CoinFeature.SUPPORTS_ERC20) &&
33
+ coin.network.type === networks_1.NetworkType.MAINNET &&
34
+ !coin.isToken &&
35
+ enabledEvmCoins.includes(coin.family)) {
36
+ erc20ChainToNameMap[coin.family] = coin.name;
37
+ }
38
+ });
25
39
  function createToken(token) {
26
40
  const initializerMap = {
27
41
  algo: account_1.algoToken,
@@ -57,6 +71,10 @@ function createToken(token) {
57
71
  ada: account_1.adaToken,
58
72
  ton: account_1.jettonToken,
59
73
  };
74
+ // dynamically add erc20 token initializers for eth like chains to the initializer map
75
+ Object.keys(erc20ChainToNameMap).forEach((key) => {
76
+ initializerMap[key] = account_1.erc20Token;
77
+ });
60
78
  //return the BaseCoin from default coin map if present
61
79
  if (isCoinPresentInCoinMap({ ...token })) {
62
80
  if (exports.coins.has(token.name)) {
@@ -87,6 +105,10 @@ function createToken(token) {
87
105
  token.primaryKeyCurve,
88
106
  ];
89
107
  switch (family) {
108
+ case erc20ChainToNameMap[family]:
109
+ return initializer(...commonArgs.slice(0, 4), // id, name, fullName, decimalPlaces
110
+ token.contractAddress || token.tokenAddress, // contractAddress
111
+ token.asset, token.network, token.features, token.prefix, token.suffix, token.primaryKeyCurve);
90
112
  case 'arbeth':
91
113
  case 'avaxc':
92
114
  case 'baseeth':
@@ -339,4 +361,4 @@ function createTokenUsingTrimmedConfigDetails(tokenConfig) {
339
361
  return createToken(fullTokenConfig);
340
362
  }
341
363
  }
342
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29pbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29pbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBaURBLGtDQXVQQztBQWlDRCx3REFFQztBQUVELDRFQWtEQztBQUVELDBGQTZCQztBQUVELG9GQXdCQztBQXhiRCx1Q0E2Qm1CO0FBQ25CLCtCQUFpQztBQUdqQywrQkFBZ0M7QUFDaEMseUNBQXNDO0FBQ3RDLDZFQUEwRTtBQUMxRSx5REFBc0U7QUFDdEUsK0NBQTRDO0FBQzVDLDJEQUF3RDtBQUN4RCx1REFBb0Q7QUFFdkMsUUFBQSxLQUFLLEdBQUcsYUFBTyxDQUFDLFNBQVMsQ0FBQztJQUNyQyxHQUFHLHFDQUFpQjtJQUNwQixHQUFHLDZCQUFhO0lBQ2hCLEdBQUcsOEJBQWM7SUFDakIsR0FBRyxtQkFBUTtJQUNYLEdBQUcsMkJBQVk7Q0FDaEIsQ0FBQyxDQUFDO0FBRUgsU0FBZ0IsV0FBVyxDQUFDLEtBQXFCO0lBQy9DLE1BQU0sY0FBYyxHQUE0QjtRQUM5QyxJQUFJLEVBQUUsbUJBQVM7UUFDZixHQUFHLEVBQUUsa0JBQVE7UUFDYixNQUFNLEVBQUUscUJBQVc7UUFDbkIsS0FBSyxFQUFFLG1CQUFTO1FBQ2hCLE9BQU8sRUFBRSxvQkFBVTtRQUNuQixJQUFJLEVBQUUsbUJBQVM7UUFDZixJQUFJLEVBQUUsb0JBQVU7UUFDaEIsUUFBUSxFQUFFLG9CQUFVO1FBQ3BCLE1BQU0sRUFBRSxvQkFBVTtRQUNsQixHQUFHLEVBQUUsb0JBQVU7UUFDZixHQUFHLEVBQUUsb0JBQVU7UUFDZixHQUFHLEVBQUUsa0JBQVE7UUFDYixJQUFJLEVBQUUsbUJBQVM7UUFDZixNQUFNLEVBQUUscUJBQVc7UUFDbkIsR0FBRyxFQUFFLGVBQUs7UUFDVixHQUFHLEVBQUUsa0JBQVE7UUFDYixJQUFJLEVBQUUscUJBQVc7UUFDakIsSUFBSSxFQUFFLHFCQUFXO1FBQ2pCLEtBQUssRUFBRSxvQkFBVTtRQUNqQixPQUFPLEVBQUUs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Y3Rpb24sXG4gIGFwdFRva2VuLFxuICBhcmJldGhFcmMyMCxcbiAgYXZheEVyYzIwLFxuICBiZXJhRXJjMjAsXG4gIGJzY1Rva2VuLFxuICBjZWxvVG9rZW4sXG4gIGNvc21vc1Rva2VuLFxuICBlb3NUb2tlbixcbiAgZXJjMjAsXG4gIGhlZGVyYVRva2VuLFxuICBqZXR0b25Ub2tlbixcbiAgbmVwMTQxVG9rZW4sXG4gIG9wZXRoRXJjMjAsXG4gIHBvbHlnb25FcmMyMCxcbiAgcG9seXhUb2tlbixcbiAgc2lwMTBUb2tlbixcbiAgc29sVG9rZW4sXG4gIHN0ZWxsYXJUb2tlbixcbiAgc3VpVG9rZW4sXG4gIHRhb1Rva2VuLFxuICB0cm9uVG9rZW4sXG4gIHZldE5GVENvbGxlY3Rpb24sXG4gIHZldFRva2VuLFxuICB4cnBUb2tlbixcbiAgYWRhVG9rZW4sXG4gIGVyYzIwVG9rZW4sXG59IGZyb20gJy4vYWNjb3VudCc7XG5pbXBvcnQgeyBvZmNUb2tlbiB9IGZyb20gJy4vb2ZjJztcbmltcG9ydCB7IEJhc2VDb2luIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IEFtc1Rva2VuQ29uZmlnLCBUcmltbWVkQW1zVG9rZW5Db25maWcgfSBmcm9tICcuL3Rva2VuQ29uZmlnJztcbmltcG9ydCB7IENvaW5NYXAgfSBmcm9tICcuL21hcCc7XG5pbXBvcnQgeyBOZXR3b3JrcyB9IGZyb20gJy4vbmV0d29ya3MnO1xuaW1wb3J0IHsgbmV0d29ya0ZlYXR1cmVNYXBGb3JUb2tlbnMgfSBmcm9tICcuL25ldHdvcmtGZWF0dXJlTWFwRm9yVG9rZW5zJztcbmltcG9ydCB7IG9mY0VyYzIwQ29pbnMsIHRPZmNFcmMyMENvaW5zIH0gZnJvbSAnLi9jb2lucy9vZmNFcmMyMENvaW5zJztcbmltcG9ydCB7IG9mY0NvaW5zIH0gZnJvbSAnLi9jb2lucy9vZmNDb2lucyc7XG5pbXBvcnQgeyBhbGxDb2luc0FuZFRva2VucyB9IGZyb20gJy4vYWxsQ29pbnNBbmRUb2tlbnMnO1xuaW1wb3J0IHsgYm90T2ZjVG9rZW5zIH0gZnJvbSAnLi9jb2lucy9ib3RPZmNUb2tlbnMnO1xuXG5leHBvcnQgY29uc3QgY29pbnMgPSBDb2luTWFwLmZyb21Db2lucyhbXG4gIC4uLmFsbENvaW5zQW5kVG9rZW5zLFxuICAuLi5vZmNFcmMyMENvaW5zLFxuICAuLi50T2ZjRXJjMjBDb2lucyxcbiAgLi4ub2ZjQ29pbnMsXG4gIC4uLmJvdE9mY1Rva2Vucyxcbl0pO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVG9rZW4odG9rZW46IEFtc1Rva2VuQ29uZmlnKTogUmVhZG9ubHk8QmFzZUNvaW4+IHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgaW5pdGlhbGl6ZXJNYXA6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgIGFsZ286IGFsZ29Ub2tlbixcbiAgICBhcHQ6IGFwdFRva2VuLFxuICAgIGFyYmV0aDogYXJiZXRoRXJjMjAsXG4gICAgYXZheGM6IGF2YXhFcmMyMCxcbiAgICBiYXNlZXRoOiBlcmMyMFRva2VuLFxuICAgIGJlcmE6IGJlcmFFcmMyMCxcbiAgICBmbG93OiBlcmMyMFRva2VuLFxuICAgIGxpbmVhZXRoOiBlcmMyMFRva2VuLFxuICAgIHNlaWV2bTogZXJjMjBUb2tlbixcbiAgICBtb246IGVyYzIwVG9rZW4sXG4gICAgeGRjOiBlcmMyMFRva2VuLFxuICAgIGJzYzogYnNjVG9rZW4sXG4gICAgY2VsbzogY2Vsb1Rva2VuLFxuICAgIGNvc21vczogY29zbW9zVG9rZW4sXG4gICAgZXRoOiBlcmMyMCxcbiAgICBlb3M6IGVvc1Rva2VuLFxuICAgIGhiYXI6IGhlZGVyYVRva2VuLFxuICAgIG5lYXI6IG5lcDE0MVRva2VuLFxuICAgIG9wZXRoOiBvcGV0aEVyYzIwLFxuICAgIHBvbHlnb246IHBvbHlnb25FcmMyMCxcbiAgICBzb2w6IHNvbFRva2VuLFxuICAgIHN0eDogc2lwMTBUb2tlbixcbiAgICBzdWk6IHN1aVRva2VuLFxuICAgIHRhbzogdGFvVG9rZW4sXG4gICAgcG9seXg6IHBvbHl4VG9rZW4sXG4gICAgdHJ4OiB0cm9uVG9rZW4sXG4gICAgdmV0OiB2ZXRUb2tlbixcbiAgICB4bG06IHN0ZWxsYXJUb2tlbixcbiAgICB4cnA6IHhycFRva2VuLFxuICAgIG9mYzogb2ZjVG9rZW4sXG4gICAgYWRhOiBhZGFUb2tlbixcbiAgICB0b246IGpldHRvblRva2VuLFxuICB9O1xuXG4gIC8vcmV0dXJuIHRoZSBCYXNlQ29pbiBmcm9tIGRlZmF1bHQgY29pbiBtYXAgaWYgcHJlc2VudFxuICBpZiAoaXNDb2luUHJlc2VudEluQ29pbk1hcCh7IC4uLnRva2VuIH0pKSB7XG4gICAgaWYgKGNvaW5zLmhhcyh0b2tlbi5uYW1lKSkge1xuICAgICAgcmV0dXJuIGNvaW5zLmdldCh0b2tlbi5uYW1lKTtcbiAgICB9XG4gICAgaWYgKGNvaW5zLmhhcyh0b2tlbi5pZCkpIHtcbiAgICAgIHJldHVybiBjb2lucy5nZXQodG9rZW4uaWQpO1xuICAgIH1cbiAgICBpZiAodG9rZW4uYWxpYXMgJiYgY29pbnMuaGFzKHRva2VuLmFsaWFzKSkge1xuICAgICAgcmV0dXJuIGNvaW5zLmdldCh0b2tlbi5hbGlhcyk7XG4gICAgfVxuICB9XG4gIGNvbnN0IGZhbWlseSA9IHRva2VuLmZhbWlseTtcbiAgY29uc3QgaW5pdGlhbGl6ZXIgPSBpbml0aWFsaXplck1hcFtmYW1pbHldIGFzICguLi5hcmdzOiB1bmtub3duW10pID0+IFJlYWRvbmx5PEJhc2VDb2luPjtcbiAgaWYgKCFpbml0aWFsaXplcikge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBjb21tb25BcmdzID0gW1xuICAgIHRva2VuLmlkLFxuICAgIHRva2VuLm5hbWUsXG4gICAgdG9rZW4uZnVsbE5hbWUsXG4gICAgdG9rZW4uZGVjaW1hbFBsYWNlcyxcbiAgICB0b2tlbi5hc3NldCxcbiAgICB0b2tlbi5mZWF0dXJlcyxcbiAgICB0b2tlbi5wcmVmaXgsXG4gICAgdG9rZW4uc3VmZml4LFxuICAgIHRva2VuLm5ldHdvcmssXG4gICAgdG9rZW4ucHJpbWFyeUtleUN1cnZlLFxuICBdO1xuXG4gIHN3aXRjaCAoZmFtaWx5KSB7XG4gICAgY2FzZSAnYXJiZXRoJzpcbiAgICBjYXNlICdhdmF4Yyc6XG4gICAgY2FzZSAnYmFzZWV0aCc6XG4gICAgY2FzZSAnYmVyYSc6XG4gICAgY2FzZSAnYnNjJzpcbiAgICBjYXNlICdmbG93JzpcbiAgICBjYXNlICdsaW5lYWV0aCc6XG4gICAgY2FzZSAnc2VpZXZtJzpcbiAgICBjYXNlICdtb24nOlxuICAgIGNhc2UgJ3hkYyc6XG4gICAgY2FzZSAnY2Vsbyc6XG4gICAgY2FzZSAnZXRoJzpcbiAgICBjYXNlICdvcGV0aCc6XG4gICAgY2FzZSAncG9seWdvbic6XG4gICAgY2FzZSAndHJ4JzpcbiAgICAgIHJldHVybiBpbml0aWFsaXplcihcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCA0KSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lLCBkZWNpbWFsUGxhY2VzXG4gICAgICAgIHRva2VuLmNvbnRyYWN0QWRkcmVzcyB8fCB0b2tlbi50b2tlbkFkZHJlc3MsIC8vIGNvbnRyYWN0QWRkcmVzc1xuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQpIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcblxuICAgIGNhc2UgJ2FwdCc6XG4gICAgICBjb25zdCB7IGluaXRGdW5jLCBvYmplY3RJZCB9ID0gZ2V0QXB0VG9rZW5Jbml0aWFsaXplcih0b2tlbik7XG4gICAgICByZXR1cm4gaW5pdEZ1bmMoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgNCksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlc1xuICAgICAgICBvYmplY3RJZCxcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg0KSAvLyBhc3NldCwgZmVhdHVyZXMsIHByZWZpeCwgc3VmZml4LCBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG5cbiAgICBjYXNlICd2ZXQnOlxuICAgICAgY29uc3QgeyB2ZXRJbml0RnVuYywgdmV0T2JqZWN0SWQsIGlzTkZUIH0gPSBnZXRWZXRUb2tlbkluaXRpYWxpemVyKHRva2VuKTtcbiAgICAgIGlmIChpc05GVCkge1xuICAgICAgICByZXR1cm4gdmV0SW5pdEZ1bmMoXG4gICAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCAzKSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lXG4gICAgICAgICAgdmV0T2JqZWN0SWQsXG4gICAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg0KSAvLyBhc3NldCwgZmVhdHVyZXMsIHByZWZpeCwgc3VmZml4LCBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB2ZXRJbml0RnVuYyhcbiAgICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDQpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXNcbiAgICAgICAgICB2ZXRPYmplY3RJZCxcbiAgICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQpIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgY2FzZSAnc3R4JzpcbiAgICAgIHJldHVybiBpbml0aWFsaXplcihcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCA0KSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lLCBkZWNpbWFsUGxhY2VzXG4gICAgICAgIHRva2VuLmFzc2V0SWQsIC8vIGFzc2V0SWRcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg0KSAvLyBhc3NldCwgZmVhdHVyZXMsIHByZWZpeCwgc3VmZml4LCBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG5cbiAgICBjYXNlICdhbGdvJzpcbiAgICAgIHJldHVybiBpbml0aWFsaXplcihcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCAyKSwgLy8gaWQsIG5hbWVcbiAgICAgICAgdG9rZW4uYWxpYXMsIC8vIGFsaWFzXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMikgLy8gZnVsbE5hbWUsIGRlY2ltYWwsIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcblxuICAgIGNhc2UgJ2Vvcyc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgNCksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlc1xuICAgICAgICB0b2tlbi5jb250cmFjdE5hbWUsIC8vIGNvbnRyYWN0TmFtZVxuICAgICAgICB0b2tlbi5jb250cmFjdEFkZHJlc3MsIC8vIGNvbnRyYWN0QWRkcmVzc1xuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQsIDgpLCAvLyBhc3NldCwgZmVhdHVyZXMsIHByZWZpeCwgc3VmZml4XG4gICAgICAgIHRva2VuLnN5bWJvbCwgLy8gc3ltYm9sXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoOCkgLy8gbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICApO1xuXG4gICAgY2FzZSAnaGJhcic6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgMyksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZVxuICAgICAgICB0b2tlbi5uZXR3b3JrLCAvLyBuZXR3b3JrXG4gICAgICAgIHRva2VuLmRlY2ltYWxQbGFjZXMsXG4gICAgICAgIHRva2VuLmFzc2V0LFxuICAgICAgICB0b2tlbi5jb250cmFjdEFkZHJlc3MsIC8vIGNvbnRyYWN0QWRkcmVzc1xuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDUsIDgpLCAvLyBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXhcbiAgICAgICAgdG9rZW4ucHJpbWFyeUtleUN1cnZlXG4gICAgICApO1xuXG4gICAgY2FzZSAnc29sJzpcbiAgICAgIHJldHVybiBpbml0aWFsaXplcihcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCA0KSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lLCBkZWNpbWFsUGxhY2VzXG4gICAgICAgIHRva2VuLnRva2VuQWRkcmVzcywgLy8gdG9rZW5BZGRyZXNzXG4gICAgICAgIHRva2VuLmNvbnRyYWN0QWRkcmVzcywgLy8gY29udHJhY3RBZGRyZXNzXG4gICAgICAgIHRva2VuLmFzc2V0LFxuICAgICAgICB0b2tlbi5mZWF0dXJlcyxcbiAgICAgICAgdG9rZW4ucHJvZ3JhbUlkLFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDYpIC8vIHByZWZpeCwgc3VmZml4LCBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG5cbiAgICBjYXNlICdzdWknOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDQpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXNcbiAgICAgICAgdG9rZW4ucGFja2FnZUlkLCAvLyBwYWNrYWdlSWRcbiAgICAgICAgdG9rZW4ubW9kdWxlLCAvLyBtb2R1bGVcbiAgICAgICAgdG9rZW4uc3ltYm9sLCAvLyBzeW1ib2xcbiAgICAgICAgdG9rZW4uY29udHJhY3RBZGRyZXNzLCAvLyBjb250cmFjdEFkZHJlc3NcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg0KSAvLyBhc3NldCwgZmVhdHVyZXMsIHByZWZpeCwgc3VmZml4LCBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG5cbiAgICBjYXNlICd0YW8nOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDQpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXNcbiAgICAgICAgdG9rZW4uc3VibmV0SWQsIC8vIHN1Ym5ldElkXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNCkgLy8gYXNzZXQsIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeCwgbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICApO1xuICAgIGNhc2UgJ3BvbHl4JzpcbiAgICAgIHJldHVybiBpbml0aWFsaXplcihcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCA0KSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lLCBkZWNpbWFsUGxhY2VzXG4gICAgICAgIHRva2VuLnRpY2tlciwgLy8gdGlja2VyXG4gICAgICAgIHRva2VuLmFzc2V0SWQsIC8vIGFzc2V0SWRcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg0KSAvLyBhc3NldCwgZmVhdHVyZXMsIHByZWZpeCwgc3VmZml4LCBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG5cbiAgICBjYXNlICd4bG0nOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDUpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXMsIGFzc2V0XG4gICAgICAgIHRva2VuLmRvbWFpbiwgLy8gZG9tYWluXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNSkgLy8gZmVhdHVyZXMsIHByZWZpeCwgc3VmZml4LCBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG5cbiAgICBjYXNlICd4cnAnOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDQpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXNcbiAgICAgICAgdG9rZW4uaXNzdWVyQWRkcmVzcywgLy8gaXNzdWVyQWRkcmVzc1xuICAgICAgICB0b2tlbi5jdXJyZWNueWNvZGUsIC8vIGN1cnJlbmN5Q29kZVxuICAgICAgICB0b2tlbi5jb250cmFjdEFkZHJlc3MsIC8vIGNvbnRyYWN0QWRkcmVzc1xuICAgICAgICB0b2tlbi5kb21haW4sIC8vIGRvbWFpblxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQpIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcbiAgICBjYXNlICdvZmMnOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXMsIGFzc2V0LCBwcmVmaXgsIHN1ZmZpeCwgbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICAgIHRva2VuLmJhc2VVbml0LCAvLyBiYXNlVW5pdFxuICAgICAgICB0b2tlbi5pc1Rva2VuLCAvLyBpc1Rva2VuXG4gICAgICAgIHRva2VuLmtpbmQsIC8vIGtpbmRcbiAgICAgICAgdG9rZW4uYWRkcmVzc0NvaW4gLy8gYWRkcmVzc0NvaW5cbiAgICAgICk7XG4gICAgY2FzZSAnYXNpJzpcbiAgICBjYXNlICdhdG9tJzpcbiAgICBjYXNlICdiYWJ5JzpcbiAgICBjYXNlICdibGQnOlxuICAgIGNhc2UgJ2NvcmV1bSc6XG4gICAgY2FzZSAnY3Jvbm9zJzpcbiAgICBjYXNlICdoYXNoJzpcbiAgICBjYXNlICdpbmplY3RpdmUnOlxuICAgIGNhc2UgJ2luaXRpYSc6XG4gICAgY2FzZSAnb3Ntbyc6XG4gICAgY2FzZSAndGhvcic6XG4gICAgY2FzZSAnc2VpJzpcbiAgICBjYXNlICd0aWEnOlxuICAgIGNhc2UgJ3pldGEnOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDMpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWVcbiAgICAgICAgdG9rZW4uZGVub20sIC8vIGRlbm9tXG4gICAgICAgIHRva2VuLmRlY2ltYWxQbGFjZXMsIC8vIGRlY2ltYWxQbGFjZXNcbiAgICAgICAgdG9rZW4ubmV0d29yaywgLy8gbmV0d29ya1xuICAgICAgICB0b2tlbi5iYXNlVW5pdCwgLy8gYmFzZVVuaXRcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg0LCA4KSwgLy8gYXNzZXQsIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeFxuICAgICAgICB0b2tlbi5wcmltYXJ5S2V5Q3VydmUgLy8gcHJpbWFyeUtleUN1cnZlXG4gICAgICApO1xuICAgIGNhc2UgJ2FkYSc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgNCksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlc1xuICAgICAgICB0b2tlbi5hc3NldE5hbWUsXG4gICAgICAgIHRva2VuLnBvbGljeUlkLFxuICAgICAgICB0b2tlbi5jb250cmFjdEFkZHJlc3MsXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNCkgLy8gYXNzZXQsIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeCwgbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICApO1xuICAgIGNhc2UgJ3Rvbic6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgNCksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlc1xuICAgICAgICB0b2tlbi5jb250cmFjdEFkZHJlc3MsIC8vIGNvbnRyYWN0QWRkcmVzc1xuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQpIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRBcHRUb2tlbkluaXRpYWxpemVyKHRva2VuOiBBbXNUb2tlbkNvbmZpZykge1xuICBpZiAodG9rZW4uYXNzZXRJZCkge1xuICAgIC8vIHVzZWQgZm9yIGZ1bmdpYmxlLWFzc2V0cyAvIGxlZ2FjeSBjb2lucyBldGMuXG4gICAgcmV0dXJuIHtcbiAgICAgIGluaXRGdW5jOiBhcHRUb2tlbiBhcyAoLi4uYXJnczogdW5rbm93bltdKSA9PiBSZWFkb25seTxCYXNlQ29pbj4sXG4gICAgICBvYmplY3RJZDogdG9rZW4uYXNzZXRJZCxcbiAgICB9O1xuICB9XG4gIC8vIHVzZWQgZm9yIG5vbi1mdW5naWJsZSB0b2tlbiAoTkZUKSBjb2xsZWN0aW9uc1xuICByZXR1cm4ge1xuICAgIGluaXRGdW5jOiBhcHRORlRDb2xsZWN0aW9uIGFzICguLi5hcmdzOiB1bmtub3duW10pID0+IFJlYWRvbmx5PEJhc2VDb2luPixcbiAgICBvYmplY3RJZDogdG9rZW4ubmZ0Q29sbGVjdGlvbklkLFxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRWZXRUb2tlbkluaXRpYWxpemVyKHRva2VuOiBBbXNUb2tlbkNvbmZpZykge1xuICBpZiAodG9rZW4ubmZ0Q29sbGVjdGlvbklkKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHZldEluaXRGdW5jOiB2ZXRORlRDb2xsZWN0aW9uIGFzICguLi5hcmdzOiB1bmtub3duW10pID0+IFJlYWRvbmx5PEJhc2VDb2luPixcbiAgICAgIHZldE9iamVjdElkOiB0b2tlbi5uZnRDb2xsZWN0aW9uSWQsXG4gICAgICBpc05GVDogdHJ1ZSxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB2ZXRJbml0RnVuYzogdmV0VG9rZW4gYXMgKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gUmVhZG9ubHk8QmFzZUNvaW4+LFxuICAgIHZldE9iamVjdElkOiB0b2tlbi5jb250cmFjdEFkZHJlc3MsXG4gICAgaXNORlQ6IGZhbHNlLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDb2luUHJlc2VudEluQ29pbk1hcCh7IG5hbWUsIGlkLCBhbGlhcyB9OiB7IG5hbWU6IHN0cmluZzsgaWQ/OiBzdHJpbmc7IGFsaWFzPzogc3RyaW5nIH0pOiBib29sZWFuIHtcbiAgcmV0dXJuIEJvb2xlYW4oY29pbnMuaGFzKG5hbWUpIHx8IChpZCAmJiBjb2lucy5oYXMoaWQpKSB8fCAoYWxpYXMgJiYgY29pbnMuaGFzKGFsaWFzKSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVG9rZW5NYXBVc2luZ0NvbmZpZ0RldGFpbHModG9rZW5Db25maWdNYXA6IFJlY29yZDxzdHJpbmcsIEFtc1Rva2VuQ29uZmlnW10+KTogQ29pbk1hcCB7XG4gIGNvbnN0IEJhc2VDb2luczogTWFwPHN0cmluZywgUmVhZG9ubHk8QmFzZUNvaW4+PiA9IG5ldyBNYXAoKTtcblxuICBjb25zdCBuZnRBbmRPdGhlclRva2VucyA9IG5ldyBTZXQoW1xuICAgICdlcmM3MjE6YnNjdG9rZW4nLFxuICAgICd0ZXJjNzIxOmJzY3Rva2VuJyxcbiAgICAnZXJjMTE1NTpic2N0b2tlbicsXG4gICAgJ3RlcmMxMTU1OmJzY3Rva2VuJyxcbiAgICAnZXJjNzIxOndpdGNoJyxcbiAgICAnZXJjNzIxOnRva2VuJyxcbiAgICAnZXJjMTE1NTp0b2tlbicsXG4gICAgJ25vbnN0YW5kYXJkOnRva2VuJyxcbiAgICAndGVyYzcyMTp0b2tlbicsXG4gICAgJ3RlcmMxMTU1OnRva2VuJyxcbiAgICAndG5vbnN0YW5kYXJkOnRva2VuJyxcbiAgICAndGVyYzcyMTpiaXRnb2VyYzcyMScsXG4gICAgJ3RlcmMxMTU1OmJpdGdvZXJjMTE1NScsXG4gICAgJ3RlcmM3MjE6aG9vZGlkaicsXG4gICAgJ2VyYzcyMTpwb2x5Z29udG9rZW4nLFxuICAgICdlcmMxMTU1OnBvbHlnb250b2tlbicsXG4gICAgJ3RlcmM3MjE6cG9seWdvbnRva2VuJyxcbiAgICAndGVyYzExNTU6cG9seWdvbnRva2VuJyxcbiAgICAnZXJjNzIxOnNvbmVpdW10b2tlbicsXG4gICAgJ2VyYzExNTU6c29uZWl1bXRva2VuJyxcbiAgICAndGVyYzcyMTpzb25laXVtdG9rZW4nLFxuICAgICd0ZXJjMTE1NTpzb25laXVtdG9rZW4nLFxuICBdKTtcblxuICAvLyBBZGQgYWxsIHRoZSBjb2lucyBmcm9tIHN0YXRpY3MgY29pbiBtYXAgZmlyc3RcbiAgY29pbnMuZm9yRWFjaCgoY29pbiwgY29pbk5hbWUpID0+IHtcbiAgICBCYXNlQ29pbnMuc2V0KGNvaW5OYW1lLCBjb2luKTtcbiAgfSk7XG5cbiAgLy8gYWRkIHRoZSB0b2tlbnMgbm90IHByZXNlbnQgaW4gdGhlIHN0YXRpYyBjb2luIG1hcFxuICBmb3IgKGNvbnN0IHRva2VuQ29uZmlncyBvZiBPYmplY3QudmFsdWVzKHRva2VuQ29uZmlnTWFwKSkge1xuICAgIGNvbnN0IHRva2VuQ29uZmlnID0gdG9rZW5Db25maWdzWzBdO1xuXG4gICAgaWYgKFxuICAgICAgIWlzQ29pblByZXNlbnRJbkNvaW5NYXAoeyAuLi50b2tlbkNvbmZpZyB9KSAmJlxuICAgICAgdG9rZW5Db25maWcuaXNUb2tlbiAmJlxuICAgICAgIW5mdEFuZE90aGVyVG9rZW5zLmhhcyh0b2tlbkNvbmZpZy5uYW1lKVxuICAgICkge1xuICAgICAgY29uc3QgdG9rZW4gPSBjcmVhdGVUb2tlbih0b2tlbkNvbmZpZyk7XG4gICAgICBpZiAodG9rZW4pIHtcbiAgICAgICAgQmFzZUNvaW5zLnNldCh0b2tlbi5uYW1lLCB0b2tlbik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIENvaW5NYXAuZnJvbUNvaW5zKEFycmF5LmZyb20oQmFzZUNvaW5zLnZhbHVlcygpKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUb2tlbk1hcFVzaW5nVHJpbW1lZENvbmZpZ0RldGFpbHMoXG4gIHJlZHVjZWRUb2tlbkNvbmZpZ01hcDogUmVjb3JkPHN0cmluZywgVHJpbW1lZEFtc1Rva2VuQ29uZmlnW10+XG4pOiBDb2luTWFwIHtcbiAgY29uc3QgYW1zVG9rZW5Db25maWdNYXA6IFJlY29yZDxzdHJpbmcsIEFtc1Rva2VuQ29uZmlnW10+ID0ge307XG4gIGNvbnN0IG5ldHdvcmtOYW1lTWFwID0gbmV3IE1hcChcbiAgICBPYmplY3QudmFsdWVzKE5ldHdvcmtzKS5mbGF0TWFwKChuZXR3b3JrVHlwZSkgPT5cbiAgICAgIE9iamVjdC52YWx1ZXMobmV0d29ya1R5cGUpLm1hcCgobmV0d29yaykgPT4gW25ldHdvcmsubmFtZSwgbmV0d29ya10pXG4gICAgKVxuICApO1xuXG4gIGZvciAoY29uc3QgdG9rZW5Db25maWdzIG9mIE9iamVjdC52YWx1ZXMocmVkdWNlZFRva2VuQ29uZmlnTWFwKSkge1xuICAgIGNvbnN0IHRva2VuQ29uZmlnID0gdG9rZW5Db25maWdzWzBdO1xuICAgIGNvbnN0IG5ldHdvcmsgPSBuZXR3b3JrTmFtZU1hcC5nZXQodG9rZW5Db25maWcubmV0d29yay5uYW1lKTtcbiAgICBpZiAoXG4gICAgICAhaXNDb2luUHJlc2VudEluQ29pbk1hcCh7IC4uLnRva2VuQ29uZmlnIH0pICYmXG4gICAgICBuZXR3b3JrICYmXG4gICAgICB0b2tlbkNvbmZpZy5pc1Rva2VuICYmXG4gICAgICBuZXR3b3JrRmVhdHVyZU1hcEZvclRva2Vuc1tuZXR3b3JrLmZhbWlseV1cbiAgICApIHtcbiAgICAgIGNvbnN0IGZlYXR1cmVzID0gbmV3IFNldChbXG4gICAgICAgIC4uLihuZXR3b3JrRmVhdHVyZU1hcEZvclRva2Vuc1tuZXR3b3JrLmZhbWlseV0gfHwgW10pLFxuICAgICAgICAuLi4odG9rZW5Db25maWcuYWRkaXRpb25hbEZlYXR1cmVzIHx8IFtdKSxcbiAgICAgIF0pO1xuICAgICAgdG9rZW5Db25maWcuZXhjbHVkZWRGZWF0dXJlcz8uZm9yRWFjaCgoZmVhdHVyZSkgPT4gZmVhdHVyZXMuZGVsZXRlKGZlYXR1cmUpKTtcbiAgICAgIGFtc1Rva2VuQ29uZmlnTWFwW3Rva2VuQ29uZmlnLm5hbWVdID0gW3sgLi4udG9rZW5Db25maWcsIGZlYXR1cmVzOiBBcnJheS5mcm9tKGZlYXR1cmVzKSwgbmV0d29yayB9XTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY3JlYXRlVG9rZW5NYXBVc2luZ0NvbmZpZ0RldGFpbHMoYW1zVG9rZW5Db25maWdNYXApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVG9rZW5Vc2luZ1RyaW1tZWRDb25maWdEZXRhaWxzKFxuICB0b2tlbkNvbmZpZzogVHJpbW1lZEFtc1Rva2VuQ29uZmlnXG4pOiBSZWFkb25seTxCYXNlQ29pbj4gfCB1bmRlZmluZWQge1xuICBsZXQgZnVsbFRva2VuQ29uZmlnOiBBbXNUb2tlbkNvbmZpZyB8IHVuZGVmaW5lZDtcbiAgY29uc3QgbmV0d29ya05hbWVNYXAgPSBuZXcgTWFwKFxuICAgIE9iamVjdC52YWx1ZXMoTmV0d29ya3MpLmZsYXRNYXAoKG5ldHdvcmtUeXBlKSA9PlxuICAgICAgT2JqZWN0LnZhbHVlcyhuZXR3b3JrVHlwZSkubWFwKChuZXR3b3JrKSA9PiBbbmV0d29yay5uYW1lLCBuZXR3b3JrXSlcbiAgICApXG4gICk7XG4gIGNvbnN0IG5ldHdvcmsgPSBuZXR3b3JrTmFtZU1hcC5nZXQodG9rZW5Db25maWcubmV0d29yay5uYW1lKTtcbiAgaWYgKFxuICAgICFpc0NvaW5QcmVzZW50SW5Db2luTWFwKHsgLi4udG9rZW5Db25maWcgfSkgJiZcbiAgICBuZXR3b3JrICYmXG4gICAgdG9rZW5Db25maWcuaXNUb2tlbiAmJlxuICAgIG5ldHdvcmtGZWF0dXJlTWFwRm9yVG9rZW5zW25ldHdvcmsuZmFtaWx5XVxuICApIHtcbiAgICBjb25zdCBmZWF0dXJlcyA9IG5ldyBTZXQoW1xuICAgICAgLi4uKG5ldHdvcmtGZWF0dXJlTWFwRm9yVG9rZW5zW25ldHdvcmsuZmFtaWx5XSB8fCBbXSksXG4gICAgICAuLi4odG9rZW5Db25maWcuYWRkaXRpb25hbEZlYXR1cmVzIHx8IFtdKSxcbiAgICBdKTtcbiAgICB0b2tlbkNvbmZpZy5leGNsdWRlZEZlYXR1cmVzPy5mb3JFYWNoKChmZWF0dXJlKSA9PiBmZWF0dXJlcy5kZWxldGUoZmVhdHVyZSkpO1xuICAgIGZ1bGxUb2tlbkNvbmZpZyA9IHsgLi4udG9rZW5Db25maWcsIGZlYXR1cmVzOiBBcnJheS5mcm9tKGZlYXR1cmVzKSwgbmV0d29yayB9IGFzIEFtc1Rva2VuQ29uZmlnO1xuICAgIHJldHVybiBjcmVhdGVUb2tlbihmdWxsVG9rZW5Db25maWcpO1xuICB9XG59XG4iXX0=
364
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29pbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29pbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBa0VBLGtDQXVRQztBQWlDRCx3REFFQztBQUVELDRFQWtEQztBQUVELDBGQTZCQztBQUVELG9GQXdCQztBQXpkRCx1Q0E2Qm1CO0FBQ25CLCtCQUFpQztBQUNqQyxpQ0FBK0M7QUFFL0MsK0JBQWdDO0FBQ2hDLHlDQUFtRDtBQUNuRCw2RUFBMEU7QUFDMUUseURBQXNFO0FBQ3RFLCtDQUE0QztBQUM1QywyREFBd0Q7QUFDeEQsdURBQW9EO0FBRXZDLFFBQUEsS0FBSyxHQUFHLGFBQU8sQ0FBQyxTQUFTLENBQUM7SUFDckMsR0FBRyxxQ0FBaUI7SUFDcEIsR0FBRyw2QkFBYTtJQUNoQixHQUFHLDhCQUFjO0lBQ2pCLEdBQUcsbUJBQVE7SUFDWCxHQUFHLDJCQUFZO0NBQ2hCLENBQUMsQ0FBQztBQUVILGlGQUFpRjtBQUNqRixnREFBZ0Q7QUFDaEQsTUFBTSxtQkFBbUIsR0FBMkIsRUFBRSxDQUFDO0FBRXZELHlLQUF5SztBQUN6SyxNQUFNLGVBQWUsR0FBRyxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbkQscUNBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7SUFDakMsSUFDRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxrQkFBVyxDQUFDLGNBQWMsQ0FBQztRQUNsRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxzQkFBVyxDQUFDLE9BQU87UUFDekMsQ0FBQyxJQUFJLENBQUMsT0FBTztRQUNiLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUNyQyxDQUFDO1FBQ0QsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDL0MsQ0FBQztBQUNILENBQUMs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ICBhbGdvVG9rZW4sXG4gIGFwdE5GVENvbGxlY3Rpb24sXG4gIGFwdFRva2VuLFxuICBhcmJldGhFcmMyMCxcbiAgYXZheEVyYzIwLFxuICBiZXJhRXJjMjAsXG4gIGJzY1Rva2VuLFxuICBjZWxvVG9rZW4sXG4gIGNvc21vc1Rva2VuLFxuICBlb3NUb2tlbixcbiAgZXJjMjAsXG4gIGhlZGVyYVRva2VuLFxuICBqZXR0b25Ub2tlbixcbiAgbmVwMTQxVG9rZW4sXG4gIG9wZXRoRXJjMjAsXG4gIHBvbHlnb25FcmMyMCxcbiAgcG9seXhUb2tlbixcbiAgc2lwMTBUb2tlbixcbiAgc29sVG9rZW4sXG4gIHN0ZWxsYXJUb2tlbixcbiAgc3VpVG9rZW4sXG4gIHRhb1Rva2VuLFxuICB0cm9uVG9rZW4sXG4gIHZldE5GVENvbGxlY3Rpb24sXG4gIHZldFRva2VuLFxuICB4cnBUb2tlbixcbiAgYWRhVG9rZW4sXG4gIGVyYzIwVG9rZW4sXG59IGZyb20gJy4vYWNjb3VudCc7XG5pbXBvcnQgeyBvZmNUb2tlbiB9IGZyb20gJy4vb2ZjJztcbmltcG9ydCB7IEJhc2VDb2luLCBDb2luRmVhdHVyZSB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyBBbXNUb2tlbkNvbmZpZywgVHJpbW1lZEFtc1Rva2VuQ29uZmlnIH0gZnJvbSAnLi90b2tlbkNvbmZpZyc7XG5pbXBvcnQgeyBDb2luTWFwIH0gZnJvbSAnLi9tYXAnO1xuaW1wb3J0IHsgTmV0d29ya3MsIE5ldHdvcmtUeXBlIH0gZnJvbSAnLi9uZXR3b3Jrcyc7XG5pbXBvcnQgeyBuZXR3b3JrRmVhdHVyZU1hcEZvclRva2VucyB9IGZyb20gJy4vbmV0d29ya0ZlYXR1cmVNYXBGb3JUb2tlbnMnO1xuaW1wb3J0IHsgb2ZjRXJjMjBDb2lucywgdE9mY0VyYzIwQ29pbnMgfSBmcm9tICcuL2NvaW5zL29mY0VyYzIwQ29pbnMnO1xuaW1wb3J0IHsgb2ZjQ29pbnMgfSBmcm9tICcuL2NvaW5zL29mY0NvaW5zJztcbmltcG9ydCB7IGFsbENvaW5zQW5kVG9rZW5zIH0gZnJvbSAnLi9hbGxDb2luc0FuZFRva2Vucyc7XG5pbXBvcnQgeyBib3RPZmNUb2tlbnMgfSBmcm9tICcuL2NvaW5zL2JvdE9mY1Rva2Vucyc7XG5cbmV4cG9ydCBjb25zdCBjb2lucyA9IENvaW5NYXAuZnJvbUNvaW5zKFtcbiAgLi4uYWxsQ29pbnNBbmRUb2tlbnMsXG4gIC4uLm9mY0VyYzIwQ29pbnMsXG4gIC4uLnRPZmNFcmMyMENvaW5zLFxuICAuLi5vZmNDb2lucyxcbiAgLi4uYm90T2ZjVG9rZW5zLFxuXSk7XG5cbi8vIEJ1aWxkIGEgbWFwIG9mIEVSQzIwLXN1cHBvcnRpbmcgY2hhaW4gZmFtaWx5IG5hbWVzIHRvIHRoZWlyIG1haW5uZXQgY29pbiBuYW1lc1xuLy8gTWFwcyBmYW1pbHkgLT4gY29pbiBuYW1lIChlLmcuLCAnaXAnIC0+ICdpcCcpXG5jb25zdCBlcmMyMENoYWluVG9OYW1lTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cbi8vIFRPRE86IHJlbW92ZSBpcCBhbmQgaHlwZWVldm0gY29pbnMgaGVyZSBhbmQgcmVtb3ZlIG90aGVyIGV2bSBjb2lucyBmcm9tIHN3aXRjaCBibG9jaywgb25jZSBjaGFuZ2VzIGFyZSB0ZXN0ZWQgKFRpY2tldDogaHR0cHM6Ly9iaXRnb2luYy5hdGxhc3NpYW4ubmV0L2Jyb3dzZS9XSU4tNzgzNSlcbmNvbnN0IGVuYWJsZWRFdm1Db2lucyA9IFsnaXAnLCAnaHlwZWV2bScsICdwbHVtZSddO1xuYWxsQ29pbnNBbmRUb2tlbnMuZm9yRWFjaCgoY29pbikgPT4ge1xuICBpZiAoXG4gICAgY29pbi5mZWF0dXJlcy5pbmNsdWRlcyhDb2luRmVhdHVyZS5TVVBQT1JUU19FUkMyMCkgJiZcbiAgICBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCAmJlxuICAgICFjb2luLmlzVG9rZW4gJiZcbiAgICBlbmFibGVkRXZtQ29pbnMuaW5jbHVkZXMoY29pbi5mYW1pbHkpXG4gICkge1xuICAgIGVyYzIwQ2hhaW5Ub05hbWVNYXBbY29pbi5mYW1pbHldID0gY29pbi5uYW1lO1xuICB9XG59KTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRva2VuKHRva2VuOiBBbXNUb2tlbkNvbmZpZyk6IFJlYWRvbmx5PEJhc2VDb2luPiB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGluaXRpYWxpemVyTWFwOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHtcbiAgICBhbGdvOiBhbGdvVG9rZW4sXG4gICAgYXB0OiBhcHRUb2tlbixcbiAgICBhcmJldGg6IGFyYmV0aEVyYzIwLFxuICAgIGF2YXhjOiBhdmF4RXJjMjAsXG4gICAgYmFzZWV0aDogZXJjMjBUb2tlbixcbiAgICBiZXJhOiBiZXJhRXJjMjAsXG4gICAgZmxvdzogZXJjMjBUb2tlbixcbiAgICBsaW5lYWV0aDogZXJjMjBUb2tlbixcbiAgICBzZWlldm06IGVyYzIwVG9rZW4sXG4gICAgbW9uOiBlcmMyMFRva2VuLFxuICAgIHhkYzogZXJjMjBUb2tlbixcbiAgICBic2M6IGJzY1Rva2VuLFxuICAgIGNlbG86IGNlbG9Ub2tlbixcbiAgICBjb3Ntb3M6IGNvc21vc1Rva2VuLFxuICAgIGV0aDogZXJjMjAsXG4gICAgZW9zOiBlb3NUb2tlbixcbiAgICBoYmFyOiBoZWRlcmFUb2tlbixcbiAgICBuZWFyOiBuZXAxNDFUb2tlbixcbiAgICBvcGV0aDogb3BldGhFcmMyMCxcbiAgICBwb2x5Z29uOiBwb2x5Z29uRXJjMjAsXG4gICAgc29sOiBzb2xUb2tlbixcbiAgICBzdHg6IHNpcDEwVG9rZW4sXG4gICAgc3VpOiBzdWlUb2tlbixcbiAgICB0YW86IHRhb1Rva2VuLFxuICAgIHBvbHl4OiBwb2x5eFRva2VuLFxuICAgIHRyeDogdHJvblRva2VuLFxuICAgIHZldDogdmV0VG9rZW4sXG4gICAgeGxtOiBzdGVsbGFyVG9rZW4sXG4gICAgeHJwOiB4cnBUb2tlbixcbiAgICBvZmM6IG9mY1Rva2VuLFxuICAgIGFkYTogYWRhVG9rZW4sXG4gICAgdG9uOiBqZXR0b25Ub2tlbixcbiAgfTtcblxuICAvLyBkeW5hbWljYWxseSBhZGQgZXJjMjAgdG9rZW4gaW5pdGlhbGl6ZXJzIGZvciBldGggbGlrZSBjaGFpbnMgdG8gdGhlIGluaXRpYWxpemVyIG1hcFxuICBPYmplY3Qua2V5cyhlcmMyMENoYWluVG9OYW1lTWFwKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICBpbml0aWFsaXplck1hcFtrZXldID0gZXJjMjBUb2tlbjtcbiAgfSk7XG5cbiAgLy9yZXR1cm4gdGhlIEJhc2VDb2luIGZyb20gZGVmYXVsdCBjb2luIG1hcCBpZiBwcmVzZW50XG4gIGlmIChpc0NvaW5QcmVzZW50SW5Db2luTWFwKHsgLi4udG9rZW4gfSkpIHtcbiAgICBpZiAoY29pbnMuaGFzKHRva2VuLm5hbWUpKSB7XG4gICAgICByZXR1cm4gY29pbnMuZ2V0KHRva2VuLm5hbWUpO1xuICAgIH1cbiAgICBpZiAoY29pbnMuaGFzKHRva2VuLmlkKSkge1xuICAgICAgcmV0dXJuIGNvaW5zLmdldCh0b2tlbi5pZCk7XG4gICAgfVxuICAgIGlmICh0b2tlbi5hbGlhcyAmJiBjb2lucy5oYXModG9rZW4uYWxpYXMpKSB7XG4gICAgICByZXR1cm4gY29pbnMuZ2V0KHRva2VuLmFsaWFzKTtcbiAgICB9XG4gIH1cbiAgY29uc3QgZmFtaWx5ID0gdG9rZW4uZmFtaWx5O1xuICBjb25zdCBpbml0aWFsaXplciA9IGluaXRpYWxpemVyTWFwW2ZhbWlseV0gYXMgKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gUmVhZG9ubHk8QmFzZUNvaW4+O1xuICBpZiAoIWluaXRpYWxpemVyKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IGNvbW1vbkFyZ3MgPSBbXG4gICAgdG9rZW4uaWQsXG4gICAgdG9rZW4ubmFtZSxcbiAgICB0b2tlbi5mdWxsTmFtZSxcbiAgICB0b2tlbi5kZWNpbWFsUGxhY2VzLFxuICAgIHRva2VuLmFzc2V0LFxuICAgIHRva2VuLmZlYXR1cmVzLFxuICAgIHRva2VuLnByZWZpeCxcbiAgICB0b2tlbi5zdWZmaXgsXG4gICAgdG9rZW4ubmV0d29yayxcbiAgICB0b2tlbi5wcmltYXJ5S2V5Q3VydmUsXG4gIF07XG5cbiAgc3dpdGNoIChmYW1pbHkpIHtcbiAgICBjYXNlIGVyYzIwQ2hhaW5Ub05hbWVNYXBbZmFtaWx5XTpcbiAgICAgIHJldHVybiBpbml0aWFsaXplcihcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCA0KSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lLCBkZWNpbWFsUGxhY2VzXG4gICAgICAgIHRva2VuLmNvbnRyYWN0QWRkcmVzcyB8fCB0b2tlbi50b2tlbkFkZHJlc3MsIC8vIGNvbnRyYWN0QWRkcmVzc1xuICAgICAgICB0b2tlbi5hc3NldCxcbiAgICAgICAgdG9rZW4ubmV0d29yayxcbiAgICAgICAgdG9rZW4uZmVhdHVyZXMsXG4gICAgICAgIHRva2VuLnByZWZpeCxcbiAgICAgICAgdG9rZW4uc3VmZml4LFxuICAgICAgICB0b2tlbi5wcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG4gICAgY2FzZSAnYXJiZXRoJzpcbiAgICBjYXNlICdhdmF4Yyc6XG4gICAgY2FzZSAnYmFzZWV0aCc6XG4gICAgY2FzZSAnYmVyYSc6XG4gICAgY2FzZSAnYnNjJzpcbiAgICBjYXNlICdmbG93JzpcbiAgICBjYXNlICdsaW5lYWV0aCc6XG4gICAgY2FzZSAnc2VpZXZtJzpcbiAgICBjYXNlICdtb24nOlxuICAgIGNhc2UgJ3hkYyc6XG4gICAgY2FzZSAnY2Vsbyc6XG4gICAgY2FzZSAnZXRoJzpcbiAgICBjYXNlICdvcGV0aCc6XG4gICAgY2FzZSAncG9seWdvbic6XG4gICAgY2FzZSAndHJ4JzpcbiAgICAgIHJldHVybiBpbml0aWFsaXplcihcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCA0KSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lLCBkZWNpbWFsUGxhY2VzXG4gICAgICAgIHRva2VuLmNvbnRyYWN0QWRkcmVzcyB8fCB0b2tlbi50b2tlbkFkZHJlc3MsIC8vIGNvbnRyYWN0QWRkcmVzc1xuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQpIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcblxuICAgIGNhc2UgJ2FwdCc6XG4gICAgICBjb25zdCB7IGluaXRGdW5jLCBvYmplY3RJZCB9ID0gZ2V0QXB0VG9rZW5Jbml0aWFsaXplcih0b2tlbik7XG4gICAgICByZXR1cm4gaW5pdEZ1bmMoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgNCksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlc1xuICAgICAgICBvYmplY3RJZCxcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg0KSAvLyBhc3NldCwgZmVhdHVyZXMsIHByZWZpeCwgc3VmZml4LCBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG5cbiAgICBjYXNlICd2ZXQnOlxuICAgICAgY29uc3QgeyB2ZXRJbml0RnVuYywgdmV0T2JqZWN0SWQsIGlzTkZUIH0gPSBnZXRWZXRUb2tlbkluaXRpYWxpemVyKHRva2VuKTtcbiAgICAgIGlmIChpc05GVCkge1xuICAgICAgICByZXR1cm4gdmV0SW5pdEZ1bmMoXG4gICAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCAzKSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lXG4gICAgICAgICAgdmV0T2JqZWN0SWQsXG4gICAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg0KSAvLyBhc3NldCwgZmVhdHVyZXMsIHByZWZpeCwgc3VmZml4LCBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB2ZXRJbml0RnVuYyhcbiAgICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDQpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXNcbiAgICAgICAgICB2ZXRPYmplY3RJZCxcbiAgICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQpIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgY2FzZSAnc3R4JzpcbiAgICAgIHJldHVybiBpbml0aWFsaXplcihcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCA0KSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lLCBkZWNpbWFsUGxhY2VzXG4gICAgICAgIHRva2VuLmFzc2V0SWQsIC8vIGFzc2V0SWRcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg0KSAvLyBhc3NldCwgZmVhdHVyZXMsIHByZWZpeCwgc3VmZml4LCBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG5cbiAgICBjYXNlICdhbGdvJzpcbiAgICAgIHJldHVybiBpbml0aWFsaXplcihcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCAyKSwgLy8gaWQsIG5hbWVcbiAgICAgICAgdG9rZW4uYWxpYXMsIC8vIGFsaWFzXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMikgLy8gZnVsbE5hbWUsIGRlY2ltYWwsIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcblxuICAgIGNhc2UgJ2Vvcyc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgNCksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlc1xuICAgICAgICB0b2tlbi5jb250cmFjdE5hbWUsIC8vIGNvbnRyYWN0TmFtZVxuICAgICAgICB0b2tlbi5jb250cmFjdEFkZHJlc3MsIC8vIGNvbnRyYWN0QWRkcmVzc1xuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQsIDgpLCAvLyBhc3NldCwgZmVhdHVyZXMsIHByZWZpeCwgc3VmZml4XG4gICAgICAgIHRva2VuLnN5bWJvbCwgLy8gc3ltYm9sXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoOCkgLy8gbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICApO1xuXG4gICAgY2FzZSAnaGJhcic6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgMyksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZVxuICAgICAgICB0b2tlbi5uZXR3b3JrLCAvLyBuZXR3b3JrXG4gICAgICAgIHRva2VuLmRlY2ltYWxQbGFjZXMsXG4gICAgICAgIHRva2VuLmFzc2V0LFxuICAgICAgICB0b2tlbi5jb250cmFjdEFkZHJlc3MsIC8vIGNvbnRyYWN0QWRkcmVzc1xuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDUsIDgpLCAvLyBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXhcbiAgICAgICAgdG9rZW4ucHJpbWFyeUtleUN1cnZlXG4gICAgICApO1xuXG4gICAgY2FzZSAnc29sJzpcbiAgICAgIHJldHVybiBpbml0aWFsaXplcihcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCA0KSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lLCBkZWNpbWFsUGxhY2VzXG4gICAgICAgIHRva2VuLnRva2VuQWRkcmVzcywgLy8gdG9rZW5BZGRyZXNzXG4gICAgICAgIHRva2VuLmNvbnRyYWN0QWRkcmVzcywgLy8gY29udHJhY3RBZGRyZXNzXG4gICAgICAgIHRva2VuLmFzc2V0LFxuICAgICAgICB0b2tlbi5mZWF0dXJlcyxcbiAgICAgICAgdG9rZW4ucHJvZ3JhbUlkLFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDYpIC8vIHByZWZpeCwgc3VmZml4LCBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG5cbiAgICBjYXNlICdzdWknOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDQpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXNcbiAgICAgICAgdG9rZW4ucGFja2FnZUlkLCAvLyBwYWNrYWdlSWRcbiAgICAgICAgdG9rZW4ubW9kdWxlLCAvLyBtb2R1bGVcbiAgICAgICAgdG9rZW4uc3ltYm9sLCAvLyBzeW1ib2xcbiAgICAgICAgdG9rZW4uY29udHJhY3RBZGRyZXNzLCAvLyBjb250cmFjdEFkZHJlc3NcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg0KSAvLyBhc3NldCwgZmVhdHVyZXMsIHByZWZpeCwgc3VmZml4LCBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG5cbiAgICBjYXNlICd0YW8nOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDQpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXNcbiAgICAgICAgdG9rZW4uc3VibmV0SWQsIC8vIHN1Ym5ldElkXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNCkgLy8gYXNzZXQsIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeCwgbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICApO1xuICAgIGNhc2UgJ3BvbHl4JzpcbiAgICAgIHJldHVybiBpbml0aWFsaXplcihcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCA0KSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lLCBkZWNpbWFsUGxhY2VzXG4gICAgICAgIHRva2VuLnRpY2tlciwgLy8gdGlja2VyXG4gICAgICAgIHRva2VuLmFzc2V0SWQsIC8vIGFzc2V0SWRcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg0KSAvLyBhc3NldCwgZmVhdHVyZXMsIHByZWZpeCwgc3VmZml4LCBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG5cbiAgICBjYXNlICd4bG0nOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDUpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXMsIGFzc2V0XG4gICAgICAgIHRva2VuLmRvbWFpbiwgLy8gZG9tYWluXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNSkgLy8gZmVhdHVyZXMsIHByZWZpeCwgc3VmZml4LCBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG5cbiAgICBjYXNlICd4cnAnOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDQpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXNcbiAgICAgICAgdG9rZW4uaXNzdWVyQWRkcmVzcywgLy8gaXNzdWVyQWRkcmVzc1xuICAgICAgICB0b2tlbi5jdXJyZWNueWNvZGUsIC8vIGN1cnJlbmN5Q29kZVxuICAgICAgICB0b2tlbi5jb250cmFjdEFkZHJlc3MsIC8vIGNvbnRyYWN0QWRkcmVzc1xuICAgICAgICB0b2tlbi5kb21haW4sIC8vIGRvbWFpblxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQpIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcbiAgICBjYXNlICdvZmMnOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXMsIGFzc2V0LCBwcmVmaXgsIHN1ZmZpeCwgbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICAgIHRva2VuLmJhc2VVbml0LCAvLyBiYXNlVW5pdFxuICAgICAgICB0b2tlbi5pc1Rva2VuLCAvLyBpc1Rva2VuXG4gICAgICAgIHRva2VuLmtpbmQsIC8vIGtpbmRcbiAgICAgICAgdG9rZW4uYWRkcmVzc0NvaW4gLy8gYWRkcmVzc0NvaW5cbiAgICAgICk7XG4gICAgY2FzZSAnYXNpJzpcbiAgICBjYXNlICdhdG9tJzpcbiAgICBjYXNlICdiYWJ5JzpcbiAgICBjYXNlICdibGQnOlxuICAgIGNhc2UgJ2NvcmV1bSc6XG4gICAgY2FzZSAnY3Jvbm9zJzpcbiAgICBjYXNlICdoYXNoJzpcbiAgICBjYXNlICdpbmplY3RpdmUnOlxuICAgIGNhc2UgJ2luaXRpYSc6XG4gICAgY2FzZSAnb3Ntbyc6XG4gICAgY2FzZSAndGhvcic6XG4gICAgY2FzZSAnc2VpJzpcbiAgICBjYXNlICd0aWEnOlxuICAgIGNhc2UgJ3pldGEnOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDMpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWVcbiAgICAgICAgdG9rZW4uZGVub20sIC8vIGRlbm9tXG4gICAgICAgIHRva2VuLmRlY2ltYWxQbGFjZXMsIC8vIGRlY2ltYWxQbGFjZXNcbiAgICAgICAgdG9rZW4ubmV0d29yaywgLy8gbmV0d29ya1xuICAgICAgICB0b2tlbi5iYXNlVW5pdCwgLy8gYmFzZVVuaXRcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg0LCA4KSwgLy8gYXNzZXQsIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeFxuICAgICAgICB0b2tlbi5wcmltYXJ5S2V5Q3VydmUgLy8gcHJpbWFyeUtleUN1cnZlXG4gICAgICApO1xuICAgIGNhc2UgJ2FkYSc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgNCksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlc1xuICAgICAgICB0b2tlbi5hc3NldE5hbWUsXG4gICAgICAgIHRva2VuLnBvbGljeUlkLFxuICAgICAgICB0b2tlbi5jb250cmFjdEFkZHJlc3MsXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNCkgLy8gYXNzZXQsIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeCwgbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICApO1xuICAgIGNhc2UgJ3Rvbic6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgNCksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlc1xuICAgICAgICB0b2tlbi5jb250cmFjdEFkZHJlc3MsIC8vIGNvbnRyYWN0QWRkcmVzc1xuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQpIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRBcHRUb2tlbkluaXRpYWxpemVyKHRva2VuOiBBbXNUb2tlbkNvbmZpZykge1xuICBpZiAodG9rZW4uYXNzZXRJZCkge1xuICAgIC8vIHVzZWQgZm9yIGZ1bmdpYmxlLWFzc2V0cyAvIGxlZ2FjeSBjb2lucyBldGMuXG4gICAgcmV0dXJuIHtcbiAgICAgIGluaXRGdW5jOiBhcHRUb2tlbiBhcyAoLi4uYXJnczogdW5rbm93bltdKSA9PiBSZWFkb25seTxCYXNlQ29pbj4sXG4gICAgICBvYmplY3RJZDogdG9rZW4uYXNzZXRJZCxcbiAgICB9O1xuICB9XG4gIC8vIHVzZWQgZm9yIG5vbi1mdW5naWJsZSB0b2tlbiAoTkZUKSBjb2xsZWN0aW9uc1xuICByZXR1cm4ge1xuICAgIGluaXRGdW5jOiBhcHRORlRDb2xsZWN0aW9uIGFzICguLi5hcmdzOiB1bmtub3duW10pID0+IFJlYWRvbmx5PEJhc2VDb2luPixcbiAgICBvYmplY3RJZDogdG9rZW4ubmZ0Q29sbGVjdGlvbklkLFxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRWZXRUb2tlbkluaXRpYWxpemVyKHRva2VuOiBBbXNUb2tlbkNvbmZpZykge1xuICBpZiAodG9rZW4ubmZ0Q29sbGVjdGlvbklkKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHZldEluaXRGdW5jOiB2ZXRORlRDb2xsZWN0aW9uIGFzICguLi5hcmdzOiB1bmtub3duW10pID0+IFJlYWRvbmx5PEJhc2VDb2luPixcbiAgICAgIHZldE9iamVjdElkOiB0b2tlbi5uZnRDb2xsZWN0aW9uSWQsXG4gICAgICBpc05GVDogdHJ1ZSxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB2ZXRJbml0RnVuYzogdmV0VG9rZW4gYXMgKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gUmVhZG9ubHk8QmFzZUNvaW4+LFxuICAgIHZldE9iamVjdElkOiB0b2tlbi5jb250cmFjdEFkZHJlc3MsXG4gICAgaXNORlQ6IGZhbHNlLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDb2luUHJlc2VudEluQ29pbk1hcCh7IG5hbWUsIGlkLCBhbGlhcyB9OiB7IG5hbWU6IHN0cmluZzsgaWQ/OiBzdHJpbmc7IGFsaWFzPzogc3RyaW5nIH0pOiBib29sZWFuIHtcbiAgcmV0dXJuIEJvb2xlYW4oY29pbnMuaGFzKG5hbWUpIHx8IChpZCAmJiBjb2lucy5oYXMoaWQpKSB8fCAoYWxpYXMgJiYgY29pbnMuaGFzKGFsaWFzKSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVG9rZW5NYXBVc2luZ0NvbmZpZ0RldGFpbHModG9rZW5Db25maWdNYXA6IFJlY29yZDxzdHJpbmcsIEFtc1Rva2VuQ29uZmlnW10+KTogQ29pbk1hcCB7XG4gIGNvbnN0IEJhc2VDb2luczogTWFwPHN0cmluZywgUmVhZG9ubHk8QmFzZUNvaW4+PiA9IG5ldyBNYXAoKTtcblxuICBjb25zdCBuZnRBbmRPdGhlclRva2VucyA9IG5ldyBTZXQoW1xuICAgICdlcmM3MjE6YnNjdG9rZW4nLFxuICAgICd0ZXJjNzIxOmJzY3Rva2VuJyxcbiAgICAnZXJjMTE1NTpic2N0b2tlbicsXG4gICAgJ3RlcmMxMTU1OmJzY3Rva2VuJyxcbiAgICAnZXJjNzIxOndpdGNoJyxcbiAgICAnZXJjNzIxOnRva2VuJyxcbiAgICAnZXJjMTE1NTp0b2tlbicsXG4gICAgJ25vbnN0YW5kYXJkOnRva2VuJyxcbiAgICAndGVyYzcyMTp0b2tlbicsXG4gICAgJ3RlcmMxMTU1OnRva2VuJyxcbiAgICAndG5vbnN0YW5kYXJkOnRva2VuJyxcbiAgICAndGVyYzcyMTpiaXRnb2VyYzcyMScsXG4gICAgJ3RlcmMxMTU1OmJpdGdvZXJjMTE1NScsXG4gICAgJ3RlcmM3MjE6aG9vZGlkaicsXG4gICAgJ2VyYzcyMTpwb2x5Z29udG9rZW4nLFxuICAgICdlcmMxMTU1OnBvbHlnb250b2tlbicsXG4gICAgJ3RlcmM3MjE6cG9seWdvbnRva2VuJyxcbiAgICAndGVyYzExNTU6cG9seWdvbnRva2VuJyxcbiAgICAnZXJjNzIxOnNvbmVpdW10b2tlbicsXG4gICAgJ2VyYzExNTU6c29uZWl1bXRva2VuJyxcbiAgICAndGVyYzcyMTpzb25laXVtdG9rZW4nLFxuICAgICd0ZXJjMTE1NTpzb25laXVtdG9rZW4nLFxuICBdKTtcblxuICAvLyBBZGQgYWxsIHRoZSBjb2lucyBmcm9tIHN0YXRpY3MgY29pbiBtYXAgZmlyc3RcbiAgY29pbnMuZm9yRWFjaCgoY29pbiwgY29pbk5hbWUpID0+IHtcbiAgICBCYXNlQ29pbnMuc2V0KGNvaW5OYW1lLCBjb2luKTtcbiAgfSk7XG5cbiAgLy8gYWRkIHRoZSB0b2tlbnMgbm90IHByZXNlbnQgaW4gdGhlIHN0YXRpYyBjb2luIG1hcFxuICBmb3IgKGNvbnN0IHRva2VuQ29uZmlncyBvZiBPYmplY3QudmFsdWVzKHRva2VuQ29uZmlnTWFwKSkge1xuICAgIGNvbnN0IHRva2VuQ29uZmlnID0gdG9rZW5Db25maWdzWzBdO1xuXG4gICAgaWYgKFxuICAgICAgIWlzQ29pblByZXNlbnRJbkNvaW5NYXAoeyAuLi50b2tlbkNvbmZpZyB9KSAmJlxuICAgICAgdG9rZW5Db25maWcuaXNUb2tlbiAmJlxuICAgICAgIW5mdEFuZE90aGVyVG9rZW5zLmhhcyh0b2tlbkNvbmZpZy5uYW1lKVxuICAgICkge1xuICAgICAgY29uc3QgdG9rZW4gPSBjcmVhdGVUb2tlbih0b2tlbkNvbmZpZyk7XG4gICAgICBpZiAodG9rZW4pIHtcbiAgICAgICAgQmFzZUNvaW5zLnNldCh0b2tlbi5uYW1lLCB0b2tlbik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIENvaW5NYXAuZnJvbUNvaW5zKEFycmF5LmZyb20oQmFzZUNvaW5zLnZhbHVlcygpKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUb2tlbk1hcFVzaW5nVHJpbW1lZENvbmZpZ0RldGFpbHMoXG4gIHJlZHVjZWRUb2tlbkNvbmZpZ01hcDogUmVjb3JkPHN0cmluZywgVHJpbW1lZEFtc1Rva2VuQ29uZmlnW10+XG4pOiBDb2luTWFwIHtcbiAgY29uc3QgYW1zVG9rZW5Db25maWdNYXA6IFJlY29yZDxzdHJpbmcsIEFtc1Rva2VuQ29uZmlnW10+ID0ge307XG4gIGNvbnN0IG5ldHdvcmtOYW1lTWFwID0gbmV3IE1hcChcbiAgICBPYmplY3QudmFsdWVzKE5ldHdvcmtzKS5mbGF0TWFwKChuZXR3b3JrVHlwZSkgPT5cbiAgICAgIE9iamVjdC52YWx1ZXMobmV0d29ya1R5cGUpLm1hcCgobmV0d29yaykgPT4gW25ldHdvcmsubmFtZSwgbmV0d29ya10pXG4gICAgKVxuICApO1xuXG4gIGZvciAoY29uc3QgdG9rZW5Db25maWdzIG9mIE9iamVjdC52YWx1ZXMocmVkdWNlZFRva2VuQ29uZmlnTWFwKSkge1xuICAgIGNvbnN0IHRva2VuQ29uZmlnID0gdG9rZW5Db25maWdzWzBdO1xuICAgIGNvbnN0IG5ldHdvcmsgPSBuZXR3b3JrTmFtZU1hcC5nZXQodG9rZW5Db25maWcubmV0d29yay5uYW1lKTtcbiAgICBpZiAoXG4gICAgICAhaXNDb2luUHJlc2VudEluQ29pbk1hcCh7IC4uLnRva2VuQ29uZmlnIH0pICYmXG4gICAgICBuZXR3b3JrICYmXG4gICAgICB0b2tlbkNvbmZpZy5pc1Rva2VuICYmXG4gICAgICBuZXR3b3JrRmVhdHVyZU1hcEZvclRva2Vuc1tuZXR3b3JrLmZhbWlseV1cbiAgICApIHtcbiAgICAgIGNvbnN0IGZlYXR1cmVzID0gbmV3IFNldChbXG4gICAgICAgIC4uLihuZXR3b3JrRmVhdHVyZU1hcEZvclRva2Vuc1tuZXR3b3JrLmZhbWlseV0gfHwgW10pLFxuICAgICAgICAuLi4odG9rZW5Db25maWcuYWRkaXRpb25hbEZlYXR1cmVzIHx8IFtdKSxcbiAgICAgIF0pO1xuICAgICAgdG9rZW5Db25maWcuZXhjbHVkZWRGZWF0dXJlcz8uZm9yRWFjaCgoZmVhdHVyZSkgPT4gZmVhdHVyZXMuZGVsZXRlKGZlYXR1cmUpKTtcbiAgICAgIGFtc1Rva2VuQ29uZmlnTWFwW3Rva2VuQ29uZmlnLm5hbWVdID0gW3sgLi4udG9rZW5Db25maWcsIGZlYXR1cmVzOiBBcnJheS5mcm9tKGZlYXR1cmVzKSwgbmV0d29yayB9XTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY3JlYXRlVG9rZW5NYXBVc2luZ0NvbmZpZ0RldGFpbHMoYW1zVG9rZW5Db25maWdNYXApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVG9rZW5Vc2luZ1RyaW1tZWRDb25maWdEZXRhaWxzKFxuICB0b2tlbkNvbmZpZzogVHJpbW1lZEFtc1Rva2VuQ29uZmlnXG4pOiBSZWFkb25seTxCYXNlQ29pbj4gfCB1bmRlZmluZWQge1xuICBsZXQgZnVsbFRva2VuQ29uZmlnOiBBbXNUb2tlbkNvbmZpZyB8IHVuZGVmaW5lZDtcbiAgY29uc3QgbmV0d29ya05hbWVNYXAgPSBuZXcgTWFwKFxuICAgIE9iamVjdC52YWx1ZXMoTmV0d29ya3MpLmZsYXRNYXAoKG5ldHdvcmtUeXBlKSA9PlxuICAgICAgT2JqZWN0LnZhbHVlcyhuZXR3b3JrVHlwZSkubWFwKChuZXR3b3JrKSA9PiBbbmV0d29yay5uYW1lLCBuZXR3b3JrXSlcbiAgICApXG4gICk7XG4gIGNvbnN0IG5ldHdvcmsgPSBuZXR3b3JrTmFtZU1hcC5nZXQodG9rZW5Db25maWcubmV0d29yay5uYW1lKTtcbiAgaWYgKFxuICAgICFpc0NvaW5QcmVzZW50SW5Db2luTWFwKHsgLi4udG9rZW5Db25maWcgfSkgJiZcbiAgICBuZXR3b3JrICYmXG4gICAgdG9rZW5Db25maWcuaXNUb2tlbiAmJlxuICAgIG5ldHdvcmtGZWF0dXJlTWFwRm9yVG9rZW5zW25ldHdvcmsuZmFtaWx5XVxuICApIHtcbiAgICBjb25zdCBmZWF0dXJlcyA9IG5ldyBTZXQoW1xuICAgICAgLi4uKG5ldHdvcmtGZWF0dXJlTWFwRm9yVG9rZW5zW25ldHdvcmsuZmFtaWx5XSB8fCBbXSksXG4gICAgICAuLi4odG9rZW5Db25maWcuYWRkaXRpb25hbEZlYXR1cmVzIHx8IFtdKSxcbiAgICBdKTtcbiAgICB0b2tlbkNvbmZpZy5leGNsdWRlZEZlYXR1cmVzPy5mb3JFYWNoKChmZWF0dXJlKSA9PiBmZWF0dXJlcy5kZWxldGUoZmVhdHVyZSkpO1xuICAgIGZ1bGxUb2tlbkNvbmZpZyA9IHsgLi4udG9rZW5Db25maWcsIGZlYXR1cmVzOiBBcnJheS5mcm9tKGZlYXR1cmVzKSwgbmV0d29yayB9IGFzIEFtc1Rva2VuQ29uZmlnO1xuICAgIHJldHVybiBjcmVhdGVUb2tlbihmdWxsVG9rZW5Db25maWcpO1xuICB9XG59XG4iXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"lightning.d.ts","sourceRoot":"","sources":["../../src/lightning.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAY,QAAQ,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAC9F,OAAO,EAAE,gBAAgB,EAAY,MAAM,YAAY,CAAC;AAExD,UAAU,2BAA2B;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,EAAE,eAAe,CAAC;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,QAAQ,CAAC;CAC3B;AAED,qBAAa,aAAc,SAAQ,QAAQ;IACzC,gBAAuB,gBAAgB,gBAAiC;IAExE;;OAEG;IACH,SAAgB,OAAO,EAAE,gBAAgB,CAAC;gBAE9B,OAAO,EAAE,2BAA2B;IAWhD,SAAS,CAAC,kBAAkB,IAAI,GAAG,CAAC,WAAW,CAAC;IAIhD,SAAS,CAAC,gBAAgB,IAAI,GAAG,CAAC,WAAW,CAAC;CAG/C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CACvB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,GAAE,WAAW,EAAmC,EACxD,MAAM,SAAK,EACX,MAAM,GAAE,MAA2B;AACnC,mDAAmD;AACnD,eAAe,GAAE,QAA6B,2BAgB/C;AAID,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAmB9C,CAAC"}
1
+ {"version":3,"file":"lightning.d.ts","sourceRoot":"","sources":["../../src/lightning.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAY,QAAQ,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAC9F,OAAO,EAAE,gBAAgB,EAAY,MAAM,YAAY,CAAC;AAExD,UAAU,2BAA2B;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,EAAE,eAAe,CAAC;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,QAAQ,CAAC;CAC3B;AAED,qBAAa,aAAc,SAAQ,QAAQ;IACzC,gBAAuB,gBAAgB,gBAAiC;IAExE;;OAEG;IACH,SAAgB,OAAO,EAAE,gBAAgB,CAAC;gBAE9B,OAAO,EAAE,2BAA2B;IAWhD,SAAS,CAAC,kBAAkB,IAAI,GAAG,CAAC,WAAW,CAAC;IAIhD,SAAS,CAAC,gBAAgB,IAAI,GAAG,CAAC,WAAW,CAAC;CAG/C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CACvB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,GAAE,WAAW,EAAmC,EACxD,MAAM,SAAK,EACX,MAAM,GAAE,MAA2B;AACnC,mDAAmD;AACnD,eAAe,GAAE,QAA6B,2BAgB/C;AAMD,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAmB9C,CAAC"}
@@ -53,8 +53,10 @@ primaryKeyCurve = base_1.KeyCurve.Secp256k1) {
53
53
  }));
54
54
  }
55
55
  const LNBTC_FEATURES = [...LightningCoin.DEFAULT_FEATURES];
56
+ // TODO(BTC-2821): Add staking feature to lnbtc after testing
57
+ const TLNBTC_FEATURES = [...LNBTC_FEATURES, base_1.CoinFeature.STAKING];
56
58
  exports.lightningCoins = [
57
59
  lightning('051aab40-efbc-4f58-9506-14cc95369e0a', 'lnbtc', 'Lightning Bitcoin', networks_1.Networks.main.lnbtc, base_1.UnderlyingAsset.LNBTC, base_1.BaseUnit.LNBTC, LNBTC_FEATURES),
58
- lightning('3cbabaa7-a063-4db3-b3a8-ea8cc38033e5', 'tlnbtc', 'Testnet Lightning Bitcoin', networks_1.Networks.test.lnbtc, base_1.UnderlyingAsset.LNBTC, base_1.BaseUnit.LNBTC, LNBTC_FEATURES),
60
+ lightning('3cbabaa7-a063-4db3-b3a8-ea8cc38033e5', 'tlnbtc', 'Testnet Lightning Bitcoin', networks_1.Networks.test.lnbtc, base_1.UnderlyingAsset.LNBTC, base_1.BaseUnit.LNBTC, TLNBTC_FEATURES),
59
61
  ];
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRuaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpZ2h0bmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF5REEsOEJBMkJDO0FBcEZELGlDQUE4RjtBQUM5Rix5Q0FBd0Q7QUFleEQsTUFBYSxhQUFjLFNBQVEsZUFBUTtJQVF6QyxZQUFZLE9BQW9DO1FBQzlDLEtBQUssQ0FBQztZQUNKLEdBQUcsT0FBTztZQUNWLElBQUksRUFBRSxlQUFRLENBQUMsTUFBTTtZQUNyQixPQUFPLEVBQUUsS0FBSztZQUNkLGFBQWEsRUFBRSxFQUFFO1NBQ2xCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztJQUNqQyxDQUFDO0lBRVMsa0JBQWtCO1FBQzFCLE9BQU8sSUFBSSxHQUFHLENBQUMsQ0FBQyxrQkFBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVTLGdCQUFnQjtRQUN4QixPQUFPLElBQUksR0FBRyxDQUFDLENBQUMsa0JBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7O0FBekJILHNDQTBCQztBQXpCd0IsOEJBQWdCLEdBQUcsQ0FBQyxrQkFBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBMkIxRTs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxTQUFnQixTQUFTLENBQ3ZCLEVBQVUsRUFDVixJQUFZLEVBQ1osUUFBZ0IsRUFDaEIsT0FBeUIsRUFDekIsS0FBc0IsRUFDdEIsUUFBa0IsRUFDbEIsV0FBMEIsYUFBYSxDQUFDLGdCQUFnQixFQUN4RCxNQUFNLEdBQUcsRUFBRSxFQUNYLFNBQWlCLElBQUksQ0FBQyxXQUFXLEVBQUU7QUFDbkMsbURBQW1EO0FBQ25ELGtCQUE0QixlQUFRLENBQUMsU0FBUztJQUU5QyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQ2xCLElBQUksYUFBYSxDQUFDO1FBQ2hCLEVBQUU7UUFDRixJQUFJO1FBQ0osUUFBUTtRQUNSLE9BQU87UUFDUCxNQUFNO1FBQ04sTUFBTTtRQUNOLFFBQVE7UUFDUixLQUFLO1FBQ0wsZUFBZTtRQUNmLFFBQVE7S0FDVCxDQUFDLENBQ0gsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLGNBQWMsR0FBRyxDQUFDLEdBQUcsYUFBYSxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFFOUMsUUFBQSxjQUFjLEdBQXlCO0lBQ2xELFNBQVMsQ0FDUCxzQ0FBc0MsRUFDdEMsT0FBTyxFQUNQLG1CQUFtQixFQUNuQixtQkFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQ25CLHNCQUFlLENBQUMsS0FBSyxFQUNyQixlQUFRLENBQUMsS0FBSyxFQUNkLGNBQWMsQ0FDZjtJQUNELFNBQVMsQ0FDUCxzQ0FBc0MsRUFDdEMsUUFBUSxFQUNSLDJCQUEyQixFQUMzQixtQkFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQ25CLHNCQUFlLENBQUMsS0FBSyxFQUNyQixlQUFRLENBQUMsS0FBSyxFQUNkLGNBQWMsQ0FDZjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiwgQmFzZVVuaXQsIENvaW5GZWF0dXJlLCBDb2luS2luZCwgS2V5Q3VydmUsIFVuZGVybHlpbmdBc3NldCB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyBMaWdodG5pbmdOZXR3b3JrLCBOZXR3b3JrcyB9IGZyb20gJy4vbmV0d29ya3MnO1xuXG5pbnRlcmZhY2UgTGlnaHRuaW5nQ29uc3RydWN0b3JPcHRpb25zIHtcbiAgaWQ6IHN0cmluZztcbiAgZnVsbE5hbWU6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBuZXR3b3JrOiBMaWdodG5pbmdOZXR3b3JrO1xuICBmZWF0dXJlczogQ29pbkZlYXR1cmVbXTtcbiAgYXNzZXQ6IFVuZGVybHlpbmdBc3NldDtcbiAgYmFzZVVuaXQ6IEJhc2VVbml0O1xuICBwcmVmaXg/OiBzdHJpbmc7XG4gIHN1ZmZpeD86IHN0cmluZztcbiAgcHJpbWFyeUtleUN1cnZlOiBLZXlDdXJ2ZTtcbn1cblxuZXhwb3J0IGNsYXNzIExpZ2h0bmluZ0NvaW4gZXh0ZW5kcyBCYXNlQ29pbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9GRUFUVVJFUyA9IFtDb2luRmVhdHVyZS5MSUdIVE5JTkdfTU9ERUxdO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGZpZWxkcyBmb3IgbGlnaHRuaW5nIGNvaW5zXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbmV0d29yazogTGlnaHRuaW5nTmV0d29yaztcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBMaWdodG5pbmdDb25zdHJ1Y3Rvck9wdGlvbnMpIHtcbiAgICBzdXBlcih7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAga2luZDogQ29pbktpbmQuQ1JZUFRPLFxuICAgICAgaXNUb2tlbjogZmFsc2UsXG4gICAgICBkZWNpbWFsUGxhY2VzOiAxMSxcbiAgICB9KTtcblxuICAgIHRoaXMubmV0d29yayA9IG9wdGlvbnMubmV0d29yaztcbiAgfVxuXG4gIHByb3RlY3RlZCBkaXNhbGxvd2VkRmVhdHVyZXMoKTogU2V0PENvaW5GZWF0dXJlPiB7XG4gICAgcmV0dXJuIG5ldyBTZXQoW0NvaW5GZWF0dXJlLkFDQ09VTlRfTU9ERUxdKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZXF1aXJlZEZlYXR1cmVzKCk6IFNldDxDb2luRmVhdHVyZT4ge1xuICAgIHJldHVybiBuZXcgU2V0KFtDb2luRmVhdHVyZS5MSUdIVE5JTkdfTU9ERUxdKTtcbiAgfVxufVxuXG4vKipcbiAqIEZhY3RvcnkgZnVuY3Rpb24gZm9yIGxpZ2h0bmluZyBjb2luIGluc3RhbmNlcy5cbiAqXG4gKiBAcGFyYW0gaWQgdXVpZCB2NCBvZiB0aGUgY29pblxuICogQHBhcmFtIG5hbWUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNvaW5cbiAqIEBwYXJhbSBmdWxsTmFtZSBDb21wbGV0ZSBodW1hbi1yZWFkYWJsZSBuYW1lIG9mIHRoZSBjb2luXG4gKiBAcGFyYW0gbmV0d29yayBOZXR3b3JrIG9iamVjdCBmb3IgdGhpcyBjb2luXG4gKiBAcGFyYW0gYXNzZXQgQXNzZXQgd2hpY2ggdGhpcyBjb2luIHJlcHJlc2VudHMuIFRoaXMgaXMgdGhlIHNhbWUgZm9yIGJvdGggbWFpbm5ldCBhbmQgdGVzdG5ldCB2YXJpYW50cyBvZiBhIGNvaW4uXG4gKiBAcGFyYW0gZmVhdHVyZXM/IEZlYXR1cmVzIG9mIHRoaXMgY29pbi4gRGVmYXVsdHMgdG8gdGhlIERFRkFVTFRfRkVBVFVSRVMgZGVmaW5lZCBpbiBgTGlnaHRuaW5nQ29pbmBcbiAqIEBwYXJhbSBwcmVmaXg/IE9wdGlvbmFsIGNvaW4gcHJlZml4LiBEZWZhdWx0cyB0byBlbXB0eSBzdHJpbmdcbiAqIEBwYXJhbSBzdWZmaXg/IE9wdGlvbmFsIGNvaW4gc3VmZml4LiBEZWZhdWx0cyB0byBjb2luIG5hbWUuXG4gKiBAcGFyYW0gcHJpbWFyeUtleUN1cnZlIFRoZSBlbGxpcHRpYyBjdXJ2ZSBmb3IgdGhpcyBjaGFpbi90b2tlblxuICovXG5leHBvcnQgZnVuY3Rpb24gbGlnaHRuaW5nKFxuICBpZDogc3RyaW5nLFxuICBuYW1lOiBzdHJpbmcsXG4gIGZ1bGxOYW1lOiBzdHJpbmcsXG4gIG5ldHdvcms6IExpZ2h0bmluZ05ldHdvcmssXG4gIGFzc2V0OiBVbmRlcmx5aW5nQXNzZXQsXG4gIGJhc2VVbml0OiBCYXNlVW5pdCxcbiAgZmVhdHVyZXM6IENvaW5GZWF0dXJlW10gPSBMaWdodG5pbmdDb2luLkRFRkFVTFRfRkVBVFVSRVMsXG4gIHByZWZpeCA9ICcnLFxuICBzdWZmaXg6IHN0cmluZyA9IG5hbWUudG9VcHBlckNhc2UoKSxcbiAgLyoqIEFsbCBMaWdodG5pbmdzIEJpdEdvIHN1cHBvcnRzIGFyZSBTRUNQMjU2SzEgKiovXG4gIHByaW1hcnlLZXlDdXJ2ZTogS2V5Q3VydmUgPSBLZXlDdXJ2ZS5TZWNwMjU2azFcbikge1xuICByZXR1cm4gT2JqZWN0LmZyZWV6ZShcbiAgICBuZXcgTGlnaHRuaW5nQ29pbih7XG4gICAgICBpZCxcbiAgICAgIG5hbWUsXG4gICAgICBmdWxsTmFtZSxcbiAgICAgIG5ldHdvcmssXG4gICAgICBwcmVmaXgsXG4gICAgICBzdWZmaXgsXG4gICAgICBmZWF0dXJlcyxcbiAgICAgIGFzc2V0LFxuICAgICAgcHJpbWFyeUtleUN1cnZlLFxuICAgICAgYmFzZVVuaXQsXG4gICAgfSlcbiAgKTtcbn1cblxuY29uc3QgTE5CVENfRkVBVFVSRVMgPSBbLi4uTGlnaHRuaW5nQ29pbi5ERUZBVUxUX0ZFQVRVUkVTXTtcblxuZXhwb3J0IGNvbnN0IGxpZ2h0bmluZ0NvaW5zOiBSZWFkb25seTxCYXNlQ29pbj5bXSA9IFtcbiAgbGlnaHRuaW5nKFxuICAgICcwNTFhYWI0MC1lZmJjLTRmNTgtOTUwNi0xNGNjOTUzNjllMGEnLFxuICAgICdsbmJ0YycsXG4gICAgJ0xpZ2h0bmluZyBCaXRjb2luJyxcbiAgICBOZXR3b3Jrcy5tYWluLmxuYnRjLFxuICAgIFVuZGVybHlpbmdBc3NldC5MTkJUQyxcbiAgICBCYXNlVW5pdC5MTkJUQyxcbiAgICBMTkJUQ19GRUFUVVJFU1xuICApLFxuICBsaWdodG5pbmcoXG4gICAgJzNjYmFiYWE3LWEwNjMtNGRiMy1iM2E4LWVhOGNjMzgwMzNlNScsXG4gICAgJ3RsbmJ0YycsXG4gICAgJ1Rlc3RuZXQgTGlnaHRuaW5nIEJpdGNvaW4nLFxuICAgIE5ldHdvcmtzLnRlc3QubG5idGMsXG4gICAgVW5kZXJseWluZ0Fzc2V0LkxOQlRDLFxuICAgIEJhc2VVbml0LkxOQlRDLFxuICAgIExOQlRDX0ZFQVRVUkVTXG4gICksXG5dO1xuIl19
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRuaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpZ2h0bmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF5REEsOEJBMkJDO0FBcEZELGlDQUE4RjtBQUM5Rix5Q0FBd0Q7QUFleEQsTUFBYSxhQUFjLFNBQVEsZUFBUTtJQVF6QyxZQUFZLE9BQW9DO1FBQzlDLEtBQUssQ0FBQztZQUNKLEdBQUcsT0FBTztZQUNWLElBQUksRUFBRSxlQUFRLENBQUMsTUFBTTtZQUNyQixPQUFPLEVBQUUsS0FBSztZQUNkLGFBQWEsRUFBRSxFQUFFO1NBQ2xCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztJQUNqQyxDQUFDO0lBRVMsa0JBQWtCO1FBQzFCLE9BQU8sSUFBSSxHQUFHLENBQUMsQ0FBQyxrQkFBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVTLGdCQUFnQjtRQUN4QixPQUFPLElBQUksR0FBRyxDQUFDLENBQUMsa0JBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7O0FBekJILHNDQTBCQztBQXpCd0IsOEJBQWdCLEdBQUcsQ0FBQyxrQkFBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBMkIxRTs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxTQUFnQixTQUFTLENBQ3ZCLEVBQVUsRUFDVixJQUFZLEVBQ1osUUFBZ0IsRUFDaEIsT0FBeUIsRUFDekIsS0FBc0IsRUFDdEIsUUFBa0IsRUFDbEIsV0FBMEIsYUFBYSxDQUFDLGdCQUFnQixFQUN4RCxNQUFNLEdBQUcsRUFBRSxFQUNYLFNBQWlCLElBQUksQ0FBQyxXQUFXLEVBQUU7QUFDbkMsbURBQW1EO0FBQ25ELGtCQUE0QixlQUFRLENBQUMsU0FBUztJQUU5QyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQ2xCLElBQUksYUFBYSxDQUFDO1FBQ2hCLEVBQUU7UUFDRixJQUFJO1FBQ0osUUFBUTtRQUNSLE9BQU87UUFDUCxNQUFNO1FBQ04sTUFBTTtRQUNOLFFBQVE7UUFDUixLQUFLO1FBQ0wsZUFBZTtRQUNmLFFBQVE7S0FDVCxDQUFDLENBQ0gsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLGNBQWMsR0FBRyxDQUFDLEdBQUcsYUFBYSxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFDM0QsNkRBQTZEO0FBQzdELE1BQU0sZUFBZSxHQUFHLENBQUMsR0FBRyxjQUFjLEVBQUUsa0JBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUVwRCxRQUFBLGNBQWMsR0FBeUI7SUFDbEQsU0FBUyxDQUNQLHNDQUFzQyxFQUN0QyxPQUFPLEVBQ1AsbUJBQW1CLEVBQ25CLG1CQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFDbkIsc0JBQWUsQ0FBQyxLQUFLLEVBQ3JCLGVBQVEsQ0FBQyxLQUFLLEVBQ2QsY0FBYyxDQUNmO0lBQ0QsU0FBUyxDQUNQLHNDQUFzQyxFQUN0QyxRQUFRLEVBQ1IsMkJBQTJCLEVBQzNCLG1CQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFDbkIsc0JBQWUsQ0FBQyxLQUFLLEVBQ3JCLGVBQVEsQ0FBQyxLQUFLLEVBQ2QsZUFBZSxDQUNoQjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiwgQmFzZVVuaXQsIENvaW5GZWF0dXJlLCBDb2luS2luZCwgS2V5Q3VydmUsIFVuZGVybHlpbmdBc3NldCB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyBMaWdodG5pbmdOZXR3b3JrLCBOZXR3b3JrcyB9IGZyb20gJy4vbmV0d29ya3MnO1xuXG5pbnRlcmZhY2UgTGlnaHRuaW5nQ29uc3RydWN0b3JPcHRpb25zIHtcbiAgaWQ6IHN0cmluZztcbiAgZnVsbE5hbWU6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBuZXR3b3JrOiBMaWdodG5pbmdOZXR3b3JrO1xuICBmZWF0dXJlczogQ29pbkZlYXR1cmVbXTtcbiAgYXNzZXQ6IFVuZGVybHlpbmdBc3NldDtcbiAgYmFzZVVuaXQ6IEJhc2VVbml0O1xuICBwcmVmaXg/OiBzdHJpbmc7XG4gIHN1ZmZpeD86IHN0cmluZztcbiAgcHJpbWFyeUtleUN1cnZlOiBLZXlDdXJ2ZTtcbn1cblxuZXhwb3J0IGNsYXNzIExpZ2h0bmluZ0NvaW4gZXh0ZW5kcyBCYXNlQ29pbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9GRUFUVVJFUyA9IFtDb2luRmVhdHVyZS5MSUdIVE5JTkdfTU9ERUxdO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGZpZWxkcyBmb3IgbGlnaHRuaW5nIGNvaW5zXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbmV0d29yazogTGlnaHRuaW5nTmV0d29yaztcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBMaWdodG5pbmdDb25zdHJ1Y3Rvck9wdGlvbnMpIHtcbiAgICBzdXBlcih7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAga2luZDogQ29pbktpbmQuQ1JZUFRPLFxuICAgICAgaXNUb2tlbjogZmFsc2UsXG4gICAgICBkZWNpbWFsUGxhY2VzOiAxMSxcbiAgICB9KTtcblxuICAgIHRoaXMubmV0d29yayA9IG9wdGlvbnMubmV0d29yaztcbiAgfVxuXG4gIHByb3RlY3RlZCBkaXNhbGxvd2VkRmVhdHVyZXMoKTogU2V0PENvaW5GZWF0dXJlPiB7XG4gICAgcmV0dXJuIG5ldyBTZXQoW0NvaW5GZWF0dXJlLkFDQ09VTlRfTU9ERUxdKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZXF1aXJlZEZlYXR1cmVzKCk6IFNldDxDb2luRmVhdHVyZT4ge1xuICAgIHJldHVybiBuZXcgU2V0KFtDb2luRmVhdHVyZS5MSUdIVE5JTkdfTU9ERUxdKTtcbiAgfVxufVxuXG4vKipcbiAqIEZhY3RvcnkgZnVuY3Rpb24gZm9yIGxpZ2h0bmluZyBjb2luIGluc3RhbmNlcy5cbiAqXG4gKiBAcGFyYW0gaWQgdXVpZCB2NCBvZiB0aGUgY29pblxuICogQHBhcmFtIG5hbWUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNvaW5cbiAqIEBwYXJhbSBmdWxsTmFtZSBDb21wbGV0ZSBodW1hbi1yZWFkYWJsZSBuYW1lIG9mIHRoZSBjb2luXG4gKiBAcGFyYW0gbmV0d29yayBOZXR3b3JrIG9iamVjdCBmb3IgdGhpcyBjb2luXG4gKiBAcGFyYW0gYXNzZXQgQXNzZXQgd2hpY2ggdGhpcyBjb2luIHJlcHJlc2VudHMuIFRoaXMgaXMgdGhlIHNhbWUgZm9yIGJvdGggbWFpbm5ldCBhbmQgdGVzdG5ldCB2YXJpYW50cyBvZiBhIGNvaW4uXG4gKiBAcGFyYW0gZmVhdHVyZXM/IEZlYXR1cmVzIG9mIHRoaXMgY29pbi4gRGVmYXVsdHMgdG8gdGhlIERFRkFVTFRfRkVBVFVSRVMgZGVmaW5lZCBpbiBgTGlnaHRuaW5nQ29pbmBcbiAqIEBwYXJhbSBwcmVmaXg/IE9wdGlvbmFsIGNvaW4gcHJlZml4LiBEZWZhdWx0cyB0byBlbXB0eSBzdHJpbmdcbiAqIEBwYXJhbSBzdWZmaXg/IE9wdGlvbmFsIGNvaW4gc3VmZml4LiBEZWZhdWx0cyB0byBjb2luIG5hbWUuXG4gKiBAcGFyYW0gcHJpbWFyeUtleUN1cnZlIFRoZSBlbGxpcHRpYyBjdXJ2ZSBmb3IgdGhpcyBjaGFpbi90b2tlblxuICovXG5leHBvcnQgZnVuY3Rpb24gbGlnaHRuaW5nKFxuICBpZDogc3RyaW5nLFxuICBuYW1lOiBzdHJpbmcsXG4gIGZ1bGxOYW1lOiBzdHJpbmcsXG4gIG5ldHdvcms6IExpZ2h0bmluZ05ldHdvcmssXG4gIGFzc2V0OiBVbmRlcmx5aW5nQXNzZXQsXG4gIGJhc2VVbml0OiBCYXNlVW5pdCxcbiAgZmVhdHVyZXM6IENvaW5GZWF0dXJlW10gPSBMaWdodG5pbmdDb2luLkRFRkFVTFRfRkVBVFVSRVMsXG4gIHByZWZpeCA9ICcnLFxuICBzdWZmaXg6IHN0cmluZyA9IG5hbWUudG9VcHBlckNhc2UoKSxcbiAgLyoqIEFsbCBMaWdodG5pbmdzIEJpdEdvIHN1cHBvcnRzIGFyZSBTRUNQMjU2SzEgKiovXG4gIHByaW1hcnlLZXlDdXJ2ZTogS2V5Q3VydmUgPSBLZXlDdXJ2ZS5TZWNwMjU2azFcbikge1xuICByZXR1cm4gT2JqZWN0LmZyZWV6ZShcbiAgICBuZXcgTGlnaHRuaW5nQ29pbih7XG4gICAgICBpZCxcbiAgICAgIG5hbWUsXG4gICAgICBmdWxsTmFtZSxcbiAgICAgIG5ldHdvcmssXG4gICAgICBwcmVmaXgsXG4gICAgICBzdWZmaXgsXG4gICAgICBmZWF0dXJlcyxcbiAgICAgIGFzc2V0LFxuICAgICAgcHJpbWFyeUtleUN1cnZlLFxuICAgICAgYmFzZVVuaXQsXG4gICAgfSlcbiAgKTtcbn1cblxuY29uc3QgTE5CVENfRkVBVFVSRVMgPSBbLi4uTGlnaHRuaW5nQ29pbi5ERUZBVUxUX0ZFQVRVUkVTXTtcbi8vIFRPRE8oQlRDLTI4MjEpOiBBZGQgc3Rha2luZyBmZWF0dXJlIHRvIGxuYnRjIGFmdGVyIHRlc3RpbmdcbmNvbnN0IFRMTkJUQ19GRUFUVVJFUyA9IFsuLi5MTkJUQ19GRUFUVVJFUywgQ29pbkZlYXR1cmUuU1RBS0lOR107XG5cbmV4cG9ydCBjb25zdCBsaWdodG5pbmdDb2luczogUmVhZG9ubHk8QmFzZUNvaW4+W10gPSBbXG4gIGxpZ2h0bmluZyhcbiAgICAnMDUxYWFiNDAtZWZiYy00ZjU4LTk1MDYtMTRjYzk1MzY5ZTBhJyxcbiAgICAnbG5idGMnLFxuICAgICdMaWdodG5pbmcgQml0Y29pbicsXG4gICAgTmV0d29ya3MubWFpbi5sbmJ0YyxcbiAgICBVbmRlcmx5aW5nQXNzZXQuTE5CVEMsXG4gICAgQmFzZVVuaXQuTE5CVEMsXG4gICAgTE5CVENfRkVBVFVSRVNcbiAgKSxcbiAgbGlnaHRuaW5nKFxuICAgICczY2JhYmFhNy1hMDYzLTRkYjMtYjNhOC1lYThjYzM4MDMzZTUnLFxuICAgICd0bG5idGMnLFxuICAgICdUZXN0bmV0IExpZ2h0bmluZyBCaXRjb2luJyxcbiAgICBOZXR3b3Jrcy50ZXN0LmxuYnRjLFxuICAgIFVuZGVybHlpbmdBc3NldC5MTkJUQyxcbiAgICBCYXNlVW5pdC5MTkJUQyxcbiAgICBUTE5CVENfRkVBVFVSRVNcbiAgKSxcbl07XG4iXX0=
@@ -8,13 +8,14 @@ export interface FlareNetwork extends BaseNetwork {
8
8
  batcherContractAddress?: string;
9
9
  forwarderFactoryAddress?: string;
10
10
  forwarderImplementationAddress?: string;
11
- blockchainID?: string;
12
- cChainBlockchainID?: string;
13
- networkID?: number;
14
- hrp?: string;
15
- alias?: string;
11
+ blockchainID: string;
12
+ cChainBlockchainID: string;
13
+ networkID: number;
14
+ hrp: string;
15
+ alias: string;
16
+ assetId: string;
16
17
  vm?: string;
17
- txFee?: string;
18
+ txFee: string;
18
19
  maxImportFee?: string;
19
20
  createSubnetTx?: string;
20
21
  createChainTx?: string;
@@ -22,7 +23,7 @@ export interface FlareNetwork extends BaseNetwork {
22
23
  minConsumption?: string;
23
24
  maxConsumption?: string;
24
25
  maxSupply?: string;
25
- minStake?: string;
26
+ minStake: string;
26
27
  minStakeDuration?: string;
27
28
  maxStakeDuration?: string;
28
29
  minDelegationStake?: string;
@@ -120,10 +121,18 @@ export interface EthereumNetwork extends AccountNetwork {
120
121
  readonly batcherContractAddress?: string;
121
122
  readonly forwarderFactoryAddress?: string;
122
123
  readonly forwarderImplementationAddress?: string;
123
- readonly nativeCoinOperationHashPrefix?: string;
124
- readonly tokenOperationHashPrefix?: string;
124
+ readonly walletV2ForwarderFactoryAddress?: string;
125
+ readonly walletV2ForwarderImplementationAddress?: string;
125
126
  readonly walletV4ForwarderFactoryAddress?: string;
126
127
  readonly walletV4ForwarderImplementationAddress?: string;
128
+ readonly walletFactoryAddress?: string;
129
+ readonly walletImplementationAddress?: string;
130
+ readonly walletV2FactoryAddress?: string;
131
+ readonly walletV2ImplementationAddress?: string;
132
+ readonly walletV4FactoryAddress?: string;
133
+ readonly walletV4ImplementationAddress?: string;
134
+ readonly nativeCoinOperationHashPrefix?: string;
135
+ readonly tokenOperationHashPrefix?: string;
127
136
  }
128
137
  export interface TronNetwork extends AccountNetwork {
129
138
  maxFeeLimit: string;
@@ -494,10 +503,18 @@ declare class Ethereum extends Mainnet implements EthereumNetwork {
494
503
  batcherContractAddress: string;
495
504
  forwarderFactoryAddress: string;
496
505
  forwarderImplementationAddress: string;
497
- nativeCoinOperationHashPrefix: string;
498
- tokenOperationHashPrefix: string;
506
+ walletV2ForwarderFactoryAddress: string;
507
+ walletV2ForwarderImplementationAddress: string;
499
508
  walletV4ForwarderFactoryAddress: string;
500
509
  walletV4ForwarderImplementationAddress: string;
510
+ nativeCoinOperationHashPrefix: string;
511
+ tokenOperationHashPrefix: string;
512
+ walletFactoryAddress: string;
513
+ walletImplementationAddress: string;
514
+ walletV2FactoryAddress: string;
515
+ walletV2ImplementationAddress: string;
516
+ walletV4FactoryAddress: string;
517
+ walletV4ImplementationAddress: string;
501
518
  }
502
519
  declare class Ethereum2 extends Mainnet implements AccountNetwork {
503
520
  name: string;
@@ -573,10 +590,18 @@ declare class Hoodi extends Testnet implements EthereumNetwork {
573
590
  batcherContractAddress: string;
574
591
  forwarderFactoryAddress: string;
575
592
  forwarderImplementationAddress: string;
576
- nativeCoinOperationHashPrefix: string;
577
- tokenOperationHashPrefix: string;
593
+ walletV2ForwarderFactoryAddress: string;
594
+ walletV2ForwarderImplementationAddress: string;
578
595
  walletV4ForwarderFactoryAddress: string;
579
596
  walletV4ForwarderImplementationAddress: string;
597
+ walletFactoryAddress: string;
598
+ walletImplementationAddress: string;
599
+ walletV2FactoryAddress: string;
600
+ walletV2ImplementationAddress: string;
601
+ walletV4FactoryAddress: string;
602
+ walletV4ImplementationAddress: string;
603
+ nativeCoinOperationHashPrefix: string;
604
+ tokenOperationHashPrefix: string;
580
605
  }
581
606
  declare class EthereumClassic extends Mainnet implements EthereumNetwork {
582
607
  name: string;
@@ -1014,6 +1039,8 @@ declare class Polygon extends Mainnet implements EthereumNetwork {
1014
1039
  batcherContractAddress: string;
1015
1040
  nativeCoinOperationHashPrefix: string;
1016
1041
  tokenOperationHashPrefix: string;
1042
+ walletV4ForwarderFactoryAddress: string;
1043
+ walletV4ForwarderImplementationAddress: string;
1017
1044
  }
1018
1045
  declare class PolygonTestnet extends Testnet implements EthereumNetwork {
1019
1046
  name: string;
@@ -1028,6 +1055,8 @@ declare class PolygonTestnet extends Testnet implements EthereumNetwork {
1028
1055
  batcherContractAddress: string;
1029
1056
  nativeCoinOperationHashPrefix: string;
1030
1057
  tokenOperationHashPrefix: string;
1058
+ walletV4ForwarderFactoryAddress: string;
1059
+ walletV4ForwarderImplementationAddress: string;
1031
1060
  }
1032
1061
  declare class Optimism extends Mainnet implements EthereumNetwork {
1033
1062
  name: string;
@@ -1041,6 +1070,8 @@ declare class Optimism extends Mainnet implements EthereumNetwork {
1041
1070
  forwarderImplementationAddress: string;
1042
1071
  walletFactoryAddress: string;
1043
1072
  walletImplementationAddress: string;
1073
+ walletV4ForwarderFactoryAddress: string;
1074
+ walletV4ForwarderImplementationAddress: string;
1044
1075
  batcherContractAddress: string;
1045
1076
  }
1046
1077
  declare class OptimismTestnet extends Testnet implements EthereumNetwork {
@@ -1055,6 +1086,8 @@ declare class OptimismTestnet extends Testnet implements EthereumNetwork {
1055
1086
  forwarderImplementationAddress: string;
1056
1087
  walletFactoryAddress: string;
1057
1088
  walletImplementationAddress: string;
1089
+ walletV4ForwarderFactoryAddress: string;
1090
+ walletV4ForwarderImplementationAddress: string;
1058
1091
  batcherContractAddress: string;
1059
1092
  }
1060
1093
  declare class ZkSync extends Mainnet implements EthereumNetwork {
@@ -1076,6 +1109,8 @@ declare class ZkSyncTestnet extends Testnet implements EthereumNetwork {
1076
1109
  tokenOperationHashPrefix: string;
1077
1110
  forwarderFactoryAddress: string;
1078
1111
  forwarderImplementationAddress: string;
1112
+ walletV4ForwarderFactoryAddress: string;
1113
+ walletV4ForwarderImplementationAddress: string;
1079
1114
  walletFactoryAddress: string;
1080
1115
  walletImplementationAddress: string;
1081
1116
  }
@@ -1324,6 +1359,54 @@ declare class MantleTestnet extends Testnet implements EthereumNetwork {
1324
1359
  chainId: number;
1325
1360
  nativeCoinOperationHashPrefix: string;
1326
1361
  }
1362
+ declare class JovayETH extends Mainnet implements EthereumNetwork {
1363
+ name: string;
1364
+ family: CoinFamily;
1365
+ explorerUrl: string;
1366
+ accountExplorerUrl: string;
1367
+ chainId: number;
1368
+ nativeCoinOperationHashPrefix: string;
1369
+ }
1370
+ declare class JovayETHTestnet extends Testnet implements EthereumNetwork {
1371
+ name: string;
1372
+ family: CoinFamily;
1373
+ explorerUrl: string;
1374
+ accountExplorerUrl: string;
1375
+ chainId: number;
1376
+ nativeCoinOperationHashPrefix: string;
1377
+ }
1378
+ declare class Xlayer extends Mainnet implements EthereumNetwork {
1379
+ name: string;
1380
+ family: CoinFamily;
1381
+ explorerUrl: string;
1382
+ accountExplorerUrl: string;
1383
+ chainId: number;
1384
+ nativeCoinOperationHashPrefix: string;
1385
+ }
1386
+ declare class XlayerTestnet extends Testnet implements EthereumNetwork {
1387
+ name: string;
1388
+ family: CoinFamily;
1389
+ explorerUrl: string;
1390
+ accountExplorerUrl: string;
1391
+ chainId: number;
1392
+ nativeCoinOperationHashPrefix: string;
1393
+ }
1394
+ declare class Morph extends Mainnet implements EthereumNetwork {
1395
+ name: string;
1396
+ family: CoinFamily;
1397
+ explorerUrl: string;
1398
+ accountExplorerUrl: string;
1399
+ chainId: number;
1400
+ nativeCoinOperationHashPrefix: string;
1401
+ }
1402
+ declare class MorphTestnet extends Testnet implements EthereumNetwork {
1403
+ name: string;
1404
+ family: CoinFamily;
1405
+ explorerUrl: string;
1406
+ accountExplorerUrl: string;
1407
+ chainId: number;
1408
+ nativeCoinOperationHashPrefix: string;
1409
+ }
1327
1410
  declare class CreditcoinTestnet extends Testnet implements EthereumNetwork {
1328
1411
  name: string;
1329
1412
  family: CoinFamily;
@@ -1581,6 +1664,7 @@ declare class Somi extends Mainnet implements EthereumNetwork {
1581
1664
  batcherContractAddress: string;
1582
1665
  }
1583
1666
  export declare class FlareP extends Mainnet implements FlareNetwork {
1667
+ assetId: string;
1584
1668
  name: string;
1585
1669
  family: CoinFamily;
1586
1670
  explorerUrl: string;
@@ -1615,6 +1699,7 @@ export declare class FlarePTestnet extends Testnet implements FlareNetwork {
1615
1699
  networkID: number;
1616
1700
  hrp: string;
1617
1701
  alias: string;
1702
+ assetId: string;
1618
1703
  vm: string;
1619
1704
  txFee: string;
1620
1705
  maxImportFee: string;
@@ -1630,7 +1715,7 @@ export declare class FlarePTestnet extends Testnet implements FlareNetwork {
1630
1715
  minDelegationStake: string;
1631
1716
  minDelegationFee: string;
1632
1717
  }
1633
- export declare class Flare extends Mainnet implements FlareNetwork, EthereumNetwork {
1718
+ export declare class Flare extends Mainnet implements EthereumNetwork {
1634
1719
  name: string;
1635
1720
  family: CoinFamily;
1636
1721
  explorerUrl: string;
@@ -1643,7 +1728,7 @@ export declare class Flare extends Mainnet implements FlareNetwork, EthereumNetw
1643
1728
  forwarderFactoryAddress: string;
1644
1729
  forwarderImplementationAddress: string;
1645
1730
  }
1646
- export declare class FlareTestnet extends Testnet implements FlareNetwork, EthereumNetwork {
1731
+ export declare class FlareTestnet extends Testnet implements EthereumNetwork {
1647
1732
  name: string;
1648
1733
  family: CoinFamily;
1649
1734
  explorerUrl: string;
@@ -1826,6 +1911,22 @@ declare class CantonTestnet extends Testnet implements BaseNetwork {
1826
1911
  family: CoinFamily;
1827
1912
  explorerUrl: string;
1828
1913
  }
1914
+ declare class Dogeos extends Mainnet implements EthereumNetwork {
1915
+ name: string;
1916
+ family: CoinFamily;
1917
+ explorerUrl: string;
1918
+ accountExplorerUrl: string;
1919
+ chainId: number;
1920
+ nativeCoinOperationHashPrefix: string;
1921
+ }
1922
+ declare class DogeosTestnet extends Testnet implements EthereumNetwork {
1923
+ name: string;
1924
+ family: CoinFamily;
1925
+ explorerUrl: string;
1926
+ accountExplorerUrl: string;
1927
+ chainId: number;
1928
+ nativeCoinOperationHashPrefix: string;
1929
+ }
1829
1930
  export declare const Networks: {
1830
1931
  main: {
1831
1932
  ada: Readonly<Ada>;
@@ -1854,6 +1955,7 @@ export declare const Networks: {
1854
1955
  cronos: Readonly<Cronos>;
1855
1956
  dash: Readonly<Dash>;
1856
1957
  dogecoin: Readonly<Dogecoin>;
1958
+ dogeos: Readonly<Dogeos>;
1857
1959
  dot: Readonly<PolkadotAssetHub>;
1858
1960
  eCash: Readonly<ECash>;
1859
1961
  eos: Readonly<Eos>;
@@ -1877,6 +1979,7 @@ export declare const Networks: {
1877
1979
  injective: Readonly<Injective>;
1878
1980
  irys: Readonly<Irys>;
1879
1981
  islm: Readonly<Islm>;
1982
+ jovayeth: Readonly<JovayETH>;
1880
1983
  kaia: Readonly<Kaia>;
1881
1984
  kava: Readonly<Kava>;
1882
1985
  kavaevm: Readonly<KavaEVM>;
@@ -1896,6 +1999,8 @@ export declare const Networks: {
1896
1999
  oas: Readonly<Oas>;
1897
2000
  og: Readonly<Og>;
1898
2001
  ofc: Readonly<Ofc>;
2002
+ okb: Readonly<Xlayer>;
2003
+ morph: Readonly<Morph>;
1899
2004
  optimism: Readonly<Optimism>;
1900
2005
  osmo: Readonly<Osmo>;
1901
2006
  rbtc: Readonly<Rbtc>;
@@ -1956,6 +2061,7 @@ export declare const Networks: {
1956
2061
  cronos: Readonly<CronosTestnet>;
1957
2062
  dash: Readonly<DashTestnet>;
1958
2063
  dogecoin: Readonly<DogecoinTestnet>;
2064
+ dogeos: Readonly<DogeosTestnet>;
1959
2065
  dot: Readonly<WestendAssetHub>;
1960
2066
  eCash: Readonly<ECashTestnet>;
1961
2067
  eos: Readonly<EosTestnet>;
@@ -1980,6 +2086,7 @@ export declare const Networks: {
1980
2086
  iota: Readonly<IotaTestnet>;
1981
2087
  irys: Readonly<IrysTestnet>;
1982
2088
  islm: Readonly<IslmTestnet>;
2089
+ jovayeth: Readonly<JovayETHTestnet>;
1983
2090
  kava: Readonly<KavaTestnet>;
1984
2091
  kavaevm: Readonly<KavaEVMTestnet>;
1985
2092
  kovan: Readonly<Kovan>;
@@ -1999,6 +2106,8 @@ export declare const Networks: {
1999
2106
  oas: Readonly<OasTestnet>;
2000
2107
  og: Readonly<OgTestnet>;
2001
2108
  ofc: Readonly<OfcTestnet>;
2109
+ okb: Readonly<XlayerTestnet>;
2110
+ morph: Readonly<MorphTestnet>;
2002
2111
  optimism: Readonly<OptimismTestnet>;
2003
2112
  osmo: Readonly<OsmoTestnet>;
2004
2113
  rbtc: Readonly<RbtcTestnet>;