@bitgo/statics 58.35.0 → 58.37.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 (38) hide show
  1. package/dist/src/allCoinsAndTokens.d.ts.map +1 -1
  2. package/dist/src/allCoinsAndTokens.js +63 -8
  3. package/dist/src/base.d.ts +39 -1
  4. package/dist/src/base.d.ts.map +1 -1
  5. package/dist/src/base.js +41 -1
  6. package/dist/src/coinFeatures.d.ts.map +1 -1
  7. package/dist/src/coinFeatures.js +2 -1
  8. package/dist/src/coins/botOfcTokens.d.ts.map +1 -1
  9. package/dist/src/coins/botOfcTokens.js +3 -1
  10. package/dist/src/coins/botTokens.d.ts.map +1 -1
  11. package/dist/src/coins/botTokens.js +3 -1
  12. package/dist/src/coins/bscTokens.d.ts.map +1 -1
  13. package/dist/src/coins/bscTokens.js +3 -1
  14. package/dist/src/coins/cantonTokens.js +3 -3
  15. package/dist/src/coins/erc20Coins.d.ts.map +1 -1
  16. package/dist/src/coins/erc20Coins.js +7 -1
  17. package/dist/src/coins/ofcCoins.d.ts.map +1 -1
  18. package/dist/src/coins/ofcCoins.js +64 -4
  19. package/dist/src/coins/ofcErc20Coins.d.ts.map +1 -1
  20. package/dist/src/coins/ofcErc20Coins.js +13 -1
  21. package/dist/src/coins/polygonTokens.d.ts.map +1 -1
  22. package/dist/src/coins/polygonTokens.js +3 -1
  23. package/dist/src/coins/solTokens.d.ts.map +1 -1
  24. package/dist/src/coins/solTokens.js +5 -3
  25. package/dist/src/coins.js +2 -2
  26. package/dist/src/index.d.ts +1 -0
  27. package/dist/src/index.d.ts.map +1 -1
  28. package/dist/src/index.js +4 -2
  29. package/dist/src/kaspa.d.ts +35 -0
  30. package/dist/src/kaspa.d.ts.map +1 -0
  31. package/dist/src/kaspa.js +63 -0
  32. package/dist/src/networks.d.ts +34 -0
  33. package/dist/src/networks.d.ts.map +1 -1
  34. package/dist/src/networks.js +51 -3
  35. package/dist/src/tokenConfig.d.ts +6 -0
  36. package/dist/src/tokenConfig.d.ts.map +1 -1
  37. package/dist/tsconfig.tsbuildinfo +1 -1
  38. package/package.json +2 -2
