@bitgo/sdk-core 37.11.0 → 38.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist/src/bitgo/baseCoin/baseCoin.d.ts +1 -3
  2. package/dist/src/bitgo/baseCoin/baseCoin.d.ts.map +1 -1
  3. package/dist/src/bitgo/baseCoin/baseCoin.js +3 -17
  4. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +1 -2
  5. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts.map +1 -1
  6. package/dist/src/bitgo/baseCoin/iBaseCoin.js +1 -1
  7. package/dist/src/bitgo/bitgoBase.d.ts +3 -6
  8. package/dist/src/bitgo/bitgoBase.d.ts.map +1 -1
  9. package/dist/src/bitgo/bitgoBase.js +1 -1
  10. package/dist/src/bitgo/environments.d.ts.map +1 -1
  11. package/dist/src/bitgo/environments.js +9 -1
  12. package/dist/src/bitgo/internal/keycard.d.ts +9 -18
  13. package/dist/src/bitgo/internal/keycard.d.ts.map +1 -1
  14. package/dist/src/bitgo/internal/keycard.js +8 -56
  15. package/dist/src/bitgo/keychain/decryptKeychain.d.ts +2 -12
  16. package/dist/src/bitgo/keychain/decryptKeychain.d.ts.map +1 -1
  17. package/dist/src/bitgo/keychain/decryptKeychain.js +6 -37
  18. package/dist/src/bitgo/keychain/iKeychains.d.ts +1 -2
  19. package/dist/src/bitgo/keychain/iKeychains.d.ts.map +1 -1
  20. package/dist/src/bitgo/keychain/iKeychains.js +1 -1
  21. package/dist/src/bitgo/keychain/keychains.d.ts +1 -12
  22. package/dist/src/bitgo/keychain/keychains.d.ts.map +1 -1
  23. package/dist/src/bitgo/keychain/keychains.js +16 -44
  24. package/dist/src/bitgo/recovery/initiate.d.ts +2 -15
  25. package/dist/src/bitgo/recovery/initiate.d.ts.map +1 -1
  26. package/dist/src/bitgo/recovery/initiate.js +7 -47
  27. package/dist/src/bitgo/trading/tradingAccount.js +2 -2
  28. package/dist/src/bitgo/utils/tss/addressVerification.d.ts.map +1 -1
  29. package/dist/src/bitgo/utils/tss/addressVerification.js +3 -10
  30. package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts.map +1 -1
  31. package/dist/src/bitgo/utils/tss/baseTSSUtils.js +5 -5
  32. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.js +7 -7
  33. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts +4 -8
  34. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -1
  35. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +20 -103
  36. package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts.map +1 -1
  37. package/dist/src/bitgo/utils/tss/eddsa/eddsa.js +9 -18
  38. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts +2 -2
  39. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts.map +1 -1
  40. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.js +24 -40
  41. package/dist/src/bitgo/wallet/iWallet.d.ts +2 -4
  42. package/dist/src/bitgo/wallet/iWallet.d.ts.map +1 -1
  43. package/dist/src/bitgo/wallet/iWallet.js +1 -1
  44. package/dist/src/bitgo/wallet/wallet.d.ts +8 -21
  45. package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
  46. package/dist/src/bitgo/wallet/wallet.js +23 -112
  47. package/dist/src/bitgo/wallet/wallets.js +24 -24
  48. package/dist/test/unit/bitgo/recovery/initiate.js +18 -89
  49. package/dist/test/unit/bitgo/trading/tradingAccount.js +5 -5
  50. package/dist/test/unit/bitgo/utils/tss/addressVerification.js +26 -22
  51. package/dist/test/unit/bitgo/utils/tss/baseTSSUtils.js +14 -14
  52. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +10 -10
  53. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaMPCv2.js +27 -55
  54. package/dist/test/unit/bitgo/wallet/ofcWalletSignTransaction.js +4 -4
  55. package/dist/test/unit/bitgo/wallet/walletsEncryptionVersion.js +16 -16
  56. package/dist/test/unit/bitgo/wallet/walletsWebauthn.js +2 -5
  57. package/dist/tsconfig.tsbuildinfo +1 -1
  58. package/package.json +4 -4
@@ -154,6 +154,10 @@ const mainnetBase = {
154
154
  baseUrl: 'https://explorer.fantom.network',
155
155
  rpcUrl: 'https://rpcapi.fantom.network/',
156
156
  },
157
+ cotieth: {
158
+ baseUrl: 'https://mainnet.cotiscan.io',
159
+ rpcUrl: 'https://mainnet.coti.io/rpc',
160
+ },
157
161
  xtzevm: {
158
162
  baseUrl: 'https://explorer.etherlink.com/api',
159
163
  },
@@ -389,6 +393,10 @@ const testnetBase = {
389
393
  baseUrl: 'https://api.etherscan.io/v2',
390
394
  apiToken: process.env.ETHERSCAN_API_TOKEN,
391
395
  },
396
+ tcotieth: {
397
+ baseUrl: 'https://testnet.cotiscan.io',
398
+ rpcUrl: 'https://testnet.coti.io/rpc',
399
+ },
392
400
  xtzevm: {
393
401
  baseUrl: 'https://shadownet.explorer.etherlink.com/api',
394
402
  },
@@ -554,4 +562,4 @@ exports.Environments = {
554
562
  stellarFederationServerUrl: 'https://app.bitgo-dev.com/api/v2/txlm/federation',
555
563
  }),
556
564
  };
