@bitgo/sdk-coin-canton 1.3.0 → 1.5.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 (59) hide show
  1. package/dist/resources/hash/hash.d.ts +5 -0
  2. package/dist/resources/hash/hash.js +298 -0
  3. package/dist/resources/proto/damlTransaction.js +4 -4
  4. package/dist/resources/proto/damlTransactionNode.js +3 -3
  5. package/dist/resources/proto/damlTransactionNodeSeed.js +2 -2
  6. package/dist/resources/proto/metadata/metadataGlobalKeyMappingEntry.js +4 -4
  7. package/dist/resources/proto/metadata/metadataInputContract.js +3 -3
  8. package/dist/resources/proto/metadata/metadataSubmitterInfo.js +2 -2
  9. package/dist/resources/proto/metadata.js +5 -5
  10. package/dist/resources/proto/node/empty.js +2 -2
  11. package/dist/resources/proto/node/globalKey.js +4 -4
  12. package/dist/resources/proto/node/identifier.js +2 -2
  13. package/dist/resources/proto/node/node.js +16 -8
  14. package/dist/resources/proto/node/timestamp.js +3 -3
  15. package/dist/resources/proto/node/value.js +28 -14
  16. package/dist/resources/proto/preparedTransaction.js +4 -4
  17. package/dist/src/lib/constant.d.ts +2 -0
  18. package/dist/src/lib/constant.d.ts.map +1 -1
  19. package/dist/src/lib/constant.js +4 -2
  20. package/dist/src/lib/iface.d.ts +22 -2
  21. package/dist/src/lib/iface.d.ts.map +1 -1
  22. package/dist/src/lib/iface.js +1 -1
  23. package/dist/src/lib/index.d.ts +2 -0
  24. package/dist/src/lib/index.d.ts.map +1 -1
  25. package/dist/src/lib/index.js +6 -2
  26. package/dist/src/lib/oneStepPreApprovalBuilder.d.ts +49 -0
  27. package/dist/src/lib/oneStepPreApprovalBuilder.d.ts.map +1 -0
  28. package/dist/src/lib/oneStepPreApprovalBuilder.js +87 -0
  29. package/dist/src/lib/transaction/transaction.d.ts +9 -4
  30. package/dist/src/lib/transaction/transaction.d.ts.map +1 -1
  31. package/dist/src/lib/transaction/transaction.js +36 -10
  32. package/dist/src/lib/transactionBuilder.d.ts +6 -13
  33. package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
  34. package/dist/src/lib/transactionBuilder.js +31 -23
  35. package/dist/src/lib/transactionBuilderFactory.d.ts +9 -3
  36. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  37. package/dist/src/lib/transactionBuilderFactory.js +31 -6
  38. package/dist/src/lib/transferBuilder.d.ts +2 -0
  39. package/dist/src/lib/transferBuilder.d.ts.map +1 -1
  40. package/dist/src/lib/transferBuilder.js +4 -1
  41. package/dist/src/lib/utils.d.ts +1 -0
  42. package/dist/src/lib/utils.d.ts.map +1 -1
  43. package/dist/src/lib/utils.js +7 -1
  44. package/dist/src/lib/walletInitBuilder.d.ts +4 -10
  45. package/dist/src/lib/walletInitBuilder.d.ts.map +1 -1
  46. package/dist/src/lib/walletInitBuilder.js +10 -18
  47. package/dist/src/lib/walletInitialization/walletInitTransaction.d.ts +0 -1
  48. package/dist/src/lib/walletInitialization/walletInitTransaction.d.ts.map +1 -1
  49. package/dist/src/lib/walletInitialization/walletInitTransaction.js +34 -7
  50. package/dist/test/resources.d.ts +22 -1
  51. package/dist/test/resources.d.ts.map +1 -1
  52. package/dist/test/resources.js +25 -3
  53. package/dist/test/unit/builder/oneStepEnablement/oneStepEnablementBuilder.d.ts +2 -0
  54. package/dist/test/unit/builder/oneStepEnablement/oneStepEnablementBuilder.d.ts.map +1 -0
  55. package/dist/test/unit/builder/oneStepEnablement/oneStepEnablementBuilder.js +67 -0
  56. package/dist/test/unit/builder/walletInit/walletInitBuilder.js +10 -13
  57. package/dist/test/unit/utils.js +8 -1
  58. package/dist/tsconfig.tsbuildinfo +1 -1
  59. package/package.json +20 -6
@@ -2,19 +2,44 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TransactionBuilderFactory = void 0;
4
4
  const sdk_core_1 = require("@bitgo/sdk-core");
