@bitgo-beta/sdk-coin-sui 3.0.3-beta.98 → 3.0.3-beta.980

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 (136) hide show
  1. package/CHANGELOG.md +817 -0
  2. package/dist/src/index.d.ts +1 -0
  3. package/dist/src/index.d.ts.map +1 -1
  4. package/dist/src/index.js +7 -2
  5. package/dist/src/lib/compareTransactionBlocks.js +2 -3
  6. package/dist/src/lib/constants.d.ts +9 -2
  7. package/dist/src/lib/constants.d.ts.map +1 -1
  8. package/dist/src/lib/constants.js +18 -2
  9. package/dist/src/lib/customTransaction.d.ts +57 -0
  10. package/dist/src/lib/customTransaction.d.ts.map +1 -0
  11. package/dist/src/lib/customTransaction.js +159 -0
  12. package/dist/src/lib/customTransactionBuilder.d.ts +46 -0
  13. package/dist/src/lib/customTransactionBuilder.d.ts.map +1 -0
  14. package/dist/src/lib/customTransactionBuilder.js +117 -0
  15. package/dist/src/lib/iface.d.ts +76 -10
  16. package/dist/src/lib/iface.d.ts.map +1 -1
  17. package/dist/src/lib/iface.js +40 -5
  18. package/dist/src/lib/index.d.ts +8 -0
  19. package/dist/src/lib/index.d.ts.map +1 -1
  20. package/dist/src/lib/index.js +40 -10
  21. package/dist/src/lib/keyPair.js +24 -10
  22. package/dist/src/lib/mystenlab/builder/Inputs.d.ts +9 -9
  23. package/dist/src/lib/mystenlab/builder/Inputs.d.ts.map +1 -1
  24. package/dist/src/lib/mystenlab/builder/Inputs.js +18 -19
  25. package/dist/src/lib/mystenlab/builder/TransactionBlock.d.ts +40 -354
  26. package/dist/src/lib/mystenlab/builder/TransactionBlock.d.ts.map +1 -1
  27. package/dist/src/lib/mystenlab/builder/TransactionBlock.js +22 -25
  28. package/dist/src/lib/mystenlab/builder/TransactionDataBlock.d.ts +74 -74
  29. package/dist/src/lib/mystenlab/builder/TransactionDataBlock.d.ts.map +1 -1
  30. package/dist/src/lib/mystenlab/builder/TransactionDataBlock.js +41 -44
  31. package/dist/src/lib/mystenlab/builder/Transactions.d.ts +133 -188
  32. package/dist/src/lib/mystenlab/builder/Transactions.d.ts.map +1 -1
  33. package/dist/src/lib/mystenlab/builder/Transactions.js +52 -53
  34. package/dist/src/lib/mystenlab/builder/bcs.d.ts +1 -1
  35. package/dist/src/lib/mystenlab/builder/bcs.d.ts.map +1 -1
  36. package/dist/src/lib/mystenlab/builder/bcs.js +2 -2
  37. package/dist/src/lib/mystenlab/builder/index.js +6 -2
  38. package/dist/src/lib/mystenlab/builder/serializer.js +6 -8
  39. package/dist/src/lib/mystenlab/builder/utils.d.ts +1 -1
  40. package/dist/src/lib/mystenlab/builder/utils.d.ts.map +1 -1
  41. package/dist/src/lib/mystenlab/builder/utils.js +4 -4
  42. package/dist/src/lib/mystenlab/cryptography/hash.js +3 -4
  43. package/dist/src/lib/mystenlab/framework/framework.d.ts +6 -6
  44. package/dist/src/lib/mystenlab/framework/framework.d.ts.map +1 -1
  45. package/dist/src/lib/mystenlab/framework/framework.js +22 -25
  46. package/dist/src/lib/mystenlab/framework/index.js +6 -2
  47. package/dist/src/lib/mystenlab/framework/sui-system-state.js +2 -2
  48. package/dist/src/lib/mystenlab/txn-data-serializers/type-tag-serializer.js +2 -2
  49. package/dist/src/lib/mystenlab/types/coin.d.ts +10 -10
  50. package/dist/src/lib/mystenlab/types/coin.d.ts.map +1 -1
  51. package/dist/src/lib/mystenlab/types/coin.js +19 -19
  52. package/dist/src/lib/mystenlab/types/common.d.ts +8 -8
  53. package/dist/src/lib/mystenlab/types/common.d.ts.map +1 -1
  54. package/dist/src/lib/mystenlab/types/common.js +22 -22
  55. package/dist/src/lib/mystenlab/types/events.d.ts +14 -14
  56. package/dist/src/lib/mystenlab/types/events.d.ts.map +1 -1
  57. package/dist/src/lib/mystenlab/types/events.js +17 -17
  58. package/dist/src/lib/mystenlab/types/index.js +6 -2
  59. package/dist/src/lib/mystenlab/types/normalized.d.ts +21 -21
  60. package/dist/src/lib/mystenlab/types/normalized.d.ts.map +1 -1
  61. package/dist/src/lib/mystenlab/types/normalized.js +41 -41
  62. package/dist/src/lib/mystenlab/types/objects.d.ts +51 -51
  63. package/dist/src/lib/mystenlab/types/objects.d.ts.map +1 -1
  64. package/dist/src/lib/mystenlab/types/objects.js +96 -106
  65. package/dist/src/lib/mystenlab/types/option.d.ts +1 -1
  66. package/dist/src/lib/mystenlab/types/option.d.ts.map +1 -1
  67. package/dist/src/lib/mystenlab/types/option.js +2 -3
  68. package/dist/src/lib/mystenlab/types/sui-bcs.d.ts +8 -8
  69. package/dist/src/lib/mystenlab/types/sui-bcs.d.ts.map +1 -1
  70. package/dist/src/lib/mystenlab/types/sui-bcs.js +5 -5
  71. package/dist/src/lib/mystenlab/types/transactions.d.ts +625 -625
  72. package/dist/src/lib/mystenlab/types/transactions.d.ts.map +1 -1
  73. package/dist/src/lib/mystenlab/types/transactions.js +178 -194
  74. package/dist/src/lib/mystenlab/types/validator.d.ts +9 -9
  75. package/dist/src/lib/mystenlab/types/validator.d.ts.map +1 -1
  76. package/dist/src/lib/mystenlab/types/validator.js +124 -124
  77. package/dist/src/lib/resources/walrusConfig.d.ts +22 -0
  78. package/dist/src/lib/resources/walrusConfig.d.ts.map +1 -0
  79. package/dist/src/lib/resources/walrusConfig.js +37 -0
  80. package/dist/src/lib/rpcClient.d.ts +5 -0
  81. package/dist/src/lib/rpcClient.d.ts.map +1 -0
  82. package/dist/src/lib/rpcClient.js +74 -0
  83. package/dist/src/lib/stakingBuilder.d.ts.map +1 -1
  84. package/dist/src/lib/stakingBuilder.js +23 -7
  85. package/dist/src/lib/stakingTransaction.d.ts +1 -1
  86. package/dist/src/lib/stakingTransaction.d.ts.map +1 -1
  87. package/dist/src/lib/stakingTransaction.js +26 -15
  88. package/dist/src/lib/tokenTransferBuilder.d.ts +38 -0
  89. package/dist/src/lib/tokenTransferBuilder.d.ts.map +1 -0
  90. package/dist/src/lib/tokenTransferBuilder.js +132 -0
  91. package/dist/src/lib/tokenTransferTransaction.d.ts +57 -0
  92. package/dist/src/lib/tokenTransferTransaction.d.ts.map +1 -0
  93. package/dist/src/lib/tokenTransferTransaction.js +250 -0
  94. package/dist/src/lib/transaction.d.ts +12 -4
  95. package/dist/src/lib/transaction.d.ts.map +1 -1
  96. package/dist/src/lib/transaction.js +91 -18
  97. package/dist/src/lib/transactionBuilder.d.ts +2 -3
  98. package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
  99. package/dist/src/lib/transactionBuilder.js +4 -4
  100. package/dist/src/lib/transactionBuilderFactory.d.ts +14 -2
  101. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  102. package/dist/src/lib/transactionBuilderFactory.js +42 -1
  103. package/dist/src/lib/transferBuilder.d.ts.map +1 -1
  104. package/dist/src/lib/transferBuilder.js +21 -5
  105. package/dist/src/lib/transferTransaction.d.ts +1 -1
  106. package/dist/src/lib/transferTransaction.d.ts.map +1 -1
  107. package/dist/src/lib/transferTransaction.js +31 -8
  108. package/dist/src/lib/unstakingBuilder.js +6 -6
  109. package/dist/src/lib/unstakingTransaction.d.ts +1 -1
  110. package/dist/src/lib/unstakingTransaction.d.ts.map +1 -1
  111. package/dist/src/lib/unstakingTransaction.js +31 -17
  112. package/dist/src/lib/utils.d.ts +16 -4
  113. package/dist/src/lib/utils.d.ts.map +1 -1
  114. package/dist/src/lib/utils.js +269 -29
  115. package/dist/src/lib/walrusStakingBuilder.d.ts +66 -0
  116. package/dist/src/lib/walrusStakingBuilder.d.ts.map +1 -0
  117. package/dist/src/lib/walrusStakingBuilder.js +200 -0
  118. package/dist/src/lib/walrusStakingTransaction.d.ts +52 -0
  119. package/dist/src/lib/walrusStakingTransaction.d.ts.map +1 -0
  120. package/dist/src/lib/walrusStakingTransaction.js +269 -0
  121. package/dist/src/lib/walrusWithdrawStakeBuilder.d.ts +36 -0
  122. package/dist/src/lib/walrusWithdrawStakeBuilder.d.ts.map +1 -0
  123. package/dist/src/lib/walrusWithdrawStakeBuilder.js +173 -0
  124. package/dist/src/lib/walrusWithdrawStakeTransaction.d.ts +21 -0
  125. package/dist/src/lib/walrusWithdrawStakeTransaction.d.ts.map +1 -0
  126. package/dist/src/lib/walrusWithdrawStakeTransaction.js +190 -0
  127. package/dist/src/register.d.ts.map +1 -1
  128. package/dist/src/register.js +5 -1
  129. package/dist/src/sui.d.ts +46 -8
  130. package/dist/src/sui.d.ts.map +1 -1
  131. package/dist/src/sui.js +479 -32
  132. package/dist/src/suiToken.d.ts +22 -0
  133. package/dist/src/suiToken.d.ts.map +1 -0
  134. package/dist/src/suiToken.js +61 -0
  135. package/dist/src/tsui.js +1 -1
  136. package/package.json +10 -8
@@ -64,10 +64,10 @@ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
64
64
  }
65
65
  }
66
66
  validateRecipients(recipients) {
67
- assert_1.default(recipients && recipients.length > 0, new sdk_core_1.BuildTransactionError('at least one recipient is required before building'));
67
+ (0, assert_1.default)(recipients && recipients.length > 0, new sdk_core_1.BuildTransactionError('at least one recipient is required before building'));
68
68
  recipients.forEach((recipient) => {
69
69
  utils_1.default.validateAddress(recipient.address, 'address');
70
- assert_1.default(utils_1.default.isValidAmount(recipient.amount), 'Invalid recipient amount');
70
+ (0, assert_1.default)(utils_1.default.isValidAmount(recipient.amount), 'Invalid recipient amount');
71
71
  });
72
72
  }
73
73
  validateGasData(gasData) {
@@ -90,7 +90,7 @@ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
90
90
  }
91
91
  }
92
92
  validateGasPayment(payments) {
93
- assert_1.default(payments && payments.length > 0, new sdk_core_1.BuildTransactionError('gas payment is required before building'));
93
+ (0, assert_1.default)(payments && payments.length > 0, new sdk_core_1.BuildTransactionError('gas payment is required before building'));
94
94
  payments.forEach((payment) => {
95
95
  this.validateSuiObjectRef(payment, 'payment');
96
96
  });
@@ -132,4 +132,4 @@ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
132
132
  }
133
133
  }