557
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JpdGdvL2Vudmlyb25tZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF1SGEsUUFBQSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQy9DLFVBQVUsRUFBRTtRQUNWLElBQUksRUFBRSxpSEFBaUg7UUFDdkgsSUFBSSxFQUFFLGlIQUFpSDtLQUN4SDtJQUNELE9BQU8sRUFBRTtRQUNQLElBQUksRUFBRSxpSEFBaUg7UUFDdkgsSUFBSSxFQUFFLGlIQUFpSDtRQUN2SCxHQUFHLEVBQUUsaUhBQWlIO0tBQ3ZIO0NBQ0YsQ0FBQyxDQUFDO0FBcUJILHdGQUF3RjtBQUMzRSxRQUFBLGlCQUFpQixHQUFxRDtJQUNqRixVQUFVLEVBQUUsTUFBTTtJQUNsQixNQUFNLEVBQUUsTUFBTTtJQUNkLE1BQU0sRUFBRSxNQUFNO0lBQ2QsS0FBSyxFQUFFLEtBQUs7Q0FDYixDQUFDO0FBRUYsTUFBTSxXQUFXLEdBQXdCO0lBQ3ZDLE9BQU8sRUFBRSxTQUFzQjtJQUMvQixjQUFjLEVBQUUsb0NBQW9DO0lBQ3BELFVBQVUsRUFBRSwyQkFBbUIsQ0FBQyxVQUFVLENBQUMsSUFBSTtJQUMvQyxPQUFPLEVBQUUsMkJBQW1CLENBQUMsT0FBTyxDQUFDLElBQUk7SUFDekMsa0JBQWtCLEVBQUUsOEJBQThCO0lBQ2xELGdCQUFnQixFQUFFLDZCQUE2QjtJQUMvQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQjtJQUNsRCxtQkFBbUIsRUFBRSwwQkFBMEI7SUFDL0MsbUJBQW1CLEVBQUUsNEJBQTRCO0lBQ2pELHNCQUFzQixFQUFFLGlDQUFpQztJQUN6RCxjQUFjLEVBQUUsNkJBQTZCO0lBQzdDLGVBQWUsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWE7SUFDMUMsa0JBQWtCLEVBQUUsNkJBQTZCO0lBQ2pELG1CQUFtQixFQUFF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cmsgfSBmcm9tICcuL3R5cGVzJztcblxuaW50ZXJmYWNlIEVudmlyb25tZW50VGVtcGxhdGUge1xuICB1cmk/OiBzdHJpbmc7XG4gIG5ldHdvcms6IFYxTmV0d29yaztcbiAgc2lnbmluZ0FkZHJlc3M6IHN0cmluZztcbiAgc2VydmVyWHB1Yjogc3RyaW5nO1xuICBoc21YcHViOiBzdHJpbmc7XG4gIGJ0Y0V4cGxvcmVyQmFzZVVybDogc3RyaW5nO1xuICBldGhlcnNjYW5CYXNlVXJsOiBzdHJpbmc7XG4gIGV0aGVyc2NhbkFwaVRva2VuPzogc3RyaW5nO1xuICBhdmF4Y05ldHdvcmtCYXNlVXJsOiBzdHJpbmc7XG4gIGV0aDJFeHBsb3JlckJhc2VVcmw6IHN0cmluZztcbiAgZXRod0Z1bGxOb2RlUlBDQmFzZVVybDogc3RyaW5nO1xuICBwb2x5Z29uc2NhbkJhc2VVcmw/OiBzdHJpbmc7XG4gIGJzY3NjYW5CYXNlVXJsPzogc3RyaW5nO1xuICBic2NzY2FuQXBpVG9rZW4/OiBzdHJpbmc7XG4gIHBvbHlnb25zY2FuQXBpVG9rZW4/OiBzdHJpbmc7XG4gIGFwZWNoYWluRXhwbG9yZXJBcGlUb2tlbj86IHN0cmluZztcbiAgYXBlY2hhaW5FeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIGFyYmlzY2FuQmFzZVVybD86IHN0cmluZztcbiAgYXJiaXNjYW5BcGlUb2tlbj86IHN0cmluZztcbiAgb2FzRXhwbG9yZXJBcGlUb2tlbj86IHN0cmluZztcbiAgb2FzRXhwbG9yZXJCYXNlVXJsPzogc3RyaW5nO1xuICBvcHRpbWlzdGljRXRoZXJzY2FuQmFzZVVybD86IHN0cmluZztcbiAgb3B0aW1pc3RpY0V0aGVyc2NhbkFwaVRva2VuPzogc3RyaW5nO1xuICB6a3N5bmNFeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIHprc3luY0V4cGxvcmVyQXBpVG9rZW4/OiBzdHJpbmc7XG4gIGJlcmFFeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIGJlcmFFeHBsb3JlckFwaVRva2VuPzogc3RyaW5nO1xuICBiYXNlZXRoRXhwbG9yZXJVcmw/OiBzdHJpbmc7XG4gIGJhc2VldGhBcGlUb2tlbj86IHN0cmluZztcbiAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw/OiBzdHJpbmc7XG4gIGVvc05vZGVVcmxzOiBzdHJpbmdbXTtcbiAgbmVhck5vZGVVcmxzOiBzdHJpbmdbXTtcbiAgc29sTm9kZVVybDogc3RyaW5nO1xuICBzb2xBbGNoZW15Tm9kZVVybDogc3RyaW5nO1xuICBhZGFOb2RlVXJsOiBzdHJpbmc7XG4gIGhhc2hOb2RlVXJsOiBzdHJpbmc7XG4gIGluak5vZGVVcmw6IHN0cmluZztcbiAgYXRvbU5vZGVVcmw6IHN0cmluZztcbiAgb3Ntb05vZGVVcmw6IHN0cmluZztcbiAgdGlhTm9kZVVybDogc3RyaW5nO1xuICBzZWlOb2RlVXJsOiBzdHJpbmc7XG4gIGJsZE5vZGVVcmw6IHN0cmluZztcbiAgYmVyYU5vZGVVcmw6IHN0cmluZztcbiAgemV0YU5vZGVVcmw6IHN0cmluZztcbiAgY29yZXVtTm9kZVVybDogc3RyaW5nO1xuICBydW5lTm9kZVVybDogc3RyaW5nO1xuICBiYWJ5Tm9kZVVybDogc3RyaW5nO1xuICBtYW50cmFOb2RlVXJsOiBzdHJpbmc7XG4gIGNyb25vc05vZGVVcmw6IHN0cmluZztcbiAgaW5pdGlhTm9kZVVybDogc3RyaW5nO1xuICBhc2lOb2RlVXJsOiBzdHJpbmc7XG4gIGlzbG1Ob2RlVXJsOiBzdHJpbmc7XG4gIGRvdE5vZGVVcmxzOiBzdHJpbmdbXTtcbiAgc3Vic3RyYXRlTm9kZVVybHM6IHN0cmluZ1tdO1xuICBwb2x5bWVzaE5vZGVVcmxzOiBzdHJpbmdbXTtcbiAgdHJvbk5vZGVzOiB7XG4gICAgZnVsbDogc3RyaW5nO1xuICAgIHNvbGlkaXR5OiBzdHJpbmc7XG4gIH07XG4gIGhtYWNWZXJpZmljYXRpb25FbmZvcmNlZDogYm9vbGVhbjtcbiAgdG9uTm9kZVVybDogc3RyaW5nO1xuICBzdWlOb2RlVXJsOiBzdHJpbmc7XG4gIGlvdGFOb2RlVXJsOiBzdHJpbmc7XG4gIGV0Y05vZGVVcmw6IHN0cmluZztcbiAgY29yZWRhb0V4cGxvcmVyQmFzZVVybD86IHN0cmluZztcbiAgY29yZWRhb0V4cGxvcmVyQXBpVG9rZW4/OiBzdHJpbmc7XG4gIHhkY0V4cGxvcmVyQmFzZVVybD86IHN0cmluZztcbiAgeGRjRXhwbG9yZXJBcGlUb2tlbj86IHN0cmluZztcbiAgZmxyRXhwbG9yZXJCYXNlVXJsPzogc3RyaW5nO1xuICBmbHJFeHBsb3JlckFwaVRva2VuPzogc3RyaW5nO1xuICBzZ2JFeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIHNnYkV4cGxvcmVyQXBpVG9rZW4/OiBzdHJpbmc7XG4gIGljcE5vZGVVcmw6IHN0cmluZztcbiAga2FzcGFOb2RlVXJsOiBzdHJpbmc7XG4gIHN0YXJrbmV0Tm9kZVVybDogc3RyaW5nO1xuICBoeXBlckxpcXVpZE5vZGVVcmw6IHN0cmluZztcbiAgd2VtaXhFeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIHdlbWl4RXhwbG9yZXJBcGlUb2tlbj86IHN0cmluZztcbiAgbW9uRXhwbG9yZXJCYXNlVXJsPzogc3RyaW5nO1xuICBtb25FeHBsb3JlckFwaVRva2VuPzogc3RyaW5nO1xuICB3b3JsZEV4cGxvcmVyQmFzZVVybD86IHN0cmluZztcbiAgd29ybGRFeHBsb3JlckFwaVRva2VuPzogc3RyaW5nO1xuICBzb21uaWFFeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIHNvbW5pYUV4cGxvcmVyQXBpVG9rZW4/OiBzdHJpbmc7XG4gIHNvbmVpdW1FeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIHNvbmVpdW1FeHBsb3JlckFwaVRva2VuPzogc3RyaW5nO1xuICBzdHhOb2RlVXJsOiBzdHJpbmc7XG4gIHZldE5vZGVVcmw6IHN0cmluZztcbiAgLy8gVGhlIGtleSBoZXJlIGlzIGNvaW5OYW1lIGFuZCBpdCB3aWxsIGJlIHNhbWUgZm9yIGJvdGggbWFpbm5ldCBhbmQgdGVzdG5ldCAoZWc6ICdwaHJzJylcbiAgZXZtPzoge1xuICAgIFtrZXk6IHN0cmluZ106IHtcbiAgICAgIGJhc2VVcmw6IHN0cmluZztcbiAgICAgIGFwaVRva2VuPzogc3RyaW5nO1xuICAgICAgcnBjVXJsPzogc3RyaW5nO1xuICAgICAgdG9rZW5JZD86IG51bWJlcjtcbiAgICAgIHN5c3RlbUFkZHI/OiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbiAgLy8gVGhlIGtleSBoZXJlIGlzIGNvaW5GYW1pbHkgYW5kIGl0IHdpbGwgYmUgc2FtZSBmb3IgYm90aCBtYWlubmV0IGFuZCB0ZXN0bmV0IChlZzogJ2Nyb25vcycpXG4gIGNvc21vcz86IHtcbiAgICBba2V5OiBzdHJpbmddOiB7XG4gICAgICBub2RlVXJsOiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbiAgeHR6RXhwbG9yZXJCYXNlVXJsPzogc3RyaW5nO1xuICB4dHpScGNVcmw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW52aXJvbm1lbnQgZXh0ZW5kcyBFbnZpcm9ubWVudFRlbXBsYXRlIHtcbiAgdXJpOiBzdHJpbmc7XG4gIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBoYXJkY29kZWRQdWJsaWNLZXlzID0gT2JqZWN0LmZyZWV6ZSh7XG4gIHNlcnZlclhwdWI6IHtcbiAgICBwcm9kOiAneHB1YjY2MU15TXdBcVJiY0V0VWd1OUhGOGFpNGlwdVZLS0hCelVxa3M0alNGeXBXOGR3d1FMMXp5Z0xnUXg5OU5tQzd6Skp6blNpd0tHNlJRZlZqQUtNdENzeDhWalI2a1FXOHg3SHJrWEZaZG5RJyxcbiAgICB0ZXN0OiAneHB1YjY2MU15TXdBcVJiY0VyRnFWWEdpVUZ2OVllb1BiaE43MlVpTkNVZGo5bmozVDZNOGg3aUtObWJDWXBNVldWWlA3TEEybWEzSFdjUG5nejFnUlRtNEZQZHRtOW1IZnJOdlU5M01Db3N6c0dMJyxcbiAgfSxcbiAgaHNtWHB1Yjoge1xuICAgIHByb2Q6ICd4cHViNjYxTXlNd0FxUmJjR0V0VEZnTUFveE1Gb3FzUmREYWlhUjYzYnlOZlpkVjdjQlpGdm92UVNOSjVicHllb1F0dUtWZ1hCazZzRlE3VHR2eVdxYWR0NDFEbkt3dmVZZ001S29VMkVLWWpkWTInLFxuICAgIHRlc3Q6ICd4cHViNjYxTXlNd0FxUmJjR0ZLZTRCcXZrNFNncmljNGdORkM4cFVidzR0VWtWalp4dWJqQ0E1MjJnUHpjMVlhWGIzYlFWbURXYzdDakc4QUdOV1JwY2RBVTM4UkVUQmg4bjJibnFFVTRrYlY0b0snLFxuICAgIGRldjogJ3hwdWI2NjFNeU13QXFSYmNGV3pvejhxbllSRFlFRlFwUExZd3hWRm9HNldMeTNjazVadXBSR0pURzRqdTZ5R2I3RGozZXk2R3NDNGtzdExSRVIybkt6Z2pMdG14eVBnQzR6SHk3a1ZoVXQ2eWZHbicsXG4gIH0sXG59KTtcblxuZXhwb3J0IHR5cGUgRW52aXJvbm1lbnROYW1lID1cbiAgfCAncHJvZCdcbiAgfCAnc3RhZ2luZydcbiAgfCAndGVzdCdcbiAgfCAnZGV2J1xuICB8ICdsb2NhbCdcbiAgfCAnbG9jYWxOb25TZWN1cmUnXG4gIHwgJ21vY2snXG4gIHwgJ2FkbWluUHJvZCdcbiAgfCAnYWRtaW5UZXN0J1xuICB8ICdhZG1pblN0YWdpbmcnXG4gIHwgJ2FkbWluRGV2J1xuICB8ICdjdXN0b20nXG4gIHwgJ2JyYW5jaCc7XG5cbmV4cG9ydCB0eXBlIEFsaWFzRW52aXJvbm1lbnROYW1lID0gJ3Byb2R1Y3Rpb24nIHwgJ21zUHJvZCcgfCAnbXNUZXN0JyB8ICdtc0Rldic7XG5cbmV4cG9ydCB0eXBlIEVudmlyb25tZW50cyA9IHsgW2sgaW4gRW52aXJvbm1lbnROYW1lXTogRW52aXJvbm1lbnQgfTtcblxuLy8gYWxpYXMgZW52aXJvbm1lbnRzIGFyZSBlbnZpcm9ubWVudCBuYW1lcyB3aGljaCBhcmUgYWxpYXNlcyBvZiBhIHN1cHBvcnRlZCBlbnZpcm9ubWVudFxuZXhwb3J0IGNvbnN0IEFsaWFzRW52aXJvbm1lbnRzOiB7IFtrIGluIEFsaWFzRW52aXJvbm1lbnROYW1lXTogRW52aXJvbm1lbnROYW1lIH0gPSB7XG4gIHByb2R1Y3Rpb246ICdwcm9kJyxcbiAgbXNQcm9kOiAncHJvZCcsXG4gIG1zVGVzdDogJ3Rlc3QnLFxuICBtc0RldjogJ2RldicsXG59O1xuXG5jb25zdCBtYWlubmV0QmFzZTogRW52aXJvbm1lbnRUZW1wbGF0ZSA9IHtcbiAgbmV0d29yazogJ2JpdGNvaW4nIGFzIFYxTmV0d29yayxcbiAgc2lnbmluZ0FkZHJlc3M6ICcxQml0R28zZ3hSWjZtUVNFSDUyZHZDS1NVZ1ZDQUg0UmphJyxcbiAgc2VydmVyWHB1YjogaGFyZGNvZGVkUHVibGljS2V5cy5zZXJ2ZXJYcHViLnByb2QsXG4gIGhzbVhwdWI6IGhhcmRjb2RlZFB1YmxpY0tleXMuaHNtWHB1Yi5wcm9kLFxuICBidGNFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2Jsb2Nrc3RyZWFtLmluZm8vYXBpJyxcbiAgZXRoZXJzY2FuQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIGV0aGVyc2NhbkFwaVRva2VuOiBwcm9jZXNzLmVudi5FVEhFUlNDQU5fQVBJX1RPS0VOLFxuICBhdmF4Y05ldHdvcmtCYXNlVXJsOiAnaHR0cHM6Ly9hcGkuYXZheC5uZXR3b3JrJyxcbiAgZXRoMkV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vYmVhY29uc2Nhbi5jb20vYXBpJyxcbiAgZXRod0Z1bGxOb2RlUlBDQmFzZVVybDogJ2h0dHBzOi8vbWFpbm5ldC5ldGhlcmV1bXBvdy5vcmcnLFxuICBic2NzY2FuQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIGJzY3NjYW5BcGlUb2tlbjogcHJvY2Vzcy5lbnYuQlNDX0FQSV9UT0tFTixcbiAgcG9seWdvbnNjYW5CYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgcG9seWdvbnNjYW5BcGlUb2tlbjogcHJvY2Vzcy5lbnYuUE9MWUdPTlNDQU5fQVBJX1RPS0VOLFxuICBhcmJpc2NhbkJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICBhcmJpc2NhbkFwaVRva2VuOiBwcm9jZXNzLmVudi5BUkJJU0NBTl9BUElfVE9LRU4sXG4gIG9wdGltaXN0aWNFdGhlcnNjYW5CYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgb3B0aW1pc3RpY0V0aGVyc2NhbkFwaVRva2VuOiBwcm9jZXNzLmVudi5PUFRJTUlTVElDX0VUSEVSU0NBTl9BUElfVE9LRU4sXG4gIHprc3luY0V4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vYmxvY2stZXhwbG9yZXItYXBpLm1haW5uZXQuemtzeW5jLmlvJyxcbiAgemtzeW5jRXhwbG9yZXJBcGlUb2tlbjogcHJvY2Vzcy5lbnYuWktTWU5DX0VYUExPUkVSX0FQSV9UT0tFTixcbiAgYmFzZWV0aEV4cGxvcmVyVXJsOiAnaHR0cHM6Ly9hcGkuYmFzZXNjYW4ub3JnJywgLy9CYXNlRVRIIGV4cGxvcmVyIGFwaSB1cmxcbiAgYmFzZWV0aEFwaVRva2VuOiBwcm9jZXNzLmVudi5CQVNFU0NBTl9BUElfVE9LRU4sXG4gIGVvc05vZGVVcmxzOiBbJ2h0dHBzOi8vYnAuY3J5cHRvbGlvbnMuaW8nLCAnaHR0cHM6Ly9hcGkuZW9zbmV3eW9yay5pbycsICdodHRwczovL2FwaS5lb3NkZXRyb2l0LmlvJ10sXG4gIG5lYXJOb2RlVXJsczogWydodHRwczovL2FwaS5mYXN0bmVhci5jb20nXSxcbiAgc29sTm9kZVVybDogJ2h0dHBzOi8vYXBpLm1haW5uZXQtYmV0YS5zb2xhbmEuY29tJyxcbiAgc29sQWxjaGVteU5vZGVVcmw6ICdodHRwczovL3NvbGFuYS1tYWlubmV0LmcuYWxjaGVteS5jb20vdjInLFxuICBhZGFOb2RlVXJsOiAnaHR0cHM6Ly9hcGkua29pb3MucmVzdC9hcGkvdjEnLFxuICBoYXNoTm9kZVVybDogJ2h0dHBzOi8vYXBpLnByb3ZlbmFuY2UuaW8nLFxuICBpbmpOb2RlVXJsOiAnaHR0cHM6Ly9zZW50cnkubGNkLmluamVjdGl2ZS5uZXR3b3JrJywgLy8gcmVmZXJlbmNlIGh0dHBzOi8vZG9jcy5pbmplY3RpdmUubmV0d29yay9kZXZlbG9wL3B1YmxpYy1lbmRwb2ludHMvXG4gIGF0b21Ob2RlVXJsOiAnaHR0cHM6Ly9yZXN0LmNvc21vcy5kaXJlY3RvcnkvY29zbW9zaHViLycsXG4gIG9zbW9Ob2RlVXJsOiAnaHR0cHM6Ly9sY2Qub3Ntb3Npcy56b25lJyxcbiAgdGlhTm9kZVVybDogJ2h0dHBzOi8vcHVibGljLWNlbGVzdGlhLWxjZC5udW1pYS54eXonLCAvLyByZWZlcmVuY2UgaHR0cHM6Ly9kb2NzLmNlbGVzdGlhLm9yZy9ub2Rlcy9tYWlubmV0I2FwaS1lbmRwb2ludHNcbiAgc2VpTm9kZVVybDogJ2h0dHBzOi8vc2VpLWFwaS5wb2xrYWNodS5jb20nLFxuICBibGROb2RlVXJsOiAnaHR0cHM6Ly9hZ29yaWMtYXBpLnBvbGthY2h1LmNvbScsXG4gIGJlcmFOb2RlVXJsOiAnJywgLy8gVE9ETyhXSU4tNjkzKTogdXBkYXRlIHVybCB3aGVuIG1haW5uZXQgZ29lcyBsaXZlXG4gIHpldGFOb2RlVXJsOiAnaHR0cHM6Ly96ZXRhY2hhaW4uYmxvY2twaS5uZXR3b3JrJywgLy8gcmVmZXJlbmNlIGh0dHBzOi8vd3d3LnpldGFjaGFpbi5jb20vZG9jcy9yZWZlcmVuY2UvYXBpL1xuICBjb3JldW1Ob2RlVXJsOiAnaHR0cHM6Ly9mdWxsLW5vZGUubWFpbm5ldC0xLmNvcmV1bS5kZXY6MTMxNycsXG4gIHJ1bmVOb2RlVXJsOiAnaHR0cHM6Ly90aG9ybm9kZS5uaW5lcmVhbG1zLmNvbScsXG4gIGJhYnlOb2RlVXJsOiAnaHR0cHM6Ly9iYWJ5bG9uLm5vZGVzLmd1cnUvYXBpLycsXG4gIGlzbG1Ob2RlVXJsOiAnaHR0cHM6Ly9yZXN0LmNvc21vcy5oYXFxLm5ldHdvcmsnLFxuICBtYW50cmFOb2RlVXJsOiAnaHR0cHM6Ly9tYW50cmEtcmVzdC5wdWJsaWNub2RlLmNvbS8nLFxuICBjcm9ub3NOb2RlVXJsOiAnaHR0cHM6Ly9jcm9ub3MtcG9zLXJlc3QucHVibGljbm9kZS5jb20vJyxcbiAgaW5pdGlhTm9kZVVybDogJ2h0dHBzOi8vcmVzdC5pbml0aWEueHl6LycsXG4gIGFzaU5vZGVVcmw6ICdodHRwczovL3Jlc3QtZmV0Y2hodWIuZmV0Y2guYWkvJyxcbiAgZG90Tm9kZVVybHM6IFsnd3NzOi8vYXNzZXQtaHViLXBvbGthZG90LXJwYy5uLmR3ZWxsaXIuY29tJ10sXG4gIHN1YnN0cmF0ZU5vZGVVcmxzOiBbJ3dzczovL2VudHJ5cG9pbnQtZmlubmV5Lm9wZW50ZW5zb3IuYWknXSxcbiAgcG9seW1lc2hOb2RlVXJsczogWyd3c3M6Ly9tYWlubmV0LXJwYy5wb2x5bWVzaC5uZXR3b3JrJ10sXG4gIHRyb25Ob2Rlczoge1xuICAgIGZ1bGw6ICdodHRwczovL2FwaS50cm9uZ3JpZC5pbycsXG4gICAgc29saWRpdHk6ICdodHRwczovL2FwaS50cm9uZ3JpZC5pbycsXG4gIH0sXG4gIGhtYWNWZXJpZmljYXRpb25FbmZvcmNlZDogdHJ1ZSxcbiAgdG9uTm9kZVVybDogJ2h0dHBzOi8vdG9uY2VudGVyLmNvbS9hcGkvdjIvanNvblJQQycsXG4gIHN1aU5vZGVVcmw6ICdodHRwczovL2Z1bGxub2RlLm1haW5uZXQuc3VpLmlvJyxcbiAgaW90YU5vZGVVcmw6ICdodHRwczovL2FwaS5tYWlubmV0LmlvdGEuY2FmZScsXG4gIGV0Y05vZGVVcmw6ICdodHRwczovL2V0Yy5ibG9ja3Njb3V0LmNvbScsXG4gIGNvcmVkYW9FeHBsb3JlckJhc2VVcmw6ICdodHRwczovL29wZW5hcGkuY29yZWRhby5vcmcnLFxuICBvYXNFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2V4cGxvcmVyLm9hc3lzLmdhbWVzJyxcbiAgZmxyRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9mbGFyZS1leHBsb3Jlci5mbGFyZS5uZXR3b3JrJyxcbiAgeGRjRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgd2VtaXhFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICBzZ2JFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL3NvbmdiaXJkLWV4cGxvcmVyLmZsYXJlLm5ldHdvcmsnLFxuICBldm06IHtcbiAgICBhYnN0cmFjdGV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmFic2Nhbi5vcmcvYXBpJyxcbiAgICB9LFxuICAgIGFwZWNoYWluOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgICB9LFxuICAgIGNoaWxpejoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmNoaWxpc2Nhbi5jb20nLFxuICAgIH0sXG4gICAgY29kZXhldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2V4cGxvcmVyLmNvZGV4Lnh5ei9hcGknLFxuICAgIH0sXG4gICAgcGhyczoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vdGVzdG5ldC5kcGxhYnMtaW50ZXJuYWwuY29tJywgLy8gVE9ETzogV0lOLTU3ODcgYWRkIG1haW5uZXQgdXJsIHdoZW4gaXRzIGF2YWlsYWJsZVxuICAgIH0sXG4gICAgY3RjOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9jcmVkaXRjb2luLmJsb2Nrc2NvdXQuY29tJyxcbiAgICB9LFxuICAgIGh5cGVldm06IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgICAgLy8gVGhlc2UgYXJlIHVzZWQgZm9yIEJyaWRnaW5nIGFzc2V0cyBvbiBoeXBlIGNoYWluLlxuICAgICAgdG9rZW5JZDogMTUwLFxuICAgICAgc3lzdGVtQWRkcjogJzB4MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMicsXG4gICAgfSxcbiAgICBvZzoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vY2hhaW5zY2FuLjBnLmFpL29wZW4nLFxuICAgIH0sXG4gICAgeHBsOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkucm91dGVzY2FuLmlvL3YyL25ldHdvcmsvbWFpbm5ldC9ldm0vOTc0NS9ldGhlcnNjYW4nLFxuICAgIH0sXG4gICAgc29uaWM6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAgdXNkdDA6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3N0YWJsZXNjYW4ueHl6L2FwaScsXG4gICAgfSxcbiAgICBzZWlldm06IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAga2FpYToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vbWFpbm5ldC1vYXBpLmthaWFzY2FuLmlvJyxcbiAgICB9LFxuICAgIGthdmFldm06IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS52ZXJpZnkubWludHNjYW4uaW8vZXZtL2FwaS8weDhhZScsXG4gICAgfSxcbiAgICBpcnlzOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9ldm0tZXhwbG9yZXIuaXJ5cy54eXovYXBpJyxcbiAgICB9LFxuICAgIG1vbjoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICBsaW5lYWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICBpcDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vd3d3LnN0b3J5c2Nhbi5pbycsXG4gICAgfSxcbiAgICBzb21pOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9tYWlubmV0LnNvbW5pYS53M3VzLnNpdGUnLFxuICAgIH0sXG4gICAgYmFzZWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICBvcGJuYjoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgICBhcGlUb2tlbjogcHJvY2Vzcy5lbnYuRVRIRVJTQ0FOX0FQSV9UT0tFTixcbiAgICB9LFxuICAgIGZhbnRvbToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXIuZmFudG9tLm5ldHdvcmsnLFxuICAgICAgcnBjVXJsOiAnaHR0cHM6Ly9ycGNhcGkuZmFudG9tLm5ldHdvcmsvJyxcbiAgICB9LFxuICAgIHh0emV2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXIuZXRoZXJsaW5rLmNvbS9hcGknLFxuICAgIH0sXG4gICAgZ2FzZXZtOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9uZW94c2Nhbi5uZ2QubmV0d29yay9hcGknLFxuICAgIH0sXG4gICAgZmxvdzoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXZtLmZsb3dzY2FuLmlvJyxcbiAgICB9LFxuICAgIHBsdW1lOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci5wbHVtZS5vcmcnLFxuICAgIH0sXG4gICAgbWVnYWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vbWFpbm5ldC5tZWdhZXRoLmNvbS9ycGMnLFxuICAgIH0sXG4gICAgaGJhcmV2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vbWFpbm5ldC5taXJyb3Jub2RlLmhlZGVyYS5jb20vYXBpL3YxJyxcbiAgICAgIHJwY1VybDogJ2h0dHBzOi8vbWFpbm5ldC5oYXNoaW8uaW8vYXBpJyxcbiAgICB9LFxuICAgIHNjcm9sbGV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLnNjcm9sbHNjYW4uY29tL2FwaScsXG4gICAgfSxcbiAgICBoZW1pZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci5oZW1pLnh5ei9hcGknLFxuICAgIH0sXG4gICAga2F0YW5hZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9rYXRhbmFzY2FuLmNvbS9hcGknLFxuICAgIH0sXG4gICAgaW5rZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci5pbmtvbmNoYWluLmNvbS9hcGknLFxuICAgIH0sXG4gICAgcHJpdmlkaXVtZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci5wcml2aWRpdW0uemtzeW5jLmRldi9hcGknLCAvLyBUT0RPOiB1cGRhdGUgd2l0aCBtYWlubmV0IFVSTCB3aGVuIGF2YWlsYWJsZVxuICAgIH0sXG4gICAgZmx1ZW50ZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9mbHVlbnRzY2FuLnh5ei9hcGkvJyxcbiAgICB9LFxuICAgIG1hbnRsZToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLm1hbnRsZXNjYW4ueHl6L2FwaScsXG4gICAgfSxcbiAgICBqb3ZheWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLnphbi50b3Avbm9kZS92MS9qb3ZheS9tYWlubmV0LycsXG4gICAgfSxcbiAgICBva2J4bGF5ZXI6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3d3dy5va2xpbmsuY29tL2FwaS92NS9leHBsb3Jlci9ibG9jay9ibG9jay1saXN0P2NoYWluU2hvcnROYW1lPXhsYXllcicsXG4gICAgfSxcbiAgICBtb3JwaDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXItYXBpLWhvb2RpLm1vcnBobDIuaW8nLCAvLyBUT0RPOiBXSU4tODEzNCBhZGQgbWFpbm5ldCB1cmwgd2hlbiBhdmFpbGFibGVcbiAgICB9LFxuICAgIG1vcnBoZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci5tb3JwaC5uZXR3b3JrLycsXG4gICAgfSxcbiAgICBkb2dlb3M6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2Jsb2Nrc2NvdXQudGVzdG5ldC5kb2dlb3MuY29tJywgLy9UT0RPOiBXSU4tODA4MiA9PiBhZGQgbWFpbm5ldCB1cmwgd2hlbiBhdmFpbGFibGVcbiAgICB9LFxuICAgIGFyY3VzZGM6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2V4cGxvcmVyLmFyYy5pby9hcGknLCAvLyBXSU4tODg0NCA9PiBhZGQgbWFpbm5ldCB1cmwgd2hlbiBhdmFpbGFibGVcbiAgICB9LFxuICAgIHhkYzoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICB6a3N5bmNlcmE6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAgdW5pZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly91bmljaGFpbi5ibG9ja3Njb3V0LmNvbS9hcGknLFxuICAgIH0sXG4gICAgaG9vZGV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vcm9iaW5ob29kY2hhaW4uYmxvY2tzY291dC5jb20vYXBpJyxcbiAgICB9LFxuICAgIGhwcGV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXIuaHBwLmlvL2FwaScsXG4gICAgfSxcbiAgICBoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9odW1hbml0eS1tYWlubmV0LmV4cGxvcmVyLmFsY2hlbXkuY29tL2FwaScsXG4gICAgfSxcbiAgICBib2JhOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkucm91dGVzY2FuLmlvL3YyL25ldHdvcmsvbWFpbm5ldC9ldm0vMjg4L2V0aGVyc2Nhbi9hcGknLFxuICAgIH0sXG4gICAgdGVtcG86IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3RlbXBvLW1haW5uZXQuZy5hbGNoZW15LmNvbS92Mi8nLFxuICAgIH0sXG4gIH0sXG4gIGljcE5vZGVVcmw6ICdodHRwczovL2ljMC5hcHAnLFxuICBrYXNwYU5vZGVVcmw6ICdodHRwczovL2FwaS5rYXNwYS5vcmcnLFxuICBzdGFya25ldE5vZGVVcmw6ICdodHRwczovL3N0YXJrbmV0LW1haW5uZXQtcnBjLnB1YmxpY25vZGUuY29tLycsXG4gIGh5cGVyTGlxdWlkTm9kZVVybDogJ2h0dHBzOi8vYXBpLmh5cGVybGlxdWlkLnh5eicsXG4gIHdvcmxkRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly93b3JsZHNjYW4ub3JnLycsXG4gIHNvbW5pYUV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vbWFpbm5ldC5zb21uaWEudzN1cy5zaXRlLycsXG4gIHNvbmVpdW1FeHBsb3JlckJhc2VVcmw6ICdodHRwczovL3NvbmVpdW0uYmxvY2tzY291dC5jb20nLFxuICBtb25FeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICBzdHhOb2RlVXJsOiAnaHR0cHM6Ly9hcGkuaGlyby5zbycsXG4gIHZldE5vZGVVcmw6ICdodHRwczovL3N5bmMtbWFpbm5ldC52ZWNoYWluLm9yZycsXG4gIHh0ekV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vYXBpLnR6a3QuaW8nLFxuICB4dHpScGNVcmw6ICdodHRwczovL3JwYy50emt0LmlvL21haW5uZXQnLFxufTtcblxuY29uc3QgdGVzdG5ldEJhc2U6IEVudmlyb25tZW50VGVtcGxhdGUgPSB7XG4gIG5ldHdvcms6ICd0ZXN0bmV0JyBhcyBWMU5ldHdvcmssXG4gIHNpZ25pbmdBZGRyZXNzOiAnbXNpZ25CZEZYdGVlaERFZ0I2RE5tN25wUnQ3QWNFWkpQMycsXG4gIHNlcnZlclhwdWI6IGhhcmRjb2RlZFB1YmxpY0tleXMuc2VydmVyWHB1Yi50ZXN0LFxuICBoc21YcHViOiBoYXJkY29kZWRQdWJsaWNLZXlzLmhzbVhwdWIudGVzdCxcbiAgYnRjRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9ibG9ja3N0cmVhbS5pbmZvL3Rlc3RuZXQvYXBpJyxcbiAgZXRoZXJzY2FuQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIGV0aGVyc2NhbkFwaVRva2VuOiBwcm9jZXNzLmVudi5FVEhFUlNDQU5fQVBJX1RPS0VOLFxuICBhdmF4Y05ldHdvcmtCYXNlVXJsOiAnaHR0cHM6Ly9hcGkuYXZheC10ZXN0Lm5ldHdvcmsnLFxuICBldGgyRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9iZWFjb25zY2FuLmNvbS9hcGknLFxuICBldGh3RnVsbE5vZGVSUENCYXNlVXJsOiAnaHR0cHM6Ly9tYWlubmV0LmV0aGVyZXVtcG93Lm9yZycsXG4gIHBvbHlnb25zY2FuQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIHBvbHlnb25zY2FuQXBpVG9rZW46IHByb2Nlc3MuZW52LlBPTFlHT05TQ0FOX0FQSV9UT0tFTixcbiAgYnNjc2NhbkJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICBic2NzY2FuQXBpVG9rZW46IHByb2Nlc3MuZW52LkJTQ19BUElfVE9LRU4sXG4gIGFyYmlzY2FuQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIGFyYmlzY2FuQXBpVG9rZW46IHByb2Nlc3MuZW52LkFSQklTQ0FOX0FQSV9UT0tFTixcbiAgb3B0aW1pc3RpY0V0aGVyc2NhbkJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICBvcHRpbWlzdGljRXRoZXJzY2FuQXBpVG9rZW46IHByb2Nlc3MuZW52Lk9QVElNSVNUSUNfRVRIRVJTQ0FOX0FQSV9UT0tFTixcbiAgemtzeW5jRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9ibG9jay1leHBsb3Jlci1hcGkuc2Vwb2xpYS56a3N5bmMuZGV2JyxcbiAgemtzeW5jRXhwbG9yZXJBcGlUb2tlbjogcHJvY2Vzcy5lbnYuWktTWU5DX0VYUExPUkVSX0FQSV9UT0tFTixcbiAgYmFzZWV0aEV4cGxvcmVyVXJsOiAnaHR0cHM6Ly9hcGktc2Vwb2xpYS5iYXNlc2Nhbi5vcmcnLFxuICBiYXNlZXRoQXBpVG9rZW46IHByb2Nlc3MuZW52LkJBU0VTQ0FOX0FQSV9UT0tFTixcbiAgLy8ga3lsaW4gZW9zIGVuZHBvaW50cyBmb3VuZCBoZXJlXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9jcnlwdG9reWxpbi9DcnlwdG9LeWxpbi1UZXN0bmV0I2h0dHAtYXBpLWxpc3RcbiAgLy8gaHR0cHM6Ly9kb2NzLmxpcXVpZGFwcHMuaW8vbGlxdWlkYXBwcy1kb2N1bWVudGF0aW9uL2Vvc2lvLWd1aWRlcy90ZXN0bmV0LWNyZWF0aW9uLWd1aWRlcy9jcmVhdGluZy1jcnlwdG9reWxpbi1hY2NvdW50I3NldHVwXG4gIGVvc05vZGVVcmxzOiBbJ2h0dHBzOi8va3lsaW4uZW9zbi5pbycsICdodHRwczovL2FwaS5reWxpbi5hbG9oYWVvcy5jb20nXSxcbiAgbmVhck5vZGVVcmxzOiBbJ2h0dHBzOi8vdGVzdC5ycGMuZmFzdG5lYXIuY29tJ10sXG4gIHNvbE5vZGVVcmw6ICdodHRwczovL2FwaS5kZXZuZXQuc29sYW5hLmNvbScsXG4gIHNvbEFsY2hlbXlOb2RlVXJsOiAnaHR0cHM6Ly9zb2xhbmEtZGV2bmV0LmcuYWxjaGVteS5jb20vdjInLFxuICBhZGFOb2RlVXJsOiAnaHR0cHM6Ly9wcmVwcm9kLmtvaW9zLnJlc3QvYXBpL3YxJyxcbiAgaGFzaE5vZGVVcmw6ICdodHRwczovL2FwaS50ZXN0LnByb3ZlbmFuY2UuaW8nLFxuICBpbmpOb2RlVXJsOiAnaHR0cHM6Ly90ZXN0bmV0LnNlbnRyeS5sY2QuaW5qZWN0aXZlLm5ldHdvcmsnLCAvLyBDT0lOLTEyMTkgOiByZWZlcmVuY2UgIGh0dHBzOi8vZG9jcy5pbmplY3RpdmUubmV0d29yay9kZXZlbG9wL3B1YmxpYy1lbmRwb2ludHMvI3Rlc3RuZXRcbiAgYXRvbU5vZGVVcmw6ICdodHRwczovL3Jlc3QucHJvdmlkZXItc2VudHJ5LTAyLmljcy10ZXN0bmV0LnBvbHlwb3JlLnh5ei8nLFxuICBvc21vTm9kZVVybDogJ2h0dHBzOi8vbGNkLm9zbW90ZXN0NS5vc21vc2lzLnpvbmUnLFxuICB0aWFOb2RlVXJsOiAnaHR0cHM6Ly9hcGktbW9jaGEucG9wcy5vbmUnLFxuICBzZWlOb2RlVXJsOiAnaHR0cHM6Ly9yZXN0LmF0bGFudGljLTIuc2VpbmV0d29yay5pbycsXG4gIGJsZE5vZGVVcmw6ICdodHRwczovL2Rldm5ldC5hcGkuYWdvcmljLm5ldCcsXG4gIGJlcmFOb2RlVXJsOiAnJywgLy8gVE9ETyhXSU4tNjkzKTogdXBkYXRlIHVybCB3aGVuIHRlc3RuZXQgZ29lcyBsaXZlXG4gIHpldGFOb2RlVXJsOiAnaHR0cHM6Ly9yZXN0Lm5vZGVqdW1wZXIuaW8vemV0YWNoYWludGVzdG5ldCcsIC8vIHJlZmVyZW5jZSA6IGh0dHBzOi8vd3d3LnpldGFjaGFpbi5jb20vZG9jcy9yZWZlcmVuY2UvYXBpL1xuICBjb3JldW1Ob2RlVXJsOiAnaHR0cHM6Ly9mdWxsLW5vZGUudGVzdG5ldC0xLmNvcmV1bS5kZXY6MTMxNycsXG4gIHJ1bmVOb2RlVXJsOiAnaHR0cHM6Ly9zdGFnZW5ldC10aG9ybm9kZS5uaW5lcmVhbG1zLmNvbScsXG4gIGJhYnlOb2RlVXJsOiAnaHR0cHM6Ly9iYWJ5bG9uLXRlc3RuZXQtYXBpLm5vZGVzLmd1cnUvJyxcbiAgaXNsbU5vZGVVcmw6ICdodHRwczovL3Jlc3QuY29zbW9zLnRlc3RlZGdlMi5oYXFxLm5ldHdvcmsgJyxcbiAgbWFudHJhTm9kZVVybDogJ2h0dHBzOi8vbWFudHJhLXRlc3RuZXQtcmVzdC5wdWJsaWNub2RlLmNvbS8nLFxuICBjcm9ub3NOb2RlVXJsOiAnaHR0cHM6Ly90ZXN0bmV0LWNyb2VzZWlkLTQuY3J5cHRvLm9yZzoxMzE3LycsXG4gIGluaXRpYU5vZGVVcmw6ICdodHRwczovL3Jlc3QudGVzdG5ldC5pbml0aWEueHl6LycsXG4gIGFzaU5vZGVVcmw6ICdodHRwczovL3Jlc3QtZG9yYWRvLmZldGNoLmFpLycsXG4gIGRvdE5vZGVVcmxzOiBbJ3dzczovL2Fzc2V0LWh1Yi13ZXN0ZW5kLXJwYy5uLmR3ZWxsaXIuY29tJ10sXG4gIHN1YnN0cmF0ZU5vZGVVcmxzOiBbJ3dzczovL3Rlc3QuZmlubmV5Lm9wZW50ZW5zb3IuYWknXSxcbiAgcG9seW1lc2hOb2RlVXJsczogWyd3c3M6Ly90ZXN0bmV0LXJwYy5wb2x5bWVzaC5saXZlJ10sXG4gIHRyb25Ob2Rlczoge1xuICAgIGZ1bGw6ICdodHRwczovL2FwaS5zaGFzdGEudHJvbmdyaWQuaW8nLFxuICAgIHNvbGlkaXR5OiAnaHR0cHM6Ly9hcGkuc2hhc3RhLnRyb25ncmlkLmlvJyxcbiAgfSxcbiAgaG1hY1ZlcmlmaWNhdGlvbkVuZm9yY2VkOiBmYWxzZSxcbiAgdG9uTm9kZVVybDogJ2h0dHBzOi8vdGVzdG5ldC50b25jZW50ZXIuY29tL2FwaS92Mi9qc29uUlBDJyxcbiAgc3VpTm9kZVVybDogJ2h0dHBzOi8vZnVsbG5vZGUudGVzdG5ldC5zdWkuaW8nLFxuICBpb3RhTm9kZVVybDogJ2h0dHBzOi8vYXBpLnRlc3RuZXQuaW90YS5jYWZlJyxcbiAgZXRjTm9kZVVybDogJ2h0dHBzOi8vZXRjLW1vcmRvci5ibG9ja3Njb3V0LmNvbScsXG4gIGNvcmVkYW9FeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2FwaS50ZXN0Mi5idGNzLm5ldHdvcmsnLFxuICBvYXNFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2V4cGxvcmVyLnRlc3RuZXQub2FzeXMuZ2FtZXMnLFxuICB3ZW1peEV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIGZsckV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vY29zdG9uMi1leHBsb3Jlci5mbGFyZS5uZXR3b3JrJyxcbiAgeGRjRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgc2diRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9jb3N0b24tZXhwbG9yZXIuZmxhcmUubmV0d29yaycsXG4gIGljcE5vZGVVcmw6ICdodHRwczovL2ljMC5hcHAnLFxuICBrYXNwYU5vZGVVcmw6ICdodHRwczovL2FwaS10bjEwLmthc3BhLm9yZycsXG4gIHN0YXJrbmV0Tm9kZVVybDogJ2h0dHBzOi8vc3RhcmtuZXQtc2Vwb2xpYS1ycGMucHVibGljbm9kZS5jb20vJyxcbiAgaHlwZXJMaXF1aWROb2RlVXJsOiAnaHR0cHM6Ly9hcGkuaHlwZXJsaXF1aWQtdGVzdG5ldC54eXonLFxuICBtb25FeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICB3b3JsZEV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vc2Vwb2xpYS53b3JsZHNjYW4ub3JnLycsXG4gIHNvbW5pYUV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vc2hhbm5vbi1leHBsb3Jlci5zb21uaWEubmV0d29yay8nLFxuICBzb25laXVtRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9zb25laXVtLW1pbmF0by5ibG9ja3Njb3V0LmNvbScsXG4gIGV2bToge1xuICAgIGFic3RyYWN0ZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkuc2Vwb2xpYS5hYnNjYW4ub3JnL2FwaScsXG4gICAgfSxcbiAgICBhcGVjaGFpbjoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICBjaGlsaXo6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS50ZXN0bmV0LmNoaWxpc2Nhbi5jb20nLFxuICAgIH0sXG4gICAgY29kZXhldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2V4cGxvcmVyLmNvZGV4LXN0Zy54eXovYXBpJyxcbiAgICB9LFxuICAgIHBocnM6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3Rlc3RuZXQuZHBsYWJzLWludGVybmFsLmNvbScsIC8vIFdyb25nIHZhbHVlLCBOb3QgYXZhaWxhYmxlIHlldFxuICAgIH0sXG4gICAgY3RjOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9jcmVkaXRjb2luLXRlc3RuZXQuYmxvY2tzY291dC5jb20nLFxuICAgIH0sXG4gICAgaHlwZWV2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vcnBjLmh5cGVybGlxdWlkLXRlc3RuZXQueHl6L2V2bScsIC8vIE5vdCBBdmFpbGFibGVcbiAgICAgIC8vIFRoZXNlIGFyZSB1c2VkIGZvciBCcmlkZ2luZyBhc3NldHMgb24gaHlwZSBjaGFpbi5cbiAgICAgIHRva2VuSWQ6IDExMDUsXG4gICAgICBzeXN0ZW1BZGRyOiAnMHgyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyJyxcbiAgICB9LFxuICAgIG9nOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9jaGFpbnNjYW4tdGVzdC4wZy5haS9vcGVuJyxcbiAgICB9LFxuICAgIHhwbDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLnJvdXRlc2Nhbi5pby92Mi9uZXR3b3JrL3Rlc3RuZXQvZXZtLzk3NDZfNS9ldGhlcnNjYW4nLFxuICAgIH0sXG4gICAgc29uaWM6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAgdXNkdDA6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3Rlc3RuZXQuc3RhYmxlc2Nhbi54eXovYXBpJyxcbiAgICB9LFxuICAgIHNlaWV2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICBrYWlhOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9rYWlyb3Mtb2FwaS5rYWlhc2Nhbi5pbycsXG4gICAgfSxcbiAgICBrYXZhZXZtOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkudmVyaWZ5Lm1pbnRzY2FuLmlvL2V2bS9hcGkvMHg4YWQnLFxuICAgIH0sXG4gICAgaXJ5czoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vaW5zdC0xLmNsb3VkLmJsb2Nrc2NvdXQuY29tL2FwaScsXG4gICAgfSxcbiAgICBtb246IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAgbGluZWFldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAgaXA6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FlbmVpZC5zdG9yeXNjYW4uaW8nLFxuICAgIH0sXG4gICAgdGJhc2VldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAgdG9wYm5iOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgICAgIGFwaVRva2VuOiBwcm9jZXNzLmVudi5FVEhFUlNDQU5fQVBJX1RPS0VOLFxuICAgIH0sXG4gICAgeHR6ZXZtOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9zaGFkb3duZXQuZXhwbG9yZXIuZXRoZXJsaW5rLmNvbS9hcGknLFxuICAgIH0sXG4gICAgdGdhc2V2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vbmVveHQ0c2Nhbi5uZ2QubmV0d29yay9hcGknLFxuICAgIH0sXG4gICAgZmxvdzoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXZtLXRlc3RuZXQuZmxvd3NjYW4uaW8nLFxuICAgIH0sXG4gICAgbWVnYWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vY2Fycm90Lm1lZ2FldGguY29tL3JwYycsXG4gICAgfSxcbiAgICBwbHVtZToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vdGVzdG5ldC1leHBsb3Jlci5wbHVtZS5vcmcnLFxuICAgIH0sXG4gICAgaGJhcmV2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vdGVzdG5ldC5taXJyb3Jub2RlLmhlZGVyYS5jb20vYXBpL3YxJyxcbiAgICAgIHJwY1VybDogJ2h0dHBzOi8vdGVzdG5ldC5oYXNoaW8uaW8vYXBpJyxcbiAgICB9LFxuICAgIHRzY3JvbGxldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS1zZXBvbGlhLnNjcm9sbHNjYW4uY29tL2FwaScsXG4gICAgfSxcbiAgICBoZW1pZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly90ZXN0bmV0LmV4cGxvcmVyLmhlbWkueHl6L2FwaScsXG4gICAgfSxcbiAgICB0a2F0YW5hZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci1ib2t1dG8ua2F0YW5hcnBjLmNvbS9hcGknLFxuICAgIH0sXG4gICAgdGlua2V0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXItc2Vwb2xpYS5pbmtvbmNoYWluLmNvbS9hcGknLFxuICAgIH0sXG4gICAgcHJpdmlkaXVtZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci50ZXN0bmV0LXByaXZpZGl1bS56a3N5bmMuZGV2L2FwaScsXG4gICAgfSxcbiAgICBmbHVlbnRldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3Rlc3RuZXQuZmx1ZW50c2Nhbi54eXovYXBpLycsXG4gICAgfSxcbiAgICBtYW50bGU6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS1zZXBvbGlhLm1hbnRsZXNjYW4ueHl6L2FwaScsXG4gICAgfSxcbiAgICBqb3ZheWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLnphbi50b3Avbm9kZS92MS9qb3ZheS90ZXN0bmV0LycsXG4gICAgfSxcbiAgICBva2J4bGF5ZXI6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3d3dy5va2xpbmsuY29tL2FwaS92NS9leHBsb3Jlci9ibG9jay9ibG9jay1saXN0P2NoYWluU2hvcnROYW1lPXhsYXllcl90ZXN0bmV0JyxcbiAgICB9LFxuICAgIG1vcnBoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci1hcGktaG9vZGkubW9ycGhsMi5pbycsXG4gICAgfSxcbiAgICBtb3JwaGV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXItaG9vZGkubW9ycGgubmV0d29yay8nLFxuICAgIH0sXG4gICAgZG9nZW9zOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9ibG9ja3Njb3V0LnRlc3RuZXQuZG9nZW9zLmNvbScsXG4gICAgfSxcbiAgICBhcmN1c2RjOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly90ZXN0bmV0LmFyY3NjYW4uYXBwL2FwaScsIC8vIFdJTi04ODQ0ID0+IGFkZCBtYWlubmV0IHVybCB3aGVuIGF2YWlsYWJsZVxuICAgIH0sXG4gICAgeGRjOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgICB9LFxuICAgIHprc3luY2VyYToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICB1bmlldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3VuaWNoYWluLXNlcG9saWEuYmxvY2tzY291dC5jb20vYXBpJyxcbiAgICB9LFxuICAgIGhvb2RldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2V4cGxvcmVyLnRlc3RuZXQuY2hhaW4ucm9iaW5ob29kLmNvbS9hcGknLFxuICAgIH0sXG4gICAgaHBwZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9zZXBvbGlhLWV4cGxvcmVyLmhwcC5pby9hcGknLFxuICAgIH0sXG4gICAgaDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vaHVtYW5pdHktdGVzdG5ldC5leHBsb3Jlci5hbGNoZW15LmNvbS9hcGknLFxuICAgIH0sXG4gICAgYm9iYToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLnJvdXRlc2Nhbi5pby92Mi9uZXR3b3JrL3Rlc3RuZXQvZXZtLzI4ODgyL2V0aGVyc2Nhbi9hcGknLFxuICAgIH0sXG4gICAgdGVtcG86IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3RlbXBvLW1vZGVyYXRvLmcuYWxjaGVteS5jb20vdjIvJyxcbiAgICB9LFxuICB9LFxuICBzdHhOb2RlVXJsOiAnaHR0cHM6Ly9hcGkudGVzdG5ldC5oaXJvLnNvJyxcbiAgdmV0Tm9kZVVybDogJ2h0dHBzOi8vc3luYy10ZXN0bmV0LnZlY2hhaW4ub3JnJyxcbiAgeHR6RXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZ2hvc3RuZXQudHprdC5pbycsXG4gIHh0elJwY1VybDogJ2h0dHBzOi8vcnBjLnR6a3QuaW8vZ2hvc3RuZXQnLFxufTtcblxuY29uc3QgZGV2QmFzZTogRW52aXJvbm1lbnRUZW1wbGF0ZSA9IE9iamVjdC5hc3NpZ24oe30sIHRlc3RuZXRCYXNlLCB7XG4gIGhzbVhwdWI6IGhhcmRjb2RlZFB1YmxpY0tleXMuaHNtWHB1Yi5kZXYsXG4gIGhtYWNWZXJpZmljYXRpb25FbmZvcmNlZDogZmFsc2UsXG59KTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlZGVjbGFyZVxuZXhwb3J0IGNvbnN0IEVudmlyb25tZW50czogRW52aXJvbm1lbnRzID0ge1xuICBwcm9kOiBPYmplY3QuYXNzaWduKHt9LCBtYWlubmV0QmFzZSwge1xuICAgIHVyaTogJ2h0dHBzOi8vYXBwLmJpdGdvLmNvbScsXG4gICAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6ICdodHRwczovL2FwcC5iaXRnby5jb20vYXBpL3YyL3hsbS9mZWRlcmF0aW9uJyxcbiAgfSksXG4gIHRlc3Q6IE9iamVjdC5hc3NpZ24oe30sIHRlc3RuZXRCYXNlLCB7XG4gICAgdXJpOiAnaHR0cHM6Ly9hcHAuYml0Z28tdGVzdC5jb20nLFxuICAgIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsOiAnaHR0cHM6Ly9hcHAuYml0Z28tdGVzdC5jb20vYXBpL3YyL3R4bG0vZmVkZXJhdGlvbicsXG4gIH0pLFxuICBkZXY6IE9iamVjdC5hc3NpZ24oe30sIGRldkJhc2UsIHtcbiAgICB1cmk6ICdodHRwczovL2FwcC5iaXRnby1kZXYuY29tJyxcbiAgICBzdGVsbGFyRmVkZXJhdGlvblNlcnZlclVybDogJ2h0dHBzOi8vYXBwLmJpdGdvLWRldi5jb20vYXBpL3YyL3R4bG0vZmVkZXJhdGlvbicsXG4gIH0pLFxuICBzdGFnaW5nOiBPYmplY3QuYXNzaWduKHt9LCB0ZXN0bmV0QmFzZSwge1xuICAgIHVyaTogJ2h0dHBzOi8vYXBwLmJpdGdvLXN0YWdpbmcuY29tJyxcbiAgICBzdGVsbGFyRmVkZXJhdGlvblNlcnZlclVybDogJ2h0dHBzOi8vYXBwLmJpdGdvLXN0YWdpbmcuY29tL2FwaS92Mi90eGxtL2ZlZGVyYXRpb24nLFxuICB9KSxcbiAgbG9jYWw6IE9iamVjdC5hc3NpZ24oe30sIGRldkJhc2UsIHtcbiAgICB1cmk6ICdodHRwczovL2xvY2FsaG9zdDozMDAwJyxcbiAgICBzdGVsbGFyRmVkZXJhdGlvblNlcnZlclVybDogJ2h0dHBzOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YyL3R4bG0vZmVkZXJhdGlvbicsXG4gIH0pLFxuICBsb2NhbE5vblNlY3VyZTogT2JqZWN0LmFzc2lnbih7fSwgZGV2QmFzZSwge1xuICAgIHVyaTogJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMCcsXG4gICAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6ICdodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3YyL3R4bG0vZmVkZXJhdGlvbicsXG4gIH0pLFxuICBtb2NrOiBPYmplY3QuYXNzaWduKHt9LCBkZXZCYXNlLCB7XG4gICAgdXJpOiAnaHR0cHM6Ly9iaXRnby5mYWtldXJsJyxcbiAgICBzdGVsbGFyRmVkZXJhdGlvblNlcnZlclVybDogJ2h0dHBzOi8vYml0Z28uZmFrZXVybC9hcGkvdjIvdHhsbS9mZWRlcmF0aW9uJyxcbiAgICBldGhlcnNjYW5CYXNlVXJsOiAnaHR0cHM6Ly9hcGktaG9vZGkuZXRoZXJzY2FuLmZha2V1cmwnLFxuICAgIGV0aGVyc2NhbkFwaVRva2VuOiBwcm9jZXNzLmVudi5FVEhFUlNDQU5fQVBJX1RPS0VOLFxuICAgIGF2YXhjTmV0d29ya0Jhc2VVcmw6ICdodHRwczovL2FwaS5hdmF4LXRlc3QubmV0d29yay5mYWtldXJsJyxcbiAgICBldGgyRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9iZWFjb25zY2FuLmNvbS9hcGknLFxuICB9KSxcbiAgYWRtaW5Qcm9kOiBPYmplY3QuYXNzaWduKHt9LCBtYWlubmV0QmFzZSwge1xuICAgIHVyaTogJ2h0dHBzOi8vYWRtaW4uYml0Z28uY29tJyxcbiAgICBzdGVsbGFyRmVkZXJhdGlvblNlcnZlclVybDogJ2h0dHBzOi8vYWRtaW4uYml0Z28uY29tL2FwaS92Mi94bG0vZmVkZXJhdGlvbicsXG4gIH0pLFxuICBhZG1pblRlc3Q6IE9iamVjdC5hc3NpZ24oe30sIHRlc3RuZXRCYXNlLCB7XG4gICAgdXJpOiAnaHR0cHM6Ly9hZG1pbi5iaXRnby10ZXN0LmNvbScsXG4gICAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6ICdodHRwczovL2FkbWluLmJpdGdvLXRlc3QuY29tL2FwaS92Mi90eGxtL2ZlZGVyYXRpb24nLFxuICB9KSxcbiAgYWRtaW5EZXY6IE9iamVjdC5hc3NpZ24oe30sIGRldkJhc2UsIHtcbiAgICB1cmk6ICdodHRwczovL2FkbWluLmJpdGdvLWRldi5jb20nLFxuICAgIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsOiAnaHR0cHM6Ly9hZG1pbi5iaXRnby1kZXYuY29tL2FwaS92Mi90eGxtL2ZlZGVyYXRpb24nLFxuICB9KSxcbiAgYWRtaW5TdGFnaW5nOiBPYmplY3QuYXNzaWduKHt9LCB0ZXN0bmV0QmFzZSwge1xuICAgIHVyaTogJ2h0dHBzOi8vYWRtaW4uYml0Z28tc3RhZ2luZy5jb20nLFxuICAgIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsOiAnaHR0cHM6Ly9hZG1pbi5iaXRnby1zdGFnaW5nLmNvbS9hcGkvdjIveGxtL2ZlZGVyYXRpb24nLFxuICB9KSxcbiAgY3VzdG9tOiBPYmplY3QuYXNzaWduKHt9LCBtYWlubmV0QmFzZSwge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgdXJpOiBwcm9jZXNzLmVudi5CSVRHT19DVVNUT01fUk9PVF9VUkkhLFxuICAgIG5ldHdvcms6IHByb2Nlc3MuZW52LkJJVEdPX0NVU1RPTV9CSVRDT0lOX05FVFdPUksgYXMgVjFOZXR3b3JrLFxuICAgIGhzbVhwdWI6XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nID8gaGFyZGNvZGVkUHVibGljS2V5cy5oc21YcHViLnByb2QgOiBoYXJkY29kZWRQdWJsaWNLZXlzLmhzbVhwdWIudGVzdCxcbiAgICBidGNFeHBsb3JlckJhc2VVcmw6XG4gICAgICBwcm9jZXNzLmVudi5CSVRHT19DVVNUT01fQklUQ09JTl9ORVRXT1JLICE9PSAnYml0Y29pbidcbiAgICAgICAgPyAnaHR0cHM6Ly9ibG9ja3N0cmVhbS5pbmZvL3Rlc3RuZXQvYXBpJ1xuICAgICAgICA6ICdodHRwczovL2Jsb2Nrc3RyZWFtLmluZm8vYXBpJyxcbiAgICBldGhlcnNjYW5CYXNlVXJsOlxuICAgICAgcHJvY2Vzcy5lbnYuQklUR09fQ1VTVE9NX0VUSEVSRVVNX05FVFdPUksgIT09ICdldGhlcmV1bSdcbiAgICAgICAgPyAnaHR0cHM6Ly9hcGktaG9vZGkuZXRoZXJzY2FuLmlvJ1xuICAgICAgICA6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8nLFxuICAgIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsOlxuICAgICAgcHJvY2Vzcy5lbnYuQklUR09fQ1VTVE9NX1NURUxMQVJfTkVUV09SSyAhPT0gJ3N0ZWxsYXInXG4gICAgICAgID8gYGh0dHBzOi8vJHtwcm9jZXNzLmVudi5CSVRHT19DVVNUT01fUk9PVF9VUkl9L2FwaS92Mi90eGxtL2ZlZGVyYXRpb25gXG4gICAgICAgIDogYGh0dHBzOi8vJHtwcm9jZXNzLmVudi5CSVRHT19DVVNUT01fUk9PVF9VUkl9L2FwaS92Mi94bG0vZmVkZXJhdGlvbmAsXG4gICAgc2VydmVyWHB1YjpcbiAgICAgIHByb2Nlc3MuZW52LkJJVEdPX0NVU1RPTV9CSVRDT0lOX05FVFdPUksgIT09ICdiaXRjb2luJ1xuICAgICAgICA/IGhhcmRjb2RlZFB1YmxpY0tleXMuc2VydmVyWHB1Yi50ZXN0XG4gICAgICAgIDogaGFyZGNvZGVkUHVibGljS2V5cy5zZXJ2ZXJYcHViLnByb2QsXG4gIH0pLFxuICBicmFuY2g6IE9iamVjdC5hc3NpZ24oe30sIGRldkJhc2UsIHtcbiAgICB1cmk6ICdodHRwczovL2FwcC5iaXRnby1kZXYuY29tJyxcbiAgICBzdGVsbGFyRmVkZXJhdGlvblNlcnZlclVybDogJ2h0dHBzOi8vYXBwLmJpdGdvLWRldi5jb20vYXBpL3YyL3R4bG0vZmVkZXJhdGlvbicsXG4gIH0pLFxufTtcbiJdfQ==
565
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JpdGdvL2Vudmlyb25tZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF1SGEsUUFBQSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQy9DLFVBQVUsRUFBRTtRQUNWLElBQUksRUFBRSxpSEFBaUg7UUFDdkgsSUFBSSxFQUFFLGlIQUFpSDtLQUN4SDtJQUNELE9BQU8sRUFBRTtRQUNQLElBQUksRUFBRSxpSEFBaUg7UUFDdkgsSUFBSSxFQUFFLGlIQUFpSDtRQUN2SCxHQUFHLEVBQUUsaUhBQWlIO0tBQ3ZIO0NBQ0YsQ0FBQyxDQUFDO0FBcUJILHdGQUF3RjtBQUMzRSxRQUFBLGlCQUFpQixHQUFxRDtJQUNqRixVQUFVLEVBQUUsTUFBTTtJQUNsQixNQUFNLEVBQUUsTUFBTTtJQUNkLE1BQU0sRUFBRSxNQUFNO0lBQ2QsS0FBSyxFQUFFLEtBQUs7Q0FDYixDQUFDO0FBRUYsTUFBTSxXQUFXLEdBQXdCO0lBQ3ZDLE9BQU8sRUFBRSxTQUFzQjtJQUMvQixjQUFjLEVBQUUsb0NBQW9DO0lBQ3BELFVBQVUsRUFBRSwyQkFBbUIsQ0FBQyxVQUFVLENBQUMsSUFBSTtJQUMvQyxPQUFPLEVBQUUsMkJBQW1CLENBQUMsT0FBTyxDQUFDLElBQUk7SUFDekMsa0JBQWtCLEVBQUUsOEJBQThCO0lBQ2xELGdCQUFnQixFQUFFLDZCQUE2QjtJQUMvQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQjtJQUNsRCxtQkFBbUIsRUFBRSwwQkFBMEI7SUFDL0MsbUJBQW1CLEVBQUUsNEJBQTRCO0lBQ2pELHNCQUFzQixFQUFFLGlDQUFpQztJQUN6RCxjQUFjLEVBQUUsNkJBQTZCO0lBQzdDLGVBQWUsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWE7SUFDMUMsa0JBQWtCLEVBQUUsNkJBQTZCO0lBQ2pELG1CQUFtQixFQUFF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QUU7UUFDakMsR0FBRyxFQUFFLDJCQUEyQjtRQUNoQywwQkFBMEIsRUFBRSxrREFBa0Q7S0FDL0UsQ0FBQztDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgeyBWMU5ldHdvcmsgfSBmcm9tICcuL3R5cGVzJztcblxuaW50ZXJmYWNlIEVudmlyb25tZW50VGVtcGxhdGUge1xuICB1cmk/OiBzdHJpbmc7XG4gIG5ldHdvcms6IFYxTmV0d29yaztcbiAgc2lnbmluZ0FkZHJlc3M6IHN0cmluZztcbiAgc2VydmVyWHB1Yjogc3RyaW5nO1xuICBoc21YcHViOiBzdHJpbmc7XG4gIGJ0Y0V4cGxvcmVyQmFzZVVybDogc3RyaW5nO1xuICBldGhlcnNjYW5CYXNlVXJsOiBzdHJpbmc7XG4gIGV0aGVyc2NhbkFwaVRva2VuPzogc3RyaW5nO1xuICBhdmF4Y05ldHdvcmtCYXNlVXJsOiBzdHJpbmc7XG4gIGV0aDJFeHBsb3JlckJhc2VVcmw6IHN0cmluZztcbiAgZXRod0Z1bGxOb2RlUlBDQmFzZVVybDogc3RyaW5nO1xuICBwb2x5Z29uc2NhbkJhc2VVcmw/OiBzdHJpbmc7XG4gIGJzY3NjYW5CYXNlVXJsPzogc3RyaW5nO1xuICBic2NzY2FuQXBpVG9rZW4/OiBzdHJpbmc7XG4gIHBvbHlnb25zY2FuQXBpVG9rZW4/OiBzdHJpbmc7XG4gIGFwZWNoYWluRXhwbG9yZXJBcGlUb2tlbj86IHN0cmluZztcbiAgYXBlY2hhaW5FeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIGFyYmlzY2FuQmFzZVVybD86IHN0cmluZztcbiAgYXJiaXNjYW5BcGlUb2tlbj86IHN0cmluZztcbiAgb2FzRXhwbG9yZXJBcGlUb2tlbj86IHN0cmluZztcbiAgb2FzRXhwbG9yZXJCYXNlVXJsPzogc3RyaW5nO1xuICBvcHRpbWlzdGljRXRoZXJzY2FuQmFzZVVybD86IHN0cmluZztcbiAgb3B0aW1pc3RpY0V0aGVyc2NhbkFwaVRva2VuPzogc3RyaW5nO1xuICB6a3N5bmNFeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIHprc3luY0V4cGxvcmVyQXBpVG9rZW4/OiBzdHJpbmc7XG4gIGJlcmFFeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIGJlcmFFeHBsb3JlckFwaVRva2VuPzogc3RyaW5nO1xuICBiYXNlZXRoRXhwbG9yZXJVcmw/OiBzdHJpbmc7XG4gIGJhc2VldGhBcGlUb2tlbj86IHN0cmluZztcbiAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw/OiBzdHJpbmc7XG4gIGVvc05vZGVVcmxzOiBzdHJpbmdbXTtcbiAgbmVhck5vZGVVcmxzOiBzdHJpbmdbXTtcbiAgc29sTm9kZVVybDogc3RyaW5nO1xuICBzb2xBbGNoZW15Tm9kZVVybDogc3RyaW5nO1xuICBhZGFOb2RlVXJsOiBzdHJpbmc7XG4gIGhhc2hOb2RlVXJsOiBzdHJpbmc7XG4gIGluak5vZGVVcmw6IHN0cmluZztcbiAgYXRvbU5vZGVVcmw6IHN0cmluZztcbiAgb3Ntb05vZGVVcmw6IHN0cmluZztcbiAgdGlhTm9kZVVybDogc3RyaW5nO1xuICBzZWlOb2RlVXJsOiBzdHJpbmc7XG4gIGJsZE5vZGVVcmw6IHN0cmluZztcbiAgYmVyYU5vZGVVcmw6IHN0cmluZztcbiAgemV0YU5vZGVVcmw6IHN0cmluZztcbiAgY29yZXVtTm9kZVVybDogc3RyaW5nO1xuICBydW5lTm9kZVVybDogc3RyaW5nO1xuICBiYWJ5Tm9kZVVybDogc3RyaW5nO1xuICBtYW50cmFOb2RlVXJsOiBzdHJpbmc7XG4gIGNyb25vc05vZGVVcmw6IHN0cmluZztcbiAgaW5pdGlhTm9kZVVybDogc3RyaW5nO1xuICBhc2lOb2RlVXJsOiBzdHJpbmc7XG4gIGlzbG1Ob2RlVXJsOiBzdHJpbmc7XG4gIGRvdE5vZGVVcmxzOiBzdHJpbmdbXTtcbiAgc3Vic3RyYXRlTm9kZVVybHM6IHN0cmluZ1tdO1xuICBwb2x5bWVzaE5vZGVVcmxzOiBzdHJpbmdbXTtcbiAgdHJvbk5vZGVzOiB7XG4gICAgZnVsbDogc3RyaW5nO1xuICAgIHNvbGlkaXR5OiBzdHJpbmc7XG4gIH07XG4gIGhtYWNWZXJpZmljYXRpb25FbmZvcmNlZDogYm9vbGVhbjtcbiAgdG9uTm9kZVVybDogc3RyaW5nO1xuICBzdWlOb2RlVXJsOiBzdHJpbmc7XG4gIGlvdGFOb2RlVXJsOiBzdHJpbmc7XG4gIGV0Y05vZGVVcmw6IHN0cmluZztcbiAgY29yZWRhb0V4cGxvcmVyQmFzZVVybD86IHN0cmluZztcbiAgY29yZWRhb0V4cGxvcmVyQXBpVG9rZW4/OiBzdHJpbmc7XG4gIHhkY0V4cGxvcmVyQmFzZVVybD86IHN0cmluZztcbiAgeGRjRXhwbG9yZXJBcGlUb2tlbj86IHN0cmluZztcbiAgZmxyRXhwbG9yZXJCYXNlVXJsPzogc3RyaW5nO1xuICBmbHJFeHBsb3JlckFwaVRva2VuPzogc3RyaW5nO1xuICBzZ2JFeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIHNnYkV4cGxvcmVyQXBpVG9rZW4/OiBzdHJpbmc7XG4gIGljcE5vZGVVcmw6IHN0cmluZztcbiAga2FzcGFOb2RlVXJsOiBzdHJpbmc7XG4gIHN0YXJrbmV0Tm9kZVVybDogc3RyaW5nO1xuICBoeXBlckxpcXVpZE5vZGVVcmw6IHN0cmluZztcbiAgd2VtaXhFeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIHdlbWl4RXhwbG9yZXJBcGlUb2tlbj86IHN0cmluZztcbiAgbW9uRXhwbG9yZXJCYXNlVXJsPzogc3RyaW5nO1xuICBtb25FeHBsb3JlckFwaVRva2VuPzogc3RyaW5nO1xuICB3b3JsZEV4cGxvcmVyQmFzZVVybD86IHN0cmluZztcbiAgd29ybGRFeHBsb3JlckFwaVRva2VuPzogc3RyaW5nO1xuICBzb21uaWFFeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIHNvbW5pYUV4cGxvcmVyQXBpVG9rZW4/OiBzdHJpbmc7XG4gIHNvbmVpdW1FeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIHNvbmVpdW1FeHBsb3JlckFwaVRva2VuPzogc3RyaW5nO1xuICBzdHhOb2RlVXJsOiBzdHJpbmc7XG4gIHZldE5vZGVVcmw6IHN0cmluZztcbiAgLy8gVGhlIGtleSBoZXJlIGlzIGNvaW5OYW1lIGFuZCBpdCB3aWxsIGJlIHNhbWUgZm9yIGJvdGggbWFpbm5ldCBhbmQgdGVzdG5ldCAoZWc6ICdwaHJzJylcbiAgZXZtPzoge1xuICAgIFtrZXk6IHN0cmluZ106IHtcbiAgICAgIGJhc2VVcmw6IHN0cmluZztcbiAgICAgIGFwaVRva2VuPzogc3RyaW5nO1xuICAgICAgcnBjVXJsPzogc3RyaW5nO1xuICAgICAgdG9rZW5JZD86IG51bWJlcjtcbiAgICAgIHN5c3RlbUFkZHI/OiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbiAgLy8gVGhlIGtleSBoZXJlIGlzIGNvaW5GYW1pbHkgYW5kIGl0IHdpbGwgYmUgc2FtZSBmb3IgYm90aCBtYWlubmV0IGFuZCB0ZXN0bmV0IChlZzogJ2Nyb25vcycpXG4gIGNvc21vcz86IHtcbiAgICBba2V5OiBzdHJpbmddOiB7XG4gICAgICBub2RlVXJsOiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbiAgeHR6RXhwbG9yZXJCYXNlVXJsPzogc3RyaW5nO1xuICB4dHpScGNVcmw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW52aXJvbm1lbnQgZXh0ZW5kcyBFbnZpcm9ubWVudFRlbXBsYXRlIHtcbiAgdXJpOiBzdHJpbmc7XG4gIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBoYXJkY29kZWRQdWJsaWNLZXlzID0gT2JqZWN0LmZyZWV6ZSh7XG4gIHNlcnZlclhwdWI6IHtcbiAgICBwcm9kOiAneHB1YjY2MU15TXdBcVJiY0V0VWd1OUhGOGFpNGlwdVZLS0hCelVxa3M0alNGeXBXOGR3d1FMMXp5Z0xnUXg5OU5tQzd6Skp6blNpd0tHNlJRZlZqQUtNdENzeDhWalI2a1FXOHg3SHJrWEZaZG5RJyxcbiAgICB0ZXN0OiAneHB1YjY2MU15TXdBcVJiY0VyRnFWWEdpVUZ2OVllb1BiaE43MlVpTkNVZGo5bmozVDZNOGg3aUtObWJDWXBNVldWWlA3TEEybWEzSFdjUG5nejFnUlRtNEZQZHRtOW1IZnJOdlU5M01Db3N6c0dMJyxcbiAgfSxcbiAgaHNtWHB1Yjoge1xuICAgIHByb2Q6ICd4cHViNjYxTXlNd0FxUmJjR0V0VEZnTUFveE1Gb3FzUmREYWlhUjYzYnlOZlpkVjdjQlpGdm92UVNOSjVicHllb1F0dUtWZ1hCazZzRlE3VHR2eVdxYWR0NDFEbkt3dmVZZ001S29VMkVLWWpkWTInLFxuICAgIHRlc3Q6ICd4cHViNjYxTXlNd0FxUmJjR0ZLZTRCcXZrNFNncmljNGdORkM4cFVidzR0VWtWalp4dWJqQ0E1MjJnUHpjMVlhWGIzYlFWbURXYzdDakc4QUdOV1JwY2RBVTM4UkVUQmg4bjJibnFFVTRrYlY0b0snLFxuICAgIGRldjogJ3hwdWI2NjFNeU13QXFSYmNGV3pvejhxbllSRFlFRlFwUExZd3hWRm9HNldMeTNjazVadXBSR0pURzRqdTZ5R2I3RGozZXk2R3NDNGtzdExSRVIybkt6Z2pMdG14eVBnQzR6SHk3a1ZoVXQ2eWZHbicsXG4gIH0sXG59KTtcblxuZXhwb3J0IHR5cGUgRW52aXJvbm1lbnROYW1lID1cbiAgfCAncHJvZCdcbiAgfCAnc3RhZ2luZydcbiAgfCAndGVzdCdcbiAgfCAnZGV2J1xuICB8ICdsb2NhbCdcbiAgfCAnbG9jYWxOb25TZWN1cmUnXG4gIHwgJ21vY2snXG4gIHwgJ2FkbWluUHJvZCdcbiAgfCAnYWRtaW5UZXN0J1xuICB8ICdhZG1pblN0YWdpbmcnXG4gIHwgJ2FkbWluRGV2J1xuICB8ICdjdXN0b20nXG4gIHwgJ2JyYW5jaCc7XG5cbmV4cG9ydCB0eXBlIEFsaWFzRW52aXJvbm1lbnROYW1lID0gJ3Byb2R1Y3Rpb24nIHwgJ21zUHJvZCcgfCAnbXNUZXN0JyB8ICdtc0Rldic7XG5cbmV4cG9ydCB0eXBlIEVudmlyb25tZW50cyA9IHsgW2sgaW4gRW52aXJvbm1lbnROYW1lXTogRW52aXJvbm1lbnQgfTtcblxuLy8gYWxpYXMgZW52aXJvbm1lbnRzIGFyZSBlbnZpcm9ubWVudCBuYW1lcyB3aGljaCBhcmUgYWxpYXNlcyBvZiBhIHN1cHBvcnRlZCBlbnZpcm9ubWVudFxuZXhwb3J0IGNvbnN0IEFsaWFzRW52aXJvbm1lbnRzOiB7IFtrIGluIEFsaWFzRW52aXJvbm1lbnROYW1lXTogRW52aXJvbm1lbnROYW1lIH0gPSB7XG4gIHByb2R1Y3Rpb246ICdwcm9kJyxcbiAgbXNQcm9kOiAncHJvZCcsXG4gIG1zVGVzdDogJ3Rlc3QnLFxuICBtc0RldjogJ2RldicsXG59O1xuXG5jb25zdCBtYWlubmV0QmFzZTogRW52aXJvbm1lbnRUZW1wbGF0ZSA9IHtcbiAgbmV0d29yazogJ2JpdGNvaW4nIGFzIFYxTmV0d29yayxcbiAgc2lnbmluZ0FkZHJlc3M6ICcxQml0R28zZ3hSWjZtUVNFSDUyZHZDS1NVZ1ZDQUg0UmphJyxcbiAgc2VydmVyWHB1YjogaGFyZGNvZGVkUHVibGljS2V5cy5zZXJ2ZXJYcHViLnByb2QsXG4gIGhzbVhwdWI6IGhhcmRjb2RlZFB1YmxpY0tleXMuaHNtWHB1Yi5wcm9kLFxuICBidGNFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2Jsb2Nrc3RyZWFtLmluZm8vYXBpJyxcbiAgZXRoZXJzY2FuQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIGV0aGVyc2NhbkFwaVRva2VuOiBwcm9jZXNzLmVudi5FVEhFUlNDQU5fQVBJX1RPS0VOLFxuICBhdmF4Y05ldHdvcmtCYXNlVXJsOiAnaHR0cHM6Ly9hcGkuYXZheC5uZXR3b3JrJyxcbiAgZXRoMkV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vYmVhY29uc2Nhbi5jb20vYXBpJyxcbiAgZXRod0Z1bGxOb2RlUlBDQmFzZVVybDogJ2h0dHBzOi8vbWFpbm5ldC5ldGhlcmV1bXBvdy5vcmcnLFxuICBic2NzY2FuQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIGJzY3NjYW5BcGlUb2tlbjogcHJvY2Vzcy5lbnYuQlNDX0FQSV9UT0tFTixcbiAgcG9seWdvbnNjYW5CYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgcG9seWdvbnNjYW5BcGlUb2tlbjogcHJvY2Vzcy5lbnYuUE9MWUdPTlNDQU5fQVBJX1RPS0VOLFxuICBhcmJpc2NhbkJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICBhcmJpc2NhbkFwaVRva2VuOiBwcm9jZXNzLmVudi5BUkJJU0NBTl9BUElfVE9LRU4sXG4gIG9wdGltaXN0aWNFdGhlcnNjYW5CYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgb3B0aW1pc3RpY0V0aGVyc2NhbkFwaVRva2VuOiBwcm9jZXNzLmVudi5PUFRJTUlTVElDX0VUSEVSU0NBTl9BUElfVE9LRU4sXG4gIHprc3luY0V4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vYmxvY2stZXhwbG9yZXItYXBpLm1haW5uZXQuemtzeW5jLmlvJyxcbiAgemtzeW5jRXhwbG9yZXJBcGlUb2tlbjogcHJvY2Vzcy5lbnYuWktTWU5DX0VYUExPUkVSX0FQSV9UT0tFTixcbiAgYmFzZWV0aEV4cGxvcmVyVXJsOiAnaHR0cHM6Ly9hcGkuYmFzZXNjYW4ub3JnJywgLy9CYXNlRVRIIGV4cGxvcmVyIGFwaSB1cmxcbiAgYmFzZWV0aEFwaVRva2VuOiBwcm9jZXNzLmVudi5CQVNFU0NBTl9BUElfVE9LRU4sXG4gIGVvc05vZGVVcmxzOiBbJ2h0dHBzOi8vYnAuY3J5cHRvbGlvbnMuaW8nLCAnaHR0cHM6Ly9hcGkuZW9zbmV3eW9yay5pbycsICdodHRwczovL2FwaS5lb3NkZXRyb2l0LmlvJ10sXG4gIG5lYXJOb2RlVXJsczogWydodHRwczovL2FwaS5mYXN0bmVhci5jb20nXSxcbiAgc29sTm9kZVVybDogJ2h0dHBzOi8vYXBpLm1haW5uZXQtYmV0YS5zb2xhbmEuY29tJyxcbiAgc29sQWxjaGVteU5vZGVVcmw6ICdodHRwczovL3NvbGFuYS1tYWlubmV0LmcuYWxjaGVteS5jb20vdjInLFxuICBhZGFOb2RlVXJsOiAnaHR0cHM6Ly9hcGkua29pb3MucmVzdC9hcGkvdjEnLFxuICBoYXNoTm9kZVVybDogJ2h0dHBzOi8vYXBpLnByb3ZlbmFuY2UuaW8nLFxuICBpbmpOb2RlVXJsOiAnaHR0cHM6Ly9zZW50cnkubGNkLmluamVjdGl2ZS5uZXR3b3JrJywgLy8gcmVmZXJlbmNlIGh0dHBzOi8vZG9jcy5pbmplY3RpdmUubmV0d29yay9kZXZlbG9wL3B1YmxpYy1lbmRwb2ludHMvXG4gIGF0b21Ob2RlVXJsOiAnaHR0cHM6Ly9yZXN0LmNvc21vcy5kaXJlY3RvcnkvY29zbW9zaHViLycsXG4gIG9zbW9Ob2RlVXJsOiAnaHR0cHM6Ly9sY2Qub3Ntb3Npcy56b25lJyxcbiAgdGlhTm9kZVVybDogJ2h0dHBzOi8vcHVibGljLWNlbGVzdGlhLWxjZC5udW1pYS54eXonLCAvLyByZWZlcmVuY2UgaHR0cHM6Ly9kb2NzLmNlbGVzdGlhLm9yZy9ub2Rlcy9tYWlubmV0I2FwaS1lbmRwb2ludHNcbiAgc2VpTm9kZVVybDogJ2h0dHBzOi8vc2VpLWFwaS5wb2xrYWNodS5jb20nLFxuICBibGROb2RlVXJsOiAnaHR0cHM6Ly9hZ29yaWMtYXBpLnBvbGthY2h1LmNvbScsXG4gIGJlcmFOb2RlVXJsOiAnJywgLy8gVE9ETyhXSU4tNjkzKTogdXBkYXRlIHVybCB3aGVuIG1haW5uZXQgZ29lcyBsaXZlXG4gIHpldGFOb2RlVXJsOiAnaHR0cHM6Ly96ZXRhY2hhaW4uYmxvY2twaS5uZXR3b3JrJywgLy8gcmVmZXJlbmNlIGh0dHBzOi8vd3d3LnpldGFjaGFpbi5jb20vZG9jcy9yZWZlcmVuY2UvYXBpL1xuICBjb3JldW1Ob2RlVXJsOiAnaHR0cHM6Ly9mdWxsLW5vZGUubWFpbm5ldC0xLmNvcmV1bS5kZXY6MTMxNycsXG4gIHJ1bmVOb2RlVXJsOiAnaHR0cHM6Ly90aG9ybm9kZS5uaW5lcmVhbG1zLmNvbScsXG4gIGJhYnlOb2RlVXJsOiAnaHR0cHM6Ly9iYWJ5bG9uLm5vZGVzLmd1cnUvYXBpLycsXG4gIGlzbG1Ob2RlVXJsOiAnaHR0cHM6Ly9yZXN0LmNvc21vcy5oYXFxLm5ldHdvcmsnLFxuICBtYW50cmFOb2RlVXJsOiAnaHR0cHM6Ly9tYW50cmEtcmVzdC5wdWJsaWNub2RlLmNvbS8nLFxuICBjcm9ub3NOb2RlVXJsOiAnaHR0cHM6Ly9jcm9ub3MtcG9zLXJlc3QucHVibGljbm9kZS5jb20vJyxcbiAgaW5pdGlhTm9kZVVybDogJ2h0dHBzOi8vcmVzdC5pbml0aWEueHl6LycsXG4gIGFzaU5vZGVVcmw6ICdodHRwczovL3Jlc3QtZmV0Y2hodWIuZmV0Y2guYWkvJyxcbiAgZG90Tm9kZVVybHM6IFsnd3NzOi8vYXNzZXQtaHViLXBvbGthZG90LXJwYy5uLmR3ZWxsaXIuY29tJ10sXG4gIHN1YnN0cmF0ZU5vZGVVcmxzOiBbJ3dzczovL2VudHJ5cG9pbnQtZmlubmV5Lm9wZW50ZW5zb3IuYWknXSxcbiAgcG9seW1lc2hOb2RlVXJsczogWyd3c3M6Ly9tYWlubmV0LXJwYy5wb2x5bWVzaC5uZXR3b3JrJ10sXG4gIHRyb25Ob2Rlczoge1xuICAgIGZ1bGw6ICdodHRwczovL2FwaS50cm9uZ3JpZC5pbycsXG4gICAgc29saWRpdHk6ICdodHRwczovL2FwaS50cm9uZ3JpZC5pbycsXG4gIH0sXG4gIGhtYWNWZXJpZmljYXRpb25FbmZvcmNlZDogdHJ1ZSxcbiAgdG9uTm9kZVVybDogJ2h0dHBzOi8vdG9uY2VudGVyLmNvbS9hcGkvdjIvanNvblJQQycsXG4gIHN1aU5vZGVVcmw6ICdodHRwczovL2Z1bGxub2RlLm1haW5uZXQuc3VpLmlvJyxcbiAgaW90YU5vZGVVcmw6ICdodHRwczovL2FwaS5tYWlubmV0LmlvdGEuY2FmZScsXG4gIGV0Y05vZGVVcmw6ICdodHRwczovL2V0Yy5ibG9ja3Njb3V0LmNvbScsXG4gIGNvcmVkYW9FeHBsb3JlckJhc2VVcmw6ICdodHRwczovL29wZW5hcGkuY29yZWRhby5vcmcnLFxuICBvYXNFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2V4cGxvcmVyLm9hc3lzLmdhbWVzJyxcbiAgZmxyRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9mbGFyZS1leHBsb3Jlci5mbGFyZS5uZXR3b3JrJyxcbiAgeGRjRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgd2VtaXhFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICBzZ2JFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL3NvbmdiaXJkLWV4cGxvcmVyLmZsYXJlLm5ldHdvcmsnLFxuICBldm06IHtcbiAgICBhYnN0cmFjdGV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmFic2Nhbi5vcmcvYXBpJyxcbiAgICB9LFxuICAgIGFwZWNoYWluOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgICB9LFxuICAgIGNoaWxpejoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmNoaWxpc2Nhbi5jb20nLFxuICAgIH0sXG4gICAgY29kZXhldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2V4cGxvcmVyLmNvZGV4Lnh5ei9hcGknLFxuICAgIH0sXG4gICAgcGhyczoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vdGVzdG5ldC5kcGxhYnMtaW50ZXJuYWwuY29tJywgLy8gVE9ETzogV0lOLTU3ODcgYWRkIG1haW5uZXQgdXJsIHdoZW4gaXRzIGF2YWlsYWJsZVxuICAgIH0sXG4gICAgY3RjOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9jcmVkaXRjb2luLmJsb2Nrc2NvdXQuY29tJyxcbiAgICB9LFxuICAgIGh5cGVldm06IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgICAgLy8gVGhlc2UgYXJlIHVzZWQgZm9yIEJyaWRnaW5nIGFzc2V0cyBvbiBoeXBlIGNoYWluLlxuICAgICAgdG9rZW5JZDogMTUwLFxuICAgICAgc3lzdGVtQWRkcjogJzB4MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMicsXG4gICAgfSxcbiAgICBvZzoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vY2hhaW5zY2FuLjBnLmFpL29wZW4nLFxuICAgIH0sXG4gICAgeHBsOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkucm91dGVzY2FuLmlvL3YyL25ldHdvcmsvbWFpbm5ldC9ldm0vOTc0NS9ldGhlcnNjYW4nLFxuICAgIH0sXG4gICAgc29uaWM6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAgdXNkdDA6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3N0YWJsZXNjYW4ueHl6L2FwaScsXG4gICAgfSxcbiAgICBzZWlldm06IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAga2FpYToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vbWFpbm5ldC1vYXBpLmthaWFzY2FuLmlvJyxcbiAgICB9LFxuICAgIGthdmFldm06IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS52ZXJpZnkubWludHNjYW4uaW8vZXZtL2FwaS8weDhhZScsXG4gICAgfSxcbiAgICBpcnlzOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9ldm0tZXhwbG9yZXIuaXJ5cy54eXovYXBpJyxcbiAgICB9LFxuICAgIG1vbjoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICBsaW5lYWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICBpcDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vd3d3LnN0b3J5c2Nhbi5pbycsXG4gICAgfSxcbiAgICBzb21pOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9tYWlubmV0LnNvbW5pYS53M3VzLnNpdGUnLFxuICAgIH0sXG4gICAgYmFzZWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICBvcGJuYjoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgICBhcGlUb2tlbjogcHJvY2Vzcy5lbnYuRVRIRVJTQ0FOX0FQSV9UT0tFTixcbiAgICB9LFxuICAgIGZhbnRvbToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXIuZmFudG9tLm5ldHdvcmsnLFxuICAgICAgcnBjVXJsOiAnaHR0cHM6Ly9ycGNhcGkuZmFudG9tLm5ldHdvcmsvJyxcbiAgICB9LFxuICAgIGNvdGlldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL21haW5uZXQuY290aXNjYW4uaW8nLFxuICAgICAgcnBjVXJsOiAnaHR0cHM6Ly9tYWlubmV0LmNvdGkuaW8vcnBjJyxcbiAgICB9LFxuICAgIHh0emV2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXIuZXRoZXJsaW5rLmNvbS9hcGknLFxuICAgIH0sXG4gICAgZ2FzZXZtOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9uZW94c2Nhbi5uZ2QubmV0d29yay9hcGknLFxuICAgIH0sXG4gICAgZmxvdzoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXZtLmZsb3dzY2FuLmlvJyxcbiAgICB9LFxuICAgIHBsdW1lOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci5wbHVtZS5vcmcnLFxuICAgIH0sXG4gICAgbWVnYWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vbWFpbm5ldC5tZWdhZXRoLmNvbS9ycGMnLFxuICAgIH0sXG4gICAgaGJhcmV2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vbWFpbm5ldC5taXJyb3Jub2RlLmhlZGVyYS5jb20vYXBpL3YxJyxcbiAgICAgIHJwY1VybDogJ2h0dHBzOi8vbWFpbm5ldC5oYXNoaW8uaW8vYXBpJyxcbiAgICB9LFxuICAgIHNjcm9sbGV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLnNjcm9sbHNjYW4uY29tL2FwaScsXG4gICAgfSxcbiAgICBoZW1pZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci5oZW1pLnh5ei9hcGknLFxuICAgIH0sXG4gICAga2F0YW5hZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9rYXRhbmFzY2FuLmNvbS9hcGknLFxuICAgIH0sXG4gICAgaW5rZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci5pbmtvbmNoYWluLmNvbS9hcGknLFxuICAgIH0sXG4gICAgcHJpdmlkaXVtZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci5wcml2aWRpdW0uemtzeW5jLmRldi9hcGknLCAvLyBUT0RPOiB1cGRhdGUgd2l0aCBtYWlubmV0IFVSTCB3aGVuIGF2YWlsYWJsZVxuICAgIH0sXG4gICAgZmx1ZW50ZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9mbHVlbnRzY2FuLnh5ei9hcGkvJyxcbiAgICB9LFxuICAgIG1hbnRsZToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLm1hbnRsZXNjYW4ueHl6L2FwaScsXG4gICAgfSxcbiAgICBqb3ZheWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLnphbi50b3Avbm9kZS92MS9qb3ZheS9tYWlubmV0LycsXG4gICAgfSxcbiAgICBva2J4bGF5ZXI6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3d3dy5va2xpbmsuY29tL2FwaS92NS9leHBsb3Jlci9ibG9jay9ibG9jay1saXN0P2NoYWluU2hvcnROYW1lPXhsYXllcicsXG4gICAgfSxcbiAgICBtb3JwaDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXItYXBpLWhvb2RpLm1vcnBobDIuaW8nLCAvLyBUT0RPOiBXSU4tODEzNCBhZGQgbWFpbm5ldCB1cmwgd2hlbiBhdmFpbGFibGVcbiAgICB9LFxuICAgIG1vcnBoZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci5tb3JwaC5uZXR3b3JrLycsXG4gICAgfSxcbiAgICBkb2dlb3M6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2Jsb2Nrc2NvdXQudGVzdG5ldC5kb2dlb3MuY29tJywgLy9UT0RPOiBXSU4tODA4MiA9PiBhZGQgbWFpbm5ldCB1cmwgd2hlbiBhdmFpbGFibGVcbiAgICB9LFxuICAgIGFyY3VzZGM6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2V4cGxvcmVyLmFyYy5pby9hcGknLCAvLyBXSU4tODg0NCA9PiBhZGQgbWFpbm5ldCB1cmwgd2hlbiBhdmFpbGFibGVcbiAgICB9LFxuICAgIHhkYzoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICB6a3N5bmNlcmE6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAgdW5pZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly91bmljaGFpbi5ibG9ja3Njb3V0LmNvbS9hcGknLFxuICAgIH0sXG4gICAgaG9vZGV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vcm9iaW5ob29kY2hhaW4uYmxvY2tzY291dC5jb20vYXBpJyxcbiAgICB9LFxuICAgIGhwcGV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXIuaHBwLmlvL2FwaScsXG4gICAgfSxcbiAgICBoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9odW1hbml0eS1tYWlubmV0LmV4cGxvcmVyLmFsY2hlbXkuY29tL2FwaScsXG4gICAgfSxcbiAgICBib2JhOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkucm91dGVzY2FuLmlvL3YyL25ldHdvcmsvbWFpbm5ldC9ldm0vMjg4L2V0aGVyc2Nhbi9hcGknLFxuICAgIH0sXG4gICAgdGVtcG86IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3RlbXBvLW1haW5uZXQuZy5hbGNoZW15LmNvbS92Mi8nLFxuICAgIH0sXG4gIH0sXG4gIGljcE5vZGVVcmw6ICdodHRwczovL2ljMC5hcHAnLFxuICBrYXNwYU5vZGVVcmw6ICdodHRwczovL2FwaS5rYXNwYS5vcmcnLFxuICBzdGFya25ldE5vZGVVcmw6ICdodHRwczovL3N0YXJrbmV0LW1haW5uZXQtcnBjLnB1YmxpY25vZGUuY29tLycsXG4gIGh5cGVyTGlxdWlkTm9kZVVybDogJ2h0dHBzOi8vYXBpLmh5cGVybGlxdWlkLnh5eicsXG4gIHdvcmxkRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly93b3JsZHNjYW4ub3JnLycsXG4gIHNvbW5pYUV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vbWFpbm5ldC5zb21uaWEudzN1cy5zaXRlLycsXG4gIHNvbmVpdW1FeHBsb3JlckJhc2VVcmw6ICdodHRwczovL3NvbmVpdW0uYmxvY2tzY291dC5jb20nLFxuICBtb25FeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICBzdHhOb2RlVXJsOiAnaHR0cHM6Ly9hcGkuaGlyby5zbycsXG4gIHZldE5vZGVVcmw6ICdodHRwczovL3N5bmMtbWFpbm5ldC52ZWNoYWluLm9yZycsXG4gIHh0ekV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vYXBpLnR6a3QuaW8nLFxuICB4dHpScGNVcmw6ICdodHRwczovL3JwYy50emt0LmlvL21haW5uZXQnLFxufTtcblxuY29uc3QgdGVzdG5ldEJhc2U6IEVudmlyb25tZW50VGVtcGxhdGUgPSB7XG4gIG5ldHdvcms6ICd0ZXN0bmV0JyBhcyBWMU5ldHdvcmssXG4gIHNpZ25pbmdBZGRyZXNzOiAnbXNpZ25CZEZYdGVlaERFZ0I2RE5tN25wUnQ3QWNFWkpQMycsXG4gIHNlcnZlclhwdWI6IGhhcmRjb2RlZFB1YmxpY0tleXMuc2VydmVyWHB1Yi50ZXN0LFxuICBoc21YcHViOiBoYXJkY29kZWRQdWJsaWNLZXlzLmhzbVhwdWIudGVzdCxcbiAgYnRjRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9ibG9ja3N0cmVhbS5pbmZvL3Rlc3RuZXQvYXBpJyxcbiAgZXRoZXJzY2FuQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIGV0aGVyc2NhbkFwaVRva2VuOiBwcm9jZXNzLmVudi5FVEhFUlNDQU5fQVBJX1RPS0VOLFxuICBhdmF4Y05ldHdvcmtCYXNlVXJsOiAnaHR0cHM6Ly9hcGkuYXZheC10ZXN0Lm5ldHdvcmsnLFxuICBldGgyRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9iZWFjb25zY2FuLmNvbS9hcGknLFxuICBldGh3RnVsbE5vZGVSUENCYXNlVXJsOiAnaHR0cHM6Ly9tYWlubmV0LmV0aGVyZXVtcG93Lm9yZycsXG4gIHBvbHlnb25zY2FuQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIHBvbHlnb25zY2FuQXBpVG9rZW46IHByb2Nlc3MuZW52LlBPTFlHT05TQ0FOX0FQSV9UT0tFTixcbiAgYnNjc2NhbkJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICBic2NzY2FuQXBpVG9rZW46IHByb2Nlc3MuZW52LkJTQ19BUElfVE9LRU4sXG4gIGFyYmlzY2FuQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIGFyYmlzY2FuQXBpVG9rZW46IHByb2Nlc3MuZW52LkFSQklTQ0FOX0FQSV9UT0tFTixcbiAgb3B0aW1pc3RpY0V0aGVyc2NhbkJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICBvcHRpbWlzdGljRXRoZXJzY2FuQXBpVG9rZW46IHByb2Nlc3MuZW52Lk9QVElNSVNUSUNfRVRIRVJTQ0FOX0FQSV9UT0tFTixcbiAgemtzeW5jRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9ibG9jay1leHBsb3Jlci1hcGkuc2Vwb2xpYS56a3N5bmMuZGV2JyxcbiAgemtzeW5jRXhwbG9yZXJBcGlUb2tlbjogcHJvY2Vzcy5lbnYuWktTWU5DX0VYUExPUkVSX0FQSV9UT0tFTixcbiAgYmFzZWV0aEV4cGxvcmVyVXJsOiAnaHR0cHM6Ly9hcGktc2Vwb2xpYS5iYXNlc2Nhbi5vcmcnLFxuICBiYXNlZXRoQXBpVG9rZW46IHByb2Nlc3MuZW52LkJBU0VTQ0FOX0FQSV9UT0tFTixcbiAgLy8ga3lsaW4gZW9zIGVuZHBvaW50cyBmb3VuZCBoZXJlXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9jcnlwdG9reWxpbi9DcnlwdG9LeWxpbi1UZXN0bmV0I2h0dHAtYXBpLWxpc3RcbiAgLy8gaHR0cHM6Ly9kb2NzLmxpcXVpZGFwcHMuaW8vbGlxdWlkYXBwcy1kb2N1bWVudGF0aW9uL2Vvc2lvLWd1aWRlcy90ZXN0bmV0LWNyZWF0aW9uLWd1aWRlcy9jcmVhdGluZy1jcnlwdG9reWxpbi1hY2NvdW50I3NldHVwXG4gIGVvc05vZGVVcmxzOiBbJ2h0dHBzOi8va3lsaW4uZW9zbi5pbycsICdodHRwczovL2FwaS5reWxpbi5hbG9oYWVvcy5jb20nXSxcbiAgbmVhck5vZGVVcmxzOiBbJ2h0dHBzOi8vdGVzdC5ycGMuZmFzdG5lYXIuY29tJ10sXG4gIHNvbE5vZGVVcmw6ICdodHRwczovL2FwaS5kZXZuZXQuc29sYW5hLmNvbScsXG4gIHNvbEFsY2hlbXlOb2RlVXJsOiAnaHR0cHM6Ly9zb2xhbmEtZGV2bmV0LmcuYWxjaGVteS5jb20vdjInLFxuICBhZGFOb2RlVXJsOiAnaHR0cHM6Ly9wcmVwcm9kLmtvaW9zLnJlc3QvYXBpL3YxJyxcbiAgaGFzaE5vZGVVcmw6ICdodHRwczovL2FwaS50ZXN0LnByb3ZlbmFuY2UuaW8nLFxuICBpbmpOb2RlVXJsOiAnaHR0cHM6Ly90ZXN0bmV0LnNlbnRyeS5sY2QuaW5qZWN0aXZlLm5ldHdvcmsnLCAvLyBDT0lOLTEyMTkgOiByZWZlcmVuY2UgIGh0dHBzOi8vZG9jcy5pbmplY3RpdmUubmV0d29yay9kZXZlbG9wL3B1YmxpYy1lbmRwb2ludHMvI3Rlc3RuZXRcbiAgYXRvbU5vZGVVcmw6ICdodHRwczovL3Jlc3QucHJvdmlkZXItc2VudHJ5LTAyLmljcy10ZXN0bmV0LnBvbHlwb3JlLnh5ei8nLFxuICBvc21vTm9kZVVybDogJ2h0dHBzOi8vbGNkLm9zbW90ZXN0NS5vc21vc2lzLnpvbmUnLFxuICB0aWFOb2RlVXJsOiAnaHR0cHM6Ly9hcGktbW9jaGEucG9wcy5vbmUnLFxuICBzZWlOb2RlVXJsOiAnaHR0cHM6Ly9yZXN0LmF0bGFudGljLTIuc2VpbmV0d29yay5pbycsXG4gIGJsZE5vZGVVcmw6ICdodHRwczovL2Rldm5ldC5hcGkuYWdvcmljLm5ldCcsXG4gIGJlcmFOb2RlVXJsOiAnJywgLy8gVE9ETyhXSU4tNjkzKTogdXBkYXRlIHVybCB3aGVuIHRlc3RuZXQgZ29lcyBsaXZlXG4gIHpldGFOb2RlVXJsOiAnaHR0cHM6Ly9yZXN0Lm5vZGVqdW1wZXIuaW8vemV0YWNoYWludGVzdG5ldCcsIC8vIHJlZmVyZW5jZSA6IGh0dHBzOi8vd3d3LnpldGFjaGFpbi5jb20vZG9jcy9yZWZlcmVuY2UvYXBpL1xuICBjb3JldW1Ob2RlVXJsOiAnaHR0cHM6Ly9mdWxsLW5vZGUudGVzdG5ldC0xLmNvcmV1bS5kZXY6MTMxNycsXG4gIHJ1bmVOb2RlVXJsOiAnaHR0cHM6Ly9zdGFnZW5ldC10aG9ybm9kZS5uaW5lcmVhbG1zLmNvbScsXG4gIGJhYnlOb2RlVXJsOiAnaHR0cHM6Ly9iYWJ5bG9uLXRlc3RuZXQtYXBpLm5vZGVzLmd1cnUvJyxcbiAgaXNsbU5vZGVVcmw6ICdodHRwczovL3Jlc3QuY29zbW9zLnRlc3RlZGdlMi5oYXFxLm5ldHdvcmsgJyxcbiAgbWFudHJhTm9kZVVybDogJ2h0dHBzOi8vbWFudHJhLXRlc3RuZXQtcmVzdC5wdWJsaWNub2RlLmNvbS8nLFxuICBjcm9ub3NOb2RlVXJsOiAnaHR0cHM6Ly90ZXN0bmV0LWNyb2VzZWlkLTQuY3J5cHRvLm9yZzoxMzE3LycsXG4gIGluaXRpYU5vZGVVcmw6ICdodHRwczovL3Jlc3QudGVzdG5ldC5pbml0aWEueHl6LycsXG4gIGFzaU5vZGVVcmw6ICdodHRwczovL3Jlc3QtZG9yYWRvLmZldGNoLmFpLycsXG4gIGRvdE5vZGVVcmxzOiBbJ3dzczovL2Fzc2V0LWh1Yi13ZXN0ZW5kLXJwYy5uLmR3ZWxsaXIuY29tJ10sXG4gIHN1YnN0cmF0ZU5vZGVVcmxzOiBbJ3dzczovL3Rlc3QuZmlubmV5Lm9wZW50ZW5zb3IuYWknXSxcbiAgcG9seW1lc2hOb2RlVXJsczogWyd3c3M6Ly90ZXN0bmV0LXJwYy5wb2x5bWVzaC5saXZlJ10sXG4gIHRyb25Ob2Rlczoge1xuICAgIGZ1bGw6ICdodHRwczovL2FwaS5zaGFzdGEudHJvbmdyaWQuaW8nLFxuICAgIHNvbGlkaXR5OiAnaHR0cHM6Ly9hcGkuc2hhc3RhLnRyb25ncmlkLmlvJyxcbiAgfSxcbiAgaG1hY1ZlcmlmaWNhdGlvbkVuZm9yY2VkOiBmYWxzZSxcbiAgdG9uTm9kZVVybDogJ2h0dHBzOi8vdGVzdG5ldC50b25jZW50ZXIuY29tL2FwaS92Mi9qc29uUlBDJyxcbiAgc3VpTm9kZVVybDogJ2h0dHBzOi8vZnVsbG5vZGUudGVzdG5ldC5zdWkuaW8nLFxuICBpb3RhTm9kZVVybDogJ2h0dHBzOi8vYXBpLnRlc3RuZXQuaW90YS5jYWZlJyxcbiAgZXRjTm9kZVVybDogJ2h0dHBzOi8vZXRjLW1vcmRvci5ibG9ja3Njb3V0LmNvbScsXG4gIGNvcmVkYW9FeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2FwaS50ZXN0Mi5idGNzLm5ldHdvcmsnLFxuICBvYXNFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2V4cGxvcmVyLnRlc3RuZXQub2FzeXMuZ2FtZXMnLFxuICB3ZW1peEV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIGZsckV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vY29zdG9uMi1leHBsb3Jlci5mbGFyZS5uZXR3b3JrJyxcbiAgeGRjRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgc2diRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9jb3N0b24tZXhwbG9yZXIuZmxhcmUubmV0d29yaycsXG4gIGljcE5vZGVVcmw6ICdodHRwczovL2ljMC5hcHAnLFxuICBrYXNwYU5vZGVVcmw6ICdodHRwczovL2FwaS10bjEwLmthc3BhLm9yZycsXG4gIHN0YXJrbmV0Tm9kZVVybDogJ2h0dHBzOi8vc3RhcmtuZXQtc2Vwb2xpYS1ycGMucHVibGljbm9kZS5jb20vJyxcbiAgaHlwZXJMaXF1aWROb2RlVXJsOiAnaHR0cHM6Ly9hcGkuaHlwZXJsaXF1aWQtdGVzdG5ldC54eXonLFxuICBtb25FeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICB3b3JsZEV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vc2Vwb2xpYS53b3JsZHNjYW4ub3JnLycsXG4gIHNvbW5pYUV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vc2hhbm5vbi1leHBsb3Jlci5zb21uaWEubmV0d29yay8nLFxuICBzb25laXVtRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9zb25laXVtLW1pbmF0by5ibG9ja3Njb3V0LmNvbScsXG4gIGV2bToge1xuICAgIGFic3RyYWN0ZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkuc2Vwb2xpYS5hYnNjYW4ub3JnL2FwaScsXG4gICAgfSxcbiAgICBhcGVjaGFpbjoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICBjaGlsaXo6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS50ZXN0bmV0LmNoaWxpc2Nhbi5jb20nLFxuICAgIH0sXG4gICAgY29kZXhldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2V4cGxvcmVyLmNvZGV4LXN0Zy54eXovYXBpJyxcbiAgICB9LFxuICAgIHBocnM6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3Rlc3RuZXQuZHBsYWJzLWludGVybmFsLmNvbScsIC8vIFdyb25nIHZhbHVlLCBOb3QgYXZhaWxhYmxlIHlldFxuICAgIH0sXG4gICAgY3RjOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9jcmVkaXRjb2luLXRlc3RuZXQuYmxvY2tzY291dC5jb20nLFxuICAgIH0sXG4gICAgaHlwZWV2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vcnBjLmh5cGVybGlxdWlkLXRlc3RuZXQueHl6L2V2bScsIC8vIE5vdCBBdmFpbGFibGVcbiAgICAgIC8vIFRoZXNlIGFyZSB1c2VkIGZvciBCcmlkZ2luZyBhc3NldHMgb24gaHlwZSBjaGFpbi5cbiAgICAgIHRva2VuSWQ6IDExMDUsXG4gICAgICBzeXN0ZW1BZGRyOiAnMHgyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyJyxcbiAgICB9LFxuICAgIG9nOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9jaGFpbnNjYW4tdGVzdC4wZy5haS9vcGVuJyxcbiAgICB9LFxuICAgIHhwbDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLnJvdXRlc2Nhbi5pby92Mi9uZXR3b3JrL3Rlc3RuZXQvZXZtLzk3NDZfNS9ldGhlcnNjYW4nLFxuICAgIH0sXG4gICAgc29uaWM6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAgdXNkdDA6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3Rlc3RuZXQuc3RhYmxlc2Nhbi54eXovYXBpJyxcbiAgICB9LFxuICAgIHNlaWV2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICBrYWlhOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9rYWlyb3Mtb2FwaS5rYWlhc2Nhbi5pbycsXG4gICAgfSxcbiAgICBrYXZhZXZtOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkudmVyaWZ5Lm1pbnRzY2FuLmlvL2V2bS9hcGkvMHg4YWQnLFxuICAgIH0sXG4gICAgaXJ5czoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vaW5zdC0xLmNsb3VkLmJsb2Nrc2NvdXQuY29tL2FwaScsXG4gICAgfSxcbiAgICBtb246IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAgbGluZWFldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAgaXA6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FlbmVpZC5zdG9yeXNjYW4uaW8nLFxuICAgIH0sXG4gICAgdGJhc2VldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAgdG9wYm5iOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgICAgIGFwaVRva2VuOiBwcm9jZXNzLmVudi5FVEhFUlNDQU5fQVBJX1RPS0VOLFxuICAgIH0sXG4gICAgdGNvdGlldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3Rlc3RuZXQuY290aXNjYW4uaW8nLFxuICAgICAgcnBjVXJsOiAnaHR0cHM6Ly90ZXN0bmV0LmNvdGkuaW8vcnBjJyxcbiAgICB9LFxuICAgIHh0emV2bToge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vc2hhZG93bmV0LmV4cGxvcmVyLmV0aGVybGluay5jb20vYXBpJyxcbiAgICB9LFxuICAgIHRnYXNldm06IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL25lb3h0NHNjYW4ubmdkLm5ldHdvcmsvYXBpJyxcbiAgICB9LFxuICAgIGZsb3c6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2V2bS10ZXN0bmV0LmZsb3dzY2FuLmlvJyxcbiAgICB9LFxuICAgIG1lZ2FldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2NhcnJvdC5tZWdhZXRoLmNvbS9ycGMnLFxuICAgIH0sXG4gICAgcGx1bWU6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3Rlc3RuZXQtZXhwbG9yZXIucGx1bWUub3JnJyxcbiAgICB9LFxuICAgIGhiYXJldm06IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3Rlc3RuZXQubWlycm9ybm9kZS5oZWRlcmEuY29tL2FwaS92MScsXG4gICAgICBycGNVcmw6ICdodHRwczovL3Rlc3RuZXQuaGFzaGlvLmlvL2FwaScsXG4gICAgfSxcbiAgICB0c2Nyb2xsZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGktc2Vwb2xpYS5zY3JvbGxzY2FuLmNvbS9hcGknLFxuICAgIH0sXG4gICAgaGVtaWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vdGVzdG5ldC5leHBsb3Jlci5oZW1pLnh5ei9hcGknLFxuICAgIH0sXG4gICAgdGthdGFuYWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXItYm9rdXRvLmthdGFuYXJwYy5jb20vYXBpJyxcbiAgICB9LFxuICAgIHRpbmtldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2V4cGxvcmVyLXNlcG9saWEuaW5rb25jaGFpbi5jb20vYXBpJyxcbiAgICB9LFxuICAgIHByaXZpZGl1bWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXIudGVzdG5ldC1wcml2aWRpdW0uemtzeW5jLmRldi9hcGknLFxuICAgIH0sXG4gICAgZmx1ZW50ZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly90ZXN0bmV0LmZsdWVudHNjYW4ueHl6L2FwaS8nLFxuICAgIH0sXG4gICAgbWFudGxlOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGktc2Vwb2xpYS5tYW50bGVzY2FuLnh5ei9hcGknLFxuICAgIH0sXG4gICAgam92YXlldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS56YW4udG9wL25vZGUvdjEvam92YXkvdGVzdG5ldC8nLFxuICAgIH0sXG4gICAgb2tieGxheWVyOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly93d3cub2tsaW5rLmNvbS9hcGkvdjUvZXhwbG9yZXIvYmxvY2svYmxvY2stbGlzdD9jaGFpblNob3J0TmFtZT14bGF5ZXJfdGVzdG5ldCcsXG4gICAgfSxcbiAgICBtb3JwaDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vZXhwbG9yZXItYXBpLWhvb2RpLm1vcnBobDIuaW8nLFxuICAgIH0sXG4gICAgbW9ycGhldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2V4cGxvcmVyLWhvb2RpLm1vcnBoLm5ldHdvcmsvJyxcbiAgICB9LFxuICAgIGRvZ2Vvczoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYmxvY2tzY291dC50ZXN0bmV0LmRvZ2Vvcy5jb20nLFxuICAgIH0sXG4gICAgYXJjdXNkYzoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vdGVzdG5ldC5hcmNzY2FuLmFwcC9hcGknLCAvLyBXSU4tODg0NCA9PiBhZGQgbWFpbm5ldCB1cmwgd2hlbiBhdmFpbGFibGVcbiAgICB9LFxuICAgIHhkYzoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICB6a3N5bmNlcmE6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICAgIH0sXG4gICAgdW5pZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly91bmljaGFpbi1zZXBvbGlhLmJsb2Nrc2NvdXQuY29tL2FwaScsXG4gICAgfSxcbiAgICBob29kZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci50ZXN0bmV0LmNoYWluLnJvYmluaG9vZC5jb20vYXBpJyxcbiAgICB9LFxuICAgIGhwcGV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vc2Vwb2xpYS1leHBsb3Jlci5ocHAuaW8vYXBpJyxcbiAgICB9LFxuICAgIGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2h1bWFuaXR5LXRlc3RuZXQuZXhwbG9yZXIuYWxjaGVteS5jb20vYXBpJyxcbiAgICB9LFxuICAgIGJvYmE6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5yb3V0ZXNjYW4uaW8vdjIvbmV0d29yay90ZXN0bmV0L2V2bS8yODg4Mi9ldGhlcnNjYW4vYXBpJyxcbiAgICB9LFxuICAgIHRlbXBvOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly90ZW1wby1tb2RlcmF0by5nLmFsY2hlbXkuY29tL3YyLycsXG4gICAgfSxcbiAgfSxcbiAgc3R4Tm9kZVVybDogJ2h0dHBzOi8vYXBpLnRlc3RuZXQuaGlyby5zbycsXG4gIHZldE5vZGVVcmw6ICdodHRwczovL3N5bmMtdGVzdG5ldC52ZWNoYWluLm9yZycsXG4gIHh0ekV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vYXBpLmdob3N0bmV0LnR6a3QuaW8nLFxuICB4dHpScGNVcmw6ICdodHRwczovL3JwYy50emt0LmlvL2dob3N0bmV0Jyxcbn07XG5cbmNvbnN0IGRldkJhc2U6IEVudmlyb25tZW50VGVtcGxhdGUgPSBPYmplY3QuYXNzaWduKHt9LCB0ZXN0bmV0QmFzZSwge1xuICBoc21YcHViOiBoYXJkY29kZWRQdWJsaWNLZXlzLmhzbVhwdWIuZGV2LFxuICBobWFjVmVyaWZpY2F0aW9uRW5mb3JjZWQ6IGZhbHNlLFxufSk7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZWRlY2xhcmVcbmV4cG9ydCBjb25zdCBFbnZpcm9ubWVudHM6IEVudmlyb25tZW50cyA9IHtcbiAgcHJvZDogT2JqZWN0LmFzc2lnbih7fSwgbWFpbm5ldEJhc2UsIHtcbiAgICB1cmk6ICdodHRwczovL2FwcC5iaXRnby5jb20nLFxuICAgIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsOiAnaHR0cHM6Ly9hcHAuYml0Z28uY29tL2FwaS92Mi94bG0vZmVkZXJhdGlvbicsXG4gIH0pLFxuICB0ZXN0OiBPYmplY3QuYXNzaWduKHt9LCB0ZXN0bmV0QmFzZSwge1xuICAgIHVyaTogJ2h0dHBzOi8vYXBwLmJpdGdvLXRlc3QuY29tJyxcbiAgICBzdGVsbGFyRmVkZXJhdGlvblNlcnZlclVybDogJ2h0dHBzOi8vYXBwLmJpdGdvLXRlc3QuY29tL2FwaS92Mi90eGxtL2ZlZGVyYXRpb24nLFxuICB9KSxcbiAgZGV2OiBPYmplY3QuYXNzaWduKHt9LCBkZXZCYXNlLCB7XG4gICAgdXJpOiAnaHR0cHM6Ly9hcHAuYml0Z28tZGV2LmNvbScsXG4gICAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6ICdodHRwczovL2FwcC5iaXRnby1kZXYuY29tL2FwaS92Mi90eGxtL2ZlZGVyYXRpb24nLFxuICB9KSxcbiAgc3RhZ2luZzogT2JqZWN0LmFzc2lnbih7fSwgdGVzdG5ldEJhc2UsIHtcbiAgICB1cmk6ICdodHRwczovL2FwcC5iaXRnby1zdGFnaW5nLmNvbScsXG4gICAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6ICdodHRwczovL2FwcC5iaXRnby1zdGFnaW5nLmNvbS9hcGkvdjIvdHhsbS9mZWRlcmF0aW9uJyxcbiAgfSksXG4gIGxvY2FsOiBPYmplY3QuYXNzaWduKHt9LCBkZXZCYXNlLCB7XG4gICAgdXJpOiAnaHR0cHM6Ly9sb2NhbGhvc3Q6MzAwMCcsXG4gICAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6ICdodHRwczovL2xvY2FsaG9zdDozMDAwL2FwaS92Mi90eGxtL2ZlZGVyYXRpb24nLFxuICB9KSxcbiAgbG9jYWxOb25TZWN1cmU6IE9iamVjdC5hc3NpZ24oe30sIGRldkJhc2UsIHtcbiAgICB1cmk6ICdodHRwOi8vbG9jYWxob3N0OjMwMDAnLFxuICAgIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsOiAnaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92Mi90eGxtL2ZlZGVyYXRpb24nLFxuICB9KSxcbiAgbW9jazogT2JqZWN0LmFzc2lnbih7fSwgZGV2QmFzZSwge1xuICAgIHVyaTogJ2h0dHBzOi8vYml0Z28uZmFrZXVybCcsXG4gICAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6ICdodHRwczovL2JpdGdvLmZha2V1cmwvYXBpL3YyL3R4bG0vZmVkZXJhdGlvbicsXG4gICAgZXRoZXJzY2FuQmFzZVVybDogJ2h0dHBzOi8vYXBpLWhvb2RpLmV0aGVyc2Nhbi5mYWtldXJsJyxcbiAgICBldGhlcnNjYW5BcGlUb2tlbjogcHJvY2Vzcy5lbnYuRVRIRVJTQ0FOX0FQSV9UT0tFTixcbiAgICBhdmF4Y05ldHdvcmtCYXNlVXJsOiAnaHR0cHM6Ly9hcGkuYXZheC10ZXN0Lm5ldHdvcmsuZmFrZXVybCcsXG4gICAgZXRoMkV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vYmVhY29uc2Nhbi5jb20vYXBpJyxcbiAgfSksXG4gIGFkbWluUHJvZDogT2JqZWN0LmFzc2lnbih7fSwgbWFpbm5ldEJhc2UsIHtcbiAgICB1cmk6ICdodHRwczovL2FkbWluLmJpdGdvLmNvbScsXG4gICAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6ICdodHRwczovL2FkbWluLmJpdGdvLmNvbS9hcGkvdjIveGxtL2ZlZGVyYXRpb24nLFxuICB9KSxcbiAgYWRtaW5UZXN0OiBPYmplY3QuYXNzaWduKHt9LCB0ZXN0bmV0QmFzZSwge1xuICAgIHVyaTogJ2h0dHBzOi8vYWRtaW4uYml0Z28tdGVzdC5jb20nLFxuICAgIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsOiAnaHR0cHM6Ly9hZG1pbi5iaXRnby10ZXN0LmNvbS9hcGkvdjIvdHhsbS9mZWRlcmF0aW9uJyxcbiAgfSksXG4gIGFkbWluRGV2OiBPYmplY3QuYXNzaWduKHt9LCBkZXZCYXNlLCB7XG4gICAgdXJpOiAnaHR0cHM6Ly9hZG1pbi5iaXRnby1kZXYuY29tJyxcbiAgICBzdGVsbGFyRmVkZXJhdGlvblNlcnZlclVybDogJ2h0dHBzOi8vYWRtaW4uYml0Z28tZGV2LmNvbS9hcGkvdjIvdHhsbS9mZWRlcmF0aW9uJyxcbiAgfSksXG4gIGFkbWluU3RhZ2luZzogT2JqZWN0LmFzc2lnbih7fSwgdGVzdG5ldEJhc2UsIHtcbiAgICB1cmk6ICdodHRwczovL2FkbWluLmJpdGdvLXN0YWdpbmcuY29tJyxcbiAgICBzdGVsbGFyRmVkZXJhdGlvblNlcnZlclVybDogJ2h0dHBzOi8vYWRtaW4uYml0Z28tc3RhZ2luZy5jb20vYXBpL3YyL3hsbS9mZWRlcmF0aW9uJyxcbiAgfSksXG4gIGN1c3RvbTogT2JqZWN0LmFzc2lnbih7fSwgbWFpbm5ldEJhc2UsIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuICAgIHVyaTogcHJvY2Vzcy5lbnYuQklUR09fQ1VTVE9NX1JPT1RfVVJJISxcbiAgICBuZXR3b3JrOiBwcm9jZXNzLmVudi5CSVRHT19DVVNUT01fQklUQ09JTl9ORVRXT1JLIGFzIFYxTmV0d29yayxcbiAgICBoc21YcHViOlxuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJyA/IGhhcmRjb2RlZFB1YmxpY0tleXMuaHNtWHB1Yi5wcm9kIDogaGFyZGNvZGVkUHVibGljS2V5cy5oc21YcHViLnRlc3QsXG4gICAgYnRjRXhwbG9yZXJCYXNlVXJsOlxuICAgICAgcHJvY2Vzcy5lbnYuQklUR09fQ1VTVE9NX0JJVENPSU5fTkVUV09SSyAhPT0gJ2JpdGNvaW4nXG4gICAgICAgID8gJ2h0dHBzOi8vYmxvY2tzdHJlYW0uaW5mby90ZXN0bmV0L2FwaSdcbiAgICAgICAgOiAnaHR0cHM6Ly9ibG9ja3N0cmVhbS5pbmZvL2FwaScsXG4gICAgZXRoZXJzY2FuQmFzZVVybDpcbiAgICAgIHByb2Nlc3MuZW52LkJJVEdPX0NVU1RPTV9FVEhFUkVVTV9ORVRXT1JLICE9PSAnZXRoZXJldW0nXG4gICAgICAgID8gJ2h0dHBzOi8vYXBpLWhvb2RpLmV0aGVyc2Nhbi5pbydcbiAgICAgICAgOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvJyxcbiAgICBzdGVsbGFyRmVkZXJhdGlvblNlcnZlclVybDpcbiAgICAgIHByb2Nlc3MuZW52LkJJVEdPX0NVU1RPTV9TVEVMTEFSX05FVFdPUksgIT09ICdzdGVsbGFyJ1xuICAgICAgICA/IGBodHRwczovLyR7cHJvY2Vzcy5lbnYuQklUR09fQ1VTVE9NX1JPT1RfVVJJfS9hcGkvdjIvdHhsbS9mZWRlcmF0aW9uYFxuICAgICAgICA6IGBodHRwczovLyR7cHJvY2Vzcy5lbnYuQklUR09fQ1VTVE9NX1JPT1RfVVJJfS9hcGkvdjIveGxtL2ZlZGVyYXRpb25gLFxuICAgIHNlcnZlclhwdWI6XG4gICAgICBwcm9jZXNzLmVudi5CSVRHT19DVVNUT01fQklUQ09JTl9ORVRXT1JLICE9PSAnYml0Y29pbidcbiAgICAgICAgPyBoYXJkY29kZWRQdWJsaWNLZXlzLnNlcnZlclhwdWIudGVzdFxuICAgICAgICA6IGhhcmRjb2RlZFB1YmxpY0tleXMuc2VydmVyWHB1Yi5wcm9kLFxuICB9KSxcbiAgYnJhbmNoOiBPYmplY3QuYXNzaWduKHt9LCBkZXZCYXNlLCB7XG4gICAgdXJpOiAnaHR0cHM6Ly9hcHAuYml0Z28tZGV2LmNvbScsXG4gICAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6ICdodHRwczovL2FwcC5iaXRnby1kZXYuY29tL2FwaS92Mi90eGxtL2ZlZGVyYXRpb24nLFxuICB9KSxcbn07XG4iXX0=
@@ -2,9 +2,9 @@
2
2
  * @hidden