5
+ const transferBuilder_1 = require("./transferBuilder");
6
+ const transaction_1 = require("./transaction/transaction");
7
+ const walletInitBuilder_1 = require("./walletInitBuilder");
8
+ const walletInitTransaction_1 = require("./walletInitialization/walletInitTransaction");
5
9
  class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory {
10
+ constructor(_coinConfig) {
11
+ super(_coinConfig);
12
+ }
6
13
  /** @inheritdoc */
7
14
  from(raw) {
8
- throw new Error('Method not implemented.');
15
+ try {
16
+ const tx = new walletInitTransaction_1.WalletInitTransaction(this._coinConfig);
17
+ tx.fromRawTransaction(raw);
18
+ return this.getWalletInitializationBuilder(tx);
19
+ }
20
+ catch {
21
+ const tx = new transaction_1.Transaction(this._coinConfig);
22
+ tx.fromRawTransaction(raw);
23
+ if (tx.type === sdk_core_1.TransactionType.Send) {
24
+ return this.getTransferBuilder(tx);
25
+ }
26
+ throw new sdk_core_1.InvalidTransactionError('unsupported transaction');
27
+ }
9
28
  }
10
29
  /** @inheritdoc */
11
- getTransferBuilder() {
12
- throw new Error('Method not implemented.');
30
+ getTransferBuilder(tx) {
31
+ return TransactionBuilderFactory.initializeBuilder(tx, new transferBuilder_1.TransferBuilder(this._coinConfig));
13
32
  }
14
33
  /** @inheritdoc */
15
- getWalletInitializationBuilder() {
16
- throw new Error('Method not implemented.');
34
+ getWalletInitializationBuilder(tx) {
35
+ return TransactionBuilderFactory.initializeBuilder(tx, new walletInitBuilder_1.WalletInitBuilder(this._coinConfig));
36
+ }
37
+ static initializeBuilder(tx, builder) {
38
+ if (tx) {
39
+ builder.initBuilder(tx);
40
+ }
41
+ return builder;
17
42
  }
18
43
  }
19
44
  exports.TransactionBuilderFactory = TransactionBuilderFactory;
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw4Q0FBZ0U7QUFJaEUsTUFBYSx5QkFBMEIsU0FBUSx3Q0FBNkI7SUFDMUUsa0JBQWtCO0lBQ2xCLElBQUksQ0FBQyxHQUFXO1FBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsa0JBQWtCO1FBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLDhCQUE4QjtRQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztDQUNGO0FBZkQsOERBZUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBUcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zZmVyQnVpbGRlcic7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uQnVpbGRlckZhY3Rvcnkge1xuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZnJvbShyYXc6IHN0cmluZyk6IFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldFRyYW5zZmVyQnVpbGRlcigpOiBUcmFuc2ZlckJ1aWxkZXIge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIoKTogdm9pZCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG59XG4iXX0=
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw4Q0FLeUI7QUFHekIsdURBQW9EO0FBQ3BELDJEQUF3RDtBQUN4RCwyREFBd0Q7QUFDeEQsd0ZBQXFGO0FBRXJGLE1BQWEseUJBQTBCLFNBQVEsd0NBQTZCO0lBQzFFLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFDRCxrQkFBa0I7SUFDbEIsSUFBSSxDQUFDLEdBQVc7UUFDZCxJQUFJLENBQUM7WUFDSCxNQUFNLEVBQUUsR0FBRyxJQUFJLDZDQUFxQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN2RCxFQUFFLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0IsT0FBTyxJQUFJLENBQUMsOEJBQThCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDakQsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLE1BQU0sRUFBRSxHQUFHLElBQUkseUJBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDN0MsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzNCLElBQUksRUFBRSxDQUFDLElBQUksS0FBSywwQkFBZSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNyQyxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNyQyxDQUFDO1lBQ0QsTUFBTSxJQUFJLGtDQUF1QixDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDL0QsQ0FBQztJQUNILENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsa0JBQWtCLENBQUMsRUFBZ0I7UUFDakMsT0FBTyx5QkFBeUIsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsSUFBSSxpQ0FBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsOEJBQThCLENBQUMsRUFBMEI7UUFDdkQsT0FBTyx5QkFBeUIsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsSUFBSSxxQ0FBaUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNsRyxDQUFDO0lBRU8sTUFBTSxDQUFDLGlCQUFpQixDQUM5QixFQUFtQixFQUNuQixPQUFpQjtRQUVqQixJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ1AsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMxQixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBdkNELDhEQXVDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhc2VUcmFuc2FjdGlvbixcbiAgQmFzZVRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnksXG4gIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLFxuICBUcmFuc2FjdGlvblR5cGUsXG59IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90cmFuc2ZlckJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFdhbGxldEluaXRCdWlsZGVyIH0gZnJvbSAnLi93YWxsZXRJbml0QnVpbGRlcic7XG5pbXBvcnQgeyBXYWxsZXRJbml0VHJhbnNhY3Rpb24gfSBmcm9tICcuL3dhbGxldEluaXRpYWxpemF0aW9uL3dhbGxldEluaXRUcmFuc2FjdGlvbic7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uQnVpbGRlckZhY3Rvcnkge1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGZyb20ocmF3OiBzdHJpbmcpOiBUcmFuc2FjdGlvbkJ1aWxkZXIgfCBXYWxsZXRJbml0QnVpbGRlciB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHR4ID0gbmV3IFdhbGxldEluaXRUcmFuc2FjdGlvbih0aGlzLl9jb2luQ29uZmlnKTtcbiAgICAgIHR4LmZyb21SYXdUcmFuc2FjdGlvbihyYXcpO1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0V2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyKHR4KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIGNvbnN0IHR4ID0gbmV3IFRyYW5zYWN0aW9uKHRoaXMuX2NvaW5Db25maWcpO1xuICAgICAgdHguZnJvbVJhd1RyYW5zYWN0aW9uKHJhdyk7XG4gICAgICBpZiAodHgudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLlNlbmQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VHJhbnNmZXJCdWlsZGVyKHR4KTtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcigndW5zdXBwb3J0ZWQgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0VHJhbnNmZXJCdWlsZGVyKHR4PzogVHJhbnNhY3Rpb24pOiBUcmFuc2ZlckJ1aWxkZXIge1xuICAgIHJldHVybiBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgVHJhbnNmZXJCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIodHg/OiBXYWxsZXRJbml0VHJhbnNhY3Rpb24pOiBXYWxsZXRJbml0QnVpbGRlciB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkuaW5pdGlhbGl6ZUJ1aWxkZXIodHgsIG5ldyBXYWxsZXRJbml0QnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBpbml0aWFsaXplQnVpbGRlcjxUVHggZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb24sIFRCdWlsZGVyIGV4dGVuZHMgeyBpbml0QnVpbGRlcih0eDogVFR4KTogdm9pZCB9PihcbiAgICB0eDogVFR4IHwgdW5kZWZpbmVkLFxuICAgIGJ1aWxkZXI6IFRCdWlsZGVyXG4gICk6IFRCdWlsZGVyIHtcbiAgICBpZiAodHgpIHtcbiAgICAgIGJ1aWxkZXIuaW5pdEJ1aWxkZXIodHgpO1xuICAgIH1cbiAgICByZXR1cm4gYnVpbGRlcjtcbiAgfVxufVxuIl19
@@ -1,8 +1,10 @@
1
1
  import { TransactionType } from '@bitgo/sdk-core';
2
2
  import { BaseCoin as CoinConfig } from '@bitgo/statics';
3
3
  import { TransactionBuilder } from './transactionBuilder';
4
+ import { CantonPrepareCommandResponse } from './iface';
4
5
  export declare class TransferBuilder extends TransactionBuilder {
5
6
  constructor(_coinConfig: Readonly<CoinConfig>);
6
7
  protected get transactionType(): TransactionType;
8
+ setTransaction(transaction: CantonPrepareCommandResponse): void;
7
9
  }
8
10
  //# sourceMappingURL=transferBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,qBAAa,eAAgB,SAAQ,kBAAkB;gBACzC,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;CACF"}
1
+ {"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAC;AAEvD,qBAAa,eAAgB,SAAQ,kBAAkB;gBACzC,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,cAAc,CAAC,WAAW,EAAE,4BAA4B,GAAG,IAAI;CAGhE"}
@@ -10,6 +10,9 @@ class TransferBuilder extends transactionBuilder_1.TransactionBuilder {
10
10
  get transactionType() {
11
11
  return sdk_core_1.TransactionType.Send;
12
12
  }
13
+ setTransaction(transaction) {
14
+ this.transaction.prepareCommand = transaction;
15
+ }
13
16
  }
14
17
  exports.TransferBuilder = TransferBuilder;
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsOENBQWtEO0FBRWxELDZEQUEwRDtBQUUxRCxNQUFhLGVBQWdCLFNBQVEsdUNBQWtCO0lBQ3JELFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLElBQUksQ0FBQztJQUM5QixDQUFDO0NBQ0Y7QUFSRCwwQ0FRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNmZXJCdWlsZGVyIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlNlbmQ7XG4gIH1cbn1cbiJdfQ==
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsOENBQWtEO0FBRWxELDZEQUEwRDtBQUcxRCxNQUFhLGVBQWdCLFNBQVEsdUNBQWtCO0lBQ3JELFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLElBQUksQ0FBQztJQUM5QixDQUFDO0lBRUQsY0FBYyxDQUFDLFdBQXlDO1FBQ3RELElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxHQUFHLFdBQVcsQ0FBQztJQUNoRCxDQUFDO0NBQ0Y7QUFaRCwwQ0FZQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgQ2FudG9uUHJlcGFyZUNvbW1hbmRSZXNwb25zZSB9IGZyb20gJy4vaWZhY2UnO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNmZXJCdWlsZGVyIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlNlbmQ7XG4gIH1cblxuICBzZXRUcmFuc2FjdGlvbih0cmFuc2FjdGlvbjogQ2FudG9uUHJlcGFyZUNvbW1hbmRSZXNwb25zZSk6IHZvaWQge1xuICAgIHRoaXMudHJhbnNhY3Rpb24ucHJlcGFyZUNvbW1hbmQgPSB0cmFuc2FjdGlvbjtcbiAgfVxufVxuIl19
@@ -32,6 +32,7 @@ export declare class Utils implements BaseUtils {
32
32
  * @returns The final base64-encoded topology transaction hash.
33
33
  */
34
34
  computeHashFromCreatePartyResponse(topologyTransactions: string[]): string;
35
+ computeHashFromPrepareSubmissionResponse(preparedTransactionBase64: string): Promise<string>;
35
36
  /**
36
37
  * Computes the final topology transaction hash for a list of prepared Canton transactions.
37
38
  *
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAA2B,MAAM,iBAAiB,CAAC;AAKrE,OAAO,EAA+C,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAG7F,qBAAa,KAAM,YAAW,SAAS;IACrC,kBAAkB;IAClB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIxC,kBAAkB;IAClB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIrC,kBAAkB;IAClB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIvC,kBAAkB;IAClB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAItC,kBAAkB;IAClB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI5C,kBAAkB;IAClB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI3C;;;;OAIG;IACH,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAMlD;;;;OAIG;IACH,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,qBAAqB;IAyDrE;;;;;OAKG;IACH,kCAAkC,CAAC,oBAAoB,EAAE,MAAM,EAAE,GAAG,MAAM;IAK1E;;;;;;;;;;OAUG;IACH,OAAO,CAAC,kCAAkC;IAO1C;;;;;OAKG;IACH,OAAO,CAAC,2BAA2B;IAgBnC;;;;;;OAMG;IACH,OAAO,CAAC,WAAW;IAOnB;;;;;;;;OAQG;IACH,OAAO,CAAC,uBAAuB;IAO/B;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAIlB;;;;;OAKG;IACH,OAAO,CAAC,yBAAyB;IAKjC;;;;;;;;OAQG;IACH,OAAO,CAAC,2BAA2B;IAgBnC;;;;;OAKG;IACH,OAAO,CAAC,WAAW;CAKpB;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAE1B,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAA2B,MAAM,iBAAiB,CAAC;AAMrE,OAAO,EAA+C,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAG7F,qBAAa,KAAM,YAAW,SAAS;IACrC,kBAAkB;IAClB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIxC,kBAAkB;IAClB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIrC,kBAAkB;IAClB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIvC,kBAAkB;IAClB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAItC,kBAAkB;IAClB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI5C,kBAAkB;IAClB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI3C;;;;OAIG;IACH,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAMlD;;;;OAIG;IACH,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,qBAAqB;IAyDrE;;;;;OAKG;IACH,kCAAkC,CAAC,oBAAoB,EAAE,MAAM,EAAE,GAAG,MAAM;IAKpE,wCAAwC,CAAC,yBAAyB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMlG;;;;;;;;;;OAUG;IACH,OAAO,CAAC,kCAAkC;IAO1C;;;;;OAKG;IACH,OAAO,CAAC,2BAA2B;IAgBnC;;;;;;OAMG;IACH,OAAO,CAAC,WAAW;IAOnB;;;;;;;;OAQG;IACH,OAAO,CAAC,uBAAuB;IAO/B;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAIlB;;;;;OAKG;IACH,OAAO,CAAC,yBAAyB;IAKjC;;;;;;;;OAQG;IACH,OAAO,CAAC,2BAA2B;IAgBnC;;;;;OAKG;IACH,OAAO,CAAC,WAAW;CAKpB;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAE1B,eAAe,KAAK,CAAC"}
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Utils = void 0;
7
7
  const crypto_1 = __importDefault(require("crypto"));
8
8
  const sdk_core_1 = require("@bitgo/sdk-core");
9
+ const hash_js_1 = require("../../resources/hash/hash.js");
9
10
  const preparedTransaction_js_1 = require("../../resources/proto/preparedTransaction.js");
10
11
  const constant_1 = require("./constant");
11
12
  class Utils {
@@ -119,6 +120,11 @@ class Utils {
119
120
  const txBuffers = topologyTransactions.map((tx) => Buffer.from(tx, 'base64'));
120
121
  return this.computeHashFromTopologyTransaction(txBuffers);
121
122
  }
123
+ async computeHashFromPrepareSubmissionResponse(preparedTransactionBase64) {
124
+ const preparedTransaction = this.decodePreparedTransaction(preparedTransactionBase64);
125
+ const hash = await (0, hash_js_1.computePreparedTransaction)(preparedTransaction);
126
+ return Buffer.from(hash).toString('base64');
127
+ }
122
128
  /**
123
129
  * Computes the final topology transaction hash for a list of prepared Canton transactions.
124
130
  *
@@ -234,4 +240,4 @@ class Utils {
234
240
  exports.Utils = Utils;
235
241
  const utils = new Utils();
236
242
  exports.default = utils;
237
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG9EQUE0QjtBQUU1Qiw4Q0FBcUU7QUFFckUseUZBQW1GO0FBRW5GLHlDQUFtRjtBQUluRixNQUFhLEtBQUs7SUFDaEIsa0JBQWtCO0lBQ2xCLGNBQWMsQ0FBQyxPQUFlO1FBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGNBQWMsQ0FBQyxJQUFZO1FBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGlCQUFpQixDQUFDLEdBQVc7UUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsZ0JBQWdCLENBQUMsR0FBVztRQUMxQixPQUFPLElBQUEsa0NBQXVCLEVBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixnQkFBZ0IsQ0FBQyxTQUFpQjtRQUNoQyxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixvQkFBb0IsQ0FBQyxJQUFZO1FBQy9CLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILHVCQUF1QixDQUFDLFNBQWlCO1FBQ3ZDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4RCxNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdkIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxTQUFTLENB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RSxDQUFDLENBQUMsQ0FBQztRQUM3QixDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLFdBQVcsQ0FBQyxLQUFhO1FBQy9CLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsR0FBRyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDM0IsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0NBQ0Y7QUFsUEQsc0JBa1BDO0FBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztBQUUxQixrQkFBZSxLQUFLLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3J5cHRvIGZyb20gJ2NyeXB0byc7XG5cbmltcG9ydCB7IEJhc2VVdGlscywgaXNWYWxpZEVkMjU1MTlQdWJsaWNLZXkgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuXG5pbXBvcnQgeyBQcmVwYXJlZFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vcmVzb3VyY2VzL3Byb3RvL3ByZXBhcmVkVHJhbnNhY3Rpb24uanMnO1xuXG5pbXBvcnQgeyBDcnlwdG9LZXlGb3JtYXQsIFNpZ25pbmdBbGdvcml0aG1TcGVjLCBTaWduaW5nS2V5U3BlYyB9IGZyb20gJy4vY29uc3RhbnQnO1xuaW1wb3J0IHsgUHJlcGFyZWRUcmFuc2FjdGlvbiBhcyBJUHJlcGFyZWRUcmFuc2FjdGlvbiwgUHJlcGFyZWRUeG5QYXJzZWRJbmZvIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBSZWNvcmRGaWVsZCB9IGZyb20gJy4vcmVzb3VyY2VzSW50ZXJmYWNlJztcblxuZXhwb3J0IGNsYXNzIFV0aWxzIGltcGxlbWVudHMgQmFzZVV0aWxzIHtcbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkQmxvY2tJZChoYXNoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFByaXZhdGVLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFB1YmxpY0tleShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1ZhbGlkRWQyNTUxOVB1YmxpY0tleShrZXkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRTaWduYXR1cmUoc2lnbmF0dXJlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFRyYW5zYWN0aW9uSWQodHhJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB0byBjcmVhdGUgZmluZ2VycHJpbnQgKHBhcnQgb2YgdGhlIGNhbnRvbiBwYXJ0eUlkKSBmcm9tIHB1YmxpYyBrZXlcbiAgICogQHBhcmFtIHtTdHJpbmd9IHB1YmxpY0tleSB0aGUgcHVibGljIGtleVxuICAgKiBAcmV0dXJucyB7U3RyaW5nfVxuICAgKi9cbiAgZ2V0QWRkcmVzc0Zyb21QdWJsaWNLZXkocHVibGljS2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGtleSA9IHRoaXMuc2lnbmluZ1B1YmxpY0tleUZyb21FZDI1NTE5KHB1YmxpY0tleSk7XG4gICAgY29uc3QgaGFzaFB1cnBvc2UgPSAxMjtcbiAgICByZXR1cm4gdGhpcy5jb21wdXRlU2hhMjU2Q2FudG9uSGFzaChoYXNoUHVycG9zZSwga2V5LnB1YmxpY0tleSk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHRvIHBhcnNlIHJhdyBjYW50b24gdHJhbnNhY3Rpb24gJiBnZXQgcmVxdWlyZWQgZGF0YVxuICAgKiBAcGFyYW0ge1N0cmluZ30gcmF3RGF0YSBiYXNlNjQgZW5jb2RlZCBzdHJpbmdcbiAgICogQHJldHVybnMge1ByZXBhcmVkVHhuUGFyc2VkSW5mb31cbiAgICovXG4gIHBhcnNlUmF3Q2FudG9uVHJhbnNhY3Rpb25EYXRhKHJhd0RhdGE6IHN0cmluZyk6IFByZXBhcmVkVHhuUGFyc2VkSW5mbyB7XG4gICAgY29uc3QgZGVjb2RlZERhdGEgPSB0aGlzLmRlY29kZVByZXBhcmVkVHJhbnNhY3Rpb24ocmF3RGF0YSk7XG4gICAgbGV0IHNlbmRlciA9ICcnO1xuICAgIGxldCByZWNlaXZlciA9ICcnO1xuICAgIGxldCBhbW91bnQgPSAnJztcbiAgICBkZWNvZGVkRGF0YS50cmFuc2FjdGlvbj8ubm9kZXM/LmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgIGNvbnN0IHZlcnNpb25lZE5vZGUgPSBub2RlLnZlcnNpb25lZE5vZGU7XG4gICAgICBpZiAoIXZlcnNpb25lZE5vZGUgfHwgdmVyc2lvbmVkTm9kZS5vbmVvZktpbmQgIT09ICd2MScpIHJldHVybjtcblxuICAgICAgY29uc3QgdjFOb2RlID0gdmVyc2lvbmVkTm9kZS52MTtcbiAgICAgIGNvbnN0IG5vZGVUeXBlID0gdjFOb2RlLm5vZGVUeXBlO1xuXG4gICAgICBpZiAobm9kZVR5cGUub25lb2ZLaW5kICE9PSAnY3JlYXRlJykgcmV0dXJuO1xuXG4gICAgICBjb25zdCBjcmVhdGVOb2RlID0gbm9kZVR5cGUuY3JlYXRlO1xuXG4gICAgICAvLyBDaGVjayBpZiBpdCdzIHRoZSBjb3JyZWN0IHRlbXBsYXRlXG4gICAgICBjb25zdCB0ZW1wbGF0ZSA9IGNyZWF0ZU5vZGUudGVtcGxhdGVJZDtcbiAgICAgIGlmICh0ZW1wbGF0ZT8uZW50aXR5TmFtZSAhPT0gJ0FtdWxldFRyYW5zZmVySW5zdHJ1Y3Rpb24nKSByZXR1cm47XG5cbiAgICAgIC8vIE5vdyBwYXJzZSB0aGUgJ2NyZWF0ZScgYXJndW1lbnRcbiAgICAgIGlmIChjcmVhdGVOb2RlLmFyZ3VtZW50Py5zdW0/Lm9uZW9mS2luZCAhPT0gJ3JlY29yZCcpIHJldHVybjtcbiAgICAgIGNvbnN0IGZpZWxkcyA9IGNyZWF0ZU5vZGUuYXJndW1lbnQ/LnN1bT8ucmVjb3JkPy5maWVsZHM7XG4gICAgICBpZiAoIWZpZWxkcykgcmV0dXJuO1xuXG4gICAgICAvLyBGaW5kIHRoZSAndHJhbnNmZXInIGZpZWxkXG4gICAgICBjb25zdCB0cmFuc2ZlckZpZWxkID0gZmllbGRzLmZpbmQoKGYpID0+IGYubGFiZWwgPT09ICd0cmFuc2ZlcicpO1xuICAgICAgaWYgKHRyYW5zZmVyRmllbGQ/LnZhbHVlPy5zdW0/Lm9uZW9mS2luZCAhPT0gJ3JlY29yZCcpIHJldHVybjtcbiAgICAgIGNvbnN0IHRyYW5zZmVyUmVjb3JkID0gdHJhbnNmZXJGaWVsZD8udmFsdWU/LnN1bT8ucmVjb3JkPy5maWVsZHM7XG4gICAgICBpZiAoIXRyYW5zZmVyUmVjb3JkKSByZXR1cm47XG5cbiAgICAgIGNvbnN0IGdldEZpZWxkID0gKGZpZWxkczogUmVjb3JkRmllbGRbXSwgbGFiZWw6IHN0cmluZykgPT4gZmllbGRzLmZpbmQoKGYpID0+IGYubGFiZWwgPT09IGxhYmVsKT8udmFsdWU/LnN1bTtcblxuICAgICAgY29uc3Qgc2VuZGVyRGF0YSA9IGdldEZpZWxkKHRyYW5zZmVyUmVjb3JkLCAnc2VuZGVyJyk7XG4gICAgICBpZiAoIXNlbmRlckRhdGEgfHwgc2VuZGVyRGF0YS5vbmVvZktpbmQgIT09ICdwYXJ0eScpIHJldHVybjtcbiAgICAgIHNlbmRlciA9IHNlbmRlckRhdGEucGFydHk7XG4gICAgICBjb25zdCByZWNlaXZlckRhdGEgPSBnZXRGaWVsZCh0cmFuc2ZlclJlY29yZCwgJ3JlY2VpdmVyJyk7XG4gICAgICBpZiAoIXJlY2VpdmVyRGF0YSB8fCByZWNlaXZlckRhdGEub25lb2ZLaW5kICE9PSAncGFydHknKSByZXR1cm47XG4gICAgICByZWNlaXZlciA9IHJlY2VpdmVyRGF0YS5wYXJ0eTtcbiAgICAgIGNvbnN0IGFtb3VudERhdGEgPSBnZXRGaWVsZCh0cmFuc2ZlclJlY29yZCwgJ2Ftb3VudCcpO1xuICAgICAgaWYgKCFhbW91bnREYXRhIHx8IGFtb3VudERhdGEub25lb2ZLaW5kICE9PSAnbnVtZXJpYycpIHJldHVybjtcbiAgICAgIGFtb3VudCA9IGFtb3VudERhdGEubnVtZXJpYztcbiAgICB9KTtcbiAgICBpZiAoIXNlbmRlciB8fCAhcmVjZWl2ZXIgfHwgIWFtb3VudCkge1xuICAgICAgY29uc3QgbWlzc2luZ0ZpZWxkczogc3RyaW5nW10gPSBbXTtcbiAgICAgIGlmICghc2VuZGVyKSBtaXNzaW5nRmllbGRzLnB1c2goJ3NlbmRlcicpO1xuICAgICAgaWYgKCFyZWNlaXZlcikgbWlzc2luZ0ZpZWxkcy5wdXNoKCdyZWNlaXZlcicpO1xuICAgICAgaWYgKCFhbW91bnQpIG1pc3NpbmdGaWVsZHMucHVzaCgnYW1vdW50Jyk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgdHJhbnNhY3Rpb24gZGF0YTogbWlzc2luZyAke21pc3NpbmdGaWVsZHMuam9pbignLCAnKX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHNlbmRlcixcbiAgICAgIHJlY2VpdmVyLFxuICAgICAgYW1vdW50LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ29tcHV0ZXMgdGhlIHRvcG9sb2d5IGhhc2ggZnJvbSB0aGUgQVBJIHJlc3BvbnNlIG9mIHRoZSAnY3JlYXRlIHBhcnR5JyBlbmRwb2ludC5cbiAgICpcbiAgICogQHBhcmFtIHRvcG9sb2d5VHJhbnNhY3Rpb25zIC0gTGlzdCBvZiBiYXNlNjQtZW5jb2RlZCB0b3BvbG9neSB0cmFuc2FjdGlvbnMgZnJvbSB0aGUgQ2FudG9uIEFQSS5cbiAgICogQHJldHVybnMgVGhlIGZpbmFsIGJhc2U2NC1lbmNvZGVkIHRvcG9sb2d5IHRyYW5zYWN0aW9uIGhhc2guXG4gICAqL1xuICBjb21wdXRlSGFzaEZyb21DcmVhdGVQYXJ0eVJlc3BvbnNlKHRvcG9sb2d5VHJhbnNhY3Rpb25zOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgY29uc3QgdHhCdWZmZXJzID0gdG9wb2xvZ3lUcmFuc2FjdGlvbnMubWFwKCh0eCkgPT4gQnVmZmVyLmZyb20odHgsICdiYXNlNjQnKSk7XG4gICAgcmV0dXJuIHRoaXMuY29tcHV0ZUhhc2hGcm9tVG9wb2xvZ3lUcmFuc2FjdGlvbih0eEJ1ZmZlcnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXB1dGVzIHRoZSBmaW5hbCB0b3BvbG9neSB0cmFuc2FjdGlvbiBoYXNoIGZvciBhIGxpc3Qgb2YgcHJlcGFyZWQgQ2FudG9uIHRyYW5zYWN0aW9ucy5cbiAgICpcbiAgICogRWFjaCB0cmFuc2FjdGlvbiBpcyBmaXJzdCBoYXNoZWQgd2l0aCBwdXJwb3NlIGAxMWAsIHRoZW4gYWxsIGhhc2hlcyBhcmUgY29tYmluZWQgYW5kXG4gICAqIGhhc2hlZCBhZ2FpbiB3aXRoIHB1cnBvc2UgYDU1YCwgZm9sbG93aW5nIHRoZSBDYW50b24gdG9wb2xvZ3kgaGFzaCBydWxlcy5cbiAgICpcbiAgICogVGhlIHJlc3VsdGluZyBoYXNoIGlzIGVuY29kZWQgYXMgYSBiYXNlNjQgc3RyaW5nLlxuICAgKlxuICAgKiBAcGFyYW0ge0J1ZmZlcltdfSBwcmVwYXJlZFRyYW5zYWN0aW9ucyAtIEFuIGFycmF5IG9mIENhbnRvbiB0cmFuc2FjdGlvbiBidWZmZXJzLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgZmluYWwgdG9wb2xvZ3kgaGFzaCwgYmFzZTY0LWVuY29kZWQuXG4gICAqL1xuICBwcml2YXRlIGNvbXB1dGVIYXNoRnJvbVRvcG9sb2d5VHJhbnNhY3Rpb24ocHJlcGFyZWRUcmFuc2FjdGlvbnM6IEJ1ZmZlcltdKTogc3RyaW5nIHtcbiAgICBjb25zdCByYXdIYXNoZXMgPSBwcmVwYXJlZFRyYW5zYWN0aW9ucy5tYXAoKHR4KSA9PiB0aGlzLmNvbXB1dGVTaGEyNTZDYW50b25IYXNoKDExLCB0eCkpO1xuICAgIGNvbnN0IGNvbWJpbmVkSGFzaGVzID0gdGhpcy5jb21wdXRlTXVsdGlIYXNoRm9yVG9wb2xvZ3kocmF3SGFzaGVzKTtcbiAgICBjb25zdCBjb21wdXRlZEhhc2ggPSB0aGlzLmNvbXB1dGVTaGEyNTZDYW50b25IYXNoKDU1LCBjb21iaW5lZEhhc2hlcyk7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKGNvbXB1dGVkSGFzaCwgJ2hleCcpLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBhIGJhc2U2NC1lbmNvZGVkIEVkMjU1MTkgcHVibGljIGtleSBzdHJpbmcgaW50byBhIHN0cnVjdHVyZWQgc2lnbmluZyBwdWJsaWMga2V5IG9iamVjdC5cbiAgICogQHBhcmFtIHtTdHJpbmd9IHB1YmxpY0tleSBUaGUgYmFzZTY0LWVuY29kZWQgRWQyNTUxOSBwdWJsaWMga2V5XG4gICAqIEByZXR1cm5zIHtPYmplY3R9IFRoZSBzdHJ1Y3R1cmVkIHNpZ25pbmcga2V5IG9iamVjdCBmb3JtYXR0ZWQgZm9yIHVzZSB3aXRoIGNyeXB0b2dyYXBoaWMgb3BlcmF0aW9uc1xuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBzaWduaW5nUHVibGljS2V5RnJvbUVkMjU1MTkocHVibGljS2V5OiBzdHJpbmcpOiB7XG4gICAgZm9ybWF0OiBudW1iZXI7XG4gICAgcHVibGljS2V5OiBCdWZmZXI7XG4gICAgc2NoZW1lOiBudW1iZXI7XG4gICAga2V5U3BlYzogbnVtYmVyO1xuICAgIHVzYWdlOiBbXTtcbiAgfSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZvcm1hdDogQ3J5cHRvS2V5Rm9ybWF0LlJBVyxcbiAgICAgIHB1YmxpY0tleTogQnVmZmVyLmZyb20ocHVibGljS2V5LCAnYmFzZTY0JyksXG4gICAgICBzY2hlbWU6IFNpZ25pbmdBbGdvcml0aG1TcGVjLkVEMjU1MTksXG4gICAgICBrZXlTcGVjOiBTaWduaW5nS2V5U3BlYy5FQ19DVVJWRTI1NTE5LFxuICAgICAgdXNhZ2U6IFtdLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGJ1ZmZlciB3aXRoIGEgNC1ieXRlIGJpZy1lbmRpYW4gaW50ZWdlciBwcmVmaXggZm9sbG93ZWQgYnkgdGhlIHByb3ZpZGVkIGJ5dGUgYnVmZmVyXG4gICAqIEBwYXJhbSB7TnVtYmVyfSB2YWx1ZSBUaGUgaW50ZWdlciB0byBwcmVmaXgsIHdyaXR0ZW4gYXMgNCBieXRlcyBpbiBiaWctZW5kaWFuIG9yZGVyXG4gICAqIEBwYXJhbSB7QnVmZmVyfSBieXRlcyBUaGUgYnVmZmVyIHRvIGFwcGVuZCBhZnRlciB0aGUgaW50ZWdlciBwcmVmaXhcbiAgICogQHJldHVybnMge0J1ZmZlcn0gVGhlIHJlc3VsdGluZyBidWZmZXIgd2l0aCB0aGUgcHJlZml4ZWQgaW50ZWdlclxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBwcmVmaXhlZEludCh2YWx1ZTogbnVtYmVyLCBieXRlczogQnVmZmVyKTogQnVmZmVyIHtcbiAgICBjb25zdCBidWZmZXIgPSBCdWZmZXIuYWxsb2MoNCArIGJ5dGVzLmxlbmd0aCk7XG4gICAgYnVmZmVyLndyaXRlVUludDMyQkUodmFsdWUsIDApO1xuICAgIEJ1ZmZlci5mcm9tKGJ5dGVzKS5jb3B5KGJ1ZmZlciwgNCk7XG4gICAgcmV0dXJuIGJ1ZmZlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wdXRlcyBhbiBTSEEtMjU2IENhbnRvbi1zdHlsZSBoYXNoIGJ5IHByZWZpeGluZyB0aGUgaW5wdXQgd2l0aCBhIHB1cnBvc2UgaWRlbnRpZmllcixcbiAgICogdGhlbiBoYXNoaW5nIHRoZSByZXN1bHRpbmcgYnVmZmVyIGFuZCBwcmVwZW5kaW5nIGEgbXVsdGktcHJlZml4XG4gICAqXG4gICAqIEBwYXJhbSB7TnVtYmVyfSBwdXJwb3NlIEEgbnVtZXJpYyBpZGVudGlmaWVyIHRvIHByZWZpeCB0aGUgaGFzaCBpbnB1dCB3aXRoXG4gICAqIEBwYXJhbSB7QnVmZmVyfSBieXRlcyBUaGUgYnVmZmVyIHRvIGJlIGhhc2hlZFxuICAgKiBAcmV0dXJucyB7U3RyaW5nfSBBIGhleGFkZWNpbWFsIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgcmVzdWx0aW5nIGhhc2ggd2l0aCBtdWx0aS1wcmVmaXhcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgY29tcHV0ZVNoYTI1NkNhbnRvbkhhc2gocHVycG9zZTogbnVtYmVyLCBieXRlczogQnVmZmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBoYXNoSW5wdXQgPSB0aGlzLnByZWZpeGVkSW50KHB1cnBvc2UsIGJ5dGVzKTtcbiAgICBjb25zdCBoYXNoID0gY3J5cHRvLmNyZWF0ZUhhc2goJ3NoYTI1NicpLnVwZGF0ZShoYXNoSW5wdXQpLmRpZ2VzdCgpO1xuICAgIGNvbnN0IG11bHRpcHJlZml4ID0gQnVmZmVyLmZyb20oWzB4MTIsIDB4MjBdKTtcbiAgICByZXR1cm4gQnVmZmVyLmNvbmNhdChbbXVsdGlwcmVmaXgsIGhhc2hdKS50b1N0cmluZygnaGV4Jyk7XG4gIH1cblxuICAvKipcbiAgICogRGVjb2RlcyBhIEJhc2U2NC1lbmNvZGVkIHN0cmluZyBpbnRvIGEgVWludDhBcnJheVxuICAgKiBAcGFyYW0ge1N0cmluZ30gYjY0IFRoZSBCYXNlNjQtZW5jb2RlZCBzdHJpbmdcbiAgICogQHJldHVybnMge1VpbnQ4QXJyYXl9IFRoZSBkZWNvZGVkIGJ5dGUgYXJyYXlcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgZnJvbUJhc2U2NChiNjQ6IHN0cmluZyk6IFVpbnQ4QXJyYXkge1xuICAgIHJldHVybiBuZXcgVWludDhBcnJheShCdWZmZXIuZnJvbShiNjQsICdiYXNlNjQnKSk7XG4gIH1cblxuICAvKipcbiAgICogRGVjb2RlcyBhIEJhc2U2NC1lbmNvZGVkIHByZXBhcmVkIHRyYW5zYWN0aW9uIGludG8gYSBzdHJ1Y3R1cmVkIG9iamVjdFxuICAgKiBAcGFyYW0ge1N0cmluZ30gYmFzZTY0IFRoZSBCYXNlNjQtZW5jb2RlZCB0cmFuc2FjdGlvbiBkYXRhXG4gICAqIEByZXR1cm5zIHtJUHJlcGFyZWRUcmFuc2FjdGlvbn0gVGhlIGRlY29kZWQgYElQcmVwYXJlZFRyYW5zYWN0aW9uYCBvYmplY3RcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgZGVjb2RlUHJlcGFyZWRUcmFuc2FjdGlvbihiYXNlNjQ6IHN0cmluZyk6IElQcmVwYXJlZFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCBieXRlcyA9IHRoaXMuZnJvbUJhc2U2NChiYXNlNjQpO1xuICAgIHJldHVybiBQcmVwYXJlZFRyYW5zYWN0aW9uLmZyb21CaW5hcnkoYnl0ZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXB1dGVzIGEgZGV0ZXJtaW5pc3RpYyBjb21iaW5lZCBoYXNoIGZyb20gYW4gYXJyYXkgb2YgaW5kaXZpZHVhbCBDYW50b24tc3R5bGUgU0hBLTI1NiBoYXNoZXNcbiAgICpcbiAgICogRWFjaCBoYXNoIGlzIGRlY29kZWQgZnJvbSBoZXgsIHNvcnRlZCBsZXhpY29ncmFwaGljYWxseSAoYnkgaGV4KSwgYW5kIHByZWZpeGVkIHdpdGggaXRzIGxlbmd0aFxuICAgKiBUaGUgZmluYWwgYnVmZmVyIGluY2x1ZGVzIHRoZSBudW1iZXIgb2YgaGFzaGVzIGZvbGxvd2VkIGJ5IGVhY2ggKGxlbmd0aC1wcmVmaXhlZCkgaGFzaFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBoYXNoZXMgLSBBbiBhcnJheSBvZiBDYW50b24tcHJlZml4ZWQgU0hBLTI1NiBoYXNoZXMgaW4gaGV4YWRlY2ltYWwgc3RyaW5nIGZvcm1hdFxuICAgKiBAcmV0dXJucyB7QnVmZmVyfSBBIGJpbmFyeSBidWZmZXIgcmVwcmVzZW50aW5nIHRoZSBjb21iaW5lZCBoYXNoIGlucHV0XG4gICAqL1xuICBwcml2YXRlIGNvbXB1dGVNdWx0aUhhc2hGb3JUb3BvbG9neShoYXNoZXM6IHN0cmluZ1tdKTogQnVmZmVyIHtcbiAgICBjb25zdCBzb3J0ZWRIYXNoZXMgPSBoYXNoZXNcbiAgICAgIC5tYXAoKGhleCkgPT4gQnVmZmVyLmZyb20oaGV4LCAnaGV4JykpXG4gICAgICAuc29ydCgoYSwgYikgPT4gYS50b1N0cmluZygnaGV4JykubG9jYWxlQ29tcGFyZShiLnRvU3RyaW5nKCdoZXgnKSkpO1xuXG4gICAgY29uc3QgbnVtSGFzaGVzQnl0ZXMgPSB0aGlzLmVuY29kZUludDMyKHNvcnRlZEhhc2hlcy5sZW5ndGgpO1xuICAgIGNvbnN0IHBhcnRzOiBCdWZmZXJbXSA9IFtudW1IYXNoZXNCeXRlc107XG5cbiAgICBmb3IgKGNvbnN0IGggb2Ygc29ydGVkSGFzaGVzKSB7XG4gICAgICBjb25zdCBsZW5ndGhCeXRlcyA9IHRoaXMuZW5jb2RlSW50MzIoaC5sZW5ndGgpO1xuICAgICAgcGFydHMucHVzaChsZW5ndGhCeXRlcywgaCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIEJ1ZmZlci5jb25jYXQocGFydHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuY29kZXMgYSAzMi1iaXQgc2lnbmVkIGludGVnZXIgaW50byBhIDQtYnl0ZSBiaWctZW5kaWFuIEJ1ZmZlclxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgLSBUaGUgaW50ZWdlciB0byBlbmNvZGVcbiAgICogQHJldHVybnMge0J1ZmZlcn0gQSA0LWJ5dGUgYnVmZmVyIHJlcHJlc2VudGluZyB0aGUgaW50ZWdlciBpbiBiaWctZW5kaWFuIGZvcm1hdFxuICAgKi9cbiAgcHJpdmF0ZSBlbmNvZGVJbnQzMih2YWx1ZTogbnVtYmVyKTogQnVmZmVyIHtcbiAgICBjb25zdCBidWYgPSBCdWZmZXIuYWxsb2MoNCk7XG4gICAgYnVmLndyaXRlSW50MzJCRSh2YWx1ZSwgMCk7XG4gICAgcmV0dXJuIGJ1ZjtcbiAgfVxufVxuXG5jb25zdCB1dGlscyA9IG5ldyBVdGlscygpO1xuXG5leHBvcnQgZGVmYXVsdCB1dGlscztcbiJdfQ==
243
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG9EQUE0QjtBQUU1Qiw4Q0FBcUU7QUFFckUsMERBQTBFO0FBQzFFLHlGQUFtRjtBQUVuRix5Q0FBbUY7QUFJbkYsTUFBYSxLQUFLO0lBQ2hCLGtCQUFrQjtJQUNsQixjQUFjLENBQUMsT0FBZTtRQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixjQUFjLENBQUMsSUFBWTtRQUN6QixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixpQkFBaUIsQ0FBQyxHQUFXO1FBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGdCQUFnQixDQUFDLEdBQVc7UUFDMUIsT0FBTyxJQUFBLGtDQUF1QixFQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsZ0JBQWdCLENBQUMsU0FBaUI7UUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsb0JBQW9CLENBQUMsSUFBWTtRQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCx1QkFBdUIsQ0FBQyxTQUFpQjtRQUN2QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEQsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLFdBQVcsRUFBRSxHQUFH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QUM7UUFFdEUsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0QsTUFBTSxLQUFLLEdBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUV6QyxLQUFLLE1BQU0sQ0FBQyxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQzdCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQy9DLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzdCLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ssV0FBVyxDQUFDLEtBQWE7UUFDL0IsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QixHQUFHLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7Q0FDRjtBQXhQRCxzQkF3UEM7QUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO0FBRTFCLGtCQUFlLEtBQUssQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcnlwdG8gZnJvbSAnY3J5cHRvJztcblxuaW1wb3J0IHsgQmFzZVV0aWxzLCBpc1ZhbGlkRWQyNTUxOVB1YmxpY0tleSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5cbmltcG9ydCB7IGNvbXB1dGVQcmVwYXJlZFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vcmVzb3VyY2VzL2hhc2gvaGFzaC5qcyc7XG5pbXBvcnQgeyBQcmVwYXJlZFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vcmVzb3VyY2VzL3Byb3RvL3ByZXBhcmVkVHJhbnNhY3Rpb24uanMnO1xuXG5pbXBvcnQgeyBDcnlwdG9LZXlGb3JtYXQsIFNpZ25pbmdBbGdvcml0aG1TcGVjLCBTaWduaW5nS2V5U3BlYyB9IGZyb20gJy4vY29uc3RhbnQnO1xuaW1wb3J0IHsgUHJlcGFyZWRUcmFuc2FjdGlvbiBhcyBJUHJlcGFyZWRUcmFuc2FjdGlvbiwgUHJlcGFyZWRUeG5QYXJzZWRJbmZvIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBSZWNvcmRGaWVsZCB9IGZyb20gJy4vcmVzb3VyY2VzSW50ZXJmYWNlJztcblxuZXhwb3J0IGNsYXNzIFV0aWxzIGltcGxlbWVudHMgQmFzZVV0aWxzIHtcbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkQmxvY2tJZChoYXNoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFByaXZhdGVLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFB1YmxpY0tleShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1ZhbGlkRWQyNTUxOVB1YmxpY0tleShrZXkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRTaWduYXR1cmUoc2lnbmF0dXJlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFRyYW5zYWN0aW9uSWQodHhJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB0byBjcmVhdGUgZmluZ2VycHJpbnQgKHBhcnQgb2YgdGhlIGNhbnRvbiBwYXJ0eUlkKSBmcm9tIHB1YmxpYyBrZXlcbiAgICogQHBhcmFtIHtTdHJpbmd9IHB1YmxpY0tleSB0aGUgcHVibGljIGtleVxuICAgKiBAcmV0dXJucyB7U3RyaW5nfVxuICAgKi9cbiAgZ2V0QWRkcmVzc0Zyb21QdWJsaWNLZXkocHVibGljS2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGtleSA9IHRoaXMuc2lnbmluZ1B1YmxpY0tleUZyb21FZDI1NTE5KHB1YmxpY0tleSk7XG4gICAgY29uc3QgaGFzaFB1cnBvc2UgPSAxMjtcbiAgICByZXR1cm4gdGhpcy5jb21wdXRlU2hhMjU2Q2FudG9uSGFzaChoYXNoUHVycG9zZSwga2V5LnB1YmxpY0tleSk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHRvIHBhcnNlIHJhdyBjYW50b24gdHJhbnNhY3Rpb24gJiBnZXQgcmVxdWlyZWQgZGF0YVxuICAgKiBAcGFyYW0ge1N0cmluZ30gcmF3RGF0YSBiYXNlNjQgZW5jb2RlZCBzdHJpbmdcbiAgICogQHJldHVybnMge1ByZXBhcmVkVHhuUGFyc2VkSW5mb31cbiAgICovXG4gIHBhcnNlUmF3Q2FudG9uVHJhbnNhY3Rpb25EYXRhKHJhd0RhdGE6IHN0cmluZyk6IFByZXBhcmVkVHhuUGFyc2VkSW5mbyB7XG4gICAgY29uc3QgZGVjb2RlZERhdGEgPSB0aGlzLmRlY29kZVByZXBhcmVkVHJhbnNhY3Rpb24ocmF3RGF0YSk7XG4gICAgbGV0IHNlbmRlciA9ICcnO1xuICAgIGxldCByZWNlaXZlciA9ICcnO1xuICAgIGxldCBhbW91bnQgPSAnJztcbiAgICBkZWNvZGVkRGF0YS50cmFuc2FjdGlvbj8ubm9kZXM/LmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgIGNvbnN0IHZlcnNpb25lZE5vZGUgPSBub2RlLnZlcnNpb25lZE5vZGU7XG4gICAgICBpZiAoIXZlcnNpb25lZE5vZGUgfHwgdmVyc2lvbmVkTm9kZS5vbmVvZktpbmQgIT09ICd2MScpIHJldHVybjtcblxuICAgICAgY29uc3QgdjFOb2RlID0gdmVyc2lvbmVkTm9kZS52MTtcbiAgICAgIGNvbnN0IG5vZGVUeXBlID0gdjFOb2RlLm5vZGVUeXBlO1xuXG4gICAgICBpZiAobm9kZVR5cGUub25lb2ZLaW5kICE9PSAnY3JlYXRlJykgcmV0dXJuO1xuXG4gICAgICBjb25zdCBjcmVhdGVOb2RlID0gbm9kZVR5cGUuY3JlYXRlO1xuXG4gICAgICAvLyBDaGVjayBpZiBpdCdzIHRoZSBjb3JyZWN0IHRlbXBsYXRlXG4gICAgICBjb25zdCB0ZW1wbGF0ZSA9IGNyZWF0ZU5vZGUudGVtcGxhdGVJZDtcbiAgICAgIGlmICh0ZW1wbGF0ZT8uZW50aXR5TmFtZSAhPT0gJ0FtdWxldFRyYW5zZmVySW5zdHJ1Y3Rpb24nKSByZXR1cm47XG5cbiAgICAgIC8vIE5vdyBwYXJzZSB0aGUgJ2NyZWF0ZScgYXJndW1lbnRcbiAgICAgIGlmIChjcmVhdGVOb2RlLmFyZ3VtZW50Py5zdW0/Lm9uZW9mS2luZCAhPT0gJ3JlY29yZCcpIHJldHVybjtcbiAgICAgIGNvbnN0IGZpZWxkcyA9IGNyZWF0ZU5vZGUuYXJndW1lbnQ/LnN1bT8ucmVjb3JkPy5maWVsZHM7XG4gICAgICBpZiAoIWZpZWxkcykgcmV0dXJuO1xuXG4gICAgICAvLyBGaW5kIHRoZSAndHJhbnNmZXInIGZpZWxkXG4gICAgICBjb25zdCB0cmFuc2ZlckZpZWxkID0gZmllbGRzLmZpbmQoKGYpID0+IGYubGFiZWwgPT09ICd0cmFuc2ZlcicpO1xuICAgICAgaWYgKHRyYW5zZmVyRmllbGQ/LnZhbHVlPy5zdW0/Lm9uZW9mS2luZCAhPT0gJ3JlY29yZCcpIHJldHVybjtcbiAgICAgIGNvbnN0IHRyYW5zZmVyUmVjb3JkID0gdHJhbnNmZXJGaWVsZD8udmFsdWU/LnN1bT8ucmVjb3JkPy5maWVsZHM7XG4gICAgICBpZiAoIXRyYW5zZmVyUmVjb3JkKSByZXR1cm47XG5cbiAgICAgIGNvbnN0IGdldEZpZWxkID0gKGZpZWxkczogUmVjb3JkRmllbGRbXSwgbGFiZWw6IHN0cmluZykgPT4gZmllbGRzLmZpbmQoKGYpID0+IGYubGFiZWwgPT09IGxhYmVsKT8udmFsdWU/LnN1bTtcblxuICAgICAgY29uc3Qgc2VuZGVyRGF0YSA9IGdldEZpZWxkKHRyYW5zZmVyUmVjb3JkLCAnc2VuZGVyJyk7XG4gICAgICBpZiAoIXNlbmRlckRhdGEgfHwgc2VuZGVyRGF0YS5vbmVvZktpbmQgIT09ICdwYXJ0eScpIHJldHVybjtcbiAgICAgIHNlbmRlciA9IHNlbmRlckRhdGEucGFydHk7XG4gICAgICBjb25zdCByZWNlaXZlckRhdGEgPSBnZXRGaWVsZCh0cmFuc2ZlclJlY29yZCwgJ3JlY2VpdmVyJyk7XG4gICAgICBpZiAoIXJlY2VpdmVyRGF0YSB8fCByZWNlaXZlckRhdGEub25lb2ZLaW5kICE9PSAncGFydHknKSByZXR1cm47XG4gICAgICByZWNlaXZlciA9IHJlY2VpdmVyRGF0YS5wYXJ0eTtcbiAgICAgIGNvbnN0IGFtb3VudERhdGEgPSBnZXRGaWVsZCh0cmFuc2ZlclJlY29yZCwgJ2Ftb3VudCcpO1xuICAgICAgaWYgKCFhbW91bnREYXRhIHx8IGFtb3VudERhdGEub25lb2ZLaW5kICE9PSAnbnVtZXJpYycpIHJldHVybjtcbiAgICAgIGFtb3VudCA9IGFtb3VudERhdGEubnVtZXJpYztcbiAgICB9KTtcbiAgICBpZiAoIXNlbmRlciB8fCAhcmVjZWl2ZXIgfHwgIWFtb3VudCkge1xuICAgICAgY29uc3QgbWlzc2luZ0ZpZWxkczogc3RyaW5nW10gPSBbXTtcbiAgICAgIGlmICghc2VuZGVyKSBtaXNzaW5nRmllbGRzLnB1c2goJ3NlbmRlcicpO1xuICAgICAgaWYgKCFyZWNlaXZlcikgbWlzc2luZ0ZpZWxkcy5wdXNoKCdyZWNlaXZlcicpO1xuICAgICAgaWYgKCFhbW91bnQpIG1pc3NpbmdGaWVsZHMucHVzaCgnYW1vdW50Jyk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgdHJhbnNhY3Rpb24gZGF0YTogbWlzc2luZyAke21pc3NpbmdGaWVsZHMuam9pbignLCAnKX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHNlbmRlcixcbiAgICAgIHJlY2VpdmVyLFxuICAgICAgYW1vdW50LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ29tcHV0ZXMgdGhlIHRvcG9sb2d5IGhhc2ggZnJvbSB0aGUgQVBJIHJlc3BvbnNlIG9mIHRoZSAnY3JlYXRlIHBhcnR5JyBlbmRwb2ludC5cbiAgICpcbiAgICogQHBhcmFtIHRvcG9sb2d5VHJhbnNhY3Rpb25zIC0gTGlzdCBvZiBiYXNlNjQtZW5jb2RlZCB0b3BvbG9neSB0cmFuc2FjdGlvbnMgZnJvbSB0aGUgQ2FudG9uIEFQSS5cbiAgICogQHJldHVybnMgVGhlIGZpbmFsIGJhc2U2NC1lbmNvZGVkIHRvcG9sb2d5IHRyYW5zYWN0aW9uIGhhc2guXG4gICAqL1xuICBjb21wdXRlSGFzaEZyb21DcmVhdGVQYXJ0eVJlc3BvbnNlKHRvcG9sb2d5VHJhbnNhY3Rpb25zOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgY29uc3QgdHhCdWZmZXJzID0gdG9wb2xvZ3lUcmFuc2FjdGlvbnMubWFwKCh0eCkgPT4gQnVmZmVyLmZyb20odHgsICdiYXNlNjQnKSk7XG4gICAgcmV0dXJuIHRoaXMuY29tcHV0ZUhhc2hGcm9tVG9wb2xvZ3lUcmFuc2FjdGlvbih0eEJ1ZmZlcnMpO1xuICB9XG5cbiAgYXN5bmMgY29tcHV0ZUhhc2hGcm9tUHJlcGFyZVN1Ym1pc3Npb25SZXNwb25zZShwcmVwYXJlZFRyYW5zYWN0aW9uQmFzZTY0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHByZXBhcmVkVHJhbnNhY3Rpb24gPSB0aGlzLmRlY29kZVByZXBhcmVkVHJhbnNhY3Rpb24ocHJlcGFyZWRUcmFuc2FjdGlvbkJhc2U2NCk7XG4gICAgY29uc3QgaGFzaCA9IGF3YWl0IGNvbXB1dGVQcmVwYXJlZFRyYW5zYWN0aW9uKHByZXBhcmVkVHJhbnNhY3Rpb24pO1xuICAgIHJldHVybiBCdWZmZXIuZnJvbShoYXNoKS50b1N0cmluZygnYmFzZTY0Jyk7XG4gIH1cblxuICAvKipcbiAgICogQ29tcHV0ZXMgdGhlIGZpbmFsIHRvcG9sb2d5IHRyYW5zYWN0aW9uIGhhc2ggZm9yIGEgbGlzdCBvZiBwcmVwYXJlZCBDYW50b24gdHJhbnNhY3Rpb25zLlxuICAgKlxuICAgKiBFYWNoIHRyYW5zYWN0aW9uIGlzIGZpcnN0IGhhc2hlZCB3aXRoIHB1cnBvc2UgYDExYCwgdGhlbiBhbGwgaGFzaGVzIGFyZSBjb21iaW5lZCBhbmRcbiAgICogaGFzaGVkIGFnYWluIHdpdGggcHVycG9zZSBgNTVgLCBmb2xsb3dpbmcgdGhlIENhbnRvbiB0b3BvbG9neSBoYXNoIHJ1bGVzLlxuICAgKlxuICAgKiBUaGUgcmVzdWx0aW5nIGhhc2ggaXMgZW5jb2RlZCBhcyBhIGJhc2U2NCBzdHJpbmcuXG4gICAqXG4gICAqIEBwYXJhbSB7QnVmZmVyW119IHByZXBhcmVkVHJhbnNhY3Rpb25zIC0gQW4gYXJyYXkgb2YgQ2FudG9uIHRyYW5zYWN0aW9uIGJ1ZmZlcnMuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBmaW5hbCB0b3BvbG9neSBoYXNoLCBiYXNlNjQtZW5jb2RlZC5cbiAgICovXG4gIHByaXZhdGUgY29tcHV0ZUhhc2hGcm9tVG9wb2xvZ3lUcmFuc2FjdGlvbihwcmVwYXJlZFRyYW5zYWN0aW9uczogQnVmZmVyW10pOiBzdHJpbmcge1xuICAgIGNvbnN0IHJhd0hhc2hlcyA9IHByZXBhcmVkVHJhbnNhY3Rpb25zLm1hcCgodHgpID0+IHRoaXMuY29tcHV0ZVNoYTI1NkNhbnRvbkhhc2goMTEsIHR4KSk7XG4gICAgY29uc3QgY29tYmluZWRIYXNoZXMgPSB0aGlzLmNvbXB1dGVNdWx0aUhhc2hGb3JUb3BvbG9neShyYXdIYXNoZXMpO1xuICAgIGNvbnN0IGNvbXB1dGVkSGFzaCA9IHRoaXMuY29tcHV0ZVNoYTI1NkNhbnRvbkhhc2goNTUsIGNvbWJpbmVkSGFzaGVzKTtcbiAgICByZXR1cm4gQnVmZmVyLmZyb20oY29tcHV0ZWRIYXNoLCAnaGV4JykudG9TdHJpbmcoJ2Jhc2U2NCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGEgYmFzZTY0LWVuY29kZWQgRWQyNTUxOSBwdWJsaWMga2V5IHN0cmluZyBpbnRvIGEgc3RydWN0dXJlZCBzaWduaW5nIHB1YmxpYyBrZXkgb2JqZWN0LlxuICAgKiBAcGFyYW0ge1N0cmluZ30gcHVibGljS2V5IFRoZSBiYXNlNjQtZW5jb2RlZCBFZDI1NTE5IHB1YmxpYyBrZXlcbiAgICogQHJldHVybnMge09iamVjdH0gVGhlIHN0cnVjdHVyZWQgc2lnbmluZyBrZXkgb2JqZWN0IGZvcm1hdHRlZCBmb3IgdXNlIHdpdGggY3J5cHRvZ3JhcGhpYyBvcGVyYXRpb25zXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHNpZ25pbmdQdWJsaWNLZXlGcm9tRWQyNTUxOShwdWJsaWNLZXk6IHN0cmluZyk6IHtcbiAgICBmb3JtYXQ6IG51bWJlcjtcbiAgICBwdWJsaWNLZXk6IEJ1ZmZlcjtcbiAgICBzY2hlbWU6IG51bWJlcjtcbiAgICBrZXlTcGVjOiBudW1iZXI7XG4gICAgdXNhZ2U6IFtdO1xuICB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgZm9ybWF0OiBDcnlwdG9LZXlGb3JtYXQuUkFXLFxuICAgICAgcHVibGljS2V5OiBCdWZmZXIuZnJvbShwdWJsaWNLZXksICdiYXNlNjQnKSxcbiAgICAgIHNjaGVtZTogU2lnbmluZ0FsZ29yaXRobVNwZWMuRUQyNTUxOSxcbiAgICAgIGtleVNwZWM6IFNpZ25pbmdLZXlTcGVjLkVDX0NVUlZFMjU1MTksXG4gICAgICB1c2FnZTogW10sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgYnVmZmVyIHdpdGggYSA0LWJ5dGUgYmlnLWVuZGlhbiBpbnRlZ2VyIHByZWZpeCBmb2xsb3dlZCBieSB0aGUgcHJvdmlkZWQgYnl0ZSBidWZmZXJcbiAgICogQHBhcmFtIHtOdW1iZXJ9IHZhbHVlIFRoZSBpbnRlZ2VyIHRvIHByZWZpeCwgd3JpdHRlbiBhcyA0IGJ5dGVzIGluIGJpZy1lbmRpYW4gb3JkZXJcbiAgICogQHBhcmFtIHtCdWZmZXJ9IGJ5dGVzIFRoZSBidWZmZXIgdG8gYXBwZW5kIGFmdGVyIHRoZSBpbnRlZ2VyIHByZWZpeFxuICAgKiBAcmV0dXJucyB7QnVmZmVyfSBUaGUgcmVzdWx0aW5nIGJ1ZmZlciB3aXRoIHRoZSBwcmVmaXhlZCBpbnRlZ2VyXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHByZWZpeGVkSW50KHZhbHVlOiBudW1iZXIsIGJ5dGVzOiBCdWZmZXIpOiBCdWZmZXIge1xuICAgIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5hbGxvYyg0ICsgYnl0ZXMubGVuZ3RoKTtcbiAgICBidWZmZXIud3JpdGVVSW50MzJCRSh2YWx1ZSwgMCk7XG4gICAgQnVmZmVyLmZyb20oYnl0ZXMpLmNvcHkoYnVmZmVyLCA0KTtcbiAgICByZXR1cm4gYnVmZmVyO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXB1dGVzIGFuIFNIQS0yNTYgQ2FudG9uLXN0eWxlIGhhc2ggYnkgcHJlZml4aW5nIHRoZSBpbnB1dCB3aXRoIGEgcHVycG9zZSBpZGVudGlmaWVyLFxuICAgKiB0aGVuIGhhc2hpbmcgdGhlIHJlc3VsdGluZyBidWZmZXIgYW5kIHByZXBlbmRpbmcgYSBtdWx0aS1wcmVmaXhcbiAgICpcbiAgICogQHBhcmFtIHtOdW1iZXJ9IHB1cnBvc2UgQSBudW1lcmljIGlkZW50aWZpZXIgdG8gcHJlZml4IHRoZSBoYXNoIGlucHV0IHdpdGhcbiAgICogQHBhcmFtIHtCdWZmZXJ9IGJ5dGVzIFRoZSBidWZmZXIgdG8gYmUgaGFzaGVkXG4gICAqIEByZXR1cm5zIHtTdHJpbmd9IEEgaGV4YWRlY2ltYWwgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSByZXN1bHRpbmcgaGFzaCB3aXRoIG11bHRpLXByZWZpeFxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBjb21wdXRlU2hhMjU2Q2FudG9uSGFzaChwdXJwb3NlOiBudW1iZXIsIGJ5dGVzOiBCdWZmZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IGhhc2hJbnB1dCA9IHRoaXMucHJlZml4ZWRJbnQocHVycG9zZSwgYnl0ZXMpO1xuICAgIGNvbnN0IGhhc2ggPSBjcnlwdG8uY3JlYXRlSGFzaCgnc2hhMjU2JykudXBkYXRlKGhhc2hJbnB1dCkuZGlnZXN0KCk7XG4gICAgY29uc3QgbXVsdGlwcmVmaXggPSBCdWZmZXIuZnJvbShbMHgxMiwgMHgyMF0pO1xuICAgIHJldHVybiBCdWZmZXIuY29uY2F0KFttdWx0aXByZWZpeCwgaGFzaF0pLnRvU3RyaW5nKCdoZXgnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWNvZGVzIGEgQmFzZTY0LWVuY29kZWQgc3RyaW5nIGludG8gYSBVaW50OEFycmF5XG4gICAqIEBwYXJhbSB7U3RyaW5nfSBiNjQgVGhlIEJhc2U2NC1lbmNvZGVkIHN0cmluZ1xuICAgKiBAcmV0dXJucyB7VWludDhBcnJheX0gVGhlIGRlY29kZWQgYnl0ZSBhcnJheVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBmcm9tQmFzZTY0KGI2NDogc3RyaW5nKTogVWludDhBcnJheSB7XG4gICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KEJ1ZmZlci5mcm9tKGI2NCwgJ2Jhc2U2NCcpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWNvZGVzIGEgQmFzZTY0LWVuY29kZWQgcHJlcGFyZWQgdHJhbnNhY3Rpb24gaW50byBhIHN0cnVjdHVyZWQgb2JqZWN0XG4gICAqIEBwYXJhbSB7U3RyaW5nfSBiYXNlNjQgVGhlIEJhc2U2NC1lbmNvZGVkIHRyYW5zYWN0aW9uIGRhdGFcbiAgICogQHJldHVybnMge0lQcmVwYXJlZFRyYW5zYWN0aW9ufSBUaGUgZGVjb2RlZCBgSVByZXBhcmVkVHJhbnNhY3Rpb25gIG9iamVjdFxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBkZWNvZGVQcmVwYXJlZFRyYW5zYWN0aW9uKGJhc2U2NDogc3RyaW5nKTogSVByZXBhcmVkVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IGJ5dGVzID0gdGhpcy5mcm9tQmFzZTY0KGJhc2U2NCk7XG4gICAgcmV0dXJuIFByZXBhcmVkVHJhbnNhY3Rpb24uZnJvbUJpbmFyeShieXRlcyk7XG4gIH1cblxuICAvKipcbiAgICogQ29tcHV0ZXMgYSBkZXRlcm1pbmlzdGljIGNvbWJpbmVkIGhhc2ggZnJvbSBhbiBhcnJheSBvZiBpbmRpdmlkdWFsIENhbnRvbi1zdHlsZSBTSEEtMjU2IGhhc2hlc1xuICAgKlxuICAgKiBFYWNoIGhhc2ggaXMgZGVjb2RlZCBmcm9tIGhleCwgc29ydGVkIGxleGljb2dyYXBoaWNhbGx5IChieSBoZXgpLCBhbmQgcHJlZml4ZWQgd2l0aCBpdHMgbGVuZ3RoXG4gICAqIFRoZSBmaW5hbCBidWZmZXIgaW5jbHVkZXMgdGhlIG51bWJlciBvZiBoYXNoZXMgZm9sbG93ZWQgYnkgZWFjaCAobGVuZ3RoLXByZWZpeGVkKSBoYXNoXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IGhhc2hlcyAtIEFuIGFycmF5IG9mIENhbnRvbi1wcmVmaXhlZCBTSEEtMjU2IGhhc2hlcyBpbiBoZXhhZGVjaW1hbCBzdHJpbmcgZm9ybWF0XG4gICAqIEByZXR1cm5zIHtCdWZmZXJ9IEEgYmluYXJ5IGJ1ZmZlciByZXByZXNlbnRpbmcgdGhlIGNvbWJpbmVkIGhhc2ggaW5wdXRcbiAgICovXG4gIHByaXZhdGUgY29tcHV0ZU11bHRpSGFzaEZvclRvcG9sb2d5KGhhc2hlczogc3RyaW5nW10pOiBCdWZmZXIge1xuICAgIGNvbnN0IHNvcnRlZEhhc2hlcyA9IGhhc2hlc1xuICAgICAgLm1hcCgoaGV4KSA9PiBCdWZmZXIuZnJvbShoZXgsICdoZXgnKSlcbiAgICAgIC5zb3J0KChhLCBiKSA9PiBhLnRvU3RyaW5nKCdoZXgnKS5sb2NhbGVDb21wYXJlKGIudG9TdHJpbmcoJ2hleCcpKSk7XG5cbiAgICBjb25zdCBudW1IYXNoZXNCeXRlcyA9IHRoaXMuZW5jb2RlSW50MzIoc29ydGVkSGFzaGVzLmxlbmd0aCk7XG4gICAgY29uc3QgcGFydHM6IEJ1ZmZlcltdID0gW251bUhhc2hlc0J5dGVzXTtcblxuICAgIGZvciAoY29uc3QgaCBvZiBzb3J0ZWRIYXNoZXMpIHtcbiAgICAgIGNvbnN0IGxlbmd0aEJ5dGVzID0gdGhpcy5lbmNvZGVJbnQzMihoLmxlbmd0aCk7XG4gICAgICBwYXJ0cy5wdXNoKGxlbmd0aEJ5dGVzLCBoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gQnVmZmVyLmNvbmNhdChwYXJ0cyk7XG4gIH1cblxuICAvKipcbiAgICogRW5jb2RlcyBhIDMyLWJpdCBzaWduZWQgaW50ZWdlciBpbnRvIGEgNC1ieXRlIGJpZy1lbmRpYW4gQnVmZmVyXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSAtIFRoZSBpbnRlZ2VyIHRvIGVuY29kZVxuICAgKiBAcmV0dXJucyB7QnVmZmVyfSBBIDQtYnl0ZSBidWZmZXIgcmVwcmVzZW50aW5nIHRoZSBpbnRlZ2VyIGluIGJpZy1lbmRpYW4gZm9ybWF0XG4gICAqL1xuICBwcml2YXRlIGVuY29kZUludDMyKHZhbHVlOiBudW1iZXIpOiBCdWZmZXIge1xuICAgIGNvbnN0IGJ1ZiA9IEJ1ZmZlci5hbGxvYyg0KTtcbiAgICBidWYud3JpdGVJbnQzMkJFKHZhbHVlLCAwKTtcbiAgICByZXR1cm4gYnVmO1xuICB9XG59XG5cbmNvbnN0IHV0aWxzID0gbmV3IFV0aWxzKCk7XG5cbmV4cG9ydCBkZWZhdWx0IHV0aWxzO1xuIl19
@@ -1,12 +1,12 @@
1
1
  import BigNumber from 'bignumber.js';
2
- import { BaseAddress, BaseKey, BaseTransactionBuilder } from '@bitgo/sdk-core';
2
+ import { BaseAddress, BaseKey, BaseTransactionBuilder, PublicKey } from '@bitgo/sdk-core';
3
3
  import { BaseCoin as CoinConfig } from '@bitgo/statics';
4
4
  import { PreparedParty, WalletInitRequest } from './iface';
5
5
  import { WalletInitTransaction } from './walletInitialization/walletInitTransaction';
6
6
  export declare class WalletInitBuilder extends BaseTransactionBuilder {
7
7
  private _transaction;
8
+ private _signatures;
8
9
  private _publicKey;
9
- private _synchronizer;
10
10
  private _partyHint;
11
11
  private _localParticipantObservationOnly;
12
12
  private _otherConfirmingParticipantUids;
@@ -24,6 +24,8 @@ export declare class WalletInitBuilder extends BaseTransactionBuilder {
24
24
  validateRawTransaction(rawTransaction: string[]): void;
25
25
  validateTransaction(transaction?: WalletInitTransaction): void;
26
26
  validateValue(value: BigNumber): void;
27
+ /** @inheritDoc */
28
+ addSignature(publicKey: PublicKey, signature: Buffer): void;
27
29
  /**
28
30
  * Sets the public key used for signing.
29
31
  *
@@ -32,14 +34,6 @@ export declare class WalletInitBuilder extends BaseTransactionBuilder {
32
34
  * @throws Error if key is not a valid public key
33
35
  */
34
36
  publicKey(key: string): this;
35
- /**
36
- * Sets the synchronizer ID for the wallet initialization.
37
- *
38
- * @param id - The synchronizer identifier (must be a non-empty string).
39
- * @returns The current builder instance for chaining.
40
- * @throws Error if the synchronizer ID is empty.
41
- */
42
- synchronizer(id: string): this;
43
37
  /**
44
38
  * Sets the party hint (alias or name) used during wallet initialization.
45
39
  *
@@ -1 +1 @@
1
- {"version":3,"file":"walletInitBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/walletInitBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,sBAAsB,EAAyB,MAAM,iBAAiB,CAAC;AACtG,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGxD,OAAO,EAAc,aAAa,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AAGrF,qBAAa,iBAAkB,SAAQ,sBAAsB;IAC3D,OAAO,CAAC,YAAY,CAAwB;IAE5C,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,gCAAgC,CAAS;IACjD,OAAO,CAAC,+BAA+B,CAAgB;IACvD,OAAO,CAAC,sBAAsB,CAAK;IACnC,OAAO,CAAC,yBAAyB,CAAgB;gBAErC,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,WAAW,CAAC,EAAE,EAAE,qBAAqB,GAAG,IAAI;IAI5C,SAAS,CAAC,mBAAmB,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAI/D,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,GAAG,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,qBAAqB;IAIjG,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,qBAAqB;IAIjE,IAAI,WAAW,IAAI,qBAAqB,CAEvC;IAED,IAAI,WAAW,CAAC,WAAW,EAAE,aAAa,EAEzC;IAED,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;IAMnE,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAY/B,sBAAsB,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,IAAI;IAUtD,mBAAmB,CAAC,WAAW,CAAC,EAAE,qBAAqB,GAAG,IAAI;IAW9D,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAIrC;;;;;;OAMG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAU5B;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAQ9B;;;;;;OAMG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAY7B;;;;;OAKG;IACH,+BAA+B,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAKpD;;;;;;OAMG;IACH,6BAA6B,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAYhD;;;;;;OAMG;IACH,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAQ9C;;;;;;OAMG;IACH,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAY1C;;;;;;;;OAQG;IACH,eAAe,IAAI,iBAAiB;IAapC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,QAAQ;CAgBjB"}
1
+ {"version":3,"file":"walletInitBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/walletInitBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,OAAO,EACL,WAAW,EACX,OAAO,EACP,sBAAsB,EAGtB,SAAS,EAEV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGxD,OAAO,EAAc,aAAa,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AAGrF,qBAAa,iBAAkB,SAAQ,sBAAsB;IAC3D,OAAO,CAAC,YAAY,CAAwB;IAC5C,OAAO,CAAC,WAAW,CAAmB;IAEtC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,gCAAgC,CAAS;IACjD,OAAO,CAAC,+BAA+B,CAAgB;IACvD,OAAO,CAAC,sBAAsB,CAAK;IACnC,OAAO,CAAC,yBAAyB,CAAgB;gBAErC,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,WAAW,CAAC,EAAE,EAAE,qBAAqB,GAAG,IAAI;IAI5C,SAAS,CAAC,mBAAmB,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAI/D,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,GAAG,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,qBAAqB;IAIjG,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,qBAAqB;IAIjE,IAAI,WAAW,IAAI,qBAAqB,CAEvC;IAED,IAAI,WAAW,CAAC,WAAW,EAAE,aAAa,EAEzC;IAED,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;IAMnE,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAY/B,sBAAsB,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,IAAI;IAUtD,mBAAmB,CAAC,WAAW,CAAC,EAAE,qBAAqB,GAAG,IAAI;IAW9D,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAIrC,kBAAkB;IAClB,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAQ3D;;;;;;OAMG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAU5B;;;;;;OAMG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAY7B;;;;;OAKG;IACH,+BAA+B,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAKpD;;;;;;OAMG;IACH,6BAA6B,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAYhD;;;;;;OAMG;IACH,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAQ9C;;;;;;OAMG;IACH,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAY1C;;;;;;;;OAQG;IACH,eAAe,IAAI,iBAAiB;IAYpC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,QAAQ;CAejB"}
@@ -12,6 +12,7 @@ const constant_1 = require("./constant");
12
12
  class WalletInitBuilder extends sdk_core_1.BaseTransactionBuilder {
13
13
  constructor(_coinConfig) {
14
14
  super(_coinConfig);
15
+ this._signatures = [];
15
16
  this._localParticipantObservationOnly = false;
16
17
  this._otherConfirmingParticipantUids = [];
17
18
  this._confirmationThreshold = 1;
@@ -75,6 +76,14 @@ class WalletInitBuilder extends sdk_core_1.BaseTransactionBuilder {
75
76
  validateValue(value) {
76
77
  throw new Error('Not implemented');
77
78
  }
79
+ /** @inheritDoc */
80
+ addSignature(publicKey, signature) {
81
+ if (!this.transaction) {
82
+ throw new sdk_core_1.InvalidTransactionError('transaction is empty!');
83
+ }
84
+ this._signatures.push({ publicKey, signature });
85
+ this.transaction.signatures = signature.toString('base64');
86
+ }
78
87
  /**
79
88
  * Sets the public key used for signing.
80
89
  *
@@ -91,20 +100,6 @@ class WalletInitBuilder extends sdk_core_1.BaseTransactionBuilder {
91
100
  };
92
101
  return this;
93
102
  }
94
- /**
95
- * Sets the synchronizer ID for the wallet initialization.
96
- *
97
- * @param id - The synchronizer identifier (must be a non-empty string).
98
- * @returns The current builder instance for chaining.
99
- * @throws Error if the synchronizer ID is empty.
100
- */
101
- synchronizer(id) {
102
- if (!id.trim()) {
103
- throw new Error('synchronizer must be a non-empty string');
104
- }
105
- this._synchronizer = id.trim();
106
- return this;
107
- }
108
103
  /**
109
104
  * Sets the party hint (alias or name) used during wallet initialization.
110
105
  *
@@ -196,7 +191,6 @@ class WalletInitBuilder extends sdk_core_1.BaseTransactionBuilder {
196
191
  this.validate();
197
192
  return {
198
193
  publicKey: this._publicKey,
199
- synchronizer: this._synchronizer,
200
194
  partyHint: this._partyHint,
201
195
  localParticipantObservationOnly: this._localParticipantObservationOnly,
202
196
  otherConfirmingParticipantUids: this._otherConfirmingParticipantUids,
@@ -218,8 +212,6 @@ class WalletInitBuilder extends sdk_core_1.BaseTransactionBuilder {
218
212
  * @throws {Error} If any required field is missing or invalid.
219
213
  */
220
214
  validate() {
221
- if (!this._synchronizer)
222
- throw new Error('Missing synchronizer');
223
215
  if (!this._partyHint || this._partyHint.length > 5)
224
216
  throw new Error('Invalid partyHint');
225
217
  if (!this._publicKey || !this._publicKey.keyData || !this._publicKey.format || !this._publicKey.keySpec) {
@@ -237,4 +229,4 @@ class WalletInitBuilder extends sdk_core_1.BaseTransactionBuilder {
237
229
  }
238
230
  }
239
231
  exports.WalletInitBuilder = WalletInitBuilder;
240
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0SW5pdEJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3dhbGxldEluaXRCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBLDhDQUFzRztBQUd0Ryx1Q0FBb0M7QUFFcEMsb0RBQTRCO0FBQzVCLHdGQUFxRjtBQUNyRix5Q0FBZ0U7QUFFaEUsTUFBYSxpQkFBa0IsU0FBUSxpQ0FBc0I7SUFXM0QsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFOYixxQ0FBZ0MsR0FBRyxLQUFLLENBQUM7UUFDekMsb0NBQStCLEdBQWEsRUFBRSxDQUFDO1FBQy9DLDJCQUFzQixHQUFHLENBQUMsQ0FBQztRQUMzQiw4QkFBeUIsR0FBYSxFQUFFLENBQUM7UUFJL0MsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLDZDQUFxQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxXQUFXLENBQUMsRUFBeUI7UUFDbkMsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVTLG1CQUFtQjtRQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVTLGtCQUFrQixDQUFDLGNBQW1CLEVBQUUsYUFBdUI7UUFDdkUsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFUyxrQkFBa0IsQ0FBQyxHQUFZO1FBQ3ZDLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLFdBQVcsQ0FBQyxXQUEwQjtRQUN4QyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsR0FBRyxXQUFXLENBQUM7SUFDaEQsQ0FBQztJ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QyxVQUFVLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3hHLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksSUFBSSxDQUFDLHNCQUFzQixJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3ZGLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLCtCQUErQixDQUFDLEVBQUUsQ0FBQztZQUN6RCxNQUFNLElBQUksS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLENBQUM7WUFDbkQsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1FBQy9ELENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUF6UEQsOENBeVBDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuXG5pbXBvcnQgeyBCYXNlQWRkcmVzcywgQmFzZUtleSwgQmFzZVRyYW5zYWN0aW9uQnVpbGRlciwgQnVpbGRUcmFuc2FjdGlvbkVycm9yIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5cbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuaW1wb3J0IHsgSVB1YmxpY0tleSwgUHJlcGFyZWRQYXJ0eSwgV2FsbGV0SW5pdFJlcXVlc3QgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFdhbGxldEluaXRUcmFuc2FjdGlvbiB9IGZyb20gJy4vd2FsbGV0SW5pdGlhbGl6YXRpb24vd2FsbGV0SW5pdFRyYW5zYWN0aW9uJztcbmltcG9ydCB7IFBVQkxJQ19LRVlfRk9STUFULCBQVUJMSUNfS0VZX1NQRUMgfSBmcm9tICcuL2NvbnN0YW50JztcblxuZXhwb3J0IGNsYXNzIFdhbGxldEluaXRCdWlsZGVyIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByaXZhdGUgX3RyYW5zYWN0aW9uOiBXYWxsZXRJbml0VHJhbnNhY3Rpb247XG5cbiAgcHJpdmF0ZSBfcHVibGljS2V5OiBJUHVibGljS2V5O1xuICBwcml2YXRlIF9zeW5jaHJvbml6ZXI6IHN0cmluZztcbiAgcHJpdmF0ZSBfcGFydHlIaW50OiBzdHJpbmc7XG4gIHByaXZhdGUgX2xvY2FsUGFydGljaXBhbnRPYnNlcnZhdGlvbk9ubHkgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfb3RoZXJDb25maXJtaW5nUGFydGljaXBhbnRVaWRzOiBzdHJpbmdbXSA9IFtdO1xuICBwcml2YXRlIF9jb25maXJtYXRpb25UaHJlc2hvbGQgPSAxO1xuICBwcml2YXRlIF9vYnNlcnZpbmdQYXJ0aWNpcGFudFVpZHM6IHN0cmluZ1tdID0gW107XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gbmV3IFdhbGxldEluaXRUcmFuc2FjdGlvbihfY29pbkNvbmZpZyk7XG4gIH1cblxuICBpbml0QnVpbGRlcih0eDogV2FsbGV0SW5pdFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSB0eDtcbiAgfVxuXG4gIHByb3RlY3RlZCBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8V2FsbGV0SW5pdFRyYW5zYWN0aW9uPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBmcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb246IGFueSwgaXNGaXJzdFNpZ25lcj86IGJvb2xlYW4pOiBXYWxsZXRJbml0VHJhbnNhY3Rpb24ge1xuICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2lnbkltcGxlbWVudGF0aW9uKGtleTogQmFzZUtleSk6IFdhbGxldEluaXRUcmFuc2FjdGlvbiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTtcbiAgfVxuXG4gIGdldCB0cmFuc2FjdGlvbigpOiBXYWxsZXRJbml0VHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcbiAgfVxuXG4gIHNldCB0cmFuc2FjdGlvbih0cmFuc2FjdGlvbjogUHJlcGFyZWRQYXJ0eSkge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uLnByZXBhcmVkUGFydHkgPSB0cmFuc2FjdGlvbjtcbiAgfVxuXG4gIHZhbGlkYXRlQWRkcmVzcyhhZGRyZXNzOiBCYXNlQWRkcmVzcywgYWRkcmVzc0Zvcm1hdD86IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdXRpbHMuaXNWYWxpZEFkZHJlc3MoYWRkcmVzcy5hZGRyZXNzKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBhZGRyZXNzICcgKyBhZGRyZXNzLmFkZHJlc3MpO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlS2V5KGtleTogQmFzZUtleSk6IHZvaWQge1xuICAgIGxldCBrZXlQYWlyOiBLZXlQYWlyO1xuICAgIHRyeSB7XG4gICAgICBrZXlQYWlyID0gbmV3IEtleVBhaXIoeyBwcnY6IGtleS5rZXkgfSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIGtleScpO1xuICAgIH1cbiAgICBpZiAoIWtleVBhaXIuZ2V0S2V5cygpLnBydikge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBrZXknKTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIGlmICghcmF3VHJhbnNhY3Rpb24gfHwgIXRoaXMuX3RyYW5zYWN0aW9uLnByZXBhcmVkUGFydHkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ2ludmFsaWQgcmF3IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIGNvbnN0IGxvY2FsSGFzaCA9IHV0aWxzLmNvbXB1dGVIYXNoRnJvbUNyZWF0ZVBhcnR5UmVzcG9uc2UocmF3VHJhbnNhY3Rpb24pO1xuICAgIGlmIChsb2NhbEhhc2ggIT09IHRoaXMuX3RyYW5zYWN0aW9uLnByZXBhcmVkUGFydHkubXVsdGlIYXNoKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdpbnZhbGlkIHJhdyB0cmFuc2FjdGlvbiwgaGFzaCBub3QgbWF0Y2hpbmcnKTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uPzogV2FsbGV0SW5pdFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgaWYgKCF0cmFuc2FjdGlvbj8ucHJlcGFyZWRQYXJ0eSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBsb2NhbEhhc2ggPSB1dGlscy5jb21wdXRlSGFzaEZyb21DcmVhdGVQYXJ0eVJlc3BvbnNlKHRyYW5zYWN0aW9uLnByZXBhcmVkUGFydHkudG9wb2xvZ3lUcmFuc2FjdGlvbnMpO1xuICAgIGlmIChsb2NhbEhhc2ggIT09IHRoaXMuX3RyYW5zYWN0aW9uLnByZXBhcmVkUGFydHkubXVsdGlIYXNoKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdpbnZhbGlkIHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICB9XG5cbiAgLy8gbm90IGltcGxlbWVudGVkIGJlY2F1c2Ugd2FsbGV0IGluaXRpYWxpemF0aW9uIGRvZXNuJ3QgcmVxdWlyZSBhbnkgdmFsdWVcbiAgdmFsaWRhdGVWYWx1ZSh2YWx1ZTogQmlnTnVtYmVyKTogdm9pZCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBwdWJsaWMga2V5IHVzZWQgZm9yIHNpZ25pbmcuXG4gICAqXG4gICAqIEBwYXJhbSBrZXkgLSBUaGUgcHVibGljIGtleSBvZiB0aGUgd2FsbGV0LlxuICAgKiBAcmV0dXJucyBUaGUgY3VycmVudCBidWlsZGVyIGluc3RhbmNlIGZvciBjaGFpbmluZy5cbiAgICogQHRocm93cyBFcnJvciBpZiBrZXkgaXMgbm90IGEgdmFsaWQgcHVibGljIGtleVxuICAgKi9cbiAgcHVibGljS2V5KGtleTogc3RyaW5nKTogdGhpcyB7XG4gICAgdXRpbHMuaXNWYWxpZFB1YmxpY0tleShrZXkpO1xuICAgIHRoaXMuX3B1YmxpY0tleSA9IHtcbiAgICAgIGZvcm1hdDogUFVCTElDX0tFWV9GT1JNQVQsXG4gICAgICBrZXlEYXRhOiBrZXksXG4gICAgICBrZXlTcGVjOiBQVUJMSUNfS0VZX1NQRUMsXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBzeW5jaHJvbml6ZXIgSUQgZm9yIHRoZSB3YWxsZXQgaW5pdGlhbGl6YXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBzeW5jaHJvbml6ZXIgaWRlbnRpZmllciAobXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmcpLlxuICAgKiBAcmV0dXJucyBUaGUgY3VycmVudCBidWlsZGVyIGluc3RhbmNlIGZvciBjaGFpbmluZy5cbiAgICogQHRocm93cyBFcnJvciBpZiB0aGUgc3luY2hyb25pemVyIElEIGlzIGVtcHR5LlxuICAgKi9cbiAgc3luY2hyb25pemVyKGlkOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAoIWlkLnRyaW0oKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdzeW5jaHJvbml6ZXIgbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmcnKTtcbiAgICB9XG4gICAgdGhpcy5fc3luY2hyb25pemVyID0gaWQudHJpbSgpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHBhcnR5IGhpbnQgKGFsaWFzIG9yIG5hbWUpIHVzZWQgZHVyaW5nIHdhbGxldCBpbml0aWFsaXphdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIGhpbnQgLSBBIDUtY2hhcmFjdGVyIG5vbi1lbXB0eSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBwYXJ0eSBoaW50LlxuICAgKiBAcmV0dXJucyBUaGUgY3VycmVudCBidWlsZGVyIGluc3RhbmNlIGZvciBjaGFpbmluZy5cbiAgICogQHRocm93cyBFcnJvciBpZiB0aGUgaGludCBpcyBlbXB0eSBvciBtb3JlIHRoYW4gNSBjaGFyYWN0ZXJzIGxvbmcuXG4gICAqL1xuICBwYXJ0eUhpbnQoaGludDogc3RyaW5nKTogdGhpcyB7XG4gICAgY29uc3QgdHJpbW1lZEhpbnQgPSBoaW50LnRyaW0oKTtcbiAgICBpZiAoIXRyaW1tZWRIaW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3BhcnR5SGludCBjYW5ub3QgYmUgZW1wdHknKTtcbiAgICB9XG4gICAgaWYgKHRyaW1tZWRIaW50Lmxlbmd0aCA+IDUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigncGFydHlIaW50IG11c3QgYmUgbGVzcyB0aGFuIDYgY2hhcmFjdGVycyBsb25nJyk7XG4gICAgfVxuICAgIHRoaXMuX3BhcnR5SGludCA9IHRyaW1tZWRIaW50O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgd2hldGhlciB0aGUgbG9jYWwgcGFydGljaXBhbnQgc2hvdWxkIGJlIGFkZGVkIGluIG9ic2VydmF0aW9uLW9ubHkgbW9kZS5cbiAgICpcbiAgICogQHBhcmFtIGZsYWcgLSBCb29sZWFuIGZsYWcgaW5kaWNhdGluZyBvYnNlcnZhdGlvbi1vbmx5IHN0YXR1cy5cbiAgICogQHJldHVybnMgVGhlIGN1cnJlbnQgYnVpbGRlciBpbnN0YW5jZSBmb3IgY2hhaW5pbmcuXG4gICAqL1xuICBsb2NhbFBhcnRpY2lwYW50T2JzZXJ2YXRpb25Pbmx5KGZsYWc6IGJvb2xlYW4pOiB0aGlzIHtcbiAgICB0aGlzLl9sb2NhbFBhcnRpY2lwYW50T2JzZXJ2YXRpb25Pbmx5ID0gZmxhZztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgY29uZmlybWluZyBwYXJ0aWNpcGFudCBVSUQgdG8gdGhlIGxpc3Qgb2Ygb3RoZXIgY29uZmlybWluZyBwYXJ0aWNpcGFudHMuXG4gICAqXG4gICAqIEBwYXJhbSB1aWQgLSBBIG5vbi1lbXB0eSBzdHJpbmcgVUlEIG9mIGFub3RoZXIgY29uZmlybWluZyBwYXJ0aWNpcGFudC5cbiAgICogQHJldHVybnMgVGhlIGN1cnJlbnQgYnVpbGRlciBpbnN0YW5jZSBmb3IgY2hhaW5pbmcuXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIFVJRCBpcyBlbXB0eS5cbiAgICovXG4gIG90aGVyQ29uZmlybWluZ1BhcnRpY2lwYW50VWlkKHVpZDogc3RyaW5nKTogdGhpcyB7XG4gICAgY29uc3QgdHJpbW1lZFVpZCA9IHVpZC50cmltKCk7XG4gICAgaWYgKCF0cmltbWVkVWlkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ290aGVyQ29uZmlybWluZ1BhcnRpY2lwYW50VWlkIGNhbm5vdCBiZSBlbXB0eScpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuX290aGVyQ29uZmlybWluZ1BhcnRpY2lwYW50VWlkcykge1xuICAgICAgdGhpcy5fb3RoZXJDb25maXJtaW5nUGFydGljaXBhbnRVaWRzID0gW107XG4gICAgfVxuICAgIHRoaXMuX290aGVyQ29uZmlybWluZ1BhcnRpY2lwYW50VWlkcy5wdXNoKHRyaW1tZWRVaWQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGNvbmZpcm1hdGlvbiB0aHJlc2hvbGQgZm9yIHRoZSB3YWxsZXQgaW5pdGlhbGl6YXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSB0aHJlc2hvbGQgLSBBIHBvc2l0aXZlIGludGVnZXIgaW5kaWNhdGluZyBob3cgbWFueSBjb25maXJtYXRpb25zIGFyZSByZXF1aXJlZC5cbiAgICogQHJldHVybnMgVGhlIGN1cnJlbnQgYnVpbGRlciBpbnN0YW5jZSBmb3IgY2hhaW5pbmcuXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIHRocmVzaG9sZCBpcyBub3QgYSBwb3NpdGl2ZSBpbnRlZ2VyLlxuICAgKi9cbiAgY29uZmlybWF0aW9uVGhyZXNob2xkKHRocmVzaG9sZDogbnVtYmVyKTogdGhpcyB7XG4gICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKHRocmVzaG9sZCkgfHwgdGhyZXNob2xkIDw9IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignY29uZmlybWF0aW9uVGhyZXNob2xkIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyJyk7XG4gICAgfVxuICAgIHRoaXMuX2NvbmZpcm1hdGlvblRocmVzaG9sZCA9IHRocmVzaG9sZDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFuIG9ic2VydmluZyBwYXJ0aWNpcGFudCBVSUQgdG8gdGhlIGxpc3Qgb2Ygb2JzZXJ2ZXJzLlxuICAgKlxuICAgKiBAcGFyYW0gdWlkIC0gQSBub24tZW1wdHkgc3RyaW5nIFVJRCBvZiB0aGUgb2JzZXJ2aW5nIHBhcnRpY2lwYW50LlxuICAgKiBAcmV0dXJucyBUaGUgY3VycmVudCBidWlsZGVyIGluc3RhbmNlIGZvciBjaGFpbmluZy5cbiAgICogQHRocm93cyBFcnJvciBpZiB0aGUgVUlEIGlzIGVtcHR5LlxuICAgKi9cbiAgb2JzZXJ2aW5nUGFydGljaXBhbnRVaWQodWlkOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBjb25zdCB0cmltbWVkVWlkID0gdWlkLnRyaW0oKTtcbiAgICBpZiAoIXRyaW1tZWRVaWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignb2JzZXJ2aW5nUGFydGljaXBhbnRVaWQgY2Fubm90IGJlIGVtcHR5Jyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5fb2JzZXJ2aW5nUGFydGljaXBhbnRVaWRzKSB7XG4gICAgICB0aGlzLl9vYnNlcnZpbmdQYXJ0aWNpcGFudFVpZHMgPSBbXTtcbiAgICB9XG4gICAgdGhpcy5fb2JzZXJ2aW5nUGFydGljaXBhbnRVaWRzLnB1c2godHJpbW1lZFVpZCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGRzIGFuZCByZXR1cm5zIHRoZSBXYWxsZXRJbml0UmVxdWVzdCBvYmplY3QgZnJvbSB0aGUgYnVpbGRlcidzIGludGVybmFsIHN0YXRlLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBwZXJmb3JtcyB2YWxpZGF0aW9uIGJlZm9yZSBjb25zdHJ1Y3RpbmcgdGhlIG9iamVjdC4gSWYgcmVxdWlyZWQgZmllbGRzIGFyZVxuICAgKiBtaXNzaW5nIG9yIGludmFsaWQsIGl0IHRocm93cyBhbiBlcnJvci5cbiAgICpcbiAgICogQHJldHVybnMge1dhbGxldEluaXRSZXF1ZXN0fSAtIEEgZnVsbHkgY29uc3RydWN0ZWQgYW5kIHZhbGlkYXRlZCByZXF1ZXN0IG9iamVjdCBmb3Igd2FsbGV0IGluaXRpYWxpemF0aW9uLlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgYW55IHJlcXVpcmVkIGZpZWxkIGlzIG1pc3Npbmcgb3IgZmFpbHMgdmFsaWRhdGlvbi5cbiAgICovXG4gIHRvUmVxdWVzdE9iamVjdCgpOiBXYWxsZXRJbml0UmVxdWVzdCB7XG4gICAgdGhpcy52YWxpZGF0ZSgpO1xuICAgIHJldHVybiB7XG4gICAgICBwdWJsaWNLZXk6IHRoaXMuX3B1YmxpY0tleSxcbiAgICAgIHN5bmNocm9uaXplcjogdGhpcy5fc3luY2hyb25pemVyLFxuICAgICAgcGFydHlIaW50OiB0aGlzLl9wYXJ0eUhpbnQsXG4gICAgICBsb2NhbFBhcnRpY2lwYW50T2JzZXJ2YXRpb25Pbmx5OiB0aGlzLl9sb2NhbFBhcnRpY2lwYW50T2JzZXJ2YXRpb25Pbmx5LFxuICAgICAgb3RoZXJDb25maXJtaW5nUGFydGljaXBhbnRVaWRzOiB0aGlzLl9vdGhlckNvbmZpcm1pbmdQYXJ0aWNpcGFudFVpZHMsXG4gICAgICBjb25maXJtYXRpb25UaHJlc2hvbGQ6IHRoaXMuX2NvbmZpcm1hdGlvblRocmVzaG9sZCxcbiAgICAgIG9ic2VydmluZ1BhcnRpY2lwYW50VWlkczogdGhpcy5fb2JzZXJ2aW5nUGFydGljaXBhbnRVaWRzLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSBpbnRlcm5hbCBzdGF0ZSBvZiB0aGUgYnVpbGRlciBiZWZvcmUgYnVpbGRpbmcgdGhlIHJlcXVlc3Qgb2JqZWN0LlxuICAgKlxuICAgKiBDaGVja3MgZm9yOlxuICAgKiAtIFByZXNlbmNlIG9mIGEgc3luY2hyb25pemVyIElELlxuICAgKiAtIGBwYXJ0eUhpbnRgIG11c3Qgbm90IGJlIGVtcHR5IGFuZCBtdXN0IGJlIGF0IG1vc3QgNSBjaGFyYWN0ZXJzIGxvbmcuXG4gICAqIC0gUHVibGljIGtleSBtdXN0IGluY2x1ZGUgYGtleURhdGFgLCBgZm9ybWF0YCwgYW5kIGBrZXlTcGVjYC5cbiAgICogLSBDb25maXJtYXRpb24gdGhyZXNob2xkIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyLlxuICAgKiAtIENvbmZpcm1pbmcgYW5kIG9ic2VydmluZyBwYXJ0aWNpcGFudCBVSUQgbGlzdHMgbXVzdCBiZSBhcnJheXMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiBhbnkgcmVxdWlyZWQgZmllbGQgaXMgbWlzc2luZyBvciBpbnZhbGlkLlxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3N5bmNocm9uaXplcikgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIHN5bmNocm9uaXplcicpO1xuICAgIGlmICghdGhpcy5fcGFydHlIaW50IHx8IHRoaXMuX3BhcnR5SGludC5sZW5ndGggPiA1KSB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgcGFydHlIaW50Jyk7XG4gICAgaWYgKCF0aGlzLl9wdWJsaWNLZXkgfHwgIXRoaXMuX3B1YmxpY0tleS5rZXlEYXRhIHx8ICF0aGlzLl9wdWJsaWNLZXkuZm9ybWF0IHx8ICF0aGlzLl9wdWJsaWNLZXkua2V5U3BlYykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHB1YmxpY0tleScpO1xuICAgIH1cbiAgICBpZiAoIU51bWJlci5pc0ludGVnZXIodGhpcy5fY29uZmlybWF0aW9uVGhyZXNob2xkKSB8fCB0aGlzLl9jb25maXJtYXRpb25UaHJlc2hvbGQgPD0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNvbmZpcm1hdGlvblRocmVzaG9sZCcpO1xuICAgIH1cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodGhpcy5fb3RoZXJDb25maXJtaW5nUGFydGljaXBhbnRVaWRzKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdvdGhlckNvbmZpcm1pbmdQYXJ0aWNpcGFudFVpZHMgbXVzdCBiZSBhbiBhcnJheScpO1xuICAgIH1cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodGhpcy5fb2JzZXJ2aW5nUGFydGljaXBhbnRVaWRzKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdvYnNlcnZpbmdQYXJ0aWNpcGFudFVpZHMgbXVzdCBiZSBhbiBhcnJheScpO1xuICAgIH1cbiAgfVxufVxuIl19
232
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0SW5pdEJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3dhbGxldEluaXRCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBLDhDQVF5QjtBQUd6Qix1Q0FBb0M7QUFFcEMsb0RBQTRCO0FBQzVCLHdGQUFxRjtBQUNyRix5Q0FBZ0U7QUFFaEUsTUFBYSxpQkFBa0IsU0FBUSxpQ0FBc0I7SUFXM0QsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFWYixnQkFBVyxHQUFnQixFQUFFLENBQUM7UUFJOUIscUNBQWdDLEdBQUcsS0FBSyxDQUFDO1FBQ3pDLG9DQUErQixHQUFhLEVBQUUsQ0FBQztRQUMvQywyQkFBc0IsR0FBRyxDQUFDLENBQUM7UUFDM0IsOEJBQXlCLEdBQWEsRUFBRSxDQUFDO1FBSS9DLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSw2Q0FBcUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsV0FBVyxDQUFDLEVBQXlCO1FBQ25DLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFUyxtQkFBbUI7UUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFUyxrQkFBa0IsQ0FBQyxjQUFtQixFQUFFLGFBQXVCO1FBQ3ZFLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRVMsa0JBQWtCLENBQUMsR0FBWTtRQUN2QyxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxXQUFXLENBQUMsV0FBMEI7UUFDeEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFh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Q0FBQyxVQUFVLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3hHLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksSUFBSSxDQUFDLHNCQUFzQixJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3ZGLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLCtCQUErQixDQUFDLEVBQUUsQ0FBQztZQUN6RCxNQUFNLElBQUksS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLENBQUM7WUFDbkQsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1FBQy9ELENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFqUEQsOENBaVBDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuXG5pbXBvcnQge1xuICBCYXNlQWRkcmVzcyxcbiAgQmFzZUtleSxcbiAgQmFzZVRyYW5zYWN0aW9uQnVpbGRlcixcbiAgQnVpbGRUcmFuc2FjdGlvbkVycm9yLFxuICBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcixcbiAgUHVibGljS2V5LFxuICBTaWduYXR1cmUsXG59IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuXG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi9rZXlQYWlyJztcbmltcG9ydCB7IElQdWJsaWNLZXksIFByZXBhcmVkUGFydHksIFdhbGxldEluaXRSZXF1ZXN0IH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBXYWxsZXRJbml0VHJhbnNhY3Rpb24gfSBmcm9tICcuL3dhbGxldEluaXRpYWxpemF0aW9uL3dhbGxldEluaXRUcmFuc2FjdGlvbic7XG5pbXBvcnQgeyBQVUJMSUNfS0VZX0ZPUk1BVCwgUFVCTElDX0tFWV9TUEVDIH0gZnJvbSAnLi9jb25zdGFudCc7XG5cbmV4cG9ydCBjbGFzcyBXYWxsZXRJbml0QnVpbGRlciBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcml2YXRlIF90cmFuc2FjdGlvbjogV2FsbGV0SW5pdFRyYW5zYWN0aW9uO1xuICBwcml2YXRlIF9zaWduYXR1cmVzOiBTaWduYXR1cmVbXSA9IFtdO1xuXG4gIHByaXZhdGUgX3B1YmxpY0tleTogSVB1YmxpY0tleTtcbiAgcHJpdmF0ZSBfcGFydHlIaW50OiBzdHJpbmc7XG4gIHByaXZhdGUgX2xvY2FsUGFydGljaXBhbnRPYnNlcnZhdGlvbk9ubHkgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfb3RoZXJDb25maXJtaW5nUGFydGljaXBhbnRVaWRzOiBzdHJpbmdbXSA9IFtdO1xuICBwcml2YXRlIF9jb25maXJtYXRpb25UaHJlc2hvbGQgPSAxO1xuICBwcml2YXRlIF9vYnNlcnZpbmdQYXJ0aWNpcGFudFVpZHM6IHN0cmluZ1tdID0gW107XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gbmV3IFdhbGxldEluaXRUcmFuc2FjdGlvbihfY29pbkNvbmZpZyk7XG4gIH1cblxuICBpbml0QnVpbGRlcih0eDogV2FsbGV0SW5pdFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSB0eDtcbiAgfVxuXG4gIHByb3RlY3RlZCBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8V2FsbGV0SW5pdFRyYW5zYWN0aW9uPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBmcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb246IGFueSwgaXNGaXJzdFNpZ25lcj86IGJvb2xlYW4pOiBXYWxsZXRJbml0VHJhbnNhY3Rpb24ge1xuICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2lnbkltcGxlbWVudGF0aW9uKGtleTogQmFzZUtleSk6IFdhbGxldEluaXRUcmFuc2FjdGlvbiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTtcbiAgfVxuXG4gIGdldCB0cmFuc2FjdGlvbigpOiBXYWxsZXRJbml0VHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcbiAgfVxuXG4gIHNldCB0cmFuc2FjdGlvbih0cmFuc2FjdGlvbjogUHJlcGFyZWRQYXJ0eSkge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uLnByZXBhcmVkUGFydHkgPSB0cmFuc2FjdGlvbjtcbiAgfVxuXG4gIHZhbGlkYXRlQWRkcmVzcyhhZGRyZXNzOiBCYXNlQWRkcmVzcywgYWRkcmVzc0Zvcm1hdD86IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdXRpbHMuaXNWYWxpZEFkZHJlc3MoYWRkcmVzcy5hZGRyZXNzKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBhZGRyZXNzICcgKyBhZGRyZXNzLmFkZHJlc3MpO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlS2V5KGtleTogQmFzZUtleSk6IHZvaWQge1xuICAgIGxldCBrZXlQYWlyOiBLZXlQYWlyO1xuICAgIHRyeSB7XG4gICAgICBrZXlQYWlyID0gbmV3IEtleVBhaXIoeyBwcnY6IGtleS5rZXkgfSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIGtleScpO1xuICAgIH1cbiAgICBpZiAoIWtleVBhaXIuZ2V0S2V5cygpLnBydikge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBrZXknKTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIGlmICghcmF3VHJhbnNhY3Rpb24gfHwgIXRoaXMuX3RyYW5zYWN0aW9uLnByZXBhcmVkUGFydHkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ2ludmFsaWQgcmF3IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIGNvbnN0IGxvY2FsSGFzaCA9IHV0aWxzLmNvbXB1dGVIYXNoRnJvbUNyZWF0ZVBhcnR5UmVzcG9uc2UocmF3VHJhbnNhY3Rpb24pO1xuICAgIGlmIChsb2NhbEhhc2ggIT09IHRoaXMuX3RyYW5zYWN0aW9uLnByZXBhcmVkUGFydHkubXVsdGlIYXNoKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdpbnZhbGlkIHJhdyB0cmFuc2FjdGlvbiwgaGFzaCBub3QgbWF0Y2hpbmcnKTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uPzogV2FsbGV0SW5pdFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgaWYgKCF0cmFuc2FjdGlvbj8ucHJlcGFyZWRQYXJ0eSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBsb2NhbEhhc2ggPSB1dGlscy5jb21wdXRlSGFzaEZyb21DcmVhdGVQYXJ0eVJlc3BvbnNlKHRyYW5zYWN0aW9uLnByZXBhcmVkUGFydHkudG9wb2xvZ3lUcmFuc2FjdGlvbnMpO1xuICAgIGlmIChsb2NhbEhhc2ggIT09IHRoaXMuX3RyYW5zYWN0aW9uLnByZXBhcmVkUGFydHkubXVsdGlIYXNoKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdpbnZhbGlkIHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICB9XG5cbiAgLy8gbm90IGltcGxlbWVudGVkIGJlY2F1c2Ugd2FsbGV0IGluaXRpYWxpemF0aW9uIGRvZXNuJ3QgcmVxdWlyZSBhbnkgdmFsdWVcbiAgdmFsaWRhdGVWYWx1ZSh2YWx1ZTogQmlnTnVtYmVyKTogdm9pZCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBhZGRTaWduYXR1cmUocHVibGljS2V5OiBQdWJsaWNLZXksIHNpZ25hdHVyZTogQnVmZmVyKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ3RyYW5zYWN0aW9uIGlzIGVtcHR5IScpO1xuICAgIH1cbiAgICB0aGlzLl9zaWduYXR1cmVzLnB1c2goeyBwdWJsaWNLZXksIHNpZ25hdHVyZSB9KTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnNpZ25hdHVyZXMgPSBzaWduYXR1cmUudG9TdHJpbmcoJ2Jhc2U2NCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHB1YmxpYyBrZXkgdXNlZCBmb3Igc2lnbmluZy5cbiAgICpcbiAgICogQHBhcmFtIGtleSAtIFRoZSBwdWJsaWMga2V5IG9mIHRoZSB3YWxsZXQuXG4gICAqIEByZXR1cm5zIFRoZSBjdXJyZW50IGJ1aWxkZXIgaW5zdGFuY2UgZm9yIGNoYWluaW5nLlxuICAgKiBAdGhyb3dzIEVycm9yIGlmIGtleSBpcyBub3QgYSB2YWxpZCBwdWJsaWMga2V5XG4gICAqL1xuICBwdWJsaWNLZXkoa2V5OiBzdHJpbmcpOiB0aGlzIHtcbiAgICB1dGlscy5pc1ZhbGlkUHVibGljS2V5KGtleSk7XG4gICAgdGhpcy5fcHVibGljS2V5ID0ge1xuICAgICAgZm9ybWF0OiBQVUJMSUNfS0VZX0ZPUk1BVCxcbiAgICAgIGtleURhdGE6IGtleSxcbiAgICAgIGtleVNwZWM6IFBVQkxJQ19LRVlfU1BFQyxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHBhcnR5IGhpbnQgKGFsaWFzIG9yIG5hbWUpIHVzZWQgZHVyaW5nIHdhbGxldCBpbml0aWFsaXphdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIGhpbnQgLSBBIDUtY2hhcmFjdGVyIG5vbi1lbXB0eSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBwYXJ0eSBoaW50LlxuICAgKiBAcmV0dXJucyBUaGUgY3VycmVudCBidWlsZGVyIGluc3RhbmNlIGZvciBjaGFpbmluZy5cbiAgICogQHRocm93cyBFcnJvciBpZiB0aGUgaGludCBpcyBlbXB0eSBvciBtb3JlIHRoYW4gNSBjaGFyYWN0ZXJzIGxvbmcuXG4gICAqL1xuICBwYXJ0eUhpbnQoaGludDogc3RyaW5nKTogdGhpcyB7XG4gICAgY29uc3QgdHJpbW1lZEhpbnQgPSBoaW50LnRyaW0oKTtcbiAgICBpZiAoIXRyaW1tZWRIaW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3BhcnR5SGludCBjYW5ub3QgYmUgZW1wdHknKTtcbiAgICB9XG4gICAgaWYgKHRyaW1tZWRIaW50Lmxlbmd0aCA+IDUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigncGFydHlIaW50IG11c3QgYmUgbGVzcyB0aGFuIDYgY2hhcmFjdGVycyBsb25nJyk7XG4gICAgfVxuICAgIHRoaXMuX3BhcnR5SGludCA9IHRyaW1tZWRIaW50O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgd2hldGhlciB0aGUgbG9jYWwgcGFydGljaXBhbnQgc2hvdWxkIGJlIGFkZGVkIGluIG9ic2VydmF0aW9uLW9ubHkgbW9kZS5cbiAgICpcbiAgICogQHBhcmFtIGZsYWcgLSBCb29sZWFuIGZsYWcgaW5kaWNhdGluZyBvYnNlcnZhdGlvbi1vbmx5IHN0YXR1cy5cbiAgICogQHJldHVybnMgVGhlIGN1cnJlbnQgYnVpbGRlciBpbnN0YW5jZSBmb3IgY2hhaW5pbmcuXG4gICAqL1xuICBsb2NhbFBhcnRpY2lwYW50T2JzZXJ2YXRpb25Pbmx5KGZsYWc6IGJvb2xlYW4pOiB0aGlzIHtcbiAgICB0aGlzLl9sb2NhbFBhcnRpY2lwYW50T2JzZXJ2YXRpb25Pbmx5ID0gZmxhZztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgY29uZmlybWluZyBwYXJ0aWNpcGFudCBVSUQgdG8gdGhlIGxpc3Qgb2Ygb3RoZXIgY29uZmlybWluZyBwYXJ0aWNpcGFudHMuXG4gICAqXG4gICAqIEBwYXJhbSB1aWQgLSBBIG5vbi1lbXB0eSBzdHJpbmcgVUlEIG9mIGFub3RoZXIgY29uZmlybWluZyBwYXJ0aWNpcGFudC5cbiAgICogQHJldHVybnMgVGhlIGN1cnJlbnQgYnVpbGRlciBpbnN0YW5jZSBmb3IgY2hhaW5pbmcuXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIFVJRCBpcyBlbXB0eS5cbiAgICovXG4gIG90aGVyQ29uZmlybWluZ1BhcnRpY2lwYW50VWlkKHVpZDogc3RyaW5nKTogdGhpcyB7XG4gICAgY29uc3QgdHJpbW1lZFVpZCA9IHVpZC50cmltKCk7XG4gICAgaWYgKCF0cmltbWVkVWlkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ290aGVyQ29uZmlybWluZ1BhcnRpY2lwYW50VWlkIGNhbm5vdCBiZSBlbXB0eScpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuX290aGVyQ29uZmlybWluZ1BhcnRpY2lwYW50VWlkcykge1xuICAgICAgdGhpcy5fb3RoZXJDb25maXJtaW5nUGFydGljaXBhbnRVaWRzID0gW107XG4gICAgfVxuICAgIHRoaXMuX290aGVyQ29uZmlybWluZ1BhcnRpY2lwYW50VWlkcy5wdXNoKHRyaW1tZWRVaWQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGNvbmZpcm1hdGlvbiB0aHJlc2hvbGQgZm9yIHRoZSB3YWxsZXQgaW5pdGlhbGl6YXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSB0aHJlc2hvbGQgLSBBIHBvc2l0aXZlIGludGVnZXIgaW5kaWNhdGluZyBob3cgbWFueSBjb25maXJtYXRpb25zIGFyZSByZXF1aXJlZC5cbiAgICogQHJldHVybnMgVGhlIGN1cnJlbnQgYnVpbGRlciBpbnN0YW5jZSBmb3IgY2hhaW5pbmcuXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIHRocmVzaG9sZCBpcyBub3QgYSBwb3NpdGl2ZSBpbnRlZ2VyLlxuICAgKi9cbiAgY29uZmlybWF0aW9uVGhyZXNob2xkKHRocmVzaG9sZDogbnVtYmVyKTogdGhpcyB7XG4gICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKHRocmVzaG9sZCkgfHwgdGhyZXNob2xkIDw9IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignY29uZmlybWF0aW9uVGhyZXNob2xkIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyJyk7XG4gICAgfVxuICAgIHRoaXMuX2NvbmZpcm1hdGlvblRocmVzaG9sZCA9IHRocmVzaG9sZDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFuIG9ic2VydmluZyBwYXJ0aWNpcGFudCBVSUQgdG8gdGhlIGxpc3Qgb2Ygb2JzZXJ2ZXJzLlxuICAgKlxuICAgKiBAcGFyYW0gdWlkIC0gQSBub24tZW1wdHkgc3RyaW5nIFVJRCBvZiB0aGUgb2JzZXJ2aW5nIHBhcnRpY2lwYW50LlxuICAgKiBAcmV0dXJucyBUaGUgY3VycmVudCBidWlsZGVyIGluc3RhbmNlIGZvciBjaGFpbmluZy5cbiAgICogQHRocm93cyBFcnJvciBpZiB0aGUgVUlEIGlzIGVtcHR5LlxuICAgKi9cbiAgb2JzZXJ2aW5nUGFydGljaXBhbnRVaWQodWlkOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBjb25zdCB0cmltbWVkVWlkID0gdWlkLnRyaW0oKTtcbiAgICBpZiAoIXRyaW1tZWRVaWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignb2JzZXJ2aW5nUGFydGljaXBhbnRVaWQgY2Fubm90IGJlIGVtcHR5Jyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5fb2JzZXJ2aW5nUGFydGljaXBhbnRVaWRzKSB7XG4gICAgICB0aGlzLl9vYnNlcnZpbmdQYXJ0aWNpcGFudFVpZHMgPSBbXTtcbiAgICB9XG4gICAgdGhpcy5fb2JzZXJ2aW5nUGFydGljaXBhbnRVaWRzLnB1c2godHJpbW1lZFVpZCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGRzIGFuZCByZXR1cm5zIHRoZSBXYWxsZXRJbml0UmVxdWVzdCBvYmplY3QgZnJvbSB0aGUgYnVpbGRlcidzIGludGVybmFsIHN0YXRlLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBwZXJmb3JtcyB2YWxpZGF0aW9uIGJlZm9yZSBjb25zdHJ1Y3RpbmcgdGhlIG9iamVjdC4gSWYgcmVxdWlyZWQgZmllbGRzIGFyZVxuICAgKiBtaXNzaW5nIG9yIGludmFsaWQsIGl0IHRocm93cyBhbiBlcnJvci5cbiAgICpcbiAgICogQHJldHVybnMge1dhbGxldEluaXRSZXF1ZXN0fSAtIEEgZnVsbHkgY29uc3RydWN0ZWQgYW5kIHZhbGlkYXRlZCByZXF1ZXN0IG9iamVjdCBmb3Igd2FsbGV0IGluaXRpYWxpemF0aW9uLlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgYW55IHJlcXVpcmVkIGZpZWxkIGlzIG1pc3Npbmcgb3IgZmFpbHMgdmFsaWRhdGlvbi5cbiAgICovXG4gIHRvUmVxdWVzdE9iamVjdCgpOiBXYWxsZXRJbml0UmVxdWVzdCB7XG4gICAgdGhpcy52YWxpZGF0ZSgpO1xuICAgIHJldHVybiB7XG4gICAgICBwdWJsaWNLZXk6IHRoaXMuX3B1YmxpY0tleSxcbiAgICAgIHBhcnR5SGludDogdGhpcy5fcGFydHlIaW50LFxuICAgICAgbG9jYWxQYXJ0aWNpcGFudE9ic2VydmF0aW9uT25seTogdGhpcy5fbG9jYWxQYXJ0aWNpcGFudE9ic2VydmF0aW9uT25seSxcbiAgICAgIG90aGVyQ29uZmlybWluZ1BhcnRpY2lwYW50VWlkczogdGhpcy5fb3RoZXJDb25maXJtaW5nUGFydGljaXBhbnRVaWRzLFxuICAgICAgY29uZmlybWF0aW9uVGhyZXNob2xkOiB0aGlzLl9jb25maXJtYXRpb25UaHJlc2hvbGQsXG4gICAgICBvYnNlcnZpbmdQYXJ0aWNpcGFudFVpZHM6IHRoaXMuX29ic2VydmluZ1BhcnRpY2lwYW50VWlkcyxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgaW50ZXJuYWwgc3RhdGUgb2YgdGhlIGJ1aWxkZXIgYmVmb3JlIGJ1aWxkaW5nIHRoZSByZXF1ZXN0IG9iamVjdC5cbiAgICpcbiAgICogQ2hlY2tzIGZvcjpcbiAgICogLSBQcmVzZW5jZSBvZiBhIHN5bmNocm9uaXplciBJRC5cbiAgICogLSBgcGFydHlIaW50YCBtdXN0IG5vdCBiZSBlbXB0eSBhbmQgbXVzdCBiZSBhdCBtb3N0IDUgY2hhcmFjdGVycyBsb25nLlxuICAgKiAtIFB1YmxpYyBrZXkgbXVzdCBpbmNsdWRlIGBrZXlEYXRhYCwgYGZvcm1hdGAsIGFuZCBga2V5U3BlY2AuXG4gICAqIC0gQ29uZmlybWF0aW9uIHRocmVzaG9sZCBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlci5cbiAgICogLSBDb25maXJtaW5nIGFuZCBvYnNlcnZpbmcgcGFydGljaXBhbnQgVUlEIGxpc3RzIG11c3QgYmUgYXJyYXlzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgYW55IHJlcXVpcmVkIGZpZWxkIGlzIG1pc3Npbmcgb3IgaW52YWxpZC5cbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9wYXJ0eUhpbnQgfHwgdGhpcy5fcGFydHlIaW50Lmxlbmd0aCA+IDUpIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBwYXJ0eUhpbnQnKTtcbiAgICBpZiAoIXRoaXMuX3B1YmxpY0tleSB8fCAhdGhpcy5fcHVibGljS2V5LmtleURhdGEgfHwgIXRoaXMuX3B1YmxpY0tleS5mb3JtYXQgfHwgIXRoaXMuX3B1YmxpY0tleS5rZXlTcGVjKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgcHVibGljS2V5Jyk7XG4gICAgfVxuICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcih0aGlzLl9jb25maXJtYXRpb25UaHJlc2hvbGQpIHx8IHRoaXMuX2NvbmZpcm1hdGlvblRocmVzaG9sZCA8PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgY29uZmlybWF0aW9uVGhyZXNob2xkJyk7XG4gICAgfVxuICAgIGlmICghQXJyYXkuaXNBcnJheSh0aGlzLl9vdGhlckNvbmZpcm1pbmdQYXJ0aWNpcGFudFVpZHMpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ290aGVyQ29uZmlybWluZ1BhcnRpY2lwYW50VWlkcyBtdXN0IGJlIGFuIGFycmF5Jyk7XG4gICAgfVxuICAgIGlmICghQXJyYXkuaXNBcnJheSh0aGlzLl9vYnNlcnZpbmdQYXJ0aWNpcGFudFVpZHMpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ29ic2VydmluZ1BhcnRpY2lwYW50VWlkcyBtdXN0IGJlIGFuIGFycmF5Jyk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,7 +1,6 @@
1
1
  import { BaseKey, BaseTransaction } from '@bitgo/sdk-core';
2
2
  import { BaseCoin as CoinConfig } from '@bitgo/statics';
3
3
  import { PreparedParty, WalletInitTxData } from '../iface';
4
- import { Buffer } from 'buffer';
5
4
  export declare class WalletInitTransaction extends BaseTransaction {
6
5
  private _preparedParty;
7
6
  constructor(coinConfig: Readonly<CoinConfig>);
@@ -1 +1 @@
1
- {"version":3,"file":"walletInitTransaction.d.ts","sourceRoot":"","sources":["../../../../src/lib/walletInitialization/walletInitTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,eAAe,EAA4C,MAAM,iBAAiB,CAAC;AACrG,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,qBAAa,qBAAsB,SAAQ,eAAe;IACxD,OAAO,CAAC,cAAc,CAAgB;gBAE1B,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI5C,IAAI,aAAa,IAAI,aAAa,CAEjC;IAED,IAAI,aAAa,CAAC,WAAW,EAAE,aAAa,EAI3C;IAED,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAI9B,IAAI,UAAU,CAAC,SAAS,EAAE,MAAM,EAE/B;IAED,iBAAiB,IAAI,MAAM;IAO3B,MAAM,IAAI,gBAAgB;IAY1B,IAAI,eAAe,IAAI,MAAM,CAK5B;IAED,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAUxC"}
1
+ {"version":3,"file":"walletInitTransaction.d.ts","sourceRoot":"","sources":["../../../../src/lib/walletInitialization/walletInitTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,eAAe,EAA4C,MAAM,iBAAiB,CAAC;AACrG,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAGL,aAAa,EAEb,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAGlB,qBAAa,qBAAsB,SAAQ,eAAe;IACxD,OAAO,CAAC,cAAc,CAAgB;gBAE1B,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI5C,IAAI,aAAa,IAAI,aAAa,CAEjC;IAED,IAAI,aAAa,CAAC,WAAW,EAAE,aAAa,EAI3C;IAED,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAI9B,IAAI,UAAU,CAAC,SAAS,EAAE,MAAM,EAE/B;IAED,iBAAiB,IAAI,MAAM;IA6B3B,MAAM,IAAI,gBAAgB;IAY1B,IAAI,eAAe,IAAI,MAAM,CAK5B;IAED,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAexC"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WalletInitTransaction = void 0;
4
4
  const sdk_core_1 = require("@bitgo/sdk-core");
5
- const buffer_1 = require("buffer");
5
+ const constant_1 = require("../constant");
6
6
  class WalletInitTransaction extends sdk_core_1.BaseTransaction {
7
7
  constructor(coinConfig) {
8
8
  super(coinConfig);
@@ -25,7 +25,29 @@ class WalletInitTransaction extends sdk_core_1.BaseTransaction {
25
25
  if (!this._preparedParty) {
26
26
  throw new sdk_core_1.InvalidTransactionError('Empty transaction data');
27
27
  }
28
- return buffer_1.Buffer.from(JSON.stringify(this._preparedParty)).toString('base64');
28
+ const multiHashSignatures = [];
29
+ if (this.signature.length > 0) {
30
+ this.signature.map((signature) => {
31
+ const multiHashSignature = {
32
+ format: constant_1.SIGNATURE_FORMAT,
33
+ signature: signature,
34
+ signedBy: this._preparedParty.publicKeyFingerprint,
35
+ signingAlgorithmSpec: constant_1.SIGNATURE_ALGORITHM_SPEC,
36
+ };
37
+ multiHashSignatures.push(multiHashSignature);
38
+ });
39
+ }
40
+ const walletInitBroadcastData = {
41
+ preparedParty: this._preparedParty,
42
+ onboardingTransactions: this._preparedParty.topologyTransactions.map((txn) => {
43
+ const onboardingTransaction = {
44
+ transaction: txn,
45
+ };
46
+ return onboardingTransaction;
47
+ }),
48
+ multiHashSignatures: multiHashSignatures,
49
+ };
50
+ return Buffer.from(JSON.stringify(walletInitBroadcastData)).toString('base64');
29
51
  }
30
52
  toJson() {
31
53
  if (!this._preparedParty) {
@@ -42,14 +64,19 @@ class WalletInitTransaction extends sdk_core_1.BaseTransaction {
42
64
  if (!this._preparedParty) {
43
65
  throw new sdk_core_1.InvalidTransactionError('Empty transaction data');
44
66
  }
45
- return buffer_1.Buffer.from(this._preparedParty.multiHash);
67
+ return Buffer.from(this._preparedParty.multiHash);
46
68
  }
47
69
  fromRawTransaction(rawTx) {
48
70
  try {
49
- const decoded = JSON.parse(buffer_1.Buffer.from(rawTx, 'base64').toString('utf8'));
50
- this._preparedParty = decoded;
71
+ const decoded = JSON.parse(Buffer.from(rawTx, 'base64').toString('utf8'));
72
+ this._preparedParty = decoded.preparedParty;
51
73
  this._type = sdk_core_1.TransactionType.WalletInitialization;
52
- this._id = decoded.multiHash;
74
+ this._id = decoded.preparedParty.multiHash;
75
+ if (decoded.multiHashSignatures.length > 0) {
76
+ decoded.multiHashSignatures.map((multiHashSignature) => {
77
+ this.signatures = multiHashSignature.signature;
78
+ });
79
+ }
53
80
  }
54
81
  catch (e) {
55
82
  throw new sdk_core_1.InvalidTransactionError('Unable to parse raw transaction data');
@@ -57,4 +84,4 @@ class WalletInitTransaction extends sdk_core_1.BaseTransaction {
57
84
  }
58
85
  }
59
86
  exports.WalletInitTransaction = WalletInitTransaction;
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0SW5pdFRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi93YWxsZXRJbml0aWFsaXphdGlvbi93YWxsZXRJbml0VHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsOENBQXFHO0FBR3JHLG1DQUFnQztBQUVoQyxNQUFhLHFCQUFzQixTQUFRLDBCQUFlO0lBR3hELFlBQVksVUFBZ0M7UUFDMUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksYUFBYSxDQUFDLFdBQTBCO1FBQzFDLElBQUksQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxHQUFHLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQztRQUNqQyxJQUFJLENBQUMsS0FBSyxHQUFHLDBCQUFlLENBQUMsb0JBQW9CLENBQUM7SUFDcEQsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFZO1FBQ2xCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELElBQUksVUFBVSxDQUFDLFNBQWlCO1FBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFDRCxPQUFPLGVBQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFDRCxNQUFNLE1BQU0sR0FBcUI7WUFDL0IsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ1gsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUF3QjtZQUNuQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGNBQWM7U0FDbkMsQ0FBQztRQUNGLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixNQUFNLElBQUksa0NBQXVCLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBQ0QsT0FBTyxlQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQWE7UUFDOUIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxPQUFPLEdBQWtCLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDekYsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUM7WUFDOUIsSUFBSSxDQUFDLEtBQUssR0FBRywwQkFBZSxDQUFDLG9CQUFvQixDQUFDO1lBQ2xELElBQUksQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUMvQixDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1FBQzVFLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUE3REQsc0RBNkRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUtleSwgQmFzZVRyYW5zYWN0aW9uLCBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBQcmVwYXJlZFBhcnR5LCBXYWxsZXRJbml0VHhEYXRhIH0gZnJvbSAnLi4vaWZhY2UnO1xuaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJztcblxuZXhwb3J0IGNsYXNzIFdhbGxldEluaXRUcmFuc2FjdGlvbiBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbiB7XG4gIHByaXZhdGUgX3ByZXBhcmVkUGFydHk6IFByZXBhcmVkUGFydHk7XG5cbiAgY29uc3RydWN0b3IoY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihjb2luQ29uZmlnKTtcbiAgfVxuXG4gIGdldCBwcmVwYXJlZFBhcnR5KCk6IFByZXBhcmVkUGFydHkge1xuICAgIHJldHVybiB0aGlzLl9wcmVwYXJlZFBhcnR5O1xuICB9XG5cbiAgc2V0IHByZXBhcmVkUGFydHkodHJhbnNhY3Rpb246IFByZXBhcmVkUGFydHkpIHtcbiAgICB0aGlzLl9wcmVwYXJlZFBhcnR5ID0gdHJhbnNhY3Rpb247XG4gICAgdGhpcy5faWQgPSB0cmFuc2FjdGlvbi5tdWx0aUhhc2g7XG4gICAgdGhpcy5fdHlwZSA9IFRyYW5zYWN0aW9uVHlwZS5XYWxsZXRJbml0aWFsaXphdGlvbjtcbiAgfVxuXG4gIGNhblNpZ24oa2V5OiBCYXNlS2V5KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgc2V0IHNpZ25hdHVyZXMoc2lnbmF0dXJlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9zaWduYXR1cmVzLnB1c2goc2lnbmF0dXJlKTtcbiAgfVxuXG4gIHRvQnJvYWRjYXN0Rm9ybWF0KCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLl9wcmVwYXJlZFBhcnR5KSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uIGRhdGEnKTtcbiAgICB9XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KHRoaXMuX3ByZXBhcmVkUGFydHkpKS50b1N0cmluZygnYmFzZTY0Jyk7XG4gIH1cblxuICB0b0pzb24oKTogV2FsbGV0SW5pdFR4RGF0YSB7XG4gICAgaWYgKCF0aGlzLl9wcmVwYXJlZFBhcnR5KSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uIGRhdGEnKTtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0OiBXYWxsZXRJbml0VHhEYXRhID0ge1xuICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICB0eXBlOiB0aGlzLl90eXBlIGFzIFRyYW5zYWN0aW9uVHlwZSxcbiAgICAgIHByZXBhcmVkUGFydHk6IHRoaXMuX3ByZXBhcmVkUGFydHksXG4gICAgfTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgZ2V0IHNpZ25hYmxlUGF5bG9hZCgpOiBCdWZmZXIge1xuICAgIGlmICghdGhpcy5fcHJlcGFyZWRQYXJ0eSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbiBkYXRhJyk7XG4gICAgfVxuICAgIHJldHVybiBCdWZmZXIuZnJvbSh0aGlzLl9wcmVwYXJlZFBhcnR5Lm11bHRpSGFzaCk7XG4gIH1cblxuICBmcm9tUmF3VHJhbnNhY3Rpb24ocmF3VHg6IHN0cmluZyk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBkZWNvZGVkOiBQcmVwYXJlZFBhcnR5ID0gSlNPTi5wYXJzZShCdWZmZXIuZnJvbShyYXdUeCwgJ2Jhc2U2NCcpLnRvU3RyaW5nKCd1dGY4JykpO1xuICAgICAgdGhpcy5fcHJlcGFyZWRQYXJ0eSA9IGRlY29kZWQ7XG4gICAgICB0aGlzLl90eXBlID0gVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uO1xuICAgICAgdGhpcy5faWQgPSBkZWNvZGVkLm11bHRpSGFzaDtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ1VuYWJsZSB0byBwYXJzZSByYXcgdHJhbnNhY3Rpb24gZGF0YScpO1xuICAgIH1cbiAgfVxufVxuIl19
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0SW5pdFRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi93YWxsZXRJbml0aWFsaXphdGlvbi93YWxsZXRJbml0VHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsOENBQXFHO0FBU3JHLDBDQUF5RTtBQUV6RSxNQUFhLHFCQUFzQixTQUFRLDBCQUFlO0lBR3hELFlBQVksVUFBZ0M7UUFDMUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksYUFBYSxDQUFDLFdBQTBCO1FBQzFDLElBQUksQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxHQUFHLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQztRQUNqQyxJQUFJLENBQUMsS0FBSyxHQUFHLDBCQUFlLENBQUMsb0JBQW9CLENBQUM7SUFDcEQsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFZO1FBQ2xCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELElBQUksVUFBVSxDQUFDLFNBQWlCO1FBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFDRCxNQUFNLG1CQUFtQixHQUF5QixFQUFFLENBQUM7UUFDckQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO2dCQUMvQixNQUFNLGtCQUFrQixHQUF1QjtvQkFDN0MsTUFBTSxFQUFFLDJCQUFnQjtvQkFDeEIsU0FBUyxFQUFFLFNBQVM7b0JBQ3BCLFFBQVEsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQjtvQkFDbEQsb0JBQW9CLEVBQUUsbUNBQXdCO2lCQUMvQyxDQUFDO2dCQUNGLG1CQUFtQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQy9DLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELE1BQU0sdUJBQXVCLEdBQTRCO1lBQ3ZELGFBQWEsRUFBRSxJQUFJLENBQUMsY0FBYztZQUNsQyxzQkFBc0IsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUMzRSxNQUFNLHFCQUFxQixHQUEwQjtvQkFDbkQsV0FBVyxFQUFFLEdBQUc7aUJBQ2pCLENBQUM7Z0JBQ0YsT0FBTyxxQkFBcUIsQ0FBQztZQUMvQixDQUFDLENBQUM7WUFDRixtQkFBbUIsRUFBRSxtQkFBbUI7U0FDekMsQ0FBQztRQUNGLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFDRCxNQUFNLE1BQU0sR0FBcUI7WUFDL0IsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ1gsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUF3QjtZQUNuQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGNBQWM7U0FDbkMsQ0FBQztRQUNGLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixNQUFNLElBQUksa0NBQXVCLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQWE7UUFDOUIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxPQUFPLEdBQTRCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDbkcsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO1lBQzVDLElBQUksQ0FBQyxLQUFLLEdBQUcsMEJBQWUsQ0FBQyxvQkFBb0IsQ0FBQztZQUNsRCxJQUFJLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDO1lBQzNDLElBQUksT0FBTyxDQUFDLG1CQUFtQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDM0MsT0FBTyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDLGtCQUFzQyxFQUFFLEVBQUU7b0JBQ3pFLElBQUksQ0FBQyxVQUFVLEdBQUcsa0JBQWtCLENBQUMsU0FBUyxDQUFDO2dCQUNqRCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1FBQzVFLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUF4RkQsc0RBd0ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUtleSwgQmFzZVRyYW5zYWN0aW9uLCBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQge1xuICBNdWx0aUhhc2hTaWduYXR1cmUsXG4gIE9uYm9hcmRpbmdUcmFuc2FjdGlvbixcbiAgUHJlcGFyZWRQYXJ0eSxcbiAgV2FsbGV0SW5pdEJyb2FkY2FzdERhdGEsXG4gIFdhbGxldEluaXRUeERhdGEsXG59IGZyb20gJy4uL2lmYWNlJztcbmltcG9ydCB7IFNJR05BVFVSRV9BTEdPUklUSE1fU1BFQywgU0lHTkFUVVJFX0ZPUk1BVCB9IGZyb20gJy4uL2NvbnN0YW50JztcblxuZXhwb3J0IGNsYXNzIFdhbGxldEluaXRUcmFuc2FjdGlvbiBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbiB7XG4gIHByaXZhdGUgX3ByZXBhcmVkUGFydHk6IFByZXBhcmVkUGFydHk7XG5cbiAgY29uc3RydWN0b3IoY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihjb2luQ29uZmlnKTtcbiAgfVxuXG4gIGdldCBwcmVwYXJlZFBhcnR5KCk6IFByZXBhcmVkUGFydHkge1xuICAgIHJldHVybiB0aGlzLl9wcmVwYXJlZFBhcnR5O1xuICB9XG5cbiAgc2V0IHByZXBhcmVkUGFydHkodHJhbnNhY3Rpb246IFByZXBhcmVkUGFydHkpIHtcbiAgICB0aGlzLl9wcmVwYXJlZFBhcnR5ID0gdHJhbnNhY3Rpb247XG4gICAgdGhpcy5faWQgPSB0cmFuc2FjdGlvbi5tdWx0aUhhc2g7XG4gICAgdGhpcy5fdHlwZSA9IFRyYW5zYWN0aW9uVHlwZS5XYWxsZXRJbml0aWFsaXphdGlvbjtcbiAgfVxuXG4gIGNhblNpZ24oa2V5OiBCYXNlS2V5KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgc2V0IHNpZ25hdHVyZXMoc2lnbmF0dXJlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9zaWduYXR1cmVzLnB1c2goc2lnbmF0dXJlKTtcbiAgfVxuXG4gIHRvQnJvYWRjYXN0Rm9ybWF0KCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLl9wcmVwYXJlZFBhcnR5KSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uIGRhdGEnKTtcbiAgICB9XG4gICAgY29uc3QgbXVsdGlIYXNoU2lnbmF0dXJlczogTXVsdGlIYXNoU2lnbmF0dXJlW10gPSBbXTtcbiAgICBpZiAodGhpcy5zaWduYXR1cmUubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5zaWduYXR1cmUubWFwKChzaWduYXR1cmUpID0+IHtcbiAgICAgICAgY29uc3QgbXVsdGlIYXNoU2lnbmF0dXJlOiBNdWx0aUhhc2hTaWduYXR1cmUgPSB7XG4gICAgICAgICAgZm9ybWF0OiBTSUdOQVRVUkVfRk9STUFULFxuICAgICAgICAgIHNpZ25hdHVyZTogc2lnbmF0dXJlLFxuICAgICAgICAgIHNpZ25lZEJ5OiB0aGlzLl9wcmVwYXJlZFBhcnR5LnB1YmxpY0tleUZpbmdlcnByaW50LFxuICAgICAgICAgIHNpZ25pbmdBbGdvcml0aG1TcGVjOiBTSUdOQVRVUkVfQUxHT1JJVEhNX1NQRUMsXG4gICAgICAgIH07XG4gICAgICAgIG11bHRpSGFzaFNpZ25hdHVyZXMucHVzaChtdWx0aUhhc2hTaWduYXR1cmUpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IHdhbGxldEluaXRCcm9hZGNhc3REYXRhOiBXYWxsZXRJbml0QnJvYWRjYXN0RGF0YSA9IHtcbiAgICAgIHByZXBhcmVkUGFydHk6IHRoaXMuX3ByZXBhcmVkUGFydHksXG4gICAgICBvbmJvYXJkaW5nVHJhbnNhY3Rpb25zOiB0aGlzLl9wcmVwYXJlZFBhcnR5LnRvcG9sb2d5VHJhbnNhY3Rpb25zLm1hcCgodHhuKSA9PiB7XG4gICAgICAgIGNvbnN0IG9uYm9hcmRpbmdUcmFuc2FjdGlvbjogT25ib2FyZGluZ1RyYW5zYWN0aW9uID0ge1xuICAgICAgICAgIHRyYW5zYWN0aW9uOiB0eG4sXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBvbmJvYXJkaW5nVHJhbnNhY3Rpb247XG4gICAgICB9KSxcbiAgICAgIG11bHRpSGFzaFNpZ25hdHVyZXM6IG11bHRpSGFzaFNpZ25hdHVyZXMsXG4gICAgfTtcbiAgICByZXR1cm4gQnVmZmVyLmZyb20oSlNPTi5zdHJpbmdpZnkod2FsbGV0SW5pdEJyb2FkY2FzdERhdGEpKS50b1N0cmluZygnYmFzZTY0Jyk7XG4gIH1cblxuICB0b0pzb24oKTogV2FsbGV0SW5pdFR4RGF0YSB7XG4gICAgaWYgKCF0aGlzLl9wcmVwYXJlZFBhcnR5KSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uIGRhdGEnKTtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0OiBXYWxsZXRJbml0VHhEYXRhID0ge1xuICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICB0eXBlOiB0aGlzLl90eXBlIGFzIFRyYW5zYWN0aW9uVHlwZSxcbiAgICAgIHByZXBhcmVkUGFydHk6IHRoaXMuX3ByZXBhcmVkUGFydHksXG4gICAgfTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgZ2V0IHNpZ25hYmxlUGF5bG9hZCgpOiBCdWZmZXIge1xuICAgIGlmICghdGhpcy5fcHJlcGFyZWRQYXJ0eSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbiBkYXRhJyk7XG4gICAgfVxuICAgIHJldHVybiBCdWZmZXIuZnJvbSh0aGlzLl9wcmVwYXJlZFBhcnR5Lm11bHRpSGFzaCk7XG4gIH1cblxuICBmcm9tUmF3VHJhbnNhY3Rpb24ocmF3VHg6IHN0cmluZyk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBkZWNvZGVkOiBXYWxsZXRJbml0QnJvYWRjYXN0RGF0YSA9IEpTT04ucGFyc2UoQnVmZmVyLmZyb20ocmF3VHgsICdiYXNlNjQnKS50b1N0cmluZygndXRmOCcpKTtcbiAgICAgIHRoaXMuX3ByZXBhcmVkUGFydHkgPSBkZWNvZGVkLnByZXBhcmVkUGFydHk7XG4gICAgICB0aGlzLl90eXBlID0gVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uO1xuICAgICAgdGhpcy5faWQgPSBkZWNvZGVkLnByZXBhcmVkUGFydHkubXVsdGlIYXNoO1xuICAgICAgaWYgKGRlY29kZWQubXVsdGlIYXNoU2lnbmF0dXJlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGRlY29kZWQubXVsdGlIYXNoU2lnbmF0dXJlcy5tYXAoKG11bHRpSGFzaFNpZ25hdHVyZTogTXVsdGlIYXNoU2lnbmF0dXJlKSA9PiB7XG4gICAgICAgICAgdGhpcy5zaWduYXR1cmVzID0gbXVsdGlIYXNoU2lnbmF0dXJlLnNpZ25hdHVyZTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdVbmFibGUgdG8gcGFyc2UgcmF3IHRyYW5zYWN0aW9uIGRhdGEnKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -11,9 +11,30 @@ export declare const InvalidGenerateTopologyResponse: {
11
11
  topologyTransactions: string[];
12
12
  multiHash: string;
13
13
  };
14
+ export declare const PrepareSubmissionResponse: {
15
+ preparedTransaction: string;
16
+ preparedTransactionHash: string;
17
+ hashingSchemeVersion: string;
18
+ hashingDetails: string;
19
+ };
14
20
  export declare const WalletInitRequestData: {
15
- synchronizer: string;
16
21
  partyHint: string;
17
22
  publicKey: string;
18
23
  };
24
+ export declare const OneStepEnablement: {
25
+ partyId: string;
26
+ commandId: string;
27
+ };
28
+ export declare const OneStepPreApprovalPrepareResponse: {
29
+ preparedTransaction: string;
30
+ preparedTransactionHash: string;
31
+ hashingSchemeVersion: string;
32
+ hashingDetails: null;
33
+ };
34
+ export declare const InvalidOneStepPreApprovalPrepareResponse: {
35
+ preparedTransaction: string;
36
+ preparedTransactionHash: string;
37
+ hashingSchemeVersion: string;
38
+ hashingDetails: null;
39
+ };
19
40
  //# sourceMappingURL=resources.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../test/resources.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0BAA0B,qz+CAC6w+C,CAAC;AAErz+C,eAAO,MAAM,wBAAwB;;;;;CASpC,CAAC;AAEF,eAAO,MAAM,+BAA+B;;;;;CAU3C,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;CAIjC,CAAC"}
1
+ {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../test/resources.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0BAA0B,qz+CAC6w+C,CAAC;AAErz+C,eAAO,MAAM,wBAAwB;;;;;CASpC,CAAC;AAEF,eAAO,MAAM,+BAA+B;;;;;CAU3C,CAAC;AAEF,eAAO,MAAM,yBAAyB;;;;;CAOrC,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;CAGjC,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;CAG7B,CAAC;AAEF,eAAO,MAAM,iCAAiC;;;;;CAM7C,CAAC;AAEF,eAAO,MAAM,wCAAwC;;;;;CAOpD,CAAC"}