134
134
  exports.TransactionBuilder = TransactionBuilder;
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsbURBVThCO0FBQzlCLG9EQUE0QjtBQUU1QixvREFBNEI7QUFJNUIsMkNBQWtEO0FBQ2xELHVDQUFvQztBQUdwQyxNQUFzQixrQkFFcEIsU0FBUSxpQ0FBc0I7SUFTOUIsWUFBc0IsV0FBaUM7UUFDckQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBUlgsZ0JBQVcsR0FBZ0IsRUFBRSxDQUFDO0lBU3hDLENBQUM7SUFRRCxrQkFBa0I7SUFDbEIsSUFBYyxXQUFXO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLElBQWMsV0FBVyxDQUFDLFdBQTJCO1FBQ25ELElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxrQkFBa0I7SUFDUixrQkFBa0IsQ0FBQyxHQUFZO1FBQ3ZDLE1BQU0sTUFBTSxHQUFHLElBQUksaUJBQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixZQUFZLENBQUMsU0FBd0IsRUFBRSxTQUFpQjtRQUN0RCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FB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QUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdkIsTUFBTSxJQUFJLGdDQUFxQixDQUFDLGdDQUFnQyxDQUFDLENBQUM7U0FDbkU7SUFDSCxDQUFDO0NBRUY7QUFuS0QsZ0RBbUtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmFzZUFkZHJlc3MsXG4gIEJhc2VLZXksXG4gIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXIsXG4gIEJ1aWxkVHJhbnNhY3Rpb25FcnJvcixcbiAgUGFyc2VUcmFuc2FjdGlvbkVycm9yLFxuICBQdWJsaWNLZXkgYXMgQmFzZVB1YmxpY0tleSxcbiAgUmVjaXBpZW50LFxuICBTaWduYXR1cmUsXG4gIFRyYW5zYWN0aW9uVHlwZSxcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IFN0YWtpbmdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbiwgU3VpVHJhbnNhY3Rpb25UeXBlLCBUcmFuc2ZlclByb2dyYW1tYWJsZVRyYW5zYWN0aW9uIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBEVU1NWV9TVUlfR0FTX1BSSUNFIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgS2V5UGFpciB9IGZyb20gJy4va2V5UGFpcic7XG5pbXBvcnQgeyBHYXNEYXRhLCBTdWlPYmplY3RSZWYgfSBmcm9tICcuL215c3RlbmxhYi90eXBlcyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXI8XG4gIFQgPSBUcmFuc2ZlclByb2dyYW1tYWJsZVRyYW5zYWN0aW9uIHwgU3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uXG4+IGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBfdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uPFQ+O1xuICBwcm90ZWN0ZWQgX3NpZ25hdHVyZXM6IFNpZ25hdHVyZVtdID0gW107XG4gIHByb3RlY3RlZCBfc2lnbmVyOiBLZXlQYWlyO1xuXG4gIHByb3RlY3RlZCBfdHlwZTogU3VpVHJhbnNhY3Rpb25UeXBlO1xuICBwcm90ZWN0ZWQgX3NlbmRlcjogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX2dhc0RhdGE6IEdhc0RhdGE7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8vIGdldCBhbmQgc2V0IHJlZ2lvblxuICAvKipcbiAgICogVGhlIHRyYW5zYWN0aW9uIHR5cGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGU7XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb24oKTogVHJhbnNhY3Rpb248VD4ge1xuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgc2V0IHRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbjxUPikge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIHNpZ25JbXBsZW1lbnRhdGlvbihrZXk6IEJhc2VLZXkpOiBUcmFuc2FjdGlvbjxUPiB7XG4gICAgY29uc3Qgc2lnbmVyID0gbmV3IEtleVBhaXIoeyBwcnY6IGtleS5rZXkgfSk7XG4gICAgdGhpcy5fc2lnbmVyID0gc2lnbmVyO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2lnbihzaWduZXIpO1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIGFkZFNpZ25hdHVyZShwdWJsaWNLZXk6IEJhc2VQdWJsaWNLZXksIHNpZ25hdHVyZTogQnVmZmVyKTogdm9pZCB7XG4gICAgdGhpcy5fc2lnbmF0dXJlcy5wdXNoKHsgcHVibGljS2V5LCBzaWduYXR1cmUgfSk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5hZGRTaWduYXR1cmUocHVibGljS2V5LCBzaWduYXR1cmUpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2V0U2VyaWFsaXplZFNpZyhwdWJsaWNLZXksIHNpZ25hdHVyZSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgc2VuZGVyIG9mIHRoaXMgdHJhbnNhY3Rpb24uXG4gICAqIFRoaXMgYWNjb3VudCB3aWxsIGJlIHJlc3BvbnNpYmxlIGZvciBwYXlpbmcgdHJhbnNhY3Rpb24gZmVlcy5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlbmRlckFkZHJlc3MgdGhlIGFjY291bnQgdGhhdCBpcyBzZW5kaW5nIHRoaXMgdHJhbnNhY3Rpb25cbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBzZW5kZXIoc2VuZGVyQWRkcmVzczogc3RyaW5nKTogdGhpcyB7XG4gICAgdXRpbHMudmFsaWRhdGVBZGRyZXNzKHNlbmRlckFkZHJlc3MsICdzZW5kZXInKTtcbiAgICB0aGlzLl9zZW5kZXIgPSBzZW5kZXJBZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgdHlwZSh0eXBlOiBTdWlUcmFuc2FjdGlvblR5cGUpOiB0aGlzIHtcbiAgICB0aGlzLl90eXBlID0gdHlwZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGdhc0RhdGEoZ2FzRGF0YTogR2FzRGF0YSk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVHYXNEYXRhKGdhc0RhdGEpO1xuICAgIHRoaXMuX2dhc0RhdGEgPSBnYXNEYXRhO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgdGhlIHRyYW5zYWN0aW9uIGJ1aWxkZXIgZmllbGRzIHVzaW5nIHRoZSBkZWNvZGVkIHRyYW5zYWN0aW9uIGRhdGFcbiAgICpcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbn0gdHggdGhlIHRyYW5zYWN0aW9uIGRhdGFcbiAgICovXG4gIGFic3RyYWN0IGluaXRCdWlsZGVyKHR4OiBUcmFuc2FjdGlvbjxUPik6IHZvaWQ7XG5cbiAgLy8gcmVnaW9uIFZhbGlkYXRvcnNcbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlQWRkcmVzcyhhZGRyZXNzOiBCYXNlQWRkcmVzcywgYWRkcmVzc0Zvcm1hdD86IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdXRpbHMuaXNWYWxpZEFkZHJlc3MoYWRkcmVzcy5hZGRyZXNzKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBhZGRyZXNzICcgKyBhZGRyZXNzLmFkZHJlc3MpO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlUmVjaXBpZW50cyhyZWNpcGllbnRzOiBSZWNpcGllbnRbXSk6IHZvaWQge1xuICAgIGFzc2VydChcbiAgICAgIHJlY2lwaWVudHMgJiYgcmVjaXBpZW50cy5sZW5ndGggPiAwLFxuICAgICAgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignYXQgbGVhc3Qgb25lIHJlY2lwaWVudCBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKVxuICAgICk7XG4gICAgcmVjaXBpZW50cy5mb3JFYWNoKChyZWNpcGllbnQpID0+IHtcbiAgICAgIHV0aWxzLnZhbGlkYXRlQWRkcmVzcyhyZWNpcGllbnQuYWRkcmVzcywgJ2FkZHJlc3MnKTtcbiAgICAgIGFzc2VydCh1dGlscy5pc1ZhbGlkQW1vdW50KHJlY2lwaWVudC5hbW91bnQpLCAnSW52YWxpZCByZWNpcGllbnQgYW1vdW50Jyk7XG4gICAgfSk7XG4gIH1cblxuICB2YWxpZGF0ZUdhc0RhdGEoZ2FzRGF0YTogR2FzRGF0YSk6IHZvaWQge1xuICAgIGlmICghdXRpbHMuaXNWYWxpZEFkZHJlc3MoZ2FzRGF0YS5vd25lcikpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgZ2FzIGFkZHJlc3MgJyArIGdhc0RhdGEub3duZXIpO1xuICAgIH1cbiAgICB0aGlzLnZhbGlkYXRlR2FzUGF5bWVudChnYXNEYXRhLnBheW1lbnQpO1xuICAgIHRoaXMudmFsaWRhdGVHYXNCdWRnZXQoZ2FzRGF0YS5idWRnZXQpO1xuICAgIHRoaXMudmFsaWRhdGVHYXNQcmljZShnYXNEYXRhLnByaWNlKTtcbiAgfVxuXG4gIHZhbGlkYXRlR2FzQnVkZ2V0KGdhc0J1ZGdldDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKGdhc0J1ZGdldCA8PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIGdhcyBidWRnZXQgJyArIGdhc0J1ZGdldCk7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGVHYXNQcmljZShnYXNQcmljZTogbnVtYmVyKTogdm9pZCB7XG4gICAgLy8gVE9ETzogY2hlY2sgd2l0aCBTdWkgb24gdGhlIGdhcyBwcmljZVxuICAgIGlmIChnYXNQcmljZSAhPT0gRFVNTVlfU1VJX0dBU19QUklDRSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBnYXMgcHJpY2UgJyArIGdhc1ByaWNlKTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZUdhc1BheW1lbnQocGF5bWVudHM6IFN1aU9iamVjdFJlZltdKTogdm9pZCB7XG4gICAgYXNzZXJ0KHBheW1lbnRzICYmIHBheW1lbnRzLmxlbmd0aCA+IDAsIG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ2dhcyBwYXltZW50IGlzIHJlcXVpcmVkIGJlZm9yZSBidWlsZGluZycpKTtcbiAgICBwYXltZW50cy5mb3JFYWNoKChwYXltZW50KSA9PiB7XG4gICAgICB0aGlzLnZhbGlkYXRlU3VpT2JqZWN0UmVmKHBheW1lbnQsICdwYXltZW50Jyk7XG4gICAgfSk7XG4gIH1cblxuICB2YWxpZGF0ZVN1aU9iamVjdFJlZihzdWlPYmplY3RSZWY6IFN1aU9iamVjdFJlZiwgZmllbGQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghc3VpT2JqZWN0UmVmLmhhc093blByb3BlcnR5KCdvYmplY3RJZCcpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkICR7ZmllbGR9LCBtaXNzaW5nIG9iamVjdElkYCk7XG4gICAgfVxuICAgIGlmICghc3VpT2JqZWN0UmVmLmhhc093blByb3BlcnR5KCd2ZXJzaW9uJykgfHwgIXV0aWxzLmlzVmFsaWRBbW91bnQoc3VpT2JqZWN0UmVmLnZlcnNpb24pKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkICR7ZmllbGR9LCBpbnZhbGlkIG9yIG1pc3NpbmcgdmVyc2lvbmApO1xuICAgIH1cbiAgICBpZiAoIXN1aU9iamVjdFJlZi5oYXNPd25Qcm9wZXJ0eSgnZGlnZXN0JykpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgJHtmaWVsZH0sIG1pc3NpbmcgZGlnZXN0YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlS2V5KGtleTogQmFzZUtleSk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBuZXcgS2V5UGFpcih7IHBydjoga2V5LmtleSB9KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYEtleSB2YWxpZGF0aW9uIGZhaWxlZGApO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXJhd1RyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHJhdyB0cmFuc2FjdGlvbjogVW5kZWZpbmVkJyk7XG4gICAgfVxuICAgIGlmICghdXRpbHMuaXNWYWxpZFJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCByYXcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVWYWx1ZSh2YWx1ZTogQmlnTnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlLmlzTGVzc1RoYW4oMCkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ1ZhbHVlIGNhbm5vdCBiZSBsZXNzIHRoYW4gemVybycpO1xuICAgIH1cbiAgfVxuICAvLyBlbmRyZWdpb25cbn1cbiJdfQ==
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsbURBVThCO0FBQzlCLG9EQUE0QjtBQUU1QixvREFBNEI7QUFJNUIsMkNBQWtEO0FBQ2xELHVDQUFvQztBQUdwQyxNQUFzQixrQkFBbUQsU0FBUSxpQ0FBc0I7SUFTckcsWUFBc0IsV0FBaUM7UUFDckQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBUlgsZ0JBQVcsR0FBZ0IsRUFBRSxDQUFDO0lBU3hDLENBQUM7SUFRRCxrQkFBa0I7SUFDbEIsSUFBYyxXQUFXO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLElBQWMsV0FBVyxDQUFDLFdBQTJCO1FBQ25ELElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxrQkFBa0I7SUFDUixrQkFBa0IsQ0FBQyxHQUFZO1FBQ3ZDLE1BQU0sTUFBTSxHQUFHLElBQUksaUJBQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixZQUFZLENBQUMsU0FBd0IsRUFBRSxTQUFpQjtRQUN0RCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FB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QWMsQ0FBQyxFQUFFLENBQUM7WUFDakQsTUFBTSxJQUFJLGdDQUFxQixDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDN0QsQ0FBQztJQUNILENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsYUFBYSxDQUFDLEtBQWdCO1FBQzVCLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQ3BFLENBQUM7SUFDSCxDQUFDO0NBRUY7QUFqS0QsZ0RBaUtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmFzZUFkZHJlc3MsXG4gIEJhc2VLZXksXG4gIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXIsXG4gIEJ1aWxkVHJhbnNhY3Rpb25FcnJvcixcbiAgUGFyc2VUcmFuc2FjdGlvbkVycm9yLFxuICBQdWJsaWNLZXkgYXMgQmFzZVB1YmxpY0tleSxcbiAgUmVjaXBpZW50LFxuICBTaWduYXR1cmUsXG4gIFRyYW5zYWN0aW9uVHlwZSxcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IFN1aVByb2dyYW1tYWJsZVRyYW5zYWN0aW9uLCBTdWlUcmFuc2FjdGlvblR5cGUgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IERVTU1ZX1NVSV9HQVNfUFJJQ0UgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi9rZXlQYWlyJztcbmltcG9ydCB7IEdhc0RhdGEsIFN1aU9iamVjdFJlZiB9IGZyb20gJy4vbXlzdGVubGFiL3R5cGVzJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRyYW5zYWN0aW9uQnVpbGRlcjxUID0gU3VpUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+IGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBfdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uPFQ+O1xuICBwcm90ZWN0ZWQgX3NpZ25hdHVyZXM6IFNpZ25hdHVyZVtdID0gW107XG4gIHByb3RlY3RlZCBfc2lnbmVyOiBLZXlQYWlyO1xuXG4gIHByb3RlY3RlZCBfdHlwZTogU3VpVHJhbnNhY3Rpb25UeXBlO1xuICBwcm90ZWN0ZWQgX3NlbmRlcjogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX2dhc0RhdGE6IEdhc0RhdGE7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8vIGdldCBhbmQgc2V0IHJlZ2lvblxuICAvKipcbiAgICogVGhlIHRyYW5zYWN0aW9uIHR5cGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGU7XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb24oKTogVHJhbnNhY3Rpb248VD4ge1xuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgc2V0IHRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbjxUPikge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIHNpZ25JbXBsZW1lbnRhdGlvbihrZXk6IEJhc2VLZXkpOiBUcmFuc2FjdGlvbjxUPiB7XG4gICAgY29uc3Qgc2lnbmVyID0gbmV3IEtleVBhaXIoeyBwcnY6IGtleS5rZXkgfSk7XG4gICAgdGhpcy5fc2lnbmVyID0gc2lnbmVyO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2lnbihzaWduZXIpO1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIGFkZFNpZ25hdHVyZShwdWJsaWNLZXk6IEJhc2VQdWJsaWNLZXksIHNpZ25hdHVyZTogQnVmZmVyKTogdm9pZCB7XG4gICAgdGhpcy5fc2lnbmF0dXJlcy5wdXNoKHsgcHVibGljS2V5LCBzaWduYXR1cmUgfSk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5hZGRTaWduYXR1cmUocHVibGljS2V5LCBzaWduYXR1cmUpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2V0U2VyaWFsaXplZFNpZyhwdWJsaWNLZXksIHNpZ25hdHVyZSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgc2VuZGVyIG9mIHRoaXMgdHJhbnNhY3Rpb24uXG4gICAqIFRoaXMgYWNjb3VudCB3aWxsIGJlIHJlc3BvbnNpYmxlIGZvciBwYXlpbmcgdHJhbnNhY3Rpb24gZmVlcy5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlbmRlckFkZHJlc3MgdGhlIGFjY291bnQgdGhhdCBpcyBzZW5kaW5nIHRoaXMgdHJhbnNhY3Rpb25cbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBzZW5kZXIoc2VuZGVyQWRkcmVzczogc3RyaW5nKTogdGhpcyB7XG4gICAgdXRpbHMudmFsaWRhdGVBZGRyZXNzKHNlbmRlckFkZHJlc3MsICdzZW5kZXInKTtcbiAgICB0aGlzLl9zZW5kZXIgPSBzZW5kZXJBZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgdHlwZSh0eXBlOiBTdWlUcmFuc2FjdGlvblR5cGUpOiB0aGlzIHtcbiAgICB0aGlzLl90eXBlID0gdHlwZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGdhc0RhdGEoZ2FzRGF0YTogR2FzRGF0YSk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVHYXNEYXRhKGdhc0RhdGEpO1xuICAgIHRoaXMuX2dhc0RhdGEgPSBnYXNEYXRhO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgdGhlIHRyYW5zYWN0aW9uIGJ1aWxkZXIgZmllbGRzIHVzaW5nIHRoZSBkZWNvZGVkIHRyYW5zYWN0aW9uIGRhdGFcbiAgICpcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbn0gdHggdGhlIHRyYW5zYWN0aW9uIGRhdGFcbiAgICovXG4gIGFic3RyYWN0IGluaXRCdWlsZGVyKHR4OiBUcmFuc2FjdGlvbjxUPik6IHZvaWQ7XG5cbiAgLy8gcmVnaW9uIFZhbGlkYXRvcnNcbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlQWRkcmVzcyhhZGRyZXNzOiBCYXNlQWRkcmVzcywgYWRkcmVzc0Zvcm1hdD86IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdXRpbHMuaXNWYWxpZEFkZHJlc3MoYWRkcmVzcy5hZGRyZXNzKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBhZGRyZXNzICcgKyBhZGRyZXNzLmFkZHJlc3MpO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlUmVjaXBpZW50cyhyZWNpcGllbnRzOiBSZWNpcGllbnRbXSk6IHZvaWQge1xuICAgIGFzc2VydChcbiAgICAgIHJlY2lwaWVudHMgJiYgcmVjaXBpZW50cy5sZW5ndGggPiAwLFxuICAgICAgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignYXQgbGVhc3Qgb25lIHJlY2lwaWVudCBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKVxuICAgICk7XG4gICAgcmVjaXBpZW50cy5mb3JFYWNoKChyZWNpcGllbnQpID0+IHtcbiAgICAgIHV0aWxzLnZhbGlkYXRlQWRkcmVzcyhyZWNpcGllbnQuYWRkcmVzcywgJ2FkZHJlc3MnKTtcbiAgICAgIGFzc2VydCh1dGlscy5pc1ZhbGlkQW1vdW50KHJlY2lwaWVudC5hbW91bnQpLCAnSW52YWxpZCByZWNpcGllbnQgYW1vdW50Jyk7XG4gICAgfSk7XG4gIH1cblxuICB2YWxpZGF0ZUdhc0RhdGEoZ2FzRGF0YTogR2FzRGF0YSk6IHZvaWQge1xuICAgIGlmICghdXRpbHMuaXNWYWxpZEFkZHJlc3MoZ2FzRGF0YS5vd25lcikpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgZ2FzIGFkZHJlc3MgJyArIGdhc0RhdGEub3duZXIpO1xuICAgIH1cbiAgICB0aGlzLnZhbGlkYXRlR2FzUGF5bWVudChnYXNEYXRhLnBheW1lbnQpO1xuICAgIHRoaXMudmFsaWRhdGVHYXNCdWRnZXQoZ2FzRGF0YS5idWRnZXQpO1xuICAgIHRoaXMudmFsaWRhdGVHYXNQcmljZShnYXNEYXRhLnByaWNlKTtcbiAgfVxuXG4gIHZhbGlkYXRlR2FzQnVkZ2V0KGdhc0J1ZGdldDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKGdhc0J1ZGdldCA8PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIGdhcyBidWRnZXQgJyArIGdhc0J1ZGdldCk7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGVHYXNQcmljZShnYXNQcmljZTogbnVtYmVyKTogdm9pZCB7XG4gICAgLy8gVE9ETzogY2hlY2sgd2l0aCBTdWkgb24gdGhlIGdhcyBwcmljZVxuICAgIGlmIChnYXNQcmljZSAhPT0gRFVNTVlfU1VJX0dBU19QUklDRSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBnYXMgcHJpY2UgJyArIGdhc1ByaWNlKTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZUdhc1BheW1lbnQocGF5bWVudHM6IFN1aU9iamVjdFJlZltdKTogdm9pZCB7XG4gICAgYXNzZXJ0KHBheW1lbnRzICYmIHBheW1lbnRzLmxlbmd0aCA+IDAsIG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ2dhcyBwYXltZW50IGlzIHJlcXVpcmVkIGJlZm9yZSBidWlsZGluZycpKTtcbiAgICBwYXltZW50cy5mb3JFYWNoKChwYXltZW50KSA9PiB7XG4gICAgICB0aGlzLnZhbGlkYXRlU3VpT2JqZWN0UmVmKHBheW1lbnQsICdwYXltZW50Jyk7XG4gICAgfSk7XG4gIH1cblxuICB2YWxpZGF0ZVN1aU9iamVjdFJlZihzdWlPYmplY3RSZWY6IFN1aU9iamVjdFJlZiwgZmllbGQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghc3VpT2JqZWN0UmVmLmhhc093blByb3BlcnR5KCdvYmplY3RJZCcpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkICR7ZmllbGR9LCBtaXNzaW5nIG9iamVjdElkYCk7XG4gICAgfVxuICAgIGlmICghc3VpT2JqZWN0UmVmLmhhc093blByb3BlcnR5KCd2ZXJzaW9uJykgfHwgIXV0aWxzLmlzVmFsaWRBbW91bnQoc3VpT2JqZWN0UmVmLnZlcnNpb24pKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkICR7ZmllbGR9LCBpbnZhbGlkIG9yIG1pc3NpbmcgdmVyc2lvbmApO1xuICAgIH1cbiAgICBpZiAoIXN1aU9iamVjdFJlZi5oYXNPd25Qcm9wZXJ0eSgnZGlnZXN0JykpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgJHtmaWVsZH0sIG1pc3NpbmcgZGlnZXN0YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlS2V5KGtleTogQmFzZUtleSk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBuZXcgS2V5UGFpcih7IHBydjoga2V5LmtleSB9KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYEtleSB2YWxpZGF0aW9uIGZhaWxlZGApO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXJhd1RyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHJhdyB0cmFuc2FjdGlvbjogVW5kZWZpbmVkJyk7XG4gICAgfVxuICAgIGlmICghdXRpbHMuaXNWYWxpZFJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCByYXcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVWYWx1ZSh2YWx1ZTogQmlnTnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlLmlzTGVzc1RoYW4oMCkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ1ZhbHVlIGNhbm5vdCBiZSBsZXNzIHRoYW4gemVybycpO1xuICAgIH1cbiAgfVxuICAvLyBlbmRyZWdpb25cbn1cbiJdfQ==
@@ -3,13 +3,17 @@ import { TransferBuilder } from './transferBuilder';
3
3
  import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