package/dist/src/coins.js CHANGED
@@ -383,7 +383,7 @@ function enrichBaseChainFeatures(coinTokenMap, networksMap) {
383
383
  return Object.fromEntries(Object.entries(coinTokenMap).map(([key, coins]) => [
384
384
  key,
385
385
  coins.map((coin) => {
386
- if (coin.isToken || coin.additionalFeatures !== undefined)
386
+ if (coin.isToken || coin.additionalFeatures !== undefined || coin.network === undefined)
387
387
  return coin;
388
388
  const features = featuresByNetworkName.get(coin.network.name);
389
389
  return features !== undefined ? { ...coin, additionalFeatures: features } : coin;
@@ -440,4 +440,4 @@ function createTokenUsingTrimmedConfigDetails(tokenConfig) {
440
440
  return createToken(fullTokenConfig);
441
441
  }
442
442
  }
443
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29pbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29pbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBMkVBLGtDQTZSQztBQTZERCx3REFFQztBQUVELDRFQThDQztBQVlELDBEQWlCQztBQUVELDBGQThCQztBQUVELG9GQTBCQztBQWhqQkQsdUNBOEJtQjtBQUNuQiwrQkFBaUM7QUFDakMsaUNBQTREO0FBRTVELCtCQUFnQztBQUNoQyx5Q0FBa0Y7QUFDbEYsNkVBQTBFO0FBQzFFLHlEQUFzRTtBQUN0RSwrQ0FBNEM7QUFDNUMsMkRBQXdEO0FBQ3hELHVEQUFvRDtBQUV2QyxRQUFBLEtBQUssR0FBRyxhQUFPLENBQUMsU0FBUyxDQUFDO0lBQ3JDLEdBQUcscUNBQWlCO0lBQ3BCLEdBQUcsNkJBQWE7SUFDaEIsR0FBRyw4QkFBYztJQUNqQixHQUFHLG1CQUFRO0lBQ1gsR0FBRywyQkFBWTtDQUNoQixDQUFDLENBQUM7QUFFSCxpRkFBaUY7QUFDakYsZ0RBQWdEO0FBQ2hELE1BQU0sbUJBQW1CLEdBQTJCLEVBQUUsQ0FBQztBQUV2RCxxQ0FBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtJQUNqQyxJQUNFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGtCQUFXLENBQUMsY0FBYyxDQUFDO1FBQ2xELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLHNCQUFXLENBQUMsT0FBTztRQUN6QyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQ2IsQ0FBQztRQUNELG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQy9DLENBQUM7QUFDSCxDQUFDLENBQUMsQ0FBQztBQUVILE1BQU0sb0JBQW9CLEdBQTJCLEVBQUUsQ0FBQztBQUN4RCxxQ0FBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtJQUNqQyxJQUNFLElBQUks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QixJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQW9CLENBQUMsQ0FBQztRQUNwSCxDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELElBQUksT0FBTyxJQUFJLHVEQUEwQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQzFELE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxDQUFDO1lBQ3ZCLEdBQUcsQ0FBQyx1REFBMEIsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3JELEdBQUcsQ0FBQyxXQUFXLENBQUMsa0JBQWtCLElBQUksRUFBRSxDQUFDO1NBQzFDLENBQUMsQ0FBQztRQUNILFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUM3RSxlQUFlLEdBQUcsRUFBRSxHQUFHLFdBQVcsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxPQUFPLEVBQW9CLENBQUM7UUFDaEcsT0FBTyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdEMsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBhbGdvVG9rZW4sXG4gIGFwdE5GVENvbGxlY3Rpb24sXG4gIGFwdFRva2VuLFxuICBhcmJldGhFcmMyMCxcbiAgYXZheEVyYzIwLFxuICBiZXJhRXJjMjAsXG4gIGJzY1Rva2VuLFxuICBjZWxvVG9rZW4sXG4gIGNvc21vc1Rva2VuLFxuICBlb3NUb2tlbixcbiAgZXJjMjAsXG4gIGhlZGVyYVRva2VuLFxuICBqZXR0b25Ub2tlbixcbiAgbmVwMTQxVG9rZW4sXG4gIG9wZXRoRXJjMjAsXG4gIHBvbHlnb25FcmMyMCxcbiAgcG9seXhUb2tlbixcbiAgc2lwMTBUb2tlbixcbiAgc29sVG9rZW4sXG4gIHN0ZWxsYXJUb2tlbixcbiAgc3VpVG9rZW4sXG4gIHRhb1Rva2VuLFxuICB0cm9uVG9rZW4sXG4gIHZldE5GVENvbGxlY3Rpb24sXG4gIHZldFRva2VuLFxuICB4cnBUb2tlbixcbiAgYWRhVG9rZW4sXG4gIGVyYzIwVG9rZW4sXG4gIGVyYzcyMVRva2VuLFxufSBmcm9tICcuL2FjY291bnQnO1xuaW1wb3J0IHsgb2ZjVG9rZW4gfSBmcm9tICcuL29mYyc7XG5pbXBvcnQgeyBCYXNlQ29pbiwgQ29pbkZlYXR1cmUsIER5bmFtaWNDb2luIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IEFtc05ldHdvcmtDb25maWdNYXAsIEFtc1Rva2VuQ29uZmlnLCBUcmltbWVkQW1zVG9rZW5Db25maWcgfSBmcm9tICcuL3Rva2VuQ29uZmlnJztcbmltcG9ydCB7IENvaW5NYXAgfSBmcm9tICcuL21hcCc7XG5pbXBvcnQgeyBCYXNlTmV0d29yaywgZ2V0TmV0d29yaywgZ2V0TmV0d29ya3NNYXAsIE5ldHdvcmtUeXBlIH0gZnJvbSAnLi9uZXR3b3Jrcyc7XG5pbXBvcnQgeyBuZXR3b3JrRmVhdHVyZU1hcEZvclRva2VucyB9IGZyb20gJy4vbmV0d29ya0ZlYXR1cmVNYXBGb3JUb2tlbnMnO1xuaW1wb3J0IHsgb2ZjRXJjMjBDb2lucywgdE9mY0VyYzIwQ29pbnMgfSBmcm9tICcuL2NvaW5zL29mY0VyYzIwQ29pbnMnO1xuaW1wb3J0IHsgb2ZjQ29pbnMgfSBmcm9tICcuL2NvaW5zL29mY0NvaW5zJztcbmltcG9ydCB7IGFsbENvaW5zQW5kVG9rZW5zIH0gZnJvbSAnLi9hbGxDb2luc0FuZFRva2Vucyc7XG5pbXBvcnQgeyBib3RPZmNUb2tlbnMgfSBmcm9tICcuL2NvaW5zL2JvdE9mY1Rva2Vucyc7XG5cbmV4cG9ydCBjb25zdCBjb2lucyA9IENvaW5NYXAuZnJvbUNvaW5zKFtcbiAgLi4uYWxsQ29pbnNBbmRUb2tlbnMsXG4gIC4uLm9mY0VyYzIwQ29pbnMsXG4gIC4uLnRPZmNFcmMyMENvaW5zLFxuICAuLi5vZmNDb2lucyxcbiAgLi4uYm90T2ZjVG9rZW5zLFxuXSk7XG5cbi8vIEJ1aWxkIGEgbWFwIG9mIEVSQzIwLXN1cHBvcnRpbmcgY2hhaW4gZmFtaWx5IG5hbWVzIHRvIHRoZWlyIG1haW5uZXQgY29pbiBuYW1lc1xuLy8gTWFwcyBmYW1pbHkgLT4gY29pbiBuYW1lIChlLmcuLCAnaXAnIC0+ICdpcCcpXG5jb25zdCBlcmMyMENoYWluVG9OYW1lTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cbmFsbENvaW5zQW5kVG9rZW5zLmZvckVhY2goKGNvaW4pID0+IHtcbiAgaWYgKFxuICAgIGNvaW4uZmVhdHVyZXMuaW5jbHVkZXMoQ29pbkZlYXR1cmUuU1VQUE9SVFNfRVJDMjApICYmXG4gICAgY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgJiZcbiAgICAhY29pbi5pc1Rva2VuXG4gICkge1xuICAgIGVyYzIwQ2hhaW5Ub05hbWVNYXBbY29pbi5mYW1pbHldID0gY29pbi5uYW1lO1xuICB9XG59KTtcblxuY29uc3QgZXJjNzIxQ2hhaW5Ub05hbWVNYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbmFsbENvaW5zQW5kVG9rZW5zLmZvckVhY2goKGNvaW4pID0+IHtcbiAgaWYgKFxuICAgIGNvaW4uZmVhdHVyZXMuaW5jbHVkZXMoQ29pbkZlYXR1cmUuU1VQUE9SVFNfRVJDNzIxKSAmJlxuICAgIGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUICYmXG4gICAgIWNvaW4uaXNUb2tlblxuICApIHtcbiAgICBlcmM3MjFDaGFpblRvTmFtZU1hcFtjb2luLmZhbWlseV0gPSBjb2luLm5hbWU7XG4gIH1cbn0pO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVG9rZW4odG9rZW46IEFtc1Rva2VuQ29uZmlnKTogUmVhZG9ubHk8QmFzZUNvaW4+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKCF0b2tlbi5pc1Rva2VuKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBidWlsZER5bmFtaWNDb2luKHRva2VuKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS53YXJuKGBGYWlsZWQgdG8gYnVpbGQgZHluYW1pYyBjb2luIGZvciAke3Rva2VuLm5hbWV9ICgke3Rva2VuLmlkfSk6YCwgZXJyb3IpO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cbiAgY29uc3QgaW5pdGlhbGl6ZXJNYXA6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgIGFsZ286IGFsZ29Ub2tlbixcbiAgICBhcHQ6IGFwdFRva2VuLFxuICAgIGFyYmV0aDogYXJiZXRoRXJjMjAsXG4gICAgYXZheGM6IGF2YXhFcmMyMCxcbiAgICBiYXNlZXRoOiBlcmMyMFRva2VuLFxuICAgIGJlcmE6IGJlcmFFcmMyMCxcbiAgICBmbG93OiBlcmMyMFRva2VuLFxuICAgIGxpbmVhZXRoOiBlcmMyMFRva2VuLFxuICAgIHNlaWV2bTogZXJjMjBUb2tlbixcbiAgICBtb246IGVyYzIwVG9rZW4sXG4gICAgeGRjOiBlcmMyMFRva2VuLFxuICAgIGJzYzogYnNjVG9rZW4sXG4gICAgY2VsbzogY2Vsb1Rva2VuLFxuICAgIGNvc21vczogY29zbW9zVG9rZW4sXG4gICAgZXRoOiBlcmMyMCxcbiAgICBlb3M6IGVvc1Rva2VuLFxuICAgIGhiYXI6IGhlZGVyYVRva2VuLFxuICAgIG5lYXI6IG5lcDE0MVRva2VuLFxuICAgIG9wZXRoOiBvcGV0aEVyYzIwLFxuICAgIHBvbHlnb246IHBvbHlnb25FcmMyMCxcbiAgICBzb2w6IHNvbFRva2VuLFxuICAgIHN0eDogc2lwMTBUb2tlbixcbiAgICBzdWk6IHN1aVRva2VuLFxuICAgIHRhbzogdGFvVG9rZW4sXG4gICAgcG9seXg6IHBvbHl4VG9rZW4sXG4gICAgdHJ4OiB0cm9uVG9rZW4sXG4gICAgdmV0OiB2ZXRUb2tlbixcbiAgICB4bG06IHN0ZWxsYXJUb2tlbixcbiAgICB4cnA6IHhycFRva2VuLFxuICAgIG9mYzogb2ZjVG9rZW4sXG4gICAgYWRhOiBhZGFUb2tlbixcbiAgICB0b246IGpldHRvblRva2VuLFxuICB9O1xuXG4gIC8vIGR5bmFtaWNhbGx5IGFkZCBlcmMyMCB0b2tlbiBpbml0aWFsaXplcnMgZm9yIGV0aCBsaWtlIGNoYWlucyB0byB0aGUgaW5pdGlhbGl6ZXIgbWFwXG4gIE9iamVjdC5rZXlzKGVyYzIwQ2hhaW5Ub05hbWVNYXApLmZvckVhY2goKGtleSkgPT4ge1xuICAgIGluaXRpYWxpemVyTWFwW2tleV0gPSBlcmMyMFRva2VuO1xuICB9KTtcblxuICBPYmplY3Qua2V5cyhlcmM3MjFDaGFpblRvTmFtZU1hcCkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgaW5pdGlhbGl6ZXJNYXBba2V5XSA9IGVyYzcyMVRva2VuO1xuICB9KTtcblxuICAvL3JldHVybiB0aGUgQmFzZUNvaW4gZnJvbSBkZWZhdWx0IGNvaW4gbWFwIGlmIHByZXNlbnRcbiAgaWYgKGlzQ29pblByZXNlbnRJbkNvaW5NYXAoeyAuLi50b2tlbiB9KSkge1xuICAgIGlmIChjb2lucy5oYXModG9rZW4ubmFtZSkpIHtcbiAgICAgIHJldHVybiBjb2lucy5nZXQodG9rZW4ubmFtZSk7XG4gICAgfVxuICAgIGlmIChjb2lucy5oYXModG9rZW4uaWQpKSB7XG4gICAgICByZXR1cm4gY29pbnMuZ2V0KHRva2VuLmlkKTtcbiAgICB9XG4gICAgaWYgKHRva2VuLmFsaWFzICYmIGNvaW5zLmhhcyh0b2tlbi5hbGlhcykpIHtcbiAgICAgIHJldHVybiBjb2lucy5nZXQodG9rZW4uYWxpYXMpO1xuICAgIH1cbiAgfVxuICBjb25zdCBmYW1pbHkgPSB0b2tlbi5mYW1pbHk7XG4gIGNvbnN0IGluaXRpYWxpemVyID0gaW5pdGlhbGl6ZXJNYXBbZmFtaWx5XSBhcyAoLi4uYXJnczogdW5rbm93bltdKSA9PiBSZWFkb25seTxCYXNlQ29pbj47XG4gIGlmICghaW5pdGlhbGl6ZXIpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgY29tbW9uQXJncyA9IFtcbiAgICB0b2tlbi5pZCxcbiAgICB0b2tlbi5uYW1lLFxuICAgIHRva2VuLmZ1bGxOYW1lLFxuICAgIHRva2VuLmRlY2ltYWxQbGFjZXMsXG4gICAgdG9rZW4uYXNzZXQsXG4gICAgdG9rZW4uZmVhdHVyZXMsXG4gICAgdG9rZW4ucHJlZml4LFxuICAgIHRva2VuLnN1ZmZpeCxcbiAgICB0b2tlbi5uZXR3b3JrLFxuICAgIHRva2VuLnByaW1hcnlLZXlDdXJ2ZSxcbiAgXTtcblxuICBzd2l0Y2ggKGZhbWlseSkge1xuICAgIGNhc2UgZXJjMjBDaGFpblRvTmFtZU1hcFtmYW1pbHldOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDQpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXNcbiAgICAgICAgdG9rZW4uY29udHJhY3RBZGRyZXNzIHx8IHRva2VuLnRva2VuQWRkcmVzcywgLy8gY29udHJhY3RBZGRyZXNzXG4gICAgICAgIHRva2VuLmFzc2V0LFxuICAgICAgICB0b2tlbi5uZXR3b3JrLFxuICAgICAgICB0b2tlbi5mZWF0dXJlcyxcbiAgICAgICAgdG9rZW4ucHJlZml4LFxuICAgICAgICB0b2tlbi5zdWZmaXgsXG4gICAgICAgIHRva2VuLnByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcbiAgICBjYXNlIGVyYzcyMUNoYWluVG9OYW1lTWFwW2ZhbWlseV06XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgMyksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZVxuICAgICAgICB0b2tlbi5jb250cmFjdEFkZHJlc3MsIC8vIGNvbnRyYWN0QWRkcmVzc1xuICAgICAgICB0b2tlbi5uZXR3b3JrLFxuICAgICAgICB0b2tlbi5mZWF0dXJlcyxcbiAgICAgICAgdG9rZW4ucHJlZml4LFxuICAgICAgICB0b2tlbi5zdWZmaXgsXG4gICAgICAgIHRva2VuLnByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcbiAgICBjYXNlICdhcmJldGgnOlxuICAgIGNhc2UgJ2F2YXhjJzpcbiAgICBjYXNlICdiYXNlZXRoJzpcbiAgICBjYXNlICdiZXJhJzpcbiAgICBjYXNlICdic2MnOlxuICAgIGNhc2UgJ2Zsb3cnOlxuICAgIGNhc2UgJ2xpbmVhZXRoJzpcbiAgICBjYXNlICdzZWlldm0nOlxuICAgIGNhc2UgJ21vbic6XG4gICAgY2FzZSAneGRjJzpcbiAgICBjYXNlICdjZWxvJzpcbiAgICBjYXNlICdldGgnOlxuICAgIGNhc2UgJ29wZXRoJzpcbiAgICBjYXNlICdwb2x5Z29uJzpcbiAgICBjYXNlICd0cngnOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDQpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXNcbiAgICAgICAgdG9rZW4uY29udHJhY3RBZGRyZXNzIHx8IHRva2VuLnRva2VuQWRkcmVzcywgLy8gY29udHJhY3RBZGRyZXNzXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNCkgLy8gYXNzZXQsIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeCwgbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICApO1xuXG4gICAgY2FzZSAnYXB0JzpcbiAgICAgIGNvbnN0IHsgaW5pdEZ1bmMsIG9iamVjdElkIH0gPSBnZXRBcHRUb2tlbkluaXRpYWxpemVyKHRva2VuKTtcbiAgICAgIHJldHVybiBpbml0RnVuYyhcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCA0KSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lLCBkZWNpbWFsUGxhY2VzXG4gICAgICAgIG9iamVjdElkLFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQpIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcblxuICAgIGNhc2UgJ3ZldCc6XG4gICAgICBjb25zdCB7IHZldEluaXRGdW5jLCB2ZXRPYmplY3RJZCwgaXNORlQgfSA9IGdldFZldFRva2VuSW5pdGlhbGl6ZXIodG9rZW4pO1xuICAgICAgaWYgKGlzTkZUKSB7XG4gICAgICAgIHJldHVybiB2ZXRJbml0RnVuYyhcbiAgICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDMpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWVcbiAgICAgICAgICB2ZXRPYmplY3RJZCxcbiAgICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQpIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHZldEluaXRGdW5jKFxuICAgICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgNCksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlc1xuICAgICAgICAgIHZldE9iamVjdElkLFxuICAgICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNCkgLy8gYXNzZXQsIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeCwgbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICBjYXNlICdzdHgnOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDQpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXNcbiAgICAgICAgdG9rZW4uYXNzZXRJZCwgLy8gYXNzZXRJZFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQpIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcblxuICAgIGNhc2UgJ2FsZ28nOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDIpLCAvLyBpZCwgbmFtZVxuICAgICAgICB0b2tlbi5hbGlhcywgLy8gYWxpYXNcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgyKSAvLyBmdWxsTmFtZSwgZGVjaW1hbCwgYXNzZXQsIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeCwgbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICApO1xuXG4gICAgY2FzZSAnZW9zJzpcbiAgICAgIHJldHVybiBpbml0aWFsaXplcihcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCA0KSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lLCBkZWNpbWFsUGxhY2VzXG4gICAgICAgIHRva2VuLmNvbnRyYWN0TmFtZSwgLy8gY29udHJhY3ROYW1lXG4gICAgICAgIHRva2VuLmNvbnRyYWN0QWRkcmVzcywgLy8gY29udHJhY3RBZGRyZXNzXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNCwgOCksIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXhcbiAgICAgICAgdG9rZW4uc3ltYm9sLCAvLyBzeW1ib2xcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg4KSAvLyBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG5cbiAgICBjYXNlICdoYmFyJzpcbiAgICAgIHJldHVybiBpbml0aWFsaXplcihcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCAzKSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lXG4gICAgICAgIHRva2VuLm5ldHdvcmssIC8vIG5ldHdvcmtcbiAgICAgICAgdG9rZW4uZGVjaW1hbFBsYWNlcyxcbiAgICAgICAgdG9rZW4uYXNzZXQsXG4gICAgICAgIHRva2VuLmNvbnRyYWN0QWRkcmVzcywgLy8gY29udHJhY3RBZGRyZXNzXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNSwgOCksIC8vIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeFxuICAgICAgICB0b2tlbi5wcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG5cbiAgICBjYXNlICdzb2wnOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDQpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXNcbiAgICAgICAgdG9rZW4udG9rZW5BZGRyZXNzLCAvLyB0b2tlbkFkZHJlc3NcbiAgICAgICAgdG9rZW4uY29udHJhY3RBZGRyZXNzLCAvLyBjb250cmFjdEFkZHJlc3NcbiAgICAgICAgdG9rZW4uYXNzZXQsXG4gICAgICAgIHRva2VuLmZlYXR1cmVzLFxuICAgICAgICB0b2tlbi5wcm9ncmFtSWQsXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNikgLy8gcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcblxuICAgIGNhc2UgJ3N1aSc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgNCksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlc1xuICAgICAgICB0b2tlbi5wYWNrYWdlSWQsIC8vIHBhY2thZ2VJZFxuICAgICAgICB0b2tlbi5tb2R1bGUsIC8vIG1vZHVsZVxuICAgICAgICB0b2tlbi5zeW1ib2wsIC8vIHN5bWJvbFxuICAgICAgICB0b2tlbi5jb250cmFjdEFkZHJlc3MsIC8vIGNvbnRyYWN0QWRkcmVzc1xuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQpIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcblxuICAgIGNhc2UgJ3Rhbyc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgNCksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlc1xuICAgICAgICB0b2tlbi5zdWJuZXRJZCwgLy8gc3VibmV0SWRcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg0KSAvLyBhc3NldCwgZmVhdHVyZXMsIHByZWZpeCwgc3VmZml4LCBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG4gICAgY2FzZSAncG9seXgnOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDQpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXNcbiAgICAgICAgdG9rZW4udGlja2VyLCAvLyB0aWNrZXJcbiAgICAgICAgdG9rZW4uYXNzZXRJZCwgLy8gYXNzZXRJZFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQpIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcblxuICAgIGNhc2UgJ3hsbSc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgNSksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlcywgYXNzZXRcbiAgICAgICAgdG9rZW4uZG9tYWluLCAvLyBkb21haW5cbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg1KSAvLyBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcblxuICAgIGNhc2UgJ3hycCc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgNCksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlc1xuICAgICAgICB0b2tlbi5pc3N1ZXJBZGRyZXNzLCAvLyBpc3N1ZXJBZGRyZXNzXG4gICAgICAgIHRva2VuLmN1cnJlY255Y29kZSwgLy8gY3VycmVuY3lDb2RlXG4gICAgICAgIHRva2VuLmNvbnRyYWN0QWRkcmVzcywgLy8gY29udHJhY3RBZGRyZXNzXG4gICAgICAgIHRva2VuLmRvbWFpbiwgLy8gZG9tYWluXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNCkgLy8gYXNzZXQsIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeCwgbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICApO1xuICAgIGNhc2UgJ29mYyc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3MsIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlcywgYXNzZXQsIHByZWZpeCwgc3VmZml4LCBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICAgdG9rZW4uYmFzZVVuaXQsIC8vIGJhc2VVbml0XG4gICAgICAgIHRva2VuLmlzVG9rZW4sIC8vIGlzVG9rZW5cbiAgICAgICAgdG9rZW4ua2luZCwgLy8ga2luZFxuICAgICAgICB0b2tlbi5hZGRyZXNzQ29pbiAvLyBhZGRyZXNzQ29pblxuICAgICAgKTtcbiAgICBjYXNlICdhc2knOlxuICAgIGNhc2UgJ2F0b20nOlxuICAgIGNhc2UgJ2JhYnknOlxuICAgIGNhc2UgJ2JsZCc6XG4gICAgY2FzZSAnY29yZXVtJzpcbiAgICBjYXNlICdjcm9ub3MnOlxuICAgIGNhc2UgJ2hhc2gnOlxuICAgIGNhc2UgJ2luamVjdGl2ZSc6XG4gICAgY2FzZSAnaW5pdGlhJzpcbiAgICBjYXNlICdvc21vJzpcbiAgICBjYXNlICd0aG9yJzpcbiAgICBjYXNlICdzZWknOlxuICAgIGNhc2UgJ3RpYSc6XG4gICAgY2FzZSAnemV0YSc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgMyksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZVxuICAgICAgICB0b2tlbi5kZW5vbSwgLy8gZGVub21cbiAgICAgICAgdG9rZW4uZGVjaW1hbFBsYWNlcywgLy8gZGVjaW1hbFBsYWNlc1xuICAgICAgICB0b2tlbi5uZXR3b3JrLCAvLyBuZXR3b3JrXG4gICAgICAgIHRva2VuLmJhc2VVbml0LCAvLyBiYXNlVW5pdFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQsIDgpLCAvLyBhc3NldCwgZmVhdHVyZXMsIHByZWZpeCwgc3VmZml4XG4gICAgICAgIHRva2VuLnByaW1hcnlLZXlDdXJ2ZSAvLyBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG4gICAgY2FzZSAnYWRhJzpcbiAgICAgIHJldHVybiBpbml0aWFsaXplcihcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCA0KSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lLCBkZWNpbWFsUGxhY2VzXG4gICAgICAgIHRva2VuLmFzc2V0TmFtZSxcbiAgICAgICAgdG9rZW4ucG9saWN5SWQsXG4gICAgICAgIHRva2VuLmNvbnRyYWN0QWRkcmVzcyxcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg0KSAvLyBhc3NldCwgZmVhdHVyZXMsIHByZWZpeCwgc3VmZml4LCBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG4gICAgY2FzZSAndG9uJzpcbiAgICAgIHJldHVybiBpbml0aWFsaXplcihcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCA0KSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lLCBkZWNpbWFsUGxhY2VzXG4gICAgICAgIHRva2VuLmNvbnRyYWN0QWRkcmVzcywgLy8gY29udHJhY3RBZGRyZXNzXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNCkgLy8gYXNzZXQsIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeCwgbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICApO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbi8qKlxuICogQnVpbGQgYSByZWFsIER5bmFtaWNDb2luICsgRHluYW1pY05ldHdvcmsgaW5zdGFuY2UgZm9yIEFNUy1kaXNjb3ZlcmVkIGJhc2UgY2hhaW5zXG4gKiB3aG9zZSBmYW1pbHkgaXMgbm90IHlldCByZWdpc3RlcmVkIGluIHRoZSBTREsncyBpbml0aWFsaXplck1hcC5cbiAqIENhbGxlZCBmcm9tIGNyZWF0ZVRva2VuKCkgYXMgYSBmYWxsYmFjayB3aGVuIG5vIGluaXRpYWxpemVyIGV4aXN0cyBhbmQgaXNUb2tlbiBpcyBmYWxzZS5cbiAqL1xuZnVuY3Rpb24gYnVpbGREeW5hbWljQ29pbih0b2tlbjogQW1zVG9rZW5Db25maWcpOiBSZWFkb25seTxCYXNlQ29pbj4ge1xuICBjb25zdCBuZXR3b3JrID0gdG9rZW4ubmV0d29yayBpbnN0YW5jZW9mIEJhc2VOZXR3b3JrID8gdG9rZW4ubmV0d29yayA6IGdldE5ldHdvcmsodG9rZW4ubmV0d29yayBhcyBzdHJpbmcpO1xuXG4gIHJldHVybiBPYmplY3QuZnJlZXplKFxuICAgIG5ldyBEeW5hbWljQ29pbih7XG4gICAgICBpZDogdG9rZW4uaWQsXG4gICAgICBuYW1lOiB0b2tlbi5uYW1lLFxuICAgICAgZnVsbE5hbWU6IHRva2VuLmZ1bGxOYW1lLFxuICAgICAgZGVjaW1hbFBsYWNlczogdG9rZW4uZGVjaW1hbFBsYWNlcyxcbiAgICAgIGFzc2V0OiB0b2tlbi5hc3NldCBhcyBzdHJpbmcsXG4gICAgICBpc1Rva2VuOiB0b2tlbi5pc1Rva2VuLFxuICAgICAgZmVhdHVyZXM6ICh0b2tlbi5mZWF0dXJlcyA/PyBbXSkgYXMgc3RyaW5nW10sXG4gICAgICBuZXR3b3JrLFxuICAgICAgcHJpbWFyeUtleUN1cnZlOiAodG9rZW4ucHJpbWFyeUtleUN1cnZlIGFzIHN0cmluZykgPz8gJ3NlY3AyNTZrMScsXG4gICAgICBwcmVmaXg6IHRva2VuLnByZWZpeCA/PyAnJyxcbiAgICAgIHN1ZmZpeDogdG9rZW4uc3VmZml4ID8/IHRva2VuLm5hbWUudG9VcHBlckNhc2UoKSxcbiAgICAgIGJhc2VVbml0OiAodG9rZW4uYmFzZVVuaXQgYXMgc3RyaW5nKSA/PyAnJyxcbiAgICAgIGtpbmQ6ICh0b2tlbi5raW5kIGFzIHN0cmluZykgPz8gJ2NyeXB0bycsXG4gICAgICBhbGlhczogdG9rZW4uYWxpYXMsXG4gICAgfSlcbiAgKTtcbn1cblxuZnVuY3Rpb24gZ2V0QXB0VG9rZW5Jbml0aWFsaXplcih0b2tlbjogQW1zVG9rZW5Db25maWcpIHtcbiAgaWYgKHRva2VuLmFzc2V0SWQpIHtcbiAgICAvLyB1c2VkIGZvciBmdW5naWJsZS1hc3NldHMgLyBsZWdhY3kgY29pbnMgZXRjLlxuICAgIHJldHVybiB7XG4gICAgICBpbml0RnVuYzogYXB0VG9rZW4gYXMgKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gUmVhZG9ubHk8QmFzZUNvaW4+LFxuICAgICAgb2JqZWN0SWQ6IHRva2VuLmFzc2V0SWQsXG4gICAgfTtcbiAgfVxuICAvLyB1c2VkIGZvciBub24tZnVuZ2libGUgdG9rZW4gKE5GVCkgY29sbGVjdGlvbnNcbiAgcmV0dXJuIHtcbiAgICBpbml0RnVuYzogYXB0TkZUQ29sbGVjdGlvbiBhcyAoLi4uYXJnczogdW5rbm93bltdKSA9PiBSZWFkb25seTxCYXNlQ29pbj4sXG4gICAgb2JqZWN0SWQ6IHRva2VuLm5mdENvbGxlY3Rpb25JZCxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0VmV0VG9rZW5Jbml0aWFsaXplcih0b2tlbjogQW1zVG9rZW5Db25maWcpIHtcbiAgaWYgKHRva2VuLm5mdENvbGxlY3Rpb25JZCkge1xuICAgIHJldHVybiB7XG4gICAgICB2ZXRJbml0RnVuYzogdmV0TkZUQ29sbGVjdGlvbiBhcyAoLi4uYXJnczogdW5rbm93bltdKSA9PiBSZWFkb25seTxCYXNlQ29pbj4sXG4gICAgICB2ZXRPYmplY3RJZDogdG9rZW4ubmZ0Q29sbGVjdGlvbklkLFxuICAgICAgaXNORlQ6IHRydWUsXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdmV0SW5pdEZ1bmM6IHZldFRva2VuIGFzICguLi5hcmdzOiB1bmtub3duW10pID0+IFJlYWRvbmx5PEJhc2VDb2luPixcbiAgICB2ZXRPYmplY3RJZDogdG9rZW4uY29udHJhY3RBZGRyZXNzLFxuICAgIGlzTkZUOiBmYWxzZSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29pblByZXNlbnRJbkNvaW5NYXAoeyBuYW1lLCBpZCwgYWxpYXMgfTogeyBuYW1lOiBzdHJpbmc7IGlkPzogc3RyaW5nOyBhbGlhcz86IHN0cmluZyB9KTogYm9vbGVhbiB7XG4gIHJldHVybiBCb29sZWFuKGNvaW5zLmhhcyhuYW1lKSB8fCAoaWQgJiYgY29pbnMuaGFzKGlkKSkgfHwgKGFsaWFzICYmIGNvaW5zLmhhcyhhbGlhcykpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRva2VuTWFwVXNpbmdDb25maWdEZXRhaWxzKHRva2VuQ29uZmlnTWFwOiBSZWNvcmQ8c3RyaW5nLCBBbXNUb2tlbkNvbmZpZ1tdPik6IENvaW5NYXAge1xuICBjb25zdCBCYXNlQ29pbnM6IE1hcDxzdHJpbmcsIFJlYWRvbmx5PEJhc2VDb2luPj4gPSBuZXcgTWFwKCk7XG5cbiAgY29uc3QgbmZ0QW5kT3RoZXJUb2tlbnMgPSBuZXcgU2V0KFtcbiAgICAnZXJjNzIxOmJzY3Rva2VuJyxcbiAgICAndGVyYzcyMTpic2N0b2tlbicsXG4gICAgJ2VyYzExNTU6YnNjdG9rZW4nLFxuICAgICd0ZXJjMTE1NTpic2N0b2tlbicsXG4gICAgJ2VyYzcyMTp3aXRjaCcsXG4gICAgJ2VyYzcyMTp0b2tlbicsXG4gICAgJ2VyYzExNTU6dG9rZW4nLFxuICAgICdub25zdGFuZGFyZDp0b2tlbicsXG4gICAgJ3RlcmM3MjE6dG9rZW4nLFxuICAgICd0ZXJjMTE1NTp0b2tlbicsXG4gICAgJ3Rub25zdGFuZGFyZDp0b2tlbicsXG4gICAgJ3RlcmM3MjE6Yml0Z29lcmM3MjEnLFxuICAgICd0ZXJjMTE1NTpiaXRnb2VyYzExNTUnLFxuICAgICd0ZXJjNzIxOmhvb2RpZGonLFxuICAgICdlcmM3MjE6cG9seWdvbnRva2VuJyxcbiAgICAnZXJjMTE1NTpwb2x5Z29udG9rZW4nLFxuICAgICd0ZXJjNzIxOnBvbHlnb250b2tlbicsXG4gICAgJ3RlcmMxMTU1OnBvbHlnb250b2tlbicsXG4gICAgJ2VyYzcyMTpzb25laXVtdG9rZW4nLFxuICAgICdlcmMxMTU1OnNvbmVpdW10b2tlbicsXG4gICAgJ3RlcmM3MjE6c29uZWl1bXRva2VuJyxcbiAgICAndGVyYzExNTU6c29uZWl1bXRva2VuJyxcbiAgXSk7XG5cbiAgLy8gQWRkIGFsbCB0aGUgY29pbnMgZnJvbSBzdGF0aWNzIGNvaW4gbWFwIGZpcnN0XG4gIGNvaW5zLmZvckVhY2goKGNvaW4sIGNvaW5OYW1lKSA9PiB7XG4gICAgQmFzZUNvaW5zLnNldChjb2luTmFtZSwgY29pbik7XG4gIH0pO1xuXG4gIC8vIGFkZCB0aGUgdG9rZW5zIG5vdCBwcmVzZW50IGluIHRoZSBzdGF0aWMgY29pbiBtYXBcbiAgZm9yIChjb25zdCB0b2tlbkNvbmZpZ3Mgb2YgT2JqZWN0LnZhbHVlcyh0b2tlbkNvbmZpZ01hcCkpIHtcbiAgICBjb25zdCB0b2tlbkNvbmZpZyA9IHRva2VuQ29uZmlnc1swXTtcblxuICAgIGlmICghaXNDb2luUHJlc2VudEluQ29pbk1hcCh7IC4uLnRva2VuQ29uZmlnIH0pICYmICFuZnRBbmRPdGhlclRva2Vucy5oYXModG9rZW5Db25maWcubmFtZSkpIHtcbiAgICAgIGNvbnN0IHRva2VuID0gY3JlYXRlVG9rZW4odG9rZW5Db25maWcpO1xuICAgICAgaWYgKHRva2VuKSB7XG4gICAgICAgIEJhc2VDb2lucy5zZXQodG9rZW4ubmFtZSwgdG9rZW4pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBDb2luTWFwLmZyb21Db2lucyhBcnJheS5mcm9tKEJhc2VDb2lucy52YWx1ZXMoKSkpO1xufVxuXG4vKipcbiAqIEVucmljaCBiYXNlIGNoYWluIGNvaW5zIChpc1Rva2VuPWZhbHNlKSB3aXRoIGZlYXR1cmVzIGZyb20gdGhlIEFNUyBuZXR3b3JrcyBtYXAuXG4gKlxuICogY3JlYXRlVG9rZW5NYXBVc2luZ1RyaW1tZWRDb25maWdEZXRhaWxzIHJlYWRzIGZlYXR1cmVzIGZvciBiYXNlIGNoYWlucyBmcm9tXG4gKiBUcmltbWVkQW1zVG9rZW5Db25maWcuYWRkaXRpb25hbEZlYXR1cmVzLiBUaGUgYXNzZXRzTGlzdCBlbmRwb2ludCByZXR1cm5zIGJhc2UgY2hhaW5zIHdpdGggbm8gZmVhdHVyZXM7XG4gKiBmZWF0dXJlcyBhcmUgaW4gdGhlIG5ldHdvcmtzIGVuZHBvaW50ICgvYXBpL3YxL25ldHdvcmtzLzpuZXR3b3JrKSwgbWF0Y2hlZCBieSBjb2luLm5ldHdvcmsubmFtZSA9PT0gbmV0d29ya3NFbnRyeS5uYW1lLlxuICpcbiAqIENvaW5zIHRoYXQgYWxyZWFkeSBoYXZlIGFkZGl0aW9uYWxGZWF0dXJlcyBkZWZpbmVkIGFyZSBsZWZ0IHVuY2hhbmdlZC5cbiAqIENvaW5zIHdob3NlIG5ldHdvcmsubmFtZSBoYXMgbm8gbWF0Y2ggaW4gbmV0d29ya3NNYXAgYXJlIGxlZnQgdW5jaGFuZ2VkIChlbXB0eSBmZWF0dXJlcykuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbnJpY2hCYXNlQ2hhaW5GZWF0dXJlcyhcbiAgY29pblRva2VuTWFwOiBSZWNvcmQ8c3RyaW5nLCBUcmltbWVkQW1zVG9rZW5Db25maWdbXT4sXG4gIG5ldHdvcmtzTWFwOiBBbXNOZXR3b3JrQ29uZmlnTWFwXG4pOiBSZWNvcmQ8c3RyaW5nLCBUcmltbWVkQW1zVG9rZW5Db25maWdbXT4ge1xuICBjb25zdCBmZWF0dXJlc0J5TmV0d29ya05hbWUgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nW10+KFxuICAgIE9iamVjdC52YWx1ZXMobmV0d29ya3NNYXApLm1hcCgobmV0KTogW3N0cmluZywgc3RyaW5nW11dID0+IFtuZXQubmFtZSwgbmV0LmZlYXR1cmVzXSlcbiAgKTtcbiAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhcbiAgICBPYmplY3QuZW50cmllcyhjb2luVG9rZW5NYXApLm1hcCgoW2tleSwgY29pbnNdKSA9PiBbXG4gICAgICBrZXksXG4gICAgICBjb2lucy5tYXAoKGNvaW4pID0+IHtcbiAgICAgICAgaWYgKGNvaW4uaXNUb2tlbiB8fCBjb2luLmFkZGl0aW9uYWxGZWF0dXJlcyAhPT0gdW5kZWZpbmVkKSByZXR1cm4gY29pbjtcbiAgICAgICAgY29uc3QgZmVhdHVyZXMgPSBmZWF0dXJlc0J5TmV0d29ya05hbWUuZ2V0KGNvaW4ubmV0d29yay5uYW1lKTtcbiAgICAgICAgcmV0dXJuIGZlYXR1cmVzICE9PSB1bmRlZmluZWQgPyB7IC4uLmNvaW4sIGFkZGl0aW9uYWxGZWF0dXJlczogZmVhdHVyZXMgfSA6IGNvaW47XG4gICAgICB9KSxcbiAgICBdKVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVG9rZW5NYXBVc2luZ1RyaW1tZWRDb25maWdEZXRhaWxzKFxuICByZWR1Y2VkVG9rZW5Db25maWdNYXA6IFJlY29yZDxzdHJpbmcsIFRyaW1tZWRBbXNUb2tlbkNvbmZpZ1tdPlxuKTogQ29pbk1hcCB7XG4gIGNvbnN0IGFtc1Rva2VuQ29uZmlnTWFwOiBSZWNvcmQ8c3RyaW5nLCBBbXNUb2tlbkNvbmZpZ1tdPiA9IHt9O1xuICBjb25zdCBuZXR3b3JrTmFtZU1hcCA9IGdldE5ldHdvcmtzTWFwKCk7XG5cbiAgZm9yIChjb25zdCB0b2tlbkNvbmZpZ3Mgb2YgT2JqZWN0LnZhbHVlcyhyZWR1Y2VkVG9rZW5Db25maWdNYXApKSB7XG4gICAgY29uc3QgdG9rZW5Db25maWcgPSB0b2tlbkNvbmZpZ3NbMF07XG4gICAgY29uc3QgbmV0d29yayA9IG5ldHdvcmtOYW1lTWFwLmdldCh0b2tlbkNvbmZpZy5uZXR3b3JrLm5hbWUpO1xuXG4gICAgaWYgKGlzQ29pblByZXNlbnRJbkNvaW5NYXAoeyAuLi50b2tlbkNvbmZpZyB9KSkgY29udGludWU7XG5cbiAgICBpZiAoIXRva2VuQ29uZmlnLmlzVG9rZW4pIHtcbiAgICAgIC8vIER5bmFtaWMgYmFzZSBjaGFpbiDigJQgbmV0d29yayBtdXN0IGJlIHByZS1yZWdpc3RlcmVkIGluIG5ldHdvcmtCeU5hbWUgbWFwIGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uXG4gICAgICBpZiAobmV0d29yaykge1xuICAgICAgICBhbXNUb2tlbkNvbmZpZ01hcFt0b2tlbkNvbmZpZy5uYW1lXSA9IFtcbiAgICAgICAgICB7IC4uLnRva2VuQ29uZmlnLCBmZWF0dXJlczogdG9rZW5Db25maWcuYWRkaXRpb25hbEZlYXR1cmVzID8/IFtdLCBuZXR3b3JrIH0sXG4gICAgICAgIF07XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChuZXR3b3JrICYmIG5ldHdvcmtGZWF0dXJlTWFwRm9yVG9rZW5zW25ldHdvcmsuZmFtaWx5XSkge1xuICAgICAgY29uc3QgZmVhdHVyZXMgPSBuZXcgU2V0KFtcbiAgICAgICAgLi4uKG5ldHdvcmtGZWF0dXJlTWFwRm9yVG9rZW5zW25ldHdvcmsuZmFtaWx5XSB8fCBbXSksXG4gICAgICAgIC4uLih0b2tlbkNvbmZpZy5hZGRpdGlvbmFsRmVhdHVyZXMgfHwgW10pLFxuICAgICAgXSk7XG4gICAgICB0b2tlbkNvbmZpZy5leGNsdWRlZEZlYXR1cmVzPy5mb3JFYWNoKChmZWF0dXJlKSA9PiBmZWF0dXJlcy5kZWxldGUoZmVhdHVyZSkpO1xuICAgICAgYW1zVG9rZW5Db25maWdNYXBbdG9rZW5Db25maWcubmFtZV0gPSBbeyAuLi50b2tlbkNvbmZpZywgZmVhdHVyZXM6IEFycmF5LmZyb20oZmVhdHVyZXMpLCBuZXR3b3JrIH1dO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjcmVhdGVUb2tlbk1hcFVzaW5nQ29uZmlnRGV0YWlscyhhbXNUb2tlbkNvbmZpZ01hcCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUb2tlblVzaW5nVHJpbW1lZENvbmZpZ0RldGFpbHMoXG4gIHRva2VuQ29uZmlnOiBUcmltbWVkQW1zVG9rZW5Db25maWdcbik6IFJlYWRvbmx5PEJhc2VDb2luPiB8IHVuZGVmaW5lZCB7XG4gIGxldCBmdWxsVG9rZW5Db25maWc6IEFtc1Rva2VuQ29uZmlnIHwgdW5kZWZpbmVkO1xuICBjb25zdCBuZXR3b3JrTmFtZU1hcCA9IGdldE5ldHdvcmtzTWFwKCk7XG4gIGNvbnN0IG5ldHdvcmsgPSBuZXR3b3JrTmFtZU1hcC5nZXQodG9rZW5Db25maWcubmV0d29yay5uYW1lKTtcblxuICBpZiAoaXNDb2luUHJlc2VudEluQ29pbk1hcCh7IC4uLnRva2VuQ29uZmlnIH0pKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gIGlmICghdG9rZW5Db25maWcuaXNUb2tlbikge1xuICAgIC8vIER5bmFtaWMgYmFzZSBjaGFpbiDigJQgbmV0d29yayBtdXN0IGJlIHByZS1yZWdpc3RlcmVkIGluIG5ldHdvcmtCeU5hbWUgbWFwIGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uXG4gICAgaWYgKG5ldHdvcmspIHtcbiAgICAgIHJldHVybiBjcmVhdGVUb2tlbih7IC4uLnRva2VuQ29uZmlnLCBmZWF0dXJlczogdG9rZW5Db25maWcuYWRkaXRpb25hbEZlYXR1cmVzID8/IFtdLCBuZXR3b3JrIH0gYXMgQW1zVG9rZW5Db25maWcpO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgaWYgKG5ldHdvcmsgJiYgbmV0d29ya0ZlYXR1cmVNYXBGb3JUb2tlbnNbbmV0d29yay5mYW1pbHldKSB7XG4gICAgY29uc3QgZmVhdHVyZXMgPSBuZXcgU2V0KFtcbiAgICAgIC4uLihuZXR3b3JrRmVhdHVyZU1hcEZvclRva2Vuc1tuZXR3b3JrLmZhbWlseV0gfHwgW10pLFxuICAgICAgLi4uKHRva2VuQ29uZmlnLmFkZGl0aW9uYWxGZWF0dXJlcyB8fCBbXSksXG4gICAgXSk7XG4gICAgdG9rZW5Db25maWcuZXhjbHVkZWRGZWF0dXJlcz8uZm9yRWFjaCgoZmVhdHVyZSkgPT4gZmVhdHVyZXMuZGVsZXRlKGZlYXR1cmUpKTtcbiAgICBmdWxsVG9rZW5Db25maWcgPSB7IC4uLnRva2VuQ29uZmlnLCBmZWF0dXJlczogQXJyYXkuZnJvbShmZWF0dXJlcyksIG5ldHdvcmsgfSBhcyBBbXNUb2tlbkNvbmZpZztcbiAgICByZXR1cm4gY3JlYXRlVG9rZW4oZnVsbFRva2VuQ29uZmlnKTtcbiAgfVxufVxuIl19
443
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29pbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29pbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBMkVBLGtDQTZSQztBQTZERCx3REFFQztBQUVELDRFQThDQztBQVlELDBEQWlCQztBQUVELDBGQThCQztBQUVELG9GQTBCQztBQWhqQkQsdUNBOEJtQjtBQUNuQiwrQkFBaUM7QUFDakMsaUNBQTREO0FBRTVELCtCQUFnQztBQUNoQyx5Q0FBa0Y7QUFDbEYsNkVBQTBFO0FBQzFFLHlEQUFzRTtBQUN0RSwrQ0FBNEM7QUFDNUMsMkRBQXdEO0FBQ3hELHVEQUFvRDtBQUV2QyxRQUFBLEtBQUssR0FBRyxhQUFPLENBQUMsU0FBUyxDQUFDO0lBQ3JDLEdBQUcscUNBQWlCO0lBQ3BCLEdBQUcsNkJBQWE7SUFDaEIsR0FBRyw4QkFBYztJQUNqQixHQUFHLG1CQUFRO0lBQ1gsR0FBRywyQkFBWTtDQUNoQixDQUFDLENBQUM7QUFFSCxpRkFBaUY7QUFDakYsZ0RBQWdEO0FBQ2hELE1BQU0sbUJBQW1CLEdBQTJCLEVBQUUsQ0FBQztBQUV2RCxxQ0FBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtJQUNqQyxJQUNFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGtCQUFXLENBQUMsY0FBYyxDQUFDO1FBQ2xELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLHNCQUFXLENBQUMsT0FBTztRQUN6QyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQ2IsQ0FBQztRQUNELG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQy9DLENBQUM7QUFDSCxDQUFDLENBQUMsQ0FBQztBQUVILE1BQU0sb0JBQW9CLEdBQTJCLEVBQUUsQ0FBQztBQUN4RCxxQ0FBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtJQUNqQyxJQUNFLElBQUks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RUFBRSxRQUFRLEVBQUUsV0FBVyxDQUFDLGtCQUFrQixJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQW9CLENBQUMsQ0FBQztRQUNwSCxDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELElBQUksT0FBTyxJQUFJLHVEQUEwQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQzFELE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxDQUFDO1lBQ3ZCLEdBQUcsQ0FBQyx1REFBMEIsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3JELEdBQUcsQ0FBQyxXQUFXLENBQUMsa0JBQWtCLElBQUksRUFBRSxDQUFDO1NBQzFDLENBQUMsQ0FBQztRQUNILFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUM3RSxlQUFlLEdBQUcsRUFBRSxHQUFHLFdBQVcsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxPQUFPLEVBQW9CLENBQUM7UUFDaEcsT0FBTyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdEMsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBhbGdvVG9rZW4sXG4gIGFwdE5GVENvbGxlY3Rpb24sXG4gIGFwdFRva2VuLFxuICBhcmJldGhFcmMyMCxcbiAgYXZheEVyYzIwLFxuICBiZXJhRXJjMjAsXG4gIGJzY1Rva2VuLFxuICBjZWxvVG9rZW4sXG4gIGNvc21vc1Rva2VuLFxuICBlb3NUb2tlbixcbiAgZXJjMjAsXG4gIGhlZGVyYVRva2VuLFxuICBqZXR0b25Ub2tlbixcbiAgbmVwMTQxVG9rZW4sXG4gIG9wZXRoRXJjMjAsXG4gIHBvbHlnb25FcmMyMCxcbiAgcG9seXhUb2tlbixcbiAgc2lwMTBUb2tlbixcbiAgc29sVG9rZW4sXG4gIHN0ZWxsYXJUb2tlbixcbiAgc3VpVG9rZW4sXG4gIHRhb1Rva2VuLFxuICB0cm9uVG9rZW4sXG4gIHZldE5GVENvbGxlY3Rpb24sXG4gIHZldFRva2VuLFxuICB4cnBUb2tlbixcbiAgYWRhVG9rZW4sXG4gIGVyYzIwVG9rZW4sXG4gIGVyYzcyMVRva2VuLFxufSBmcm9tICcuL2FjY291bnQnO1xuaW1wb3J0IHsgb2ZjVG9rZW4gfSBmcm9tICcuL29mYyc7XG5pbXBvcnQgeyBCYXNlQ29pbiwgQ29pbkZlYXR1cmUsIER5bmFtaWNDb2luIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IEFtc05ldHdvcmtDb25maWdNYXAsIEFtc1Rva2VuQ29uZmlnLCBUcmltbWVkQW1zVG9rZW5Db25maWcgfSBmcm9tICcuL3Rva2VuQ29uZmlnJztcbmltcG9ydCB7IENvaW5NYXAgfSBmcm9tICcuL21hcCc7XG5pbXBvcnQgeyBCYXNlTmV0d29yaywgZ2V0TmV0d29yaywgZ2V0TmV0d29ya3NNYXAsIE5ldHdvcmtUeXBlIH0gZnJvbSAnLi9uZXR3b3Jrcyc7XG5pbXBvcnQgeyBuZXR3b3JrRmVhdHVyZU1hcEZvclRva2VucyB9IGZyb20gJy4vbmV0d29ya0ZlYXR1cmVNYXBGb3JUb2tlbnMnO1xuaW1wb3J0IHsgb2ZjRXJjMjBDb2lucywgdE9mY0VyYzIwQ29pbnMgfSBmcm9tICcuL2NvaW5zL29mY0VyYzIwQ29pbnMnO1xuaW1wb3J0IHsgb2ZjQ29pbnMgfSBmcm9tICcuL2NvaW5zL29mY0NvaW5zJztcbmltcG9ydCB7IGFsbENvaW5zQW5kVG9rZW5zIH0gZnJvbSAnLi9hbGxDb2luc0FuZFRva2Vucyc7XG5pbXBvcnQgeyBib3RPZmNUb2tlbnMgfSBmcm9tICcuL2NvaW5zL2JvdE9mY1Rva2Vucyc7XG5cbmV4cG9ydCBjb25zdCBjb2lucyA9IENvaW5NYXAuZnJvbUNvaW5zKFtcbiAgLi4uYWxsQ29pbnNBbmRUb2tlbnMsXG4gIC4uLm9mY0VyYzIwQ29pbnMsXG4gIC4uLnRPZmNFcmMyMENvaW5zLFxuICAuLi5vZmNDb2lucyxcbiAgLi4uYm90T2ZjVG9rZW5zLFxuXSk7XG5cbi8vIEJ1aWxkIGEgbWFwIG9mIEVSQzIwLXN1cHBvcnRpbmcgY2hhaW4gZmFtaWx5IG5hbWVzIHRvIHRoZWlyIG1haW5uZXQgY29pbiBuYW1lc1xuLy8gTWFwcyBmYW1pbHkgLT4gY29pbiBuYW1lIChlLmcuLCAnaXAnIC0+ICdpcCcpXG5jb25zdCBlcmMyMENoYWluVG9OYW1lTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cbmFsbENvaW5zQW5kVG9rZW5zLmZvckVhY2goKGNvaW4pID0+IHtcbiAgaWYgKFxuICAgIGNvaW4uZmVhdHVyZXMuaW5jbHVkZXMoQ29pbkZlYXR1cmUuU1VQUE9SVFNfRVJDMjApICYmXG4gICAgY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgJiZcbiAgICAhY29pbi5pc1Rva2VuXG4gICkge1xuICAgIGVyYzIwQ2hhaW5Ub05hbWVNYXBbY29pbi5mYW1pbHldID0gY29pbi5uYW1lO1xuICB9XG59KTtcblxuY29uc3QgZXJjNzIxQ2hhaW5Ub05hbWVNYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbmFsbENvaW5zQW5kVG9rZW5zLmZvckVhY2goKGNvaW4pID0+IHtcbiAgaWYgKFxuICAgIGNvaW4uZmVhdHVyZXMuaW5jbHVkZXMoQ29pbkZlYXR1cmUuU1VQUE9SVFNfRVJDNzIxKSAmJlxuICAgIGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUICYmXG4gICAgIWNvaW4uaXNUb2tlblxuICApIHtcbiAgICBlcmM3MjFDaGFpblRvTmFtZU1hcFtjb2luLmZhbWlseV0gPSBjb2luLm5hbWU7XG4gIH1cbn0pO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVG9rZW4odG9rZW46IEFtc1Rva2VuQ29uZmlnKTogUmVhZG9ubHk8QmFzZUNvaW4+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKCF0b2tlbi5pc1Rva2VuKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBidWlsZER5bmFtaWNDb2luKHRva2VuKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS53YXJuKGBGYWlsZWQgdG8gYnVpbGQgZHluYW1pYyBjb2luIGZvciAke3Rva2VuLm5hbWV9ICgke3Rva2VuLmlkfSk6YCwgZXJyb3IpO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cbiAgY29uc3QgaW5pdGlhbGl6ZXJNYXA6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgIGFsZ286IGFsZ29Ub2tlbixcbiAgICBhcHQ6IGFwdFRva2VuLFxuICAgIGFyYmV0aDogYXJiZXRoRXJjMjAsXG4gICAgYXZheGM6IGF2YXhFcmMyMCxcbiAgICBiYXNlZXRoOiBlcmMyMFRva2VuLFxuICAgIGJlcmE6IGJlcmFFcmMyMCxcbiAgICBmbG93OiBlcmMyMFRva2VuLFxuICAgIGxpbmVhZXRoOiBlcmMyMFRva2VuLFxuICAgIHNlaWV2bTogZXJjMjBUb2tlbixcbiAgICBtb246IGVyYzIwVG9rZW4sXG4gICAgeGRjOiBlcmMyMFRva2VuLFxuICAgIGJzYzogYnNjVG9rZW4sXG4gICAgY2VsbzogY2Vsb1Rva2VuLFxuICAgIGNvc21vczogY29zbW9zVG9rZW4sXG4gICAgZXRoOiBlcmMyMCxcbiAgICBlb3M6IGVvc1Rva2VuLFxuICAgIGhiYXI6IGhlZGVyYVRva2VuLFxuICAgIG5lYXI6IG5lcDE0MVRva2VuLFxuICAgIG9wZXRoOiBvcGV0aEVyYzIwLFxuICAgIHBvbHlnb246IHBvbHlnb25FcmMyMCxcbiAgICBzb2w6IHNvbFRva2VuLFxuICAgIHN0eDogc2lwMTBUb2tlbixcbiAgICBzdWk6IHN1aVRva2VuLFxuICAgIHRhbzogdGFvVG9rZW4sXG4gICAgcG9seXg6IHBvbHl4VG9rZW4sXG4gICAgdHJ4OiB0cm9uVG9rZW4sXG4gICAgdmV0OiB2ZXRUb2tlbixcbiAgICB4bG06IHN0ZWxsYXJUb2tlbixcbiAgICB4cnA6IHhycFRva2VuLFxuICAgIG9mYzogb2ZjVG9rZW4sXG4gICAgYWRhOiBhZGFUb2tlbixcbiAgICB0b246IGpldHRvblRva2VuLFxuICB9O1xuXG4gIC8vIGR5bmFtaWNhbGx5IGFkZCBlcmMyMCB0b2tlbiBpbml0aWFsaXplcnMgZm9yIGV0aCBsaWtlIGNoYWlucyB0byB0aGUgaW5pdGlhbGl6ZXIgbWFwXG4gIE9iamVjdC5rZXlzKGVyYzIwQ2hhaW5Ub05hbWVNYXApLmZvckVhY2goKGtleSkgPT4ge1xuICAgIGluaXRpYWxpemVyTWFwW2tleV0gPSBlcmMyMFRva2VuO1xuICB9KTtcblxuICBPYmplY3Qua2V5cyhlcmM3MjFDaGFpblRvTmFtZU1hcCkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgaW5pdGlhbGl6ZXJNYXBba2V5XSA9IGVyYzcyMVRva2VuO1xuICB9KTtcblxuICAvL3JldHVybiB0aGUgQmFzZUNvaW4gZnJvbSBkZWZhdWx0IGNvaW4gbWFwIGlmIHByZXNlbnRcbiAgaWYgKGlzQ29pblByZXNlbnRJbkNvaW5NYXAoeyAuLi50b2tlbiB9KSkge1xuICAgIGlmIChjb2lucy5oYXModG9rZW4ubmFtZSkpIHtcbiAgICAgIHJldHVybiBjb2lucy5nZXQodG9rZW4ubmFtZSk7XG4gICAgfVxuICAgIGlmIChjb2lucy5oYXModG9rZW4uaWQpKSB7XG4gICAgICByZXR1cm4gY29pbnMuZ2V0KHRva2VuLmlkKTtcbiAgICB9XG4gICAgaWYgKHRva2VuLmFsaWFzICYmIGNvaW5zLmhhcyh0b2tlbi5hbGlhcykpIHtcbiAgICAgIHJldHVybiBjb2lucy5nZXQodG9rZW4uYWxpYXMpO1xuICAgIH1cbiAgfVxuICBjb25zdCBmYW1pbHkgPSB0b2tlbi5mYW1pbHk7XG4gIGNvbnN0IGluaXRpYWxpemVyID0gaW5pdGlhbGl6ZXJNYXBbZmFtaWx5XSBhcyAoLi4uYXJnczogdW5rbm93bltdKSA9PiBSZWFkb25seTxCYXNlQ29pbj47XG4gIGlmICghaW5pdGlhbGl6ZXIpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgY29tbW9uQXJncyA9IFtcbiAgICB0b2tlbi5pZCxcbiAgICB0b2tlbi5uYW1lLFxuICAgIHRva2VuLmZ1bGxOYW1lLFxuICAgIHRva2VuLmRlY2ltYWxQbGFjZXMsXG4gICAgdG9rZW4uYXNzZXQsXG4gICAgdG9rZW4uZmVhdHVyZXMsXG4gICAgdG9rZW4ucHJlZml4LFxuICAgIHRva2VuLnN1ZmZpeCxcbiAgICB0b2tlbi5uZXR3b3JrLFxuICAgIHRva2VuLnByaW1hcnlLZXlDdXJ2ZSxcbiAgXTtcblxuICBzd2l0Y2ggKGZhbWlseSkge1xuICAgIGNhc2UgZXJjMjBDaGFpblRvTmFtZU1hcFtmYW1pbHldOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDQpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXNcbiAgICAgICAgdG9rZW4uY29udHJhY3RBZGRyZXNzIHx8IHRva2VuLnRva2VuQWRkcmVzcywgLy8gY29udHJhY3RBZGRyZXNzXG4gICAgICAgIHRva2VuLmFzc2V0LFxuICAgICAgICB0b2tlbi5uZXR3b3JrLFxuICAgICAgICB0b2tlbi5mZWF0dXJlcyxcbiAgICAgICAgdG9rZW4ucHJlZml4LFxuICAgICAgICB0b2tlbi5zdWZmaXgsXG4gICAgICAgIHRva2VuLnByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcbiAgICBjYXNlIGVyYzcyMUNoYWluVG9OYW1lTWFwW2ZhbWlseV06XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgMyksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZVxuICAgICAgICB0b2tlbi5jb250cmFjdEFkZHJlc3MsIC8vIGNvbnRyYWN0QWRkcmVzc1xuICAgICAgICB0b2tlbi5uZXR3b3JrLFxuICAgICAgICB0b2tlbi5mZWF0dXJlcyxcbiAgICAgICAgdG9rZW4ucHJlZml4LFxuICAgICAgICB0b2tlbi5zdWZmaXgsXG4gICAgICAgIHRva2VuLnByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcbiAgICBjYXNlICdhcmJldGgnOlxuICAgIGNhc2UgJ2F2YXhjJzpcbiAgICBjYXNlICdiYXNlZXRoJzpcbiAgICBjYXNlICdiZXJhJzpcbiAgICBjYXNlICdic2MnOlxuICAgIGNhc2UgJ2Zsb3cnOlxuICAgIGNhc2UgJ2xpbmVhZXRoJzpcbiAgICBjYXNlICdzZWlldm0nOlxuICAgIGNhc2UgJ21vbic6XG4gICAgY2FzZSAneGRjJzpcbiAgICBjYXNlICdjZWxvJzpcbiAgICBjYXNlICdldGgnOlxuICAgIGNhc2UgJ29wZXRoJzpcbiAgICBjYXNlICdwb2x5Z29uJzpcbiAgICBjYXNlICd0cngnOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDQpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXNcbiAgICAgICAgdG9rZW4uY29udHJhY3RBZGRyZXNzIHx8IHRva2VuLnRva2VuQWRkcmVzcywgLy8gY29udHJhY3RBZGRyZXNzXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNCkgLy8gYXNzZXQsIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeCwgbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICApO1xuXG4gICAgY2FzZSAnYXB0JzpcbiAgICAgIGNvbnN0IHsgaW5pdEZ1bmMsIG9iamVjdElkIH0gPSBnZXRBcHRUb2tlbkluaXRpYWxpemVyKHRva2VuKTtcbiAgICAgIHJldHVybiBpbml0RnVuYyhcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCA0KSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lLCBkZWNpbWFsUGxhY2VzXG4gICAgICAgIG9iamVjdElkLFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQpIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcblxuICAgIGNhc2UgJ3ZldCc6XG4gICAgICBjb25zdCB7IHZldEluaXRGdW5jLCB2ZXRPYmplY3RJZCwgaXNORlQgfSA9IGdldFZldFRva2VuSW5pdGlhbGl6ZXIodG9rZW4pO1xuICAgICAgaWYgKGlzTkZUKSB7XG4gICAgICAgIHJldHVybiB2ZXRJbml0RnVuYyhcbiAgICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDMpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWVcbiAgICAgICAgICB2ZXRPYmplY3RJZCxcbiAgICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQpIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHZldEluaXRGdW5jKFxuICAgICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgNCksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlc1xuICAgICAgICAgIHZldE9iamVjdElkLFxuICAgICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNCkgLy8gYXNzZXQsIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeCwgbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICBjYXNlICdzdHgnOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDQpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXNcbiAgICAgICAgdG9rZW4uYXNzZXRJZCwgLy8gYXNzZXRJZFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQpIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcblxuICAgIGNhc2UgJ2FsZ28nOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDIpLCAvLyBpZCwgbmFtZVxuICAgICAgICB0b2tlbi5hbGlhcywgLy8gYWxpYXNcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgyKSAvLyBmdWxsTmFtZSwgZGVjaW1hbCwgYXNzZXQsIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeCwgbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICApO1xuXG4gICAgY2FzZSAnZW9zJzpcbiAgICAgIHJldHVybiBpbml0aWFsaXplcihcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCA0KSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lLCBkZWNpbWFsUGxhY2VzXG4gICAgICAgIHRva2VuLmNvbnRyYWN0TmFtZSwgLy8gY29udHJhY3ROYW1lXG4gICAgICAgIHRva2VuLmNvbnRyYWN0QWRkcmVzcywgLy8gY29udHJhY3RBZGRyZXNzXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNCwgOCksIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXhcbiAgICAgICAgdG9rZW4uc3ltYm9sLCAvLyBzeW1ib2xcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg4KSAvLyBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG5cbiAgICBjYXNlICdoYmFyJzpcbiAgICAgIHJldHVybiBpbml0aWFsaXplcihcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCAzKSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lXG4gICAgICAgIHRva2VuLm5ldHdvcmssIC8vIG5ldHdvcmtcbiAgICAgICAgdG9rZW4uZGVjaW1hbFBsYWNlcyxcbiAgICAgICAgdG9rZW4uYXNzZXQsXG4gICAgICAgIHRva2VuLmNvbnRyYWN0QWRkcmVzcywgLy8gY29udHJhY3RBZGRyZXNzXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNSwgOCksIC8vIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeFxuICAgICAgICB0b2tlbi5wcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG5cbiAgICBjYXNlICdzb2wnOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDQpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXNcbiAgICAgICAgdG9rZW4udG9rZW5BZGRyZXNzLCAvLyB0b2tlbkFkZHJlc3NcbiAgICAgICAgdG9rZW4uY29udHJhY3RBZGRyZXNzLCAvLyBjb250cmFjdEFkZHJlc3NcbiAgICAgICAgdG9rZW4uYXNzZXQsXG4gICAgICAgIHRva2VuLmZlYXR1cmVzLFxuICAgICAgICB0b2tlbi5wcm9ncmFtSWQsXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNikgLy8gcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcblxuICAgIGNhc2UgJ3N1aSc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgNCksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlc1xuICAgICAgICB0b2tlbi5wYWNrYWdlSWQsIC8vIHBhY2thZ2VJZFxuICAgICAgICB0b2tlbi5tb2R1bGUsIC8vIG1vZHVsZVxuICAgICAgICB0b2tlbi5zeW1ib2wsIC8vIHN5bWJvbFxuICAgICAgICB0b2tlbi5jb250cmFjdEFkZHJlc3MsIC8vIGNvbnRyYWN0QWRkcmVzc1xuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQpIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcblxuICAgIGNhc2UgJ3Rhbyc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgNCksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlc1xuICAgICAgICB0b2tlbi5zdWJuZXRJZCwgLy8gc3VibmV0SWRcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg0KSAvLyBhc3NldCwgZmVhdHVyZXMsIHByZWZpeCwgc3VmZml4LCBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG4gICAgY2FzZSAncG9seXgnOlxuICAgICAgcmV0dXJuIGluaXRpYWxpemVyKFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDAsIDQpLCAvLyBpZCwgbmFtZSwgZnVsbE5hbWUsIGRlY2ltYWxQbGFjZXNcbiAgICAgICAgdG9rZW4udGlja2VyLCAvLyB0aWNrZXJcbiAgICAgICAgdG9rZW4uYXNzZXRJZCwgLy8gYXNzZXRJZFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQpIC8vIGFzc2V0LCBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcblxuICAgIGNhc2UgJ3hsbSc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgNSksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlcywgYXNzZXRcbiAgICAgICAgdG9rZW4uZG9tYWluLCAvLyBkb21haW5cbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg1KSAvLyBmZWF0dXJlcywgcHJlZml4LCBzdWZmaXgsIG5ldHdvcmssIHByaW1hcnlLZXlDdXJ2ZVxuICAgICAgKTtcblxuICAgIGNhc2UgJ3hycCc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgNCksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlc1xuICAgICAgICB0b2tlbi5pc3N1ZXJBZGRyZXNzLCAvLyBpc3N1ZXJBZGRyZXNzXG4gICAgICAgIHRva2VuLmN1cnJlY255Y29kZSwgLy8gY3VycmVuY3lDb2RlXG4gICAgICAgIHRva2VuLmNvbnRyYWN0QWRkcmVzcywgLy8gY29udHJhY3RBZGRyZXNzXG4gICAgICAgIHRva2VuLmRvbWFpbiwgLy8gZG9tYWluXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNCkgLy8gYXNzZXQsIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeCwgbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICApO1xuICAgIGNhc2UgJ29mYyc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3MsIC8vIGlkLCBuYW1lLCBmdWxsTmFtZSwgZGVjaW1hbFBsYWNlcywgYXNzZXQsIHByZWZpeCwgc3VmZml4LCBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICAgdG9rZW4uYmFzZVVuaXQsIC8vIGJhc2VVbml0XG4gICAgICAgIHRva2VuLmlzVG9rZW4sIC8vIGlzVG9rZW5cbiAgICAgICAgdG9rZW4ua2luZCwgLy8ga2luZFxuICAgICAgICB0b2tlbi5hZGRyZXNzQ29pbiAvLyBhZGRyZXNzQ29pblxuICAgICAgKTtcbiAgICBjYXNlICdhc2knOlxuICAgIGNhc2UgJ2F0b20nOlxuICAgIGNhc2UgJ2JhYnknOlxuICAgIGNhc2UgJ2JsZCc6XG4gICAgY2FzZSAnY29yZXVtJzpcbiAgICBjYXNlICdjcm9ub3MnOlxuICAgIGNhc2UgJ2hhc2gnOlxuICAgIGNhc2UgJ2luamVjdGl2ZSc6XG4gICAgY2FzZSAnaW5pdGlhJzpcbiAgICBjYXNlICdvc21vJzpcbiAgICBjYXNlICd0aG9yJzpcbiAgICBjYXNlICdzZWknOlxuICAgIGNhc2UgJ3RpYSc6XG4gICAgY2FzZSAnemV0YSc6XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXIoXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoMCwgMyksIC8vIGlkLCBuYW1lLCBmdWxsTmFtZVxuICAgICAgICB0b2tlbi5kZW5vbSwgLy8gZGVub21cbiAgICAgICAgdG9rZW4uZGVjaW1hbFBsYWNlcywgLy8gZGVjaW1hbFBsYWNlc1xuICAgICAgICB0b2tlbi5uZXR3b3JrLCAvLyBuZXR3b3JrXG4gICAgICAgIHRva2VuLmJhc2VVbml0LCAvLyBiYXNlVW5pdFxuICAgICAgICAuLi5jb21tb25BcmdzLnNsaWNlKDQsIDgpLCAvLyBhc3NldCwgZmVhdHVyZXMsIHByZWZpeCwgc3VmZml4XG4gICAgICAgIHRva2VuLnByaW1hcnlLZXlDdXJ2ZSAvLyBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG4gICAgY2FzZSAnYWRhJzpcbiAgICAgIHJldHVybiBpbml0aWFsaXplcihcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCA0KSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lLCBkZWNpbWFsUGxhY2VzXG4gICAgICAgIHRva2VuLmFzc2V0TmFtZSxcbiAgICAgICAgdG9rZW4ucG9saWN5SWQsXG4gICAgICAgIHRva2VuLmNvbnRyYWN0QWRkcmVzcyxcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSg0KSAvLyBhc3NldCwgZmVhdHVyZXMsIHByZWZpeCwgc3VmZml4LCBuZXR3b3JrLCBwcmltYXJ5S2V5Q3VydmVcbiAgICAgICk7XG4gICAgY2FzZSAndG9uJzpcbiAgICAgIHJldHVybiBpbml0aWFsaXplcihcbiAgICAgICAgLi4uY29tbW9uQXJncy5zbGljZSgwLCA0KSwgLy8gaWQsIG5hbWUsIGZ1bGxOYW1lLCBkZWNpbWFsUGxhY2VzXG4gICAgICAgIHRva2VuLmNvbnRyYWN0QWRkcmVzcywgLy8gY29udHJhY3RBZGRyZXNzXG4gICAgICAgIC4uLmNvbW1vbkFyZ3Muc2xpY2UoNCkgLy8gYXNzZXQsIGZlYXR1cmVzLCBwcmVmaXgsIHN1ZmZpeCwgbmV0d29yaywgcHJpbWFyeUtleUN1cnZlXG4gICAgICApO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbi8qKlxuICogQnVpbGQgYSByZWFsIER5bmFtaWNDb2luICsgRHluYW1pY05ldHdvcmsgaW5zdGFuY2UgZm9yIEFNUy1kaXNjb3ZlcmVkIGJhc2UgY2hhaW5zXG4gKiB3aG9zZSBmYW1pbHkgaXMgbm90IHlldCByZWdpc3RlcmVkIGluIHRoZSBTREsncyBpbml0aWFsaXplck1hcC5cbiAqIENhbGxlZCBmcm9tIGNyZWF0ZVRva2VuKCkgYXMgYSBmYWxsYmFjayB3aGVuIG5vIGluaXRpYWxpemVyIGV4aXN0cyBhbmQgaXNUb2tlbiBpcyBmYWxzZS5cbiAqL1xuZnVuY3Rpb24gYnVpbGREeW5hbWljQ29pbih0b2tlbjogQW1zVG9rZW5Db25maWcpOiBSZWFkb25seTxCYXNlQ29pbj4ge1xuICBjb25zdCBuZXR3b3JrID0gdG9rZW4ubmV0d29yayBpbnN0YW5jZW9mIEJhc2VOZXR3b3JrID8gdG9rZW4ubmV0d29yayA6IGdldE5ldHdvcmsodG9rZW4ubmV0d29yayBhcyBzdHJpbmcpO1xuXG4gIHJldHVybiBPYmplY3QuZnJlZXplKFxuICAgIG5ldyBEeW5hbWljQ29pbih7XG4gICAgICBpZDogdG9rZW4uaWQsXG4gICAgICBuYW1lOiB0b2tlbi5uYW1lLFxuICAgICAgZnVsbE5hbWU6IHRva2VuLmZ1bGxOYW1lLFxuICAgICAgZGVjaW1hbFBsYWNlczogdG9rZW4uZGVjaW1hbFBsYWNlcyxcbiAgICAgIGFzc2V0OiB0b2tlbi5hc3NldCBhcyBzdHJpbmcsXG4gICAgICBpc1Rva2VuOiB0b2tlbi5pc1Rva2VuLFxuICAgICAgZmVhdHVyZXM6ICh0b2tlbi5mZWF0dXJlcyA/PyBbXSkgYXMgc3RyaW5nW10sXG4gICAgICBuZXR3b3JrLFxuICAgICAgcHJpbWFyeUtleUN1cnZlOiAodG9rZW4ucHJpbWFyeUtleUN1cnZlIGFzIHN0cmluZykgPz8gJ3NlY3AyNTZrMScsXG4gICAgICBwcmVmaXg6IHRva2VuLnByZWZpeCA/PyAnJyxcbiAgICAgIHN1ZmZpeDogdG9rZW4uc3VmZml4ID8/IHRva2VuLm5hbWUudG9VcHBlckNhc2UoKSxcbiAgICAgIGJhc2VVbml0OiAodG9rZW4uYmFzZVVuaXQgYXMgc3RyaW5nKSA/PyAnJyxcbiAgICAgIGtpbmQ6ICh0b2tlbi5raW5kIGFzIHN0cmluZykgPz8gJ2NyeXB0bycsXG4gICAgICBhbGlhczogdG9rZW4uYWxpYXMsXG4gICAgfSlcbiAgKTtcbn1cblxuZnVuY3Rpb24gZ2V0QXB0VG9rZW5Jbml0aWFsaXplcih0b2tlbjogQW1zVG9rZW5Db25maWcpIHtcbiAgaWYgKHRva2VuLmFzc2V0SWQpIHtcbiAgICAvLyB1c2VkIGZvciBmdW5naWJsZS1hc3NldHMgLyBsZWdhY3kgY29pbnMgZXRjLlxuICAgIHJldHVybiB7XG4gICAgICBpbml0RnVuYzogYXB0VG9rZW4gYXMgKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gUmVhZG9ubHk8QmFzZUNvaW4+LFxuICAgICAgb2JqZWN0SWQ6IHRva2VuLmFzc2V0SWQsXG4gICAgfTtcbiAgfVxuICAvLyB1c2VkIGZvciBub24tZnVuZ2libGUgdG9rZW4gKE5GVCkgY29sbGVjdGlvbnNcbiAgcmV0dXJuIHtcbiAgICBpbml0RnVuYzogYXB0TkZUQ29sbGVjdGlvbiBhcyAoLi4uYXJnczogdW5rbm93bltdKSA9PiBSZWFkb25seTxCYXNlQ29pbj4sXG4gICAgb2JqZWN0SWQ6IHRva2VuLm5mdENvbGxlY3Rpb25JZCxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0VmV0VG9rZW5Jbml0aWFsaXplcih0b2tlbjogQW1zVG9rZW5Db25maWcpIHtcbiAgaWYgKHRva2VuLm5mdENvbGxlY3Rpb25JZCkge1xuICAgIHJldHVybiB7XG4gICAgICB2ZXRJbml0RnVuYzogdmV0TkZUQ29sbGVjdGlvbiBhcyAoLi4uYXJnczogdW5rbm93bltdKSA9PiBSZWFkb25seTxCYXNlQ29pbj4sXG4gICAgICB2ZXRPYmplY3RJZDogdG9rZW4ubmZ0Q29sbGVjdGlvbklkLFxuICAgICAgaXNORlQ6IHRydWUsXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdmV0SW5pdEZ1bmM6IHZldFRva2VuIGFzICguLi5hcmdzOiB1bmtub3duW10pID0+IFJlYWRvbmx5PEJhc2VDb2luPixcbiAgICB2ZXRPYmplY3RJZDogdG9rZW4uY29udHJhY3RBZGRyZXNzLFxuICAgIGlzTkZUOiBmYWxzZSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29pblByZXNlbnRJbkNvaW5NYXAoeyBuYW1lLCBpZCwgYWxpYXMgfTogeyBuYW1lOiBzdHJpbmc7IGlkPzogc3RyaW5nOyBhbGlhcz86IHN0cmluZyB9KTogYm9vbGVhbiB7XG4gIHJldHVybiBCb29sZWFuKGNvaW5zLmhhcyhuYW1lKSB8fCAoaWQgJiYgY29pbnMuaGFzKGlkKSkgfHwgKGFsaWFzICYmIGNvaW5zLmhhcyhhbGlhcykpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRva2VuTWFwVXNpbmdDb25maWdEZXRhaWxzKHRva2VuQ29uZmlnTWFwOiBSZWNvcmQ8c3RyaW5nLCBBbXNUb2tlbkNvbmZpZ1tdPik6IENvaW5NYXAge1xuICBjb25zdCBCYXNlQ29pbnM6IE1hcDxzdHJpbmcsIFJlYWRvbmx5PEJhc2VDb2luPj4gPSBuZXcgTWFwKCk7XG5cbiAgY29uc3QgbmZ0QW5kT3RoZXJUb2tlbnMgPSBuZXcgU2V0KFtcbiAgICAnZXJjNzIxOmJzY3Rva2VuJyxcbiAgICAndGVyYzcyMTpic2N0b2tlbicsXG4gICAgJ2VyYzExNTU6YnNjdG9rZW4nLFxuICAgICd0ZXJjMTE1NTpic2N0b2tlbicsXG4gICAgJ2VyYzcyMTp3aXRjaCcsXG4gICAgJ2VyYzcyMTp0b2tlbicsXG4gICAgJ2VyYzExNTU6dG9rZW4nLFxuICAgICdub25zdGFuZGFyZDp0b2tlbicsXG4gICAgJ3RlcmM3MjE6dG9rZW4nLFxuICAgICd0ZXJjMTE1NTp0b2tlbicsXG4gICAgJ3Rub25zdGFuZGFyZDp0b2tlbicsXG4gICAgJ3RlcmM3MjE6Yml0Z29lcmM3MjEnLFxuICAgICd0ZXJjMTE1NTpiaXRnb2VyYzExNTUnLFxuICAgICd0ZXJjNzIxOmhvb2RpZGonLFxuICAgICdlcmM3MjE6cG9seWdvbnRva2VuJyxcbiAgICAnZXJjMTE1NTpwb2x5Z29udG9rZW4nLFxuICAgICd0ZXJjNzIxOnBvbHlnb250b2tlbicsXG4gICAgJ3RlcmMxMTU1OnBvbHlnb250b2tlbicsXG4gICAgJ2VyYzcyMTpzb25laXVtdG9rZW4nLFxuICAgICdlcmMxMTU1OnNvbmVpdW10b2tlbicsXG4gICAgJ3RlcmM3MjE6c29uZWl1bXRva2VuJyxcbiAgICAndGVyYzExNTU6c29uZWl1bXRva2VuJyxcbiAgXSk7XG5cbiAgLy8gQWRkIGFsbCB0aGUgY29pbnMgZnJvbSBzdGF0aWNzIGNvaW4gbWFwIGZpcnN0XG4gIGNvaW5zLmZvckVhY2goKGNvaW4sIGNvaW5OYW1lKSA9PiB7XG4gICAgQmFzZUNvaW5zLnNldChjb2luTmFtZSwgY29pbik7XG4gIH0pO1xuXG4gIC8vIGFkZCB0aGUgdG9rZW5zIG5vdCBwcmVzZW50IGluIHRoZSBzdGF0aWMgY29pbiBtYXBcbiAgZm9yIChjb25zdCB0b2tlbkNvbmZpZ3Mgb2YgT2JqZWN0LnZhbHVlcyh0b2tlbkNvbmZpZ01hcCkpIHtcbiAgICBjb25zdCB0b2tlbkNvbmZpZyA9IHRva2VuQ29uZmlnc1swXTtcblxuICAgIGlmICghaXNDb2luUHJlc2VudEluQ29pbk1hcCh7IC4uLnRva2VuQ29uZmlnIH0pICYmICFuZnRBbmRPdGhlclRva2Vucy5oYXModG9rZW5Db25maWcubmFtZSkpIHtcbiAgICAgIGNvbnN0IHRva2VuID0gY3JlYXRlVG9rZW4odG9rZW5Db25maWcpO1xuICAgICAgaWYgKHRva2VuKSB7XG4gICAgICAgIEJhc2VDb2lucy5zZXQodG9rZW4ubmFtZSwgdG9rZW4pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBDb2luTWFwLmZyb21Db2lucyhBcnJheS5mcm9tKEJhc2VDb2lucy52YWx1ZXMoKSkpO1xufVxuXG4vKipcbiAqIEVucmljaCBiYXNlIGNoYWluIGNvaW5zIChpc1Rva2VuPWZhbHNlKSB3aXRoIGZlYXR1cmVzIGZyb20gdGhlIEFNUyBuZXR3b3JrcyBtYXAuXG4gKlxuICogY3JlYXRlVG9rZW5NYXBVc2luZ1RyaW1tZWRDb25maWdEZXRhaWxzIHJlYWRzIGZlYXR1cmVzIGZvciBiYXNlIGNoYWlucyBmcm9tXG4gKiBUcmltbWVkQW1zVG9rZW5Db25maWcuYWRkaXRpb25hbEZlYXR1cmVzLiBUaGUgYXNzZXRzTGlzdCBlbmRwb2ludCByZXR1cm5zIGJhc2UgY2hhaW5zIHdpdGggbm8gZmVhdHVyZXM7XG4gKiBmZWF0dXJlcyBhcmUgaW4gdGhlIG5ldHdvcmtzIGVuZHBvaW50ICgvYXBpL3YxL25ldHdvcmtzLzpuZXR3b3JrKSwgbWF0Y2hlZCBieSBjb2luLm5ldHdvcmsubmFtZSA9PT0gbmV0d29ya3NFbnRyeS5uYW1lLlxuICpcbiAqIENvaW5zIHRoYXQgYWxyZWFkeSBoYXZlIGFkZGl0aW9uYWxGZWF0dXJlcyBkZWZpbmVkIGFyZSBsZWZ0IHVuY2hhbmdlZC5cbiAqIENvaW5zIHdob3NlIG5ldHdvcmsubmFtZSBoYXMgbm8gbWF0Y2ggaW4gbmV0d29ya3NNYXAgYXJlIGxlZnQgdW5jaGFuZ2VkIChlbXB0eSBmZWF0dXJlcykuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbnJpY2hCYXNlQ2hhaW5GZWF0dXJlcyhcbiAgY29pblRva2VuTWFwOiBSZWNvcmQ8c3RyaW5nLCBUcmltbWVkQW1zVG9rZW5Db25maWdbXT4sXG4gIG5ldHdvcmtzTWFwOiBBbXNOZXR3b3JrQ29uZmlnTWFwXG4pOiBSZWNvcmQ8c3RyaW5nLCBUcmltbWVkQW1zVG9rZW5Db25maWdbXT4ge1xuICBjb25zdCBmZWF0dXJlc0J5TmV0d29ya05hbWUgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nW10+KFxuICAgIE9iamVjdC52YWx1ZXMobmV0d29ya3NNYXApLm1hcCgobmV0KTogW3N0cmluZywgc3RyaW5nW11dID0+IFtuZXQubmFtZSwgbmV0LmZlYXR1cmVzXSlcbiAgKTtcbiAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhcbiAgICBPYmplY3QuZW50cmllcyhjb2luVG9rZW5NYXApLm1hcCgoW2tleSwgY29pbnNdKSA9PiBbXG4gICAgICBrZXksXG4gICAgICBjb2lucy5tYXAoKGNvaW4pID0+IHtcbiAgICAgICAgaWYgKGNvaW4uaXNUb2tlbiB8fCBjb2luLmFkZGl0aW9uYWxGZWF0dXJlcyAhPT0gdW5kZWZpbmVkIHx8IGNvaW4ubmV0d29yayA9PT0gdW5kZWZpbmVkKSByZXR1cm4gY29pbjtcbiAgICAgICAgY29uc3QgZmVhdHVyZXMgPSBmZWF0dXJlc0J5TmV0d29ya05hbWUuZ2V0KGNvaW4ubmV0d29yay5uYW1lKTtcbiAgICAgICAgcmV0dXJuIGZlYXR1cmVzICE9PSB1bmRlZmluZWQgPyB7IC4uLmNvaW4sIGFkZGl0aW9uYWxGZWF0dXJlczogZmVhdHVyZXMgfSA6IGNvaW47XG4gICAgICB9KSxcbiAgICBdKVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVG9rZW5NYXBVc2luZ1RyaW1tZWRDb25maWdEZXRhaWxzKFxuICByZWR1Y2VkVG9rZW5Db25maWdNYXA6IFJlY29yZDxzdHJpbmcsIFRyaW1tZWRBbXNUb2tlbkNvbmZpZ1tdPlxuKTogQ29pbk1hcCB7XG4gIGNvbnN0IGFtc1Rva2VuQ29uZmlnTWFwOiBSZWNvcmQ8c3RyaW5nLCBBbXNUb2tlbkNvbmZpZ1tdPiA9IHt9O1xuICBjb25zdCBuZXR3b3JrTmFtZU1hcCA9IGdldE5ldHdvcmtzTWFwKCk7XG5cbiAgZm9yIChjb25zdCB0b2tlbkNvbmZpZ3Mgb2YgT2JqZWN0LnZhbHVlcyhyZWR1Y2VkVG9rZW5Db25maWdNYXApKSB7XG4gICAgY29uc3QgdG9rZW5Db25maWcgPSB0b2tlbkNvbmZpZ3NbMF07XG4gICAgY29uc3QgbmV0d29yayA9IG5ldHdvcmtOYW1lTWFwLmdldCh0b2tlbkNvbmZpZy5uZXR3b3JrLm5hbWUpO1xuXG4gICAgaWYgKGlzQ29pblByZXNlbnRJbkNvaW5NYXAoeyAuLi50b2tlbkNvbmZpZyB9KSkgY29udGludWU7XG5cbiAgICBpZiAoIXRva2VuQ29uZmlnLmlzVG9rZW4pIHtcbiAgICAgIC8vIER5bmFtaWMgYmFzZSBjaGFpbiDigJQgbmV0d29yayBtdXN0IGJlIHByZS1yZWdpc3RlcmVkIGluIG5ldHdvcmtCeU5hbWUgbWFwIGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uXG4gICAgICBpZiAobmV0d29yaykge1xuICAgICAgICBhbXNUb2tlbkNvbmZpZ01hcFt0b2tlbkNvbmZpZy5uYW1lXSA9IFtcbiAgICAgICAgICB7IC4uLnRva2VuQ29uZmlnLCBmZWF0dXJlczogdG9rZW5Db25maWcuYWRkaXRpb25hbEZlYXR1cmVzID8/IFtdLCBuZXR3b3JrIH0sXG4gICAgICAgIF07XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChuZXR3b3JrICYmIG5ldHdvcmtGZWF0dXJlTWFwRm9yVG9rZW5zW25ldHdvcmsuZmFtaWx5XSkge1xuICAgICAgY29uc3QgZmVhdHVyZXMgPSBuZXcgU2V0KFtcbiAgICAgICAgLi4uKG5ldHdvcmtGZWF0dXJlTWFwRm9yVG9rZW5zW25ldHdvcmsuZmFtaWx5XSB8fCBbXSksXG4gICAgICAgIC4uLih0b2tlbkNvbmZpZy5hZGRpdGlvbmFsRmVhdHVyZXMgfHwgW10pLFxuICAgICAgXSk7XG4gICAgICB0b2tlbkNvbmZpZy5leGNsdWRlZEZlYXR1cmVzPy5mb3JFYWNoKChmZWF0dXJlKSA9PiBmZWF0dXJlcy5kZWxldGUoZmVhdHVyZSkpO1xuICAgICAgYW1zVG9rZW5Db25maWdNYXBbdG9rZW5Db25maWcubmFtZV0gPSBbeyAuLi50b2tlbkNvbmZpZywgZmVhdHVyZXM6IEFycmF5LmZyb20oZmVhdHVyZXMpLCBuZXR3b3JrIH1dO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjcmVhdGVUb2tlbk1hcFVzaW5nQ29uZmlnRGV0YWlscyhhbXNUb2tlbkNvbmZpZ01hcCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUb2tlblVzaW5nVHJpbW1lZENvbmZpZ0RldGFpbHMoXG4gIHRva2VuQ29uZmlnOiBUcmltbWVkQW1zVG9rZW5Db25maWdcbik6IFJlYWRvbmx5PEJhc2VDb2luPiB8IHVuZGVmaW5lZCB7XG4gIGxldCBmdWxsVG9rZW5Db25maWc6IEFtc1Rva2VuQ29uZmlnIHwgdW5kZWZpbmVkO1xuICBjb25zdCBuZXR3b3JrTmFtZU1hcCA9IGdldE5ldHdvcmtzTWFwKCk7XG4gIGNvbnN0IG5ldHdvcmsgPSBuZXR3b3JrTmFtZU1hcC5nZXQodG9rZW5Db25maWcubmV0d29yay5uYW1lKTtcblxuICBpZiAoaXNDb2luUHJlc2VudEluQ29pbk1hcCh7IC4uLnRva2VuQ29uZmlnIH0pKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gIGlmICghdG9rZW5Db25maWcuaXNUb2tlbikge1xuICAgIC8vIER5bmFtaWMgYmFzZSBjaGFpbiDigJQgbmV0d29yayBtdXN0IGJlIHByZS1yZWdpc3RlcmVkIGluIG5ldHdvcmtCeU5hbWUgbWFwIGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uXG4gICAgaWYgKG5ldHdvcmspIHtcbiAgICAgIHJldHVybiBjcmVhdGVUb2tlbih7IC4uLnRva2VuQ29uZmlnLCBmZWF0dXJlczogdG9rZW5Db25maWcuYWRkaXRpb25hbEZlYXR1cmVzID8/IFtdLCBuZXR3b3JrIH0gYXMgQW1zVG9rZW5Db25maWcpO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgaWYgKG5ldHdvcmsgJiYgbmV0d29ya0ZlYXR1cmVNYXBGb3JUb2tlbnNbbmV0d29yay5mYW1pbHldKSB7XG4gICAgY29uc3QgZmVhdHVyZXMgPSBuZXcgU2V0KFtcbiAgICAgIC4uLihuZXR3b3JrRmVhdHVyZU1hcEZvclRva2Vuc1tuZXR3b3JrLmZhbWlseV0gfHwgW10pLFxuICAgICAgLi4uKHRva2VuQ29uZmlnLmFkZGl0aW9uYWxGZWF0dXJlcyB8fCBbXSksXG4gICAgXSk7XG4gICAgdG9rZW5Db25maWcuZXhjbHVkZWRGZWF0dXJlcz8uZm9yRWFjaCgoZmVhdHVyZSkgPT4gZmVhdHVyZXMuZGVsZXRlKGZlYXR1cmUpKTtcbiAgICBmdWxsVG9rZW5Db25maWcgPSB7IC4uLnRva2VuQ29uZmlnLCBmZWF0dXJlczogQXJyYXkuZnJvbShmZWF0dXJlcyksIG5ldHdvcmsgfSBhcyBBbXNUb2tlbkNvbmZpZztcbiAgICByZXR1cm4gY3JlYXRlVG9rZW4oZnVsbFRva2VuQ29uZmlnKTtcbiAgfVxufVxuIl19
@@ -3,6 +3,7 @@ export * from './coins';
3
3
  export * from './networks';
4
4
  export * from './errors';
5
5
  export * from './tokenConfig';
6
+ export { KaspaCoin } from './kaspa';
6
7
  export { OfcCoin } from './ofc';
7
8
  export { UtxoCoin } from './utxo';
8
9
  export { LightningCoin } from './lightning';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,QAAQ,EACR,2BAA2B,EAC3B,SAAS,EACT,WAAW,EACX,OAAO,EACP,QAAQ,EACR,cAAc,EACd,2BAA2B,EAC3B,OAAO,EACP,WAAW,EACX,aAAa,EACb,OAAO,EACP,OAAO,EACP,SAAS,EACT,OAAO,EACP,OAAO,EACP,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,QAAQ,EACR,WAAW,EACX,WAAW,GACZ,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,QAAQ,EACR,2BAA2B,EAC3B,SAAS,EACT,WAAW,EACX,OAAO,EACP,QAAQ,EACR,cAAc,EACd,2BAA2B,EAC3B,OAAO,EACP,WAAW,EACX,aAAa,EACb,OAAO,EACP,OAAO,EACP,SAAS,EACT,OAAO,EACP,OAAO,EACP,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,QAAQ,EACR,WAAW,EACX,WAAW,GACZ,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC"}
package/dist/src/index.js CHANGED
@@ -14,12 +14,14 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.generateTestErc20Token = exports.generateErc20Token = exports.generateTestErc20Coin = exports.generateErc20Coin = exports.networkFeatureMapForTokens = exports.CoinMap = exports.CantonToken = exports.JettonToken = exports.AdaToken = exports.CosmosChainToken = exports.VetNFTCollection = exports.VetToken = exports.Nep141Token = exports.Sip10Token = exports.AptNFTCollection = exports.AptCoin = exports.XrpCoin = exports.PolyxCoin = exports.TaoCoin = exports.SuiCoin = exports.TronErc20Coin = exports.HederaToken = exports.SolCoin = exports.NFTCollectionIdDefinedToken = exports.AvaxERC20Token = exports.AlgoCoin = exports.EosCoin = exports.StellarCoin = exports.Erc20Coin = exports.ContractAddressDefinedToken = exports.CeloCoin = exports.GasTankAccountCoin = exports.AccountCoin = exports.LightningCoin = exports.UtxoCoin = exports.OfcCoin = void 0;
17
+ exports.generateTestErc20Token = exports.generateErc20Token = exports.generateTestErc20Coin = exports.generateErc20Coin = exports.networkFeatureMapForTokens = exports.CoinMap = exports.CantonToken = exports.JettonToken = exports.AdaToken = exports.CosmosChainToken = exports.VetNFTCollection = exports.VetToken = exports.Nep141Token = exports.Sip10Token = exports.AptNFTCollection = exports.AptCoin = exports.XrpCoin = exports.PolyxCoin = exports.TaoCoin = exports.SuiCoin = exports.TronErc20Coin = exports.HederaToken = exports.SolCoin = exports.NFTCollectionIdDefinedToken = exports.AvaxERC20Token = exports.AlgoCoin = exports.EosCoin = exports.StellarCoin = exports.Erc20Coin = exports.ContractAddressDefinedToken = exports.CeloCoin = exports.GasTankAccountCoin = exports.AccountCoin = exports.LightningCoin = exports.UtxoCoin = exports.OfcCoin = exports.KaspaCoin = void 0;
18
18
  __exportStar(require("./base"), exports);
19
19
  __exportStar(require("./coins"), exports);
20
20
  __exportStar(require("./networks"), exports);
21
21
  __exportStar(require("./errors"), exports);
22
22
  __exportStar(require("./tokenConfig"), exports);
23
+ var kaspa_1 = require("./kaspa");
24
+ Object.defineProperty(exports, "KaspaCoin", { enumerable: true, get: function () { return kaspa_1.KaspaCoin; } });
23
25
  var ofc_1 = require("./ofc");
24
26
  Object.defineProperty(exports, "OfcCoin", { enumerable: true, get: function () { return ofc_1.OfcCoin; } });
25
27
  var utxo_1 = require("./utxo");
@@ -63,4 +65,4 @@ Object.defineProperty(exports, "generateErc20Coin", { enumerable: true, get: fun
63
65
  Object.defineProperty(exports, "generateTestErc20Coin", { enumerable: true, get: function () { return generateERC20_1.generateTestErc20Coin; } });
64
66
  Object.defineProperty(exports, "generateErc20Token", { enumerable: true, get: function () { return generateERC20_1.generateErc20Token; } });
65
67
  Object.defineProperty(exports, "generateTestErc20Token", { enumerable: true, get: function () { return generateERC20_1.generateTestErc20Token; } });
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx5Q0FBdUI7QUFDdkIsMENBQXdCO0FBQ3hCLDZDQUEyQjtBQUMzQiwyQ0FBeUI7QUFDekIsZ0RBQThCO0FBQzlCLDZCQUFnQztBQUF2Qiw4RkFBQSxPQUFPLE9BQUE7QUFDaEIsK0JBQWtDO0FBQXpCLGdHQUFBLFFBQVEsT0FBQTtBQUNqQix5Q0FBNEM7QUFBbkMsMEdBQUEsYUFBYSxPQUFBO0FBQ3RCLHFDQTRCbUI7QUEzQmpCLHNHQUFBLFdBQVcsT0FBQTtBQUNYLDZHQUFBLGtCQUFrQixPQUFBO0FBQ2xCLG1HQUFBLFFBQVEsT0FBQTtBQUNSLHNIQUFBLDJCQUEyQixPQUFBO0FBQzNCLG9HQUFBLFNBQVMsT0FBQTtBQUNULHNHQUFBLFdBQVcsT0FBQTtBQUNYLGtHQUFBLE9BQU8sT0FBQTtBQUNQLG1HQUFBLFFBQVEsT0FBQTtBQUNSLHlHQUFBLGNBQWMsT0FBQTtBQUNkLHNIQUFBLDJCQUEyQixPQUFBO0FBQzNCLGtHQUFBLE9BQU8sT0FBQTtBQUNQLHNHQUFBLFdBQVcsT0FBQTtBQUNYLHdHQUFBLGFBQWEsT0FBQTtBQUNiLGtHQUFBLE9BQU8sT0FBQTtBQUNQLGtHQUFBLE9BQU8sT0FBQTtBQUNQLG9HQUFBLFNBQVMsT0FBQTtBQUNULGtHQUFBLE9BQU8sT0FBQTtBQUNQLGtHQUFBLE9BQU8sT0FBQTtBQUNQLDJHQUFBLGdCQUFnQixPQUFBO0FBQ2hCLHFHQUFBLFVBQVUsT0FBQTtBQUNWLHNHQUFBLFdBQVcsT0FBQTtBQUNYLG1HQUFBLFFBQVEsT0FBQTtBQUNSLDJHQUFBLGdCQUFnQixPQUFBO0FBQ2hCLDJHQUFBLGdCQUFnQixPQUFBO0FBQ2hCLG1HQUFBLFFBQVEsT0FBQTtBQUNSLHNHQUFBLFdBQVcsT0FBQTtBQUNYLHNHQUFBLFdBQVcsT0FBQTtBQUViLDZCQUFnQztBQUF2Qiw4RkFBQSxPQUFPLE9BQUE7QUFDaEIsMkVBQTBFO0FBQWpFLHdJQUFBLDBCQUEwQixPQUFBO0FBQ25DLHVEQUsrQjtBQUo3QixrSEFBQSxpQkFBaUIsT0FBQTtBQUNqQixzSEFBQSxxQkFBcUIsT0FBQTtBQUNyQixtSEFBQSxrQkFBa0IsT0FBQTtBQUNsQix1SEFBQSxzQkFBc0IsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvaW5zJztcbmV4cG9ydCAqIGZyb20gJy4vbmV0d29ya3MnO1xuZXhwb3J0ICogZnJvbSAnLi9lcnJvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi90b2tlbkNvbmZpZyc7XG5leHBvcnQgeyBPZmNDb2luIH0gZnJvbSAnLi9vZmMnO1xuZXhwb3J0IHsgVXR4b0NvaW4gfSBmcm9tICcuL3V0eG8nO1xuZXhwb3J0IHsgTGlnaHRuaW5nQ29pbiB9IGZyb20gJy4vbGlnaHRuaW5nJztcbmV4cG9ydCB7XG4gIEFjY291bnRDb2luLFxuICBHYXNUYW5rQWNjb3VudENvaW4sXG4gIENlbG9Db2luLFxuICBDb250cmFjdEFkZHJlc3NEZWZpbmVkVG9rZW4sXG4gIEVyYzIwQ29pbixcbiAgU3RlbGxhckNvaW4sXG4gIEVvc0NvaW4sXG4gIEFsZ29Db2luLFxuICBBdmF4RVJDMjBUb2tlbixcbiAgTkZUQ29sbGVjdGlvbklkRGVmaW5lZFRva2VuLFxuICBTb2xDb2luLFxuICBIZWRlcmFUb2tlbixcbiAgVHJvbkVyYzIwQ29pbixcbiAgU3VpQ29pbixcbiAgVGFvQ29pbixcbiAgUG9seXhDb2luLFxuICBYcnBDb2luLFxuICBBcHRDb2luLFxuICBBcHRORlRDb2xsZWN0aW9uLFxuICBTaXAxMFRva2VuLFxuICBOZXAxNDFUb2tlbixcbiAgVmV0VG9rZW4sXG4gIFZldE5GVENvbGxlY3Rpb24sXG4gIENvc21vc0NoYWluVG9rZW4sXG4gIEFkYVRva2VuLFxuICBKZXR0b25Ub2tlbixcbiAgQ2FudG9uVG9rZW4sXG59IGZyb20gJy4vYWNjb3VudCc7XG5leHBvcnQgeyBDb2luTWFwIH0gZnJvbSAnLi9tYXAnO1xuZXhwb3J0IHsgbmV0d29ya0ZlYXR1cmVNYXBGb3JUb2tlbnMgfSBmcm9tICcuL25ldHdvcmtGZWF0dXJlTWFwRm9yVG9rZW5zJztcbmV4cG9ydCB7XG4gIGdlbmVyYXRlRXJjMjBDb2luLFxuICBnZW5lcmF0ZVRlc3RFcmMyMENvaW4sXG4gIGdlbmVyYXRlRXJjMjBUb2tlbixcbiAgZ2VuZXJhdGVUZXN0RXJjMjBUb2tlbixcbn0gZnJvbSAnLi9jb2lucy9nZW5lcmF0ZUVSQzIwJztcbiJdfQ==
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx5Q0FBdUI7QUFDdkIsMENBQXdCO0FBQ3hCLDZDQUEyQjtBQUMzQiwyQ0FBeUI7QUFDekIsZ0RBQThCO0FBQzlCLGlDQUFvQztBQUEzQixrR0FBQSxTQUFTLE9BQUE7QUFDbEIsNkJBQWdDO0FBQXZCLDhGQUFBLE9BQU8sT0FBQTtBQUNoQiwrQkFBa0M7QUFBekIsZ0dBQUEsUUFBUSxPQUFBO0FBQ2pCLHlDQUE0QztBQUFuQywwR0FBQSxhQUFhLE9BQUE7QUFDdEIscUNBNEJtQjtBQTNCakIsc0dBQUEsV0FBVyxPQUFBO0FBQ1gsNkdBQUEsa0JBQWtCLE9BQUE7QUFDbEIsbUdBQUEsUUFBUSxPQUFBO0FBQ1Isc0hBQUEsMkJBQTJCLE9BQUE7QUFDM0Isb0dBQUEsU0FBUyxPQUFBO0FBQ1Qsc0dBQUEsV0FBVyxPQUFBO0FBQ1gsa0dBQUEsT0FBTyxPQUFBO0FBQ1AsbUdBQUEsUUFBUSxPQUFBO0FBQ1IseUdBQUEsY0FBYyxPQUFBO0FBQ2Qsc0hBQUEsMkJBQTJCLE9BQUE7QUFDM0Isa0dBQUEsT0FBTyxPQUFBO0FBQ1Asc0dBQUEsV0FBVyxPQUFBO0FBQ1gsd0dBQUEsYUFBYSxPQUFBO0FBQ2Isa0dBQUEsT0FBTyxPQUFBO0FBQ1Asa0dBQUEsT0FBTyxPQUFBO0FBQ1Asb0dBQUEsU0FBUyxPQUFBO0FBQ1Qsa0dBQUEsT0FBTyxPQUFBO0FBQ1Asa0dBQUEsT0FBTyxPQUFBO0FBQ1AsMkdBQUEsZ0JBQWdCLE9BQUE7QUFDaEIscUdBQUEsVUFBVSxPQUFBO0FBQ1Ysc0dBQUEsV0FBVyxPQUFBO0FBQ1gsbUdBQUEsUUFBUSxPQUFBO0FBQ1IsMkdBQUEsZ0JBQWdCLE9BQUE7QUFDaEIsMkdBQUEsZ0JBQWdCLE9BQUE7QUFDaEIsbUdBQUEsUUFBUSxPQUFBO0FBQ1Isc0dBQUEsV0FBVyxPQUFBO0FBQ1gsc0dBQUEsV0FBVyxPQUFBO0FBRWIsNkJBQWdDO0FBQXZCLDhGQUFBLE9BQU8sT0FBQTtBQUNoQiwyRUFBMEU7QUFBakUsd0lBQUEsMEJBQTBCLE9BQUE7QUFDbkMsdURBSytCO0FBSjdCLGtIQUFBLGlCQUFpQixPQUFBO0FBQ2pCLHNIQUFBLHFCQUFxQixPQUFBO0FBQ3JCLG1IQUFBLGtCQUFrQixPQUFBO0FBQ2xCLHVIQUFBLHNCQUFzQixPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9iYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29pbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9uZXR3b3Jrcyc7XG5leHBvcnQgKiBmcm9tICcuL2Vycm9ycyc7XG5leHBvcnQgKiBmcm9tICcuL3Rva2VuQ29uZmlnJztcbmV4cG9ydCB7IEthc3BhQ29pbiB9IGZyb20gJy4va2FzcGEnO1xuZXhwb3J0IHsgT2ZjQ29pbiB9IGZyb20gJy4vb2ZjJztcbmV4cG9ydCB7IFV0eG9Db2luIH0gZnJvbSAnLi91dHhvJztcbmV4cG9ydCB7IExpZ2h0bmluZ0NvaW4gfSBmcm9tICcuL2xpZ2h0bmluZyc7XG5leHBvcnQge1xuICBBY2NvdW50Q29pbixcbiAgR2FzVGFua0FjY291bnRDb2luLFxuICBDZWxvQ29pbixcbiAgQ29udHJhY3RBZGRyZXNzRGVmaW5lZFRva2VuLFxuICBFcmMyMENvaW4sXG4gIFN0ZWxsYXJDb2luLFxuICBFb3NDb2luLFxuICBBbGdvQ29pbixcbiAgQXZheEVSQzIwVG9rZW4sXG4gIE5GVENvbGxlY3Rpb25JZERlZmluZWRUb2tlbixcbiAgU29sQ29pbixcbiAgSGVkZXJhVG9rZW4sXG4gIFRyb25FcmMyMENvaW4sXG4gIFN1aUNvaW4sXG4gIFRhb0NvaW4sXG4gIFBvbHl4Q29pbixcbiAgWHJwQ29pbixcbiAgQXB0Q29pbixcbiAgQXB0TkZUQ29sbGVjdGlvbixcbiAgU2lwMTBUb2tlbixcbiAgTmVwMTQxVG9rZW4sXG4gIFZldFRva2VuLFxuICBWZXRORlRDb2xsZWN0aW9uLFxuICBDb3Ntb3NDaGFpblRva2VuLFxuICBBZGFUb2tlbixcbiAgSmV0dG9uVG9rZW4sXG4gIENhbnRvblRva2VuLFxufSBmcm9tICcuL2FjY291bnQnO1xuZXhwb3J0IHsgQ29pbk1hcCB9IGZyb20gJy4vbWFwJztcbmV4cG9ydCB7IG5ldHdvcmtGZWF0dXJlTWFwRm9yVG9rZW5zIH0gZnJvbSAnLi9uZXR3b3JrRmVhdHVyZU1hcEZvclRva2Vucyc7XG5leHBvcnQge1xuICBnZW5lcmF0ZUVyYzIwQ29pbixcbiAgZ2VuZXJhdGVUZXN0RXJjMjBDb2luLFxuICBnZW5lcmF0ZUVyYzIwVG9rZW4sXG4gIGdlbmVyYXRlVGVzdEVyYzIwVG9rZW4sXG59IGZyb20gJy4vY29pbnMvZ2VuZXJhdGVFUkMyMCc7XG4iXX0=
@@ -0,0 +1,35 @@
1
+ import { BaseCoin, CoinFeature, KeyCurve, UnderlyingAsset } from './base';
2
+ import { KaspaMainnet, KaspaTestnet } from './networks';
3
+ export interface KaspaConstructorOptions {
4
+ id: string;
5
+ fullName: string;
6
+ name: string;
7
+ network: KaspaMainnet | KaspaTestnet;
8
+ features: CoinFeature[];
9
+ asset: UnderlyingAsset;
10
+ prefix?: string;
11
+ suffix?: string;
12
+ primaryKeyCurve: KeyCurve;
13
+ }
14
+ export declare class KaspaCoin extends BaseCoin {
15
+ static readonly DEFAULT_FEATURES: CoinFeature[];
16
+ readonly network: KaspaMainnet | KaspaTestnet;
17
+ constructor(options: KaspaConstructorOptions);
18
+ protected disallowedFeatures(): Set<CoinFeature>;
19
+ protected requiredFeatures(): Set<CoinFeature>;
20
+ }
21
+ /**
22
+ * Factory function for Kaspa coin instances.
23
+ *
24
+ * @param id uuid v4
25
+ * @param name unique identifier of the coin
26
+ * @param fullName Complete human-readable name of the coin
27
+ * @param network Network object for this coin
28
+ * @param asset Asset which this coin represents. This is the same for both mainnet and testnet variants of a coin.
29
+ * @param features? Features of this coin. Defaults to the DEFAULT_FEATURES defined in `KaspaCoin`
30
+ * @param prefix? Optional coin prefix. Defaults to empty string
31
+ * @param suffix? Optional coin suffix. Defaults to coin name.
32
+ * @param primaryKeyCurve The elliptic curve for this chain/token
33
+ */
34
+ export declare function kaspa(id: string, name: string, fullName: string, network: KaspaMainnet | KaspaTestnet, asset: UnderlyingAsset, features?: CoinFeature[], prefix?: string, suffix?: string, primaryKeyCurve?: KeyCurve): Readonly<KaspaCoin>;
35
+ //# sourceMappingURL=kaspa.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kaspa.d.ts","sourceRoot":"","sources":["../../src/kaspa.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAY,WAAW,EAAY,QAAQ,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAC9F,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,YAAY,GAAG,YAAY,CAAC;IACrC,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,QAAQ,CAAC;CAC3B;AAED,qBAAa,SAAU,SAAQ,QAAQ;IACrC,gBAAuB,gBAAgB,gBAWrC;IAEF,SAAgB,OAAO,EAAE,YAAY,GAAG,YAAY,CAAC;gBAEzC,OAAO,EAAE,uBAAuB;IAY5C,SAAS,CAAC,kBAAkB,IAAI,GAAG,CAAC,WAAW,CAAC;IAIhD,SAAS,CAAC,gBAAgB,IAAI,GAAG,CAAC,WAAW,CAAC;CAG/C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,KAAK,CACnB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,YAAY,GAAG,YAAY,EACpC,KAAK,EAAE,eAAe,EACtB,QAAQ,GAAE,WAAW,EAA+B,EACpD,MAAM,SAAK,EACX,MAAM,GAAE,MAA2B,EACnC,eAAe,GAAE,QAA6B,uBAe/C"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KaspaCoin = void 0;
4
+ exports.kaspa = kaspa;
5
+ const base_1 = require("./base");
6
+ class KaspaCoin extends base_1.BaseCoin {
7
+ constructor(options) {
8
+ super({
9
+ ...options,
10
+ kind: base_1.CoinKind.CRYPTO,
11
+ isToken: false,
12
+ decimalPlaces: 8,
13
+ baseUnit: base_1.BaseUnit.KASPA,
14
+ });
15
+ this.network = options.network;
16
+ }
17
+ disallowedFeatures() {
18
+ return new Set([base_1.CoinFeature.ACCOUNT_MODEL]);
19
+ }
20
+ requiredFeatures() {
21
+ return new Set([base_1.CoinFeature.UNSPENT_MODEL]);
22
+ }
23
+ }
24
+ exports.KaspaCoin = KaspaCoin;
25
+ KaspaCoin.DEFAULT_FEATURES = [
26
+ base_1.CoinFeature.UNSPENT_MODEL,
27
+ base_1.CoinFeature.TSS,
28
+ base_1.CoinFeature.TSS_COLD,
29
+ base_1.CoinFeature.CUSTODY,
30
+ base_1.CoinFeature.CUSTODY_BITGO_TRUST,
31
+ base_1.CoinFeature.CUSTODY_BITGO_INDIA,
32
+ base_1.CoinFeature.CUSTODY_BITGO_MENA_FZE,
33
+ base_1.CoinFeature.CUSTODY_BITGO_CUSTODY_MENA_FZE,
34
+ base_1.CoinFeature.CUSTODY_BITGO_GERMANY,
35
+ base_1.CoinFeature.CUSTODY_BITGO_FRANKFURT,
36
+ ];
37
+ /**
38
+ * Factory function for Kaspa coin instances.
39
+ *
40
+ * @param id uuid v4
41
+ * @param name unique identifier of the coin
42
+ * @param fullName Complete human-readable name of the coin
43
+ * @param network Network object for this coin
44
+ * @param asset Asset which this coin represents. This is the same for both mainnet and testnet variants of a coin.
45
+ * @param features? Features of this coin. Defaults to the DEFAULT_FEATURES defined in `KaspaCoin`
46
+ * @param prefix? Optional coin prefix. Defaults to empty string
47
+ * @param suffix? Optional coin suffix. Defaults to coin name.
48
+ * @param primaryKeyCurve The elliptic curve for this chain/token
49
+ */
50
+ function kaspa(id, name, fullName, network, asset, features = KaspaCoin.DEFAULT_FEATURES, prefix = '', suffix = name.toUpperCase(), primaryKeyCurve = base_1.KeyCurve.Secp256k1) {
51
+ return Object.freeze(new KaspaCoin({
52
+ id,
53
+ name,
54
+ fullName,
55
+ network,
56
+ prefix,
57
+ suffix,
58
+ features,
59
+ asset,
60
+ primaryKeyCurve,
61
+ }));
62
+ }
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FzcGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMva2FzcGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBaUVBLHNCQXdCQztBQXpGRCxpQ0FBOEY7QUFlOUYsTUFBYSxTQUFVLFNBQVEsZUFBUTtJQWdCckMsWUFBWSxPQUFnQztRQUMxQyxLQUFLLENBQUM7WUFDSixHQUFHLE9BQU87WUFDVixJQUFJLEVBQUUsZUFBUSxDQUFDLE1BQU07WUFDckIsT0FBTyxFQUFFLEtBQUs7WUFDZCxhQUFhLEVBQUUsQ0FBQztZQUNoQixRQUFRLEVBQUUsZUFBUSxDQUFDLEtBQUs7U0FDekIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO0lBQ2pDLENBQUM7SUFFUyxrQkFBa0I7UUFDMUIsT0FBTyxJQUFJLEdBQUcsQ0FBQyxDQUFDLGtCQUFXLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRVMsZ0JBQWdCO1FBQ3hCLE9BQU8sSUFBSSxHQUFHLENBQUMsQ0FBQyxrQkFBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQzs7QUFsQ0gsOEJBbUNDO0FBbEN3QiwwQkFBZ0IsR0FBRztJQUN4QyxrQkFBVyxDQUFDLGFBQWE7SUFDekIsa0JBQVcsQ0FBQyxHQUFHO0lBQ2Ysa0JBQVcsQ0FBQyxRQUFRO0lBQ3BCLGtCQUFXLENBQUMsT0FBTztJQUNuQixrQkFBVyxDQUFDLG1CQUFtQjtJQUMvQixrQkFBVyxDQUFDLG1CQUFtQjtJQUMvQixrQkFBVyxDQUFDLHNCQUFzQjtJQUNsQyxrQkFBVyxDQUFDLDhCQUE4QjtJQUMxQyxrQkFBVyxDQUFDLHFCQUFxQjtJQUNqQyxrQkFBVyxDQUFDLHVCQUF1QjtDQUNwQyxDQUFDO0FBeUJKOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILFNBQWdCLEtBQUssQ0FDbkIsRUFBVSxFQUNWLElBQVksRUFDWixRQUFnQixFQUNoQixPQUFvQyxFQUNwQyxLQUFzQixFQUN0QixXQUEwQixTQUFTLENBQUMsZ0JBQWdCLEVBQ3BELE1BQU0sR0FBRyxFQUFFLEVBQ1gsU0FBaUIsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUNuQyxrQkFBNEIsZUFBUSxDQUFDLFNBQVM7SUFFOUMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUNsQixJQUFJLFNBQVMsQ0FBQztRQUNaLEVBQUU7UUFDRixJQUFJO1FBQ0osUUFBUTtRQUNSLE9BQU87UUFDUCxNQUFNO1FBQ04sTUFBTTtRQUNOLFFBQVE7UUFDUixLQUFLO1FBQ0wsZUFBZTtLQUNoQixDQUFDLENBQ0gsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiwgQmFzZVVuaXQsIENvaW5GZWF0dXJlLCBDb2luS2luZCwgS2V5Q3VydmUsIFVuZGVybHlpbmdBc3NldCB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyBLYXNwYU1haW5uZXQsIEthc3BhVGVzdG5ldCB9IGZyb20gJy4vbmV0d29ya3MnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEthc3BhQ29uc3RydWN0b3JPcHRpb25zIHtcbiAgaWQ6IHN0cmluZztcbiAgZnVsbE5hbWU6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBuZXR3b3JrOiBLYXNwYU1haW5uZXQgfCBLYXNwYVRlc3RuZXQ7XG4gIGZlYXR1cmVzOiBDb2luRmVhdHVyZVtdO1xuICBhc3NldDogVW5kZXJseWluZ0Fzc2V0O1xuICBwcmVmaXg/OiBzdHJpbmc7XG4gIHN1ZmZpeD86IHN0cmluZztcbiAgcHJpbWFyeUtleUN1cnZlOiBLZXlDdXJ2ZTtcbn1cblxuZXhwb3J0IGNsYXNzIEthc3BhQ29pbiBleHRlbmRzIEJhc2VDb2luIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0ZFQVRVUkVTID0gW1xuICAgIENvaW5GZWF0dXJlLlVOU1BFTlRfTU9ERUwsXG4gICAgQ29pbkZlYXR1cmUuVFNTLFxuICAgIENvaW5GZWF0dXJlLlRTU19DT0xELFxuICAgIENvaW5GZWF0dXJlLkNVU1RPRFksXG4gICAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19UUlVTVCxcbiAgICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX0lORElBLFxuICAgIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fTUVOQV9GWkUsXG4gICAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19DVVNUT0RZX01FTkFfRlpFLFxuICAgIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fR0VSTUFOWSxcbiAgICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX0ZSQU5LRlVSVCxcbiAgXTtcblxuICBwdWJsaWMgcmVhZG9ubHkgbmV0d29yazogS2FzcGFNYWlubmV0IHwgS2FzcGFUZXN0bmV0O1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IEthc3BhQ29uc3RydWN0b3JPcHRpb25zKSB7XG4gICAgc3VwZXIoe1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIGtpbmQ6IENvaW5LaW5kLkNSWVBUTyxcbiAgICAgIGlzVG9rZW46IGZhbHNlLFxuICAgICAgZGVjaW1hbFBsYWNlczogOCxcbiAgICAgIGJhc2VVbml0OiBCYXNlVW5pdC5LQVNQQSxcbiAgICB9KTtcblxuICAgIHRoaXMubmV0d29yayA9IG9wdGlvbnMubmV0d29yaztcbiAgfVxuXG4gIHByb3RlY3RlZCBkaXNhbGxvd2VkRmVhdHVyZXMoKTogU2V0PENvaW5GZWF0dXJlPiB7XG4gICAgcmV0dXJuIG5ldyBTZXQoW0NvaW5GZWF0dXJlLkFDQ09VTlRfTU9ERUxdKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZXF1aXJlZEZlYXR1cmVzKCk6IFNldDxDb2luRmVhdHVyZT4ge1xuICAgIHJldHVybiBuZXcgU2V0KFtDb2luRmVhdHVyZS5VTlNQRU5UX01PREVMXSk7XG4gIH1cbn1cblxuLyoqXG4gKiBGYWN0b3J5IGZ1bmN0aW9uIGZvciBLYXNwYSBjb2luIGluc3RhbmNlcy5cbiAqXG4gKiBAcGFyYW0gaWQgdXVpZCB2NFxuICogQHBhcmFtIG5hbWUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNvaW5cbiAqIEBwYXJhbSBmdWxsTmFtZSBDb21wbGV0ZSBodW1hbi1yZWFkYWJsZSBuYW1lIG9mIHRoZSBjb2luXG4gKiBAcGFyYW0gbmV0d29yayBOZXR3b3JrIG9iamVjdCBmb3IgdGhpcyBjb2luXG4gKiBAcGFyYW0gYXNzZXQgQXNzZXQgd2hpY2ggdGhpcyBjb2luIHJlcHJlc2VudHMuIFRoaXMgaXMgdGhlIHNhbWUgZm9yIGJvdGggbWFpbm5ldCBhbmQgdGVzdG5ldCB2YXJpYW50cyBvZiBhIGNvaW4uXG4gKiBAcGFyYW0gZmVhdHVyZXM/IEZlYXR1cmVzIG9mIHRoaXMgY29pbi4gRGVmYXVsdHMgdG8gdGhlIERFRkFVTFRfRkVBVFVSRVMgZGVmaW5lZCBpbiBgS2FzcGFDb2luYFxuICogQHBhcmFtIHByZWZpeD8gT3B0aW9uYWwgY29pbiBwcmVmaXguIERlZmF1bHRzIHRvIGVtcHR5IHN0cmluZ1xuICogQHBhcmFtIHN1ZmZpeD8gT3B0aW9uYWwgY29pbiBzdWZmaXguIERlZmF1bHRzIHRvIGNvaW4gbmFtZS5cbiAqIEBwYXJhbSBwcmltYXJ5S2V5Q3VydmUgVGhlIGVsbGlwdGljIGN1cnZlIGZvciB0aGlzIGNoYWluL3Rva2VuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBrYXNwYShcbiAgaWQ6IHN0cmluZyxcbiAgbmFtZTogc3RyaW5nLFxuICBmdWxsTmFtZTogc3RyaW5nLFxuICBuZXR3b3JrOiBLYXNwYU1haW5uZXQgfCBLYXNwYVRlc3RuZXQsXG4gIGFzc2V0OiBVbmRlcmx5aW5nQXNzZXQsXG4gIGZlYXR1cmVzOiBDb2luRmVhdHVyZVtdID0gS2FzcGFDb2luLkRFRkFVTFRfRkVBVFVSRVMsXG4gIHByZWZpeCA9ICcnLFxuICBzdWZmaXg6IHN0cmluZyA9IG5hbWUudG9VcHBlckNhc2UoKSxcbiAgcHJpbWFyeUtleUN1cnZlOiBLZXlDdXJ2ZSA9IEtleUN1cnZlLlNlY3AyNTZrMVxuKSB7XG4gIHJldHVybiBPYmplY3QuZnJlZXplKFxuICAgIG5ldyBLYXNwYUNvaW4oe1xuICAgICAgaWQsXG4gICAgICBuYW1lLFxuICAgICAgZnVsbE5hbWUsXG4gICAgICBuZXR3b3JrLFxuICAgICAgcHJlZml4LFxuICAgICAgc3VmZml4LFxuICAgICAgZmVhdHVyZXMsXG4gICAgICBhc3NldCxcbiAgICAgIHByaW1hcnlLZXlDdXJ2ZSxcbiAgICB9KVxuICApO1xufVxuIl19
@@ -222,6 +222,18 @@ declare class IcpTestnet extends Testnet implements AccountNetwork {
222
222
  explorerUrl: string;
223
223
  accountExplorerUrl: string;
224
224
  }
225
+ export declare class KaspaMainnet extends Mainnet implements AccountNetwork {
226
+ name: string;
227
+ family: CoinFamily;
228
+ explorerUrl: string;
229
+ accountExplorerUrl: string;
230
+ }
231
+ export declare class KaspaTestnet extends Testnet implements AccountNetwork {
232
+ name: string;
233
+ family: CoinFamily;
234
+ explorerUrl: string;
235
+ accountExplorerUrl: string;
236
+ }
225
237
  declare class Arbitrum extends Mainnet implements EthereumNetwork {
226
238
  name: string;
227
239
  family: CoinFamily;
@@ -1154,6 +1166,7 @@ declare class Near extends Mainnet implements AccountNetwork {
1154
1166
  name: string;
1155
1167
  family: CoinFamily;
1156
1168
  explorerUrl: string;
1169
+ accountExplorerUrl: string;
1157
1170
  feeReserve: string;
1158
1171
  storageReserve: string;
1159
1172
  }
@@ -1161,6 +1174,7 @@ declare class NearTestnet extends Testnet implements AccountNetwork {
1161
1174
  name: string;
1162
1175
  family: CoinFamily;
1163
1176
  explorerUrl: string;
1177
+ accountExplorerUrl: string;
1164
1178
  feeReserve: string;
1165
1179
  storageReserve: string;
1166
1180
  }
@@ -2231,6 +2245,22 @@ declare class PrividiumETHTestnet extends Testnet implements EthereumNetwork {
2231
2245
  chainId: number;
2232
2246
  nativeCoinOperationHashPrefix: string;
2233
2247
  }
2248
+ declare class InkEth extends Mainnet implements EthereumNetwork {
2249
+ name: string;
2250
+ family: CoinFamily;
2251
+ explorerUrl: string;
2252
+ accountExplorerUrl: string;
2253
+ chainId: number;
2254
+ nativeCoinOperationHashPrefix: string;
2255
+ }
2256
+ declare class InkEthTestnet extends Testnet implements EthereumNetwork {
2257
+ name: string;
2258
+ family: CoinFamily;
2259
+ explorerUrl: string;
2260
+ accountExplorerUrl: string;
2261
+ chainId: number;
2262
+ nativeCoinOperationHashPrefix: string;
2263
+ }
2234
2264
  declare class PlumeTestnet extends Testnet implements EthereumNetwork {
2235
2265
  name: string;
2236
2266
  family: CoinFamily;
@@ -2429,6 +2459,7 @@ export declare const Networks: {
2429
2459
  hedera: Readonly<Hedera>;
2430
2460
  hederaEVM: Readonly<HederaEVM>;
2431
2461
  hemieth: Readonly<HemiEth>;
2462
+ inketh: Readonly<InkEth>;
2432
2463
  hppeth: Readonly<Hppeth>;
2433
2464
  prividiumeth: Readonly<PrividiumETH>;
2434
2465
  icp: Readonly<Icp>;
@@ -2440,6 +2471,7 @@ export declare const Networks: {
2440
2471
  islm: Readonly<Islm>;
2441
2472
  jovayeth: Readonly<JovayETH>;
2442
2473
  kaia: Readonly<Kaia>;
2474
+ kaspa: Readonly<KaspaMainnet>;
2443
2475
  kavacosmos: Readonly<KavaCosmos>;
2444
2476
  kavaevm: Readonly<KavaEVM>;
2445
2477
  lnbtc: Readonly<LightningBitcoin>;
@@ -2558,6 +2590,7 @@ export declare const Networks: {
2558
2590
  prividiumeth: Readonly<PrividiumETHTestnet>;
2559
2591
  hederaEVM: Readonly<HederaEVMTestnet>;
2560
2592
  hemieth: Readonly<HemiEthTestnet>;
2593
+ inketh: Readonly<InkEthTestnet>;
2561
2594
  icp: Readonly<IcpTestnet>;
2562
2595
  ip: Readonly<IPTestnet>;
2563
2596
  initia: Readonly<InitiaTestnet>;
@@ -2566,6 +2599,7 @@ export declare const Networks: {
2566
2599
  irys: Readonly<IrysTestnet>;
2567
2600
  islm: Readonly<IslmTestnet>;
2568
2601
  jovayeth: Readonly<JovayETHTestnet>;
2602
+ kaspa: Readonly<KaspaTestnet>;
2569
2603
  kavacosmos: Readonly<KavaCosmosTestnet>;
2570
2604
  kavaevm: Readonly<KavaEVMTestnet>;
2571
2605
  kovan: Readonly<Kovan>;