@bitgo/sdk-core 36.11.0 → 36.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -67,6 +67,7 @@ export declare class StakingWallet implements IStakingWallet {
67
67
  build(transaction: StakingTransaction): Promise<StakingPrebuildTransactionResult>;
68
68
  private extractWallet;
69
69
  private isBtcUndelegate;
70
+ private isStx;
70
71
  private isTrxStaking;
71
72
  /**
72
73
  * Sign the staking transaction
@@ -1 +1 @@
1
- {"version":3,"file":"stakingWallet.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/staking/stakingWallet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stakingWallet.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/staking/stakingWallet.ts"],"names":[],"mappings":"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"}
@@ -138,6 +138,9 @@ class StakingWallet {
138
138
  isBtcUndelegate(transaction) {
139
139
  return (this.wallet.baseCoin.getFamily() === 'btc' && transaction.transactionType.toLowerCase() === 'undelegate_withdraw');
140
140
  }
141
+ isStx() {
142
+ return this.wallet.baseCoin.getFamily() === 'stx';
143
+ }
141
144
  isTrxStaking(transaction) {
142
145
  return this.wallet.baseCoin.getFamily() === 'trx';
143
146
  }
@@ -338,7 +341,8 @@ class StakingWallet {
338
341
  }
339
342
  if (buildParams?.type &&
340
343
  explainedTransaction.type !== undefined &&
341
- account_lib_1.TransactionType[buildParams.type] !== explainedTransaction.type) {
344
+ ((this.isStx() && account_lib_1.TransactionType.ContractCall !== explainedTransaction.type) || // for STX the tx type should always ContractCall
345
+ (!this.isStx() && account_lib_1.TransactionType[buildParams.type] !== explainedTransaction.type))) {
342
346
  mismatchErrors.push(`Transaction type mismatch. Expected: '${buildParams.type}', Got: '${explainedTransaction.type}'`);
343
347
  }
344
348
  if (buildParams?.solInstructions) {
@@ -360,4 +364,4 @@ exports.StakingWallet = StakingWallet;
360
364
  function isStakingTxRequestPrebuildResult(tx) {
361
365
  return tx.txRequestId !== undefined;
362
366
  }
363
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ1dhbGxldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby9zdGFraW5nL3N0YWtpbmdXYWxsZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7O0dBRUc7QUFDSCw0Q0FBNEM7QUFDNUMsNkRBQXFDO0FBdUJyQyxvQ0FBOEQ7QUFDOUQsb0RBQTRCO0FBQzVCLGdFQUF1RTtBQUN2RSxrREFBMEI7QUFDMUIsbURBQW9EO0FBRXBELE1BQWEsYUFBYTtJQVF4QixZQUFZLE1BQWUsRUFBRSxRQUFpQjtRQUM1QyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGdCQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0UsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkcsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQTBEO1FBQ3BFLE9BQU8sTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzNE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LENBQUM7WUFDOUIsTUFBTSxZQUFZLEdBQUcseURBQXlELGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMxRyxJQUFBLGVBQUssRUFBQyxZQUFZLENBQUMsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFFRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakIsSUFBQSxlQUFLLEVBQ0gsMERBQTBELFdBQVcsQ0FBQyxnQkFBZ0IsaUNBQWlDLENBQ3hILENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBOWJELHNDQThiQztBQUVELFNBQVMsZ0NBQWdDLENBQ3ZDLEVBQThDO0lBRTlDLE9BQVEsRUFBZ0QsQ0FBQyxXQUFXLEtBQUssU0FBUyxDQUFDO0FBQ3JGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgeyBDb2luRmFtaWx5IH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSAnbG9kYXNoL2lzRXF1YWwnO1xuXG5pbXBvcnQge1xuICBEZWxlZ2F0aW9uT3B0aW9ucyxcbiAgRGVsZWdhdGlvblJlc3VsdHMsXG4gIElTdGFraW5nV2FsbGV0LFxuICBTdGFrZU9wdGlvbnMsXG4gIFN0YWtpbmdQcmVidWlsZFRyYW5zYWN0aW9uUmVzdWx0LFxuICBTdGFraW5nUmVxdWVzdCxcbiAgU3Rha2luZ1NpZ25lZFRyYW5zYWN0aW9uLFxuICBTdGFraW5nU2lnbk9wdGlvbnMsXG4gIFN0YWtpbmdUcmFuc2FjdGlvbixcbiAgU3dpdGNoVmFsaWRhdG9yT3B0aW9ucyxcbiAgVHJhbnNhY3Rpb25zUmVhZHlUb1NpZ24sXG4gIFVuc3Rha2VPcHRpb25zLFxuICBFdGhVbnN0YWtlT3B0aW9ucyxcbiAgQ2xhaW1SZXdhcmRzT3B0aW9ucyxcbiAgU3Rha2luZ1R4UmVxdWVzdFByZWJ1aWxkVHJhbnNhY3Rpb25SZXN1bHQsXG4gIFRyb25TdGFrZU9wdGlvbnMsXG4gIFRhb1N0YWtlT3B0aW9ucyxcbn0gZnJvbSAnLi9pU3Rha2luZ1dhbGxldCc7XG5pbXBvcnQgeyBCaXRHb0Jhc2UgfSBmcm9tICcuLi9iaXRnb0Jhc2UnO1xuaW1wb3J0IHsgSVdhbGxldCwgUHJlYnVpbGRUcmFuc2FjdGlvblJlc3VsdCB9IGZyb20gJy4uL3dhbGxldCc7XG5pbXBvcnQgeyBJVHNzVXRpbHMsIFJlcXVlc3RUcmFjZXIsIFRzc1V0aWxzIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHsgdHJhbnNhY3Rpb25SZWNpcGllbnRzTWF0Y2ggfSBmcm9tICcuLi91dGlscy90cmFuc2FjdGlvblV0aWxzJztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICcuLi8uLi9hY2NvdW50LWxpYic7XG5cbmV4cG9ydCBjbGFzcyBTdGFraW5nV2FsbGV0IGltcGxlbWVudHMgSVN0YWtpbmdXYWxsZXQge1xuICBwcml2YXRlIHJlYWRvbmx5IGJpdGdvOiBCaXRHb0Jhc2U7XG4gIHByaXZhdGUgdG9rZW5QYXJlbnRXYWxsZXQ/OiBJV2FsbGV0O1xuICBwcml2YXRlIHJlYWRvbmx5IGlzRXRoVHNzOiBib29sZWFuO1xuXG4gIHB1YmxpYyB3YWxsZXQ6IElXYWxsZXQ7XG4gIHB1YmxpYyB0c3NVdGlsOiBJVHNzVXRpbHM7XG5cbiAgY29uc3RydWN0b3Iod2FsbGV0OiBJV2FsbGV0LCBpc0V0aFRzczogYm9vbGVhbikge1xuICAgIHRoaXMud2FsbGV0ID0gd2FsbGV0O1xuICAgIHRoaXMuYml0Z28gPSB3YWxsZXQuYml0Z287XG4gICAgdGhpcy50c3NVdGlsID0gbmV3IFRzc1V0aWxzKHRoaXMuYml0Z28sIHRoaXMud2FsbGV0LmJhc2VDb2luLCB0aGlzLndhbGxldCk7XG4gICAgdGhpcy5pc0V0aFRzcyA9IGlzRXRoVHNzO1xuICB9XG5cbiAgZ2V0IHdhbGxldElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMud2FsbGV0LmlkKCk7XG4gIH1cblxuICBnZXQgY29pbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLndhbGxldC5iYXNlQ29pbi50b2tlbkNvbmZpZyA/IHRoaXMud2FsbGV0LmJhc2VDb2luLnRva2VuQ29uZmlnLnR5cGUgOiB0aGlzLndhbGxldC5jb2luKCk7XG4gIH1cblxuICAvKipcbiAgICogU3Rha2UgY29pbnNcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBzdGFrZSBvcHRpb25zXG4gICAqIEByZXR1cm4gU3Rha2luZ1JlcXVlc3RcbiAgICovXG4gIGFzeW5jIHN0YWtlKG9wdGlvbnM6IFN0YWtlT3B0aW9ucyB8IFRyb25TdGFrZU9wdGlvbnMgfCBUYW9TdGFrZU9wdGlvbnMpOiBQcm9taXNlPFN0YWtpbmdSZXF1ZXN0PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY3JlYXRlU3Rha2luZ1JlcXVlc3Qob3B0aW9ucywgJ1NUQUtFJyk7XG4gIH1cblxuICAvKipcbiAgICogVW5zdGFrZSBjb2luc1xuICAgKiBAcGFyYW0gb3B0aW9ucyAtIHVuc3Rha2Ugb3B0aW9uc1xuICAgKiBAcmV0dXJuIFN0YWtpbmdSZXF1ZXN0XG4gICAqL1xuICBhc3luYyB1bnN0YWtlKG9wdGlvbnM6IFVuc3Rha2VPcHRpb25zIHwgRXRoVW5zdGFrZU9wdGlvbnMpOiBQcm9taXNlPFN0YWtpbmdSZXF1ZXN0PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY3JlYXRlU3Rha2luZ1JlcXVlc3Qob3B0aW9ucywgJ1VOU1RBS0UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJtaXQgYSByZXF1ZXN0IHRvIHN3aXRjaCB0aGUgdmFsaWRhdG9yIHVzZWQgZm9yIGEgc3BlY2lmaWMgZGVsZWdhdGlvblxuICAgKiBUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IGRlbGVnYXRpb24gd2l0aCB0aGUgbmV3IHZhbGlkYXRvciBhZGRyZXNzIGFuZCBtYXJrIHRoZSBvbGQgZGVsZWdhdGlvbiBhcyBpbmFjdGl2ZVxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIHN3aXRjaCB2YWxpZGF0b3Igb3B0aW9uc1xuICAgKiBAcmV0dXJuIFN0YWtpbmdSZXF1ZXN0XG4gICAqL1xuICBhc3luYyBzd2l0Y2hWYWxpZGF0b3Iob3B0aW9uczogU3dpdGNoVmFsaWRhdG9yT3B0aW9ucyk6IFByb21pc2U8U3Rha2luZ1JlcXVlc3Q+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5jcmVhdGVTdGFraW5nUmVxdWVzdChvcHRpb25zLCAnU1dJVENIX1ZBTElEQVRPUicpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1Ym1pdCBhIHJlcXVlc3QgdG8gY2xhaW0gcmV3YXJkcyBmb3IgYSBzcGVjaWZpYyBkZWxlZ2F0aW9uXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gY2xhaW0gcmV3YXJkcyBvcHRpb25zXG4gICAqIEByZXR1cm4gU3Rha2luZ1JlcXVlc3RcbiAgICovXG4gIGFzeW5jIGNsYWltUmV3YXJkcyhvcHRpb25zOiBDbGFpbVJld2FyZHNPcHRpb25zKTogUHJvbWlzZTxTdGFraW5nUmVxdWVzdD4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmNyZWF0ZVN0YWtpbmdSZXF1ZXN0KG9wdGlvbnMsICdDTEFJTV9SRVdBUkRTJyk7XG4gIH1cblxuICAvKipcbiAgICogQ2FuY2VsIHN0YWtpbmcgcmVxdWVzdFxuICAgKiBAcGFyYW0gc3Rha2luZ1JlcXVlc3RJZCAtIGlkIG9mIHRoZSBzdGFraW5nIHJlcXVlc3QgdG8gY2FuY2VsXG4gICAqIEByZXR1cm4gU3Rha2luZ1JlcXVlc3RcbiAgICovXG4gIGFzeW5jIGNhbmNlbFN0YWtpbmdSZXF1ZXN0KHN0YWtpbmdSZXF1ZXN0SWQ6IHN0cmluZyk6IFByb21pc2U8U3Rha2luZ1JlcXVlc3Q+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5iaXRnby5kZWwodGhpcy5iaXRnby5taWNyb3NlcnZpY2VzVXJsKHRoaXMuc3Rha2luZ1JlcXVlc3RVcmwoc3Rha2luZ1JlcXVlc3RJZCkpKS5yZXN1bHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaCBkZWxlZ2F0aW9ucyBmb3IgYSBzcGVjaWZpYyB3YWxsZXRcbiAgICogQHBhcmFtIG9wdGlvbnMgLSB1bnN0YWtlIG9wdGlvbnNcbiAgICogQHJldHVybiBTdGFraW5nUmVxdWVzdFxuICAgKi9cbiAgYXN5bmMgZGVsZWdhdGlvbnMob3B0aW9uczogRGVsZWdhdGlvbk9wdGlvbnMpOiBQcm9taXNlPERlbGVnYXRpb25SZXN1bHRzPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0RGVsZWdhdGlvbnMob3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGEgc3Rha2luZyByZXF1ZXN0IGJ5IElEXG4gICAqIEBwYXJhbSBzdGFraW5nUmVxdWVzdElkIC0gaWQgb2YgdGhlIHN0YWtpbmcgcmVxdWVzdCB0byByZXRyaWV2ZVxuICAgKiBAcmV0dXJuIFN0YWtpbmdSZXF1ZXN0XG4gICAqL1xuICBhc3luYyBnZXRTdGFraW5nUmVxdWVzdChzdGFraW5nUmVxdWVzdElkOiBzdHJpbmcpOiBQcm9taXNlPFN0YWtpbmdSZXF1ZXN0PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYml0Z28uZ2V0KHRoaXMuYml0Z28ubWljcm9zZXJ2aWNlc1VybCh0aGlzLnN0YWtpbmdSZXF1ZXN0VXJsKHN0YWtpbmdSZXF1ZXN0SWQpKSkucmVzdWx0KCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRyYW5zYWN0aW9ucyByZWFkeSB0byBzaWduXG4gICAqIEBwYXJhbSBzdGFraW5nUmVxdWVzdElkXG4gICAqIEByZXR1cm4gVHJhbnNhY3Rpb25zUmVhZHlUb1NpZ25cbiAgICovXG4gIGFzeW5jIGdldFRyYW5zYWN0aW9uc1JlYWR5VG9TaWduKHN0YWtpbmdSZXF1ZXN0SWQ6IHN0cmluZyk6IFByb21pc2U8VHJhbnNhY3Rpb25zUmVhZHlUb1NpZ24+IHtcbiAgICBjb25zdCBzdGFraW5nUmVxdWVzdDogU3Rha2luZ1JlcXVlc3QgPSBhd2FpdCB0aGlzLmdldFN0YWtpbmdSZXF1ZXN0KHN0YWtpbmdSZXF1ZXN0SWQpO1xuICAgIGNvbnN0IHJlYWR5VG9TaWduOiBTdGFraW5nVHJhbnNhY3Rpb25bXSA9IHN0YWtpbmdSZXF1ZXN0LnRyYW5zYWN0aW9ucy5maWx0ZXIoXG4gICAgICAodHJhbnNhY3Rpb246IFN0YWtpbmdUcmFuc2FjdGlvbikgPT4gdHJhbnNhY3Rpb24uc3RhdHVzID09PSBgUkVBRFlgXG4gICAgKTtcbiAgICBjb25zdCBuZXdUcmFuc2FjdGlvbnM6IFN0YWtpbmdUcmFuc2FjdGlvbltdID0gc3Rha2luZ1JlcXVlc3QudHJhbnNhY3Rpb25zLmZpbHRlcihcbiAgICAgICh0cmFuc2FjdGlvbjogU3Rha2luZ1RyYW5zYWN0aW9uKSA9PiB0cmFuc2FjdGlvbi5zdGF0dXMgPT09IGBORVdgXG4gICAgKTtcblxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgYWxsU2lnbmluZ0NvbXBsZXRlOlxuICAgICAgICBzdGFraW5nUmVxdWVzdC50cmFuc2FjdGlvbnMubGVuZ3RoID4gMCAmJiBuZXdUcmFuc2FjdGlvbnMubGVuZ3RoID09PSAwICYmIHJlYWR5VG9TaWduLmxlbmd0aCA9PT0gMCxcbiAgICAgIHRyYW5zYWN0aW9uczogcmVhZHlUb1NpZ24sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgdGhlIHN0YWtpbmcgdHJhbnNhY3Rpb25cbiAgICogSWYgVFNTIGRlbGV0ZSBzaWduYXR1cmUgc2hhcmVzLCBlbHNlIGV4cGFuZCBidWlsZCBwYXJhbXMgYW5kIHRoZW4gYnVpbGRcbiAgICogQHBhcmFtIHRyYW5zYWN0aW9uIC0gc3Rha2luZyB0cmFuc2FjdGlvbiB0byBidWlsZFxuICAgKi9cbiAgYXN5bmMgYnVpbGQodHJhbnNhY3Rpb246IFN0YWtpbmdUcmFuc2FjdGlvbik6IFByb21pc2U8U3Rha2luZ1ByZWJ1aWxkVHJhbnNhY3Rpb25SZXN1bHQ+IHtcbiAgICBpZiAoKHRoaXMud2FsbGV0Lm11bHRpc2lnVHlwZSgpID09PSAndHNzJyAmJiB0aGlzLndhbGxldC5iYXNlQ29pbi5nZXRGYW1pbHkoKSAhPT0gJ2V0aCcpIHx8IHRoaXMuaXNFdGhUc3MpIHtcbiAgICAgIGlmICghdHJhbnNhY3Rpb24udHhSZXF1ZXN0SWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd0eFJlcXVlc3RJZCBpcyByZXF1aXJlZCB0byBzaWduIGFuZCBzZW5kJyk7XG4gICAgICB9XG4gICAgICAvLyBkZWxldGUgc2lnbmF0dXJlIHNoYXJlcyBiZWZvcmUgc2lnbmluZyBmb3IgdHJhbnNhY3Rpb24gcmVxdWVzdCBBUElcbiAgICAgIGF3YWl0IHRoaXMudHNzVXRpbC5kZWxldGVTaWduYXR1cmVTaGFyZXModHJhbnNhY3Rpb24udHhSZXF1ZXN0SWQpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHJhbnNhY3Rpb246IHRyYW5zYWN0aW9uLFxuICAgICAgICByZXN1bHQ6IHtcbiAgICAgICAgICB3YWxsZXRJZDogdGhpcy53YWxsZXRJZCxcbiAgICAgICAgICB0eFJlcXVlc3RJZDogdHJhbnNhY3Rpb24udHhSZXF1ZXN0SWQsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0cmFuc2FjdGlvbiA9IGF3YWl0IHRoaXMuZXhwYW5kQnVpbGRQYXJhbXModHJhbnNhY3Rpb24pO1xuICAgICAgaWYgKCF0cmFuc2FjdGlvbi5idWlsZFBhcmFtcykge1xuICAgICAgICB0aHJvdyBFcnJvcihgU3Rha2luZyB0cmFuc2FjdGlvbiAke3RyYW5zYWN0aW9uLmlkfSBidWlsZCBwYXJhbXMgbm90IGV4cGFuZGVkYCk7XG4gICAgICB9XG4gICAgICBjb25zdCB3YWxsZXQgPSBhd2FpdCB0aGlzLmV4dHJhY3RXYWxsZXQodHJhbnNhY3Rpb24pO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICB0cmFuc2FjdGlvbjogdHJhbnNhY3Rpb24sXG4gICAgICAgIHJlc3VsdDogYXdhaXQgd2FsbGV0LnByZWJ1aWxkVHJhbnNhY3Rpb24odHJhbnNhY3Rpb24uYnVpbGRQYXJhbXMpLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGV4dHJhY3RXYWxsZXQodHJhbnNhY3Rpb246IFN0YWtpbmdUcmFuc2FjdGlvbikge1xuICAgIHJldHVybiB0aGlzLmlzQnRjVW5kZWxlZ2F0ZSh0cmFuc2FjdGlvbilcbiAgICAgID8gYXdhaXQgdGhpcy5nZXREZXNjcmlwdG9yV2FsbGV0KHRyYW5zYWN0aW9uKVxuICAgICAgOiBhd2FpdCB0aGlzLmdldFdhbGxldEZvckJ1aWxkaW5nQW5kU2lnbmluZygpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0J0Y1VuZGVsZWdhdGUodHJhbnNhY3Rpb246IFN0YWtpbmdUcmFuc2FjdGlvbikge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLndhbGxldC5iYXNlQ29pbi5nZXRGYW1pbHkoKSA9PT0gJ2J0YycgJiYgdHJhbnNhY3Rpb24udHJhbnNhY3Rpb25UeXBlLnRvTG93ZXJDYXNlKCkgPT09ICd1bmRlbGVnYXRlX3dpdGhkcmF3J1xuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGlzVHJ4U3Rha2luZyh0cmFuc2FjdGlvbjogU3Rha2luZ1RyYW5zYWN0aW9uKSB7XG4gICAgcmV0dXJuIHRoaXMud2FsbGV0LmJhc2VDb2luLmdldEZhbWlseSgpID09PSAndHJ4JztcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduIHRoZSBzdGFraW5nIHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSBzaWduT3B0aW9uc1xuICAgKiBAcGFyYW0gc3Rha2luZ1ByZWJ1aWxkVHJhbnNhY3Rpb25cbiAgICovXG4gIGFzeW5jIHNpZ24oXG4gICAgc2lnbk9wdGlvbnM6IFN0YWtpbmdTaWduT3B0aW9ucyxcbiAgICBzdGFraW5nUHJlYnVpbGRUcmFuc2FjdGlvbjogU3Rha2luZ1ByZWJ1aWxkVHJhbnNhY3Rpb25SZXN1bHRcbiAgKTogUHJvbWlzZTxTdGFraW5nU2lnbmVkVHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCByZXFJZCA9IG5ldyBSZXF1ZXN0VHJhY2VyKCk7XG4gICAgY29uc3QgaXNCdGNVbmRlbGVnYXRlID1cbiAgICAgIHRoaXMud2FsbGV0LmJhc2VDb2luLmdldEZhbWlseSgpID09PSAnYnRjJyAmJlxuICAgICAgc3Rha2luZ1ByZWJ1aWxkVHJhbnNhY3Rpb24udHJhbnNhY3Rpb24udHJhbnNhY3Rpb25UeXBlLnRvTG93ZXJDYXNlKCkgPT09ICd1bmRlbGVnYXRlX3dpdGhkcmF3JztcbiAgICBjb25zdCB3YWxsZXQgPSBpc0J0Y1VuZGVsZWdhdGVcbiAgICAgID8gYXdhaXQgdGhpcy5nZXREZXNjcmlwdG9yV2FsbGV0KHN0YWtpbmdQcmVidWlsZFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uKVxuICAgICAgOiBhd2FpdCB0aGlzLmdldFdhbGxldEZvckJ1aWxkaW5nQW5kU2lnbmluZygpO1xuXG4gICAgY29uc3Qga2V5Y2hhaW4gPSBhd2FpdCB3YWxsZXQuYmFzZUNvaW4ua2V5Y2hhaW5zKCkuZ2V0S2V5c0ZvclNpZ25pbmcoe1xuICAgICAgd2FsbGV0OiB0aGlzLndhbGxldCxcbiAgICAgIHJlcUlkOiByZXFJZCxcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgdHJhbnNhY3Rpb246IHN0YWtpbmdQcmVidWlsZFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uLFxuICAgICAgc2lnbmVkOiBhd2FpdCB3YWxsZXQuc2lnblRyYW5zYWN0aW9uKHtcbiAgICAgICAgdHhQcmVidWlsZDogc3Rha2luZ1ByZWJ1aWxkVHJhbnNhY3Rpb24ucmVzdWx0LFxuICAgICAgICB3YWxsZXRQYXNzcGhyYXNlOiBzaWduT3B0aW9ucy53YWxsZXRQYXNzcGhyYXNlLFxuICAgICAgICBrZXljaGFpbjoga2V5Y2hhaW5bMF0sXG4gICAgICB9KSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbmQgdGhlIHNpZ25lZCBzdGFraW5nIHRyYW5zYWN0aW9uIGlmIHJlcXVpcmVkLiBTZW5kIGNhbGwgaXMgbm90IHJlcXVpcmVkIGlmIGFwaSB2ZXJzaW9uIGlzIGZ1bGxcbiAgICogYW5kIHRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuIHRoZSBzdGFraW5nIHRyYW5zYWN0aW9uIGZyb20gdGhlIGluY29taW5nIG9iamVjdC5cbiAgICogQHBhcmFtIHNpZ25lZFRyYW5zYWN0aW9uXG4gICAqL1xuICBhc3luYyBzZW5kKHNpZ25lZFRyYW5zYWN0aW9uOiBTdGFraW5nU2lnbmVkVHJhbnNhY3Rpb24pOiBQcm9taXNlPFN0YWtpbmdUcmFuc2FjdGlvbj4ge1xuICAgIGlmICh0aGlzLmlzU2VuZENhbGxSZXF1aXJlZCgpKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5iaXRnb1xuICAgICAgICAucG9zdCh0aGlzLmJpdGdvLm1pY3Jvc2VydmljZXNVcmwodGhpcy5zdGFraW5nVHJhbnNhY3Rpb25VUkwoc2lnbmVkVHJhbnNhY3Rpb24udHJhbnNhY3Rpb24pKSlcbiAgICAgICAgLnNlbmQoc2lnbmVkVHJhbnNhY3Rpb24uc2lnbmVkKVxuICAgICAgICAucmVzdWx0KCk7XG4gICAgfVxuICAgIHJldHVybiBzaWduZWRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBARGVwcmVjYXRlZCB1c2UgYnVpbGRBbmRTaWduXG4gICAqIEJ1aWxkLCBzaWduIGFuZCBzZW5kIHRoZSB0cmFuc2FjdGlvbi5cbiAgICogQHBhcmFtIHNpZ25PcHRpb25zXG4gICAqIEBwYXJhbSB0cmFuc2FjdGlvblxuICAgKi9cbiAgYXN5bmMgYnVpbGRTaWduQW5kU2VuZChcbiAgICBzaWduT3B0aW9uczogU3Rha2luZ1NpZ25PcHRpb25zLFxuICAgIHRyYW5zYWN0aW9uOiBTdGFraW5nVHJhbnNhY3Rpb25cbiAgKTogUHJvbWlzZTxTdGFraW5nVHJhbnNhY3Rpb24+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5idWlsZEFuZFNpZ24oc2lnbk9wdGlvbnMsIHRyYW5zYWN0aW9uKS50aGVuKChyZXN1bHQ6IFN0YWtpbmdTaWduZWRUcmFuc2FjdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuc2VuZChyZXN1bHQpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBwcmVidWlsdCBzdGFraW5nIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBmb3IgdHJhbnNhY3Rpb25zIHdpdGggdHggcmVxdWVzdCBpZCAoVFNTIHRyYW5zYWN0aW9ucyksIHdlIG5lZWQgdG8gZGVsZXRlIHNpZ25hdHVyZSBzaGFyZXMgYmVmb3JlIGNyZWF0aW5nIHByZWJ1aWxkIHRyYW5zYWN0aW9uXG4gICAqIHdlIG9ubHkgbmVlZCB0byBnZXQgdHJhbnNhY3Rpb24gYnVpbGQgcGFyYW1zIGlmIHRoZXkgZXhpc3QgdG8gcHJlIGJ1aWxkXG4gICAqXG4gICAqIEBwYXJhbSB0cmFuc2FjdGlvblxuICAgKi9cbiAgYXN5bmMgcHJlYnVpbGRTZWxmTWFuYWdlZFN0YWtpbmdUcmFuc2FjdGlvbih0cmFuc2FjdGlvbjogU3Rha2luZ1RyYW5zYWN0aW9uKTogUHJvbWlzZTxQcmVidWlsZFRyYW5zYWN0aW9uUmVzdWx0PiB7XG4gICAgaWYgKHRyYW5zYWN0aW9uLnR4UmVxdWVzdElkKSB7XG4gICAgICBhd2FpdCB0aGlzLnRzc1V0aWwuZGVsZXRlU2lnbmF0dXJlU2hhcmVzKHRyYW5zYWN0aW9uLnR4UmVxdWVzdElkKTtcbiAgICB9XG4gICAgY29uc3QgYnVpbGRQYXJhbXMgPSAoYXdhaXQgdGhpcy5leHBhbmRCdWlsZFBhcmFtcyh0cmFuc2FjdGlvbikpLmJ1aWxkUGFyYW1zO1xuICAgIGNvbnN0IGZvcm1hdHRlZFBhcmFtcyA9IHtcbiAgICAgIC4uLmJ1aWxkUGFyYW1zLFxuICAgICAgY29pbjogdGhpcy5jb2luLFxuICAgICAgd2FsbGV0SWQ6IHRoaXMud2FsbGV0SWQsXG4gICAgICB3YWxsZXRUeXBlOiB0aGlzLndhbGxldC50eXBlKCksXG4gICAgICBwcmV2aWV3OiB0cnVlLFxuICAgIH07XG4gICAgcmV0dXJuIGF3YWl0IChhd2FpdCB0aGlzLmdldFdhbGxldEZvckJ1aWxkaW5nQW5kU2lnbmluZygpKS5wcmVidWlsZFRyYW5zYWN0aW9uKGZvcm1hdHRlZFBhcmFtcyk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYW5kIHNpZ24gdGhlIHRyYW5zYWN0aW9uLlxuICAgKiBAcGFyYW0gc2lnbk9wdGlvbnNcbiAgICogQHBhcmFtIHRyYW5zYWN0aW9uXG4gICAqL1xuICBhc3luYyBidWlsZEFuZFNpZ24oXG4gICAgc2lnbk9wdGlvbnM6IFN0YWtpbmdTaWduT3B0aW9ucyxcbiAgICB0cmFuc2FjdGlvbjogU3Rha2luZ1RyYW5zYWN0aW9uXG4gICk6IFByb21pc2U8U3Rha2luZ1NpZ25lZFRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3QgYnVpbHRUeCA9IGF3YWl0IHRoaXMuYnVpbGQodHJhbnNhY3Rpb24pO1xuICAgIC8vIGRlZmF1bHQgdG8gdmVyaWZ5aW5nIGEgdHJhbnNhY3Rpb24gdW5sZXNzIGV4cGxpY2l0bHkgc2tpcHBlZFxuICAgIC8vIHNraXBwaW5nIHRoZSB2ZXJpZmljYXRpb24gZm9yIGJ0YyB1bmRlbGVnYXRlIGJlY2F1c2UgaXQgaXMganVzdCBzaW5nbGUgc2lnXG4gICAgLy8gVE9ETzogU0MtMzE4MyAoYWRkIHRyeCBzdGFraW5nIHZlcmlmaWNhdGlvbilcbiAgICBjb25zdCBza2lwVmVyaWZpY2F0aW9uID1cbiAgICAgIChzaWduT3B0aW9ucy50cmFuc2FjdGlvblZlcmlmaWNhdGlvbk9wdGlvbnM/LnNraXBUcmFuc2FjdGlvblZlcmlmaWNhdGlvbiB8fFxuICAgICAgICB0aGlzLmlzQnRjVW5kZWxlZ2F0ZSh0cmFuc2FjdGlvbikgfHxcbiAgICAgICAgdGhpcy5pc1RyeFN0YWtpbmcodHJhbnNhY3Rpb24pKSA/P1xuICAgICAgZmFsc2U7XG4gICAgaWYgKCFpc1N0YWtpbmdUeFJlcXVlc3RQcmVidWlsZFJlc3VsdChidWlsdFR4LnJlc3VsdCkgJiYgIXNraXBWZXJpZmljYXRpb24pIHtcbiAgICAgIGF3YWl0IHRoaXMudmFsaWRhdGVCdWlsdFN0YWtpbmdUcmFuc2FjdGlvbihidWlsdFR4LnRyYW5zYWN0aW9uLCBidWlsdFR4KTtcbiAgICB9XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuc2lnbihzaWduT3B0aW9ucywgYnVpbHRUeCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGV4cGFuZEJ1aWxkUGFyYW1zKHN0YWtpbmdUcmFuc2FjdGlvbjogU3Rha2luZ1RyYW5zYWN0aW9uKTogUHJvbWlzZTxTdGFraW5nVHJhbnNhY3Rpb24+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5iaXRnb1xuICAgICAgLmdldCh0aGlzLmJpdGdvLm1pY3Jvc2VydmljZXNVcmwodGhpcy5zdGFraW5nVHJhbnNhY3Rpb25VUkwoc3Rha2luZ1RyYW5zYWN0aW9uKSkpXG4gICAgICAucXVlcnkoeyBleHBhbmRCdWlsZFBhcmFtczogdHJ1ZSB9KVxuICAgICAgLnJlc3VsdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjcmVhdGVTdGFraW5nUmVxdWVzdChcbiAgICBvcHRpb25zOlxuICAgICAgfCBTdGFrZU9wdGlvbnNcbiAgICAgIHwgVW5zdGFrZU9wdGlvbnNcbiAgICAgIHwgRXRoVW5zdGFrZU9wdGlvbnNcbiAgICAgIHwgU3dpdGNoVmFsaWRhdG9yT3B0aW9uc1xuICAgICAgfCBDbGFpbVJld2FyZHNPcHRpb25zXG4gICAgICB8IFRyb25TdGFrZU9wdGlvbnNcbiAgICAgIHwgVGFvU3Rha2VPcHRpb25zLFxuICAgIHR5cGU6IHN0cmluZ1xuICApOiBQcm9taXNlPFN0YWtpbmdSZXF1ZXN0PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYml0Z29cbiAgICAgIC5wb3N0KHRoaXMuYml0Z28ubWljcm9zZXJ2aWNlc1VybCh0aGlzLnN0YWtpbmdSZXF1ZXN0c1VSTCgpKSlcbiAgICAgIC5zZW5kKHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgIH0pXG4gICAgICAucmVzdWx0KCk7XG4gIH1cblxuICBwcml2YXRlIHN0YWtpbmdSZXF1ZXN0c1VSTCgpIHtcbiAgICByZXR1cm4gYC9hcGkvc3Rha2luZy92MS8ke3RoaXMuY29pbn0vd2FsbGV0cy8ke3RoaXMud2FsbGV0SWR9L3JlcXVlc3RzYDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0RGVsZWdhdGlvbnMob3B0aW9uczogRGVsZWdhdGlvbk9wdGlvbnMpOiBQcm9taXNlPERlbGVnYXRpb25SZXN1bHRzPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYml0Z28uZ2V0KHRoaXMuYml0Z28ubWljcm9zZXJ2aWNlc1VybCh0aGlzLnN0YWtpbmdEZWxlZ2F0aW9uc1VSTCgpKSkucXVlcnkob3B0aW9ucykucmVzdWx0KCk7XG4gIH1cblxuICBwcml2YXRlIHN0YWtpbmdEZWxlZ2F0aW9uc1VSTCgpIHtcbiAgICByZXR1cm4gYC9hcGkvc3Rha2luZy92MS8ke3RoaXMuY29pbn0vd2FsbGV0cy8ke3RoaXMud2FsbGV0SWR9L2RlbGVnYXRpb25zYDtcbiAgfVxuXG4gIHByaXZhdGUgc3Rha2luZ1JlcXVlc3RVcmwoc3Rha2luZ1JlcXVlc3RJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5zdGFraW5nUmVxdWVzdHNVUkwoKX0vJHtzdGFraW5nUmVxdWVzdElkfWA7XG4gIH1cblxuICBwcml2YXRlIHN0YWtpbmdUcmFuc2FjdGlvblVSTChzdGFraW5nVHJhbnNhY3Rpb246IFN0YWtpbmdUcmFuc2FjdGlvbik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuc3Rha2luZ1JlcXVlc3RVcmwoc3Rha2luZ1RyYW5zYWN0aW9uLnN0YWtpbmdSZXF1ZXN0SWQpfS90cmFuc2FjdGlvbnMvJHtzdGFraW5nVHJhbnNhY3Rpb24uaWR9YDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0V2FsbGV0Rm9yQnVpbGRpbmdBbmRTaWduaW5nKCk6IFByb21pc2U8SVdhbGxldD4ge1xuICAgIGlmICh0aGlzLndhbGxldC5iYXNlQ29pbi50b2tlbkNvbmZpZykge1xuICAgICAgaWYgKCF0aGlzLnRva2VuUGFyZW50V2FsbGV0KSB7XG4gICAgICAgIHRoaXMudG9rZW5QYXJlbnRXYWxsZXQgPSBhd2FpdCB0aGlzLmJpdGdvXG4gICAgICAgICAgLmNvaW4odGhpcy53YWxsZXQuYmFzZUNvaW4udG9rZW5Db25maWcuY29pbilcbiAgICAgICAgICAud2FsbGV0cygpXG4gICAgICAgICAgLmdldCh7IGlkOiB0aGlzLndhbGxldC5pZCgpIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMudG9rZW5QYXJlbnRXYWxsZXQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy53YWxsZXQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kIEFQSSBjYWxsIGlzIG9ubHkgcmVxdWlyZWQgZm9yIFRTUyBUeFJlcXVlc3QgYXBpIHZlcnNpb24gbGl0ZSBvciBtdWx0aS1zaWcgdHJhbnNhY3Rpb25zLlxuICAgKiBGb3IgRnVsbCBhcGkgdmVyc2lvbiwgc2lnbiB0cmFuc2FjdGlvbiBtb3ZlcyB0aGUgdHJhbnNhY3Rpb24gdG8gZGVsaXZlcmVkIHN0YXRlLlxuICAgKiBAcmV0dXJucyB0cnVlIGlmIHNlbmQgQVBJIGNhbGwgdG8gc3Rha2luZyBzZXJ2aWNlIGlzIHJlcXVpcmVkIGVsc2UgZmFsc2VcbiAgICovXG4gIHByaXZhdGUgaXNTZW5kQ2FsbFJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLndhbGxldC5iYXNlQ29pbi5nZXRGYW1pbHkoKSA9PT0gQ29pbkZhbWlseS5FVEgpIHtcbiAgICAgIHJldHVybiAhdGhpcy5pc0V0aFRzcztcbiAgICB9IGVsc2UgaWYgKHRoaXMud2FsbGV0Lm11bHRpc2lnVHlwZSgpID09PSAndHNzJykge1xuICAgICAgcmV0dXJuIHRoaXMud2FsbGV0LmJhc2VDb2luLmdldE1QQ0FsZ29yaXRobSgpICE9PSAnZWNkc2EnO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldERlc2NyaXB0b3JXYWxsZXQodHJhbnNhY3Rpb246IFN0YWtpbmdUcmFuc2FjdGlvbik6IFByb21pc2U8SVdhbGxldD4ge1xuICAgIGFzc2VydCh0cmFuc2FjdGlvbi5idWlsZFBhcmFtcz8uc2VuZGVyV2FsbGV0SWQsICdzZW5kZXJXYWxsZXRJZCBpcyByZXF1aXJlZCBmb3IgYnRjIHVuZGVsZWdhdGUgdHJhbnNhY3Rpb24nKTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy53YWxsZXQuYmFzZUNvaW4ud2FsbGV0cygpLmdldCh7IGlkOiB0cmFuc2FjdGlvbi5idWlsZFBhcmFtcy5zZW5kZXJXYWxsZXRJZCB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdmFsaWRhdGVCdWlsdFN0YWtpbmdUcmFuc2FjdGlvbihcbiAgICB0cmFuc2FjdGlvbjogU3Rha2luZ1RyYW5zYWN0aW9uLFxuICAgIHByZWJ1aWx0U3Rha2luZ1RyYW5zYWN0aW9uOiBTdGFraW5nUHJlYnVpbGRUcmFuc2FjdGlvblJlc3VsdFxuICApIHtcbiAgICBjb25zdCB7IGJ1aWxkUGFyYW1zIH0gPSB0cmFuc2FjdGlvbjtcbiAgICBjb25zdCB7IHJlc3VsdCB9ID0gcHJlYnVpbHRTdGFraW5nVHJhbnNhY3Rpb247XG4gICAgY29uc3QgY29pbiA9IHRoaXMud2FsbGV0LmJhc2VDb2luO1xuICAgIGRlYnVnKGBWYWxpZGF0aW5nIHN0YWtpbmcgdHJhbnNhY3Rpb24gJHt0cmFuc2FjdGlvbi5zdGFraW5nUmVxdWVzdElkfSB3aXRoIHByZWJ1aWx0IHRyYW5zYWN0aW9uYCk7XG5cbiAgICBpZiAoISgndHhIZXgnIGluIHJlc3VsdCkgfHwgIXJlc3VsdC50eEhleCkge1xuICAgICAgZGVidWcoYFNraXBwaW5nIHZhbGlkYXRpb24gZm9yIHN0YWtpbmcgdHJhbnNhY3Rpb24gJHt0cmFuc2FjdGlvbi5zdGFraW5nUmVxdWVzdElkfSAtIHR4SGV4IGlzIHVuZGVmaW5lZGApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGV4cGxhaW5lZFRyYW5zYWN0aW9uID0gYXdhaXQgY29pbi5leHBsYWluVHJhbnNhY3Rpb24ocmVzdWx0KTtcbiAgICBjb25zdCBtaXNtYXRjaEVycm9yczogc3RyaW5nW10gPSBbXTtcblxuICAgIGlmIChidWlsZFBhcmFtcz8ucmVjaXBpZW50cyAmJiBidWlsZFBhcmFtcy5yZWNpcGllbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHVzZXJSZWNpcGllbnRNYXAgPSBuZXcgTWFwKFxuICAgICAgICBidWlsZFBhcmFtcy5yZWNpcGllbnRzLm1hcCgocmVjaXBpZW50KSA9PiBbcmVjaXBpZW50LmFkZHJlc3MudG9Mb3dlckNhc2UoKSwgcmVjaXBpZW50XSlcbiAgICAgICk7XG4gICAgICBjb25zdCBwbGF0Zm9ybVJlY2lwaWVudE1hcCA9IG5ldyBNYXAoXG4gICAgICAgIChleHBsYWluZWRUcmFuc2FjdGlvbj8ub3V0cHV0cyA/PyBbXSkubWFwKChyZWNpcGllbnQpID0+IFtyZWNpcGllbnQuYWRkcmVzcy50b0xvd2VyQ2FzZSgpLCByZWNpcGllbnRdKVxuICAgICAgKTtcbiAgICAgIGZvciAoY29uc3QgW2FkZHJlc3NdIG9mIHBsYXRmb3JtUmVjaXBpZW50TWFwKSB7XG4gICAgICAgIGlmICghdXNlclJlY2lwaWVudE1hcC5oYXMoYWRkcmVzcykpIHtcbiAgICAgICAgICBtaXNtYXRjaEVycm9ycy5wdXNoKGBVbmV4cGVjdGVkIHJlY2lwaWVudCBhZGRyZXNzIGZvdW5kIGluIGJ1aWx0IHRyYW5zYWN0aW9uOiAke2FkZHJlc3N9YCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCBbYWRkcmVzcywgdXNlclJlY2lwaWVudF0gb2YgdXNlclJlY2lwaWVudE1hcCkge1xuICAgICAgICBjb25zdCBwbGF0Zm9ybVJlY2lwaWVudCA9IHBsYXRmb3JtUmVjaXBpZW50TWFwLmdldChhZGRyZXNzKTtcbiAgICAgICAgaWYgKCFwbGF0Zm9ybVJlY2lwaWVudCkge1xuICAgICAgICAgIG1pc21hdGNoRXJyb3JzLnB1c2goYEV4cGVjdGVkIHJlY2lwaWVudCBhZGRyZXNzIG5vdCBmb3VuZCBpbiBidWlsdCB0cmFuc2FjdGlvbjogJHthZGRyZXNzfWApO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbWF0Y2hSZXN1bHQgPSB0cmFuc2FjdGlvblJlY2lwaWVudHNNYXRjaCh1c2VyUmVjaXBpZW50LCBwbGF0Zm9ybVJlY2lwaWVudCk7XG5cbiAgICAgICAgaWYgKCFtYXRjaFJlc3VsdC5hbW91bnRNYXRjaCkge1xuICAgICAgICAgIG1pc21hdGNoRXJyb3JzLnB1c2goXG4gICAgICAgICAgICBgUmVjaXBpZW50ICR7YWRkcmVzc30gYW1vdW50IG1pc21hdGNoLiBFeHBlY3RlZDogJHt1c2VyUmVjaXBpZW50LmFtb3VudH0sIEdvdDogJHtwbGF0Zm9ybVJlY2lwaWVudC5hbW91bnR9YFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFtYXRjaFJlc3VsdC50b2tlbk1hdGNoKSB7XG4gICAgICAgICAgbWlzbWF0Y2hFcnJvcnMucHVzaChcbiAgICAgICAgICAgIGBSZWNpcGllbnQgJHthZGRyZXNzfSB0b2tlbiBtaXNtYXRjaC4gRXhwZWN0ZWQ6ICR7dXNlclJlY2lwaWVudC50b2tlbk5hbWUgPz8gJ25hdGl2ZSBjb2luJ30sIEdvdDogJHtcbiAgICAgICAgICAgICAgcGxhdGZvcm1SZWNpcGllbnQudG9rZW5OYW1lID8/ICduYXRpdmUgY29pbidcbiAgICAgICAgICAgIH1gXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChidWlsZFBhcmFtcz8ubWVtbyAmJiAoZXhwbGFpbmVkVHJhbnNhY3Rpb24gYXMgYW55KS5tZW1vICE9PSBidWlsZFBhcmFtcy5tZW1vKSB7XG4gICAgICBtaXNtYXRjaEVycm9ycy5wdXNoKFxuICAgICAgICBgTWVtbyBtaXNtYXRjaC4gRXhwZWN0ZWQ6ICcke0pTT04uc3RyaW5naWZ5KGJ1aWxkUGFyYW1zLm1lbW8pfScsIEdvdDogJyR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgKGV4cGxhaW5lZFRyYW5zYWN0aW9uIGFzIGFueSkubWVtb1xuICAgICAgICApfSdgXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChidWlsZFBhcmFtcz8uZ2FzTGltaXQgJiYgU3RyaW5nKChleHBsYWluZWRUcmFuc2FjdGlvbiBhcyBhbnkpLmdhc0xpbWl0KSAhPT0gU3RyaW5nKGJ1aWxkUGFyYW1zLmdhc0xpbWl0KSkge1xuICAgICAgbWlzbWF0Y2hFcnJvcnMucHVzaChcbiAgICAgICAgYEdhcyBMaW1pdCBtaXNtYXRjaC4gRXhwZWN0ZWQ6ICR7YnVpbGRQYXJhbXMuZ2FzTGltaXR9LCBHb3Q6ICR7KGV4cGxhaW5lZFRyYW5zYWN0aW9uIGFzIGFueSkuZ2FzTGltaXR9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBidWlsZFBhcmFtcz8udHlwZSAmJlxuICAgICAgKGV4cGxhaW5lZFRyYW5zYWN0aW9uIGFzIGFueSkudHlwZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBUcmFuc2FjdGlvblR5cGVbYnVpbGRQYXJhbXMudHlwZV0gIT09IChleHBsYWluZWRUcmFuc2FjdGlvbiBhcyBhbnkpLnR5cGVcbiAgICApIHtcbiAgICAgIG1pc21hdGNoRXJyb3JzLnB1c2goXG4gICAgICAgIGBUcmFuc2FjdGlvbiB0eXBlIG1pc21hdGNoLiBFeHBlY3RlZDogJyR7YnVpbGRQYXJhbXMudHlwZX0nLCBHb3Q6ICckeyhleHBsYWluZWRUcmFuc2FjdGlvbiBhcyBhbnkpLnR5cGV9J2BcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGJ1aWxkUGFyYW1zPy5zb2xJbnN0cnVjdGlvbnMpIHtcbiAgICAgIGlmICghaXNFcXVhbCgoZXhwbGFpbmVkVHJhbnNhY3Rpb24gYXMgYW55KS5zb2xJbnN0cnVjdGlvbnMsIGJ1aWxkUGFyYW1zLnNvbEluc3RydWN0aW9ucykpIHtcbiAgICAgICAgbWlzbWF0Y2hFcnJvcnMucHVzaChcbiAgICAgICAgICBgU29sYW5hIGluc3RydWN0aW9ucyBtaXNtYXRjaC4gRXhwZWN0ZWQ6ICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICBidWlsZFBhcmFtcy5zb2xJbnN0cnVjdGlvbnNcbiAgICAgICAgICApfSwgR290OiAke0pTT04uc3RyaW5naWZ5KChleHBsYWluZWRUcmFuc2FjdGlvbiBhcyBhbnkpLnNvbEluc3RydWN0aW9ucyl9YFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChtaXNtYXRjaEVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBgU3Rha2luZyB0cmFuc2FjdGlvbiB2YWxpZGF0aW9uIGZhaWxlZCBiZWZvcmUgc2lnbmluZzogJHttaXNtYXRjaEVycm9ycy5qb2luKCc7ICcpfWA7XG4gICAgICBkZWJ1ZyhlcnJvck1lc3NhZ2UpO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yTWVzc2FnZSk7XG4gICAgfVxuXG4gICAgaWYgKCFidWlsZFBhcmFtcykge1xuICAgICAgZGVidWcoXG4gICAgICAgIGBDYW5ub3QgcGVyZm9ybSBkZWVwIHZhbGlkYXRpb24gZm9yIHN0YWtpbmcgdHJhbnNhY3Rpb24gJHt0cmFuc2FjdGlvbi5zdGFraW5nUmVxdWVzdElkfSB3aXRob3V0IHNwZWNpZmllZCBidWlsZCBwYXJhbXNgXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBpc1N0YWtpbmdUeFJlcXVlc3RQcmVidWlsZFJlc3VsdChcbiAgdHg6IFN0YWtpbmdQcmVidWlsZFRyYW5zYWN0aW9uUmVzdWx0WydyZXN1bHQnXVxuKTogdHggaXMgU3Rha2luZ1R4UmVxdWVzdFByZWJ1aWxkVHJhbnNhY3Rpb25SZXN1bHQge1xuICByZXR1cm4gKHR4IGFzIFN0YWtpbmdUeFJlcXVlc3RQcmVidWlsZFRyYW5zYWN0aW9uUmVzdWx0KS50eFJlcXVlc3RJZCAhPT0gdW5kZWZpbmVkO1xufVxuIl19
367
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ1dhbGxldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby9zdGFraW5nL3N0YWtpbmdXYWxsZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7O0dBRUc7QUFDSCw0Q0FBNEM7QUFDNUMsNkRBQXFDO0FBdUJyQyxvQ0FBOEQ7QUFDOUQsb0RBQTRCO0FBQzVCLGdFQUF1RTtBQUN2RSxrREFBMEI7QUFDMUIsbURBQW9EO0FBRXBELE1BQWEsYUFBYTtJQVF4QixZQUFZLE1BQWUsRUFBRSxRQUFpQjtRQUM1QyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGdCQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0UsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkcsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQTBEO1FBQ3BFLE9BQU8sTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzNE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QUFXLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztnQkFDekYsY0FBYyxDQUFDLElBQUksQ0FDakIsMkNBQTJDLElBQUksQ0FBQyxTQUFTLENBQ3ZELFdBQVcsQ0FBQyxlQUFlLENBQzVCLFVBQVUsSUFBSSxDQUFDLFNBQVMsQ0FBRSxvQkFBNEIsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUMzRSxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDOUIsTUFBTSxZQUFZLEdBQUcseURBQXlELGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMxRyxJQUFBLGVBQUssRUFBQyxZQUFZLENBQUMsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFFRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakIsSUFBQSxlQUFLLEVBQ0gsMERBQTBELFdBQVcsQ0FBQyxnQkFBZ0IsaUNBQWlDLENBQ3hILENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBbmNELHNDQW1jQztBQUVELFNBQVMsZ0NBQWdDLENBQ3ZDLEVBQThDO0lBRTlDLE9BQVEsRUFBZ0QsQ0FBQyxXQUFXLEtBQUssU0FBUyxDQUFDO0FBQ3JGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgeyBDb2luRmFtaWx5IH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSAnbG9kYXNoL2lzRXF1YWwnO1xuXG5pbXBvcnQge1xuICBEZWxlZ2F0aW9uT3B0aW9ucyxcbiAgRGVsZWdhdGlvblJlc3VsdHMsXG4gIElTdGFraW5nV2FsbGV0LFxuICBTdGFrZU9wdGlvbnMsXG4gIFN0YWtpbmdQcmVidWlsZFRyYW5zYWN0aW9uUmVzdWx0LFxuICBTdGFraW5nUmVxdWVzdCxcbiAgU3Rha2luZ1NpZ25lZFRyYW5zYWN0aW9uLFxuICBTdGFraW5nU2lnbk9wdGlvbnMsXG4gIFN0YWtpbmdUcmFuc2FjdGlvbixcbiAgU3dpdGNoVmFsaWRhdG9yT3B0aW9ucyxcbiAgVHJhbnNhY3Rpb25zUmVhZHlUb1NpZ24sXG4gIFVuc3Rha2VPcHRpb25zLFxuICBFdGhVbnN0YWtlT3B0aW9ucyxcbiAgQ2xhaW1SZXdhcmRzT3B0aW9ucyxcbiAgU3Rha2luZ1R4UmVxdWVzdFByZWJ1aWxkVHJhbnNhY3Rpb25SZXN1bHQsXG4gIFRyb25TdGFrZU9wdGlvbnMsXG4gIFRhb1N0YWtlT3B0aW9ucyxcbn0gZnJvbSAnLi9pU3Rha2luZ1dhbGxldCc7XG5pbXBvcnQgeyBCaXRHb0Jhc2UgfSBmcm9tICcuLi9iaXRnb0Jhc2UnO1xuaW1wb3J0IHsgSVdhbGxldCwgUHJlYnVpbGRUcmFuc2FjdGlvblJlc3VsdCB9IGZyb20gJy4uL3dhbGxldCc7XG5pbXBvcnQgeyBJVHNzVXRpbHMsIFJlcXVlc3RUcmFjZXIsIFRzc1V0aWxzIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHsgdHJhbnNhY3Rpb25SZWNpcGllbnRzTWF0Y2ggfSBmcm9tICcuLi91dGlscy90cmFuc2FjdGlvblV0aWxzJztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICcuLi8uLi9hY2NvdW50LWxpYic7XG5cbmV4cG9ydCBjbGFzcyBTdGFraW5nV2FsbGV0IGltcGxlbWVudHMgSVN0YWtpbmdXYWxsZXQge1xuICBwcml2YXRlIHJlYWRvbmx5IGJpdGdvOiBCaXRHb0Jhc2U7XG4gIHByaXZhdGUgdG9rZW5QYXJlbnRXYWxsZXQ/OiBJV2FsbGV0O1xuICBwcml2YXRlIHJlYWRvbmx5IGlzRXRoVHNzOiBib29sZWFuO1xuXG4gIHB1YmxpYyB3YWxsZXQ6IElXYWxsZXQ7XG4gIHB1YmxpYyB0c3NVdGlsOiBJVHNzVXRpbHM7XG5cbiAgY29uc3RydWN0b3Iod2FsbGV0OiBJV2FsbGV0LCBpc0V0aFRzczogYm9vbGVhbikge1xuICAgIHRoaXMud2FsbGV0ID0gd2FsbGV0O1xuICAgIHRoaXMuYml0Z28gPSB3YWxsZXQuYml0Z287XG4gICAgdGhpcy50c3NVdGlsID0gbmV3IFRzc1V0aWxzKHRoaXMuYml0Z28sIHRoaXMud2FsbGV0LmJhc2VDb2luLCB0aGlzLndhbGxldCk7XG4gICAgdGhpcy5pc0V0aFRzcyA9IGlzRXRoVHNzO1xuICB9XG5cbiAgZ2V0IHdhbGxldElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMud2FsbGV0LmlkKCk7XG4gIH1cblxuICBnZXQgY29pbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLndhbGxldC5iYXNlQ29pbi50b2tlbkNvbmZpZyA/IHRoaXMud2FsbGV0LmJhc2VDb2luLnRva2VuQ29uZmlnLnR5cGUgOiB0aGlzLndhbGxldC5jb2luKCk7XG4gIH1cblxuICAvKipcbiAgICogU3Rha2UgY29pbnNcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBzdGFrZSBvcHRpb25zXG4gICAqIEByZXR1cm4gU3Rha2luZ1JlcXVlc3RcbiAgICovXG4gIGFzeW5jIHN0YWtlKG9wdGlvbnM6IFN0YWtlT3B0aW9ucyB8IFRyb25TdGFrZU9wdGlvbnMgfCBUYW9TdGFrZU9wdGlvbnMpOiBQcm9taXNlPFN0YWtpbmdSZXF1ZXN0PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY3JlYXRlU3Rha2luZ1JlcXVlc3Qob3B0aW9ucywgJ1NUQUtFJyk7XG4gIH1cblxuICAvKipcbiAgICogVW5zdGFrZSBjb2luc1xuICAgKiBAcGFyYW0gb3B0aW9ucyAtIHVuc3Rha2Ugb3B0aW9uc1xuICAgKiBAcmV0dXJuIFN0YWtpbmdSZXF1ZXN0XG4gICAqL1xuICBhc3luYyB1bnN0YWtlKG9wdGlvbnM6IFVuc3Rha2VPcHRpb25zIHwgRXRoVW5zdGFrZU9wdGlvbnMpOiBQcm9taXNlPFN0YWtpbmdSZXF1ZXN0PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY3JlYXRlU3Rha2luZ1JlcXVlc3Qob3B0aW9ucywgJ1VOU1RBS0UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJtaXQgYSByZXF1ZXN0IHRvIHN3aXRjaCB0aGUgdmFsaWRhdG9yIHVzZWQgZm9yIGEgc3BlY2lmaWMgZGVsZWdhdGlvblxuICAgKiBUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IGRlbGVnYXRpb24gd2l0aCB0aGUgbmV3IHZhbGlkYXRvciBhZGRyZXNzIGFuZCBtYXJrIHRoZSBvbGQgZGVsZWdhdGlvbiBhcyBpbmFjdGl2ZVxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIHN3aXRjaCB2YWxpZGF0b3Igb3B0aW9uc1xuICAgKiBAcmV0dXJuIFN0YWtpbmdSZXF1ZXN0XG4gICAqL1xuICBhc3luYyBzd2l0Y2hWYWxpZGF0b3Iob3B0aW9uczogU3dpdGNoVmFsaWRhdG9yT3B0aW9ucyk6IFByb21pc2U8U3Rha2luZ1JlcXVlc3Q+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5jcmVhdGVTdGFraW5nUmVxdWVzdChvcHRpb25zLCAnU1dJVENIX1ZBTElEQVRPUicpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1Ym1pdCBhIHJlcXVlc3QgdG8gY2xhaW0gcmV3YXJkcyBmb3IgYSBzcGVjaWZpYyBkZWxlZ2F0aW9uXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gY2xhaW0gcmV3YXJkcyBvcHRpb25zXG4gICAqIEByZXR1cm4gU3Rha2luZ1JlcXVlc3RcbiAgICovXG4gIGFzeW5jIGNsYWltUmV3YXJkcyhvcHRpb25zOiBDbGFpbVJld2FyZHNPcHRpb25zKTogUHJvbWlzZTxTdGFraW5nUmVxdWVzdD4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmNyZWF0ZVN0YWtpbmdSZXF1ZXN0KG9wdGlvbnMsICdDTEFJTV9SRVdBUkRTJyk7XG4gIH1cblxuICAvKipcbiAgICogQ2FuY2VsIHN0YWtpbmcgcmVxdWVzdFxuICAgKiBAcGFyYW0gc3Rha2luZ1JlcXVlc3RJZCAtIGlkIG9mIHRoZSBzdGFraW5nIHJlcXVlc3QgdG8gY2FuY2VsXG4gICAqIEByZXR1cm4gU3Rha2luZ1JlcXVlc3RcbiAgICovXG4gIGFzeW5jIGNhbmNlbFN0YWtpbmdSZXF1ZXN0KHN0YWtpbmdSZXF1ZXN0SWQ6IHN0cmluZyk6IFByb21pc2U8U3Rha2luZ1JlcXVlc3Q+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5iaXRnby5kZWwodGhpcy5iaXRnby5taWNyb3NlcnZpY2VzVXJsKHRoaXMuc3Rha2luZ1JlcXVlc3RVcmwoc3Rha2luZ1JlcXVlc3RJZCkpKS5yZXN1bHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaCBkZWxlZ2F0aW9ucyBmb3IgYSBzcGVjaWZpYyB3YWxsZXRcbiAgICogQHBhcmFtIG9wdGlvbnMgLSB1bnN0YWtlIG9wdGlvbnNcbiAgICogQHJldHVybiBTdGFraW5nUmVxdWVzdFxuICAgKi9cbiAgYXN5bmMgZGVsZWdhdGlvbnMob3B0aW9uczogRGVsZWdhdGlvbk9wdGlvbnMpOiBQcm9taXNlPERlbGVnYXRpb25SZXN1bHRzPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0RGVsZWdhdGlvbnMob3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGEgc3Rha2luZyByZXF1ZXN0IGJ5IElEXG4gICAqIEBwYXJhbSBzdGFraW5nUmVxdWVzdElkIC0gaWQgb2YgdGhlIHN0YWtpbmcgcmVxdWVzdCB0byByZXRyaWV2ZVxuICAgKiBAcmV0dXJuIFN0YWtpbmdSZXF1ZXN0XG4gICAqL1xuICBhc3luYyBnZXRTdGFraW5nUmVxdWVzdChzdGFraW5nUmVxdWVzdElkOiBzdHJpbmcpOiBQcm9taXNlPFN0YWtpbmdSZXF1ZXN0PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYml0Z28uZ2V0KHRoaXMuYml0Z28ubWljcm9zZXJ2aWNlc1VybCh0aGlzLnN0YWtpbmdSZXF1ZXN0VXJsKHN0YWtpbmdSZXF1ZXN0SWQpKSkucmVzdWx0KCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRyYW5zYWN0aW9ucyByZWFkeSB0byBzaWduXG4gICAqIEBwYXJhbSBzdGFraW5nUmVxdWVzdElkXG4gICAqIEByZXR1cm4gVHJhbnNhY3Rpb25zUmVhZHlUb1NpZ25cbiAgICovXG4gIGFzeW5jIGdldFRyYW5zYWN0aW9uc1JlYWR5VG9TaWduKHN0YWtpbmdSZXF1ZXN0SWQ6IHN0cmluZyk6IFByb21pc2U8VHJhbnNhY3Rpb25zUmVhZHlUb1NpZ24+IHtcbiAgICBjb25zdCBzdGFraW5nUmVxdWVzdDogU3Rha2luZ1JlcXVlc3QgPSBhd2FpdCB0aGlzLmdldFN0YWtpbmdSZXF1ZXN0KHN0YWtpbmdSZXF1ZXN0SWQpO1xuICAgIGNvbnN0IHJlYWR5VG9TaWduOiBTdGFraW5nVHJhbnNhY3Rpb25bXSA9IHN0YWtpbmdSZXF1ZXN0LnRyYW5zYWN0aW9ucy5maWx0ZXIoXG4gICAgICAodHJhbnNhY3Rpb246IFN0YWtpbmdUcmFuc2FjdGlvbikgPT4gdHJhbnNhY3Rpb24uc3RhdHVzID09PSBgUkVBRFlgXG4gICAgKTtcbiAgICBjb25zdCBuZXdUcmFuc2FjdGlvbnM6IFN0YWtpbmdUcmFuc2FjdGlvbltdID0gc3Rha2luZ1JlcXVlc3QudHJhbnNhY3Rpb25zLmZpbHRlcihcbiAgICAgICh0cmFuc2FjdGlvbjogU3Rha2luZ1RyYW5zYWN0aW9uKSA9PiB0cmFuc2FjdGlvbi5zdGF0dXMgPT09IGBORVdgXG4gICAgKTtcblxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgYWxsU2lnbmluZ0NvbXBsZXRlOlxuICAgICAgICBzdGFraW5nUmVxdWVzdC50cmFuc2FjdGlvbnMubGVuZ3RoID4gMCAmJiBuZXdUcmFuc2FjdGlvbnMubGVuZ3RoID09PSAwICYmIHJlYWR5VG9TaWduLmxlbmd0aCA9PT0gMCxcbiAgICAgIHRyYW5zYWN0aW9uczogcmVhZHlUb1NpZ24sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgdGhlIHN0YWtpbmcgdHJhbnNhY3Rpb25cbiAgICogSWYgVFNTIGRlbGV0ZSBzaWduYXR1cmUgc2hhcmVzLCBlbHNlIGV4cGFuZCBidWlsZCBwYXJhbXMgYW5kIHRoZW4gYnVpbGRcbiAgICogQHBhcmFtIHRyYW5zYWN0aW9uIC0gc3Rha2luZyB0cmFuc2FjdGlvbiB0byBidWlsZFxuICAgKi9cbiAgYXN5bmMgYnVpbGQodHJhbnNhY3Rpb246IFN0YWtpbmdUcmFuc2FjdGlvbik6IFByb21pc2U8U3Rha2luZ1ByZWJ1aWxkVHJhbnNhY3Rpb25SZXN1bHQ+IHtcbiAgICBpZiAoKHRoaXMud2FsbGV0Lm11bHRpc2lnVHlwZSgpID09PSAndHNzJyAmJiB0aGlzLndhbGxldC5iYXNlQ29pbi5nZXRGYW1pbHkoKSAhPT0gJ2V0aCcpIHx8IHRoaXMuaXNFdGhUc3MpIHtcbiAgICAgIGlmICghdHJhbnNhY3Rpb24udHhSZXF1ZXN0SWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd0eFJlcXVlc3RJZCBpcyByZXF1aXJlZCB0byBzaWduIGFuZCBzZW5kJyk7XG4gICAgICB9XG4gICAgICAvLyBkZWxldGUgc2lnbmF0dXJlIHNoYXJlcyBiZWZvcmUgc2lnbmluZyBmb3IgdHJhbnNhY3Rpb24gcmVxdWVzdCBBUElcbiAgICAgIGF3YWl0IHRoaXMudHNzVXRpbC5kZWxldGVTaWduYXR1cmVTaGFyZXModHJhbnNhY3Rpb24udHhSZXF1ZXN0SWQpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHJhbnNhY3Rpb246IHRyYW5zYWN0aW9uLFxuICAgICAgICByZXN1bHQ6IHtcbiAgICAgICAgICB3YWxsZXRJZDogdGhpcy53YWxsZXRJZCxcbiAgICAgICAgICB0eFJlcXVlc3RJZDogdHJhbnNhY3Rpb24udHhSZXF1ZXN0SWQsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0cmFuc2FjdGlvbiA9IGF3YWl0IHRoaXMuZXhwYW5kQnVpbGRQYXJhbXModHJhbnNhY3Rpb24pO1xuICAgICAgaWYgKCF0cmFuc2FjdGlvbi5idWlsZFBhcmFtcykge1xuICAgICAgICB0aHJvdyBFcnJvcihgU3Rha2luZyB0cmFuc2FjdGlvbiAke3RyYW5zYWN0aW9uLmlkfSBidWlsZCBwYXJhbXMgbm90IGV4cGFuZGVkYCk7XG4gICAgICB9XG4gICAgICBjb25zdCB3YWxsZXQgPSBhd2FpdCB0aGlzLmV4dHJhY3RXYWxsZXQodHJhbnNhY3Rpb24pO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICB0cmFuc2FjdGlvbjogdHJhbnNhY3Rpb24sXG4gICAgICAgIHJlc3VsdDogYXdhaXQgd2FsbGV0LnByZWJ1aWxkVHJhbnNhY3Rpb24odHJhbnNhY3Rpb24uYnVpbGRQYXJhbXMpLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGV4dHJhY3RXYWxsZXQodHJhbnNhY3Rpb246IFN0YWtpbmdUcmFuc2FjdGlvbikge1xuICAgIHJldHVybiB0aGlzLmlzQnRjVW5kZWxlZ2F0ZSh0cmFuc2FjdGlvbilcbiAgICAgID8gYXdhaXQgdGhpcy5nZXREZXNjcmlwdG9yV2FsbGV0KHRyYW5zYWN0aW9uKVxuICAgICAgOiBhd2FpdCB0aGlzLmdldFdhbGxldEZvckJ1aWxkaW5nQW5kU2lnbmluZygpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0J0Y1VuZGVsZWdhdGUodHJhbnNhY3Rpb246IFN0YWtpbmdUcmFuc2FjdGlvbikge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLndhbGxldC5iYXNlQ29pbi5nZXRGYW1pbHkoKSA9PT0gJ2J0YycgJiYgdHJhbnNhY3Rpb24udHJhbnNhY3Rpb25UeXBlLnRvTG93ZXJDYXNlKCkgPT09ICd1bmRlbGVnYXRlX3dpdGhkcmF3J1xuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGlzU3R4KCkge1xuICAgIHJldHVybiB0aGlzLndhbGxldC5iYXNlQ29pbi5nZXRGYW1pbHkoKSA9PT0gJ3N0eCc7XG4gIH1cblxuICBwcml2YXRlIGlzVHJ4U3Rha2luZyh0cmFuc2FjdGlvbjogU3Rha2luZ1RyYW5zYWN0aW9uKSB7XG4gICAgcmV0dXJuIHRoaXMud2FsbGV0LmJhc2VDb2luLmdldEZhbWlseSgpID09PSAndHJ4JztcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduIHRoZSBzdGFraW5nIHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSBzaWduT3B0aW9uc1xuICAgKiBAcGFyYW0gc3Rha2luZ1ByZWJ1aWxkVHJhbnNhY3Rpb25cbiAgICovXG4gIGFzeW5jIHNpZ24oXG4gICAgc2lnbk9wdGlvbnM6IFN0YWtpbmdTaWduT3B0aW9ucyxcbiAgICBzdGFraW5nUHJlYnVpbGRUcmFuc2FjdGlvbjogU3Rha2luZ1ByZWJ1aWxkVHJhbnNhY3Rpb25SZXN1bHRcbiAgKTogUHJvbWlzZTxTdGFraW5nU2lnbmVkVHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCByZXFJZCA9IG5ldyBSZXF1ZXN0VHJhY2VyKCk7XG4gICAgY29uc3QgaXNCdGNVbmRlbGVnYXRlID1cbiAgICAgIHRoaXMud2FsbGV0LmJhc2VDb2luLmdldEZhbWlseSgpID09PSAnYnRjJyAmJlxuICAgICAgc3Rha2luZ1ByZWJ1aWxkVHJhbnNhY3Rpb24udHJhbnNhY3Rpb24udHJhbnNhY3Rpb25UeXBlLnRvTG93ZXJDYXNlKCkgPT09ICd1bmRlbGVnYXRlX3dpdGhkcmF3JztcbiAgICBjb25zdCB3YWxsZXQgPSBpc0J0Y1VuZGVsZWdhdGVcbiAgICAgID8gYXdhaXQgdGhpcy5nZXREZXNjcmlwdG9yV2FsbGV0KHN0YWtpbmdQcmVidWlsZFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uKVxuICAgICAgOiBhd2FpdCB0aGlzLmdldFdhbGxldEZvckJ1aWxkaW5nQW5kU2lnbmluZygpO1xuXG4gICAgY29uc3Qga2V5Y2hhaW4gPSBhd2FpdCB3YWxsZXQuYmFzZUNvaW4ua2V5Y2hhaW5zKCkuZ2V0S2V5c0ZvclNpZ25pbmcoe1xuICAgICAgd2FsbGV0OiB0aGlzLndhbGxldCxcbiAgICAgIHJlcUlkOiByZXFJZCxcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgdHJhbnNhY3Rpb246IHN0YWtpbmdQcmVidWlsZFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uLFxuICAgICAgc2lnbmVkOiBhd2FpdCB3YWxsZXQuc2lnblRyYW5zYWN0aW9uKHtcbiAgICAgICAgdHhQcmVidWlsZDogc3Rha2luZ1ByZWJ1aWxkVHJhbnNhY3Rpb24ucmVzdWx0LFxuICAgICAgICB3YWxsZXRQYXNzcGhyYXNlOiBzaWduT3B0aW9ucy53YWxsZXRQYXNzcGhyYXNlLFxuICAgICAgICBrZXljaGFpbjoga2V5Y2hhaW5bMF0sXG4gICAgICB9KSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbmQgdGhlIHNpZ25lZCBzdGFraW5nIHRyYW5zYWN0aW9uIGlmIHJlcXVpcmVkLiBTZW5kIGNhbGwgaXMgbm90IHJlcXVpcmVkIGlmIGFwaSB2ZXJzaW9uIGlzIGZ1bGxcbiAgICogYW5kIHRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuIHRoZSBzdGFraW5nIHRyYW5zYWN0aW9uIGZyb20gdGhlIGluY29taW5nIG9iamVjdC5cbiAgICogQHBhcmFtIHNpZ25lZFRyYW5zYWN0aW9uXG4gICAqL1xuICBhc3luYyBzZW5kKHNpZ25lZFRyYW5zYWN0aW9uOiBTdGFraW5nU2lnbmVkVHJhbnNhY3Rpb24pOiBQcm9taXNlPFN0YWtpbmdUcmFuc2FjdGlvbj4ge1xuICAgIGlmICh0aGlzLmlzU2VuZENhbGxSZXF1aXJlZCgpKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5iaXRnb1xuICAgICAgICAucG9zdCh0aGlzLmJpdGdvLm1pY3Jvc2VydmljZXNVcmwodGhpcy5zdGFraW5nVHJhbnNhY3Rpb25VUkwoc2lnbmVkVHJhbnNhY3Rpb24udHJhbnNhY3Rpb24pKSlcbiAgICAgICAgLnNlbmQoc2lnbmVkVHJhbnNhY3Rpb24uc2lnbmVkKVxuICAgICAgICAucmVzdWx0KCk7XG4gICAgfVxuICAgIHJldHVybiBzaWduZWRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBARGVwcmVjYXRlZCB1c2UgYnVpbGRBbmRTaWduXG4gICAqIEJ1aWxkLCBzaWduIGFuZCBzZW5kIHRoZSB0cmFuc2FjdGlvbi5cbiAgICogQHBhcmFtIHNpZ25PcHRpb25zXG4gICAqIEBwYXJhbSB0cmFuc2FjdGlvblxuICAgKi9cbiAgYXN5bmMgYnVpbGRTaWduQW5kU2VuZChcbiAgICBzaWduT3B0aW9uczogU3Rha2luZ1NpZ25PcHRpb25zLFxuICAgIHRyYW5zYWN0aW9uOiBTdGFraW5nVHJhbnNhY3Rpb25cbiAgKTogUHJvbWlzZTxTdGFraW5nVHJhbnNhY3Rpb24+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5idWlsZEFuZFNpZ24oc2lnbk9wdGlvbnMsIHRyYW5zYWN0aW9uKS50aGVuKChyZXN1bHQ6IFN0YWtpbmdTaWduZWRUcmFuc2FjdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuc2VuZChyZXN1bHQpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBwcmVidWlsdCBzdGFraW5nIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBmb3IgdHJhbnNhY3Rpb25zIHdpdGggdHggcmVxdWVzdCBpZCAoVFNTIHRyYW5zYWN0aW9ucyksIHdlIG5lZWQgdG8gZGVsZXRlIHNpZ25hdHVyZSBzaGFyZXMgYmVmb3JlIGNyZWF0aW5nIHByZWJ1aWxkIHRyYW5zYWN0aW9uXG4gICAqIHdlIG9ubHkgbmVlZCB0byBnZXQgdHJhbnNhY3Rpb24gYnVpbGQgcGFyYW1zIGlmIHRoZXkgZXhpc3QgdG8gcHJlIGJ1aWxkXG4gICAqXG4gICAqIEBwYXJhbSB0cmFuc2FjdGlvblxuICAgKi9cbiAgYXN5bmMgcHJlYnVpbGRTZWxmTWFuYWdlZFN0YWtpbmdUcmFuc2FjdGlvbih0cmFuc2FjdGlvbjogU3Rha2luZ1RyYW5zYWN0aW9uKTogUHJvbWlzZTxQcmVidWlsZFRyYW5zYWN0aW9uUmVzdWx0PiB7XG4gICAgaWYgKHRyYW5zYWN0aW9uLnR4UmVxdWVzdElkKSB7XG4gICAgICBhd2FpdCB0aGlzLnRzc1V0aWwuZGVsZXRlU2lnbmF0dXJlU2hhcmVzKHRyYW5zYWN0aW9uLnR4UmVxdWVzdElkKTtcbiAgICB9XG4gICAgY29uc3QgYnVpbGRQYXJhbXMgPSAoYXdhaXQgdGhpcy5leHBhbmRCdWlsZFBhcmFtcyh0cmFuc2FjdGlvbikpLmJ1aWxkUGFyYW1zO1xuICAgIGNvbnN0IGZvcm1hdHRlZFBhcmFtcyA9IHtcbiAgICAgIC4uLmJ1aWxkUGFyYW1zLFxuICAgICAgY29pbjogdGhpcy5jb2luLFxuICAgICAgd2FsbGV0SWQ6IHRoaXMud2FsbGV0SWQsXG4gICAgICB3YWxsZXRUeXBlOiB0aGlzLndhbGxldC50eXBlKCksXG4gICAgICBwcmV2aWV3OiB0cnVlLFxuICAgIH07XG4gICAgcmV0dXJuIGF3YWl0IChhd2FpdCB0aGlzLmdldFdhbGxldEZvckJ1aWxkaW5nQW5kU2lnbmluZygpKS5wcmVidWlsZFRyYW5zYWN0aW9uKGZvcm1hdHRlZFBhcmFtcyk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYW5kIHNpZ24gdGhlIHRyYW5zYWN0aW9uLlxuICAgKiBAcGFyYW0gc2lnbk9wdGlvbnNcbiAgICogQHBhcmFtIHRyYW5zYWN0aW9uXG4gICAqL1xuICBhc3luYyBidWlsZEFuZFNpZ24oXG4gICAgc2lnbk9wdGlvbnM6IFN0YWtpbmdTaWduT3B0aW9ucyxcbiAgICB0cmFuc2FjdGlvbjogU3Rha2luZ1RyYW5zYWN0aW9uXG4gICk6IFByb21pc2U8U3Rha2luZ1NpZ25lZFRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3QgYnVpbHRUeCA9IGF3YWl0IHRoaXMuYnVpbGQodHJhbnNhY3Rpb24pO1xuICAgIC8vIGRlZmF1bHQgdG8gdmVyaWZ5aW5nIGEgdHJhbnNhY3Rpb24gdW5sZXNzIGV4cGxpY2l0bHkgc2tpcHBlZFxuICAgIC8vIHNraXBwaW5nIHRoZSB2ZXJpZmljYXRpb24gZm9yIGJ0YyB1bmRlbGVnYXRlIGJlY2F1c2UgaXQgaXMganVzdCBzaW5nbGUgc2lnXG4gICAgLy8gVE9ETzogU0MtMzE4MyAoYWRkIHRyeCBzdGFraW5nIHZlcmlmaWNhdGlvbilcbiAgICBjb25zdCBza2lwVmVyaWZpY2F0aW9uID1cbiAgICAgIChzaWduT3B0aW9ucy50cmFuc2FjdGlvblZlcmlmaWNhdGlvbk9wdGlvbnM/LnNraXBUcmFuc2FjdGlvblZlcmlmaWNhdGlvbiB8fFxuICAgICAgICB0aGlzLmlzQnRjVW5kZWxlZ2F0ZSh0cmFuc2FjdGlvbikgfHxcbiAgICAgICAgdGhpcy5pc1RyeFN0YWtpbmcodHJhbnNhY3Rpb24pKSA/P1xuICAgICAgZmFsc2U7XG4gICAgaWYgKCFpc1N0YWtpbmdUeFJlcXVlc3RQcmVidWlsZFJlc3VsdChidWlsdFR4LnJlc3VsdCkgJiYgIXNraXBWZXJpZmljYXRpb24pIHtcbiAgICAgIGF3YWl0IHRoaXMudmFsaWRhdGVCdWlsdFN0YWtpbmdUcmFuc2FjdGlvbihidWlsdFR4LnRyYW5zYWN0aW9uLCBidWlsdFR4KTtcbiAgICB9XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuc2lnbihzaWduT3B0aW9ucywgYnVpbHRUeCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGV4cGFuZEJ1aWxkUGFyYW1zKHN0YWtpbmdUcmFuc2FjdGlvbjogU3Rha2luZ1RyYW5zYWN0aW9uKTogUHJvbWlzZTxTdGFraW5nVHJhbnNhY3Rpb24+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5iaXRnb1xuICAgICAgLmdldCh0aGlzLmJpdGdvLm1pY3Jvc2VydmljZXNVcmwodGhpcy5zdGFraW5nVHJhbnNhY3Rpb25VUkwoc3Rha2luZ1RyYW5zYWN0aW9uKSkpXG4gICAgICAucXVlcnkoeyBleHBhbmRCdWlsZFBhcmFtczogdHJ1ZSB9KVxuICAgICAgLnJlc3VsdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjcmVhdGVTdGFraW5nUmVxdWVzdChcbiAgICBvcHRpb25zOlxuICAgICAgfCBTdGFrZU9wdGlvbnNcbiAgICAgIHwgVW5zdGFrZU9wdGlvbnNcbiAgICAgIHwgRXRoVW5zdGFrZU9wdGlvbnNcbiAgICAgIHwgU3dpdGNoVmFsaWRhdG9yT3B0aW9uc1xuICAgICAgfCBDbGFpbVJld2FyZHNPcHRpb25zXG4gICAgICB8IFRyb25TdGFrZU9wdGlvbnNcbiAgICAgIHwgVGFvU3Rha2VPcHRpb25zLFxuICAgIHR5cGU6IHN0cmluZ1xuICApOiBQcm9taXNlPFN0YWtpbmdSZXF1ZXN0PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYml0Z29cbiAgICAgIC5wb3N0KHRoaXMuYml0Z28ubWljcm9zZXJ2aWNlc1VybCh0aGlzLnN0YWtpbmdSZXF1ZXN0c1VSTCgpKSlcbiAgICAgIC5zZW5kKHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgIH0pXG4gICAgICAucmVzdWx0KCk7XG4gIH1cblxuICBwcml2YXRlIHN0YWtpbmdSZXF1ZXN0c1VSTCgpIHtcbiAgICByZXR1cm4gYC9hcGkvc3Rha2luZy92MS8ke3RoaXMuY29pbn0vd2FsbGV0cy8ke3RoaXMud2FsbGV0SWR9L3JlcXVlc3RzYDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0RGVsZWdhdGlvbnMob3B0aW9uczogRGVsZWdhdGlvbk9wdGlvbnMpOiBQcm9taXNlPERlbGVnYXRpb25SZXN1bHRzPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYml0Z28uZ2V0KHRoaXMuYml0Z28ubWljcm9zZXJ2aWNlc1VybCh0aGlzLnN0YWtpbmdEZWxlZ2F0aW9uc1VSTCgpKSkucXVlcnkob3B0aW9ucykucmVzdWx0KCk7XG4gIH1cblxuICBwcml2YXRlIHN0YWtpbmdEZWxlZ2F0aW9uc1VSTCgpIHtcbiAgICByZXR1cm4gYC9hcGkvc3Rha2luZy92MS8ke3RoaXMuY29pbn0vd2FsbGV0cy8ke3RoaXMud2FsbGV0SWR9L2RlbGVnYXRpb25zYDtcbiAgfVxuXG4gIHByaXZhdGUgc3Rha2luZ1JlcXVlc3RVcmwoc3Rha2luZ1JlcXVlc3RJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5zdGFraW5nUmVxdWVzdHNVUkwoKX0vJHtzdGFraW5nUmVxdWVzdElkfWA7XG4gIH1cblxuICBwcml2YXRlIHN0YWtpbmdUcmFuc2FjdGlvblVSTChzdGFraW5nVHJhbnNhY3Rpb246IFN0YWtpbmdUcmFuc2FjdGlvbik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuc3Rha2luZ1JlcXVlc3RVcmwoc3Rha2luZ1RyYW5zYWN0aW9uLnN0YWtpbmdSZXF1ZXN0SWQpfS90cmFuc2FjdGlvbnMvJHtzdGFraW5nVHJhbnNhY3Rpb24uaWR9YDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0V2FsbGV0Rm9yQnVpbGRpbmdBbmRTaWduaW5nKCk6IFByb21pc2U8SVdhbGxldD4ge1xuICAgIGlmICh0aGlzLndhbGxldC5iYXNlQ29pbi50b2tlbkNvbmZpZykge1xuICAgICAgaWYgKCF0aGlzLnRva2VuUGFyZW50V2FsbGV0KSB7XG4gICAgICAgIHRoaXMudG9rZW5QYXJlbnRXYWxsZXQgPSBhd2FpdCB0aGlzLmJpdGdvXG4gICAgICAgICAgLmNvaW4odGhpcy53YWxsZXQuYmFzZUNvaW4udG9rZW5Db25maWcuY29pbilcbiAgICAgICAgICAud2FsbGV0cygpXG4gICAgICAgICAgLmdldCh7IGlkOiB0aGlzLndhbGxldC5pZCgpIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMudG9rZW5QYXJlbnRXYWxsZXQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy53YWxsZXQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kIEFQSSBjYWxsIGlzIG9ubHkgcmVxdWlyZWQgZm9yIFRTUyBUeFJlcXVlc3QgYXBpIHZlcnNpb24gbGl0ZSBvciBtdWx0aS1zaWcgdHJhbnNhY3Rpb25zLlxuICAgKiBGb3IgRnVsbCBhcGkgdmVyc2lvbiwgc2lnbiB0cmFuc2FjdGlvbiBtb3ZlcyB0aGUgdHJhbnNhY3Rpb24gdG8gZGVsaXZlcmVkIHN0YXRlLlxuICAgKiBAcmV0dXJucyB0cnVlIGlmIHNlbmQgQVBJIGNhbGwgdG8gc3Rha2luZyBzZXJ2aWNlIGlzIHJlcXVpcmVkIGVsc2UgZmFsc2VcbiAgICovXG4gIHByaXZhdGUgaXNTZW5kQ2FsbFJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLndhbGxldC5iYXNlQ29pbi5nZXRGYW1pbHkoKSA9PT0gQ29pbkZhbWlseS5FVEgpIHtcbiAgICAgIHJldHVybiAhdGhpcy5pc0V0aFRzcztcbiAgICB9IGVsc2UgaWYgKHRoaXMud2FsbGV0Lm11bHRpc2lnVHlwZSgpID09PSAndHNzJykge1xuICAgICAgcmV0dXJuIHRoaXMud2FsbGV0LmJhc2VDb2luLmdldE1QQ0FsZ29yaXRobSgpICE9PSAnZWNkc2EnO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldERlc2NyaXB0b3JXYWxsZXQodHJhbnNhY3Rpb246IFN0YWtpbmdUcmFuc2FjdGlvbik6IFByb21pc2U8SVdhbGxldD4ge1xuICAgIGFzc2VydCh0cmFuc2FjdGlvbi5idWlsZFBhcmFtcz8uc2VuZGVyV2FsbGV0SWQsICdzZW5kZXJXYWxsZXRJZCBpcyByZXF1aXJlZCBmb3IgYnRjIHVuZGVsZWdhdGUgdHJhbnNhY3Rpb24nKTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy53YWxsZXQuYmFzZUNvaW4ud2FsbGV0cygpLmdldCh7IGlkOiB0cmFuc2FjdGlvbi5idWlsZFBhcmFtcy5zZW5kZXJXYWxsZXRJZCB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdmFsaWRhdGVCdWlsdFN0YWtpbmdUcmFuc2FjdGlvbihcbiAgICB0cmFuc2FjdGlvbjogU3Rha2luZ1RyYW5zYWN0aW9uLFxuICAgIHByZWJ1aWx0U3Rha2luZ1RyYW5zYWN0aW9uOiBTdGFraW5nUHJlYnVpbGRUcmFuc2FjdGlvblJlc3VsdFxuICApIHtcbiAgICBjb25zdCB7IGJ1aWxkUGFyYW1zIH0gPSB0cmFuc2FjdGlvbjtcbiAgICBjb25zdCB7IHJlc3VsdCB9ID0gcHJlYnVpbHRTdGFraW5nVHJhbnNhY3Rpb247XG4gICAgY29uc3QgY29pbiA9IHRoaXMud2FsbGV0LmJhc2VDb2luO1xuICAgIGRlYnVnKGBWYWxpZGF0aW5nIHN0YWtpbmcgdHJhbnNhY3Rpb24gJHt0cmFuc2FjdGlvbi5zdGFraW5nUmVxdWVzdElkfSB3aXRoIHByZWJ1aWx0IHRyYW5zYWN0aW9uYCk7XG5cbiAgICBpZiAoISgndHhIZXgnIGluIHJlc3VsdCkgfHwgIXJlc3VsdC50eEhleCkge1xuICAgICAgZGVidWcoYFNraXBwaW5nIHZhbGlkYXRpb24gZm9yIHN0YWtpbmcgdHJhbnNhY3Rpb24gJHt0cmFuc2FjdGlvbi5zdGFraW5nUmVxdWVzdElkfSAtIHR4SGV4IGlzIHVuZGVmaW5lZGApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGV4cGxhaW5lZFRyYW5zYWN0aW9uID0gYXdhaXQgY29pbi5leHBsYWluVHJhbnNhY3Rpb24ocmVzdWx0KTtcbiAgICBjb25zdCBtaXNtYXRjaEVycm9yczogc3RyaW5nW10gPSBbXTtcblxuICAgIGlmIChidWlsZFBhcmFtcz8ucmVjaXBpZW50cyAmJiBidWlsZFBhcmFtcy5yZWNpcGllbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHVzZXJSZWNpcGllbnRNYXAgPSBuZXcgTWFwKFxuICAgICAgICBidWlsZFBhcmFtcy5yZWNpcGllbnRzLm1hcCgocmVjaXBpZW50KSA9PiBbcmVjaXBpZW50LmFkZHJlc3MudG9Mb3dlckNhc2UoKSwgcmVjaXBpZW50XSlcbiAgICAgICk7XG4gICAgICBjb25zdCBwbGF0Zm9ybVJlY2lwaWVudE1hcCA9IG5ldyBNYXAoXG4gICAgICAgIChleHBsYWluZWRUcmFuc2FjdGlvbj8ub3V0cHV0cyA/PyBbXSkubWFwKChyZWNpcGllbnQpID0+IFtyZWNpcGllbnQuYWRkcmVzcy50b0xvd2VyQ2FzZSgpLCByZWNpcGllbnRdKVxuICAgICAgKTtcbiAgICAgIGZvciAoY29uc3QgW2FkZHJlc3NdIG9mIHBsYXRmb3JtUmVjaXBpZW50TWFwKSB7XG4gICAgICAgIGlmICghdXNlclJlY2lwaWVudE1hcC5oYXMoYWRkcmVzcykpIHtcbiAgICAgICAgICBtaXNtYXRjaEVycm9ycy5wdXNoKGBVbmV4cGVjdGVkIHJlY2lwaWVudCBhZGRyZXNzIGZvdW5kIGluIGJ1aWx0IHRyYW5zYWN0aW9uOiAke2FkZHJlc3N9YCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCBbYWRkcmVzcywgdXNlclJlY2lwaWVudF0gb2YgdXNlclJlY2lwaWVudE1hcCkge1xuICAgICAgICBjb25zdCBwbGF0Zm9ybVJlY2lwaWVudCA9IHBsYXRmb3JtUmVjaXBpZW50TWFwLmdldChhZGRyZXNzKTtcbiAgICAgICAgaWYgKCFwbGF0Zm9ybVJlY2lwaWVudCkge1xuICAgICAgICAgIG1pc21hdGNoRXJyb3JzLnB1c2goYEV4cGVjdGVkIHJlY2lwaWVudCBhZGRyZXNzIG5vdCBmb3VuZCBpbiBidWlsdCB0cmFuc2FjdGlvbjogJHthZGRyZXNzfWApO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbWF0Y2hSZXN1bHQgPSB0cmFuc2FjdGlvblJlY2lwaWVudHNNYXRjaCh1c2VyUmVjaXBpZW50LCBwbGF0Zm9ybVJlY2lwaWVudCk7XG5cbiAgICAgICAgaWYgKCFtYXRjaFJlc3VsdC5hbW91bnRNYXRjaCkge1xuICAgICAgICAgIG1pc21hdGNoRXJyb3JzLnB1c2goXG4gICAgICAgICAgICBgUmVjaXBpZW50ICR7YWRkcmVzc30gYW1vdW50IG1pc21hdGNoLiBFeHBlY3RlZDogJHt1c2VyUmVjaXBpZW50LmFtb3VudH0sIEdvdDogJHtwbGF0Zm9ybVJlY2lwaWVudC5hbW91bnR9YFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFtYXRjaFJlc3VsdC50b2tlbk1hdGNoKSB7XG4gICAgICAgICAgbWlzbWF0Y2hFcnJvcnMucHVzaChcbiAgICAgICAgICAgIGBSZWNpcGllbnQgJHthZGRyZXNzfSB0b2tlbiBtaXNtYXRjaC4gRXhwZWN0ZWQ6ICR7dXNlclJlY2lwaWVudC50b2tlbk5hbWUgPz8gJ25hdGl2ZSBjb2luJ30sIEdvdDogJHtcbiAgICAgICAgICAgICAgcGxhdGZvcm1SZWNpcGllbnQudG9rZW5OYW1lID8/ICduYXRpdmUgY29pbidcbiAgICAgICAgICAgIH1gXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChidWlsZFBhcmFtcz8ubWVtbyAmJiAoZXhwbGFpbmVkVHJhbnNhY3Rpb24gYXMgYW55KS5tZW1vICE9PSBidWlsZFBhcmFtcy5tZW1vKSB7XG4gICAgICBtaXNtYXRjaEVycm9ycy5wdXNoKFxuICAgICAgICBgTWVtbyBtaXNtYXRjaC4gRXhwZWN0ZWQ6ICcke0pTT04uc3RyaW5naWZ5KGJ1aWxkUGFyYW1zLm1lbW8pfScsIEdvdDogJyR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgKGV4cGxhaW5lZFRyYW5zYWN0aW9uIGFzIGFueSkubWVtb1xuICAgICAgICApfSdgXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChidWlsZFBhcmFtcz8uZ2FzTGltaXQgJiYgU3RyaW5nKChleHBsYWluZWRUcmFuc2FjdGlvbiBhcyBhbnkpLmdhc0xpbWl0KSAhPT0gU3RyaW5nKGJ1aWxkUGFyYW1zLmdhc0xpbWl0KSkge1xuICAgICAgbWlzbWF0Y2hFcnJvcnMucHVzaChcbiAgICAgICAgYEdhcyBMaW1pdCBtaXNtYXRjaC4gRXhwZWN0ZWQ6ICR7YnVpbGRQYXJhbXMuZ2FzTGltaXR9LCBHb3Q6ICR7KGV4cGxhaW5lZFRyYW5zYWN0aW9uIGFzIGFueSkuZ2FzTGltaXR9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBidWlsZFBhcmFtcz8udHlwZSAmJlxuICAgICAgKGV4cGxhaW5lZFRyYW5zYWN0aW9uIGFzIGFueSkudHlwZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAoKHRoaXMuaXNTdHgoKSAmJiBUcmFuc2FjdGlvblR5cGUuQ29udHJhY3RDYWxsICE9PSAoZXhwbGFpbmVkVHJhbnNhY3Rpb24gYXMgYW55KS50eXBlKSB8fCAvLyBmb3IgU1RYIHRoZSB0eCB0eXBlIHNob3VsZCBhbHdheXMgQ29udHJhY3RDYWxsXG4gICAgICAgICghdGhpcy5pc1N0eCgpICYmIFRyYW5zYWN0aW9uVHlwZVtidWlsZFBhcmFtcy50eXBlXSAhPT0gKGV4cGxhaW5lZFRyYW5zYWN0aW9uIGFzIGFueSkudHlwZSkpXG4gICAgKSB7XG4gICAgICBtaXNtYXRjaEVycm9ycy5wdXNoKFxuICAgICAgICBgVHJhbnNhY3Rpb24gdHlwZSBtaXNtYXRjaC4gRXhwZWN0ZWQ6ICcke2J1aWxkUGFyYW1zLnR5cGV9JywgR290OiAnJHsoZXhwbGFpbmVkVHJhbnNhY3Rpb24gYXMgYW55KS50eXBlfSdgXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChidWlsZFBhcmFtcz8uc29sSW5zdHJ1Y3Rpb25zKSB7XG4gICAgICBpZiAoIWlzRXF1YWwoKGV4cGxhaW5lZFRyYW5zYWN0aW9uIGFzIGFueSkuc29sSW5zdHJ1Y3Rpb25zLCBidWlsZFBhcmFtcy5zb2xJbnN0cnVjdGlvbnMpKSB7XG4gICAgICAgIG1pc21hdGNoRXJyb3JzLnB1c2goXG4gICAgICAgICAgYFNvbGFuYSBpbnN0cnVjdGlvbnMgbWlzbWF0Y2guIEV4cGVjdGVkOiAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgICAgYnVpbGRQYXJhbXMuc29sSW5zdHJ1Y3Rpb25zXG4gICAgICAgICAgKX0sIEdvdDogJHtKU09OLnN0cmluZ2lmeSgoZXhwbGFpbmVkVHJhbnNhY3Rpb24gYXMgYW55KS5zb2xJbnN0cnVjdGlvbnMpfWBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobWlzbWF0Y2hFcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gYFN0YWtpbmcgdHJhbnNhY3Rpb24gdmFsaWRhdGlvbiBmYWlsZWQgYmVmb3JlIHNpZ25pbmc6ICR7bWlzbWF0Y2hFcnJvcnMuam9pbignOyAnKX1gO1xuICAgICAgZGVidWcoZXJyb3JNZXNzYWdlKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGlmICghYnVpbGRQYXJhbXMpIHtcbiAgICAgIGRlYnVnKFxuICAgICAgICBgQ2Fubm90IHBlcmZvcm0gZGVlcCB2YWxpZGF0aW9uIGZvciBzdGFraW5nIHRyYW5zYWN0aW9uICR7dHJhbnNhY3Rpb24uc3Rha2luZ1JlcXVlc3RJZH0gd2l0aG91dCBzcGVjaWZpZWQgYnVpbGQgcGFyYW1zYFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNTdGFraW5nVHhSZXF1ZXN0UHJlYnVpbGRSZXN1bHQoXG4gIHR4OiBTdGFraW5nUHJlYnVpbGRUcmFuc2FjdGlvblJlc3VsdFsncmVzdWx0J11cbik6IHR4IGlzIFN0YWtpbmdUeFJlcXVlc3RQcmVidWlsZFRyYW5zYWN0aW9uUmVzdWx0IHtcbiAgcmV0dXJuICh0eCBhcyBTdGFraW5nVHhSZXF1ZXN0UHJlYnVpbGRUcmFuc2FjdGlvblJlc3VsdCkudHhSZXF1ZXN0SWQgIT09IHVuZGVmaW5lZDtcbn1cbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"mpcUtils.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/utils/mpcUtils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAwC,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAsB,QAAQ,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEpE,OAAO,EAEL,eAAe,EACf,oCAAoC,EACpC,4BAA4B,EAC7B,MAAM,iBAAiB,CAAC;AAIzB,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,8BAAsB,QAAQ;IAC5B,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC;IAC3B,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC;gBAElB,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS;cAKjC,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;cAiBjG,uBAAuB,CACrC,UAAU,EAAE,iBAAiB,CAAC,MAAM,CAAC,EACrC,YAAY,EAAE,iBAAiB,CAAC,MAAM,CAAC,EACvC,YAAY,EAAE,WAAW,EACzB,cAAc,EAAE,WAAW,EAC3B,OAAO,EAAE,OAAO,EAChB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,QAAQ,CAAC;IAsCpB;;;;;;OAMG;IACH,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE;QAC/B,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,8BAA8B,CAAC,EAAE,MAAM,CAAC;KACzC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAE7B;;;;;;OAMG;IACH,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,oCAAoC,GAAG,eAAe;IA6GlG,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,4BAA4B,GAAG,MAAM,GAAG,SAAS;CAY/F"}
1
+ {"version":3,"file":"mpcUtils.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/utils/mpcUtils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAwC,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAsB,QAAQ,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEpE,OAAO,EAEL,eAAe,EACf,oCAAoC,EACpC,4BAA4B,EAC7B,MAAM,iBAAiB,CAAC;AAIzB,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,8BAAsB,QAAQ;IAC5B,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC;IAC3B,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC;gBAElB,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS;cAKjC,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;cAiBjG,uBAAuB,CACrC,UAAU,EAAE,iBAAiB,CAAC,MAAM,CAAC,EACrC,YAAY,EAAE,iBAAiB,CAAC,MAAM,CAAC,EACvC,YAAY,EAAE,WAAW,EACzB,cAAc,EAAE,WAAW,EAC3B,OAAO,EAAE,OAAO,EAChB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,QAAQ,CAAC;IAsCpB;;;;;;OAMG;IACH,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE;QAC/B,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,8BAA8B,CAAC,EAAE,MAAM,CAAC;KACzC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAE7B;;;;;;OAMG;IACH,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,oCAAoC,GAAG,eAAe;IAmHlG,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,4BAA4B,GAAG,MAAM,GAAG,SAAS;CAY/F"}
@@ -74,7 +74,11 @@ class MpcUtils {
74
74
  populateIntent(baseCoin, params) {
75
75
  const chain = this.baseCoin.getChain();
76
76
  if (params.intentType === 'customTx' && baseCoin.getFamily() === 'sol') {
77
- (0, assert_1.default)(params.solInstructions && params.solInstructions.length > 0, `'solInstructions' is a required parameter for customTx intent`);
77
+ const hasSolInstructions = params.solInstructions && params.solInstructions.length > 0;
78
+ const hasVersionedData = params.solVersionedTransactionData &&
79
+ params.solVersionedTransactionData.versionedInstructions &&
80
+ params.solVersionedTransactionData.versionedInstructions.length > 0;
81
+ (0, assert_1.default)(hasSolInstructions || hasVersionedData, `'solInstructions' or 'solVersionedTransactionData' is required for customTx intent`);
78
82
  }
79
83
  if (params.intentType === 'customTx' && baseCoin.getFamily() === 'apt') {
80
84
  (0, assert_1.default)(params.aptosCustomTransactionParams, `'aptosCustomTransactionParams' is a required parameter for customTx intent`);
@@ -175,4 +179,4 @@ class MpcUtils {
175
179
  }
176
180
  }
177
181
  exports.MpcUtils = MpcUtils;
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXBjVXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vdXRpbHMvbXBjVXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7O0dBRUc7QUFDSCxvREFBNEI7QUFDNUIscUNBQWtGO0FBSWxGLGlEQUFnRTtBQU9oRSxzREFBd0Y7QUFDeEYsNENBQW9EO0FBU3BELE1BQXNCLFFBQVE7SUFJNUIsWUFBWSxLQUFnQixFQUFFLFFBQW1CO1FBQy9DLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFFUyxLQUFLLENBQUMsbUJBQW1CLENBQUMsWUFBb0IsRUFBRSxVQUFxQztRQUM3RixNQUFNLG1CQUFtQixHQUFHLE1BQU0sSUFBQSxxQkFBVyxFQUFDO1lBQzVDLGNBQWMsRUFBRSxZQUFZO1NBQzdCLENBQUMsQ0FBQztRQUNILE1BQU0saUJBQWlCLEdBQUcsTUFBTSxJQUFBLHdCQUFjLEVBQUMsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFFdEYsTUFBTSxxQkFBcUIsR0FBRyxDQUM1QixNQUFNLElBQUEsaUJBQU8sRUFBQztZQUNaLE9BQU8sRUFBRSxtQkFBbUI7WUFDNUIsY0FBYyxFQUFFLENBQUMsaUJBQWlCLENBQUM7WUFDbkMsTUFBTSxFQUFFLE1BQU07U0FDZixDQUFDLENBQ0gsQ0FBQyxJQUFJLENBQUM7UUFFUCxPQUFPLHFCQUFxQixDQUFDO0lBQy9CLENBQUM7SUFFUyxLQUFLLENBQUMsdUJBQXVCLENBQ3JDLFVBQXFDLEVBQ3JDLFlBQXVDLEVBQ3ZDLFlBQXlCLEVBQ3pCLGNBQTJCLEVBQzNCLE9BQWdCLEVBQ2hCLFVBQW1CO1FBRW5CLE1BQU0sUUFBUSxHQUFHLENBQUMsTUFBTSxJQUFBLGdDQUFpQixFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMs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LENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUM7UUFDMUMsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDLFNBQVMsQ0FBQztJQUM3QixDQUFDO0NBQ0Y7QUFwTkQsNEJBb05DIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHsgZGVjcnlwdCwgcmVhZE1lc3NhZ2UsIHJlYWRQcml2YXRlS2V5LCBTZXJpYWxpemVkS2V5UGFpciB9IGZyb20gJ29wZW5wZ3AnO1xuaW1wb3J0IHsgSUJhc2VDb2luLCBLZXljaGFpbnNUcmlwbGV0IH0gZnJvbSAnLi4vYmFzZUNvaW4nO1xuaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnLi4vYml0Z29CYXNlJztcbmltcG9ydCB7IEFkZEtleWNoYWluT3B0aW9ucywgS2V5Y2hhaW4sIEtleVR5cGUgfSBmcm9tICcuLi9rZXljaGFpbic7XG5pbXBvcnQgeyBlbmNyeXB0VGV4dCwgZ2V0Qml0Z29HcGdQdWJLZXkgfSBmcm9tICcuL29wZW5ncGdVdGlscyc7XG5pbXBvcnQge1xuICBJbnRlbnRSZWNpcGllbnQsXG4gIFBvcHVsYXRlZEludGVudCxcbiAgUHJlYnVpbGRUcmFuc2FjdGlvbldpdGhJbnRlbnRPcHRpb25zLFxuICBUb2tlblRyYW5zZmVyUmVjaXBpZW50UGFyYW1zLFxufSBmcm9tICcuL3Rzcy9iYXNlVHlwZXMnO1xuaW1wb3J0IHsgZW52UmVxdWlyZXNCaXRnb1B1YkdwZ0tleUNvbmZpZywgaXNCaXRnb01wY1B1YktleSB9IGZyb20gJy4uL3Rzcy9iaXRnb1B1YktleXMnO1xuaW1wb3J0IHsgY29pbnMsIE5ldHdvcmtUeXBlIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1wY0tleVNoYXJlIHtcbiAgcHVibGljU2hhcmU6IHN0cmluZztcbiAgcHJpdmF0ZVNoYXJlOiBzdHJpbmc7XG4gIHByaXZhdGVTaGFyZVByb29mPzogc3RyaW5nO1xuICB2c3NQcm9vZj86IHN0cmluZztcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE1wY1V0aWxzIHtcbiAgcHJvdGVjdGVkIGJpdGdvOiBCaXRHb0Jhc2U7XG4gIHByb3RlY3RlZCBiYXNlQ29pbjogSUJhc2VDb2luO1xuXG4gIGNvbnN0cnVjdG9yKGJpdGdvOiBCaXRHb0Jhc2UsIGJhc2VDb2luOiBJQmFzZUNvaW4pIHtcbiAgICB0aGlzLmJpdGdvID0gYml0Z287XG4gICAgdGhpcy5iYXNlQ29pbiA9IGJhc2VDb2luO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGRlY3J5cHRQcml2YXRlU2hhcmUocHJpdmF0ZVNoYXJlOiBzdHJpbmcsIHVzZXJHcGdLZXk6IFNlcmlhbGl6ZWRLZXlQYWlyPHN0cmluZz4pOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHByaXZhdGVTaGFyZU1lc3NhZ2UgPSBhd2FpdCByZWFkTWVzc2FnZSh7XG4gICAgICBhcm1vcmVkTWVzc2FnZTogcHJpdmF0ZVNoYXJlLFxuICAgIH0pO1xuICAgIGNvbnN0IHVzZXJHcGdQcml2YXRlS2V5ID0gYXdhaXQgcmVhZFByaXZhdGVLZXkoeyBhcm1vcmVkS2V5OiB1c2VyR3BnS2V5LnByaXZhdGVLZXkgfSk7XG5cbiAgICBjb25zdCBkZWNyeXB0ZWRQcml2YXRlU2hhcmUgPSAoXG4gICAgICBhd2FpdCBkZWNyeXB0KHtcbiAgICAgICAgbWVzc2FnZTogcHJpdmF0ZVNoYXJlTWVzc2FnZSxcbiAgICAgICAgZGVjcnlwdGlvbktleXM6IFt1c2VyR3BnUHJpdmF0ZUtleV0sXG4gICAgICAgIGZvcm1hdDogJ3V0ZjgnLFxuICAgICAgfSlcbiAgICApLmRhdGE7XG5cbiAgICByZXR1cm4gZGVjcnlwdGVkUHJpdmF0ZVNoYXJlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGNyZWF0ZUJpdGdvS2V5Y2hhaW5JbldQKFxuICAgIHVzZXJHcGdLZXk6IFNlcmlhbGl6ZWRLZXlQYWlyPHN0cmluZz4sXG4gICAgYmFja3VwR3BnS2V5OiBTZXJpYWxpemVkS2V5UGFpcjxzdHJpbmc+LFxuICAgIHVzZXJLZXlTaGFyZTogTXBjS2V5U2hhcmUsXG4gICAgYmFja3VwS2V5U2hhcmU6IE1wY0tleVNoYXJlLFxuICAgIGtleVR5cGU6IEtleVR5cGUsXG4gICAgZW50ZXJwcmlzZT86IHN0cmluZ1xuICApOiBQcm9taXNlPEtleWNoYWluPiB7XG4gICAgY29uc3QgYml0Z29LZXkgPSAoYXdhaXQgZ2V0Qml0Z29HcGdQdWJLZXkodGhpcy5iaXRnbykpLm1wY1YxO1xuICAgIGlmIChlbnZSZXF1aXJlc0JpdGdvUHViR3BnS2V5Q29uZmlnKHRoaXMuYml0Z28uZ2V0RW52KCkpKSB7XG4gICAgICAvLyBFbnN1cmUgdGhlIHB1YmxpYyBrZXkgaXMgb25lIG9mIHRoZSBleHBlY3RlZCBCaXRHbyBwdWJsaWMga2V5cyB3aGVuIGluIHRlc3Qgb3IgcHJvZC5cbiAgICAgIGFzc2VydChpc0JpdGdvTXBjUHViS2V5KGJpdGdvS2V5LmFybW9yKCksICdtcGN2MScpLCAnSW52YWxpZCBCaXRHbyBHUEcgcHVibGljIGtleScpO1xuICAgIH1cbiAgICBjb25zdCBlbmNVc2VyVG9CaXRHb01lc3NhZ2UgPSBhd2FpdCBlbmNyeXB0VGV4dCh1c2VyS2V5U2hhcmUucHJpdmF0ZVNoYXJlLCBiaXRnb0tleSk7XG4gICAgY29uc3QgZW5jQmFja3VwVG9CaXRHb01lc3NhZ2UgPSBhd2FpdCBlbmNyeXB0VGV4dChiYWNrdXBLZXlTaGFyZS5wcml2YXRlU2hhcmUsIGJpdGdvS2V5KTtcblxuICAgIGNvbnN0IGNyZWF0ZUJpdEdvTVBDUGFyYW1zOiBBZGRLZXljaGFpbk9wdGlvbnMgPSB7XG4gICAgICBrZXlUeXBlLFxuICAgICAgc291cmNlOiAnYml0Z28nLFxuICAgICAga2V5U2hhcmVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBmcm9tOiAndXNlcicsXG4gICAgICAgICAgdG86ICdiaXRnbycsXG4gICAgICAgICAgcHVibGljU2hhcmU6IHVzZXJLZXlTaGFyZS5wdWJsaWNTaGFyZSxcbiAgICAgICAgICBwcml2YXRlU2hhcmU6IGVuY1VzZXJUb0JpdEdvTWVzc2FnZSxcbiAgICAgICAgICBwcml2YXRlU2hhcmVQcm9vZjogdXNlcktleVNoYXJlLnByaXZhdGVTaGFyZVByb29mLFxuICAgICAgICAgIHZzc1Byb29mOiB1c2VyS2V5U2hhcmUudnNzUHJvb2YsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBmcm9tOiAnYmFja3VwJyxcbiAgICAgICAgICB0bzogJ2JpdGdvJyxcbiAgICAgICAgICBwdWJsaWNTaGFyZTogYmFja3VwS2V5U2hhcmUucHVibGljU2hhcmUsXG4gICAgICAgICAgcHJpdmF0ZVNoYXJlOiBlbmNCYWNrdXBUb0JpdEdvTWVzc2FnZSxcbiAgICAgICAgICBwcml2YXRlU2hhcmVQcm9vZjogYmFja3VwS2V5U2hhcmUucHJpdmF0ZVNoYXJlUHJvb2YsXG4gICAgICAgICAgdnNzUHJvb2Y6IGJhY2t1cEtleVNoYXJlLnZzc1Byb29mLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHVzZXJHUEdQdWJsaWNLZXk6IHVzZXJHcGdLZXkucHVibGljS2V5LFxuICAgICAgYmFja3VwR1BHUHVibGljS2V5OiBiYWNrdXBHcGdLZXkucHVibGljS2V5LFxuICAgICAgZW50ZXJwcmlzZTogZW50ZXJwcmlzZSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYmFzZUNvaW4ua2V5Y2hhaW5zKCkuYWRkKGNyZWF0ZUJpdEdvTVBDUGFyYW1zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIFVzZXIsIEJhY2t1cCwgYW5kIEJpdEdvIE1QQyBLZXljaGFpbnMuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMucGFzc3BocmFzZSAtIHBhc3NwaHJhc2UgdXNlZCB0byBlbmNyeXB0IHNpZ25pbmcgbWF0ZXJpYWxzIGNyZWF0ZWQgZm9yIFVzZXIgYW5kIEJhY2t1cFxuICAgKiBAcGFyYW0gcGFyYW1zLmVudGVycHJpc2UgLSBvcHRpb25hbCBlbnRlcnByaXNlIGlkIHRoYXQgd2lsbCBiZSBhdHRhY2hlZCB0byB0aGUgQml0R28gS2V5Y2hhaW5cbiAgICogQHBhcmFtIHBhcmFtcy5vcmlnaW5hbFBhc3Njb2RlRW5jcnlwdGlvbkNvZGUgLSBvcHRpb25hbCBlbmNyeXB0aW9uIGNvZGUgdXNlZCB0byByZXNldCB0aGUgdXNlcidzIHBhc3N3b3JkLCBpZiBhYnNlbnQsIHBhc3N3b3JkIHJlY292ZXJ5IHdpbGwgbm90IHdvcmtcbiAgICovXG4gIGFic3RyYWN0IGNyZWF0ZUtleWNoYWlucyhwYXJhbXM6IHtcbiAgICBwYXNzcGhyYXNlOiBzdHJpbmc7XG4gICAgZW50ZXJwcmlzZT86IHN0cmluZztcbiAgICBvcmlnaW5hbFBhc3Njb2RlRW5jcnlwdGlvbkNvZGU/OiBzdHJpbmc7XG4gIH0pOiBQcm9taXNlPEtleWNoYWluc1RyaXBsZXQ+O1xuXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdvdWxkIGJlIHJlc3BvbnNpYmxlIGZvciBwb3B1bGF0aW5nIGludGVudHNcbiAgICogYmFzZWQgb24gdGhlIHR5cGUgb2YgY29pbiAvIHNpZyBzY2hlbWUgdGhlIGNvaW4gdXNlc1xuICAgKiBAcGFyYW0ge0lCYXNlQ29pbn0gYmFzZUNvaW5cbiAgICogQHBhcmFtIHtQcmVidWlsZFRyYW5zYWN0aW9uV2l0aEludGVudE9wdGlvbnN9IHBhcmFtc1xuICAgKiBAcmV0dXJucyB7UmVjb3JkPHN0cmluZywgdW5rbm93bj59XG4gICAqL1xuICBwb3B1bGF0ZUludGVudChiYXNlQ29pbjogSUJhc2VDb2luLCBwYXJhbXM6IFByZWJ1aWxkVHJhbnNhY3Rpb25XaXRoSW50ZW50T3B0aW9ucyk6IFBvcHVsYXRlZEludGVudCB7XG4gICAgY29uc3QgY2hhaW4gPSB0aGlzLmJhc2VDb2luLmdldENoYWluKCk7XG5cbiAgICBpZiAocGFyYW1zLmludGVudFR5cGUgPT09ICdjdXN0b21UeCcgJiYgYmFzZUNvaW4uZ2V0RmFtaWx5KCkgPT09ICdzb2wnKSB7XG4gICAgICBhc3NlcnQoXG4gICAgICAgIHBhcmFtcy5zb2xJbnN0cnVjdGlvbnMgJiYgcGFyYW1zLnNvbEluc3RydWN0aW9ucy5sZW5ndGggPiAwLFxuICAgICAgICBgJ3NvbEluc3RydWN0aW9ucycgaXMgYSByZXF1aXJlZCBwYXJhbWV0ZXIgZm9yIGN1c3RvbVR4IGludGVudGBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHBhcmFtcy5pbnRlbnRUeXBlID09PSAnY3VzdG9tVHgnICYmIGJhc2VDb2luLmdldEZhbWlseSgpID09PSAnYXB0Jykge1xuICAgICAgYXNzZXJ0KFxuICAgICAgICBwYXJhbXMuYXB0b3NDdXN0b21UcmFuc2FjdGlvblBhcmFtcyxcbiAgICAgICAgYCdhcHRvc0N1c3RvbVRyYW5zYWN0aW9uUGFyYW1zJyBpcyBhIHJlcXVpcmVkIHBhcmFtZXRlciBmb3IgY3VzdG9tVHggaW50ZW50YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIVsnYWNjZWxlcmF0aW9uJywgJ2ZpbGxOb25jZScsICd0cmFuc2ZlclRva2VuJywgJ3Rva2VuQXBwcm92YWwnLCAnY3VzdG9tVHgnXS5pbmNsdWRlcyhwYXJhbXMuaW50ZW50VHlwZSkpIHtcbiAgICAgIGFzc2VydChwYXJhbXMucmVjaXBpZW50cywgYCdyZWNpcGllbnRzJyBpcyBhIHJlcXVpcmVkIHBhcmFtZXRlciBmb3IgJHtwYXJhbXMuaW50ZW50VHlwZX0gaW50ZW50YCk7XG4gICAgfVxuICAgIGNvbnN0IGludGVudFJlY2lwaWVudHMgPSBwYXJhbXMucmVjaXBpZW50cz8ubWFwKChyZWNpcGllbnQpID0+IHtcbiAgICAgIGNvbnN0IGZvcm1hdHRlZFJlY2lwaWVudDogSW50ZW50UmVjaXBpZW50ID0ge1xuICAgICAgICBhZGRyZXNzOiB7IGFkZHJlc3M6IHJlY2lwaWVudC5hZGRyZXNzIH0sXG4gICAgICAgIGFtb3VudDogeyB2YWx1ZTogYCR7cmVjaXBpZW50LmFtb3VudH1gLCBzeW1ib2w6IHJlY2lwaWVudC50b2tlbk5hbWUgPyByZWNpcGllbnQudG9rZW5OYW1lIDogY2hhaW4gfSxcbiAgICAgIH07XG5cbiAgICAgIGlmIChyZWNpcGllbnQuZGF0YSkge1xuICAgICAgICBmb3JtYXR0ZWRSZWNpcGllbnQuZGF0YSA9IHJlY2lwaWVudC5kYXRhO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB7IHRva2VuRGF0YSB9ID0gcmVjaXBpZW50O1xuICAgICAgaWYgKHRva2VuRGF0YSAmJiAodG9rZW5EYXRhLnRva2VuQ29udHJhY3RBZGRyZXNzIHx8IHRva2VuRGF0YS50b2tlbk5hbWUpKSB7XG4gICAgICAgIC8vIHRva2VuIHJlbGF0ZWQgcmVjaXBpZW50IGRhdGEgZ2V0cyB2YWxpZGF0ZWQgaW4gV1BcbiAgICAgICAgaWYgKCEodG9rZW5EYXRhLnRva2VuVHlwZSAmJiB0b2tlbkRhdGEudG9rZW5RdWFudGl0eSkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAndG9rZW4gdHlwZSBhbmQgcXVhbnRpdHkgaXMgcmVxdWlyZWQgdG8gcmVxdWVzdCBhIHRyYW5zYWN0aW9uIHdpdGggaW50ZW50IHRvIHRyYW5zZmVyIGEgdG9rZW4nXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0b2tlbkRhdGEudG9rZW5OYW1lID0gdGhpcy5nZXRUb2tlbk5hbWUoYmFzZUNvaW4sIHRva2VuRGF0YSk7XG4gICAgICAgIGlmICh0b2tlbkRhdGEudG9rZW5OYW1lKSB7XG4gICAgICAgICAgZm9ybWF0dGVkUmVjaXBpZW50LmFtb3VudC5zeW1ib2wgPSB0b2tlbkRhdGEudG9rZW5OYW1lO1xuICAgICAgICB9XG4gICAgICAgIGZvcm1hdHRlZFJlY2lwaWVudC50b2tlbkRhdGEgPSB0b2tlbkRhdGE7XG4gICAgICB9XG4gICAgICByZXR1cm4gZm9ybWF0dGVkUmVjaXBpZW50O1xuICAgIH0pO1xuXG4gICAgY29uc3QgYmFzZUludGVudDogUG9wdWxhdGVkSW50ZW50ID0ge1xuICAgICAgaW50ZW50VHlwZTogcGFyYW1zLmludGVudFR5cGUsXG4gICAgICBzZXF1ZW5jZUlkOiBwYXJhbXMuc2VxdWVuY2VJZCxcbiAgICAgIGNvbW1lbnQ6IHBhcmFtcy5jb21tZW50LFxuICAgICAgbm9uY2U6IHBhcmFtcy5ub25jZSxcbiAgICAgIHJlY2lwaWVudHM6IGludGVudFJlY2lwaWVudHMsXG4gICAgICB0b2tlbk5hbWU6IHBhcmFtcy50b2tlbk5hbWUsXG4gICAgfTtcblxuICAgIGlmIChiYXNlQ29pbi5nZXRGYW1pbHkoKSA9PT0gJ2V0aCcgfHwgYmFzZUNvaW4uZ2V0RmFtaWx5KCkgPT09ICdwb2x5Z29uJyB8fCBiYXNlQ29pbi5nZXRGYW1pbHkoKSA9PT0gJ2JzYycpIHtcbiAgICAgIHN3aXRjaCAocGFyYW1zLmludGVudFR5cGUpIHtcbiAgICAgICAgY2FzZSAncGF5bWVudCc6XG4gICAgICAgIGNhc2UgJ3RyYW5zZmVyVG9rZW4nOlxuICAgICAgICBjYXNlICdmaWxsTm9uY2UnOlxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5iYXNlSW50ZW50LFxuICAgICAgICAgICAgc2VsZlNlbmQ6IHBhcmFtcy5zZWxmU2VuZCxcbiAgICAgICAgICAgIGZlZU9wdGlvbnM6IHBhcmFtcy5mZWVPcHRpb25zLFxuICAgICAgICAgICAgaG9wUGFyYW1zOiBwYXJhbXMuaG9wUGFyYW1zLFxuICAgICAgICAgICAgaXNUc3M6IHBhcmFtcy5pc1RzcyxcbiAgICAgICAgICAgIG5vbmNlOiBwYXJhbXMubm9uY2UsXG4gICAgICAgICAgICBjdXN0b2RpYW5UcmFuc2FjdGlvbklkOiBwYXJhbXMuY3VzdG9kaWFuVHJhbnNhY3Rpb25JZCxcbiAgICAgICAgICAgIHJlY2VpdmVBZGRyZXNzOiBwYXJhbXMucmVjZWl2ZUFkZHJlc3MsXG4gICAgICAgICAgfTtcbiAgICAgICAgY2FzZSAnYWNjZWxlcmF0aW9uJzpcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uYmFzZUludGVudCxcbiAgICAgICAgICAgIHR4aWQ6IHBhcmFtcy5sb3dGZWVUeGlkLFxuICAgICAgICAgICAgcmVjZWl2ZUFkZHJlc3M6IHBhcmFtcy5yZWNlaXZlQWRkcmVzcyxcbiAgICAgICAgICAgIGZlZU9wdGlvbnM6IHBhcmFtcy5mZWVPcHRpb25zLFxuICAgICAgICAgIH07XG4gICAgICAgIGNhc2UgJ3Rva2VuQXBwcm92YWwnOlxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5iYXNlSW50ZW50LFxuICAgICAgICAgICAgdG9rZW5OYW1lOiBwYXJhbXMudG9rZW5OYW1lLFxuICAgICAgICAgICAgZmVlT3B0aW9uczogcGFyYW1zLmZlZU9wdGlvbnMsXG4gICAgICAgICAgfTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGludGVudCB0eXBlICR7cGFyYW1zLmludGVudFR5cGV9YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5iYXNlQ29pbi5zZXRDb2luU3BlY2lmaWNGaWVsZHNJbkludGVudChiYXNlSW50ZW50LCBwYXJhbXMpO1xuXG4gICAgaWYgKHBhcmFtcy5mZWVPcHRpb25zICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmJhc2VJbnRlbnQsXG4gICAgICAgIG1lbW86IHBhcmFtcy5tZW1vPy52YWx1ZSxcbiAgICAgICAgdG9rZW46IHBhcmFtcy50b2tlbk5hbWUsXG4gICAgICAgIGVuYWJsZVRva2VuczogcGFyYW1zLmVuYWJsZVRva2VucyxcbiAgICAgICAgZmVlT3B0aW9uczogcGFyYW1zLmZlZU9wdGlvbnMsXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5iYXNlSW50ZW50LFxuICAgICAgbWVtbzogcGFyYW1zLm1lbW8/LnZhbHVlLFxuICAgICAgdG9rZW46IHBhcmFtcy50b2tlbk5hbWUsXG4gICAgICBlbmFibGVUb2tlbnM6IHBhcmFtcy5lbmFibGVUb2tlbnMsXG4gICAgfTtcbiAgfVxuXG4gIGdldFRva2VuTmFtZShiYXNlQ29pbjogSUJhc2VDb2luLCB0b2tlbkRhdGE6IFRva2VuVHJhbnNmZXJSZWNpcGllbnRQYXJhbXMpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmICh0b2tlbkRhdGEudG9rZW5OYW1lKSB7XG4gICAgICByZXR1cm4gdG9rZW5EYXRhLnRva2VuTmFtZTtcbiAgICB9XG4gICAgY29uc3QgbmV0d29ya1ByZWZpeCA9IGJhc2VDb2luLmdldENvbmZpZygpLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuVEVTVE5FVCA/ICd0JyA6ICcnO1xuICAgIGNvbnN0IHRva2VuU3RhdGljc0tleSA9IGAke25ldHdvcmtQcmVmaXh9JHtiYXNlQ29pbi5nZXRGYW1pbHkoKX06JHt0b2tlbkRhdGEudG9rZW5Db250cmFjdEFkZHJlc3N9YDtcbiAgICBpZiAoY29pbnMuaGFzKHRva2VuU3RhdGljc0tleSkpIHtcbiAgICAgIGNvbnN0IHRva2VuU3RhdGljcyA9IGNvaW5zLmdldCh0b2tlblN0YXRpY3NLZXkpO1xuICAgICAgdG9rZW5EYXRhLnRva2VuTmFtZSA9IHRva2VuU3RhdGljcy5uYW1lO1xuICAgIH1cbiAgICByZXR1cm4gdG9rZW5EYXRhLnRva2VuTmFtZTtcbiAgfVxufVxuIl19
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXBjVXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vdXRpbHMvbXBjVXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7O0dBRUc7QUFDSCxvREFBNEI7QUFDNUIscUNBQWtGO0FBSWxGLGlEQUFnRTtBQU9oRSxzREFBd0Y7QUFDeEYsNENBQW9EO0FBU3BELE1BQXNCLFFBQVE7SUFJNUIsWUFBWSxLQUFnQixFQUFFLFFBQW1CO1FBQy9DLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFFUyxLQUFLLENBQUMsbUJBQW1CLENBQUMsWUFBb0IsRUFBRSxVQUFxQztRQUM3RixNQUFNLG1CQUFtQixHQUFHLE1BQU0sSUFBQSxxQkFBVyxFQUFDO1lBQzVDLGNBQWMsRUFBRSxZQUFZO1NBQzdCLENBQUMsQ0FBQztRQUNILE1BQU0saUJBQWlCLEdBQUcsTUFBTSxJQUFBLHdCQUFjLEVBQUMsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFFdEYsTUFBTSxxQkFBcUIsR0FBRyxDQUM1QixNQUFNLElBQUEsaUJBQU8sRUFBQztZQUNaLE9BQU8sRUFBRSxtQkFBbUI7WUFDNUIsY0FBYyxFQUFFLENBQUMsaUJBQWlCLENBQUM7WUFDbkMsTUFBTSxFQUFFLE1BQU07U0FDZixDQUFDLENBQ0gsQ0FBQyxJQUFJLENBQUM7UUFFUCxPQUFPLHFCQUFxQixDQUFDO0lBQy9CLENBQUM7SUFFUyxLQUFLLENBQUMsdUJBQXVCLENBQ3JDLFVBQXFDLEVBQ3JDLFlBQXVDLEVBQ3ZDLFlBQXlCLEVBQ3pCLGNBQTJCLEVBQzNCLE9BQWdCLEVBQ2hCLFVBQW1CO1FBRW5CLE1BQU0sUUFBUSxHQUFHLENBQUMsTUFBTSxJQUFBLGdDQUFpQixFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMs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LEdBQUcsYUFBYSxHQUFHLFFBQVEsQ0FBQyxTQUFTLEVBQUUsSUFBSSxTQUFTLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUNwRyxJQUFJLGVBQUssQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztZQUMvQixNQUFNLFlBQVksR0FBRyxlQUFLLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ2hELFNBQVMsQ0FBQyxTQUFTLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQztRQUMxQyxDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUMsU0FBUyxDQUFDO0lBQzdCLENBQUM7Q0FDRjtBQTFORCw0QkEwTkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgeyBkZWNyeXB0LCByZWFkTWVzc2FnZSwgcmVhZFByaXZhdGVLZXksIFNlcmlhbGl6ZWRLZXlQYWlyIH0gZnJvbSAnb3BlbnBncCc7XG5pbXBvcnQgeyBJQmFzZUNvaW4sIEtleWNoYWluc1RyaXBsZXQgfSBmcm9tICcuLi9iYXNlQ29pbic7XG5pbXBvcnQgeyBCaXRHb0Jhc2UgfSBmcm9tICcuLi9iaXRnb0Jhc2UnO1xuaW1wb3J0IHsgQWRkS2V5Y2hhaW5PcHRpb25zLCBLZXljaGFpbiwgS2V5VHlwZSB9IGZyb20gJy4uL2tleWNoYWluJztcbmltcG9ydCB7IGVuY3J5cHRUZXh0LCBnZXRCaXRnb0dwZ1B1YktleSB9IGZyb20gJy4vb3BlbmdwZ1V0aWxzJztcbmltcG9ydCB7XG4gIEludGVudFJlY2lwaWVudCxcbiAgUG9wdWxhdGVkSW50ZW50LFxuICBQcmVidWlsZFRyYW5zYWN0aW9uV2l0aEludGVudE9wdGlvbnMsXG4gIFRva2VuVHJhbnNmZXJSZWNpcGllbnRQYXJhbXMsXG59IGZyb20gJy4vdHNzL2Jhc2VUeXBlcyc7XG5pbXBvcnQgeyBlbnZSZXF1aXJlc0JpdGdvUHViR3BnS2V5Q29uZmlnLCBpc0JpdGdvTXBjUHViS2V5IH0gZnJvbSAnLi4vdHNzL2JpdGdvUHViS2V5cyc7XG5pbXBvcnQgeyBjb2lucywgTmV0d29ya1R5cGUgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTXBjS2V5U2hhcmUge1xuICBwdWJsaWNTaGFyZTogc3RyaW5nO1xuICBwcml2YXRlU2hhcmU6IHN0cmluZztcbiAgcHJpdmF0ZVNoYXJlUHJvb2Y/OiBzdHJpbmc7XG4gIHZzc1Byb29mPzogc3RyaW5nO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTXBjVXRpbHMge1xuICBwcm90ZWN0ZWQgYml0Z286IEJpdEdvQmFzZTtcbiAgcHJvdGVjdGVkIGJhc2VDb2luOiBJQmFzZUNvaW47XG5cbiAgY29uc3RydWN0b3IoYml0Z286IEJpdEdvQmFzZSwgYmFzZUNvaW46IElCYXNlQ29pbikge1xuICAgIHRoaXMuYml0Z28gPSBiaXRnbztcbiAgICB0aGlzLmJhc2VDb2luID0gYmFzZUNvaW47XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgZGVjcnlwdFByaXZhdGVTaGFyZShwcml2YXRlU2hhcmU6IHN0cmluZywgdXNlckdwZ0tleTogU2VyaWFsaXplZEtleVBhaXI8c3RyaW5nPik6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgcHJpdmF0ZVNoYXJlTWVzc2FnZSA9IGF3YWl0IHJlYWRNZXNzYWdlKHtcbiAgICAgIGFybW9yZWRNZXNzYWdlOiBwcml2YXRlU2hhcmUsXG4gICAgfSk7XG4gICAgY29uc3QgdXNlckdwZ1ByaXZhdGVLZXkgPSBhd2FpdCByZWFkUHJpdmF0ZUtleSh7IGFybW9yZWRLZXk6IHVzZXJHcGdLZXkucHJpdmF0ZUtleSB9KTtcblxuICAgIGNvbnN0IGRlY3J5cHRlZFByaXZhdGVTaGFyZSA9IChcbiAgICAgIGF3YWl0IGRlY3J5cHQoe1xuICAgICAgICBtZXNzYWdlOiBwcml2YXRlU2hhcmVNZXNzYWdlLFxuICAgICAgICBkZWNyeXB0aW9uS2V5czogW3VzZXJHcGdQcml2YXRlS2V5XSxcbiAgICAgICAgZm9ybWF0OiAndXRmOCcsXG4gICAgICB9KVxuICAgICkuZGF0YTtcblxuICAgIHJldHVybiBkZWNyeXB0ZWRQcml2YXRlU2hhcmU7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgY3JlYXRlQml0Z29LZXljaGFpbkluV1AoXG4gICAgdXNlckdwZ0tleTogU2VyaWFsaXplZEtleVBhaXI8c3RyaW5nPixcbiAgICBiYWNrdXBHcGdLZXk6IFNlcmlhbGl6ZWRLZXlQYWlyPHN0cmluZz4sXG4gICAgdXNlcktleVNoYXJlOiBNcGNLZXlTaGFyZSxcbiAgICBiYWNrdXBLZXlTaGFyZTogTXBjS2V5U2hhcmUsXG4gICAga2V5VHlwZTogS2V5VHlwZSxcbiAgICBlbnRlcnByaXNlPzogc3RyaW5nXG4gICk6IFByb21pc2U8S2V5Y2hhaW4+IHtcbiAgICBjb25zdCBiaXRnb0tleSA9IChhd2FpdCBnZXRCaXRnb0dwZ1B1YktleSh0aGlzLmJpdGdvKSkubXBjVjE7XG4gICAgaWYgKGVudlJlcXVpcmVzQml0Z29QdWJHcGdLZXlDb25maWcodGhpcy5iaXRnby5nZXRFbnYoKSkpIHtcbiAgICAgIC8vIEVuc3VyZSB0aGUgcHVibGljIGtleSBpcyBvbmUgb2YgdGhlIGV4cGVjdGVkIEJpdEdvIHB1YmxpYyBrZXlzIHdoZW4gaW4gdGVzdCBvciBwcm9kLlxuICAgICAgYXNzZXJ0KGlzQml0Z29NcGNQdWJLZXkoYml0Z29LZXkuYXJtb3IoKSwgJ21wY3YxJyksICdJbnZhbGlkIEJpdEdvIEdQRyBwdWJsaWMga2V5Jyk7XG4gICAgfVxuICAgIGNvbnN0IGVuY1VzZXJUb0JpdEdvTWVzc2FnZSA9IGF3YWl0IGVuY3J5cHRUZXh0KHVzZXJLZXlTaGFyZS5wcml2YXRlU2hhcmUsIGJpdGdvS2V5KTtcbiAgICBjb25zdCBlbmNCYWNrdXBUb0JpdEdvTWVzc2FnZSA9IGF3YWl0IGVuY3J5cHRUZXh0KGJhY2t1cEtleVNoYXJlLnByaXZhdGVTaGFyZSwgYml0Z29LZXkpO1xuXG4gICAgY29uc3QgY3JlYXRlQml0R29NUENQYXJhbXM6IEFkZEtleWNoYWluT3B0aW9ucyA9IHtcbiAgICAgIGtleVR5cGUsXG4gICAgICBzb3VyY2U6ICdiaXRnbycsXG4gICAgICBrZXlTaGFyZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGZyb206ICd1c2VyJyxcbiAgICAgICAgICB0bzogJ2JpdGdvJyxcbiAgICAgICAgICBwdWJsaWNTaGFyZTogdXNlcktleVNoYXJlLnB1YmxpY1NoYXJlLFxuICAgICAgICAgIHByaXZhdGVTaGFyZTogZW5jVXNlclRvQml0R29NZXNzYWdlLFxuICAgICAgICAgIHByaXZhdGVTaGFyZVByb29mOiB1c2VyS2V5U2hhcmUucHJpdmF0ZVNoYXJlUHJvb2YsXG4gICAgICAgICAgdnNzUHJvb2Y6IHVzZXJLZXlTaGFyZS52c3NQcm9vZixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGZyb206ICdiYWNrdXAnLFxuICAgICAgICAgIHRvOiAnYml0Z28nLFxuICAgICAgICAgIHB1YmxpY1NoYXJlOiBiYWNrdXBLZXlTaGFyZS5wdWJsaWNTaGFyZSxcbiAgICAgICAgICBwcml2YXRlU2hhcmU6IGVuY0JhY2t1cFRvQml0R29NZXNzYWdlLFxuICAgICAgICAgIHByaXZhdGVTaGFyZVByb29mOiBiYWNrdXBLZXlTaGFyZS5wcml2YXRlU2hhcmVQcm9vZixcbiAgICAgICAgICB2c3NQcm9vZjogYmFja3VwS2V5U2hhcmUudnNzUHJvb2YsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgdXNlckdQR1B1YmxpY0tleTogdXNlckdwZ0tleS5wdWJsaWNLZXksXG4gICAgICBiYWNrdXBHUEdQdWJsaWNLZXk6IGJhY2t1cEdwZ0tleS5wdWJsaWNLZXksXG4gICAgICBlbnRlcnByaXNlOiBlbnRlcnByaXNlLFxuICAgIH07XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5iYXNlQ29pbi5rZXljaGFpbnMoKS5hZGQoY3JlYXRlQml0R29NUENQYXJhbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgVXNlciwgQmFja3VwLCBhbmQgQml0R28gTVBDIEtleWNoYWlucy5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcy5wYXNzcGhyYXNlIC0gcGFzc3BocmFzZSB1c2VkIHRvIGVuY3J5cHQgc2lnbmluZyBtYXRlcmlhbHMgY3JlYXRlZCBmb3IgVXNlciBhbmQgQmFja3VwXG4gICAqIEBwYXJhbSBwYXJhbXMuZW50ZXJwcmlzZSAtIG9wdGlvbmFsIGVudGVycHJpc2UgaWQgdGhhdCB3aWxsIGJlIGF0dGFjaGVkIHRvIHRoZSBCaXRHbyBLZXljaGFpblxuICAgKiBAcGFyYW0gcGFyYW1zLm9yaWdpbmFsUGFzc2NvZGVFbmNyeXB0aW9uQ29kZSAtIG9wdGlvbmFsIGVuY3J5cHRpb24gY29kZSB1c2VkIHRvIHJlc2V0IHRoZSB1c2VyJ3MgcGFzc3dvcmQsIGlmIGFic2VudCwgcGFzc3dvcmQgcmVjb3Zlcnkgd2lsbCBub3Qgd29ya1xuICAgKi9cbiAgYWJzdHJhY3QgY3JlYXRlS2V5Y2hhaW5zKHBhcmFtczoge1xuICAgIHBhc3NwaHJhc2U6IHN0cmluZztcbiAgICBlbnRlcnByaXNlPzogc3RyaW5nO1xuICAgIG9yaWdpbmFsUGFzc2NvZGVFbmNyeXB0aW9uQ29kZT86IHN0cmluZztcbiAgfSk6IFByb21pc2U8S2V5Y2hhaW5zVHJpcGxldD47XG5cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd291bGQgYmUgcmVzcG9uc2libGUgZm9yIHBvcHVsYXRpbmcgaW50ZW50c1xuICAgKiBiYXNlZCBvbiB0aGUgdHlwZSBvZiBjb2luIC8gc2lnIHNjaGVtZSB0aGUgY29pbiB1c2VzXG4gICAqIEBwYXJhbSB7SUJhc2VDb2lufSBiYXNlQ29pblxuICAgKiBAcGFyYW0ge1ByZWJ1aWxkVHJhbnNhY3Rpb25XaXRoSW50ZW50T3B0aW9uc30gcGFyYW1zXG4gICAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCB1bmtub3duPn1cbiAgICovXG4gIHBvcHVsYXRlSW50ZW50KGJhc2VDb2luOiBJQmFzZUNvaW4sIHBhcmFtczogUHJlYnVpbGRUcmFuc2FjdGlvbldpdGhJbnRlbnRPcHRpb25zKTogUG9wdWxhdGVkSW50ZW50IHtcbiAgICBjb25zdCBjaGFpbiA9IHRoaXMuYmFzZUNvaW4uZ2V0Q2hhaW4oKTtcblxuICAgIGlmIChwYXJhbXMuaW50ZW50VHlwZSA9PT0gJ2N1c3RvbVR4JyAmJiBiYXNlQ29pbi5nZXRGYW1pbHkoKSA9PT0gJ3NvbCcpIHtcbiAgICAgIGNvbnN0IGhhc1NvbEluc3RydWN0aW9ucyA9IHBhcmFtcy5zb2xJbnN0cnVjdGlvbnMgJiYgcGFyYW1zLnNvbEluc3RydWN0aW9ucy5sZW5ndGggPiAwO1xuICAgICAgY29uc3QgaGFzVmVyc2lvbmVkRGF0YSA9XG4gICAgICAgIHBhcmFtcy5zb2xWZXJzaW9uZWRUcmFuc2FjdGlvbkRhdGEgJiZcbiAgICAgICAgcGFyYW1zLnNvbFZlcnNpb25lZFRyYW5zYWN0aW9uRGF0YS52ZXJzaW9uZWRJbnN0cnVjdGlvbnMgJiZcbiAgICAgICAgcGFyYW1zLnNvbFZlcnNpb25lZFRyYW5zYWN0aW9uRGF0YS52ZXJzaW9uZWRJbnN0cnVjdGlvbnMubGVuZ3RoID4gMDtcblxuICAgICAgYXNzZXJ0KFxuICAgICAgICBoYXNTb2xJbnN0cnVjdGlvbnMgfHwgaGFzVmVyc2lvbmVkRGF0YSxcbiAgICAgICAgYCdzb2xJbnN0cnVjdGlvbnMnIG9yICdzb2xWZXJzaW9uZWRUcmFuc2FjdGlvbkRhdGEnIGlzIHJlcXVpcmVkIGZvciBjdXN0b21UeCBpbnRlbnRgXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChwYXJhbXMuaW50ZW50VHlwZSA9PT0gJ2N1c3RvbVR4JyAmJiBiYXNlQ29pbi5nZXRGYW1pbHkoKSA9PT0gJ2FwdCcpIHtcbiAgICAgIGFzc2VydChcbiAgICAgICAgcGFyYW1zLmFwdG9zQ3VzdG9tVHJhbnNhY3Rpb25QYXJhbXMsXG4gICAgICAgIGAnYXB0b3NDdXN0b21UcmFuc2FjdGlvblBhcmFtcycgaXMgYSByZXF1aXJlZCBwYXJhbWV0ZXIgZm9yIGN1c3RvbVR4IGludGVudGBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKCFbJ2FjY2VsZXJhdGlvbicsICdmaWxsTm9uY2UnLCAndHJhbnNmZXJUb2tlbicsICd0b2tlbkFwcHJvdmFsJywgJ2N1c3RvbVR4J10uaW5jbHVkZXMocGFyYW1zLmludGVudFR5cGUpKSB7XG4gICAgICBhc3NlcnQocGFyYW1zLnJlY2lwaWVudHMsIGAncmVjaXBpZW50cycgaXMgYSByZXF1aXJlZCBwYXJhbWV0ZXIgZm9yICR7cGFyYW1zLmludGVudFR5cGV9IGludGVudGApO1xuICAgIH1cbiAgICBjb25zdCBpbnRlbnRSZWNpcGllbnRzID0gcGFyYW1zLnJlY2lwaWVudHM/Lm1hcCgocmVjaXBpZW50KSA9PiB7XG4gICAgICBjb25zdCBmb3JtYXR0ZWRSZWNpcGllbnQ6IEludGVudFJlY2lwaWVudCA9IHtcbiAgICAgICAgYWRkcmVzczogeyBhZGRyZXNzOiByZWNpcGllbnQuYWRkcmVzcyB9LFxuICAgICAgICBhbW91bnQ6IHsgdmFsdWU6IGAke3JlY2lwaWVudC5hbW91bnR9YCwgc3ltYm9sOiByZWNpcGllbnQudG9rZW5OYW1lID8gcmVjaXBpZW50LnRva2VuTmFtZSA6IGNoYWluIH0sXG4gICAgICB9O1xuXG4gICAgICBpZiAocmVjaXBpZW50LmRhdGEpIHtcbiAgICAgICAgZm9ybWF0dGVkUmVjaXBpZW50LmRhdGEgPSByZWNpcGllbnQuZGF0YTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgeyB0b2tlbkRhdGEgfSA9IHJlY2lwaWVudDtcbiAgICAgIGlmICh0b2tlbkRhdGEgJiYgKHRva2VuRGF0YS50b2tlbkNvbnRyYWN0QWRkcmVzcyB8fCB0b2tlbkRhdGEudG9rZW5OYW1lKSkge1xuICAgICAgICAvLyB0b2tlbiByZWxhdGVkIHJlY2lwaWVudCBkYXRhIGdldHMgdmFsaWRhdGVkIGluIFdQXG4gICAgICAgIGlmICghKHRva2VuRGF0YS50b2tlblR5cGUgJiYgdG9rZW5EYXRhLnRva2VuUXVhbnRpdHkpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgJ3Rva2VuIHR5cGUgYW5kIHF1YW50aXR5IGlzIHJlcXVpcmVkIHRvIHJlcXVlc3QgYSB0cmFuc2FjdGlvbiB3aXRoIGludGVudCB0byB0cmFuc2ZlciBhIHRva2VuJ1xuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdG9rZW5EYXRhLnRva2VuTmFtZSA9IHRoaXMuZ2V0VG9rZW5OYW1lKGJhc2VDb2luLCB0b2tlbkRhdGEpO1xuICAgICAgICBpZiAodG9rZW5EYXRhLnRva2VuTmFtZSkge1xuICAgICAgICAgIGZvcm1hdHRlZFJlY2lwaWVudC5hbW91bnQuc3ltYm9sID0gdG9rZW5EYXRhLnRva2VuTmFtZTtcbiAgICAgICAgfVxuICAgICAgICBmb3JtYXR0ZWRSZWNpcGllbnQudG9rZW5EYXRhID0gdG9rZW5EYXRhO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZvcm1hdHRlZFJlY2lwaWVudDtcbiAgICB9KTtcblxuICAgIGNvbnN0IGJhc2VJbnRlbnQ6IFBvcHVsYXRlZEludGVudCA9IHtcbiAgICAgIGludGVudFR5cGU6IHBhcmFtcy5pbnRlbnRUeXBlLFxuICAgICAgc2VxdWVuY2VJZDogcGFyYW1zLnNlcXVlbmNlSWQsXG4gICAgICBjb21tZW50OiBwYXJhbXMuY29tbWVudCxcbiAgICAgIG5vbmNlOiBwYXJhbXMubm9uY2UsXG4gICAgICByZWNpcGllbnRzOiBpbnRlbnRSZWNpcGllbnRzLFxuICAgICAgdG9rZW5OYW1lOiBwYXJhbXMudG9rZW5OYW1lLFxuICAgIH07XG5cbiAgICBpZiAoYmFzZUNvaW4uZ2V0RmFtaWx5KCkgPT09ICdldGgnIHx8IGJhc2VDb2luLmdldEZhbWlseSgpID09PSAncG9seWdvbicgfHwgYmFzZUNvaW4uZ2V0RmFtaWx5KCkgPT09ICdic2MnKSB7XG4gICAgICBzd2l0Y2ggKHBhcmFtcy5pbnRlbnRUeXBlKSB7XG4gICAgICAgIGNhc2UgJ3BheW1lbnQnOlxuICAgICAgICBjYXNlICd0cmFuc2ZlclRva2VuJzpcbiAgICAgICAgY2FzZSAnZmlsbE5vbmNlJzpcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uYmFzZUludGVudCxcbiAgICAgICAgICAgIHNlbGZTZW5kOiBwYXJhbXMuc2VsZlNlbmQsXG4gICAgICAgICAgICBmZWVPcHRpb25zOiBwYXJhbXMuZmVlT3B0aW9ucyxcbiAgICAgICAgICAgIGhvcFBhcmFtczogcGFyYW1zLmhvcFBhcmFtcyxcbiAgICAgICAgICAgIGlzVHNzOiBwYXJhbXMuaXNUc3MsXG4gICAgICAgICAgICBub25jZTogcGFyYW1zLm5vbmNlLFxuICAgICAgICAgICAgY3VzdG9kaWFuVHJhbnNhY3Rpb25JZDogcGFyYW1zLmN1c3RvZGlhblRyYW5zYWN0aW9uSWQsXG4gICAgICAgICAgICByZWNlaXZlQWRkcmVzczogcGFyYW1zLnJlY2VpdmVBZGRyZXNzLFxuICAgICAgICAgIH07XG4gICAgICAgIGNhc2UgJ2FjY2VsZXJhdGlvbic6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLmJhc2VJbnRlbnQsXG4gICAgICAgICAgICB0eGlkOiBwYXJhbXMubG93RmVlVHhpZCxcbiAgICAgICAgICAgIHJlY2VpdmVBZGRyZXNzOiBwYXJhbXMucmVjZWl2ZUFkZHJlc3MsXG4gICAgICAgICAgICBmZWVPcHRpb25zOiBwYXJhbXMuZmVlT3B0aW9ucyxcbiAgICAgICAgICB9O1xuICAgICAgICBjYXNlICd0b2tlbkFwcHJvdmFsJzpcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uYmFzZUludGVudCxcbiAgICAgICAgICAgIHRva2VuTmFtZTogcGFyYW1zLnRva2VuTmFtZSxcbiAgICAgICAgICAgIGZlZU9wdGlvbnM6IHBhcmFtcy5mZWVPcHRpb25zLFxuICAgICAgICAgIH07XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBpbnRlbnQgdHlwZSAke3BhcmFtcy5pbnRlbnRUeXBlfWApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuYmFzZUNvaW4uc2V0Q29pblNwZWNpZmljRmllbGRzSW5JbnRlbnQoYmFzZUludGVudCwgcGFyYW1zKTtcblxuICAgIGlmIChwYXJhbXMuZmVlT3B0aW9ucyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5iYXNlSW50ZW50LFxuICAgICAgICBtZW1vOiBwYXJhbXMubWVtbz8udmFsdWUsXG4gICAgICAgIHRva2VuOiBwYXJhbXMudG9rZW5OYW1lLFxuICAgICAgICBlbmFibGVUb2tlbnM6IHBhcmFtcy5lbmFibGVUb2tlbnMsXG4gICAgICAgIGZlZU9wdGlvbnM6IHBhcmFtcy5mZWVPcHRpb25zLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uYmFzZUludGVudCxcbiAgICAgIG1lbW86IHBhcmFtcy5tZW1vPy52YWx1ZSxcbiAgICAgIHRva2VuOiBwYXJhbXMudG9rZW5OYW1lLFxuICAgICAgZW5hYmxlVG9rZW5zOiBwYXJhbXMuZW5hYmxlVG9rZW5zLFxuICAgIH07XG4gIH1cblxuICBnZXRUb2tlbk5hbWUoYmFzZUNvaW46IElCYXNlQ29pbiwgdG9rZW5EYXRhOiBUb2tlblRyYW5zZmVyUmVjaXBpZW50UGFyYW1zKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodG9rZW5EYXRhLnRva2VuTmFtZSkge1xuICAgICAgcmV0dXJuIHRva2VuRGF0YS50b2tlbk5hbWU7XG4gICAgfVxuICAgIGNvbnN0IG5ldHdvcmtQcmVmaXggPSBiYXNlQ29pbi5nZXRDb25maWcoKS5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLlRFU1RORVQgPyAndCcgOiAnJztcbiAgICBjb25zdCB0b2tlblN0YXRpY3NLZXkgPSBgJHtuZXR3b3JrUHJlZml4fSR7YmFzZUNvaW4uZ2V0RmFtaWx5KCl9OiR7dG9rZW5EYXRhLnRva2VuQ29udHJhY3RBZGRyZXNzfWA7XG4gICAgaWYgKGNvaW5zLmhhcyh0b2tlblN0YXRpY3NLZXkpKSB7XG4gICAgICBjb25zdCB0b2tlblN0YXRpY3MgPSBjb2lucy5nZXQodG9rZW5TdGF0aWNzS2V5KTtcbiAgICAgIHRva2VuRGF0YS50b2tlbk5hbWUgPSB0b2tlblN0YXRpY3MubmFtZTtcbiAgICB9XG4gICAgcmV0dXJuIHRva2VuRGF0YS50b2tlbk5hbWU7XG4gIH1cbn1cbiJdfQ==
@@ -41,6 +41,26 @@ export interface SolInstruction {
41
41
  }>;
42
42
  data: string;
43
43
  }
44
+ export interface SolVersionedInstruction {
45
+ programIdIndex: number;
46
+ accountKeyIndexes: number[];
47
+ data: string;
48
+ }
49
+ export interface SolAddressLookupTable {
50
+ accountKey: string;
51
+ writableIndexes: number[];
52
+ readonlyIndexes: number[];
53
+ }
54
+ export interface SolVersionedTransactionData {
55
+ versionedInstructions: SolVersionedInstruction[];
56
+ addressLookupTables: SolAddressLookupTable[];
57
+ staticAccountKeys: string[];
58
+ messageHeader: {
59
+ numRequiredSignatures: number;
60
+ numReadonlySignedAccounts: number;
61
+ numReadonlyUnsignedAccounts: number;
62
+ };
63
+ }
44
64
  export interface aptosCustomTransactionParams {
45
65
  moduleName: string;
46
66
  functionName: string;
@@ -216,6 +236,11 @@ export interface PrebuildTransactionWithIntentOptions extends IntentOptionsBase
216
236
  * Each instruction should contain programId, keys, and data fields.
217
237
  */
218
238
  solInstructions?: SolInstruction[];
239
+ /**
240
+ * Deconstructed Versioned Transaction data for Solana customTx intent type.
241
+ * Contains compiled instructions, Address Lookup Tables, and static account keys.
242
+ */
243
+ solVersionedTransactionData?: SolVersionedTransactionData;
219
244
  /**
220
245
  * Custom transaction parameters for Aptos entry function calls.
221
246
  * Used with the customTx intent type for Aptos smart contract interactions.
@@ -282,6 +307,11 @@ export interface PopulatedIntent extends PopulatedIntentBase {
282
307
  * Each instruction should contain programId, keys, and data fields.
283
308
  */
284
309
  solInstructions?: SolInstruction[];
310
+ /**
311
+ * Deconstructed Versioned Transaction data for Solana customTx intent type.
312
+ * Contains compiled instructions, Address Lookup Tables, and static account keys.
313
+ */
314
+ solVersionedTransactionData?: SolVersionedTransactionData;
285
315
  /**
286
316
  * Custom Aptos transaction for use with the customTx intent type.
287
317
  */
@@ -1 +1 @@
1
- {"version":3,"file":"baseTypes.d.ts","sourceRoot":"","sources":["../../../../../src/bitgo/utils/tss/baseTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"baseTypes.d.ts","sourceRoot":"","sources":["../../../../../src/bitgo/utils/tss/baseTypes.ts"],"names":[],"mappings":"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"}