4
4
  import { Transaction } from './transaction';
5
5
  import { StakingBuilder } from './stakingBuilder';
6
- import { StakingProgrammableTransaction, TransferProgrammableTransaction, UnstakingProgrammableTransaction } from './iface';
6
+ import { CustomProgrammableTransaction, StakingProgrammableTransaction, TransferProgrammableTransaction, UnstakingProgrammableTransaction, SuiProgrammableTransaction, TokenTransferProgrammableTransaction, WalrusStakingProgrammableTransaction, WalrusWithdrawStakeProgrammableTransaction } from './iface';
7
7
  import { TransactionBuilder } from './transactionBuilder';
8
8
  import { UnstakingBuilder } from './unstakingBuilder';
9
+ import { CustomTransactionBuilder } from './customTransactionBuilder';
10
+ import { TokenTransferBuilder } from './tokenTransferBuilder';
11
+ import { WalrusStakingBuilder } from './walrusStakingBuilder';
12
+ import { WalrusWithdrawStakeBuilder } from './walrusWithdrawStakeBuilder';
9
13
  export declare class TransactionBuilderFactory extends BaseTransactionBuilderFactory {
10
14
  constructor(_coinConfig: Readonly<CoinConfig>);
11
15
  /** @inheritdoc */
12
- from(raw: string): TransactionBuilder<TransferProgrammableTransaction | StakingProgrammableTransaction>;
16
+ from(raw: string): TransactionBuilder<SuiProgrammableTransaction>;
13
17
  /** @inheritdoc */
14
18
  getTransferBuilder(tx?: Transaction<TransferProgrammableTransaction>): TransferBuilder;
15
19
  /** @inheritdoc */
@@ -17,6 +21,14 @@ export declare class TransactionBuilderFactory extends BaseTransactionBuilderFac
17
21
  /** @inheritdoc */
18
22
  getUnstakingBuilder(tx?: Transaction<UnstakingProgrammableTransaction>): UnstakingBuilder;
19
23
  /** @inheritdoc */
24
+ getCustomTransactionBuilder(tx?: Transaction<CustomProgrammableTransaction>): CustomTransactionBuilder;
25
+ /** @inheritdoc */
26
+ getTokenTransferBuilder(tx?: Transaction<TokenTransferProgrammableTransaction>): TokenTransferBuilder;
27
+ /** @inheritdoc */
28
+ getWalrusStakingBuilder(tx?: Transaction<WalrusStakingProgrammableTransaction>): WalrusStakingBuilder;
29
+ /** @inheritdoc */
30
+ getWalrusRequestWithdrawStakeBuilder(tx?: Transaction<WalrusWithdrawStakeProgrammableTransaction>): WalrusWithdrawStakeBuilder;
31
+ /** @inheritdoc */
20
32
  getWalletInitializationBuilder(): void;
21
33
  /**
22
34
  * Initialize the builder with the given transaction
@@ -1 +1 @@
1
- {"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAA2B,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EACL,8BAA8B,EAG9B,+BAA+B,EAC/B,gCAAgC,EACjC,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,qBAAa,yBAA0B,SAAQ,6BAA6B;gBAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAAC,+BAA+B,GAAG,8BAA8B,CAAC;IAyBvG,kBAAkB;IAClB,kBAAkB,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,+BAA+B,CAAC,GAAG,eAAe;IAItF,kBAAkB;IAClB,iBAAiB,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,8BAA8B,CAAC,GAAG,cAAc;IAInF,kBAAkB;IAClB,mBAAmB,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,gCAAgC,CAAC,GAAG,gBAAgB;IAIzF,kBAAkB;IAClB,8BAA8B,IAAI,IAAI;IAItC;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IASzB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;CAKzB"}
1
+ {"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAA2B,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAG9B,+BAA+B,EAC/B,gCAAgC,EAChC,0BAA0B,EAC1B,oCAAoC,EACpC,oCAAoC,EACpC,0CAA0C,EAC3C,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAG1E,qBAAa,yBAA0B,SAAQ,6BAA6B;gBAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAAC,0BAA0B,CAAC;IA0CjE,kBAAkB;IAClB,kBAAkB,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,+BAA+B,CAAC,GAAG,eAAe;IAItF,kBAAkB;IAClB,iBAAiB,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,8BAA8B,CAAC,GAAG,cAAc;IAInF,kBAAkB;IAClB,mBAAmB,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,gCAAgC,CAAC,GAAG,gBAAgB;IAIzF,kBAAkB;IAClB,2BAA2B,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,6BAA6B,CAAC,GAAG,wBAAwB;IAItG,kBAAkB;IAClB,uBAAuB,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,oCAAoC,CAAC,GAAG,oBAAoB;IAIrG,kBAAkB;IAClB,uBAAuB,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,oCAAoC,CAAC,GAAG,oBAAoB;IAIrG,kBAAkB;IAClB,oCAAoC,CAClC,EAAE,CAAC,EAAE,WAAW,CAAC,0CAA0C,CAAC,GAC3D,0BAA0B;IAI7B,kBAAkB;IAClB,8BAA8B,IAAI,IAAI;IAItC;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;CAGzB"}
@@ -14,6 +14,14 @@ const transferTransaction_1 = require("./transferTransaction");
14
14
  const utils_1 = __importDefault(require("./utils"));
15
15
  const unstakingBuilder_1 = require("./unstakingBuilder");
16
16
  const unstakingTransaction_1 = require("./unstakingTransaction");
17
+ const customTransaction_1 = require("./customTransaction");
18
+ const customTransactionBuilder_1 = require("./customTransactionBuilder");
19
+ const tokenTransferBuilder_1 = require("./tokenTransferBuilder");
20
+ const tokenTransferTransaction_1 = require("./tokenTransferTransaction");
21
+ const walrusStakingBuilder_1 = require("./walrusStakingBuilder");
22
+ const walrusStakingTransaction_1 = require("./walrusStakingTransaction");
23
+ const walrusWithdrawStakeBuilder_1 = require("./walrusWithdrawStakeBuilder");
24
+ const walrusWithdrawStakeTransaction_1 = require("./walrusWithdrawStakeTransaction");
17
25
  class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory {
18
26
  constructor(_coinConfig) {
19
27
  super(_coinConfig);
@@ -36,6 +44,23 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
36
44
  const unstakingTransaction = new unstakingTransaction_1.UnstakingTransaction(this._coinConfig);
37
45
  unstakingTransaction.fromRawTransaction(raw);
38
46
  return this.getUnstakingBuilder(unstakingTransaction);
47
+ case iface_1.SuiTransactionType.CustomTx:
48
+ const customTransaction = new customTransaction_1.CustomTransaction(this._coinConfig);
49
+ customTransaction.fromRawTransaction(raw);
50
+ return this.getCustomTransactionBuilder(customTransaction);
51
+ case iface_1.SuiTransactionType.TokenTransfer:
52
+ const tokenTransferTx = new tokenTransferTransaction_1.TokenTransferTransaction(this._coinConfig);
53
+ tokenTransferTx.fromRawTransaction(raw);
54
+ return this.getTokenTransferBuilder(tokenTransferTx);
55
+ case iface_1.SuiTransactionType.WalrusStakeWithPool:
56
+ const walrusStakeTx = new walrusStakingTransaction_1.WalrusStakingTransaction(this._coinConfig);
57
+ walrusStakeTx.fromRawTransaction(raw);
58
+ return this.getWalrusStakingBuilder(walrusStakeTx);
59
+ case iface_1.SuiTransactionType.WalrusRequestWithdrawStake:
60
+ case iface_1.SuiTransactionType.WalrusWithdrawStake:
61
+ const walrusRequestWithdrawStakeTransaction = new walrusWithdrawStakeTransaction_1.WalrusWithdrawStakeTransaction(this._coinConfig);
62
+ walrusRequestWithdrawStakeTransaction.fromRawTransaction(raw);
63
+ return this.getWalrusRequestWithdrawStakeBuilder(walrusRequestWithdrawStakeTransaction);
39
64
  default:
40
65
  throw new sdk_core_1.InvalidTransactionError('Invalid transaction');
41
66
  }
@@ -57,6 +82,22 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
57
82
  return this.initializeBuilder(tx, new unstakingBuilder_1.UnstakingBuilder(this._coinConfig));
58
83
  }
59
84
  /** @inheritdoc */
85
+ getCustomTransactionBuilder(tx) {
86
+ return this.initializeBuilder(tx, new customTransactionBuilder_1.CustomTransactionBuilder(this._coinConfig));
87
+ }
88
+ /** @inheritdoc */
89
+ getTokenTransferBuilder(tx) {
90
+ return this.initializeBuilder(tx, new tokenTransferBuilder_1.TokenTransferBuilder(this._coinConfig));
91
+ }
92
+ /** @inheritdoc */
93
+ getWalrusStakingBuilder(tx) {
94
+ return this.initializeBuilder(tx, new walrusStakingBuilder_1.WalrusStakingBuilder(this._coinConfig));
95
+ }
96
+ /** @inheritdoc */
97
+ getWalrusRequestWithdrawStakeBuilder(tx) {
98
+ return this.initializeBuilder(tx, new walrusWithdrawStakeBuilder_1.WalrusWithdrawStakeBuilder(this._coinConfig));
99
+ }
100
+ /** @inheritdoc */
60
101
  getWalletInitializationBuilder() {
61
102
  throw new Error('Method not implemented.');
62
103
  }
@@ -83,4 +124,4 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
83
124
  }
84
125
  }