3
3
  */
4
4
  import { Keychain } from '../keychain';
5
- import { EncryptFn, EncryptFnAsync, EncryptionVersion } from '../../api';
5
+ import { EncryptFnAsync, EncryptionVersion } from '../../api';
6
6
  interface GetKeyDataOptions {
7
- encrypt: EncryptFn;
7
+ encrypt: EncryptFnAsync;
8
8
  userKeychain: Keychain;
9
9
  bitgoKeychain: Keychain;
10
10
  backupKeychain: Keychain;
@@ -13,6 +13,7 @@ interface GetKeyDataOptions {
13
13
  passcodeEncryptionCode?: string;
14
14
  walletKeyID?: string;
15
15
  backupKeyID?: string;
16
+ encryptionVersion?: EncryptionVersion;
16
17
  }
17
18
  interface DrawKeycardLayoutOptions {
18
19
  jsPDF: any;
@@ -21,26 +22,16 @@ interface DrawKeycardLayoutOptions {
21
22
  walletLabel: string;
22
23
  coinName: string;
23
24
  }
24
- interface DrawKeycardOptions extends GetKeyDataOptions, DrawKeycardLayoutOptions {
25
+ export interface DrawKeycardOptions extends GetKeyDataOptions, DrawKeycardLayoutOptions {
25
26
  coinShortName: string;
26
27
  }
27
- export type DrawKeycardAsyncOptions = Omit<DrawKeycardOptions, 'encrypt'> & {
28
- encrypt: EncryptFnAsync;
29
- encryptionVersion?: EncryptionVersion;
30
- };
31
- /**
32
- * TODO: Deprecate this function in favor of drawKeycardAsync once v2 encryption is default.
33
- * Draw a keycard into a new pdf document object
34
- * @param options
35
- */
36
- export declare function drawKeycard(options: DrawKeycardOptions): any;
28
+ /** @deprecated Use {@link DrawKeycardOptions}. `drawKeycard` is now async by default. */
29
+ export type DrawKeycardAsyncOptions = DrawKeycardOptions;
37
30
  /**
38
- * Async version of drawKeycard with support for v2 (Argon2id) encryption.
39
- * Use this when the encrypt callback may return a Promise (e.g. encryptAsync).
40
- *
41
- * Draw a keycard into a new pdf document object
31
+ * Draw a keycard into a new pdf document object.
32
+ * Defaults to v2 (Argon2id) encryption for Box D; pass `encryptionVersion: 1` for legacy v1.
42
33
  * @param options
43
34
  */
44
- export declare function drawKeycardAsync(options: DrawKeycardAsyncOptions): Promise<any>;
35
+ export declare function drawKeycard(options: DrawKeycardOptions): Promise<any>;
45
36
  export {};
46
37
  //# sourceMappingURL=keycard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"keycard.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/internal/keycard.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AA2EzE,UAAU,iBAAiB;IACzB,OAAO,EAAE,SAAS,CAAC;IACnB,YAAY,EAAE,QAAQ,CAAC;IACvB,aAAa,EAAE,QAAQ,CAAC;IACxB,cAAc,EAAE,QAAQ,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAkJD,UAAU,wBAAwB;IAChC,KAAK,EAAE,GAAG,CAAC;IACX,MAAM,EAAE,GAAG,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,kBAAmB,SAAQ,iBAAiB,EAAE,wBAAwB;IAC9E,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAC,GAAG;IAC1E,OAAO,EAAE,cAAc,CAAC;IACxB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC,CAAC;AA0JF;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,GAAG,CA+B5D;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,GAAG,CAAC,CAkCrF"}
1
+ {"version":3,"file":"keycard.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/internal/keycard.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AA2E9D,UAAU,iBAAiB;IACzB,OAAO,EAAE,cAAc,CAAC;IACxB,YAAY,EAAE,QAAQ,CAAC;IACvB,aAAa,EAAE,QAAQ,CAAC;IACxB,cAAc,EAAE,QAAQ,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC;AAgHD,UAAU,wBAAwB;IAChC,KAAK,EAAE,GAAG,CAAC;IACX,MAAM,EAAE,GAAG,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB,EAAE,wBAAwB;IACrF,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,yFAAyF;AACzF,MAAM,MAAM,uBAAuB,GAAG,kBAAkB,CAAC;AA0JzD;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,CAkC3E"}
@@ -4,7 +4,6 @@
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.drawKeycard = drawKeycard;
7
- exports.drawKeycardAsync = drawKeycardAsync;
8
7
  /**
9
8
  */
10
9
  const lodash_1 = require("lodash");
@@ -147,36 +146,11 @@ function buildKeycardQrData(options, encryptedWalletPasscode) {
147
146
  return qrData;
148
147
  }
149
148
  /**
150
- * TODO: Deprecate this function in favor of getKeyDataAsync once v2 encryption is default.
151
- * Collect all data which will go onto the keycard
149
+ * Collect all data which will go onto the keycard.
150
+ * Sequential encrypt: backup key first, then passcode.
152
151
  * @param options
153
152
  */
154
- function getKeyData(options) {
155
- const { encrypt, backupKeychain, passphrase, passcodeEncryptionCode, ...qrOptions } = options;
156
- // When using just 'generateWallet', we get back an unencrypted prv for the backup keychain
157
- // If the user passes in their passphrase, we can encrypt it
158
- if (backupKeychain.prv && passphrase) {
159
- backupKeychain.encryptedPrv = encrypt({
160
- input: backupKeychain.prv,
161
- password: passphrase,
162
- });
163
- }
164
- // If we have the passcode encryption code, create a box D with the encryptedWalletPasscode
165
- let encryptedWalletPasscode;
166
- if (passphrase && passcodeEncryptionCode) {
167
- encryptedWalletPasscode = encrypt({
168
- input: passphrase,
169
- password: passcodeEncryptionCode,
170
- });
171
- }
172
- return buildKeycardQrData({ ...qrOptions, backupKeychain }, encryptedWalletPasscode);
173
- }
174
- /**
175
- * Async version of getKeyData with support for v2 (Argon2id) encryption.
176
- * Sequential encrypt: backup key first, then passcode (matches original getKeyDataAsync).
177
- * @param options
178
- */
179
- async function getKeyDataAsync(options) {
153
+ async function getKeyData(options) {
180
154
  const { encrypt, backupKeychain, passphrase, passcodeEncryptionCode, encryptionVersion, ...qrOptions } = options;
181
155
  if (backupKeychain.prv && passphrase) {
182
156
  backupKeychain.encryptedPrv = await encrypt({
@@ -318,36 +292,14 @@ function renderKeycardPdf(options, keyData) {
318
292
  return doc;
319
293
  }
320
294
  /**
321
- * TODO: Deprecate this function in favor of drawKeycardAsync once v2 encryption is default.
322
- * Draw a keycard into a new pdf document object
323
- * @param options
324
- */
325
- function drawKeycard(options) {
326
- const { encrypt, passphrase, passcodeEncryptionCode, walletKeyID, backupKeyID, userKeychain, bitgoKeychain, backupKeychain, coinShortName, jsPDF, QRCode, activationCode, walletLabel, coinName, } = options;
327
- const keyData = getKeyData({
328
- encrypt,
329
- coinShortName,
330
- passphrase,
331
- passcodeEncryptionCode,
332
- walletKeyID,
333
- backupKeyID,
334
- userKeychain,
335
- bitgoKeychain,
336
- backupKeychain,
337
- });
338
- return renderKeycardPdf({ jsPDF, QRCode, activationCode, walletLabel, coinName }, keyData);
339
- }
340
- /**
341
- * Async version of drawKeycard with support for v2 (Argon2id) encryption.
342
- * Use this when the encrypt callback may return a Promise (e.g. encryptAsync).
343
- *
344
- * Draw a keycard into a new pdf document object
295
+ * Draw a keycard into a new pdf document object.
296
+ * Defaults to v2 (Argon2id) encryption for Box D; pass `encryptionVersion: 1` for legacy v1.
345
297
  * @param options
346
298
  */
347
- async function drawKeycardAsync(options) {
299
+ async function drawKeycard(options) {
348
300
  const { encrypt, passphrase, passcodeEncryptionCode, walletKeyID, backupKeyID, userKeychain, bitgoKeychain, backupKeychain, coinShortName, jsPDF, QRCode, activationCode, walletLabel, coinName, encryptionVersion, } = options;
349
301
  // Get the data for the first page (qr codes)
350
- const keyData = await getKeyDataAsync({
302
+ const keyData = await getKeyData({
351
303
  encrypt,
352
304
  coinShortName,
353
305
  passphrase,
@@ -361,4 +313,4 @@ async function drawKeycardAsync(options) {
361
313
  });
362
314
  return renderKeycardPdf({ jsPDF, QRCode, activationCode, walletLabel, coinName }, keyData);
363
315
  }
364
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2FyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby9pbnRlcm5hbC9rZXljYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRzs7QUEyWkgsa0NBK0JDO0FBU0QsNENBa0NDO0FBbmVEO0dBQ0c7QUFDSCxtQ0FBcUM7QUFJckM7OztHQUdHO0FBQ0gsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFO0lBQ3pDLE9BQU87UUFDTDtZQUNFLENBQUMsRUFBRSxzQkFBc0I7WUFDekIsQ0FBQyxFQUFFO2dCQUNELCtFQUErRSxJQUFJLEdBQUc7Z0JBQ3RGLDJEQUEyRCxHQUFHLGdDQUFnQztnQkFDOUYsdUZBQXVGO2FBQ3hGO1NBQ0Y7UUFDRDtZQUNFLENBQUMsRUFBRSwyQkFBMkI7WUFDOUIsQ0FBQyxFQUFFO2dCQUNELCtGQUErRjtnQkFDL0YsbUdBQW1HO2dCQUNuRyxnREFBZ0Q7Z0JBQ2hELEVBQUU7Z0JBQ0YsNkZBQTZGO2dCQUM3RiwrRkFBK0Y7Z0JBQy9GLHNEQUFzRDthQUN2RDtTQUNGO1FBQ0Q7WUFDRSxDQUFDLEVBQUUsZ0NBQWdDO1lBQ25DLENBQUMsRUFBRTtnQkFDRCxnRUFBZ0UsSUFBSSwyQkFBMkI7Z0JBQy9GLCtGQUErRjtnQkFDL0YsdUNBQXVDO2dCQUN2QywwQ0FBMEM7YUFDM0M7U0FDRjtRQUNEO1lBQ0UsQ0FBQyxFQUFFLGtDQUFrQztZQUNyQyxDQUFDLEVBQUU7Z0JBQ0Qsa0dBQWtHO2dCQUNsRyx1RkFBdUY7Z0JBQ3ZGLHNGQUFzRjtnQkFDdEYsNkZBQTZGO2dCQUM3RiwrQ0FBK0M7YUFDaEQ7U0FDRjtRQUNEO1lBQ0UsQ0FBQyxFQUFFLDhDQUE4QztZQUNqRCxDQUFDLEVBQUU7Z0JBQ0Qsd0ZBQXdGO2dCQUN4Riw2RkFBNkY7YUFDOUY7U0FDRjtRQUNEO1lBQ0UsQ0FBQyxFQUFFLDREQUE0RDtZQUMvRCxDQUFDLEVBQUU7Z0JBQ0Qsb0ZBQW9G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R0FBRyxPQUFPLENBQUM7SUFFWiw2Q0FBNkM7SUFDN0MsTUFBTSxPQUFPLEdBQUcsTUFBTSxlQUFlLENBQUM7UUFDcEMsT0FBTztRQUNQLGFBQWE7UUFDYixVQUFVO1FBQ1Ysc0JBQXNCO1FBQ3RCLFdBQVc7UUFDWCxXQUFXO1FBQ1gsWUFBWTtRQUNaLGFBQWE7UUFDYixjQUFjO1FBQ2QsaUJBQWlCO0tBQ2xCLENBQUMsQ0FBQztJQUVILE9BQU8sZ0JBQWdCLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDN0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGhpZGRlblxuICovXG5cbi8qKlxuICovXG5pbXBvcnQgeyBpc1VuZGVmaW5lZCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBLZXljaGFpbiB9IGZyb20gJy4uL2tleWNoYWluJztcbmltcG9ydCB7IEVuY3J5cHRGbiwgRW5jcnlwdEZuQXN5bmMsIEVuY3J5cHRpb25WZXJzaW9uIH0gZnJvbSAnLi4vLi4vYXBpJztcblxuLyoqXG4gKiBSZXR1cm4gdGhlIGxpc3Qgb2YgcXVlc3Rpb25zIHRoYXQgd2lsbCBhcHBlYXIgb24gdGhlIHNlY29uZCBwYWdlIG9mIHRoZSBrZXljYXJkXG4gKiBAcGFyYW0gY29pbiBuYW1lIG9mIHRoZSBjb2luXG4gKi9cbmNvbnN0IGdlbmVyYXRlUXVlc3Rpb25zID0gKGNvaW46IHN0cmluZykgPT4ge1xuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIHE6ICdXaGF0IGlzIHRoZSBLZXlDYXJkPycsXG4gICAgICBhOiBbXG4gICAgICAgIGBUaGUgS2V5Q2FyZCBjb250YWlucyBpbXBvcnRhbnQgaW5mb3JtYXRpb24gd2hpY2ggY2FuIGJlIHVzZWQgdG8gcmVjb3ZlciB0aGUgJHtjb2lufSBgLFxuICAgICAgICAnZnJvbSB5b3VyIHdhbGxldCBpbiBzZXZlcmFsIHNpdHVhdGlvbnMuIEVhY2ggQml0R28gd2FsbGV0JyArICcgaGFzIGl0cyBvd24sIHVuaXF1ZSBLZXlDYXJkLiAnLFxuICAgICAgICAnSWYgeW91IGhhdmUgY3JlYXRlZCBtdWx0aXBsZSB3YWxsZXRzLCB5b3Ugc2hvdWxkIHJldGFpbiB0aGUgS2V5Q2FyZCBmb3IgZWFjaCBvZiB0aGVtLicsXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgcTogJ1doYXQgc2hvdWxkIEkgZG8gd2l0aCBpdD8nLFxuICAgICAgYTogW1xuICAgICAgICAnWW91IHNob3VsZCBwcmludCB0aGUgS2V5Q2FyZCBhbmQvb3Igc2F2ZSB0aGUgUERGIHRvIGFuIG9mZmxpbmUgc3RvcmFnZSBkZXZpY2UuIFRoZSBwcmludC1vdXQgJyxcbiAgICAgICAgXCJvciBVU0Igc3RpY2sgc2hvdWxkIGJlIGtlcHQgaW4gYSBzYWZlIHBsYWNlLCBzdWNoIGFzIGEgYmFuayB2YXVsdCBvciBob21lIHNhZmUuIEl0J3MgYSBnb29kIGlkZWEgXCIsXG4gICAgICAgICd0byBrZWVwIGEgc2Vjb25kIGNvcHkgaW4gYSBkaWZmZXJlbnQgbG9jYXRpb24uJyxcbiAgICAgICAgJycsXG4gICAgICAgIFwiSW1wb3J0YW50OiBJZiB5b3UgaGF2ZW4ndCBwcm92aWRlZCBhbiBleHRlcm5hbCBiYWNrdXAga2V5LCB0aGVuIHRoZSBvcmlnaW5hbCBQREYgc2hvdWxkIGJlIFwiLFxuICAgICAgICAnZGVsZXRlZCBmcm9tIGFueSBtYWNoaW5lIHdoZXJlIHRoZSB3YWxsZXQgd2lsbCBiZSByZWd1bGFybHkgYWNjZXNzZWQgdG8gcHJldmVudCBtYWx3YXJlIGZyb20gJyxcbiAgICAgICAgJ2NhcHR1cmluZyBib3RoIHRoZSBLZXlDYXJkIGFuZCB5b3VyIHdhbGxldCBwYXNzY29kZS4nLFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHE6ICdXaGF0IHNob3VsZCBJIGRvIGlmIEkgbG9zZSBpdD8nLFxuICAgICAgYTogW1xuICAgICAgICBgSWYgeW91IGhhdmUgbG9zdCBvciBkYW1hZ2VkIGFsbCBjb3BpZXMgb2YgeW91ciBLZXlDYXJkLCB5b3VyICR7Y29pbn0gaXMgc3RpbGwgc2FmZSwgYnV0IHRoaXMgYCxcbiAgICAgICAgJ3dhbGxldCBzaG91bGQgYmUgY29uc2lkZXJlZCBhdCByaXNrIGZvciBsb3NzLiBBcyBzb29uIGFzIGlzIGNvbnZlbmllbnQsIHlvdSBzaG91bGQgdXNlIEJpdEdvICcsXG4gICAgICAgICd0byBlbXB0eSB0aGUgd2FsbGV0IGludG8gYSBuZXcgd2FsbGV0JyxcbiAgICAgICAgJywgYW5kIGRpc2NvbnRpbnVlIHVzZSBvZiB0aGUgb2xkIHdhbGxldC4nLFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHE6ICdXaGF0IGlmIHNvbWVvbmUgc2VlcyBteSBLZXlDYXJkPycsXG4gICAgICBhOiBbXG4gICAgICAgIFwiRG9uJ3QgcGFuaWMhIEFsbCBzZW5zaXRpdmUgaW5mb3JtYXRpb24gb24gdGhlIEtleUNhcmQgaXMgZW5jcnlwdGVkIHdpdGggeW91ciBwYXNzY29kZSwgb3Igd2l0aCBhXCIsXG4gICAgICAgICdrZXkgd2hpY2ggb25seSBCaXRHbyBoYXMuIEJ1dCwgaW4gZ2VuZXJhbCwgeW91IHNob3VsZCBtYWtlIGJlc3QgZWZmb3J0cyB0byBrZWVwIHlvdXIgJyxcbiAgICAgICAgJ0tleUNhcmQgcHJpdmF0ZS4gSWYgeW91ciBLZXlDYXJkIGRvZXMgZ2V0IGV4cG9zZWQgb3IgY29waWVkIGluIGEgd2F5IHRoYXQgbWFrZXMgeW91ICcsXG4gICAgICAgICd1bmNvbWZvcnRhYmxlLCB0aGUgYmVzdCBjb3Vyc2Ugb2YgYWN0aW9uIGlzIHRvIGVtcHR5IHRoZSBjb3JyZXNwb25kaW5nIHdhbGxldCBpbnRvIGFub3RoZXIgJyxcbiAgICAgICAgJ3dhbGxldCBhbmQgZGlzY29udGludWUgdXNlIG9mIHRoZSBvbGQgd2FsbGV0LicsXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgcTogJ1doYXQgaWYgSSBmb3JnZXQgb3IgbG9zZSBteSB3YWxsZXQgcGFzc3dvcmQ/JyxcbiAgICAgIGE6IFtcbiAgICAgICAgJ0JpdEdvIGNhbiB1c2UgdGhlIGluZm9ybWF0aW9uIGluIFFSIENvZGUgRCB0byBoZWxwIHlvdSByZWNvdmVyIGFjY2VzcyB0byB5b3VyIHdhbGxldC4gJyxcbiAgICAgICAgJ1dpdGhvdXQgdGhlIEtleUNhcmQsIEJpdEdvIGlzIG5vdCBhYmxlIHRvIHJlY292ZXIgZnVuZHMgZnJvbSBhIHdhbGxldCB3aXRoIGEgbG9zdCBwYXNzd29yZC4nLFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHE6ICdXaGF0IGlmIEJpdEdvIGJlY29tZXMgaW5hY2Nlc3NpYmxlIGZvciBhbiBleHRlbmRlZCBwZXJpb2Q/JyxcbiAgICAgIGE6IFtcbiAgICAgICAgJ1lvdXIgS2V5Q2FyZCBhbmQgd2FsbGV0IHBhc3Njb2RlIGNhbiBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggQml0R2/igJlzIHB1Ymxpc2hlZCBvcGVuICcsXG4gICAgICAgIGBzb3VyY2UgdG9vbHMgYXQgaHR0cHM6Ly9naXRodWIuY29tL2JpdGdvIHRvIHJlY292ZXIgeW91ciAke2NvaW59LiBOb3RlOiBZb3Ugc2hvdWxkIG5ldmVyIGVudGVyIGAsXG4gICAgICAgICdpbmZvcm1hdGlvbiBmcm9tIHlvdXIgS2V5Q2FyZCBpbnRvIHRvb2xzIG90aGVyIHRoYW4gdGhlIHRvb2xzIEJpdEdvIGhhcyBwdWJsaXNoZWQsIG9yIHlvdXIgJyxcbiAgICAgICAgJ2Z1bmRzIG1heSBiZSBhdCByaXNrIGZvciB0aGVmdC4nLFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHE6ICdTaG91bGQgSSB3cml0ZSBteSB3YWxsZXQgcGFzc3dvcmQgb24gbXkgS2V5Q2FyZD8nLFxuICAgICAgYTogW1xuICAgICAgICAnTm8hIEJpdEdv4oCZcyBtdWx0aS1zaWduYXR1cmUgYXBwcm9hY2ggdG8gc2VjdXJpdHkgZGVwZW5kcyBvbiB0aGVyZSBub3QgYmVpbmcgYSBzaW5nbGUgcG9pbnQgJyxcbiAgICAgICAgJ29mIGF0dGFjay4gQnV0IGlmIHlvdXIgd2FsbGV0IHBhc3N3b3JkIGlzIG9uIHlvdXIgS2V5Q2FyZCwgdGhlbiBhbnlvbmUgd2hvIGdhaW5zIGFjY2VzcyB0byAnLFxuICAgICAgICBgeW91ciBLZXlDYXJkIHdpbGwgYmUgYWJsZSB0byBzdGVhbCB5b3VyICR7Y29pbn0uIFdlIHJlY29tbWVuZCBrZWVwaW5nIHlvdXIgd2FsbGV0IHBhc3N3b3JkIGAsXG4gICAgICAgICdzYWZlIGluIGEgc2VjdXJlIHBhc3N3b3JkIG1hbmFnZXIgc3VjaCBhcyBMYXN0UGFzcywgMVBhc3N3b3JkIG9yIEtlZVBhc3MuJyxcbiAgICAgIF0sXG4gICAgfSxcbiAgXTtcbn07XG5cbmludGVyZmFjZSBHZXRLZXlEYXRhT3B0aW9ucyB7XG4gIGVuY3J5cHQ6IEVuY3J5cHRGbjtcbiAgdXNlcktleWNoYWluOiBLZXljaGFpbjtcbiAgYml0Z29LZXljaGFpbjogS2V5Y2hhaW47XG4gIGJhY2t1cEtleWNoYWluOiBLZXljaGFpbjtcbiAgY29pblNob3J0TmFtZTogc3RyaW5nO1xuICBwYXNzcGhyYXNlPzogc3RyaW5nO1xuICBwYXNzY29kZUVuY3J5cHRpb25Db2RlPzogc3RyaW5nO1xuICB3YWxsZXRLZXlJRD86IHN0cmluZztcbiAgYmFja3VwS2V5SUQ/OiBzdHJpbmc7XG59XG5cbnR5cGUgR2V0S2V5RGF0YUFzeW5jT3B0aW9ucyA9IE9taXQ8R2V0S2V5RGF0YU9wdGlvbnMsICdlbmNyeXB0Jz4gJiB7XG4gIGVuY3J5cHQ6IEVuY3J5cHRGbkFzeW5jO1xuICBlbmNyeXB0aW9uVmVyc2lvbj86IEVuY3J5cHRpb25WZXJzaW9uO1xufTtcblxuaW50ZXJmYWNlIEJ1aWxkS2V5Y2FyZFFyRGF0YU9wdGlvbnMge1xuICB1c2VyS2V5Y2hhaW46IEtleWNoYWluO1xuICBiaXRnb0tleWNoYWluOiBLZXljaGFpbjtcbiAgYmFja3VwS2V5Y2hhaW46IEtleWNoYWluO1xuICBjb2luU2hvcnROYW1lOiBzdHJpbmc7XG4gIHdhbGxldEtleUlEPzogc3RyaW5nO1xuICBiYWNrdXBLZXlJRD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBCdWlsZCBRUiBjb2RlIHBheWxvYWQgZm9yIGVhY2gga2V5Y2FyZCBib3guIERvZXMgbm90IHBlcmZvcm0gZW5jcnlwdGlvbi5cbiAqL1xuZnVuY3Rpb24gYnVpbGRLZXljYXJkUXJEYXRhKG9wdGlvbnM6IEJ1aWxkS2V5Y2FyZFFyRGF0YU9wdGlvbnMsIGVuY3J5cHRlZFdhbGxldFBhc3Njb2RlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBhbnkge1xuICBjb25zdCB7IHVzZXJLZXljaGFpbiwgYml0Z29LZXljaGFpbiwgYmFja3VwS2V5Y2hhaW4sIGNvaW5TaG9ydE5hbWUsIHdhbGxldEtleUlELCBiYWNrdXBLZXlJRCB9ID0gb3B0aW9ucztcblxuICAvLyBQREYgUVIgQ29kZSBkYXRhXG4gIGNvbnN0IHFyRGF0YTogYW55ID0ge1xuICAgIHVzZXI6IHtcbiAgICAgIHRpdGxlOiAnQTogVXNlciBLZXknLFxuICAgICAgZGVzYzogJ1RoaXMgaXMgeW91ciBwcml2YXRlIGtleSwgZW5jcnlwdGVkIHdpdGggeW91ciBwYXNzY29kZS4nLFxuICAgICAgZGF0YTogdXNlcktleWNoYWluLmVuY3J5cHRlZFBydixcbiAgICB9LFxuICAgIGJhY2t1cDoge1xuICAgICAgdGl0bGU6ICdCOiBCYWNrdXAgS2V5JyxcbiAgICAgIGRlc2M6ICdUaGlzIGlzIHlvdXIgYmFja3VwIHByaXZhdGUga2V5LCBlbmNyeXB0ZWQgd2l0aCB5b3VyIHBhc3Njb2RlLicsXG4gICAgICBkYXRhOiBiYWNrdXBLZXljaGFpbi5lbmNyeXB0ZWRQcnYsXG4gICAgfSxcbiAgICBiaXRnbzoge1xuICAgICAgdGl0bGU6ICdDOiBCaXRHbyBLZXknLFxuICAgICAgZGVzYzogJ1RoaXMgaXMgdGhlIHB1YmxpYyBwYXJ0IG9mIHRoZSBrZXkgaGVsZCBieSBCaXRHby4nLFxuICAgICAgZGF0YTogYml0Z29LZXljaGFpbi5wdWIsXG4gICAgfSxcbiAgICBwYXNzY29kZToge1xuICAgICAgdGl0bGU6ICdEOiBFbmNyeXB0ZWQgV2FsbGV0IFBhc3N3b3JkJyxcbiAgICAgIGRlc2M6ICdUaGlzIGlzIHRoZSB3YWxsZXQgcGFzc3dvcmQsIGVuY3J5cHRlZCBjbGllbnQtc2lkZSAnICsgJ3dpdGggYSBrZXkgaGVsZCBieVxcclxcbkJpdEdvLicsXG4gICAgICBkYXRhOiBlbmNyeXB0ZWRXYWxsZXRQYXNzY29kZSxcbiAgICB9LFxuICB9O1xuXG4gIGlmICh3YWxsZXRLZXlJRCkge1xuICAgIHFyRGF0YS51c2VyLmtleUlEID0gd2FsbGV0S2V5SUQ7XG4gIH1cblxuICBpZiAoYmFja3VwS2V5SUQpIHtcbiAgICBxckRhdGEuYmFja3VwLmtleUlEID0gYmFja3VwS2V5SUQ7XG4gIH1cblxuICBpZiAoaXNVbmRlZmluZWQodXNlcktleWNoYWluLmVuY3J5cHRlZFBydikpIHtcbiAgICAvLyBVc2VyIHByb3ZpZGVkIHRoZWlyIG93biBrZXkgLSB0aGlzIGlzIGEgY29sZCB3YWxsZXRcbiAgICBxckRhdGEudXNlci50aXRsZSA9ICdBOiBQcm92aWRlZCBVc2VyIEtleSc7XG4gICAgcXJEYXRhLnVzZXIuZGVzYyA9ICdUaGlzIGlzIHRoZSBwdWJsaWMga2V5IHlvdSBwcm92aWRlZCBmb3IgeW91ciB3YWxsZXQuJztcbiAgICBxckRhdGEudXNlci5kYXRhID0gdXNlcktleWNoYWluLnB1YjtcblxuICAgIC8vIFRoZSB1c2VyIHByb3ZpZGVkIHRoZWlyIG93biBwdWJsaWMga2V5LCB3ZSBjYW4gcmVtb3ZlIGJveCBEXG4gICAgZGVsZXRlIHFyRGF0YS5wYXNzY29kZTtcbiAgfSBlbHNlIGlmIChpc1VuZGVmaW5lZChlbmNyeXB0ZWRXYWxsZXRQYXNzY29kZSkpIHtcbiAgICBkZWxldGUgcXJEYXRhLnBhc3Njb2RlO1xuICB9XG5cbiAgaWYgKCFpc1VuZGVmaW5lZChiYWNrdXBLZXljaGFpbi5wcm92aWRlcikpIHtcbiAgICBjb25zdCBiYWNrdXBLZXlQcm92aWRlck5hbWUgPSBiYWNrdXBLZXljaGFpbi5wcm92aWRlcjtcbiAgICAvLyBCYWNrdXAga2V5IGhlbGQgd2l0aCBLUlNcbiAgICBxckRhdGEuYmFja3VwID0ge1xuICAgICAgdGl0bGU6ICdCOiBCYWNrdXAgS2V5JyxcbiAgICAgIGRlc2M6XG4gICAgICAgIGBUaGlzIGlzIHRoZSBwdWJsaWMga2V5IGhlbGQgYXQgJHtiYWNrdXBLZXlQcm92aWRlck5hbWV9YCArXG4gICAgICAgIGAsIGFuICR7Y29pblNob3J0TmFtZX0gcmVjb3Zlcnkgc2VydmljZS4gSWYgeW91IGxvc2VcXHJcXG55b3VyIGtleSwgJHtiYWNrdXBLZXlQcm92aWRlck5hbWV9YCArXG4gICAgICAgICcgd2lsbCBiZSBhYmxlIHRvIHNpZ24gdHJhbnNhY3Rpb25zIHRvIHJlY292ZXIgZnVuZHMuJyxcbiAgICAgIGRhdGE6IGJhY2t1cEtleWNoYWluLnB1YixcbiAgICB9O1xuICB9IGVsc2UgaWYgKGlzVW5kZWZpbmVkKGJhY2t1cEtleWNoYWluLmVuY3J5cHRlZFBydikpIHtcbiAgICAvLyBVc2VyIHN1cHBsaWVkIHRoZSB4cHViXG4gICAgcXJEYXRhLmJhY2t1cCA9IHtcbiAgICAgIHRpdGxlOiAnQjogQmFja3VwIEtleScsXG4gICAgICBkZXNjOiAnVGhpcyBpcyB0aGUgcHVibGljIHBvcnRpb24gb2YgeW91ciBiYWNrdXAga2V5LCB3aGljaCB5b3UgcHJvdmlkZWQuJyxcbiAgICAgIGRhdGE6IGJhY2t1cEtleWNoYWluLnB1YixcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHFyRGF0YTtcbn1cblxuLyoqXG4gKiBUT0RPOiBEZXByZWNhdGUgdGhpcyBmdW5jdGlvbiBpbiBmYXZvciBvZiBnZXRLZXlEYXRhQXN5bmMgb25jZSB2MiBlbmNyeXB0aW9uIGlzIGRlZmF1bHQuXG4gKiBDb2xsZWN0IGFsbCBkYXRhIHdoaWNoIHdpbGwgZ28gb250byB0aGUga2V5Y2FyZFxuICogQHBhcmFtIG9wdGlvbnNcbiAqL1xuZnVuY3Rpb24gZ2V0S2V5RGF0YShvcHRpb25zOiBHZXRLZXlEYXRhT3B0aW9ucyk6IGFueSB7XG4gIGNvbnN0IHsgZW5jcnlwdCwgYmFja3VwS2V5Y2hhaW4sIHBhc3NwaHJhc2UsIHBhc3Njb2RlRW5jcnlwdGlvbkNvZGUsIC4uLnFyT3B0aW9ucyB9ID0gb3B0aW9ucztcblxuICAvLyBXaGVuIHVzaW5nIGp1c3QgJ2dlbmVyYXRlV2FsbGV0Jywgd2UgZ2V0IGJhY2sgYW4gdW5lbmNyeXB0ZWQgcHJ2IGZvciB0aGUgYmFja3VwIGtleWNoYWluXG4gIC8vIElmIHRoZSB1c2VyIHBhc3NlcyBpbiB0aGVpciBwYXNzcGhyYXNlLCB3ZSBjYW4gZW5jcnlwdCBpdFxuICBpZiAoYmFja3VwS2V5Y2hhaW4ucHJ2ICYmIHBhc3NwaHJhc2UpIHtcbiAgICBiYWNrdXBLZXljaGFpbi5lbmNyeXB0ZWRQcnYgPSBlbmNyeXB0KHtcbiAgICAgIGlucHV0OiBiYWNrdXBLZXljaGFpbi5wcnYsXG4gICAgICBwYXNzd29yZDogcGFzc3BocmFzZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIElmIHdlIGhhdmUgdGhlIHBhc3Njb2RlIGVuY3J5cHRpb24gY29kZSwgY3JlYXRlIGEgYm94IEQgd2l0aCB0aGUgZW5jcnlwdGVkV2FsbGV0UGFzc2NvZGVcbiAgbGV0IGVuY3J5cHRlZFdhbGxldFBhc3Njb2RlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGlmIChwYXNzcGhyYXNlICYmIHBhc3Njb2RlRW5jcnlwdGlvbkNvZGUpIHtcbiAgICBlbmNyeXB0ZWRXYWxsZXRQYXNzY29kZSA9IGVuY3J5cHQoe1xuICAgICAgaW5wdXQ6IHBhc3NwaHJhc2UsXG4gICAgICBwYXNzd29yZDogcGFzc2NvZGVFbmNyeXB0aW9uQ29kZSxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBidWlsZEtleWNhcmRRckRhdGEoeyAuLi5xck9wdGlvbnMsIGJhY2t1cEtleWNoYWluIH0sIGVuY3J5cHRlZFdhbGxldFBhc3Njb2RlKTtcbn1cblxuLyoqXG4gKiBBc3luYyB2ZXJzaW9uIG9mIGdldEtleURhdGEgd2l0aCBzdXBwb3J0IGZvciB2MiAoQXJnb24yaWQpIGVuY3J5cHRpb24uXG4gKiBTZXF1ZW50aWFsIGVuY3J5cHQ6IGJhY2t1cCBrZXkgZmlyc3QsIHRoZW4gcGFzc2NvZGUgKG1hdGNoZXMgb3JpZ2luYWwgZ2V0S2V5RGF0YUFzeW5jKS5cbiAqIEBwYXJhbSBvcHRpb25zXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGdldEtleURhdGFBc3luYyhvcHRpb25zOiBHZXRLZXlEYXRhQXN5bmNPcHRpb25zKTogUHJvbWlzZTxhbnk+IHtcbiAgY29uc3QgeyBlbmNyeXB0LCBiYWNrdXBLZXljaGFpbiwgcGFzc3BocmFzZSwgcGFzc2NvZGVFbmNyeXB0aW9uQ29kZSwgZW5jcnlwdGlvblZlcnNpb24sIC4uLnFyT3B0aW9ucyB9ID0gb3B0aW9ucztcblxuICBpZiAoYmFja3VwS2V5Y2hhaW4ucHJ2ICYmIHBhc3NwaHJhc2UpIHtcbiAgICBiYWNrdXBLZXljaGFpbi5lbmNyeXB0ZWRQcnYgPSBhd2FpdCBlbmNyeXB0KHtcbiAgICAgIGlucHV0OiBiYWNrdXBLZXljaGFpbi5wcnYsXG4gICAgICBwYXNzd29yZDogcGFzc3BocmFzZSxcbiAgICAgIGVuY3J5cHRpb25WZXJzaW9uLFxuICAgIH0pO1xuICB9XG5cbiAgbGV0IGVuY3J5cHRlZFdhbGxldFBhc3Njb2RlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGlmIChwYXNzcGhyYXNlICYmIHBhc3Njb2RlRW5jcnlwdGlvbkNvZGUpIHtcbiAgICBlbmNyeXB0ZWRXYWxsZXRQYXNzY29kZSA9IGF3YWl0IGVuY3J5cHQoe1xuICAgICAgaW5wdXQ6IHBhc3NwaHJhc2UsXG4gICAgICBwYXNzd29yZDogcGFzc2NvZGVFbmNyeXB0aW9uQ29kZSxcbiAgICAgIGVuY3J5cHRpb25WZXJzaW9uLFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGJ1aWxkS2V5Y2FyZFFyRGF0YSh7IC4uLnFyT3B0aW9ucywgYmFja3VwS2V5Y2hhaW4gfSwgZW5jcnlwdGVkV2FsbGV0UGFzc2NvZGUpO1xufVxuXG5pbnRlcmZhY2UgRHJhd0tleWNhcmRMYXlvdXRPcHRpb25zIHtcbiAganNQREY6IGFueTtcbiAgUVJDb2RlOiBhbnk7XG4gIGFjdGl2YXRpb25Db2RlOiBzdHJpbmc7XG4gIHdhbGxldExhYmVsOiBzdHJpbmc7XG4gIGNvaW5OYW1lOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBEcmF3S2V5Y2FyZE9wdGlvbnMgZXh0ZW5kcyBHZXRLZXlEYXRhT3B0aW9ucywgRHJhd0tleWNhcmRMYXlvdXRPcHRpb25zIHtcbiAgY29pblNob3J0TmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBEcmF3S2V5Y2FyZEFzeW5jT3B0aW9ucyA9IE9taXQ8RHJhd0tleWNhcmRPcHRpb25zLCAnZW5jcnlwdCc+ICYge1xuICBlbmNyeXB0OiBFbmNyeXB0Rm5Bc3luYztcbiAgZW5jcnlwdGlvblZlcnNpb24/OiBFbmNyeXB0aW9uVmVyc2lvbjtcbn07XG5cbi8qKlxuICogUmVuZGVyIGtleWNhcmQgUERGIHBhZ2VzIGZyb20gcHJlLWJ1aWx0IFFSIGRhdGEuXG4gKi9cbmZ1bmN0aW9uIHJlbmRlcktleWNhcmRQZGYob3B0aW9uczogRHJhd0tleWNhcmRMYXlvdXRPcHRpb25zLCBrZXlEYXRhOiBhbnkpOiBhbnkge1xuICBjb25zdCB7IGpzUERGLCBRUkNvZGUsIGFjdGl2YXRpb25Db2RlLCB3YWxsZXRMYWJlbCwgY29pbk5hbWUgfSA9IG9wdGlvbnM7XG5cbiAgY29uc3QgbWFyZ2luID0gMzA7XG5cbiAgY29uc3QgZm9udCA9IHtcbiAgICBoZWFkZXI6IDI0LFxuICAgIHN1YmhlYWRlcjogMTUsXG4gICAgYm9keTogMTIsXG4gIH07XG5cbiAgY29uc3QgY29sb3IgPSB7XG4gICAgYmxhY2s6ICcjMDAwMDAwJyxcbiAgICBkYXJrZ3JheTogJyM0YzRjNGMnLFxuICAgIGdyYXk6ICcjOWI5YjliJyxcbiAgICByZWQ6ICcjZTIxZTFlJyxcbiAgfTtcblxuICAvLyBkb2N1bWVudCBkZXRhaWxzXG4gIGNvbnN0IHdpZHRoID0gOC41ICogNzI7XG4gIGxldCB5ID0gMDtcblxuICAvLyBIZWxwZXJzIGZvciBkYXRhIGZvcm1hdHRpbmcgLyBwb3NpdGlvbmluZyBvbiB0aGUgcGFwZXJcbiAgY29uc3QgbGVmdCA9ICh4KSA9PiBtYXJnaW4gKyB4O1xuICBjb25zdCBtb3ZlRG93biA9ICh5RGVsdGEpID0+IHtcbiAgICB5ICs9IHlEZWx0YTtcbiAgfTtcblxuICBjb25zdCBkb2MgPSBuZXcganNQREYoJ3BvcnRyYWl0JywgJ3B0JywgJ2xldHRlcicpO1xuICBkb2Muc2V0Rm9udCgnaGVsdmV0aWNhJyk7XG5cbiAgLy8gUERGIEhlYWRlciBBcmVhIC0gaW5jbHVkZXMgdGhlIGxvZ28gYW5kIGNvbXBhbnkgbmFtZVxuICAvLyBUaGlzIGlzIGRhdGEgZm9yIHRoZSBCaXRHbyBsb2dvIGluIHRoZSB0b3AgbGVmdCBvZiB0aGUgUERGXG4gIG1vdmVEb3duKDMwKTtcblxuICAvLyBXZSBkb24ndCBjdXJyZW50bHkgYWRkIGFuIGltYWdlLCBzaW5jZSB0aGF0IHBhdGggaXMgZGVwZW5kZW50IG9uIEJpdEdvIGZyb250ZW5kXG4gIC8vIGRvYy5hZGRJbWFnZShjb2luVXRpbGl0eS5nZXRTZWxlY3RlZENvaW5PYmooKS5rZXlDYXJkSW1hZ2UsIGxlZnQoMCksIHkgKyAxMCk7XG5cbiAgLy8gQWN0aXZhdGlvbiBDb2RlXG4gIG1vdmVEb3duKDgpO1xuICBkb2Muc2V0Rm9udFNpemUoZm9udC5ib2R5KS5zZXRUZXh0Q29sb3IoY29sb3IuZ3JheSk7XG4gIGRvYy50ZXh0KCdBY3RpdmF0aW9uIENvZGUnLCBsZWZ0KDQ2MCksIHkpO1xuXG4gIGRvYy5zZXRGb250U2l6ZShmb250LmhlYWRlcikuc2V0VGV4dENvbG9yKGNvbG9yLmJsYWNrKTtcbiAgbW92ZURvd24oMjUpO1xuICBkb2MudGV4dCgnWW91ciBCaXRHbyBLZXlDYXJkJywgbGVmdCgxNTApLCB5KTtcbiAgZG9jLnNldEZvbnRTaXplKGZvbnQuaGVhZGVyKS5zZXRUZXh0Q29sb3IoY29sb3IuZ3JheSk7XG4gIGRvYy50ZXh0KGFjdGl2YXRpb25Db2RlLnRvU3RyaW5nKCksIGxlZnQoNDYwKSwgeSk7XG5cbiAgLy8gU3ViaGVhZGVyXG4gIC8vIHRpdGxlc1xuICBtb3ZlRG93bihtYXJnaW4pO1xuICBkb2Muc2V0Rm9udFNpemUoZm9udC5ib2R5KS5zZXRUZXh0Q29sb3IoY29sb3IuZ3JheSk7XG4gIGRvYy50ZXh0KFxuICAgIGBDcmVhdGVkIG9uICR7bmV3IERhdGUoKS50b0RhdGVTdHJpbmcoKX0gYnkgJHt3aW5kb3cubG9jYXRpb24uaG9zdG5hbWV9IGZvciB3YWxsZXQgbmFtZWQgJHt3YWxsZXRMYWJlbH1gLFxuICAgIGxlZnQoMCksXG4gICAgeVxuICApO1xuICAvLyBjb3B5XG4gIG1vdmVEb3duKDI1KTtcbiAgZG9jLnNldEZvbnRTaXplKGZvbnQuc3ViaGVhZGVyKS5zZXRUZXh0Q29sb3IoY29sb3IuYmxhY2spO1xuICBkb2MudGV4dCh3YWxsZXRMYWJlbCwgbGVmdCgwKSwgeSk7XG4gIC8vIFJlZCBCYXJcbiAgbW92ZURvd24oMjApO1xuICBkb2Muc2V0RmlsbENvbG9yKDI1NSwgMjMwLCAyMzApO1xuICBkb2MucmVjdChsZWZ0KDApLCB5LCB3aWR0aCAtIDIgKiBtYXJnaW4sIDMyLCAnRicpO1xuXG4gIC8vIHdhcm5pbmcgbWVzc2FnZVxuICBtb3ZlRG93bigyMCk7XG4gIGRvYy5zZXRGb250U2l6ZShmb250LmJvZHkpLnNldFRleHRDb2xvcihjb2xvci5yZWQpO1xuICBkb2MudGV4dCgnUHJpbnQgdGhpcyBkb2N1bWVudCwgb3Iga2VlcCBpdCBzZWN1cmVseSBvZmZsaW5lLiBTZWUgc2Vjb25kIHBhZ2UgZm9yIEZBUS4nLCBsZWZ0KDc1KSwgeSk7XG5cbiAgbW92ZURvd24oMzUpO1xuICBjb25zdCBxclNpemUgPSAxMzA7XG5cbiAgLy8gRHJhdyBlYWNoIEJveCB3aXRoIFFSIGNvZGUgYW5kIGRlc2NyaXB0aW9uXG4gIE9iamVjdC5rZXlzKGtleURhdGEpLmZvckVhY2goZnVuY3Rpb24gKGtleVR5cGUpIHtcbiAgICBjb25zdCBrZXkgPSBrZXlEYXRhW2tleVR5cGVdO1xuICAgIGNvbnN0IHRvcFkgPSB5O1xuXG4gICAgLy8gRG9uJ3QgaW5kZW50IGlmIHdlJ3JlIG5vdCBwcm9kdWNpbmcgUVIgY29kZXNcbiAgICBjb25zdCB0ZXh0TGVmdCA9ICEhUVJDb2RlID8gbGVmdChxclNpemUgKyAxNSkgOiBsZWZ0KDE1KTtcblxuICAgIC8vIERyYXcgYSBRUiBjb2RlIGlmIGxpYnJhcnkgaXMgYXZhaWxhYmxlXG4gICAgaWYgKFFSQ29kZSkge1xuICAgICAgY29uc3QgZGF0YVVSTCA9IG5ldyBRUkNvZGUoeyB2YWx1ZToga2V5LmRhdGEsIHNpemU6IHFyU2l6ZSB9KS50b0RhdGFVUkwoJ2ltYWdlL2pwZWcnKTtcbiAgICAgIGRvYy5hZGRJbWFnZShkYXRhVVJMLCBsZWZ0KDApLCB5LCBxclNpemUsIHFyU2l6ZSk7XG4gICAgfVxuXG4gICAgZG9jLnNldEZvbnRTaXplKGZvbnQuc3ViaGVhZGVyKS5zZXRUZXh0Q29sb3IoY29sb3IuYmxhY2spO1xuICAgIG1vdmVEb3duKDEwKTtcbiAgICBkb2MudGV4dChrZXkudGl0bGUsIHRleHRMZWZ0LCB5KTtcbiAgICBtb3ZlRG93bigxNSk7XG4gICAgZG9jLnNldEZvbnRTaXplKGZvbnQuYm9keSkuc2V0VGV4dENvbG9yKGNvbG9yLmRhcmtncmF5KTtcbiAgICBkb2MudGV4dChrZXkuZGVzYywgdGV4dExlZnQsIHkpO1xuICAgIG1vdmVEb3duKDMwKTtcbiAgICBkb2Muc2V0Rm9udFNpemUoZm9udC5ib2R5IC0gMik7XG4gICAgZG9jLnRleHQoJ0RhdGE6JywgdGV4dExlZnQsIHkpO1xuICAgIG1vdmVEb3duKDE1KTtcbiAgICBjb25zdCBpbm5lcldpZHRoID0gNzIgKiA4LjUgLSB0ZXh0TGVmdCAtIDMwO1xuICAgIGRvYy5zZXRGb250KCdjb3VyaWVyJykuc2V0Rm9udFNpemUoOSkuc2V0VGV4dENvbG9yKGNvbG9yLmJsYWNrKTtcbiAgICBjb25zdCBsaW5lcyA9IGRvYy5zcGxpdFRleHRUb1NpemUoa2V5LmRhdGEsIGlubmVyV2lkdGgpO1xuICAgIGRvYy50ZXh0KGxpbmVzLCB0ZXh0TGVmdCwgeSk7XG5cbiAgICAvLyBBZGQga2V5IElEIChkZXJpdmF0aW9uIHN0cmluZykgaWYgaXQgZXhpc3RzXG4gICAgaWYgKGtleS5rZXlJRCkge1xuICAgICAgY29uc3QgdGV4dCA9ICdLZXkgSWQ6ICcgKyBrZXkua2V5SUQ7XG4gICAgICAvLyBHcmF5IGJhclxuICAgICAgbW92ZURvd24oNDUpO1xuICAgICAgZG9jLnNldEZpbGxDb2xvcigyNDcsIDI0OSwgMjQ5KTsgLy8gR3JheSBiYWNrZ3JvdW5kXG4gICAgICBkb2Muc2V0RHJhd0NvbG9yKDAsIDAsIDApOyAvLyBCb3JkZXJcbiAgICAgIGRvYy5yZWN0KHRleHRMZWZ0LCB5LCB3aWR0aCwgMTUsICdGRCcpO1xuXG4gICAgICBkb2MudGV4dCh0ZXh0LCB0ZXh0TGVmdCArIDUsIHkgKyAxMCk7XG4gICAgfVxuXG4gICAgZG9jLnNldEZvbnQoJ2hlbHZldGljYScpO1xuICAgIC8vIE1vdmUgZG93biB0aGUgc2l6ZSBvZiB0aGUgUVIgY29kZSBtaW51cyBhY2N1bXVsYXRlZCBoZWlnaHQgb24gdGhlIHJpZ2h0IHNpZGUsIHBsdXMgYnVmZmVyXG4gICAgbW92ZURvd24ocXJTaXplIC0gKHkgLSB0b3BZKSArIDE1KTtcbiAgfSk7XG5cbiAgLy8gQWRkIGEgbmV3IHBhZ2UgKFEgKyBBIHBhZ2UpXG4gIGRvYy5hZGRQYWdlKCk7XG5cbiAgLy8gMm5kIHBhZ2UgdGl0bGVcbiAgeSA9IDA7XG4gIG1vdmVEb3duKDU1KTtcbiAgZG9jLnNldEZvbnRTaXplKGZvbnQuaGVhZGVyKS5zZXRUZXh0Q29sb3IoY29sb3IuYmxhY2spO1xuICBkb2MudGV4dCgnQml0R28gS2V5Q2FyZCBGQVEnLCBsZWZ0KDApLCB5KTtcblxuICBjb25zdCBxdWVzdGlvbnMgPSBnZW5lcmF0ZVF1ZXN0aW9ucyhjb2luTmFtZSk7XG5cbiAgLy8gRHJhdyB0aGUgUSArIEEgZGF0YSBvbiB0aGUgc2Vjb25kIHBhZ2VcbiAgbW92ZURvd24oMzApO1xuICBxdWVzdGlvbnMuZm9yRWFjaChmdW5jdGlvbiAocSkge1xuICAgIGRvYy5zZXRGb250U2l6ZShmb250LnN1YmhlYWRlcikuc2V0VGV4dENvbG9yKGNvbG9yLmJsYWNrKTtcbiAgICBkb2MudGV4dChxLnEsIGxlZnQoMCksIHkpO1xuICAgIG1vdmVEb3duKDIwKTtcbiAgICBkb2Muc2V0Rm9udFNpemUoZm9udC5ib2R5KS5zZXRUZXh0Q29sb3IoY29sb3IuZGFya2dyYXkpO1xuICAgIHEuYS5mb3JFYWNoKGZ1bmN0aW9uIChsaW5lKSB7XG4gICAgICBkb2MudGV4dChsaW5lLCBsZWZ0KDApLCB5KTtcbiAgICAgIG1vdmVEb3duKGZvbnQuYm9keSArIDMpO1xuICAgIH0pO1xuICAgIG1vdmVEb3duKDIyKTtcbiAgfSk7XG5cbiAgcmV0dXJuIGRvYztcbn1cblxuLyoqXG4gKiBUT0RPOiBEZXByZWNhdGUgdGhpcyBmdW5jdGlvbiBpbiBmYXZvciBvZiBkcmF3S2V5Y2FyZEFzeW5jIG9uY2UgdjIgZW5jcnlwdGlvbiBpcyBkZWZhdWx0LlxuICogRHJhdyBhIGtleWNhcmQgaW50byBhIG5ldyBwZGYgZG9jdW1lbnQgb2JqZWN0XG4gKiBAcGFyYW0gb3B0aW9uc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZHJhd0tleWNhcmQob3B0aW9uczogRHJhd0tleWNhcmRPcHRpb25zKTogYW55IHtcbiAgY29uc3Qge1xuICAgIGVuY3J5cHQsXG4gICAgcGFzc3BocmFzZSxcbiAgICBwYXNzY29kZUVuY3J5cHRpb25Db2RlLFxuICAgIHdhbGxldEtleUlELFxuICAgIGJhY2t1cEtleUlELFxuICAgIHVzZXJLZXljaGFpbixcbiAgICBiaXRnb0tleWNoYWluLFxuICAgIGJhY2t1cEtleWNoYWluLFxuICAgIGNvaW5TaG9ydE5hbWUsXG4gICAganNQREYsXG4gICAgUVJDb2RlLFxuICAgIGFjdGl2YXRpb25Db2RlLFxuICAgIHdhbGxldExhYmVsLFxuICAgIGNvaW5OYW1lLFxuICB9ID0gb3B0aW9ucztcblxuICBjb25zdCBrZXlEYXRhID0gZ2V0S2V5RGF0YSh7XG4gICAgZW5jcnlwdCxcbiAgICBjb2luU2hvcnROYW1lLFxuICAgIHBhc3NwaHJhc2UsXG4gICAgcGFzc2NvZGVFbmNyeXB0aW9uQ29kZSxcbiAgICB3YWxsZXRLZXlJRCxcbiAgICBiYWNrdXBLZXlJRCxcbiAgICB1c2VyS2V5Y2hhaW4sXG4gICAgYml0Z29LZXljaGFpbixcbiAgICBiYWNrdXBLZXljaGFpbixcbiAgfSk7XG5cbiAgcmV0dXJuIHJlbmRlcktleWNhcmRQZGYoeyBqc1BERiwgUVJDb2RlLCBhY3RpdmF0aW9uQ29kZSwgd2FsbGV0TGFiZWwsIGNvaW5OYW1lIH0sIGtleURhdGEpO1xufVxuXG4vKipcbiAqIEFzeW5jIHZlcnNpb24gb2YgZHJhd0tleWNhcmQgd2l0aCBzdXBwb3J0IGZvciB2MiAoQXJnb24yaWQpIGVuY3J5cHRpb24uXG4gKiBVc2UgdGhpcyB3aGVuIHRoZSBlbmNyeXB0IGNhbGxiYWNrIG1heSByZXR1cm4gYSBQcm9taXNlIChlLmcuIGVuY3J5cHRBc3luYykuXG4gKlxuICogRHJhdyBhIGtleWNhcmQgaW50byBhIG5ldyBwZGYgZG9jdW1lbnQgb2JqZWN0XG4gKiBAcGFyYW0gb3B0aW9uc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZHJhd0tleWNhcmRBc3luYyhvcHRpb25zOiBEcmF3S2V5Y2FyZEFzeW5jT3B0aW9ucyk6IFByb21pc2U8YW55PiB7XG4gIGNvbnN0IHtcbiAgICBlbmNyeXB0LFxuICAgIHBhc3NwaHJhc2UsXG4gICAgcGFzc2NvZGVFbmNyeXB0aW9uQ29kZSxcbiAgICB3YWxsZXRLZXlJRCxcbiAgICBiYWNrdXBLZXlJRCxcbiAgICB1c2VyS2V5Y2hhaW4sXG4gICAgYml0Z29LZXljaGFpbixcbiAgICBiYWNrdXBLZXljaGFpbixcbiAgICBjb2luU2hvcnROYW1lLFxuICAgIGpzUERGLFxuICAgIFFSQ29kZSxcbiAgICBhY3RpdmF0aW9uQ29kZSxcbiAgICB3YWxsZXRMYWJlbCxcbiAgICBjb2luTmFtZSxcbiAgICBlbmNyeXB0aW9uVmVyc2lvbixcbiAgfSA9IG9wdGlvbnM7XG5cbiAgLy8gR2V0IHRoZSBkYXRhIGZvciB0aGUgZmlyc3QgcGFnZSAocXIgY29kZXMpXG4gIGNvbnN0IGtleURhdGEgPSBhd2FpdCBnZXRLZXlEYXRhQXN5bmMoe1xuICAgIGVuY3J5cHQsXG4gICAgY29pblNob3J0TmFtZSxcbiAgICBwYXNzcGhyYXNlLFxuICAgIHBhc3Njb2RlRW5jcnlwdGlvbkNvZGUsXG4gICAgd2FsbGV0S2V5SUQsXG4gICAgYmFja3VwS2V5SUQsXG4gICAgdXNlcktleWNoYWluLFxuICAgIGJpdGdvS2V5Y2hhaW4sXG4gICAgYmFja3VwS2V5Y2hhaW4sXG4gICAgZW5jcnlwdGlvblZlcnNpb24sXG4gIH0pO1xuXG4gIHJldHVybiByZW5kZXJLZXljYXJkUGRmKHsganNQREYsIFFSQ29kZSwgYWN0aXZhdGlvbkNvZGUsIHdhbGxldExhYmVsLCBjb2luTmFtZSB9LCBrZXlEYXRhKTtcbn1cbiJdfQ==
316
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2FyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby9pbnRlcm5hbC9rZXljYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRzs7QUF3WEgsa0NBa0NDO0FBeFpEO0dBQ0c7QUFDSCxtQ0FBcUM7QUFJckM7OztHQUdHO0FBQ0gsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFO0lBQ3pDLE9BQU87UUFDTDtZQUNFLENBQUMsRUFBRSxzQkFBc0I7WUFDekIsQ0FBQyxFQUFFO2dCQUNELCtFQUErRSxJQUFJLEdBQUc7Z0JBQ3RGLDJEQUEyRCxHQUFHLGdDQUFnQztnQkFDOUYsdUZBQXVGO2FBQ3hGO1NBQ0Y7UUFDRDtZQUNFLENBQUMsRUFBRSwyQkFBMkI7WUFDOUIsQ0FBQyxFQUFFO2dCQUNELCtGQUErRjtnQkFDL0YsbUdBQW1HO2dCQUNuRyxnREFBZ0Q7Z0JBQ2hELEVBQUU7Z0JBQ0YsNkZBQTZGO2dCQUM3RiwrRkFBK0Y7Z0JBQy9GLHNEQUFzRDthQUN2RDtTQUNGO1FBQ0Q7WUFDRSxDQUFDLEVBQUUsZ0NBQWdDO1lBQ25DLENBQUMsRUFBRTtnQkFDRCxnRUFBZ0UsSUFBSSwyQkFBMkI7Z0JBQy9GLCtGQUErRjtnQkFDL0YsdUNBQXVDO2dCQUN2QywwQ0FBMEM7YUFDM0M7U0FDRjtRQUNEO1lBQ0UsQ0FBQyxFQUFFLGtDQUFrQztZQUNyQyxDQUFDLEVBQUU7Z0JBQ0Qsa0dBQWtHO2dCQUNsRyx1RkFBdUY7Z0JBQ3ZGLHNGQUFzRjtnQkFDdEYsNkZBQTZGO2dCQUM3RiwrQ0FBK0M7YUFDaEQ7U0FDRjtRQUNEO1lBQ0UsQ0FBQyxFQUFFLDhDQUE4QztZQUNqRCxDQUFDLEVBQUU7Z0JBQ0Qsd0ZBQXdGO2dCQUN4Riw2RkFBNkY7YUFDOUY7U0FDRjtRQUNEO1lBQ0UsQ0FBQyxFQUFFLDREQUE0RDtZQUMvRCxDQUFDLEVBQUU7Z0JBQ0Qsb0ZBQW9GO2dCQUNwRiw0REFB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O1FBQ2IsY0FBYztRQUNkLGlCQUFpQjtLQUNsQixDQUFDLENBQUM7SUFFSCxPQUFPLGdCQUFnQixDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzdGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBoaWRkZW5cbiAqL1xuXG4vKipcbiAqL1xuaW1wb3J0IHsgaXNVbmRlZmluZWQgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgS2V5Y2hhaW4gfSBmcm9tICcuLi9rZXljaGFpbic7XG5pbXBvcnQgeyBFbmNyeXB0Rm5Bc3luYywgRW5jcnlwdGlvblZlcnNpb24gfSBmcm9tICcuLi8uLi9hcGknO1xuXG4vKipcbiAqIFJldHVybiB0aGUgbGlzdCBvZiBxdWVzdGlvbnMgdGhhdCB3aWxsIGFwcGVhciBvbiB0aGUgc2Vjb25kIHBhZ2Ugb2YgdGhlIGtleWNhcmRcbiAqIEBwYXJhbSBjb2luIG5hbWUgb2YgdGhlIGNvaW5cbiAqL1xuY29uc3QgZ2VuZXJhdGVRdWVzdGlvbnMgPSAoY29pbjogc3RyaW5nKSA9PiB7XG4gIHJldHVybiBbXG4gICAge1xuICAgICAgcTogJ1doYXQgaXMgdGhlIEtleUNhcmQ/JyxcbiAgICAgIGE6IFtcbiAgICAgICAgYFRoZSBLZXlDYXJkIGNvbnRhaW5zIGltcG9ydGFudCBpbmZvcm1hdGlvbiB3aGljaCBjYW4gYmUgdXNlZCB0byByZWNvdmVyIHRoZSAke2NvaW59IGAsXG4gICAgICAgICdmcm9tIHlvdXIgd2FsbGV0IGluIHNldmVyYWwgc2l0dWF0aW9ucy4gRWFjaCBCaXRHbyB3YWxsZXQnICsgJyBoYXMgaXRzIG93biwgdW5pcXVlIEtleUNhcmQuICcsXG4gICAgICAgICdJZiB5b3UgaGF2ZSBjcmVhdGVkIG11bHRpcGxlIHdhbGxldHMsIHlvdSBzaG91bGQgcmV0YWluIHRoZSBLZXlDYXJkIGZvciBlYWNoIG9mIHRoZW0uJyxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBxOiAnV2hhdCBzaG91bGQgSSBkbyB3aXRoIGl0PycsXG4gICAgICBhOiBbXG4gICAgICAgICdZb3Ugc2hvdWxkIHByaW50IHRoZSBLZXlDYXJkIGFuZC9vciBzYXZlIHRoZSBQREYgdG8gYW4gb2ZmbGluZSBzdG9yYWdlIGRldmljZS4gVGhlIHByaW50LW91dCAnLFxuICAgICAgICBcIm9yIFVTQiBzdGljayBzaG91bGQgYmUga2VwdCBpbiBhIHNhZmUgcGxhY2UsIHN1Y2ggYXMgYSBiYW5rIHZhdWx0IG9yIGhvbWUgc2FmZS4gSXQncyBhIGdvb2QgaWRlYSBcIixcbiAgICAgICAgJ3RvIGtlZXAgYSBzZWNvbmQgY29weSBpbiBhIGRpZmZlcmVudCBsb2NhdGlvbi4nLFxuICAgICAgICAnJyxcbiAgICAgICAgXCJJbXBvcnRhbnQ6IElmIHlvdSBoYXZlbid0IHByb3ZpZGVkIGFuIGV4dGVybmFsIGJhY2t1cCBrZXksIHRoZW4gdGhlIG9yaWdpbmFsIFBERiBzaG91bGQgYmUgXCIsXG4gICAgICAgICdkZWxldGVkIGZyb20gYW55IG1hY2hpbmUgd2hlcmUgdGhlIHdhbGxldCB3aWxsIGJlIHJlZ3VsYXJseSBhY2Nlc3NlZCB0byBwcmV2ZW50IG1hbHdhcmUgZnJvbSAnLFxuICAgICAgICAnY2FwdHVyaW5nIGJvdGggdGhlIEtleUNhcmQgYW5kIHlvdXIgd2FsbGV0IHBhc3Njb2RlLicsXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgcTogJ1doYXQgc2hvdWxkIEkgZG8gaWYgSSBsb3NlIGl0PycsXG4gICAgICBhOiBbXG4gICAgICAgIGBJZiB5b3UgaGF2ZSBsb3N0IG9yIGRhbWFnZWQgYWxsIGNvcGllcyBvZiB5b3VyIEtleUNhcmQsIHlvdXIgJHtjb2lufSBpcyBzdGlsbCBzYWZlLCBidXQgdGhpcyBgLFxuICAgICAgICAnd2FsbGV0IHNob3VsZCBiZSBjb25zaWRlcmVkIGF0IHJpc2sgZm9yIGxvc3MuIEFzIHNvb24gYXMgaXMgY29udmVuaWVudCwgeW91IHNob3VsZCB1c2UgQml0R28gJyxcbiAgICAgICAgJ3RvIGVtcHR5IHRoZSB3YWxsZXQgaW50byBhIG5ldyB3YWxsZXQnLFxuICAgICAgICAnLCBhbmQgZGlzY29udGludWUgdXNlIG9mIHRoZSBvbGQgd2FsbGV0LicsXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgcTogJ1doYXQgaWYgc29tZW9uZSBzZWVzIG15IEtleUNhcmQ/JyxcbiAgICAgIGE6IFtcbiAgICAgICAgXCJEb24ndCBwYW5pYyEgQWxsIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiBvbiB0aGUgS2V5Q2FyZCBpcyBlbmNyeXB0ZWQgd2l0aCB5b3VyIHBhc3Njb2RlLCBvciB3aXRoIGFcIixcbiAgICAgICAgJ2tleSB3aGljaCBvbmx5IEJpdEdvIGhhcy4gQnV0LCBpbiBnZW5lcmFsLCB5b3Ugc2hvdWxkIG1ha2UgYmVzdCBlZmZvcnRzIHRvIGtlZXAgeW91ciAnLFxuICAgICAgICAnS2V5Q2FyZCBwcml2YXRlLiBJZiB5b3VyIEtleUNhcmQgZG9lcyBnZXQgZXhwb3NlZCBvciBjb3BpZWQgaW4gYSB3YXkgdGhhdCBtYWtlcyB5b3UgJyxcbiAgICAgICAgJ3VuY29tZm9ydGFibGUsIHRoZSBiZXN0IGNvdXJzZSBvZiBhY3Rpb24gaXMgdG8gZW1wdHkgdGhlIGNvcnJlc3BvbmRpbmcgd2FsbGV0IGludG8gYW5vdGhlciAnLFxuICAgICAgICAnd2FsbGV0IGFuZCBkaXNjb250aW51ZSB1c2Ugb2YgdGhlIG9sZCB3YWxsZXQuJyxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBxOiAnV2hhdCBpZiBJIGZvcmdldCBvciBsb3NlIG15IHdhbGxldCBwYXNzd29yZD8nLFxuICAgICAgYTogW1xuICAgICAgICAnQml0R28gY2FuIHVzZSB0aGUgaW5mb3JtYXRpb24gaW4gUVIgQ29kZSBEIHRvIGhlbHAgeW91IHJlY292ZXIgYWNjZXNzIHRvIHlvdXIgd2FsbGV0LiAnLFxuICAgICAgICAnV2l0aG91dCB0aGUgS2V5Q2FyZCwgQml0R28gaXMgbm90IGFibGUgdG8gcmVjb3ZlciBmdW5kcyBmcm9tIGEgd2FsbGV0IHdpdGggYSBsb3N0IHBhc3N3b3JkLicsXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgcTogJ1doYXQgaWYgQml0R28gYmVjb21lcyBpbmFjY2Vzc2libGUgZm9yIGFuIGV4dGVuZGVkIHBlcmlvZD8nLFxuICAgICAgYTogW1xuICAgICAgICAnWW91ciBLZXlDYXJkIGFuZCB3YWxsZXQgcGFzc2NvZGUgY2FuIGJlIHVzZWQgdG9nZXRoZXIgd2l0aCBCaXRHb+KAmXMgcHVibGlzaGVkIG9wZW4gJyxcbiAgICAgICAgYHNvdXJjZSB0b29scyBhdCBodHRwczovL2dpdGh1Yi5jb20vYml0Z28gdG8gcmVjb3ZlciB5b3VyICR7Y29pbn0uIE5vdGU6IFlvdSBzaG91bGQgbmV2ZXIgZW50ZXIgYCxcbiAgICAgICAgJ2luZm9ybWF0aW9uIGZyb20geW91ciBLZXlDYXJkIGludG8gdG9vbHMgb3RoZXIgdGhhbiB0aGUgdG9vbHMgQml0R28gaGFzIHB1Ymxpc2hlZCwgb3IgeW91ciAnLFxuICAgICAgICAnZnVuZHMgbWF5IGJlIGF0IHJpc2sgZm9yIHRoZWZ0LicsXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgcTogJ1Nob3VsZCBJIHdyaXRlIG15IHdhbGxldCBwYXNzd29yZCBvbiBteSBLZXlDYXJkPycsXG4gICAgICBhOiBbXG4gICAgICAgICdObyEgQml0R2/igJlzIG11bHRpLXNpZ25hdHVyZSBhcHByb2FjaCB0byBzZWN1cml0eSBkZXBlbmRzIG9uIHRoZXJlIG5vdCBiZWluZyBhIHNpbmdsZSBwb2ludCAnLFxuICAgICAgICAnb2YgYXR0YWNrLiBCdXQgaWYgeW91ciB3YWxsZXQgcGFzc3dvcmQgaXMgb24geW91ciBLZXlDYXJkLCB0aGVuIGFueW9uZSB3aG8gZ2FpbnMgYWNjZXNzIHRvICcsXG4gICAgICAgIGB5b3VyIEtleUNhcmQgd2lsbCBiZSBhYmxlIHRvIHN0ZWFsIHlvdXIgJHtjb2lufS4gV2UgcmVjb21tZW5kIGtlZXBpbmcgeW91ciB3YWxsZXQgcGFzc3dvcmQgYCxcbiAgICAgICAgJ3NhZmUgaW4gYSBzZWN1cmUgcGFzc3dvcmQgbWFuYWdlciBzdWNoIGFzIExhc3RQYXNzLCAxUGFzc3dvcmQgb3IgS2VlUGFzcy4nLFxuICAgICAgXSxcbiAgICB9LFxuICBdO1xufTtcblxuaW50ZXJmYWNlIEdldEtleURhdGFPcHRpb25zIHtcbiAgZW5jcnlwdDogRW5jcnlwdEZuQXN5bmM7XG4gIHVzZXJLZXljaGFpbjogS2V5Y2hhaW47XG4gIGJpdGdvS2V5Y2hhaW46IEtleWNoYWluO1xuICBiYWNrdXBLZXljaGFpbjogS2V5Y2hhaW47XG4gIGNvaW5TaG9ydE5hbWU6IHN0cmluZztcbiAgcGFzc3BocmFzZT86IHN0cmluZztcbiAgcGFzc2NvZGVFbmNyeXB0aW9uQ29kZT86IHN0cmluZztcbiAgd2FsbGV0S2V5SUQ/OiBzdHJpbmc7XG4gIGJhY2t1cEtleUlEPzogc3RyaW5nO1xuICBlbmNyeXB0aW9uVmVyc2lvbj86IEVuY3J5cHRpb25WZXJzaW9uO1xufVxuXG5pbnRlcmZhY2UgQnVpbGRLZXljYXJkUXJEYXRhT3B0aW9ucyB7XG4gIHVzZXJLZXljaGFpbjogS2V5Y2hhaW47XG4gIGJpdGdvS2V5Y2hhaW46IEtleWNoYWluO1xuICBiYWNrdXBLZXljaGFpbjogS2V5Y2hhaW47XG4gIGNvaW5TaG9ydE5hbWU6IHN0cmluZztcbiAgd2FsbGV0S2V5SUQ/OiBzdHJpbmc7XG4gIGJhY2t1cEtleUlEPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEJ1aWxkIFFSIGNvZGUgcGF5bG9hZCBmb3IgZWFjaCBrZXljYXJkIGJveC4gRG9lcyBub3QgcGVyZm9ybSBlbmNyeXB0aW9uLlxuICovXG5mdW5jdGlvbiBidWlsZEtleWNhcmRRckRhdGEob3B0aW9uczogQnVpbGRLZXljYXJkUXJEYXRhT3B0aW9ucywgZW5jcnlwdGVkV2FsbGV0UGFzc2NvZGU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IGFueSB7XG4gIGNvbnN0IHsgdXNlcktleWNoYWluLCBiaXRnb0tleWNoYWluLCBiYWNrdXBLZXljaGFpbiwgY29pblNob3J0TmFtZSwgd2FsbGV0S2V5SUQsIGJhY2t1cEtleUlEIH0gPSBvcHRpb25zO1xuXG4gIC8vIFBERiBRUiBDb2RlIGRhdGFcbiAgY29uc3QgcXJEYXRhOiBhbnkgPSB7XG4gICAgdXNlcjoge1xuICAgICAgdGl0bGU6ICdBOiBVc2VyIEtleScsXG4gICAgICBkZXNjOiAnVGhpcyBpcyB5b3VyIHByaXZhdGUga2V5LCBlbmNyeXB0ZWQgd2l0aCB5b3VyIHBhc3Njb2RlLicsXG4gICAgICBkYXRhOiB1c2VyS2V5Y2hhaW4uZW5jcnlwdGVkUHJ2LFxuICAgIH0sXG4gICAgYmFja3VwOiB7XG4gICAgICB0aXRsZTogJ0I6IEJhY2t1cCBLZXknLFxuICAgICAgZGVzYzogJ1RoaXMgaXMgeW91ciBiYWNrdXAgcHJpdmF0ZSBrZXksIGVuY3J5cHRlZCB3aXRoIHlvdXIgcGFzc2NvZGUuJyxcbiAgICAgIGRhdGE6IGJhY2t1cEtleWNoYWluLmVuY3J5cHRlZFBydixcbiAgICB9LFxuICAgIGJpdGdvOiB7XG4gICAgICB0aXRsZTogJ0M6IEJpdEdvIEtleScsXG4gICAgICBkZXNjOiAnVGhpcyBpcyB0aGUgcHVibGljIHBhcnQgb2YgdGhlIGtleSBoZWxkIGJ5IEJpdEdvLicsXG4gICAgICBkYXRhOiBiaXRnb0tleWNoYWluLnB1YixcbiAgICB9LFxuICAgIHBhc3Njb2RlOiB7XG4gICAgICB0aXRsZTogJ0Q6IEVuY3J5cHRlZCBXYWxsZXQgUGFzc3dvcmQnLFxuICAgICAgZGVzYzogJ1RoaXMgaXMgdGhlIHdhbGxldCBwYXNzd29yZCwgZW5jcnlwdGVkIGNsaWVudC1zaWRlICcgKyAnd2l0aCBhIGtleSBoZWxkIGJ5XFxyXFxuQml0R28uJyxcbiAgICAgIGRhdGE6IGVuY3J5cHRlZFdhbGxldFBhc3Njb2RlLFxuICAgIH0sXG4gIH07XG5cbiAgaWYgKHdhbGxldEtleUlEKSB7XG4gICAgcXJEYXRhLnVzZXIua2V5SUQgPSB3YWxsZXRLZXlJRDtcbiAgfVxuXG4gIGlmIChiYWNrdXBLZXlJRCkge1xuICAgIHFyRGF0YS5iYWNrdXAua2V5SUQgPSBiYWNrdXBLZXlJRDtcbiAgfVxuXG4gIGlmIChpc1VuZGVmaW5lZCh1c2VyS2V5Y2hhaW4uZW5jcnlwdGVkUHJ2KSkge1xuICAgIC8vIFVzZXIgcHJvdmlkZWQgdGhlaXIgb3duIGtleSAtIHRoaXMgaXMgYSBjb2xkIHdhbGxldFxuICAgIHFyRGF0YS51c2VyLnRpdGxlID0gJ0E6IFByb3ZpZGVkIFVzZXIgS2V5JztcbiAgICBxckRhdGEudXNlci5kZXNjID0gJ1RoaXMgaXMgdGhlIHB1YmxpYyBrZXkgeW91IHByb3ZpZGVkIGZvciB5b3VyIHdhbGxldC4nO1xuICAgIHFyRGF0YS51c2VyLmRhdGEgPSB1c2VyS2V5Y2hhaW4ucHViO1xuXG4gICAgLy8gVGhlIHVzZXIgcHJvdmlkZWQgdGhlaXIgb3duIHB1YmxpYyBrZXksIHdlIGNhbiByZW1vdmUgYm94IERcbiAgICBkZWxldGUgcXJEYXRhLnBhc3Njb2RlO1xuICB9IGVsc2UgaWYgKGlzVW5kZWZpbmVkKGVuY3J5cHRlZFdhbGxldFBhc3Njb2RlKSkge1xuICAgIGRlbGV0ZSBxckRhdGEucGFzc2NvZGU7XG4gIH1cblxuICBpZiAoIWlzVW5kZWZpbmVkKGJhY2t1cEtleWNoYWluLnByb3ZpZGVyKSkge1xuICAgIGNvbnN0IGJhY2t1cEtleVByb3ZpZGVyTmFtZSA9IGJhY2t1cEtleWNoYWluLnByb3ZpZGVyO1xuICAgIC8vIEJhY2t1cCBrZXkgaGVsZCB3aXRoIEtSU1xuICAgIHFyRGF0YS5iYWNrdXAgPSB7XG4gICAgICB0aXRsZTogJ0I6IEJhY2t1cCBLZXknLFxuICAgICAgZGVzYzpcbiAgICAgICAgYFRoaXMgaXMgdGhlIHB1YmxpYyBrZXkgaGVsZCBhdCAke2JhY2t1cEtleVByb3ZpZGVyTmFtZX1gICtcbiAgICAgICAgYCwgYW4gJHtjb2luU2hvcnROYW1lfSByZWNvdmVyeSBzZXJ2aWNlLiBJZiB5b3UgbG9zZVxcclxcbnlvdXIga2V5LCAke2JhY2t1cEtleVByb3ZpZGVyTmFtZX1gICtcbiAgICAgICAgJyB3aWxsIGJlIGFibGUgdG8gc2lnbiB0cmFuc2FjdGlvbnMgdG8gcmVjb3ZlciBmdW5kcy4nLFxuICAgICAgZGF0YTogYmFja3VwS2V5Y2hhaW4ucHViLFxuICAgIH07XG4gIH0gZWxzZSBpZiAoaXNVbmRlZmluZWQoYmFja3VwS2V5Y2hhaW4uZW5jcnlwdGVkUHJ2KSkge1xuICAgIC8vIFVzZXIgc3VwcGxpZWQgdGhlIHhwdWJcbiAgICBxckRhdGEuYmFja3VwID0ge1xuICAgICAgdGl0bGU6ICdCOiBCYWNrdXAgS2V5JyxcbiAgICAgIGRlc2M6ICdUaGlzIGlzIHRoZSBwdWJsaWMgcG9ydGlvbiBvZiB5b3VyIGJhY2t1cCBrZXksIHdoaWNoIHlvdSBwcm92aWRlZC4nLFxuICAgICAgZGF0YTogYmFja3VwS2V5Y2hhaW4ucHViLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4gcXJEYXRhO1xufVxuXG4vKipcbiAqIENvbGxlY3QgYWxsIGRhdGEgd2hpY2ggd2lsbCBnbyBvbnRvIHRoZSBrZXljYXJkLlxuICogU2VxdWVudGlhbCBlbmNyeXB0OiBiYWNrdXAga2V5IGZpcnN0LCB0aGVuIHBhc3Njb2RlLlxuICogQHBhcmFtIG9wdGlvbnNcbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0S2V5RGF0YShvcHRpb25zOiBHZXRLZXlEYXRhT3B0aW9ucyk6IFByb21pc2U8YW55PiB7XG4gIGNvbnN0IHsgZW5jcnlwdCwgYmFja3VwS2V5Y2hhaW4sIHBhc3NwaHJhc2UsIHBhc3Njb2RlRW5jcnlwdGlvbkNvZGUsIGVuY3J5cHRpb25WZXJzaW9uLCAuLi5xck9wdGlvbnMgfSA9IG9wdGlvbnM7XG5cbiAgaWYgKGJhY2t1cEtleWNoYWluLnBydiAmJiBwYXNzcGhyYXNlKSB7XG4gICAgYmFja3VwS2V5Y2hhaW4uZW5jcnlwdGVkUHJ2ID0gYXdhaXQgZW5jcnlwdCh7XG4gICAgICBpbnB1dDogYmFja3VwS2V5Y2hhaW4ucHJ2LFxuICAgICAgcGFzc3dvcmQ6IHBhc3NwaHJhc2UsXG4gICAgICBlbmNyeXB0aW9uVmVyc2lvbixcbiAgICB9KTtcbiAgfVxuXG4gIGxldCBlbmNyeXB0ZWRXYWxsZXRQYXNzY29kZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBpZiAocGFzc3BocmFzZSAmJiBwYXNzY29kZUVuY3J5cHRpb25Db2RlKSB7XG4gICAgZW5jcnlwdGVkV2FsbGV0UGFzc2NvZGUgPSBhd2FpdCBlbmNyeXB0KHtcbiAgICAgIGlucHV0OiBwYXNzcGhyYXNlLFxuICAgICAgcGFzc3dvcmQ6IHBhc3Njb2RlRW5jcnlwdGlvbkNvZGUsXG4gICAgICBlbmNyeXB0aW9uVmVyc2lvbixcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBidWlsZEtleWNhcmRRckRhdGEoeyAuLi5xck9wdGlvbnMsIGJhY2t1cEtleWNoYWluIH0sIGVuY3J5cHRlZFdhbGxldFBhc3Njb2RlKTtcbn1cblxuaW50ZXJmYWNlIERyYXdLZXljYXJkTGF5b3V0T3B0aW9ucyB7XG4gIGpzUERGOiBhbnk7XG4gIFFSQ29kZTogYW55O1xuICBhY3RpdmF0aW9uQ29kZTogc3RyaW5nO1xuICB3YWxsZXRMYWJlbDogc3RyaW5nO1xuICBjb2luTmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERyYXdLZXljYXJkT3B0aW9ucyBleHRlbmRzIEdldEtleURhdGFPcHRpb25zLCBEcmF3S2V5Y2FyZExheW91dE9wdGlvbnMge1xuICBjb2luU2hvcnROYW1lOiBzdHJpbmc7XG59XG5cbi8qKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIERyYXdLZXljYXJkT3B0aW9uc30uIGBkcmF3S2V5Y2FyZGAgaXMgbm93IGFzeW5jIGJ5IGRlZmF1bHQuICovXG5leHBvcnQgdHlwZSBEcmF3S2V5Y2FyZEFzeW5jT3B0aW9ucyA9IERyYXdLZXljYXJkT3B0aW9ucztcblxuLyoqXG4gKiBSZW5kZXIga2V5Y2FyZCBQREYgcGFnZXMgZnJvbSBwcmUtYnVpbHQgUVIgZGF0YS5cbiAqL1xuZnVuY3Rpb24gcmVuZGVyS2V5Y2FyZFBkZihvcHRpb25zOiBEcmF3S2V5Y2FyZExheW91dE9wdGlvbnMsIGtleURhdGE6IGFueSk6IGFueSB7XG4gIGNvbnN0IHsganNQREYsIFFSQ29kZSwgYWN0aXZhdGlvbkNvZGUsIHdhbGxldExhYmVsLCBjb2luTmFtZSB9ID0gb3B0aW9ucztcblxuICBjb25zdCBtYXJnaW4gPSAzMDtcblxuICBjb25zdCBmb250ID0ge1xuICAgIGhlYWRlcjogMjQsXG4gICAgc3ViaGVhZGVyOiAxNSxcbiAgICBib2R5OiAxMixcbiAgfTtcblxuICBjb25zdCBjb2xvciA9IHtcbiAgICBibGFjazogJyMwMDAwMDAnLFxuICAgIGRhcmtncmF5OiAnIzRjNGM0YycsXG4gICAgZ3JheTogJyM5YjliOWInLFxuICAgIHJlZDogJyNlMjFlMWUnLFxuICB9O1xuXG4gIC8vIGRvY3VtZW50IGRldGFpbHNcbiAgY29uc3Qgd2lkdGggPSA4LjUgKiA3MjtcbiAgbGV0IHkgPSAwO1xuXG4gIC8vIEhlbHBlcnMgZm9yIGRhdGEgZm9ybWF0dGluZyAvIHBvc2l0aW9uaW5nIG9uIHRoZSBwYXBlclxuICBjb25zdCBsZWZ0ID0gKHgpID0+IG1hcmdpbiArIHg7XG4gIGNvbnN0IG1vdmVEb3duID0gKHlEZWx0YSkgPT4ge1xuICAgIHkgKz0geURlbHRhO1xuICB9O1xuXG4gIGNvbnN0IGRvYyA9IG5ldyBqc1BERigncG9ydHJhaXQnLCAncHQnLCAnbGV0dGVyJyk7XG4gIGRvYy5zZXRGb250KCdoZWx2ZXRpY2EnKTtcblxuICAvLyBQREYgSGVhZGVyIEFyZWEgLSBpbmNsdWRlcyB0aGUgbG9nbyBhbmQgY29tcGFueSBuYW1lXG4gIC8vIFRoaXMgaXMgZGF0YSBmb3IgdGhlIEJpdEdvIGxvZ28gaW4gdGhlIHRvcCBsZWZ0IG9mIHRoZSBQREZcbiAgbW92ZURvd24oMzApO1xuXG4gIC8vIFdlIGRvbid0IGN1cnJlbnRseSBhZGQgYW4gaW1hZ2UsIHNpbmNlIHRoYXQgcGF0aCBpcyBkZXBlbmRlbnQgb24gQml0R28gZnJvbnRlbmRcbiAgLy8gZG9jLmFkZEltYWdlKGNvaW5VdGlsaXR5LmdldFNlbGVjdGVkQ29pbk9iaigpLmtleUNhcmRJbWFnZSwgbGVmdCgwKSwgeSArIDEwKTtcblxuICAvLyBBY3RpdmF0aW9uIENvZGVcbiAgbW92ZURvd24oOCk7XG4gIGRvYy5zZXRGb250U2l6ZShmb250LmJvZHkpLnNldFRleHRDb2xvcihjb2xvci5ncmF5KTtcbiAgZG9jLnRleHQoJ0FjdGl2YXRpb24gQ29kZScsIGxlZnQoNDYwKSwgeSk7XG5cbiAgZG9jLnNldEZvbnRTaXplKGZvbnQuaGVhZGVyKS5zZXRUZXh0Q29sb3IoY29sb3IuYmxhY2spO1xuICBtb3ZlRG93bigyNSk7XG4gIGRvYy50ZXh0KCdZb3VyIEJpdEdvIEtleUNhcmQnLCBsZWZ0KDE1MCksIHkpO1xuICBkb2Muc2V0Rm9udFNpemUoZm9udC5oZWFkZXIpLnNldFRleHRDb2xvcihjb2xvci5ncmF5KTtcbiAgZG9jLnRleHQoYWN0aXZhdGlvbkNvZGUudG9TdHJpbmcoKSwgbGVmdCg0NjApLCB5KTtcblxuICAvLyBTdWJoZWFkZXJcbiAgLy8gdGl0bGVzXG4gIG1vdmVEb3duKG1hcmdpbik7XG4gIGRvYy5zZXRGb250U2l6ZShmb250LmJvZHkpLnNldFRleHRDb2xvcihjb2xvci5ncmF5KTtcbiAgZG9jLnRleHQoXG4gICAgYENyZWF0ZWQgb24gJHtuZXcgRGF0ZSgpLnRvRGF0ZVN0cmluZygpfSBieSAke3dpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZX0gZm9yIHdhbGxldCBuYW1lZCAke3dhbGxldExhYmVsfWAsXG4gICAgbGVmdCgwKSxcbiAgICB5XG4gICk7XG4gIC8vIGNvcHlcbiAgbW92ZURvd24oMjUpO1xuICBkb2Muc2V0Rm9udFNpemUoZm9udC5zdWJoZWFkZXIpLnNldFRleHRDb2xvcihjb2xvci5ibGFjayk7XG4gIGRvYy50ZXh0KHdhbGxldExhYmVsLCBsZWZ0KDApLCB5KTtcbiAgLy8gUmVkIEJhclxuICBtb3ZlRG93bigyMCk7XG4gIGRvYy5zZXRGaWxsQ29sb3IoMjU1LCAyMzAsIDIzMCk7XG4gIGRvYy5yZWN0KGxlZnQoMCksIHksIHdpZHRoIC0gMiAqIG1hcmdpbiwgMzIsICdGJyk7XG5cbiAgLy8gd2FybmluZyBtZXNzYWdlXG4gIG1vdmVEb3duKDIwKTtcbiAgZG9jLnNldEZvbnRTaXplKGZvbnQuYm9keSkuc2V0VGV4dENvbG9yKGNvbG9yLnJlZCk7XG4gIGRvYy50ZXh0KCdQcmludCB0aGlzIGRvY3VtZW50LCBvciBrZWVwIGl0IHNlY3VyZWx5IG9mZmxpbmUuIFNlZSBzZWNvbmQgcGFnZSBmb3IgRkFRLicsIGxlZnQoNzUpLCB5KTtcblxuICBtb3ZlRG93bigzNSk7XG4gIGNvbnN0IHFyU2l6ZSA9IDEzMDtcblxuICAvLyBEcmF3IGVhY2ggQm94IHdpdGggUVIgY29kZSBhbmQgZGVzY3JpcHRpb25cbiAgT2JqZWN0LmtleXMoa2V5RGF0YSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5VHlwZSkge1xuICAgIGNvbnN0IGtleSA9IGtleURhdGFba2V5VHlwZV07XG4gICAgY29uc3QgdG9wWSA9IHk7XG5cbiAgICAvLyBEb24ndCBpbmRlbnQgaWYgd2UncmUgbm90IHByb2R1Y2luZyBRUiBjb2Rlc1xuICAgIGNvbnN0IHRleHRMZWZ0ID0gISFRUkNvZGUgPyBsZWZ0KHFyU2l6ZSArIDE1KSA6IGxlZnQoMTUpO1xuXG4gICAgLy8gRHJhdyBhIFFSIGNvZGUgaWYgbGlicmFyeSBpcyBhdmFpbGFibGVcbiAgICBpZiAoUVJDb2RlKSB7XG4gICAgICBjb25zdCBkYXRhVVJMID0gbmV3IFFSQ29kZSh7IHZhbHVlOiBrZXkuZGF0YSwgc2l6ZTogcXJTaXplIH0pLnRvRGF0YVVSTCgnaW1hZ2UvanBlZycpO1xuICAgICAgZG9jLmFkZEltYWdlKGRhdGFVUkwsIGxlZnQoMCksIHksIHFyU2l6ZSwgcXJTaXplKTtcbiAgICB9XG5cbiAgICBkb2Muc2V0Rm9udFNpemUoZm9udC5zdWJoZWFkZXIpLnNldFRleHRDb2xvcihjb2xvci5ibGFjayk7XG4gICAgbW92ZURvd24oMTApO1xuICAgIGRvYy50ZXh0KGtleS50aXRsZSwgdGV4dExlZnQsIHkpO1xuICAgIG1vdmVEb3duKDE1KTtcbiAgICBkb2Muc2V0Rm9udFNpemUoZm9udC5ib2R5KS5zZXRUZXh0Q29sb3IoY29sb3IuZGFya2dyYXkpO1xuICAgIGRvYy50ZXh0KGtleS5kZXNjLCB0ZXh0TGVmdCwgeSk7XG4gICAgbW92ZURvd24oMzApO1xuICAgIGRvYy5zZXRGb250U2l6ZShmb250LmJvZHkgLSAyKTtcbiAgICBkb2MudGV4dCgnRGF0YTonLCB0ZXh0TGVmdCwgeSk7XG4gICAgbW92ZURvd24oMTUpO1xuICAgIGNvbnN0IGlubmVyV2lkdGggPSA3MiAqIDguNSAtIHRleHRMZWZ0IC0gMzA7XG4gICAgZG9jLnNldEZvbnQoJ2NvdXJpZXInKS5zZXRGb250U2l6ZSg5KS5zZXRUZXh0Q29sb3IoY29sb3IuYmxhY2spO1xuICAgIGNvbnN0IGxpbmVzID0gZG9jLnNwbGl0VGV4dFRvU2l6ZShrZXkuZGF0YSwgaW5uZXJXaWR0aCk7XG4gICAgZG9jLnRleHQobGluZXMsIHRleHRMZWZ0LCB5KTtcblxuICAgIC8vIEFkZCBrZXkgSUQgKGRlcml2YXRpb24gc3RyaW5nKSBpZiBpdCBleGlzdHNcbiAgICBpZiAoa2V5LmtleUlEKSB7XG4gICAgICBjb25zdCB0ZXh0ID0gJ0tleSBJZDogJyArIGtleS5rZXlJRDtcbiAgICAgIC8vIEdyYXkgYmFyXG4gICAgICBtb3ZlRG93big0NSk7XG4gICAgICBkb2Muc2V0RmlsbENvbG9yKDI0NywgMjQ5LCAyNDkpOyAvLyBHcmF5IGJhY2tncm91bmRcbiAgICAgIGRvYy5zZXREcmF3Q29sb3IoMCwgMCwgMCk7IC8vIEJvcmRlclxuICAgICAgZG9jLnJlY3QodGV4dExlZnQsIHksIHdpZHRoLCAxNSwgJ0ZEJyk7XG5cbiAgICAgIGRvYy50ZXh0KHRleHQsIHRleHRMZWZ0ICsgNSwgeSArIDEwKTtcbiAgICB9XG5cbiAgICBkb2Muc2V0Rm9udCgnaGVsdmV0aWNhJyk7XG4gICAgLy8gTW92ZSBkb3duIHRoZSBzaXplIG9mIHRoZSBRUiBjb2RlIG1pbnVzIGFjY3VtdWxhdGVkIGhlaWdodCBvbiB0aGUgcmlnaHQgc2lkZSwgcGx1cyBidWZmZXJcbiAgICBtb3ZlRG93bihxclNpemUgLSAoeSAtIHRvcFkpICsgMTUpO1xuICB9KTtcblxuICAvLyBBZGQgYSBuZXcgcGFnZSAoUSArIEEgcGFnZSlcbiAgZG9jLmFkZFBhZ2UoKTtcblxuICAvLyAybmQgcGFnZSB0aXRsZVxuICB5ID0gMDtcbiAgbW92ZURvd24oNTUpO1xuICBkb2Muc2V0Rm9udFNpemUoZm9udC5oZWFkZXIpLnNldFRleHRDb2xvcihjb2xvci5ibGFjayk7XG4gIGRvYy50ZXh0KCdCaXRHbyBLZXlDYXJkIEZBUScsIGxlZnQoMCksIHkpO1xuXG4gIGNvbnN0IHF1ZXN0aW9ucyA9IGdlbmVyYXRlUXVlc3Rpb25zKGNvaW5OYW1lKTtcblxuICAvLyBEcmF3IHRoZSBRICsgQSBkYXRhIG9uIHRoZSBzZWNvbmQgcGFnZVxuICBtb3ZlRG93bigzMCk7XG4gIHF1ZXN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uIChxKSB7XG4gICAgZG9jLnNldEZvbnRTaXplKGZvbnQuc3ViaGVhZGVyKS5zZXRUZXh0Q29sb3IoY29sb3IuYmxhY2spO1xuICAgIGRvYy50ZXh0KHEucSwgbGVmdCgwKSwgeSk7XG4gICAgbW92ZURvd24oMjApO1xuICAgIGRvYy5zZXRGb250U2l6ZShmb250LmJvZHkpLnNldFRleHRDb2xvcihjb2xvci5kYXJrZ3JheSk7XG4gICAgcS5hLmZvckVhY2goZnVuY3Rpb24gKGxpbmUpIHtcbiAgICAgIGRvYy50ZXh0KGxpbmUsIGxlZnQoMCksIHkpO1xuICAgICAgbW92ZURvd24oZm9udC5ib2R5ICsgMyk7XG4gICAgfSk7XG4gICAgbW92ZURvd24oMjIpO1xuICB9KTtcblxuICByZXR1cm4gZG9jO1xufVxuXG4vKipcbiAqIERyYXcgYSBrZXljYXJkIGludG8gYSBuZXcgcGRmIGRvY3VtZW50IG9iamVjdC5cbiAqIERlZmF1bHRzIHRvIHYyIChBcmdvbjJpZCkgZW5jcnlwdGlvbiBmb3IgQm94IEQ7IHBhc3MgYGVuY3J5cHRpb25WZXJzaW9uOiAxYCBmb3IgbGVnYWN5IHYxLlxuICogQHBhcmFtIG9wdGlvbnNcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRyYXdLZXljYXJkKG9wdGlvbnM6IERyYXdLZXljYXJkT3B0aW9ucyk6IFByb21pc2U8YW55PiB7XG4gIGNvbnN0IHtcbiAgICBlbmNyeXB0LFxuICAgIHBhc3NwaHJhc2UsXG4gICAgcGFzc2NvZGVFbmNyeXB0aW9uQ29kZSxcbiAgICB3YWxsZXRLZXlJRCxcbiAgICBiYWNrdXBLZXlJRCxcbiAgICB1c2VyS2V5Y2hhaW4sXG4gICAgYml0Z29LZXljaGFpbixcbiAgICBiYWNrdXBLZXljaGFpbixcbiAgICBjb2luU2hvcnROYW1lLFxuICAgIGpzUERGLFxuICAgIFFSQ29kZSxcbiAgICBhY3RpdmF0aW9uQ29kZSxcbiAgICB3YWxsZXRMYWJlbCxcbiAgICBjb2luTmFtZSxcbiAgICBlbmNyeXB0aW9uVmVyc2lvbixcbiAgfSA9IG9wdGlvbnM7XG5cbiAgLy8gR2V0IHRoZSBkYXRhIGZvciB0aGUgZmlyc3QgcGFnZSAocXIgY29kZXMpXG4gIGNvbnN0IGtleURhdGEgPSBhd2FpdCBnZXRLZXlEYXRhKHtcbiAgICBlbmNyeXB0LFxuICAgIGNvaW5TaG9ydE5hbWUsXG4gICAgcGFzc3BocmFzZSxcbiAgICBwYXNzY29kZUVuY3J5cHRpb25Db2RlLFxuICAgIHdhbGxldEtleUlELFxuICAgIGJhY2t1cEtleUlELFxuICAgIHVzZXJLZXljaGFpbixcbiAgICBiaXRnb0tleWNoYWluLFxuICAgIGJhY2t1cEtleWNoYWluLFxuICAgIGVuY3J5cHRpb25WZXJzaW9uLFxuICB9KTtcblxuICByZXR1cm4gcmVuZGVyS2V5Y2FyZFBkZih7IGpzUERGLCBRUkNvZGUsIGFjdGl2YXRpb25Db2RlLCB3YWxsZXRMYWJlbCwgY29pbk5hbWUgfSwga2V5RGF0YSk7XG59XG4iXX0=
@@ -1,17 +1,7 @@
1
1
  import { BitGoBase } from '../bitgoBase';
2
2
  import { OptionalKeychainEncryptedKey } from './iKeychains';
3
3
  /**
4
- * Decrypts the private key of a keychain (sync, v1 only).
5
- * This method will try the password against the traditional encryptedPrv,
6
- * and any webauthn device encryptedPrvs.
7
- *
8
- * @param bitgo
9
- * @param keychain
10
- * @param password
11
- */
12
- export declare function decryptKeychainPrivateKey(bitgo: BitGoBase, keychain: OptionalKeychainEncryptedKey, password: string): string | undefined;
13
- /**
14
- * Decrypts the private key of a keychain (async, supports v1 and v2 envelopes).
4
+ * Decrypts the private key of a keychain (supports v1 and v2 envelopes).
15
5
  * This method will try the password against the traditional encryptedPrv,
16
6
  * and any webauthn device encryptedPrvs.
17
7
  * Auto-detects v1 (SJCL) and v2 (Argon2id) envelopes.
@@ -20,5 +10,5 @@ export declare function decryptKeychainPrivateKey(bitgo: BitGoBase, keychain: Op
20
10
  * @param keychain
21
11
  * @param password
22
12
  */
23
- export declare function decryptKeychainPrivateKeyAsync(bitgo: BitGoBase, keychain: OptionalKeychainEncryptedKey, password: string): Promise<string | undefined>;
13
+ export declare function decryptKeychainPrivateKey(bitgo: BitGoBase, keychain: OptionalKeychainEncryptedKey, password: string): Promise<string | undefined>;
24
14
  //# sourceMappingURL=decryptKeychain.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"decryptKeychain.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/keychain/decryptKeychain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAyB5D;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,4BAA4B,EACtC,QAAQ,EAAE,MAAM,GACf,MAAM,GAAG,SAAS,CASpB;AAED;;;;;;;;;GASG;AACH,wBAAsB,8BAA8B,CAClD,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,4BAA4B,EACtC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAS7B"}
1
+ {"version":3,"file":"decryptKeychain.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/keychain/decryptKeychain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAc5D;;;;;;;;;GASG;AACH,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,4BAA4B,EACtC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAS7B"}