85
126
  exports.TransactionBuilderFactory = TransactionBuilderFactory;
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxtREFBOEY7QUFDOUYsdURBQW9EO0FBRXBELCtDQUE0QztBQUM1QyxxREFBa0Q7QUFDbEQsbUNBTWlCO0FBQ2pCLDZEQUEwRDtBQUMxRCwrREFBNEQ7QUFFNUQsb0RBQTRCO0FBQzVCLHlEQUFzRDtBQUN0RCxpRUFBOEQ7QUFFOUQsTUFBYSx5QkFBMEIsU0FBUSx3Q0FBNkI7SUFDMUUsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFJLENBQUMsR0FBVztRQUNkLGVBQUssQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEMsSUFBSTtZQUNGLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRTtnQkFDZixLQUFLLDBCQUFrQixDQUFDLFFBQVE7b0JBQzlCLE1BQU0sVUFBVSxHQUFHLElBQUkseUNBQW1CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUM3RCxVQUFVLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ25DLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUM3QyxLQUFLLDBCQUFrQixDQUFDLFFBQVE7b0JBQzlCLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSx1Q0FBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7b0JBQ3BFLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUMzQyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2dCQUNwRCxLQUFLLDBCQUFrQixDQUFDLGFBQWE7b0JBQ25DLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSwyQ0FBb0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7b0JBQ3hFLG9CQUFvQixDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUM3QyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO2dCQUN4RDtvQkFDRSxNQUFNLElBQUksa0NBQXVCLENBQUMscUJBQXFCLENBQUMsQ0FBQzthQUM1RDtTQUNGO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixNQUFNLENBQUMsQ0FBQztTQUNUO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixrQkFBa0IsQ0FBQyxFQUFpRDtRQUNsRSxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsSUFBSSxpQ0FBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsaUJBQWlCLENBQUMsRUFBZ0Q7UUFDaEUsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxFQUFFLElBQUksK0JBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLG1CQUFtQixDQUFDLEVBQWtEO1FBQ3BFLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLG1DQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsOEJBQThCO1FBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssaUJBQWlCLENBRXZCLEVBQTZGLEVBQUUsT0FBVTtRQUN6RyxJQUFJLEVBQUUsRUFBRTtZQUNOLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDekI7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGdCQUFnQixDQUN0QixjQUFzQjtRQUV0QixPQUFPLHlCQUFXLENBQUMseUJBQXlCLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDL0QsQ0FBQztDQUNGO0FBN0VELDhEQTZFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LCBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IFRyYW5zZmVyQnVpbGRlciB9IGZyb20gJy4vdHJhbnNmZXJCdWlsZGVyJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBTdGFraW5nQnVpbGRlciB9IGZyb20gJy4vc3Rha2luZ0J1aWxkZXInO1xuaW1wb3J0IHtcbiAgU3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uLFxuICBTdWlUcmFuc2FjdGlvbixcbiAgU3VpVHJhbnNhY3Rpb25UeXBlLFxuICBUcmFuc2ZlclByb2dyYW1tYWJsZVRyYW5zYWN0aW9uLFxuICBVbnN0YWtpbmdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbixcbn0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBTdGFraW5nVHJhbnNhY3Rpb24gfSBmcm9tICcuL3N0YWtpbmdUcmFuc2FjdGlvbic7XG5pbXBvcnQgeyBUcmFuc2ZlclRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2ZlclRyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFVuc3Rha2luZ0J1aWxkZXIgfSBmcm9tICcuL3Vuc3Rha2luZ0J1aWxkZXInO1xuaW1wb3J0IHsgVW5zdGFraW5nVHJhbnNhY3Rpb24gfSBmcm9tICcuL3Vuc3Rha2luZ1RyYW5zYWN0aW9uJztcblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkgZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB7XG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBmcm9tKHJhdzogc3RyaW5nKTogVHJhbnNhY3Rpb25CdWlsZGVyPFRyYW5zZmVyUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24gfCBTdGFraW5nUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+IHtcbiAgICB1dGlscy52YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhdyk7XG4gICAgY29uc3QgdHggPSB0aGlzLnBhcnNlVHJhbnNhY3Rpb24ocmF3KTtcbiAgICB0cnkge1xuICAgICAgc3dpdGNoICh0eC50eXBlKSB7XG4gICAgICAgIGNhc2UgU3VpVHJhbnNhY3Rpb25UeXBlLlRyYW5zZmVyOlxuICAgICAgICAgIGNvbnN0IHRyYW5zZmVyVHggPSBuZXcgVHJhbnNmZXJUcmFuc2FjdGlvbih0aGlzLl9jb2luQ29uZmlnKTtcbiAgICAgICAgICB0cmFuc2ZlclR4LmZyb21SYXdUcmFuc2FjdGlvbihyYXcpO1xuICAgICAgICAgIHJldHVybiB0aGlzLmdldFRyYW5zZmVyQnVpbGRlcih0cmFuc2ZlclR4KTtcbiAgICAgICAgY2FzZSBTdWlUcmFuc2FjdGlvblR5cGUuQWRkU3Rha2U6XG4gICAgICAgICAgY29uc3Qgc3Rha2luZ1RyYW5zYWN0aW9uID0gbmV3IFN0YWtpbmdUcmFuc2FjdGlvbih0aGlzLl9jb2luQ29uZmlnKTtcbiAgICAgICAgICBzdGFraW5nVHJhbnNhY3Rpb24uZnJvbVJhd1RyYW5zYWN0aW9uKHJhdyk7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3Rha2luZ0J1aWxkZXIoc3Rha2luZ1RyYW5zYWN0aW9uKTtcbiAgICAgICAgY2FzZSBTdWlUcmFuc2FjdGlvblR5cGUuV2l0aGRyYXdTdGFrZTpcbiAgICAgICAgICBjb25zdCB1bnN0YWtpbmdUcmFuc2FjdGlvbiA9IG5ldyBVbnN0YWtpbmdUcmFuc2FjdGlvbih0aGlzLl9jb2luQ29uZmlnKTtcbiAgICAgICAgICB1bnN0YWtpbmdUcmFuc2FjdGlvbi5mcm9tUmF3VHJhbnNhY3Rpb24ocmF3KTtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRVbnN0YWtpbmdCdWlsZGVyKHVuc3Rha2luZ1RyYW5zYWN0aW9uKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb24nKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRUcmFuc2ZlckJ1aWxkZXIodHg/OiBUcmFuc2FjdGlvbjxUcmFuc2ZlclByb2dyYW1tYWJsZVRyYW5zYWN0aW9uPik6IFRyYW5zZmVyQnVpbGRlciB7XG4gICAgcmV0dXJuIHRoaXMuaW5pdGlhbGl6ZUJ1aWxkZXIodHgsIG5ldyBUcmFuc2ZlckJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldFN0YWtpbmdCdWlsZGVyKHR4PzogVHJhbnNhY3Rpb248U3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uPik6IFN0YWtpbmdCdWlsZGVyIHtcbiAgICByZXR1cm4gdGhpcy5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IFN0YWtpbmdCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRVbnN0YWtpbmdCdWlsZGVyKHR4PzogVHJhbnNhY3Rpb248VW5zdGFraW5nUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+KTogVW5zdGFraW5nQnVpbGRlciB7XG4gICAgcmV0dXJuIHRoaXMuaW5pdGlhbGl6ZUJ1aWxkZXIodHgsIG5ldyBVbnN0YWtpbmdCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIoKTogdm9pZCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgdGhlIGJ1aWxkZXIgd2l0aCB0aGUgZ2l2ZW4gdHJhbnNhY3Rpb25cbiAgICpcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbiB8IHVuZGVmaW5lZH0gdHggLSB0aGUgdHJhbnNhY3Rpb24gdXNlZCB0byBpbml0aWFsaXplIHRoZSBidWlsZGVyXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25CdWlsZGVyfSBidWlsZGVyIC0gdGhlIGJ1aWxkZXIgdG8gYmUgaW5pdGlhbGl6ZWRcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gdGhlIGJ1aWxkZXIgaW5pdGlhbGl6ZWRcbiAgICovXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUJ1aWxkZXI8XG4gICAgVCBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlcjxUcmFuc2ZlclByb2dyYW1tYWJsZVRyYW5zYWN0aW9uIHwgU3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uPlxuICA+KHR4OiBUcmFuc2FjdGlvbjxUcmFuc2ZlclByb2dyYW1tYWJsZVRyYW5zYWN0aW9uIHwgU3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uPiB8IHVuZGVmaW5lZCwgYnVpbGRlcjogVCk6IFQge1xuICAgIGlmICh0eCkge1xuICAgICAgYnVpbGRlci5pbml0QnVpbGRlcih0eCk7XG4gICAgfVxuICAgIHJldHVybiBidWlsZGVyO1xuICB9XG5cbiAgLyoqIFBhcnNlIHRoZSB0cmFuc2FjdGlvbiBmcm9tIGEgcmF3IHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByYXdUcmFuc2FjdGlvbiAtIHRoZSByYXcgdHhcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9ufSBwYXJzZWR0cmFuc2FjdGlvblxuICAgKi9cbiAgcHJpdmF0ZSBwYXJzZVRyYW5zYWN0aW9uKFxuICAgIHJhd1RyYW5zYWN0aW9uOiBzdHJpbmdcbiAgKTogU3VpVHJhbnNhY3Rpb248VHJhbnNmZXJQcm9ncmFtbWFibGVUcmFuc2FjdGlvbiB8IFN0YWtpbmdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbj4ge1xuICAgIHJldHVybiBUcmFuc2FjdGlvbi5kZXNlcmlhbGl6ZVN1aVRyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgfVxufVxuIl19
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxtREFBOEY7QUFDOUYsdURBQW9EO0FBRXBELCtDQUE0QztBQUM1QyxxREFBa0Q7QUFDbEQsbUNBV2lCO0FBQ2pCLDZEQUEwRDtBQUMxRCwrREFBNEQ7QUFFNUQsb0RBQTRCO0FBQzVCLHlEQUFzRDtBQUN0RCxpRUFBOEQ7QUFDOUQsMkRBQXdEO0FBQ3hELHlFQUFzRTtBQUN0RSxpRUFBOEQ7QUFDOUQseUVBQXNFO0FBQ3RFLGlFQUE4RDtBQUM5RCx5RUFBc0U7QUFDdEUsNkVBQTBFO0FBQzFFLHFGQUFrRjtBQUVsRixNQUFhLHlCQUEwQixTQUFRLHdDQUE2QjtJQUMxRSxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLElBQUksQ0FBQyxHQUFXO1FBQ2QsZUFBSyxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUM7WUFDSCxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDaEIsS0FBSywwQkFBa0IsQ0FBQyxRQUFRO29CQUM5QixNQUFNLFVBQVUsR0FBRyxJQUFJLHlDQUFtQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDN0QsVUFBVSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNuQyxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDN0MsS0FBSywwQkFBa0IsQ0FBQyxRQUFRO29CQUM5QixNQUFNLGtCQUFrQixHQUFH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O0lBQ3BGLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsdUJBQXVCLENBQUMsRUFBc0Q7UUFDNUUsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxFQUFFLElBQUksMkNBQW9CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVELGtCQUFrQjtJQUNsQix1QkFBdUIsQ0FBQyxFQUFzRDtRQUM1RSxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsSUFBSSwyQ0FBb0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLG9DQUFvQyxDQUNsQyxFQUE0RDtRQUU1RCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsSUFBSSx1REFBMEIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLDhCQUE4QjtRQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNLLGlCQUFpQixDQUN2QixFQUF1RCxFQUN2RCxPQUFVO1FBRVYsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNQLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUIsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssZ0JBQWdCLENBQUMsY0FBc0I7UUFDN0MsT0FBTyx5QkFBVyxDQUFDLHlCQUF5QixDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7Q0FDRjtBQW5IRCw4REFtSEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSwgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zZmVyQnVpbGRlcic7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgU3Rha2luZ0J1aWxkZXIgfSBmcm9tICcuL3N0YWtpbmdCdWlsZGVyJztcbmltcG9ydCB7XG4gIEN1c3RvbVByb2dyYW1tYWJsZVRyYW5zYWN0aW9uLFxuICBTdGFraW5nUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24sXG4gIFN1aVRyYW5zYWN0aW9uLFxuICBTdWlUcmFuc2FjdGlvblR5cGUsXG4gIFRyYW5zZmVyUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24sXG4gIFVuc3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uLFxuICBTdWlQcm9ncmFtbWFibGVUcmFuc2FjdGlvbixcbiAgVG9rZW5UcmFuc2ZlclByb2dyYW1tYWJsZVRyYW5zYWN0aW9uLFxuICBXYWxydXNTdGFraW5nUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24sXG4gIFdhbHJ1c1dpdGhkcmF3U3Rha2VQcm9ncmFtbWFibGVUcmFuc2FjdGlvbixcbn0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBTdGFraW5nVHJhbnNhY3Rpb24gfSBmcm9tICcuL3N0YWtpbmdUcmFuc2FjdGlvbic7XG5pbXBvcnQgeyBUcmFuc2ZlclRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2ZlclRyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFVuc3Rha2luZ0J1aWxkZXIgfSBmcm9tICcuL3Vuc3Rha2luZ0J1aWxkZXInO1xuaW1wb3J0IHsgVW5zdGFraW5nVHJhbnNhY3Rpb24gfSBmcm9tICcuL3Vuc3Rha2luZ1RyYW5zYWN0aW9uJztcbmltcG9ydCB7IEN1c3RvbVRyYW5zYWN0aW9uIH0gZnJvbSAnLi9jdXN0b21UcmFuc2FjdGlvbic7XG5pbXBvcnQgeyBDdXN0b21UcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL2N1c3RvbVRyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBUb2tlblRyYW5zZmVyQnVpbGRlciB9IGZyb20gJy4vdG9rZW5UcmFuc2ZlckJ1aWxkZXInO1xuaW1wb3J0IHsgVG9rZW5UcmFuc2ZlclRyYW5zYWN0aW9uIH0gZnJvbSAnLi90b2tlblRyYW5zZmVyVHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgV2FscnVzU3Rha2luZ0J1aWxkZXIgfSBmcm9tICcuL3dhbHJ1c1N0YWtpbmdCdWlsZGVyJztcbmltcG9ydCB7IFdhbHJ1c1N0YWtpbmdUcmFuc2FjdGlvbiB9IGZyb20gJy4vd2FscnVzU3Rha2luZ1RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFdhbHJ1c1dpdGhkcmF3U3Rha2VCdWlsZGVyIH0gZnJvbSAnLi93YWxydXNXaXRoZHJhd1N0YWtlQnVpbGRlcic7XG5pbXBvcnQgeyBXYWxydXNXaXRoZHJhd1N0YWtlVHJhbnNhY3Rpb24gfSBmcm9tICcuL3dhbHJ1c1dpdGhkcmF3U3Rha2VUcmFuc2FjdGlvbic7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uQnVpbGRlckZhY3Rvcnkge1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZnJvbShyYXc6IHN0cmluZyk6IFRyYW5zYWN0aW9uQnVpbGRlcjxTdWlQcm9ncmFtbWFibGVUcmFuc2FjdGlvbj4ge1xuICAgIHV0aWxzLnZhbGlkYXRlUmF3VHJhbnNhY3Rpb24ocmF3KTtcbiAgICBjb25zdCB0eCA9IHRoaXMucGFyc2VUcmFuc2FjdGlvbihyYXcpO1xuICAgIHRyeSB7XG4gICAgICBzd2l0Y2ggKHR4LnR5cGUpIHtcbiAgICAgICAgY2FzZSBTdWlUcmFuc2FjdGlvblR5cGUuVHJhbnNmZXI6XG4gICAgICAgICAgY29uc3QgdHJhbnNmZXJUeCA9IG5ldyBUcmFuc2ZlclRyYW5zYWN0aW9uKHRoaXMuX2NvaW5Db25maWcpO1xuICAgICAgICAgIHRyYW5zZmVyVHguZnJvbVJhd1RyYW5zYWN0aW9uKHJhdyk7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VHJhbnNmZXJCdWlsZGVyKHRyYW5zZmVyVHgpO1xuICAgICAgICBjYXNlIFN1aVRyYW5zYWN0aW9uVHlwZS5BZGRTdGFrZTpcbiAgICAgICAgICBjb25zdCBzdGFraW5nVHJhbnNhY3Rpb24gPSBuZXcgU3Rha2luZ1RyYW5zYWN0aW9uKHRoaXMuX2NvaW5Db25maWcpO1xuICAgICAgICAgIHN0YWtpbmdUcmFuc2FjdGlvbi5mcm9tUmF3VHJhbnNhY3Rpb24ocmF3KTtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTdGFraW5nQnVpbGRlcihzdGFraW5nVHJhbnNhY3Rpb24pO1xuICAgICAgICBjYXNlIFN1aVRyYW5zYWN0aW9uVHlwZS5XaXRoZHJhd1N0YWtlOlxuICAgICAgICAgIGNvbnN0IHVuc3Rha2luZ1RyYW5zYWN0aW9uID0gbmV3IFVuc3Rha2luZ1RyYW5zYWN0aW9uKHRoaXMuX2NvaW5Db25maWcpO1xuICAgICAgICAgIHVuc3Rha2luZ1RyYW5zYWN0aW9uLmZyb21SYXdUcmFuc2FjdGlvbihyYXcpO1xuICAgICAgICAgIHJldHVybiB0aGlzLmdldFVuc3Rha2luZ0J1aWxkZXIodW5zdGFraW5nVHJhbnNhY3Rpb24pO1xuICAgICAgICBjYXNlIFN1aVRyYW5zYWN0aW9uVHlwZS5DdXN0b21UeDpcbiAgICAgICAgICBjb25zdCBjdXN0b21UcmFuc2FjdGlvbiA9IG5ldyBDdXN0b21UcmFuc2FjdGlvbih0aGlzLl9jb2luQ29uZmlnKTtcbiAgICAgICAgICBjdXN0b21UcmFuc2FjdGlvbi5mcm9tUmF3VHJhbnNhY3Rpb24ocmF3KTtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRDdXN0b21UcmFuc2FjdGlvbkJ1aWxkZXIoY3VzdG9tVHJhbnNhY3Rpb24pO1xuICAgICAgICBjYXNlIFN1aVRyYW5zYWN0aW9uVHlwZS5Ub2tlblRyYW5zZmVyOlxuICAgICAgICAgIGNvbnN0IHRva2VuVHJhbnNmZXJUeCA9IG5ldyBUb2tlblRyYW5zZmVyVHJhbnNhY3Rpb24odGhpcy5fY29pbkNvbmZpZyk7XG4gICAgICAgICAgdG9rZW5UcmFuc2ZlclR4LmZyb21SYXdUcmFuc2FjdGlvbihyYXcpO1xuICAgICAgICAgIHJldHVybiB0aGlzLmdldFRva2VuVHJhbnNmZXJCdWlsZGVyKHRva2VuVHJhbnNmZXJUeCk7XG4gICAgICAgIGNhc2UgU3VpVHJhbnNhY3Rpb25UeXBlLldhbHJ1c1N0YWtlV2l0aFBvb2w6XG4gICAgICAgICAgY29uc3Qgd2FscnVzU3Rha2VUeCA9IG5ldyBXYWxydXNTdGFraW5nVHJhbnNhY3Rpb24odGhpcy5fY29pbkNvbmZpZyk7XG4gICAgICAgICAgd2FscnVzU3Rha2VUeC5mcm9tUmF3VHJhbnNhY3Rpb24ocmF3KTtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRXYWxydXNTdGFraW5nQnVpbGRlcih3YWxydXNTdGFrZVR4KTtcbiAgICAgICAgY2FzZSBTdWlUcmFuc2FjdGlvblR5cGUuV2FscnVzUmVxdWVzdFdpdGhkcmF3U3Rha2U6XG4gICAgICAgIGNhc2UgU3VpVHJhbnNhY3Rpb25UeXBlLldhbHJ1c1dpdGhkcmF3U3Rha2U6XG4gICAgICAgICAgY29uc3Qgd2FscnVzUmVxdWVzdFdpdGhkcmF3U3Rha2VUcmFuc2FjdGlvbiA9IG5ldyBXYWxydXNXaXRoZHJhd1N0YWtlVHJhbnNhY3Rpb24odGhpcy5fY29pbkNvbmZpZyk7XG4gICAgICAgICAgd2FscnVzUmVxdWVzdFdpdGhkcmF3U3Rha2VUcmFuc2FjdGlvbi5mcm9tUmF3VHJhbnNhY3Rpb24ocmF3KTtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRXYWxydXNSZXF1ZXN0V2l0aGRyYXdTdGFrZUJ1aWxkZXIod2FscnVzUmVxdWVzdFdpdGhkcmF3U3Rha2VUcmFuc2FjdGlvbik7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uJyk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0VHJhbnNmZXJCdWlsZGVyKHR4PzogVHJhbnNhY3Rpb248VHJhbnNmZXJQcm9ncmFtbWFibGVUcmFuc2FjdGlvbj4pOiBUcmFuc2ZlckJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgVHJhbnNmZXJCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRTdGFraW5nQnVpbGRlcih0eD86IFRyYW5zYWN0aW9uPFN0YWtpbmdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbj4pOiBTdGFraW5nQnVpbGRlciB7XG4gICAgcmV0dXJuIHRoaXMuaW5pdGlhbGl6ZUJ1aWxkZXIodHgsIG5ldyBTdGFraW5nQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0VW5zdGFraW5nQnVpbGRlcih0eD86IFRyYW5zYWN0aW9uPFVuc3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uPik6IFVuc3Rha2luZ0J1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgVW5zdGFraW5nQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0Q3VzdG9tVHJhbnNhY3Rpb25CdWlsZGVyKHR4PzogVHJhbnNhY3Rpb248Q3VzdG9tUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+KTogQ3VzdG9tVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICByZXR1cm4gdGhpcy5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IEN1c3RvbVRyYW5zYWN0aW9uQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0VG9rZW5UcmFuc2ZlckJ1aWxkZXIodHg/OiBUcmFuc2FjdGlvbjxUb2tlblRyYW5zZmVyUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+KTogVG9rZW5UcmFuc2ZlckJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgVG9rZW5UcmFuc2ZlckJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldFdhbHJ1c1N0YWtpbmdCdWlsZGVyKHR4PzogVHJhbnNhY3Rpb248V2FscnVzU3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uPik6IFdhbHJ1c1N0YWtpbmdCdWlsZGVyIHtcbiAgICByZXR1cm4gdGhpcy5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IFdhbHJ1c1N0YWtpbmdCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRXYWxydXNSZXF1ZXN0V2l0aGRyYXdTdGFrZUJ1aWxkZXIoXG4gICAgdHg/OiBUcmFuc2FjdGlvbjxXYWxydXNXaXRoZHJhd1N0YWtlUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+XG4gICk6IFdhbHJ1c1dpdGhkcmF3U3Rha2VCdWlsZGVyIHtcbiAgICByZXR1cm4gdGhpcy5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IFdhbHJ1c1dpdGhkcmF3U3Rha2VCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIoKTogdm9pZCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgdGhlIGJ1aWxkZXIgd2l0aCB0aGUgZ2l2ZW4gdHJhbnNhY3Rpb25cbiAgICpcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbiB8IHVuZGVmaW5lZH0gdHggLSB0aGUgdHJhbnNhY3Rpb24gdXNlZCB0byBpbml0aWFsaXplIHRoZSBidWlsZGVyXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25CdWlsZGVyfSBidWlsZGVyIC0gdGhlIGJ1aWxkZXIgdG8gYmUgaW5pdGlhbGl6ZWRcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gdGhlIGJ1aWxkZXIgaW5pdGlhbGl6ZWRcbiAgICovXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUJ1aWxkZXI8VCBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlcjxTdWlQcm9ncmFtbWFibGVUcmFuc2FjdGlvbj4+KFxuICAgIHR4OiBUcmFuc2FjdGlvbjxTdWlQcm9ncmFtbWFibGVUcmFuc2FjdGlvbj4gfCB1bmRlZmluZWQsXG4gICAgYnVpbGRlcjogVFxuICApOiBUIHtcbiAgICBpZiAodHgpIHtcbiAgICAgIGJ1aWxkZXIuaW5pdEJ1aWxkZXIodHgpO1xuICAgIH1cbiAgICByZXR1cm4gYnVpbGRlcjtcbiAgfVxuXG4gIC8qKiBQYXJzZSB0aGUgdHJhbnNhY3Rpb24gZnJvbSBhIHJhdyB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmF3VHJhbnNhY3Rpb24gLSB0aGUgcmF3IHR4XG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbn0gcGFyc2VkdHJhbnNhY3Rpb25cbiAgICovXG4gIHByaXZhdGUgcGFyc2VUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogU3VpVHJhbnNhY3Rpb248U3VpUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+IHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb24uZGVzZXJpYWxpemVTdWlUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gIH1cbn1cbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAyB,SAAS,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,EAAE,cAAc,EAAsB,+BAA+B,EAAE,MAAM,SAAS,CAAC;AAC9F,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAQ5D,qBAAa,eAAgB,SAAQ,kBAAkB,CAAC,+BAA+B,CAAC;IACtF,SAAS,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC;gBAEvB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI;IAMnC,kBAAkB;IAClB,mBAAmB,CAAC,WAAW,EAAE,mBAAmB,GAAG,IAAI;IAO3D,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAKxB,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW,CAAC,+BAA+B,CAAC;IAQlG,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC,+BAA+B,CAAC,CAAC;IAgB5F;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,mBAAmB,GAAG,IAAI;IAgB1C;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAWjC;;;;OAIG;IACH,SAAS,CAAC,mBAAmB,IAAI,cAAc,CAAC,+BAA+B,CAAC;CA0BjF"}
1
+ {"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAyB,SAAS,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,EAAE,cAAc,EAAsB,+BAA+B,EAAE,MAAM,SAAS,CAAC;AAC9F,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAU5D,qBAAa,eAAgB,SAAQ,kBAAkB,CAAC,+BAA+B,CAAC;IACtF,SAAS,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC;gBAEvB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI;IAMnC,kBAAkB;IAClB,mBAAmB,CAAC,WAAW,EAAE,mBAAmB,GAAG,IAAI;IAO3D,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAKxB,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW,CAAC,+BAA+B,CAAC;IAQlG,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC,+BAA+B,CAAC,CAAC;IAgB5F;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,mBAAmB,GAAG,IAAI;IAgB1C;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAWjC;;;;OAIG;IACH,SAAS,CAAC,mBAAmB,IAAI,cAAc,CAAC,+BAA+B,CAAC;CA+CjF"}
@@ -11,6 +11,7 @@ const transferTransaction_1 = require("./transferTransaction");
11
11
  const assert_1 = __importDefault(require("assert"));
12
12
  const builder_1 = require("./mystenlab/builder");
13
13
  const utils_1 = __importDefault(require("./utils"));
14
+ const constants_1 = require("./constants");
14
15
  class TransferBuilder extends transactionBuilder_1.TransactionBuilder {
15
16
  constructor(_coinConfig) {
16
17
  super(_coinConfig);
@@ -78,10 +79,10 @@ class TransferBuilder extends transactionBuilder_1.TransactionBuilder {
78
79
  * Validates all fields are defined
79
80
  */
80
81
  validateTransactionFields() {
81
- assert_1.default(this._type, new sdk_core_1.BuildTransactionError('type is required before building'));
82
- assert_1.default(this._sender, new sdk_core_1.BuildTransactionError('sender is required before building'));
83
- assert_1.default(this._recipients && this._recipients.length > 0, new sdk_core_1.BuildTransactionError('at least one recipient is required before building'));
84
- assert_1.default(this._gasData, new sdk_core_1.BuildTransactionError('gasData is required before building'));
82
+ (0, assert_1.default)(this._type, new sdk_core_1.BuildTransactionError('type is required before building'));
83
+ (0, assert_1.default)(this._sender, new sdk_core_1.BuildTransactionError('sender is required before building'));
84
+ (0, assert_1.default)(this._recipients && this._recipients.length > 0, new sdk_core_1.BuildTransactionError('at least one recipient is required before building'));
85
+ (0, assert_1.default)(this._gasData, new sdk_core_1.BuildTransactionError('gasData is required before building'));
85
86
  this.validateGasData(this._gasData);
86
87
  }
87
88
  /**
@@ -92,6 +93,20 @@ class TransferBuilder extends transactionBuilder_1.TransactionBuilder {
92
93
  buildSuiTransaction() {
93
94
  this.validateTransactionFields();
94
95
  const programmableTxBuilder = new builder_1.TransactionBlock();
96
+ // number of objects passed as gas payment should be strictly less than `MAX_GAS_OBJECTS`. When the transaction
97
+ // requires a larger number of inputs we use the merge command to merge the rest of the objects into the gasCoin
98
+ if (this._gasData.payment.length >= constants_1.MAX_GAS_OBJECTS) {
99
+ const gasPaymentObjects = this._gasData.payment
100
+ .slice(constants_1.MAX_GAS_OBJECTS - 1)
101
+ .map((object) => builder_1.Inputs.ObjectRef(object));
102
+ // limit for total number of `args: CallArg[]` for a single command is MAX_COMMAND_ARGS so the max length of
103
+ // `sources[]` for a `mergeCoins(destination, sources[])` command is MAX_COMMAND_ARGS - 1 (1 used up for
104
+ // `destination`). We need to create a total of `gasPaymentObjects/(MAX_COMMAND_ARGS - 1)` merge commands to
105
+ // merge all the objects
106
+ while (gasPaymentObjects.length > 0) {
107
+ programmableTxBuilder.mergeCoins(programmableTxBuilder.gas, gasPaymentObjects.splice(0, constants_1.MAX_COMMAND_ARGS - 1).map((object) => programmableTxBuilder.object(object)));
108
+ }
109
+ }
95
110
  this._recipients.forEach((recipient) => {
96
111
  const coin = programmableTxBuilder.add(builder_1.Transactions.SplitCoins(programmableTxBuilder.gas, [
97
112
  programmableTxBuilder.pure(Number(recipient.amount)),
@@ -108,9 +123,10 @@ class TransferBuilder extends transactionBuilder_1.TransactionBuilder {
108
123
  },
109
124
  gasData: {
110
125
  ...this._gasData,
126
+ payment: this._gasData.payment.slice(0, constants_1.MAX_GAS_OBJECTS - 1),
111
127
  },
112
128
  };
113
129
  }
114
130
  }
115
131
  exports.TransferBuilder = TransferBuilder;
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNkRBQTBEO0FBRTFELG1EQUFrRztBQUNsRyxtQ0FBOEY7QUFFOUYsK0RBQTREO0FBQzVELG9EQUE0QjtBQUM1QixpREFHNkI7QUFDN0Isb0RBQTRCO0FBRTVCLE1BQWEsZUFBZ0IsU0FBUSx1Q0FBbUQ7SUFHdEYsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLHlDQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLElBQUksQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxDQUFDLFVBQXVCO1FBQzFCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztRQUM5QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsbUJBQW1CLENBQUMsV0FBZ0M7UUFDbEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUU7WUFDL0IsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFJLENBQUMsR0FBWTtRQUNmLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQztRQUMvRCxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxrQkFBa0I7SUFDUixrQkFBa0IsQ0FBQyxjQUFzQjtRQUNqRCxNQUFNLEVBQUUsR0FB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TyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDckMsTUFBTSxJQUFJLEdBQUcscUJBQXFCLENBQUMsR0FBRyxDQUNwQyxzQkFBdUIsQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUMsR0FBRyxFQUFFO2dCQUM1RCxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNyRCxDQUFDLENBQ0gsQ0FBQztZQUNGLHFCQUFxQixDQUFDLEdBQUcsQ0FDdkIsc0JBQXVCLENBQUMsZUFBZSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUscUJBQXFCLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUNqRyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLE1BQU0sR0FBRyxxQkFBcUIsQ0FBQyxTQUFTLENBQUM7UUFDL0MsT0FBTztZQUNMLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSztZQUNoQixNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDcEIsRUFBRSxFQUFFO2dCQUNGLE1BQU0sRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztnQkFDMUIsWUFBWSxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDO2FBQ3ZDO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLEdBQUcsSUFBSSxDQUFDLFFBQVE7YUFDakI7U0FDRixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBNUhELDBDQTRIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IEJhc2VLZXksIEJ1aWxkVHJhbnNhY3Rpb25FcnJvciwgUmVjaXBpZW50LCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBTdWlUcmFuc2FjdGlvbiwgU3VpVHJhbnNhY3Rpb25UeXBlLCBUcmFuc2ZlclByb2dyYW1tYWJsZVRyYW5zYWN0aW9uIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgVHJhbnNmZXJUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNmZXJUcmFuc2FjdGlvbic7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQge1xuICBUcmFuc2FjdGlvbnMgYXMgVHJhbnNhY3Rpb25zQ29uc3RydWN0b3IsXG4gIFRyYW5zYWN0aW9uQmxvY2sgYXMgUHJvZ3JhbW1pbmdUcmFuc2FjdGlvbkJsb2NrQnVpbGRlcixcbn0gZnJvbSAnLi9teXN0ZW5sYWIvYnVpbGRlcic7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2ZlckJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXI8VHJhbnNmZXJQcm9ncmFtbWFibGVUcmFuc2FjdGlvbj4ge1xuICBwcm90ZWN0ZWQgX3JlY2lwaWVudHM6IFJlY2lwaWVudFtdO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IG5ldyBUcmFuc2ZlclRyYW5zYWN0aW9uKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5TZW5kO1xuICB9XG5cbiAgc2VuZChyZWNpcGllbnRzOiBSZWNpcGllbnRbXSk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVSZWNpcGllbnRzKHJlY2lwaWVudHMpO1xuICAgIHRoaXMuX3JlY2lwaWVudHMgPSByZWNpcGllbnRzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IFRyYW5zZmVyVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBpZiAoIXRyYW5zYWN0aW9uLnN1aVRyYW5zYWN0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMudmFsaWRhdGVUcmFuc2FjdGlvbkZpZWxkcygpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHNpZ24oa2V5OiBCYXNlS2V5KTogdm9pZCB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5zZXRTdWlUcmFuc2FjdGlvbih0aGlzLmJ1aWxkU3VpVHJhbnNhY3Rpb24oKSk7XG4gICAgc3VwZXIuc2lnbihrZXkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBmcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IFRyYW5zYWN0aW9uPFRyYW5zZmVyUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCB0eCA9IG5ldyBUcmFuc2ZlclRyYW5zYWN0aW9uKHRoaXMuX2NvaW5Db25maWcpO1xuICAgIHRoaXMudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgdHguZnJvbVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICB0aGlzLmluaXRCdWlsZGVyKHR4KTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPFRyYW5zZmVyUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+PiB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5zZXRTdWlUcmFuc2FjdGlvbih0aGlzLmJ1aWxkU3VpVHJhbnNhY3Rpb24oKSk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvblR5cGUodGhpcy50cmFuc2FjdGlvblR5cGUpO1xuXG4gICAgaWYgKHRoaXMuX3NpZ25lcikge1xuICAgICAgdGhpcy50cmFuc2FjdGlvbi5zaWduKHRoaXMuX3NpZ25lcik7XG4gICAgfVxuXG4gICAgdGhpcy5fc2lnbmF0dXJlcy5mb3JFYWNoKChzaWduYXR1cmUpID0+IHtcbiAgICAgIHRoaXMudHJhbnNhY3Rpb24uYWRkU2lnbmF0dXJlKHNpZ25hdHVyZS5wdWJsaWNLZXksIHNpZ25hdHVyZS5zaWduYXR1cmUpO1xuICAgIH0pO1xuXG4gICAgdGhpcy50cmFuc2FjdGlvbi5sb2FkSW5wdXRzQW5kT3V0cHV0cygpO1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgdGhlIHRyYW5zYWN0aW9uIGJ1aWxkZXIgZmllbGRzIHVzaW5nIHRoZSBkZWNvZGVkIHRyYW5zYWN0aW9uIGRhdGFcbiAgICpcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbn0gdHggdGhlIHRyYW5zYWN0aW9uIGRhdGFcbiAgICovXG4gIGluaXRCdWlsZGVyKHR4OiBUcmFuc2ZlclRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSB0eDtcblxuICAgIGlmICh0eC5zaWduYXR1cmUgJiYgdHguc2lnbmF0dXJlLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuX3NpZ25hdHVyZXMgPSBbdHguc3VpU2lnbmF0dXJlXTtcbiAgICB9XG5cbiAgICBjb25zdCB0eERhdGEgPSB0eC50b0pzb24oKTtcbiAgICB0aGlzLnR5cGUoU3VpVHJhbnNhY3Rpb25UeXBlLlRyYW5zZmVyKTtcbiAgICB0aGlzLnNlbmRlcih0eERhdGEuc2VuZGVyKTtcbiAgICB0aGlzLmdhc0RhdGEodHhEYXRhLmdhc0RhdGEpO1xuXG4gICAgY29uc3QgcmVjaXBpZW50cyA9IHV0aWxzLmdldFJlY2lwaWVudHModHguc3VpVHJhbnNhY3Rpb24pO1xuICAgIHRoaXMuc2VuZChyZWNpcGllbnRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgYWxsIGZpZWxkcyBhcmUgZGVmaW5lZFxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZVRyYW5zYWN0aW9uRmllbGRzKCk6IHZvaWQge1xuICAgIGFzc2VydCh0aGlzLl90eXBlLCBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCd0eXBlIGlzIHJlcXVpcmVkIGJlZm9yZSBidWlsZGluZycpKTtcbiAgICBhc3NlcnQodGhpcy5fc2VuZGVyLCBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdzZW5kZXIgaXMgcmVxdWlyZWQgYmVmb3JlIGJ1aWxkaW5nJykpO1xuICAgIGFzc2VydChcbiAgICAgIHRoaXMuX3JlY2lwaWVudHMgJiYgdGhpcy5fcmVjaXBpZW50cy5sZW5ndGggPiAwLFxuICAgICAgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignYXQgbGVhc3Qgb25lIHJlY2lwaWVudCBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKVxuICAgICk7XG4gICAgYXNzZXJ0KHRoaXMuX2dhc0RhdGEsIG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ2dhc0RhdGEgaXMgcmVxdWlyZWQgYmVmb3JlIGJ1aWxkaW5nJykpO1xuICAgIHRoaXMudmFsaWRhdGVHYXNEYXRhKHRoaXMuX2dhc0RhdGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIHRyYW5zZmVyIHByb2dyYW1tYWJsZSB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgYnVpbGRTdWlUcmFuc2FjdGlvbigpOiBTdWlUcmFuc2FjdGlvbjxUcmFuc2ZlclByb2dyYW1tYWJsZVRyYW5zYWN0aW9uPiB7XG4gICAgdGhpcy52YWxpZGF0ZVRyYW5zYWN0aW9uRmllbGRzKCk7XG4gICAgY29uc3QgcHJvZ3JhbW1hYmxlVHhCdWlsZGVyID0gbmV3IFByb2dyYW1taW5nVHJhbnNhY3Rpb25CbG9ja0J1aWxkZXIoKTtcbiAgICB0aGlzLl9yZWNpcGllbnRzLmZvckVhY2goKHJlY2lwaWVudCkgPT4ge1xuICAgICAgY29uc3QgY29pbiA9IHByb2dyYW1tYWJsZVR4QnVpbGRlci5hZGQoXG4gICAgICAgIFRyYW5zYWN0aW9uc0NvbnN0cnVjdG9yLlNwbGl0Q29pbnMocHJvZ3JhbW1hYmxlVHhCdWlsZGVyLmdhcywgW1xuICAgICAgICAgIHByb2dyYW1tYWJsZVR4QnVpbGRlci5wdXJlKE51bWJlcihyZWNpcGllbnQuYW1vdW50KSksXG4gICAgICAgIF0pXG4gICAgICApO1xuICAgICAgcHJvZ3JhbW1hYmxlVHhCdWlsZGVyLmFkZChcbiAgICAgICAgVHJhbnNhY3Rpb25zQ29uc3RydWN0b3IuVHJhbnNmZXJPYmplY3RzKFtjb2luXSwgcHJvZ3JhbW1hYmxlVHhCdWlsZGVyLm9iamVjdChyZWNpcGllbnQuYWRkcmVzcykpXG4gICAgICApO1xuICAgIH0pO1xuICAgIGNvbnN0IHR4RGF0YSA9IHByb2dyYW1tYWJsZVR4QnVpbGRlci5ibG9ja0RhdGE7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IHRoaXMuX3R5cGUsXG4gICAgICBzZW5kZXI6IHRoaXMuX3NlbmRlcixcbiAgICAgIHR4OiB7XG4gICAgICAgIGlucHV0czogWy4uLnR4RGF0YS5pbnB1dHNdLFxuICAgICAgICB0cmFuc2FjdGlvbnM6IFsuLi50eERhdGEudHJhbnNhY3Rpb25zXSxcbiAgICAgIH0sXG4gICAgICBnYXNEYXRhOiB7XG4gICAgICAgIC4uLnRoaXMuX2dhc0RhdGEsXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNkRBQTBEO0FBRTFELG1EQUFrRztBQUNsRyxtQ0FBOEY7QUFFOUYsK0RBQTREO0FBQzVELG9EQUE0QjtBQUM1QixpREFJNkI7QUFDN0Isb0RBQTRCO0FBQzVCLDJDQUFnRTtBQUVoRSxNQUFhLGVBQWdCLFNBQVEsdUNBQW1EO0lBR3RGLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSx5Q0FBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsSUFBYyxlQUFlO1FBQzNCLE9BQU8sMEJBQWUsQ0FBQyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksQ0FBQyxVQUF1QjtRQUMxQixJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7UUFDOUIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLG1CQUFtQixDQUFDLFdBQWdDO1FBQ2xELElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDaEMsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLElBQUksQ0FBQyxHQUFZO1FBQ2YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVELGtCQUFrQjtJQUNSLGtCQUFrQixDQUFDLGNB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QUFDLEVBQUUscUJBQXFCLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUNqRyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLE1BQU0sR0FBRyxxQkFBcUIsQ0FBQyxTQUFTLENBQUM7UUFDL0MsT0FBTztZQUNMLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSztZQUNoQixNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDcEIsRUFBRSxFQUFFO2dCQUNGLE1BQU0sRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztnQkFDMUIsWUFBWSxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDO2FBQ3ZDO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLEdBQUcsSUFBSSxDQUFDLFFBQVE7Z0JBQ2hCLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLDJCQUFlLEdBQUcsQ0FBQyxDQUFDO2FBQzdEO1NBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQWpKRCwwQ0FpSkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBCYXNlS2V5LCBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsIFJlY2lwaWVudCwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgU3VpVHJhbnNhY3Rpb24sIFN1aVRyYW5zYWN0aW9uVHlwZSwgVHJhbnNmZXJQcm9ncmFtbWFibGVUcmFuc2FjdGlvbiB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zZmVyVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zZmVyVHJhbnNhY3Rpb24nO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHtcbiAgSW5wdXRzLFxuICBUcmFuc2FjdGlvbnMgYXMgVHJhbnNhY3Rpb25zQ29uc3RydWN0b3IsXG4gIFRyYW5zYWN0aW9uQmxvY2sgYXMgUHJvZ3JhbW1pbmdUcmFuc2FjdGlvbkJsb2NrQnVpbGRlcixcbn0gZnJvbSAnLi9teXN0ZW5sYWIvYnVpbGRlcic7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBNQVhfQ09NTUFORF9BUkdTLCBNQVhfR0FTX09CSkVDVFMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2ZlckJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXI8VHJhbnNmZXJQcm9ncmFtbWFibGVUcmFuc2FjdGlvbj4ge1xuICBwcm90ZWN0ZWQgX3JlY2lwaWVudHM6IFJlY2lwaWVudFtdO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IG5ldyBUcmFuc2ZlclRyYW5zYWN0aW9uKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5TZW5kO1xuICB9XG5cbiAgc2VuZChyZWNpcGllbnRzOiBSZWNpcGllbnRbXSk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVSZWNpcGllbnRzKHJlY2lwaWVudHMpO1xuICAgIHRoaXMuX3JlY2lwaWVudHMgPSByZWNpcGllbnRzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IFRyYW5zZmVyVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBpZiAoIXRyYW5zYWN0aW9uLnN1aVRyYW5zYWN0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMudmFsaWRhdGVUcmFuc2FjdGlvbkZpZWxkcygpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHNpZ24oa2V5OiBCYXNlS2V5KTogdm9pZCB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5zZXRTdWlUcmFuc2FjdGlvbih0aGlzLmJ1aWxkU3VpVHJhbnNhY3Rpb24oKSk7XG4gICAgc3VwZXIuc2lnbihrZXkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBmcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IFRyYW5zYWN0aW9uPFRyYW5zZmVyUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCB0eCA9IG5ldyBUcmFuc2ZlclRyYW5zYWN0aW9uKHRoaXMuX2NvaW5Db25maWcpO1xuICAgIHRoaXMudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgdHguZnJvbVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICB0aGlzLmluaXRCdWlsZGVyKHR4KTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPFRyYW5zZmVyUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+PiB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5zZXRTdWlUcmFuc2FjdGlvbih0aGlzLmJ1aWxkU3VpVHJhbnNhY3Rpb24oKSk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvblR5cGUodGhpcy50cmFuc2FjdGlvblR5cGUpO1xuXG4gICAgaWYgKHRoaXMuX3NpZ25lcikge1xuICAgICAgdGhpcy50cmFuc2FjdGlvbi5zaWduKHRoaXMuX3NpZ25lcik7XG4gICAgfVxuXG4gICAgdGhpcy5fc2lnbmF0dXJlcy5mb3JFYWNoKChzaWduYXR1cmUpID0+IHtcbiAgICAgIHRoaXMudHJhbnNhY3Rpb24uYWRkU2lnbmF0dXJlKHNpZ25hdHVyZS5wdWJsaWNLZXksIHNpZ25hdHVyZS5zaWduYXR1cmUpO1xuICAgIH0pO1xuXG4gICAgdGhpcy50cmFuc2FjdGlvbi5sb2FkSW5wdXRzQW5kT3V0cHV0cygpO1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgdGhlIHRyYW5zYWN0aW9uIGJ1aWxkZXIgZmllbGRzIHVzaW5nIHRoZSBkZWNvZGVkIHRyYW5zYWN0aW9uIGRhdGFcbiAgICpcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbn0gdHggdGhlIHRyYW5zYWN0aW9uIGRhdGFcbiAgICovXG4gIGluaXRCdWlsZGVyKHR4OiBUcmFuc2ZlclRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSB0eDtcblxuICAgIGlmICh0eC5zaWduYXR1cmUgJiYgdHguc2lnbmF0dXJlLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuX3NpZ25hdHVyZXMgPSBbdHguc3VpU2lnbmF0dXJlXTtcbiAgICB9XG5cbiAgICBjb25zdCB0eERhdGEgPSB0eC50b0pzb24oKTtcbiAgICB0aGlzLnR5cGUoU3VpVHJhbnNhY3Rpb25UeXBlLlRyYW5zZmVyKTtcbiAgICB0aGlzLnNlbmRlcih0eERhdGEuc2VuZGVyKTtcbiAgICB0aGlzLmdhc0RhdGEodHhEYXRhLmdhc0RhdGEpO1xuXG4gICAgY29uc3QgcmVjaXBpZW50cyA9IHV0aWxzLmdldFJlY2lwaWVudHModHguc3VpVHJhbnNhY3Rpb24pO1xuICAgIHRoaXMuc2VuZChyZWNpcGllbnRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgYWxsIGZpZWxkcyBhcmUgZGVmaW5lZFxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZVRyYW5zYWN0aW9uRmllbGRzKCk6IHZvaWQge1xuICAgIGFzc2VydCh0aGlzLl90eXBlLCBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCd0eXBlIGlzIHJlcXVpcmVkIGJlZm9yZSBidWlsZGluZycpKTtcbiAgICBhc3NlcnQodGhpcy5fc2VuZGVyLCBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdzZW5kZXIgaXMgcmVxdWlyZWQgYmVmb3JlIGJ1aWxkaW5nJykpO1xuICAgIGFzc2VydChcbiAgICAgIHRoaXMuX3JlY2lwaWVudHMgJiYgdGhpcy5fcmVjaXBpZW50cy5sZW5ndGggPiAwLFxuICAgICAgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignYXQgbGVhc3Qgb25lIHJlY2lwaWVudCBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKVxuICAgICk7XG4gICAgYXNzZXJ0KHRoaXMuX2dhc0RhdGEsIG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ2dhc0RhdGEgaXMgcmVxdWlyZWQgYmVmb3JlIGJ1aWxkaW5nJykpO1xuICAgIHRoaXMudmFsaWRhdGVHYXNEYXRhKHRoaXMuX2dhc0RhdGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIHRyYW5zZmVyIHByb2dyYW1tYWJsZSB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgYnVpbGRTdWlUcmFuc2FjdGlvbigpOiBTdWlUcmFuc2FjdGlvbjxUcmFuc2ZlclByb2dyYW1tYWJsZVRyYW5zYWN0aW9uPiB7XG4gICAgdGhpcy52YWxpZGF0ZVRyYW5zYWN0aW9uRmllbGRzKCk7XG4gICAgY29uc3QgcHJvZ3JhbW1hYmxlVHhCdWlsZGVyID0gbmV3IFByb2dyYW1taW5nVHJhbnNhY3Rpb25CbG9ja0J1aWxkZXIoKTtcblxuICAgIC8vIG51bWJlciBvZiBvYmplY3RzIHBhc3NlZCBhcyBnYXMgcGF5bWVudCBzaG91bGQgYmUgc3RyaWN0bHkgbGVzcyB0aGFuIGBNQVhfR0FTX09CSkVDVFNgLiBXaGVuIHRoZSB0cmFuc2FjdGlvblxuICAgIC8vIHJlcXVpcmVzIGEgbGFyZ2VyIG51bWJlciBvZiBpbnB1dHMgd2UgdXNlIHRoZSBtZXJnZSBjb21tYW5kIHRvIG1lcmdlIHRoZSByZXN0IG9mIHRoZSBvYmplY3RzIGludG8gdGhlIGdhc0NvaW5cbiAgICBpZiAodGhpcy5fZ2FzRGF0YS5wYXltZW50Lmxlbmd0aCA+PSBNQVhfR0FTX09CSkVDVFMpIHtcbiAgICAgIGNvbnN0IGdhc1BheW1lbnRPYmplY3RzID0gdGhpcy5fZ2FzRGF0YS5wYXltZW50XG4gICAgICAgIC5zbGljZShNQVhfR0FTX09CSkVDVFMgLSAxKVxuICAgICAgICAubWFwKChvYmplY3QpID0+IElucHV0cy5PYmplY3RSZWYob2JqZWN0KSk7XG5cbiAgICAgIC8vIGxpbWl0IGZvciB0b3RhbCBudW1iZXIgb2YgYGFyZ3M6IENhbGxBcmdbXWAgZm9yIGEgc2luZ2xlIGNvbW1hbmQgaXMgTUFYX0NPTU1BTkRfQVJHUyBzbyB0aGUgbWF4IGxlbmd0aCBvZlxuICAgICAgLy8gYHNvdXJjZXNbXWAgZm9yIGEgYG1lcmdlQ29pbnMoZGVzdGluYXRpb24sIHNvdXJjZXNbXSlgIGNvbW1hbmQgaXMgTUFYX0NPTU1BTkRfQVJHUyAtIDEgKDEgdXNlZCB1cCBmb3JcbiAgICAgIC8vIGBkZXN0aW5hdGlvbmApLiBXZSBuZWVkIHRvIGNyZWF0ZSBhIHRvdGFsIG9mIGBnYXNQYXltZW50T2JqZWN0cy8oTUFYX0NPTU1BTkRfQVJHUyAtIDEpYCBtZXJnZSBjb21tYW5kcyB0b1xuICAgICAgLy8gbWVyZ2UgYWxsIHRoZSBvYmplY3RzXG4gICAgICB3aGlsZSAoZ2FzUGF5bWVudE9iamVjdHMubGVuZ3RoID4gMCkge1xuICAgICAgICBwcm9ncmFtbWFibGVUeEJ1aWxkZXIubWVyZ2VDb2lucyhcbiAgICAgICAgICBwcm9ncmFtbWFibGVUeEJ1aWxkZXIuZ2FzLFxuICAgICAgICAgIGdhc1BheW1lbnRPYmplY3RzLnNwbGljZSgwLCBNQVhfQ09NTUFORF9BUkdTIC0gMSkubWFwKChvYmplY3QpID0+IHByb2dyYW1tYWJsZVR4QnVpbGRlci5vYmplY3Qob2JqZWN0KSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLl9yZWNpcGllbnRzLmZvckVhY2goKHJlY2lwaWVudCkgPT4ge1xuICAgICAgY29uc3QgY29pbiA9IHByb2dyYW1tYWJsZVR4QnVpbGRlci5hZGQoXG4gICAgICAgIFRyYW5zYWN0aW9uc0NvbnN0cnVjdG9yLlNwbGl0Q29pbnMocHJvZ3JhbW1hYmxlVHhCdWlsZGVyLmdhcywgW1xuICAgICAgICAgIHByb2dyYW1tYWJsZVR4QnVpbGRlci5wdXJlKE51bWJlcihyZWNpcGllbnQuYW1vdW50KSksXG4gICAgICAgIF0pXG4gICAgICApO1xuICAgICAgcHJvZ3JhbW1hYmxlVHhCdWlsZGVyLmFkZChcbiAgICAgICAgVHJhbnNhY3Rpb25zQ29uc3RydWN0b3IuVHJhbnNmZXJPYmplY3RzKFtjb2luXSwgcHJvZ3JhbW1hYmxlVHhCdWlsZGVyLm9iamVjdChyZWNpcGllbnQuYWRkcmVzcykpXG4gICAgICApO1xuICAgIH0pO1xuICAgIGNvbnN0IHR4RGF0YSA9IHByb2dyYW1tYWJsZVR4QnVpbGRlci5ibG9ja0RhdGE7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IHRoaXMuX3R5cGUsXG4gICAgICBzZW5kZXI6IHRoaXMuX3NlbmRlcixcbiAgICAgIHR4OiB7XG4gICAgICAgIGlucHV0czogWy4uLnR4RGF0YS5pbnB1dHNdLFxuICAgICAgICB0cmFuc2FjdGlvbnM6IFsuLi50eERhdGEudHJhbnNhY3Rpb25zXSxcbiAgICAgIH0sXG4gICAgICBnYXNEYXRhOiB7XG4gICAgICAgIC4uLnRoaXMuX2dhc0RhdGEsXG4gICAgICAgIHBheW1lbnQ6IHRoaXMuX2dhc0RhdGEucGF5bWVudC5zbGljZSgwLCBNQVhfR0FTX09CSkVDVFMgLSAxKSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -1,7 +1,7 @@
1
- /// <reference types="node" />
2
1
  import { BaseKey, PublicKey as BasePublicKey, Signature, TransactionType } from '@bitgo-beta/sdk-core';
3
2
  import { SuiTransaction, TransactionExplanation, TransferProgrammableTransaction, TxData } from './iface';
4
3
  import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
4
+ import { Buffer } from 'buffer';
5
5
  import { Transaction } from './transaction';
6
6
  import { SuiObjectRef } from './mystenlab/types';
7
7
  export declare class TransferTransaction extends Transaction<TransferProgrammableTransaction> {
@@ -1 +1 @@
1
- {"version":3,"file":"transferTransaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transferTransaction.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,OAAO,EAGP,SAAS,IAAI,aAAa,EAC1B,SAAS,EAET,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,+BAA+B,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1G,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAG7D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAW,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAK1D,qBAAa,mBAAoB,SAAQ,WAAW,CAAC,+BAA+B,CAAC;gBACvE,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,IAAI,cAAc,IAAI,cAAc,CAAC,+BAA+B,CAAC,CAEpE;IAED,iBAAiB,CAAC,EAAE,EAAE,cAAc,CAAC,+BAA+B,CAAC,GAAG,IAAI;IAI5E,mBAAmB;IACnB,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,YAAY,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAM/D,IAAI,YAAY,IAAI,SAAS,CAE5B;IAED,aAAa,IAAI,YAAY,EAAE;IAI/B,kBAAkB;IAClB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAI9B,kBAAkB;IAClB,iBAAiB,IAAI,MAAM;IAO3B,kBAAkB;IAClB,MAAM,IAAI,MAAM;IAehB,kBAAkB;IAClB,kBAAkB,IAAI,sBAAsB;IAwB5C;;;;OAIG;IACH,eAAe,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;IAIvD;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAqB5B;;;;OAIG;IACH,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAchD;;;;OAIG;IACI,SAAS,IAAI,MAAM;IA2B1B;;;;;OAKG;IACH,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,sBAAsB,GAAG,sBAAsB;CAW5G"}
1
+ {"version":3,"file":"transferTransaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transferTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAGP,SAAS,IAAI,aAAa,EAC1B,SAAS,EAET,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,+BAA+B,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1G,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAW,YAAY,EAAuB,MAAM,mBAAmB,CAAC;AAM/E,qBAAa,mBAAoB,SAAQ,WAAW,CAAC,+BAA+B,CAAC;gBACvE,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,IAAI,cAAc,IAAI,cAAc,CAAC,+BAA+B,CAAC,CAEpE;IAED,iBAAiB,CAAC,EAAE,EAAE,cAAc,CAAC,+BAA+B,CAAC,GAAG,IAAI;IAI5E,mBAAmB;IACnB,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,YAAY,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAM/D,IAAI,YAAY,IAAI,SAAS,CAE5B;IAED,aAAa,IAAI,YAAY,EAAE;IAI/B,kBAAkB;IAClB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAI9B,kBAAkB;IAClB,iBAAiB,IAAI,MAAM;IAO3B,kBAAkB;IAClB,MAAM,IAAI,MAAM;IAkBhB,kBAAkB;IAClB,kBAAkB,IAAI,sBAAsB;IAwB5C;;;;OAIG;IACH,eAAe,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;IAIvD;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAqB5B;;;;OAIG;IACH,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAchD;;;;OAIG;IACI,SAAS,IAAI,MAAM;IA2C1B;;;;;OAKG;IACH,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,sBAAsB,GAAG,sBAAsB;CAgB5G"}
@@ -6,10 +6,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.TransferTransaction = void 0;
7
7
  const sdk_core_1 = require("@bitgo-beta/sdk-core");
8
8
  const constants_1 = require("./constants");
9
+ const buffer_1 = require("buffer");
9
10
  const transaction_1 = require("./transaction");
11
+ const types_1 = require("./mystenlab/types");
10
12
  const utils_1 = __importDefault(require("./utils"));
11
13
  const builder_1 = require("./mystenlab/builder");
12
14
  const bcs_1 = require("@mysten/bcs");
15
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
13
16
  class TransferTransaction extends transaction_1.Transaction {
14
17
  constructor(_coinConfig) {
15
18
  super(_coinConfig);
@@ -56,7 +59,10 @@ class TransferTransaction extends transaction_1.Transaction {
56
59
  id: this._id,
57
60
  sender: tx.sender,
58
61
  kind: { ProgrammableTransaction: tx.tx },
59
- gasData: tx.gasData,
62
+ gasData: {
63
+ ...tx.gasData,
64
+ payment: [...tx.gasData.payment, ...this.getInputGasPaymentObjectsFromTx(tx.tx)],
65
+ },
60
66
  expiration: { None: null },
61
67
  };
62
68
  }
@@ -138,13 +144,24 @@ class TransferTransaction extends transaction_1.Transaction {
138
144
  if (!this._suiTransaction) {
139
145
  throw new sdk_core_1.InvalidTransactionError('empty transaction');
140
146
  }
141
- const inputs = this._suiTransaction.tx.inputs.map((input, index) => {
142
- if (input.hasOwnProperty('Pure')) {
147
+ const inputs = this._suiTransaction.tx.inputs.map((input) => {
148
+ if (input.hasOwnProperty('Object')) {
143
149
  return input;
144
150
  }
145
- else {
146
- return builder_1.Inputs.Pure(input.value, input.type === 'pure' ? bcs_1.BCS.U64 : bcs_1.BCS.ADDRESS);
151
+ if (input.hasOwnProperty('Pure')) {
152
+ if (input.Pure.length === constants_1.SUI_ADDRESS_LENGTH) {
153
+ const address = (0, types_1.normalizeSuiAddress)(builder_1.builder.de(bcs_1.BCS.ADDRESS, buffer_1.Buffer.from(input.Pure).toString('base64'), 'base64'));
154
+ return builder_1.Inputs.Pure(address, bcs_1.BCS.ADDRESS);
155
+ }
156
+ else {
157
+ const amount = builder_1.builder.de(bcs_1.BCS.U64, buffer_1.Buffer.from(input.Pure).toString('base64'), 'base64');
158
+ return builder_1.Inputs.Pure(amount, bcs_1.BCS.U64);
159
+ }
147
160
  }
161
+ if (input.kind === 'Input' && (input.value.hasOwnProperty('Object') || input.value.hasOwnProperty('Pure'))) {
162
+ return input.value;
163
+ }
164
+ return builder_1.Inputs.Pure(input.value, input.type === 'pure' ? bcs_1.BCS.U64 : bcs_1.BCS.ADDRESS);
148
165
  });
149
166
  const programmableTx = {
150
167
  inputs,
@@ -153,7 +170,10 @@ class TransferTransaction extends transaction_1.Transaction {
153
170
  return {
154
171
  sender: this._suiTransaction.sender,
155
172
  expiration: { None: null },
156
- gasData: this._suiTransaction.gasData,
173
+ gasData: {
174
+ ...this._suiTransaction.gasData,
175
+ payment: this._suiTransaction.gasData.payment.slice(0, constants_1.MAX_GAS_OBJECTS - 1),
176
+ },
157
177
  kind: {
158
178
  ProgrammableTransaction: programmableTx,
159
179
  },
@@ -168,7 +188,10 @@ class TransferTransaction extends transaction_1.Transaction {
168
188
  explainTransferTransaction(json, explanationResult) {
169
189
  const recipients = utils_1.default.getRecipients(this.suiTransaction);
170
190
  const outputs = recipients.map((recipient) => recipient);
171
- const outputAmount = recipients.reduce((accumulator, current) => accumulator + Number(current.amount), 0);
191
+ const outputAmountBN = recipients.reduce(
192
+ // amount can be greater than number range for SUI
193
+ (accumulator, current) => accumulator.plus(current.amount), new bignumber_js_1.default(0));
194
+ const outputAmount = outputAmountBN.toString();
172
195
  return {
173
196
  ...explanationResult,
174
197
  outputAmount,
@@ -177,4 +200,4 @@ class TransferTransaction extends transaction_1.Transaction {
177
200
  }
178
201
  }
179
202
  exports.TransferTransaction = TransferTransaction;
180
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJUcmFuc2FjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNmZXJUcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxtREFROEI7QUFHOUIsMkNBQStDO0FBRS9DLCtDQUE0QztBQUU1QyxvREFBNEI7QUFDNUIsaURBQTZDO0FBQzdDLHFDQUFrQztBQUVsQyxNQUFhLG1CQUFvQixTQUFRLHlCQUE0QztJQUNuRixZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBbUQ7UUFDbkUsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELG1CQUFtQjtJQUNuQixJQUFJLEVBQUU7UUFDSixPQUFPLElBQUksQ0FBQyxHQUFHLElBQUksNEJBQWdCLENBQUM7SUFDdEMsQ0FBQztJQUVELFlBQVksQ0FBQyxTQUF3QixFQUFFLFNBQWlCO1FBQ3RELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxlQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsT0FBTyxD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QyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNoRjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxjQUFjLEdBQUc7WUFDckIsTUFBTTtZQUNOLFlBQVksRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxZQUFZO1NBQ2hCLENBQUM7UUFFckMsT0FBTztZQUNMLE1BQU0sRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU07WUFDbkMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtZQUMxQixPQUFPLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPO1lBQ3JDLElBQUksRUFBRTtnQkFDSix1QkFBdUIsRUFBRSxjQUFjO2FBQ3hDO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILDBCQUEwQixDQUFDLElBQVksRUFBRSxpQkFBeUM7UUFDaEYsTUFBTSxVQUFVLEdBQUcsZUFBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDNUQsTUFBTSxPQUFPLEdBQTJCLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pGLE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUUxRyxPQUFPO1lBQ0wsR0FBRyxpQkFBaUI7WUFDcEIsWUFBWTtZQUNaLE9BQU87U0FDUixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBM0xELGtEQTJMQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhc2VLZXksXG4gIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLFxuICBQYXJzZVRyYW5zYWN0aW9uRXJyb3IsXG4gIFB1YmxpY0tleSBhcyBCYXNlUHVibGljS2V5LFxuICBTaWduYXR1cmUsXG4gIFRyYW5zYWN0aW9uUmVjaXBpZW50LFxuICBUcmFuc2FjdGlvblR5cGUsXG59IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IFN1aVRyYW5zYWN0aW9uLCBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uLCBUcmFuc2ZlclByb2dyYW1tYWJsZVRyYW5zYWN0aW9uLCBUeERhdGEgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IFVOQVZBSUxBQkxFX1RFWFQgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IENhbGxBcmcsIFN1aU9iamVjdFJlZiB9IGZyb20gJy4vbXlzdGVubGFiL3R5cGVzJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IElucHV0cyB9IGZyb20gJy4vbXlzdGVubGFiL2J1aWxkZXInO1xuaW1wb3J0IHsgQkNTIH0gZnJvbSAnQG15c3Rlbi9iY3MnO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNmZXJUcmFuc2FjdGlvbiBleHRlbmRzIFRyYW5zYWN0aW9uPFRyYW5zZmVyUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+IHtcbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgZ2V0IHN1aVRyYW5zYWN0aW9uKCk6IFN1aVRyYW5zYWN0aW9uPFRyYW5zZmVyUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+IHtcbiAgICByZXR1cm4gdGhpcy5fc3VpVHJhbnNhY3Rpb247XG4gIH1cblxuICBzZXRTdWlUcmFuc2FjdGlvbih0eDogU3VpVHJhbnNhY3Rpb248VHJhbnNmZXJQcm9ncmFtbWFibGVUcmFuc2FjdGlvbj4pOiB2b2lkIHtcbiAgICB0aGlzLl9zdWlUcmFuc2FjdGlvbiA9IHR4O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICoqL1xuICBnZXQgaWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5faWQgfHwgVU5BVkFJTEFCTEVfVEVYVDtcbiAgfVxuXG4gIGFkZFNpZ25hdHVyZShwdWJsaWNLZXk6IEJhc2VQdWJsaWNLZXksIHNpZ25hdHVyZTogQnVmZmVyKTogdm9pZCB7XG4gICAgdGhpcy5fc2lnbmF0dXJlcy5wdXNoKHNpZ25hdHVyZS50b1N0cmluZygnaGV4JykpO1xuICAgIHRoaXMuX3NpZ25hdHVyZSA9IHsgcHVibGljS2V5LCBzaWduYXR1cmUgfTtcbiAgICB0aGlzLnNlcmlhbGl6ZSgpO1xuICB9XG5cbiAgZ2V0IHN1aVNpZ25hdHVyZSgpOiBTaWduYXR1cmUge1xuICAgIHJldHVybiB0aGlzLl9zaWduYXR1cmU7XG4gIH1cblxuICBnZXRJbnB1dENvaW5zKCk6IFN1aU9iamVjdFJlZltdIHtcbiAgICByZXR1cm4gdXRpbHMubm9ybWFsaXplQ29pbnModGhpcy5zdWlUcmFuc2FjdGlvbi50eC5pbnB1dHMpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGNhblNpZ24oa2V5OiBCYXNlS2V5KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdG9Ccm9hZGNhc3RGb3JtYXQoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuX3N1aVRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNlcmlhbGl6ZSgpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHRvSnNvbigpOiBUeERhdGEge1xuICAgIGlmICghdGhpcy5fc3VpVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZVRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuXG4gICAgY29uc3QgdHggPSB0aGlzLl9zdWlUcmFuc2FjdGlvbjtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IHRoaXMuX2lkLFxuICAgICAgc2VuZGVyOiB0eC5zZW5kZXIsXG4gICAgICBraW5kOiB7IFByb2dyYW1tYWJsZVRyYW5zYWN0aW9uOiB0eC50eCB9LFxuICAgICAgZ2FzRGF0YTogdHguZ2FzRGF0YSxcbiAgICAgIGV4cGlyYXRpb246IHsgTm9uZTogbnVsbCB9LFxuICAgIH07XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgZXhwbGFpblRyYW5zYWN0aW9uKCk6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMudG9Kc29uKCk7XG4gICAgY29uc3QgZGlzcGxheU9yZGVyID0gWydpZCcsICdvdXRwdXRzJywgJ291dHB1dEFtb3VudCcsICdjaGFuZ2VPdXRwdXRzJywgJ2NoYW5nZUFtb3VudCcsICdmZWUnLCAndHlwZSddO1xuICAgIGNvbnN0IG91dHB1dHM6IFRyYW5zYWN0aW9uUmVjaXBpZW50W10gPSBbXTtcblxuICAgIGNvbnN0IGV4cGxhbmF0aW9uUmVzdWx0OiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uID0ge1xuICAgICAgZGlzcGxheU9yZGVyLFxuICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICBvdXRwdXRzLFxuICAgICAgb3V0cHV0QW1vdW50OiAnMCcsXG4gICAgICBjaGFuZ2VPdXRwdXRzOiBbXSxcbiAgICAgIGNoYW5nZUFtb3VudDogJzAnLFxuICAgICAgZmVlOiB7IGZlZTogdGhpcy5zdWlUcmFuc2FjdGlvbi5nYXNEYXRhLmJ1ZGdldC50b1N0cmluZygpIH0sXG4gICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgfTtcblxuICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TZW5kOlxuICAgICAgICByZXR1cm4gdGhpcy5leHBsYWluVHJhbnNmZXJUcmFuc2FjdGlvbihyZXN1bHQsIGV4cGxhbmF0aW9uUmVzdWx0KTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignVHJhbnNhY3Rpb24gdHlwZSBub3Qgc3VwcG9ydGVkJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgdHJhbnNhY3Rpb24gdHlwZS5cbiAgICpcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvblR5cGV9IHRyYW5zYWN0aW9uVHlwZSBUaGUgdHJhbnNhY3Rpb24gdHlwZSB0byBiZSBzZXQuXG4gICAqL1xuICB0cmFuc2FjdGlvblR5cGUodHJhbnNhY3Rpb25UeXBlOiBUcmFuc2FjdGlvblR5cGUpOiB2b2lkIHtcbiAgICB0aGlzLl90eXBlID0gdHJhbnNhY3Rpb25UeXBlO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgdGhlIGlucHV0IGFuZCBvdXRwdXQgZGF0YSBvbiB0aGlzIHRyYW5zYWN0aW9uLlxuICAgKi9cbiAgbG9hZElucHV0c0FuZE91dHB1dHMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnN1aVRyYW5zYWN0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcmVjaXBpZW50cyA9IHV0aWxzLmdldFJlY2lwaWVudHModGhpcy5fc3VpVHJhbnNhY3Rpb24pO1xuICAgIGNvbnN0IHRvdGFsQW1vdW50ID0gcmVjaXBpZW50cy5yZWR1Y2UoKGFjY3VtdWxhdG9yLCBjdXJyZW50KSA9PiBhY2N1bXVsYXRvciArIE51bWJlcihjdXJyZW50LmFtb3VudCksIDApO1xuICAgIHRoaXMuX291dHB1dHMgPSByZWNpcGllbnRzLm1hcCgocmVjaXBpZW50LCBpbmRleCkgPT4gKHtcbiAgICAgIGFkZHJlc3M6IHJlY2lwaWVudC5hZGRyZXNzLFxuICAgICAgdmFsdWU6IHJlY2lwaWVudC5hbW91bnQsXG4gICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgfSkpO1xuICAgIHRoaXMuX2lucHV0cyA9IFtcbiAgICAgIHtcbiAgICAgICAgYWRkcmVzczogdGhpcy5zdWlUcmFuc2FjdGlvbi5zZW5kZXIsXG4gICAgICAgIHZhbHVlOiB0b3RhbEFtb3VudC50b1N0cmluZygpLFxuICAgICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgICB9LFxuICAgIF07XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGlzIHRyYW5zYWN0aW9uIHBheWxvYWRcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJhd1RyYW5zYWN0aW9uXG4gICAqL1xuICBmcm9tUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICB1dGlscy5pc1ZhbGlkUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb24pO1xuICAgICAgdGhpcy5fc3VpVHJhbnNhY3Rpb24gPSBUcmFuc2FjdGlvbi5kZXNlcmlhbGl6ZVN1aVRyYW5zYWN0aW9uKFxuICAgICAgICByYXdUcmFuc2FjdGlvblxuICAgICAgKSBhcyBTdWlUcmFuc2FjdGlvbjxUcmFuc2ZlclByb2dyYW1tYWJsZVRyYW5zYWN0aW9uPjtcbiAgICAgIHRoaXMuX3R5cGUgPSBUcmFuc2FjdGlvblR5cGUuU2VuZDtcbiAgICAgIHRoaXMuX2lkID0gdGhpcy5fc3VpVHJhbnNhY3Rpb24uaWQ7XG4gICAgICB0aGlzLmxvYWRJbnB1dHNBbmRPdXRwdXRzKCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSGVscGVyIGZ1bmN0aW9uIGZvciBzZXJpYWxpemUoKSB0byBnZXQgdGhlIGNvcnJlY3QgdHhEYXRhIHdpdGggdHJhbnNhY3Rpb24gdHlwZVxuICAgKlxuICAgKiBAcmV0dXJuIHtUeERhdGF9XG4gICAqL1xuICBwdWJsaWMgZ2V0VHhEYXRhKCk6IFR4RGF0YSB7XG4gICAgaWYgKCF0aGlzLl9zdWlUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdlbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICBjb25zdCBpbnB1dHM6IENhbGxBcmdbXSA9IHRoaXMuX3N1aVRyYW5zYWN0aW9uLnR4LmlucHV0cy5tYXAoKGlucHV0LCBpbmRleCkgPT4ge1xuICAgICAgaWYgKGlucHV0Lmhhc093blByb3BlcnR5KCdQdXJlJykpIHtcbiAgICAgICAgcmV0dXJuIGlucHV0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIElucHV0cy5QdXJlKGlucHV0LnZhbHVlLCBpbnB1dC50eXBlID09PSAncHVyZScgPyBCQ1MuVTY0IDogQkNTLkFERFJFU1MpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3QgcHJvZ3JhbW1hYmxlVHggPSB7XG4gICAgICBpbnB1dHMsXG4gICAgICB0cmFuc2FjdGlvbnM6IHRoaXMuX3N1aVRyYW5zYWN0aW9uLnR4LnRyYW5zYWN0aW9ucyxcbiAgICB9IGFzIFRyYW5zZmVyUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb247XG5cbiAgICByZXR1cm4ge1xuICAgICAgc2VuZGVyOiB0aGlzLl9zdWlUcmFuc2FjdGlvbi5zZW5kZXIsXG4gICAgICBleHBpcmF0aW9uOiB7IE5vbmU6IG51bGwgfSxcbiAgICAgIGdhc0RhdGE6IHRoaXMuX3N1aVRyYW5zYWN0aW9uLmdhc0RhdGEsXG4gICAgICBraW5kOiB7XG4gICAgICAgIFByb2dyYW1tYWJsZVRyYW5zYWN0aW9uOiBwcm9ncmFtbWFibGVUeCxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgY29tcGxldGUgZXhwbGFuYXRpb24gZm9yIGEgdHJhbnNmZXIgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHtUeERhdGF9IGpzb24gVGhlIHRyYW5zYWN0aW9uIGRhdGEgaW4ganNvbiBmb3JtYXRcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbkV4cGxhbmF0aW9ufSBleHBsYW5hdGlvblJlc3VsdCBUaGUgdHJhbnNhY3Rpb24gZXhwbGFuYXRpb24gdG8gYmUgY29tcGxldGVkXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkV4cGxhbmF0aW9ufVxuICAgKi9cbiAgZXhwbGFpblRyYW5zZmVyVHJhbnNhY3Rpb24oanNvbjogVHhEYXRhLCBleHBsYW5hdGlvblJlc3VsdDogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbik6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICAgIGNvbnN0IHJlY2lwaWVudHMgPSB1dGlscy5nZXRSZWNpcGllbnRzKHRoaXMuc3VpVHJhbnNhY3Rpb24pO1xuICAgIGNvbnN0IG91dHB1dHM6IFRyYW5zYWN0aW9uUmVjaXBpZW50W10gPSByZWNpcGllbnRzLm1hcCgocmVjaXBpZW50KSA9PiByZWNpcGllbnQpO1xuICAgIGNvbnN0IG91dHB1dEFtb3VudCA9IHJlY2lwaWVudHMucmVkdWNlKChhY2N1bXVsYXRvciwgY3VycmVudCkgPT4gYWNjdW11bGF0b3IgKyBOdW1iZXIoY3VycmVudC5hbW91bnQpLCAwKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5leHBsYW5hdGlvblJlc3VsdCxcbiAgICAgIG91dHB1dEFtb3VudCxcbiAgICAgIG91dHB1dHMsXG4gICAgfTtcbiAgfVxufVxuIl19
203
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJUcmFuc2FjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNmZXJUcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxtREFROEI7QUFHOUIsMkNBQW9GO0FBQ3BGLG1DQUFnQztBQUNoQywrQ0FBNEM7QUFDNUMsNkNBQStFO0FBQy9FLG9EQUE0QjtBQUM1QixpREFBNkU7QUFDN0UscUNBQWtDO0FBQ2xDLGdFQUFxQztBQUVyQyxNQUFhLG1CQUFvQixTQUFRLHlCQUE0QztJQUNuRixZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBbUQ7UUFDbkUsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELG1CQUFtQjtJQUNuQixJQUFJLEVBQUU7UUFDSixPQUFPLElBQUksQ0FBQyxHQUFHLElBQUksNEJBQWdCLENBQUM7SUFDdEMsQ0FBQztJQUVELFlBQVksQ0FBQyxTQUF3QixFQUFFLFNBQWlCO1FBQ3RELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxlQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxD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LE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFDMUQsSUFBSSxzQkFBUyxDQUFDLENBQUMsQ0FBQyxDQUNqQixDQUFDO1FBQ0YsTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRS9DLE9BQU87WUFDTCxHQUFHLGlCQUFpQjtZQUNwQixZQUFZO1lBQ1osT0FBTztTQUNSLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFuTkQsa0RBbU5DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmFzZUtleSxcbiAgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IsXG4gIFBhcnNlVHJhbnNhY3Rpb25FcnJvcixcbiAgUHVibGljS2V5IGFzIEJhc2VQdWJsaWNLZXksXG4gIFNpZ25hdHVyZSxcbiAgVHJhbnNhY3Rpb25SZWNpcGllbnQsXG4gIFRyYW5zYWN0aW9uVHlwZSxcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgU3VpVHJhbnNhY3Rpb24sIFRyYW5zYWN0aW9uRXhwbGFuYXRpb24sIFRyYW5zZmVyUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24sIFR4RGF0YSB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgTUFYX0dBU19PQkpFQ1RTLCBTVUlfQUREUkVTU19MRU5HVEgsIFVOQVZBSUxBQkxFX1RFWFQgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IENhbGxBcmcsIFN1aU9iamVjdFJlZiwgbm9ybWFsaXplU3VpQWRkcmVzcyB9IGZyb20gJy4vbXlzdGVubGFiL3R5cGVzJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IGJ1aWxkZXIsIElucHV0cywgVHJhbnNhY3Rpb25CbG9ja0lucHV0IH0gZnJvbSAnLi9teXN0ZW5sYWIvYnVpbGRlcic7XG5pbXBvcnQgeyBCQ1MgfSBmcm9tICdAbXlzdGVuL2Jjcyc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2ZlclRyYW5zYWN0aW9uIGV4dGVuZHMgVHJhbnNhY3Rpb248VHJhbnNmZXJQcm9ncmFtbWFibGVUcmFuc2FjdGlvbj4ge1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICBnZXQgc3VpVHJhbnNhY3Rpb24oKTogU3VpVHJhbnNhY3Rpb248VHJhbnNmZXJQcm9ncmFtbWFibGVUcmFuc2FjdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLl9zdWlUcmFuc2FjdGlvbjtcbiAgfVxuXG4gIHNldFN1aVRyYW5zYWN0aW9uKHR4OiBTdWlUcmFuc2FjdGlvbjxUcmFuc2ZlclByb2dyYW1tYWJsZVRyYW5zYWN0aW9uPik6IHZvaWQge1xuICAgIHRoaXMuX3N1aVRyYW5zYWN0aW9uID0gdHg7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKiovXG4gIGdldCBpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9pZCB8fCBVTkFWQUlMQUJMRV9URVhUO1xuICB9XG5cbiAgYWRkU2lnbmF0dXJlKHB1YmxpY0tleTogQmFzZVB1YmxpY0tleSwgc2lnbmF0dXJlOiBCdWZmZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9zaWduYXR1cmVzLnB1c2goc2lnbmF0dXJlLnRvU3RyaW5nKCdoZXgnKSk7XG4gICAgdGhpcy5fc2lnbmF0dXJlID0geyBwdWJsaWNLZXksIHNpZ25hdHVyZSB9O1xuICAgIHRoaXMuc2VyaWFsaXplKCk7XG4gIH1cblxuICBnZXQgc3VpU2lnbmF0dXJlKCk6IFNpZ25hdHVyZSB7XG4gICAgcmV0dXJuIHRoaXMuX3NpZ25hdHVyZTtcbiAgfVxuXG4gIGdldElucHV0Q29pbnMoKTogU3VpT2JqZWN0UmVmW10ge1xuICAgIHJldHVybiB1dGlscy5ub3JtYWxpemVDb2lucyh0aGlzLnN1aVRyYW5zYWN0aW9uLnR4LmlucHV0cyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgY2FuU2lnbihrZXk6IEJhc2VLZXkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB0b0Jyb2FkY2FzdEZvcm1hdCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5fc3VpVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc2VyaWFsaXplKCk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdG9Kc29uKCk6IFR4RGF0YSB7XG4gICAgaWYgKCF0aGlzLl9zdWlUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG5cbiAgICBjb25zdCB0eCA9IHRoaXMuX3N1aVRyYW5zYWN0aW9uO1xuICAgIHJldHVybiB7XG4gICAgICBpZDogdGhpcy5faWQsXG4gICAgICBzZW5kZXI6IHR4LnNlbmRlcixcbiAgICAgIGtpbmQ6IHsgUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb246IHR4LnR4IH0sXG4gICAgICBnYXNEYXRhOiB7XG4gICAgICAgIC4uLnR4Lmdhc0RhdGEsXG4gICAgICAgIHBheW1lbnQ6IFsuLi50eC5nYXNEYXRhLnBheW1lbnQsIC4uLnRoaXMuZ2V0SW5wdXRHYXNQYXltZW50T2JqZWN0c0Zyb21UeCh0eC50eCldLFxuICAgICAgfSxcbiAgICAgIGV4cGlyYXRpb246IHsgTm9uZTogbnVsbCB9LFxuICAgIH07XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgZXhwbGFpblRyYW5zYWN0aW9uKCk6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMudG9Kc29uKCk7XG4gICAgY29uc3QgZGlzcGxheU9yZGVyID0gWydpZCcsICdvdXRwdXRzJywgJ291dHB1dEFtb3VudCcsICdjaGFuZ2VPdXRwdXRzJywgJ2NoYW5nZUFtb3VudCcsICdmZWUnLCAndHlwZSddO1xuICAgIGNvbnN0IG91dHB1dHM6IFRyYW5zYWN0aW9uUmVjaXBpZW50W10gPSBbXTtcblxuICAgIGNvbnN0IGV4cGxhbmF0aW9uUmVzdWx0OiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uID0ge1xuICAgICAgZGlzcGxheU9yZGVyLFxuICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICBvdXRwdXRzLFxuICAgICAgb3V0cHV0QW1vdW50OiAnMCcsXG4gICAgICBjaGFuZ2VPdXRwdXRzOiBbXSxcbiAgICAgIGNoYW5nZUFtb3VudDogJzAnLFxuICAgICAgZmVlOiB7IGZlZTogdGhpcy5zdWlUcmFuc2FjdGlvbi5nYXNEYXRhLmJ1ZGdldC50b1N0cmluZygpIH0sXG4gICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgfTtcblxuICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TZW5kOlxuICAgICAgICByZXR1cm4gdGhpcy5leHBsYWluVHJhbnNmZXJUcmFuc2FjdGlvbihyZXN1bHQsIGV4cGxhbmF0aW9uUmVzdWx0KTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignVHJhbnNhY3Rpb24gdHlwZSBub3Qgc3VwcG9ydGVkJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgdHJhbnNhY3Rpb24gdHlwZS5cbiAgICpcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvblR5cGV9IHRyYW5zYWN0aW9uVHlwZSBUaGUgdHJhbnNhY3Rpb24gdHlwZSB0byBiZSBzZXQuXG4gICAqL1xuICB0cmFuc2FjdGlvblR5cGUodHJhbnNhY3Rpb25UeXBlOiBUcmFuc2FjdGlvblR5cGUpOiB2b2lkIHtcbiAgICB0aGlzLl90eXBlID0gdHJhbnNhY3Rpb25UeXBlO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgdGhlIGlucHV0IGFuZCBvdXRwdXQgZGF0YSBvbiB0aGlzIHRyYW5zYWN0aW9uLlxuICAgKi9cbiAgbG9hZElucHV0c0FuZE91dHB1dHMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnN1aVRyYW5zYWN0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcmVjaXBpZW50cyA9IHV0aWxzLmdldFJlY2lwaWVudHModGhpcy5fc3VpVHJhbnNhY3Rpb24pO1xuICAgIGNvbnN0IHRvdGFsQW1vdW50ID0gcmVjaXBpZW50cy5yZWR1Y2UoKGFjY3VtdWxhdG9yLCBjdXJyZW50KSA9PiBhY2N1bXVsYXRvciArIE51bWJlcihjdXJyZW50LmFtb3VudCksIDApO1xuICAgIHRoaXMuX291dHB1dHMgPSByZWNpcGllbnRzLm1hcCgocmVjaXBpZW50LCBpbmRleCkgPT4gKHtcbiAgICAgIGFkZHJlc3M6IHJlY2lwaWVudC5hZGRyZXNzLFxuICAgICAgdmFsdWU6IHJlY2lwaWVudC5hbW91bnQsXG4gICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgfSkpO1xuICAgIHRoaXMuX2lucHV0cyA9IFtcbiAgICAgIHtcbiAgICAgICAgYWRkcmVzczogdGhpcy5zdWlUcmFuc2FjdGlvbi5zZW5kZXIsXG4gICAgICAgIHZhbHVlOiB0b3RhbEFtb3VudC50b1N0cmluZygpLFxuICAgICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgICB9LFxuICAgIF07XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGlzIHRyYW5zYWN0aW9uIHBheWxvYWRcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJhd1RyYW5zYWN0aW9uXG4gICAqL1xuICBmcm9tUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICB1dGlscy5pc1ZhbGlkUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb24pO1xuICAgICAgdGhpcy5fc3VpVHJhbnNhY3Rpb24gPSBUcmFuc2FjdGlvbi5kZXNlcmlhbGl6ZVN1aVRyYW5zYWN0aW9uKFxuICAgICAgICByYXdUcmFuc2FjdGlvblxuICAgICAgKSBhcyBTdWlUcmFuc2FjdGlvbjxUcmFuc2ZlclByb2dyYW1tYWJsZVRyYW5zYWN0aW9uPjtcbiAgICAgIHRoaXMuX3R5cGUgPSBUcmFuc2FjdGlvblR5cGUuU2VuZDtcbiAgICAgIHRoaXMuX2lkID0gdGhpcy5fc3VpVHJhbnNhY3Rpb24uaWQ7XG4gICAgICB0aGlzLmxvYWRJbnB1dHNBbmRPdXRwdXRzKCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSGVscGVyIGZ1bmN0aW9uIGZvciBzZXJpYWxpemUoKSB0byBnZXQgdGhlIGNvcnJlY3QgdHhEYXRhIHdpdGggdHJhbnNhY3Rpb24gdHlwZVxuICAgKlxuICAgKiBAcmV0dXJuIHtUeERhdGF9XG4gICAqL1xuICBwdWJsaWMgZ2V0VHhEYXRhKCk6IFR4RGF0YSB7XG4gICAgaWYgKCF0aGlzLl9zdWlUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdlbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICBjb25zdCBpbnB1dHM6IENhbGxBcmdbXSB8IFRyYW5zYWN0aW9uQmxvY2tJbnB1dFtdID0gdGhpcy5fc3VpVHJhbnNhY3Rpb24udHguaW5wdXRzLm1hcCgoaW5wdXQpID0+IHtcbiAgICAgIGlmIChpbnB1dC5oYXNPd25Qcm9wZXJ0eSgnT2JqZWN0JykpIHtcbiAgICAgICAgcmV0dXJuIGlucHV0O1xuICAgICAgfVxuICAgICAgaWYgKGlucHV0Lmhhc093blByb3BlcnR5KCdQdXJlJykpIHtcbiAgICAgICAgaWYgKGlucHV0LlB1cmUubGVuZ3RoID09PSBTVUlfQUREUkVTU19MRU5HVEgpIHtcbiAgICAgICAgICBjb25zdCBhZGRyZXNzID0gbm9ybWFsaXplU3VpQWRkcmVzcyhcbiAgICAgICAgICAgIGJ1aWxkZXIuZGUoQkNTLkFERFJFU1MsIEJ1ZmZlci5mcm9tKGlucHV0LlB1cmUpLnRvU3RyaW5nKCdiYXNlNjQnKSwgJ2Jhc2U2NCcpXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gSW5wdXRzLlB1cmUoYWRkcmVzcywgQkNTLkFERFJFU1MpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGFtb3VudCA9IGJ1aWxkZXIuZGUoQkNTLlU2NCwgQnVmZmVyLmZyb20oaW5wdXQuUHVyZSkudG9TdHJpbmcoJ2Jhc2U2NCcpLCAnYmFzZTY0Jyk7XG4gICAgICAgICAgcmV0dXJuIElucHV0cy5QdXJlKGFtb3VudCwgQkNTLlU2NCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChpbnB1dC5raW5kID09PSAnSW5wdXQnICYmIChpbnB1dC52YWx1ZS5oYXNPd25Qcm9wZXJ0eSgnT2JqZWN0JykgfHwgaW5wdXQudmFsdWUuaGFzT3duUHJvcGVydHkoJ1B1cmUnKSkpIHtcbiAgICAgICAgcmV0dXJuIGlucHV0LnZhbHVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIElucHV0cy5QdXJlKGlucHV0LnZhbHVlLCBpbnB1dC50eXBlID09PSAncHVyZScgPyBCQ1MuVTY0IDogQkNTLkFERFJFU1MpO1xuICAgIH0pO1xuXG4gICAgY29uc3QgcHJvZ3JhbW1hYmxlVHggPSB7XG4gICAgICBpbnB1dHMsXG4gICAgICB0cmFuc2FjdGlvbnM6IHRoaXMuX3N1aVRyYW5zYWN0aW9uLnR4LnRyYW5zYWN0aW9ucyxcbiAgICB9IGFzIFRyYW5zZmVyUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb247XG5cbiAgICByZXR1cm4ge1xuICAgICAgc2VuZGVyOiB0aGlzLl9zdWlUcmFuc2FjdGlvbi5zZW5kZXIsXG4gICAgICBleHBpcmF0aW9uOiB7IE5vbmU6IG51bGwgfSxcbiAgICAgIGdhc0RhdGE6IHtcbiAgICAgICAgLi4udGhpcy5fc3VpVHJhbnNhY3Rpb24uZ2FzRGF0YSxcbiAgICAgICAgcGF5bWVudDogdGhpcy5fc3VpVHJhbnNhY3Rpb24uZ2FzRGF0YS5wYXltZW50LnNsaWNlKDAsIE1BWF9HQVNfT0JKRUNUUyAtIDEpLFxuICAgICAgfSxcbiAgICAgIGtpbmQ6IHtcbiAgICAgICAgUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb246IHByb2dyYW1tYWJsZVR4LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBjb21wbGV0ZSBleHBsYW5hdGlvbiBmb3IgYSB0cmFuc2ZlciB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0ge1R4RGF0YX0ganNvbiBUaGUgdHJhbnNhY3Rpb24gZGF0YSBpbiBqc29uIGZvcm1hdFxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uRXhwbGFuYXRpb259IGV4cGxhbmF0aW9uUmVzdWx0IFRoZSB0cmFuc2FjdGlvbiBleHBsYW5hdGlvbiB0byBiZSBjb21wbGV0ZWRcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uRXhwbGFuYXRpb259XG4gICAqL1xuICBleHBsYWluVHJhbnNmZXJUcmFuc2FjdGlvbihqc29uOiBUeERhdGEsIGV4cGxhbmF0aW9uUmVzdWx0OiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uKTogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gICAgY29uc3QgcmVjaXBpZW50cyA9IHV0aWxzLmdldFJlY2lwaWVudHModGhpcy5zdWlUcmFuc2FjdGlvbik7XG4gICAgY29uc3Qgb3V0cHV0czogVHJhbnNhY3Rpb25SZWNpcGllbnRbXSA9IHJlY2lwaWVudHMubWFwKChyZWNpcGllbnQpID0+IHJlY2lwaWVudCk7XG4gICAgY29uc3Qgb3V0cHV0QW1vdW50Qk4gPSByZWNpcGllbnRzLnJlZHVjZShcbiAgICAgIC8vIGFtb3VudCBjYW4gYmUgZ3JlYXRlciB0aGFuIG51bWJlciByYW5nZSBmb3IgU1VJXG4gICAgICAoYWNjdW11bGF0b3IsIGN1cnJlbnQpID0+IGFjY3VtdWxhdG9yLnBsdXMoY3VycmVudC5hbW91bnQpLFxuICAgICAgbmV3IEJpZ051bWJlcigwKVxuICAgICk7XG4gICAgY29uc3Qgb3V0cHV0QW1vdW50ID0gb3V0cHV0QW1vdW50Qk4udG9TdHJpbmcoKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5leHBsYW5hdGlvblJlc3VsdCxcbiAgICAgIG91dHB1dEFtb3VudCxcbiAgICAgIG91dHB1dHMsXG4gICAgfTtcbiAgfVxufVxuIl19