@bitgo/abstract-utxo 11.6.0 → 11.6.1

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 (82) hide show
  1. package/dist/cjs/src/abstractUtxoCoin.d.ts +6 -22
  2. package/dist/cjs/src/abstractUtxoCoin.d.ts.map +1 -1
  3. package/dist/cjs/src/abstractUtxoCoin.js +14 -55
  4. package/dist/cjs/src/index.d.ts +0 -1
  5. package/dist/cjs/src/index.d.ts.map +1 -1
  6. package/dist/cjs/src/index.js +1 -2
  7. package/dist/cjs/src/transaction/decode.d.ts +2 -6
  8. package/dist/cjs/src/transaction/decode.d.ts.map +1 -1
  9. package/dist/cjs/src/transaction/decode.js +4 -22
  10. package/dist/cjs/src/transaction/explainTransaction.d.ts +3 -6
  11. package/dist/cjs/src/transaction/explainTransaction.d.ts.map +1 -1
  12. package/dist/cjs/src/transaction/explainTransaction.js +4 -12
  13. package/dist/cjs/src/transaction/fixedScript/explainTransaction.d.ts +1 -37
  14. package/dist/cjs/src/transaction/fixedScript/explainTransaction.d.ts.map +1 -1
  15. package/dist/cjs/src/transaction/fixedScript/explainTransaction.js +1 -344
  16. package/dist/cjs/src/transaction/fixedScript/index.d.ts +0 -2
  17. package/dist/cjs/src/transaction/fixedScript/index.d.ts.map +1 -1
  18. package/dist/cjs/src/transaction/fixedScript/index.js +2 -6
  19. package/dist/cjs/src/transaction/fixedScript/parseTransaction.d.ts.map +1 -1
  20. package/dist/cjs/src/transaction/fixedScript/parseTransaction.js +1 -2
  21. package/dist/cjs/src/transaction/fixedScript/signTransaction.d.ts +2 -12
  22. package/dist/cjs/src/transaction/fixedScript/signTransaction.d.ts.map +1 -1
  23. package/dist/cjs/src/transaction/fixedScript/signTransaction.js +17 -49
  24. package/dist/cjs/src/transaction/fixedScript/verifyTransaction.d.ts.map +1 -1
  25. package/dist/cjs/src/transaction/fixedScript/verifyTransaction.js +6 -37
  26. package/dist/cjs/src/transaction/index.d.ts +1 -1
  27. package/dist/cjs/src/transaction/index.d.ts.map +1 -1
  28. package/dist/cjs/src/transaction/index.js +2 -3
  29. package/dist/cjs/src/transaction/signTransaction.d.ts.map +1 -1
  30. package/dist/cjs/src/transaction/signTransaction.js +2 -8
  31. package/dist/cjs/src/transaction/types.d.ts +1 -4
  32. package/dist/cjs/src/transaction/types.d.ts.map +1 -1
  33. package/dist/cjs/src/transaction/types.js +1 -5
  34. package/dist/cjs/test/unit/transaction/fixedScript/explainPsbt.js +11 -47
  35. package/dist/cjs/test/unit/transaction/fixedScript/parsePsbt.js +18 -82
  36. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  37. package/dist/esm/abstractUtxoCoin.d.ts +6 -22
  38. package/dist/esm/abstractUtxoCoin.d.ts.map +1 -1
  39. package/dist/esm/abstractUtxoCoin.js +16 -57
  40. package/dist/esm/index.d.ts +0 -1
  41. package/dist/esm/index.d.ts.map +1 -1
  42. package/dist/esm/index.js +1 -2
  43. package/dist/esm/transaction/decode.d.ts +2 -6
  44. package/dist/esm/transaction/decode.d.ts.map +1 -1
  45. package/dist/esm/transaction/decode.js +4 -21
  46. package/dist/esm/transaction/explainTransaction.d.ts +3 -6
  47. package/dist/esm/transaction/explainTransaction.d.ts.map +1 -1
  48. package/dist/esm/transaction/explainTransaction.js +4 -12
  49. package/dist/esm/transaction/fixedScript/explainTransaction.d.ts +1 -37
  50. package/dist/esm/transaction/fixedScript/explainTransaction.d.ts.map +1 -1
  51. package/dist/esm/transaction/fixedScript/explainTransaction.js +2 -309
  52. package/dist/esm/transaction/fixedScript/index.d.ts +0 -2
  53. package/dist/esm/transaction/fixedScript/index.d.ts.map +1 -1
  54. package/dist/esm/transaction/fixedScript/index.js +1 -3
  55. package/dist/esm/transaction/fixedScript/parseTransaction.d.ts.map +1 -1
  56. package/dist/esm/transaction/fixedScript/parseTransaction.js +1 -2
  57. package/dist/esm/transaction/fixedScript/signTransaction.d.ts +2 -12
  58. package/dist/esm/transaction/fixedScript/signTransaction.d.ts.map +1 -1
  59. package/dist/esm/transaction/fixedScript/signTransaction.js +17 -49
  60. package/dist/esm/transaction/fixedScript/verifyTransaction.d.ts.map +1 -1
  61. package/dist/esm/transaction/fixedScript/verifyTransaction.js +6 -4
  62. package/dist/esm/transaction/index.d.ts +1 -1
  63. package/dist/esm/transaction/index.d.ts.map +1 -1
  64. package/dist/esm/transaction/index.js +2 -2
  65. package/dist/esm/transaction/signTransaction.d.ts.map +1 -1
  66. package/dist/esm/transaction/signTransaction.js +3 -9
  67. package/dist/esm/transaction/types.d.ts +1 -4
  68. package/dist/esm/transaction/types.d.ts.map +1 -1
  69. package/dist/esm/transaction/types.js +2 -4
  70. package/package.json +5 -5
  71. package/dist/cjs/src/transaction/fixedScript/signLegacyTransaction.d.ts +0 -32
  72. package/dist/cjs/src/transaction/fixedScript/signLegacyTransaction.d.ts.map +0 -1
  73. package/dist/cjs/src/transaction/fixedScript/signLegacyTransaction.js +0 -163
  74. package/dist/cjs/src/transaction/fixedScript/signPsbtUtxolib.d.ts +0 -20
  75. package/dist/cjs/src/transaction/fixedScript/signPsbtUtxolib.d.ts.map +0 -1
  76. package/dist/cjs/src/transaction/fixedScript/signPsbtUtxolib.js +0 -157
  77. package/dist/esm/transaction/fixedScript/signLegacyTransaction.d.ts +0 -32
  78. package/dist/esm/transaction/fixedScript/signLegacyTransaction.d.ts.map +0 -1
  79. package/dist/esm/transaction/fixedScript/signLegacyTransaction.js +0 -123
  80. package/dist/esm/transaction/fixedScript/signPsbtUtxolib.d.ts +0 -20
  81. package/dist/esm/transaction/fixedScript/signPsbtUtxolib.d.ts.map +0 -1
  82. package/dist/esm/transaction/fixedScript/signPsbtUtxolib.js +0 -117
@@ -1,22 +1,12 @@
1
- import * as utxolib from '@bitgo/utxo-lib';
2
1
  import { BIP32, bip32, fixedScriptWallet } from '@bitgo/wasm-utxo';
3
2
  import { UtxoCoinName } from '../../names';
4
3
  import type { Unspent } from '../../unspent';
5
4
  import { Musig2Participant } from './musig2';
6
5
  import { ReplayProtectionKeys } from './signPsbtWasm';
7
- /**
8
- * Sign and verify a PSBT using either utxolib or wasm-utxo depending on the PSBT type.
9
- */
10
- export declare function signAndVerifyPsbt(psbt: utxolib.bitgo.UtxoPsbt, signerKeychain: bip32.BIP32Interface | BIP32, rootWalletKeys: fixedScriptWallet.RootWalletKeys | undefined, replayProtection: ReplayProtectionKeys | undefined, options?: {
11
- writeSignedWith?: boolean;
12
- }): utxolib.bitgo.UtxoPsbt;
13
6
  export declare function signAndVerifyPsbt(psbt: fixedScriptWallet.BitGoPsbt, signerKeychain: bip32.BIP32Interface | BIP32, rootWalletKeys: fixedScriptWallet.RootWalletKeys, replayProtection: ReplayProtectionKeys, options?: {
14
7
  writeSignedWith?: boolean;
15
8
  }): fixedScriptWallet.BitGoPsbt;
16
- export declare function signAndVerifyPsbt(psbt: utxolib.bitgo.UtxoPsbt | fixedScriptWallet.BitGoPsbt, signerKeychain: bip32.BIP32Interface | BIP32, rootWalletKeys: fixedScriptWallet.RootWalletKeys, replayProtection: ReplayProtectionKeys, options?: {
17
- writeSignedWith?: boolean;
18
- }): utxolib.bitgo.UtxoPsbt | fixedScriptWallet.BitGoPsbt;
19
- export declare function signTransaction<T extends utxolib.bitgo.UtxoPsbt | utxolib.bitgo.UtxoTransaction<bigint | number> | fixedScriptWallet.BitGoPsbt>(coin: Musig2Participant<utxolib.bitgo.UtxoPsbt> | Musig2Participant<fixedScriptWallet.BitGoPsbt>, tx: T, signerKeychain: bip32.BIP32Interface | undefined, coinName: UtxoCoinName, params: {
9
+ export declare function signTransaction(coin: Musig2Participant<fixedScriptWallet.BitGoPsbt>, tx: fixedScriptWallet.BitGoPsbt, signerKeychain: bip32.BIP32Interface | undefined, coinName: UtxoCoinName, params: {
20
10
  walletId: string | undefined;
21
11
  txInfo: {
22
12
  unspents?: Unspent<bigint | number>[];
@@ -30,5 +20,5 @@ export declare function signTransaction<T extends utxolib.bitgo.UtxoPsbt | utxol
30
20
  /** When true (default), extract finalized PSBT to legacy transaction format. When false, return finalized PSBT. */
31
21
  extractTransaction?: boolean;
32
22
  writeSignedWith?: boolean;
33
- }): Promise<utxolib.bitgo.UtxoPsbt | utxolib.bitgo.UtxoTransaction<bigint | number> | fixedScriptWallet.BitGoPsbt | Buffer>;
23
+ }): Promise<fixedScriptWallet.BitGoPsbt | Buffer>;
34
24
  //# sourceMappingURL=signTransaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"signTransaction.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/fixedScript/signTransaction.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAG7C,OAAO,EAA4D,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGhH;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAC5B,cAAc,EAAE,KAAK,CAAC,cAAc,GAAG,KAAK,EAC5C,cAAc,EAAE,iBAAiB,CAAC,cAAc,GAAG,SAAS,EAC5D,gBAAgB,EAAE,oBAAoB,GAAG,SAAS,EAClD,OAAO,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,GACtC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;AAC1B,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,iBAAiB,CAAC,SAAS,EACjC,cAAc,EAAE,KAAK,CAAC,cAAc,GAAG,KAAK,EAC5C,cAAc,EAAE,iBAAiB,CAAC,cAAc,EAChD,gBAAgB,EAAE,oBAAoB,EACtC,OAAO,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,GACtC,iBAAiB,CAAC,SAAS,CAAC;AAC/B,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,iBAAiB,CAAC,SAAS,EAC1D,cAAc,EAAE,KAAK,CAAC,cAAc,GAAG,KAAK,EAC5C,cAAc,EAAE,iBAAiB,CAAC,cAAc,EAChD,gBAAgB,EAAE,oBAAoB,EACtC,OAAO,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,GACtC,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,iBAAiB,CAAC,SAAS,CAAC;AAgBxD,wBAAsB,eAAe,CACnC,CAAC,SAAS,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,iBAAiB,CAAC,SAAS,EAE/G,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAChG,EAAE,EAAE,CAAC,EACL,cAAc,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,EAChD,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE;IACN,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,MAAM,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;KAAE,GAAG,SAAS,CAAC;IAC9D,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,aAAa,GAAG,eAAe,GAAG,iBAAiB,GAAG,SAAS,CAAC;IAC7E,iBAAiB;IACjB,kCAAkC,EAAE,OAAO,CAAC;IAC5C,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,mHAAmH;IACnH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,GACA,OAAO,CACR,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,iBAAiB,CAAC,SAAS,GAAG,MAAM,CAC/G,CAgEA"}
1
+ {"version":3,"file":"signTransaction.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/fixedScript/signTransaction.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAA4D,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGhH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,iBAAiB,CAAC,SAAS,EACjC,cAAc,EAAE,KAAK,CAAC,cAAc,GAAG,KAAK,EAC5C,cAAc,EAAE,iBAAiB,CAAC,cAAc,EAChD,gBAAgB,EAAE,oBAAoB,EACtC,OAAO,GAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAO,GAC1C,iBAAiB,CAAC,SAAS,CAI7B;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,SAAS,CAAC,EACpD,EAAE,EAAE,iBAAiB,CAAC,SAAS,EAC/B,cAAc,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,EAChD,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE;IACN,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,MAAM,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;KAAE,GAAG,SAAS,CAAC;IAC9D,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,aAAa,GAAG,eAAe,GAAG,iBAAiB,GAAG,SAAS,CAAC;IAC7E,iBAAiB;IACjB,kCAAkC,EAAE,OAAO,CAAC;IAC5C,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,mHAAmH;IACnH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,GACA,OAAO,CAAC,iBAAiB,CAAC,SAAS,GAAG,MAAM,CAAC,CA4B/C"}
@@ -8,17 +8,10 @@ exports.signTransaction = signTransaction;
8
8
  const assert_1 = __importDefault(require("assert"));
9
9
  const sdk_core_1 = require("@bitgo/sdk-core");
10
10
  const lodash_1 = __importDefault(require("lodash"));
11
- const utxo_lib_1 = require("@bitgo/utxo-lib");
12
11
  const wasm_utxo_1 = require("@bitgo/wasm-utxo");
13
- const wasmUtil_1 = require("../../wasmUtil");
14
- const signLegacyTransaction_1 = require("./signLegacyTransaction");
15
- const signPsbtUtxolib_1 = require("./signPsbtUtxolib");
16
12
  const signPsbtWasm_1 = require("./signPsbtWasm");
17
13
  const replayProtection_1 = require("./replayProtection");
18
14
  function signAndVerifyPsbt(psbt, signerKeychain, rootWalletKeys, replayProtection, options = {}) {
19
- if (psbt instanceof utxo_lib_1.bitgo.UtxoPsbt) {
20
- return (0, signPsbtUtxolib_1.signAndVerifyPsbt)(psbt, (0, wasmUtil_1.toUtxolibBIP32)(signerKeychain));
21
- }
22
15
  (0, assert_1.default)(rootWalletKeys, 'rootWalletKeys required for wasm-utxo signing');
23
16
  (0, assert_1.default)(replayProtection, 'replayProtection required for wasm-utxo signing');
24
17
  return (0, signPsbtWasm_1.signAndVerifyPsbtWasm)(psbt, signerKeychain, rootWalletKeys, replayProtection, options);
@@ -30,49 +23,24 @@ async function signTransaction(coin, tx, signerKeychain, coinName, params) {
30
23
  isLastSignature = params.isLastSignature;
31
24
  }
32
25
  const { extractTransaction = true } = params;
33
- if (tx instanceof utxo_lib_1.bitgo.UtxoPsbt) {
34
- const signedPsbt = await (0, signPsbtUtxolib_1.signPsbtWithMusig2ParticipantUtxolib)(coin, tx, signerKeychain ? (0, wasmUtil_1.toUtxolibBIP32)(signerKeychain) : undefined, {
35
- signingStep: params.signingStep,
36
- walletId: params.walletId,
37
- });
38
- if (isLastSignature) {
39
- if (extractTransaction) {
40
- signedPsbt.finalizeAllInputs();
41
- return signedPsbt.extractTransaction();
42
- }
43
- // Return signed PSBT without finalizing to preserve derivation info
44
- return signedPsbt;
45
- }
46
- return signedPsbt;
47
- }
48
- else if (tx instanceof wasm_utxo_1.fixedScriptWallet.BitGoPsbt) {
49
- (0, assert_1.default)(params.pubs, 'pubs are required for fixed script signing');
50
- (0, assert_1.default)((0, sdk_core_1.isTriple)(params.pubs), 'pubs must be a triple');
51
- const rootWalletKeys = wasm_utxo_1.fixedScriptWallet.RootWalletKeys.fromXpubs(params.pubs);
52
- const signedPsbt = await (0, signPsbtWasm_1.signPsbtWithMusig2ParticipantWasm)(coin, tx, signerKeychain, rootWalletKeys, {
53
- replayProtection: {
54
- publicKeys: (0, replayProtection_1.getReplayProtectionPubkeys)(coinName),
55
- },
56
- signingStep: params.signingStep,
57
- walletId: params.walletId,
58
- writeSignedWith: params.writeSignedWith,
59
- });
60
- if (isLastSignature) {
61
- if (extractTransaction) {
62
- signedPsbt.finalizeAllInputs();
63
- return Buffer.from(signedPsbt.extractTransaction().toBytes());
64
- }
65
- // Return finalized PSBT without extracting to legacy format
66
- return signedPsbt;
26
+ (0, assert_1.default)(params.pubs, 'pubs are required for fixed script signing');
27
+ (0, assert_1.default)((0, sdk_core_1.isTriple)(params.pubs), 'pubs must be a triple');
28
+ const rootWalletKeys = wasm_utxo_1.fixedScriptWallet.RootWalletKeys.fromXpubs(params.pubs);
29
+ const signedPsbt = await (0, signPsbtWasm_1.signPsbtWithMusig2ParticipantWasm)(coin, tx, signerKeychain, rootWalletKeys, {
30
+ replayProtection: {
31
+ publicKeys: (0, replayProtection_1.getReplayProtectionPubkeys)(coinName),
32
+ },
33
+ signingStep: params.signingStep,
34
+ walletId: params.walletId,
35
+ writeSignedWith: params.writeSignedWith,
36
+ });
37
+ if (isLastSignature) {
38
+ if (extractTransaction) {
39
+ signedPsbt.finalizeAllInputs();
40
+ return Buffer.from(signedPsbt.extractTransaction().toBytes());
67
41
  }
68
42
  return signedPsbt;
69
43
  }
70
- return (0, signLegacyTransaction_1.signLegacyTransaction)(tx, signerKeychain, coinName, {
71
- isLastSignature,
72
- signingStep: params.signingStep,
73
- txInfo: params.txInfo,
74
- pubs: params.pubs,
75
- cosignerPub: params.cosignerPub,
76
- });
44
+ return signedPsbt;
77
45
  }
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnblRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2ZpeGVkU2NyaXB0L3NpZ25UcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQTBDQSw4Q0FhQztBQUVELDBDQXNGQztBQS9JRCxvREFBNEI7QUFFNUIsOENBQTJDO0FBQzNDLG9EQUF1QjtBQUN2Qiw4Q0FBd0M7QUFFeEMsZ0RBQW1FO0FBSW5FLDZDQUFnRDtBQUdoRCxtRUFBZ0U7QUFDaEUsdURBQXdIO0FBQ3hILGlEQUFnSDtBQUNoSCx5REFBZ0U7QUEwQmhFLFNBQWdCLGlCQUFpQixDQUMvQixJQUEwRCxFQUMxRCxjQUE0QyxFQUM1QyxjQUE0RCxFQUM1RCxnQkFBa0QsRUFDbEQsVUFBeUMsRUFBRTtJQUUzQyxJQUFJLElBQUksWUFBWSxnQkFBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25DLE9BQU8sSUFBQSxtQ0FBd0IsRUFBQyxJQUFJLEVBQUUsSUFBQSx5QkFBYyxFQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUNELElBQUEsZ0JBQU0sRUFBQyxjQUFjLEVBQUUsK0NBQStDLENBQUMsQ0FBQztJQUN4RSxJQUFBLGdCQUFNLEVBQUMsZ0JBQWdCLEVBQUUsaURBQWlELENBQUMsQ0FBQztJQUM1RSxPQUFPLElBQUEsb0NBQXFCLEVBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDaEcsQ0FBQztBQUVNLEtBQUssVUFBVSxlQUFlLENBR25DLElBQWdHLEVBQ2hHLEVBQUssRUFDTCxjQUFnRCxFQUNoRCxRQUFzQixFQUN0QixNQVlDO0lBSUQsSUFBSSxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQzVCLElBQUksZ0JBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7UUFDeEMsc0dBQXNHO1FBQ3RHLGVBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDO0lBQzNDLENBQUM7SUFFRCxNQUFNLEVBQUUsa0JBQWtCLEdBQUcsSUFBSSxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBRTdDLElBQUksRUFBRSxZQUFZLGdCQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakMsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFBLHNEQUFvQyxFQUMzRCxJQUFpRCxFQUNqRCxFQUFFLEVBQ0YsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFBLHlCQUFjLEVBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFDM0Q7WUFDRSxXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVc7WUFDL0IsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO1NBQzFCLENBQ0YsQ0FBQztRQUNGLElBQUksZUFBZSxFQUFFLENBQUM7WUFDcEIsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO2dCQUN2QixVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDL0IsT0FBTyxVQUFVLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUN6QyxDQUFDO1lBQ0Qsb0VBQW9FO1lBQ3BFLE9BQU8sVUFBVSxDQUFDO1FBQ3BCLENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO1NBQU0sSUFBSSxFQUFFLFlBQVksNkJBQWlCLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDckQsSUFBQSxnQkFBTSxFQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsNENBQTRDLENBQUMsQ0FBQztRQUNsRSxJQUFBLGdCQUFNLEVBQUMsSUFBQSxtQkFBUSxFQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sY0FBYyxHQUFHLDZCQUFpQixDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9FLE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBQSxnREFBaUMsRUFDeEQsSUFBc0QsRUFDdEQsRUFBRSxFQUNGLGNBQWMsRUFDZCxjQUFjLEVBQ2Q7WUFDRSxnQkFBZ0IsRUFBRTtnQkFDaEIsVUFBVSxFQUFFLElBQUEsNkNBQTBCLEVBQUMsUUFBUSxDQUFDO2FBQ2pEO1lBQ0QsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO1lBQy9CLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtZQUN6QixlQUFlLEVBQUUsTUFBTSxDQUFDLGVBQWU7U0FDeEMsQ0FDRixDQUFDO1FBQ0YsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNwQixJQUFJLGtCQUFrQixFQUFFLENBQUM7Z0JBQ3ZCLFVBQVUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUMvQixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUNoRSxDQUFDO1lBQ0QsNERBQTREO1lBQzVELE9BQU8sVUFBVSxDQUFDO1FBQ3BCLENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQsT0FBTyxJQUFBLDZDQUFxQixFQUFDLEVBQUUsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFO1FBQ3pELGVBQWU7UUFDZixXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVc7UUFDL0IsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO1FBQ3JCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtRQUNqQixXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVc7S0FDaEMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0IHsgaXNUcmlwbGUgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IGJpdGdvIH0gZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcbmltcG9ydCB7IEJJUDMyLCBiaXAzMiwgZml4ZWRTY3JpcHRXYWxsZXQgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcblxuaW1wb3J0IHsgVXR4b0NvaW5OYW1lIH0gZnJvbSAnLi4vLi4vbmFtZXMnO1xuaW1wb3J0IHR5cGUgeyBVbnNwZW50IH0gZnJvbSAnLi4vLi4vdW5zcGVudCc7XG5pbXBvcnQgeyB0b1V0eG9saWJCSVAzMiB9IGZyb20gJy4uLy4uL3dhc21VdGlsJztcblxuaW1wb3J0IHsgTXVzaWcyUGFydGljaXBhbnQgfSBmcm9tICcuL211c2lnMic7XG5pbXBvcnQgeyBzaWduTGVnYWN5VHJhbnNhY3Rpb24gfSBmcm9tICcuL3NpZ25MZWdhY3lUcmFuc2FjdGlvbic7XG5pbXBvcnQgeyBzaWduUHNidFdpdGhNdXNpZzJQYXJ0aWNpcGFudFV0eG9saWIsIHNpZ25BbmRWZXJpZnlQc2J0IGFzIHNpZ25BbmRWZXJpZnlQc2J0VXR4b2xpYiB9IGZyb20gJy4vc2lnblBzYnRVdHhvbGliJztcbmltcG9ydCB7IHNpZ25Qc2J0V2l0aE11c2lnMlBhcnRpY2lwYW50V2FzbSwgc2lnbkFuZFZlcmlmeVBzYnRXYXNtLCBSZXBsYXlQcm90ZWN0aW9uS2V5cyB9IGZyb20gJy4vc2lnblBzYnRXYXNtJztcbmltcG9ydCB7IGdldFJlcGxheVByb3RlY3Rpb25QdWJrZXlzIH0gZnJvbSAnLi9yZXBsYXlQcm90ZWN0aW9uJztcblxuLyoqXG4gKiBTaWduIGFuZCB2ZXJpZnkgYSBQU0JUIHVzaW5nIGVpdGhlciB1dHhvbGliIG9yIHdhc20tdXR4byBkZXBlbmRpbmcgb24gdGhlIFBTQlQgdHlwZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25BbmRWZXJpZnlQc2J0KFxuICBwc2J0OiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0LFxuICBzaWduZXJLZXljaGFpbjogYmlwMzIuQklQMzJJbnRlcmZhY2UgfCBCSVAzMixcbiAgcm9vdFdhbGxldEtleXM6IGZpeGVkU2NyaXB0V2FsbGV0LlJvb3RXYWxsZXRLZXlzIHwgdW5kZWZpbmVkLFxuICByZXBsYXlQcm90ZWN0aW9uOiBSZXBsYXlQcm90ZWN0aW9uS2V5cyB8IHVuZGVmaW5lZCxcbiAgb3B0aW9ucz86IHsgd3JpdGVTaWduZWRXaXRoPzogYm9vbGVhbiB9XG4pOiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25BbmRWZXJpZnlQc2J0KFxuICBwc2J0OiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQsXG4gIHNpZ25lcktleWNoYWluOiBiaXAzMi5CSVAzMkludGVyZmFjZSB8IEJJUDMyLFxuICByb290V2FsbGV0S2V5czogZml4ZWRTY3JpcHRXYWxsZXQuUm9vdFdhbGxldEtleXMsXG4gIHJlcGxheVByb3RlY3Rpb246IFJlcGxheVByb3RlY3Rpb25LZXlzLFxuICBvcHRpb25zPzogeyB3cml0ZVNpZ25lZFdpdGg/OiBib29sZWFuIH1cbik6IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidDtcbmV4cG9ydCBmdW5jdGlvbiBzaWduQW5kVmVyaWZ5UHNidChcbiAgcHNidDogdXR4b2xpYi5iaXRnby5VdHhvUHNidCB8IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCxcbiAgc2lnbmVyS2V5Y2hhaW46IGJpcDMyLkJJUDMySW50ZXJmYWNlIHwgQklQMzIsXG4gIHJvb3RXYWxsZXRLZXlzOiBmaXhlZFNjcmlwdFdhbGxldC5Sb290V2FsbGV0S2V5cyxcbiAgcmVwbGF5UHJvdGVjdGlvbjogUmVwbGF5UHJvdGVjdGlvbktleXMsXG4gIG9wdGlvbnM/OiB7IHdyaXRlU2lnbmVkV2l0aD86IGJvb2xlYW4gfVxuKTogdXR4b2xpYi5iaXRnby5VdHhvUHNidCB8IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidDtcbmV4cG9ydCBmdW5jdGlvbiBzaWduQW5kVmVyaWZ5UHNidChcbiAgcHNidDogdXR4b2xpYi5iaXRnby5VdHhvUHNidCB8IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCxcbiAgc2lnbmVyS2V5Y2hhaW46IGJpcDMyLkJJUDMySW50ZXJmYWNlIHwgQklQMzIsXG4gIHJvb3RXYWxsZXRLZXlzOiBmaXhlZFNjcmlwdFdhbGxldC5Sb290V2FsbGV0S2V5cyB8IHVuZGVmaW5lZCxcbiAgcmVwbGF5UHJvdGVjdGlvbjogUmVwbGF5UHJvdGVjdGlvbktleXMgfCB1bmRlZmluZWQsXG4gIG9wdGlvbnM6IHsgd3JpdGVTaWduZWRXaXRoPzogYm9vbGVhbiB9ID0ge31cbik6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQgfCBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQge1xuICBpZiAocHNidCBpbnN0YW5jZW9mIGJpdGdvLlV0eG9Qc2J0KSB7XG4gICAgcmV0dXJuIHNpZ25BbmRWZXJpZnlQc2J0VXR4b2xpYihwc2J0LCB0b1V0eG9saWJCSVAzMihzaWduZXJLZXljaGFpbikpO1xuICB9XG4gIGFzc2VydChyb290V2FsbGV0S2V5cywgJ3Jvb3RXYWxsZXRLZXlzIHJlcXVpcmVkIGZvciB3YXNtLXV0eG8gc2lnbmluZycpO1xuICBhc3NlcnQocmVwbGF5UHJvdGVjdGlvbiwgJ3JlcGxheVByb3RlY3Rpb24gcmVxdWlyZWQgZm9yIHdhc20tdXR4byBzaWduaW5nJyk7XG4gIHJldHVybiBzaWduQW5kVmVyaWZ5UHNidFdhc20ocHNidCwgc2lnbmVyS2V5Y2hhaW4sIHJvb3RXYWxsZXRLZXlzLCByZXBsYXlQcm90ZWN0aW9uLCBvcHRpb25zKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNpZ25UcmFuc2FjdGlvbjxcbiAgVCBleHRlbmRzIHV0eG9saWIuYml0Z28uVXR4b1BzYnQgfCB1dHhvbGliLmJpdGdvLlV0eG9UcmFuc2FjdGlvbjxiaWdpbnQgfCBudW1iZXI+IHwgZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0XG4+KFxuICBjb2luOiBNdXNpZzJQYXJ0aWNpcGFudDx1dHhvbGliLmJpdGdvLlV0eG9Qc2J0PiB8IE11c2lnMlBhcnRpY2lwYW50PGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidD4sXG4gIHR4OiBULFxuICBzaWduZXJLZXljaGFpbjogYmlwMzIuQklQMzJJbnRlcmZhY2UgfCB1bmRlZmluZWQsXG4gIGNvaW5OYW1lOiBVdHhvQ29pbk5hbWUsXG4gIHBhcmFtczoge1xuICAgIHdhbGxldElkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgdHhJbmZvOiB7IHVuc3BlbnRzPzogVW5zcGVudDxiaWdpbnQgfCBudW1iZXI+W10gfSB8IHVuZGVmaW5lZDtcbiAgICBpc0xhc3RTaWduYXR1cmU6IGJvb2xlYW47XG4gICAgc2lnbmluZ1N0ZXA6ICdzaWduZXJOb25jZScgfCAnY29zaWduZXJOb25jZScgfCAnc2lnbmVyU2lnbmF0dXJlJyB8IHVuZGVmaW5lZDtcbiAgICAvKiogZGVwcmVjYXRlZCAqL1xuICAgIGFsbG93Tm9uU2Vnd2l0U2lnbmluZ1dpdGhvdXRQcmV2VHg6IGJvb2xlYW47XG4gICAgcHViczogc3RyaW5nW10gfCB1bmRlZmluZWQ7XG4gICAgY29zaWduZXJQdWI6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogV2hlbiB0cnVlIChkZWZhdWx0KSwgZXh0cmFjdCBmaW5hbGl6ZWQgUFNCVCB0byBsZWdhY3kgdHJhbnNhY3Rpb24gZm9ybWF0LiBXaGVuIGZhbHNlLCByZXR1cm4gZmluYWxpemVkIFBTQlQuICovXG4gICAgZXh0cmFjdFRyYW5zYWN0aW9uPzogYm9vbGVhbjtcbiAgICB3cml0ZVNpZ25lZFdpdGg/OiBib29sZWFuO1xuICB9XG4pOiBQcm9taXNlPFxuICB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0IHwgdXR4b2xpYi5iaXRnby5VdHhvVHJhbnNhY3Rpb248YmlnaW50IHwgbnVtYmVyPiB8IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCB8IEJ1ZmZlclxuPiB7XG4gIGxldCBpc0xhc3RTaWduYXR1cmUgPSBmYWxzZTtcbiAgaWYgKF8uaXNCb29sZWFuKHBhcmFtcy5pc0xhc3RTaWduYXR1cmUpKSB7XG4gICAgLy8gaWYgYnVpbGQgaXMgY2FsbGVkIGluc3RlYWQgb2YgYnVpbGRJbmNvbXBsZXRlLCBubyBzaWduYXR1cmUgcGxhY2Vob2xkZXJzIGFyZSBsZWZ0IGluIHRoZSBzaWcgc2NyaXB0XG4gICAgaXNMYXN0U2lnbmF0dXJlID0gcGFyYW1zLmlzTGFzdFNpZ25hdHVyZTtcbiAgfVxuXG4gIGNvbnN0IHsgZXh0cmFjdFRyYW5zYWN0aW9uID0gdHJ1ZSB9ID0gcGFyYW1zO1xuXG4gIGlmICh0eCBpbnN0YW5jZW9mIGJpdGdvLlV0eG9Qc2J0KSB7XG4gICAgY29uc3Qgc2lnbmVkUHNidCA9IGF3YWl0IHNpZ25Qc2J0V2l0aE11c2lnMlBhcnRpY2lwYW50VXR4b2xpYihcbiAgICAgIGNvaW4gYXMgTXVzaWcyUGFydGljaXBhbnQ8dXR4b2xpYi5iaXRnby5VdHhvUHNidD4sXG4gICAgICB0eCxcbiAgICAgIHNpZ25lcktleWNoYWluID8gdG9VdHhvbGliQklQMzIoc2lnbmVyS2V5Y2hhaW4pIDogdW5kZWZpbmVkLFxuICAgICAge1xuICAgICAgICBzaWduaW5nU3RlcDogcGFyYW1zLnNpZ25pbmdTdGVwLFxuICAgICAgICB3YWxsZXRJZDogcGFyYW1zLndhbGxldElkLFxuICAgICAgfVxuICAgICk7XG4gICAgaWYgKGlzTGFzdFNpZ25hdHVyZSkge1xuICAgICAgaWYgKGV4dHJhY3RUcmFuc2FjdGlvbikge1xuICAgICAgICBzaWduZWRQc2J0LmZpbmFsaXplQWxsSW5wdXRzKCk7XG4gICAgICAgIHJldHVybiBzaWduZWRQc2J0LmV4dHJhY3RUcmFuc2FjdGlvbigpO1xuICAgICAgfVxuICAgICAgLy8gUmV0dXJuIHNpZ25lZCBQU0JUIHdpdGhvdXQgZmluYWxpemluZyB0byBwcmVzZXJ2ZSBkZXJpdmF0aW9uIGluZm9cbiAgICAgIHJldHVybiBzaWduZWRQc2J0O1xuICAgIH1cbiAgICByZXR1cm4gc2lnbmVkUHNidDtcbiAgfSBlbHNlIGlmICh0eCBpbnN0YW5jZW9mIGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCkge1xuICAgIGFzc2VydChwYXJhbXMucHVicywgJ3B1YnMgYXJlIHJlcXVpcmVkIGZvciBmaXhlZCBzY3JpcHQgc2lnbmluZycpO1xuICAgIGFzc2VydChpc1RyaXBsZShwYXJhbXMucHVicyksICdwdWJzIG11c3QgYmUgYSB0cmlwbGUnKTtcbiAgICBjb25zdCByb290V2FsbGV0S2V5cyA9IGZpeGVkU2NyaXB0V2FsbGV0LlJvb3RXYWxsZXRLZXlzLmZyb21YcHVicyhwYXJhbXMucHVicyk7XG4gICAgY29uc3Qgc2lnbmVkUHNidCA9IGF3YWl0IHNpZ25Qc2J0V2l0aE11c2lnMlBhcnRpY2lwYW50V2FzbShcbiAgICAgIGNvaW4gYXMgTXVzaWcyUGFydGljaXBhbnQ8Zml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0PixcbiAgICAgIHR4LFxuICAgICAgc2lnbmVyS2V5Y2hhaW4sXG4gICAgICByb290V2FsbGV0S2V5cyxcbiAgICAgIHtcbiAgICAgICAgcmVwbGF5UHJvdGVjdGlvbjoge1xuICAgICAgICAgIHB1YmxpY0tleXM6IGdldFJlcGxheVByb3RlY3Rpb25QdWJrZXlzKGNvaW5OYW1lKSxcbiAgICAgICAgfSxcbiAgICAgICAgc2lnbmluZ1N0ZXA6IHBhcmFtcy5zaWduaW5nU3RlcCxcbiAgICAgICAgd2FsbGV0SWQ6IHBhcmFtcy53YWxsZXRJZCxcbiAgICAgICAgd3JpdGVTaWduZWRXaXRoOiBwYXJhbXMud3JpdGVTaWduZWRXaXRoLFxuICAgICAgfVxuICAgICk7XG4gICAgaWYgKGlzTGFzdFNpZ25hdHVyZSkge1xuICAgICAgaWYgKGV4dHJhY3RUcmFuc2FjdGlvbikge1xuICAgICAgICBzaWduZWRQc2J0LmZpbmFsaXplQWxsSW5wdXRzKCk7XG4gICAgICAgIHJldHVybiBCdWZmZXIuZnJvbShzaWduZWRQc2J0LmV4dHJhY3RUcmFuc2FjdGlvbigpLnRvQnl0ZXMoKSk7XG4gICAgICB9XG4gICAgICAvLyBSZXR1cm4gZmluYWxpemVkIFBTQlQgd2l0aG91dCBleHRyYWN0aW5nIHRvIGxlZ2FjeSBmb3JtYXRcbiAgICAgIHJldHVybiBzaWduZWRQc2J0O1xuICAgIH1cbiAgICByZXR1cm4gc2lnbmVkUHNidDtcbiAgfVxuXG4gIHJldHVybiBzaWduTGVnYWN5VHJhbnNhY3Rpb24odHgsIHNpZ25lcktleWNoYWluLCBjb2luTmFtZSwge1xuICAgIGlzTGFzdFNpZ25hdHVyZSxcbiAgICBzaWduaW5nU3RlcDogcGFyYW1zLnNpZ25pbmdTdGVwLFxuICAgIHR4SW5mbzogcGFyYW1zLnR4SW5mbyxcbiAgICBwdWJzOiBwYXJhbXMucHVicyxcbiAgICBjb3NpZ25lclB1YjogcGFyYW1zLmNvc2lnbmVyUHViLFxuICB9KTtcbn1cbiJdfQ==
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnblRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2ZpeGVkU2NyaXB0L3NpZ25UcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWFBLDhDQVVDO0FBRUQsMENBOENDO0FBdkVELG9EQUE0QjtBQUU1Qiw4Q0FBMkM7QUFDM0Msb0RBQXVCO0FBQ3ZCLGdEQUFtRTtBQU1uRSxpREFBZ0g7QUFDaEgseURBQWdFO0FBRWhFLFNBQWdCLGlCQUFpQixDQUMvQixJQUFpQyxFQUNqQyxjQUE0QyxFQUM1QyxjQUFnRCxFQUNoRCxnQkFBc0MsRUFDdEMsVUFBeUMsRUFBRTtJQUUzQyxJQUFBLGdCQUFNLEVBQUMsY0FBYyxFQUFFLCtDQUErQyxDQUFDLENBQUM7SUFDeEUsSUFBQSxnQkFBTSxFQUFDLGdCQUFnQixFQUFFLGlEQUFpRCxDQUFDLENBQUM7SUFDNUUsT0FBTyxJQUFBLG9DQUFxQixFQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2hHLENBQUM7QUFFTSxLQUFLLFVBQVUsZUFBZSxDQUNuQyxJQUFvRCxFQUNwRCxFQUErQixFQUMvQixjQUFnRCxFQUNoRCxRQUFzQixFQUN0QixNQVlDO0lBRUQsSUFBSSxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQzVCLElBQUksZ0JBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7UUFDeEMsc0dBQXNHO1FBQ3RHLGVBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDO0lBQzNDLENBQUM7SUFFRCxNQUFNLEVBQUUsa0JBQWtCLEdBQUcsSUFBSSxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBRTdDLElBQUEsZ0JBQU0sRUFBQyxNQUFNLENBQUMsSUFBSSxFQUFFLDRDQUE0QyxDQUFDLENBQUM7SUFDbEUsSUFBQSxnQkFBTSxFQUFDLElBQUEsbUJBQVEsRUFBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztJQUN2RCxNQUFNLGNBQWMsR0FBRyw2QkFBaUIsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvRSxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUEsZ0RBQWlDLEVBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFO1FBQ25HLGdCQUFnQixFQUFFO1lBQ2hCLFVBQVUsRUFBRSxJQUFBLDZDQUEwQixFQUFDLFFBQVEsQ0FBQztTQUNqRDtRQUNELFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVztRQUMvQixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7UUFDekIsZUFBZSxFQUFFLE1BQU0sQ0FBQyxlQUFlO0tBQ3hDLENBQUMsQ0FBQztJQUNILElBQUksZUFBZSxFQUFFLENBQUM7UUFDcEIsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1lBQ3ZCLFVBQVUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQy9CLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBQ0QsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0IHsgaXNUcmlwbGUgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEJJUDMyLCBiaXAzMiwgZml4ZWRTY3JpcHRXYWxsZXQgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcblxuaW1wb3J0IHsgVXR4b0NvaW5OYW1lIH0gZnJvbSAnLi4vLi4vbmFtZXMnO1xuaW1wb3J0IHR5cGUgeyBVbnNwZW50IH0gZnJvbSAnLi4vLi4vdW5zcGVudCc7XG5cbmltcG9ydCB7IE11c2lnMlBhcnRpY2lwYW50IH0gZnJvbSAnLi9tdXNpZzInO1xuaW1wb3J0IHsgc2lnblBzYnRXaXRoTXVzaWcyUGFydGljaXBhbnRXYXNtLCBzaWduQW5kVmVyaWZ5UHNidFdhc20sIFJlcGxheVByb3RlY3Rpb25LZXlzIH0gZnJvbSAnLi9zaWduUHNidFdhc20nO1xuaW1wb3J0IHsgZ2V0UmVwbGF5UHJvdGVjdGlvblB1YmtleXMgfSBmcm9tICcuL3JlcGxheVByb3RlY3Rpb24nO1xuXG5leHBvcnQgZnVuY3Rpb24gc2lnbkFuZFZlcmlmeVBzYnQoXG4gIHBzYnQ6IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCxcbiAgc2lnbmVyS2V5Y2hhaW46IGJpcDMyLkJJUDMySW50ZXJmYWNlIHwgQklQMzIsXG4gIHJvb3RXYWxsZXRLZXlzOiBmaXhlZFNjcmlwdFdhbGxldC5Sb290V2FsbGV0S2V5cyxcbiAgcmVwbGF5UHJvdGVjdGlvbjogUmVwbGF5UHJvdGVjdGlvbktleXMsXG4gIG9wdGlvbnM6IHsgd3JpdGVTaWduZWRXaXRoPzogYm9vbGVhbiB9ID0ge31cbik6IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCB7XG4gIGFzc2VydChyb290V2FsbGV0S2V5cywgJ3Jvb3RXYWxsZXRLZXlzIHJlcXVpcmVkIGZvciB3YXNtLXV0eG8gc2lnbmluZycpO1xuICBhc3NlcnQocmVwbGF5UHJvdGVjdGlvbiwgJ3JlcGxheVByb3RlY3Rpb24gcmVxdWlyZWQgZm9yIHdhc20tdXR4byBzaWduaW5nJyk7XG4gIHJldHVybiBzaWduQW5kVmVyaWZ5UHNidFdhc20ocHNidCwgc2lnbmVyS2V5Y2hhaW4sIHJvb3RXYWxsZXRLZXlzLCByZXBsYXlQcm90ZWN0aW9uLCBvcHRpb25zKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNpZ25UcmFuc2FjdGlvbihcbiAgY29pbjogTXVzaWcyUGFydGljaXBhbnQ8Zml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0PixcbiAgdHg6IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCxcbiAgc2lnbmVyS2V5Y2hhaW46IGJpcDMyLkJJUDMySW50ZXJmYWNlIHwgdW5kZWZpbmVkLFxuICBjb2luTmFtZTogVXR4b0NvaW5OYW1lLFxuICBwYXJhbXM6IHtcbiAgICB3YWxsZXRJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIHR4SW5mbzogeyB1bnNwZW50cz86IFVuc3BlbnQ8YmlnaW50IHwgbnVtYmVyPltdIH0gfCB1bmRlZmluZWQ7XG4gICAgaXNMYXN0U2lnbmF0dXJlOiBib29sZWFuO1xuICAgIHNpZ25pbmdTdGVwOiAnc2lnbmVyTm9uY2UnIHwgJ2Nvc2lnbmVyTm9uY2UnIHwgJ3NpZ25lclNpZ25hdHVyZScgfCB1bmRlZmluZWQ7XG4gICAgLyoqIGRlcHJlY2F0ZWQgKi9cbiAgICBhbGxvd05vblNlZ3dpdFNpZ25pbmdXaXRob3V0UHJldlR4OiBib29sZWFuO1xuICAgIHB1YnM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuICAgIGNvc2lnbmVyUHViOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFdoZW4gdHJ1ZSAoZGVmYXVsdCksIGV4dHJhY3QgZmluYWxpemVkIFBTQlQgdG8gbGVnYWN5IHRyYW5zYWN0aW9uIGZvcm1hdC4gV2hlbiBmYWxzZSwgcmV0dXJuIGZpbmFsaXplZCBQU0JULiAqL1xuICAgIGV4dHJhY3RUcmFuc2FjdGlvbj86IGJvb2xlYW47XG4gICAgd3JpdGVTaWduZWRXaXRoPzogYm9vbGVhbjtcbiAgfVxuKTogUHJvbWlzZTxmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQgfCBCdWZmZXI+IHtcbiAgbGV0IGlzTGFzdFNpZ25hdHVyZSA9IGZhbHNlO1xuICBpZiAoXy5pc0Jvb2xlYW4ocGFyYW1zLmlzTGFzdFNpZ25hdHVyZSkpIHtcbiAgICAvLyBpZiBidWlsZCBpcyBjYWxsZWQgaW5zdGVhZCBvZiBidWlsZEluY29tcGxldGUsIG5vIHNpZ25hdHVyZSBwbGFjZWhvbGRlcnMgYXJlIGxlZnQgaW4gdGhlIHNpZyBzY3JpcHRcbiAgICBpc0xhc3RTaWduYXR1cmUgPSBwYXJhbXMuaXNMYXN0U2lnbmF0dXJlO1xuICB9XG5cbiAgY29uc3QgeyBleHRyYWN0VHJhbnNhY3Rpb24gPSB0cnVlIH0gPSBwYXJhbXM7XG5cbiAgYXNzZXJ0KHBhcmFtcy5wdWJzLCAncHVicyBhcmUgcmVxdWlyZWQgZm9yIGZpeGVkIHNjcmlwdCBzaWduaW5nJyk7XG4gIGFzc2VydChpc1RyaXBsZShwYXJhbXMucHVicyksICdwdWJzIG11c3QgYmUgYSB0cmlwbGUnKTtcbiAgY29uc3Qgcm9vdFdhbGxldEtleXMgPSBmaXhlZFNjcmlwdFdhbGxldC5Sb290V2FsbGV0S2V5cy5mcm9tWHB1YnMocGFyYW1zLnB1YnMpO1xuICBjb25zdCBzaWduZWRQc2J0ID0gYXdhaXQgc2lnblBzYnRXaXRoTXVzaWcyUGFydGljaXBhbnRXYXNtKGNvaW4sIHR4LCBzaWduZXJLZXljaGFpbiwgcm9vdFdhbGxldEtleXMsIHtcbiAgICByZXBsYXlQcm90ZWN0aW9uOiB7XG4gICAgICBwdWJsaWNLZXlzOiBnZXRSZXBsYXlQcm90ZWN0aW9uUHVia2V5cyhjb2luTmFtZSksXG4gICAgfSxcbiAgICBzaWduaW5nU3RlcDogcGFyYW1zLnNpZ25pbmdTdGVwLFxuICAgIHdhbGxldElkOiBwYXJhbXMud2FsbGV0SWQsXG4gICAgd3JpdGVTaWduZWRXaXRoOiBwYXJhbXMud3JpdGVTaWduZWRXaXRoLFxuICB9KTtcbiAgaWYgKGlzTGFzdFNpZ25hdHVyZSkge1xuICAgIGlmIChleHRyYWN0VHJhbnNhY3Rpb24pIHtcbiAgICAgIHNpZ25lZFBzYnQuZmluYWxpemVBbGxJbnB1dHMoKTtcbiAgICAgIHJldHVybiBCdWZmZXIuZnJvbShzaWduZWRQc2J0LmV4dHJhY3RUcmFuc2FjdGlvbigpLnRvQnl0ZXMoKSk7XG4gICAgfVxuICAgIHJldHVybiBzaWduZWRQc2J0O1xuICB9XG4gIHJldHVybiBzaWduZWRQc2J0O1xufVxuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"verifyTransaction.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/fixedScript/verifyTransaction.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAoC,MAAM,iBAAiB,CAAC;AAG9E,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAsBpF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EACrE,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,wBAAwB,CAAC,OAAO,CAAC,GACxC,OAAO,CAAC,OAAO,CAAC,CAiLlB"}
1
+ {"version":3,"file":"verifyTransaction.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/fixedScript/verifyTransaction.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAoC,MAAM,iBAAiB,CAAC;AAG9E,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAwBpF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EACrE,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,wBAAwB,CAAC,OAAO,CAAC,GACxC,OAAO,CAAC,OAAO,CAAC,CAiLlB"}
@@ -1,37 +1,4 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
36
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
4
  };
@@ -41,7 +8,9 @@ const debug_1 = __importDefault(require("debug"));
41
8
  const lodash_1 = __importDefault(require("lodash"));
42
9
  const bignumber_js_1 = __importDefault(require("bignumber.js"));
43
10
  const sdk_core_1 = require("@bitgo/sdk-core");
44
- const utxolib = __importStar(require("@bitgo/utxo-lib"));
11
+ const wasm_utxo_1 = require("@bitgo/wasm-utxo");
12
+ const tnumber_1 = require("../../tnumber");
13
+ const decode_1 = require("../decode");
45
14
  const verifyKey_1 = require("../../verifyKey");
46
15
  const fetchInputs_1 = require("../fetchInputs");
47
16
  const debug = (0, debug_1.default)('bitgo:abstract-utxo:verifyTransaction');
@@ -86,7 +55,7 @@ async function verifyTransaction(coin, bitgo, params) {
86
55
  if (!lodash_1.default.isUndefined(verification.disableNetworking) && !lodash_1.default.isBoolean(verification.disableNetworking)) {
87
56
  throw new TypeError('verification.disableNetworking must be a boolean');
88
57
  }
89
- const isPsbt = txPrebuild.txHex && utxolib.bitgo.isPsbt(txPrebuild.txHex);
58
+ const isPsbt = txPrebuild.txHex && (0, wasm_utxo_1.hasPsbtMagic)((0, decode_1.stringToBufferTryFormats)(txPrebuild.txHex, ['hex', 'base64']));
90
59
  if (isPsbt && txPrebuild.txInfo?.unspents) {
91
60
  throw new Error('should not have unspents in txInfo for psbt');
92
61
  }
@@ -214,7 +183,7 @@ async function verifyTransaction(coin, bitgo, params) {
214
183
  const inputs = isPsbt
215
184
  ? (0, fetchInputs_1.getPsbtTxInputs)(txPrebuild.txHex, coin.name).map((v) => ({
216
185
  ...v,
217
- value: utxolib.bitgo.toTNumber(v.value, coin.amountType),
186
+ value: (0, tnumber_1.toTNumber)(v.value, coin.amountType),
218
187
  }))
219
188
  : await (0, fetchInputs_1.getTxInputs)({ txPrebuild, bitgo, coin, disableNetworking, reqId });
220
189
  // coins (doge) that can exceed number limits (and thus will use bigint) will have the `valueString` field
@@ -226,4 +195,4 @@ async function verifyTransaction(coin, bitgo, params) {
226
195
  }
227
196
  return true;
228
197
  }
229
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5VHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZml4ZWRTY3JpcHQvdmVyaWZ5VHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE2Q0EsOENBcUxDO0FBbE9ELGtEQUErQjtBQUMvQixvREFBdUI7QUFDdkIsZ0VBQXFDO0FBQ3JDLDhDQUE4RTtBQUM5RSx5REFBMkM7QUFJM0MsK0NBQWdIO0FBQ2hILGdEQUE4RDtBQUU5RCxNQUFNLEtBQUssR0FBRyxJQUFBLGVBQVUsRUFBQyx1Q0FBdUMsQ0FBQyxDQUFDO0FBRWxFOzs7O0dBSUc7QUFDSCxTQUFTLGFBQWEsQ0FBQyxnQkFBMEI7SUFDL0MsaUdBQWlHO0lBQ2pHLHFEQUFxRDtJQUNyRCxJQUFJLENBQUMsZ0JBQUMsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDcEQsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBQ0Qsa0ZBQWtGO0lBQ2xGLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0ksS0FBSyxVQUFVLGlCQUFpQixDQUNyQyxJQUFzQixFQUN0QixLQUFnQixFQUNoQixNQUF5QztJQUV6QyxNQUFNLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsWUFBWSxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFMUUsTUFBTSxhQUFhLEdBQUcsTUFBTSxnQ0FBcUIsQ0FBQyxtQkFBbUIsQ0FBQyxJQUE0QixFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBRWhILGdFQUFnRTtJQUNoRSxNQUFNLGVBQWUsR0FBRyxDQUFDLE9BQWUsRUFBUyxFQUFFO1FBQ2pELE1BQU0sSUFBSSxnQ0FBcUIs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VUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQVcsRUFBRSxDQUFTLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RHLE1BQU0sR0FBRyxHQUFHLFdBQVcsR0FBRyxZQUFZLENBQUM7SUFFdkMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDWixNQUFNLElBQUksS0FBSyxDQUNiLHVCQUF1QixZQUFZLDhDQUE4QyxXQUFXLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxDQUNwSCxDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBidWlsZERlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBCaXRHb0Jhc2UsIFR4SW50ZW50TWlzbWF0Y2hFcnJvciwgSUJhc2VDb2luIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcblxuaW1wb3J0IHsgQWJzdHJhY3RVdHhvQ29pbiwgVmVyaWZ5VHJhbnNhY3Rpb25PcHRpb25zIH0gZnJvbSAnLi4vLi4vYWJzdHJhY3RVdHhvQ29pbic7XG5pbXBvcnQgeyBPdXRwdXQsIFBhcnNlZFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgdmVyaWZ5Q3VzdG9tQ2hhbmdlS2V5U2lnbmF0dXJlcywgdmVyaWZ5S2V5U2lnbmF0dXJlLCB2ZXJpZnlVc2VyUHVibGljS2V5QXN5bmMgfSBmcm9tICcuLi8uLi92ZXJpZnlLZXknO1xuaW1wb3J0IHsgZ2V0UHNidFR4SW5wdXRzLCBnZXRUeElucHV0cyB9IGZyb20gJy4uL2ZldGNoSW5wdXRzJztcblxuY29uc3QgZGVidWcgPSBidWlsZERlYnVnKCdiaXRnbzphYnN0cmFjdC11dHhvOnZlcmlmeVRyYW5zYWN0aW9uJyk7XG5cbi8qKlxuICogR2V0IHRoZSBtYXhpbXVtIHBlcmNlbnRhZ2UgbGltaXQgZm9yIHBheS1hcy15b3UtZ28gb3V0cHV0c1xuICpcbiAqIEBwcm90ZWN0ZWRcbiAqL1xuZnVuY3Rpb24gZ2V0UGF5R29MaW1pdChhbGxvd1BheWdvT3V0cHV0PzogYm9vbGVhbik6IG51bWJlciB7XG4gIC8vIGFsbG93aW5nIHBheWdvIG91dHB1dHMgbmVlZHMgdG8gYmUgdGhlIGRlZmF1bHQgYmVoYXZpb3IsIHNvIG9ubHkgZGlzYWxsb3cgcGF5Z28gb3V0cHV0cyBpZiB0aGVcbiAgLy8gcmVsZXZhbnQgdmVyaWZpY2F0aW9uIG9wdGlvbiBpcyBib3RoIHNldCBhbmQgZmFsc2VcbiAgaWYgKCFfLmlzTmlsKGFsbG93UGF5Z29PdXRwdXQpICYmICFhbGxvd1BheWdvT3V0cHV0KSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cbiAgLy8gMTUwIGJhc2lzIHBvaW50cyBpcyB0aGUgYWJzb2x1dGUgcGVybWl0dGVkIG1heGltdW0gaWYgcGF5Z28gb3V0cHV0cyBhcmUgYWxsb3dlZFxuICByZXR1cm4gMC4wMTU7XG59XG5cbi8qKlxuICogVmVyaWZ5IHRoYXQgYSB0cmFuc2FjdGlvbiBwcmVidWlsZCBjb21wbGllcyB3aXRoIHRoZSBvcmlnaW5hbCBpbnRlbnRpb24gZm9yIGZpeGVkLXNjcmlwdCB3YWxsZXRzXG4gKlxuICogVGhpcyBpbXBsZW1lbnRhdGlvbiBoYW5kbGVzIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmb3IgdHJhZGl0aW9uYWwgVVRYTyBjb2lucyB1c2luZyBmaXhlZCBzY3JpcHRzXG4gKiAobm9uLWRlc2NyaXB0b3Igd2FsbGV0cykuIEl0IHZhbGlkYXRlcyBrZXljaGFpbnMsIHNpZ25hdHVyZXMsIG91dHB1dHMsIGFuZCBhbW91bnRzLlxuICpcbiAqIEBwYXJhbSBjb2luIC0gVGhlIFVUWE8gY29pbiBpbnN0YW5jZVxuICogQHBhcmFtIGJpdGdvIC0gQml0R28gQVBJIGluc3RhbmNlIGZvciBuZXR3b3JrIGNhbGxzXG4gKiBAcGFyYW0gcGFyYW1zIC0gVmVyaWZpY2F0aW9uIHBhcmFtZXRlcnNcbiAqIEBwYXJhbSBwYXJhbXMudHhQYXJhbXMgLSBUcmFuc2FjdGlvbiBwYXJhbWV0ZXJzIHBhc3NlZCB0byBzZW5kXG4gKiBAcGFyYW0gcGFyYW1zLnR4UHJlYnVpbGQgLSBQcmVidWlsZCBvYmplY3QgcmV0dXJuZWQgYnkgc2VydmVyXG4gKiBAcGFyYW0gcGFyYW1zLndhbGxldCAtIFdhbGxldCBvYmplY3QgdG8gb2J0YWluIGtleXMgdG8gdmVyaWZ5IGFnYWluc3RcbiAqIEBwYXJhbSBwYXJhbXMudmVyaWZpY2F0aW9uIC0gVmVyaWZpY2F0aW9uIG9wdGlvbnMgKGRpc2FibGVOZXR3b3JraW5nLCBrZXljaGFpbnMsIGFkZHJlc3NlcylcbiAqIEBwYXJhbSBwYXJhbXMucmVxSWQgLSBPcHRpb25hbCByZXF1ZXN0IElEIGZvciBsb2dnaW5nXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2ZXJpZmljYXRpb24gcGFzc2VzXG4gKiBAdGhyb3dzIHtUeEludGVudE1pc21hdGNoRXJyb3J9IGlmIHRyYW5zYWN0aW9uIHZhbGlkYXRpb24gZmFpbHNcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHZlcmlmeVRyYW5zYWN0aW9uPFROdW1iZXIgZXh0ZW5kcyBiaWdpbnQgfCBudW1iZXI+KFxuICBjb2luOiBBYnN0cmFjdFV0eG9Db2luLFxuICBiaXRnbzogQml0R29CYXNlLFxuICBwYXJhbXM6IFZlcmlmeVRyYW5zYWN0aW9uT3B0aW9uczxUTnVtYmVyPlxuKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGNvbnN0IHsgdHhQYXJhbXMsIHR4UHJlYnVpbGQsIHdhbGxldCwgdmVyaWZpY2F0aW9uID0ge30sIHJlcUlkIH0gPSBwYXJhbXM7XG5cbiAgY29uc3QgdHhFeHBsYW5hdGlvbiA9IGF3YWl0IFR4SW50ZW50TWlzbWF0Y2hFcnJvci50cnlHZXRUeEV4cGxhbmF0aW9uKGNvaW4gYXMgdW5rbm93biBhcyBJQmFzZUNvaW4sIHR4UHJlYnVpbGQpO1xuXG4gIC8vIEhlbHBlciB0byB0aHJvdyBUeEludGVudE1pc21hdGNoRXJyb3Igd2l0aCBjb25zaXN0ZW50IGNvbnRleHRcbiAgY29uc3QgdGhyb3dUeE1pc21hdGNoID0gKG1lc3NhZ2U6IHN0cmluZyk6IG5ldmVyID0+IHtcbiAgICB0aHJvdyBuZXcgVHhJbnRlbnRNaXNtYXRjaEVycm9yKG1lc3NhZ2UsIHJlcUlkLCBbdHhQYXJhbXNdLCB0eFByZWJ1aWxkLnR4SGV4LCB0eEV4cGxhbmF0aW9uKTtcbiAgfTtcblxuICBpZiAoIV8uaXNVbmRlZmluZWQodmVyaWZpY2F0aW9uLmRpc2FibGVOZXR3b3JraW5nKSAmJiAhXy5pc0Jvb2xlYW4odmVyaWZpY2F0aW9uLmRpc2FibGVOZXR3b3JraW5nKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3ZlcmlmaWNhdGlvbi5kaXNhYmxlTmV0d29ya2luZyBtdXN0IGJlIGEgYm9vbGVhbicpO1xuICB9XG4gIGNvbnN0IGlzUHNidCA9IHR4UHJlYnVpbGQudHhIZXggJiYgdXR4b2xpYi5iaXRnby5pc1BzYnQodHhQcmVidWlsZC50eEhleCk7XG4gIGlmIChpc1BzYnQgJiYgdHhQcmVidWlsZC50eEluZm8/LnVuc3BlbnRzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdzaG91bGQgbm90IGhhdmUgdW5zcGVudHMgaW4gdHhJbmZvIGZvciBwc2J0Jyk7XG4gIH1cbiAgY29uc3QgZGlzYWJsZU5ldHdvcmtpbmcgPSAhIXZlcmlmaWNhdGlvbi5kaXNhYmxlTmV0d29ya2luZztcbiAgY29uc3QgaXNCcmlkZ2luZyA9IHR4UGFyYW1zLnR5cGUgPT09ICdicmlkZ2luZyc7XG4gIGNvbnN0IHBhcnNlZFRyYW5zYWN0aW9uOiBQYXJzZWRUcmFuc2FjdGlvbjxUTnVtYmVyPiA9IGF3YWl0IGNvaW4ucGFyc2VUcmFuc2FjdGlvbjxUTnVtYmVyPih7XG4gICAgdHhQYXJhbXMsXG4gICAgdHhQcmVidWlsZCxcbiAgICB3YWxsZXQsXG4gICAgdmVyaWZpY2F0aW9uLFxuICAgIHJlcUlkLFxuICB9KTtcblxuICBjb25zdCBrZXljaGFpbnMgPSBwYXJzZWRUcmFuc2FjdGlvbi5rZXljaGFpbnM7XG5cbiAgLy8gdmVyaWZ5IHRoYXQgdGhlIGNsYWltZWQgdXNlciBwdWJsaWMga2V5IGNvcnJlc3BvbmRzIHRvIHRoZSB3YWxsZXQncyB1c2VyIHByaXZhdGUga2V5XG4gIGxldCB1c2VyUHVibGljS2V5VmVyaWZpZWQgPSBmYWxzZTtcbiAgdHJ5IHtcbiAgICAvLyB2ZXJpZnkgdGhlIHVzZXIgcHVibGljIGtleSBtYXRjaGVzIHRoZSBwcml2YXRlIGtleSAtIHRoaXMgd2lsbCB0aHJvdyBpZiB0aGVyZSBpcyBubyBtYXRjaFxuICAgIHVzZXJQdWJsaWNLZXlWZXJpZmllZCA9IGF3YWl0IHZlcmlmeVVzZXJQdWJsaWNLZXlBc3luYyhiaXRnbywge1xuICAgICAgdXNlcktleWNoYWluOiBrZXljaGFpbnMudXNlcixcbiAgICAgIGRpc2FibGVOZXR3b3JraW5nLFxuICAgICAgdHhQYXJhbXMsXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBkZWJ1ZygnZmFpbGVkIHRvIHZlcmlmeSB1c2VyIHB1YmxpYyBrZXkhJywgZSk7XG4gIH1cblxuICAvLyBsZXQncyB2ZXJpZnkgdGhlc2Uga2V5Y2hhaW5zXG4gIGNvbnN0IGtleVNpZ25hdHVyZXMgPSBwYXJzZWRUcmFuc2FjdGlvbi5rZXlTaWduYXR1cmVzO1xuICBpZiAoIV8uaXNFbXB0eShrZXlTaWduYXR1cmVzKSkge1xuICAgIGNvbnN0IHZlcmlmeSA9IChrZXksIHB1YikgPT4ge1xuICAgICAgaWYgKCFrZXljaGFpbnMudXNlciB8fCAha2V5Y2hhaW5zLnVzZXIucHViKSB7XG4gICAgICAgIHRocm93VHhNaXNtYXRjaCgnbWlzc2luZyB1c2VyIGtleWNoYWluJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdmVyaWZ5S2V5U2lnbmF0dXJlKHtcbiAgICAgICAgdXNlcktleWNoYWluOiBrZXljaGFpbnMudXNlciBhcyB7IHB1Yjogc3RyaW5nIH0sXG4gICAgICAgIGtleWNoYWluVG9WZXJpZnk6IGtleSxcbiAgICAgICAga2V5U2lnbmF0dXJlOiBwdWIsXG4gICAgICB9KTtcbiAgICB9O1xuICAgIGNvbnN0IGlzQmFja3VwS2V5U2lnbmF0dXJlVmFsaWQgPSB2ZXJpZnkoa2V5Y2hhaW5zLmJhY2t1cCwga2V5U2lnbmF0dXJlcy5iYWNrdXBQdWIpO1xuICAgIGNvbnN0IGlzQml0Z29LZXlTaWduYXR1cmVWYWxpZCA9IHZlcmlmeShrZXljaGFpbnMuYml0Z28sIGtleVNpZ25hdHVyZXMuYml0Z29QdWIpO1xuICAgIGlmICghaXNCYWNrdXBLZXlTaWduYXR1cmVWYWxpZCB8fCAhaXNCaXRnb0tleVNpZ25hdHVyZVZhbGlkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3NlY29uZGFyeSBwdWJsaWMga2V5IHNpZ25hdHVyZXMgaW52YWxpZCcpO1xuICAgIH1cbiAgICBkZWJ1Zygnc3VjY2Vzc2Z1bGx5IHZlcmlmaWVkIGJhY2t1cCBhbmQgYml0Z28ga2V5IHNpZ25hdHVyZXMnKTtcbiAgfSBlbHNlIGlmICghZGlzYWJsZU5ldHdvcmtpbmcpIHtcbiAgICAvLyB0aGVzZSBrZXlzIHdlcmUgb2J0YWluZWQgb25saW5lIGFuZCB0aGVpciBzaWduYXR1cmVzIHdlcmUgbm90IHZlcmlmaWVkXG4gICAgLy8gdGhpcyBjb3VsZCBiZSBkYW5nZXJvdXNcbiAgICBjb25zb2xlLmxvZygndW5zaWduZWQga2V5cyBvYnRhaW5lZCBvbmxpbmUgYXJlIGJlaW5nIHVzZWQgZm9yIGFkZHJlc3MgdmVyaWZpY2F0aW9uJyk7XG4gIH1cblxuICBpZiAocGFyc2VkVHJhbnNhY3Rpb24ubmVlZHNDdXN0b21DaGFuZ2VLZXlTaWduYXR1cmVWZXJpZmljYXRpb24pIHtcbiAgICBpZiAoIWtleWNoYWlucy51c2VyIHx8ICF1c2VyUHVibGljS2V5VmVyaWZpZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndHJhbnNhY3Rpb24gcmVxdWlyZXMgdmVyaWZpY2F0aW9uIG9mIHVzZXIgcHVibGljIGtleSwgYnV0IGl0IHdhcyB1bmFibGUgdG8gYmUgdmVyaWZpZWQnKTtcbiAgICB9XG4gICAgY29uc3QgY3VzdG9tQ2hhbmdlS2V5U2lnbmF0dXJlc1ZlcmlmaWVkID0gdmVyaWZ5Q3VzdG9tQ2hhbmdlS2V5U2lnbmF0dXJlcyhwYXJzZWRUcmFuc2FjdGlvbiwga2V5Y2hhaW5zLnVzZXIpO1xuICAgIGlmICghY3VzdG9tQ2hhbmdlS2V5U2lnbmF0dXJlc1ZlcmlmaWVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICd0cmFuc2FjdGlvbiByZXF1aXJlcyB2ZXJpZmljYXRpb24gb2YgY3VzdG9tIGNoYW5nZSBrZXkgc2lnbmF0dXJlcywgYnV0IHRoZXkgd2VyZSB1bmFibGUgdG8gYmUgdmVyaWZpZWQnXG4gICAgICApO1xuICAgIH1cbiAgICBkZWJ1Zygnc3VjY2Vzc2Z1bGx5IHZlcmlmaWVkIHVzZXIgcHVibGljIGtleSBhbmQgY3VzdG9tIGNoYW5nZSBrZXkgc2lnbmF0dXJlcycpO1xuICB9XG5cbiAgaWYgKHR4UGFyYW1zLnFyKSB7XG4gICAgY29uc3QgYWxsRXh0ZXJuYWxPdXRwdXRzID0gW1xuICAgICAgLi4ucGFyc2VkVHJhbnNhY3Rpb24uZXhwbGljaXRFeHRlcm5hbE91dHB1dHMsXG4gICAgICAuLi5wYXJzZWRUcmFuc2FjdGlvbi5pbXBsaWNpdEV4dGVybmFsT3V0cHV0cyxcbiAgICBdO1xuICAgIGlmIChhbGxFeHRlcm5hbE91dHB1dHMubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3dUeE1pc21hdGNoKCdxdWFudHVtLXJlc2lzdGFudCBzd2VlcCB0cmFuc2FjdGlvbnMgbXVzdCBvbmx5IGNvbnRhaW4gd2FsbGV0LWludGVybmFsIG91dHB1dHMnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBjb25zdCBtaXNzaW5nT3V0cHV0cyA9IHBhcnNlZFRyYW5zYWN0aW9uLm1pc3NpbmdPdXRwdXRzO1xuICBpZiAobWlzc2luZ091dHB1dHMubGVuZ3RoICE9PSAwKSB7XG4gICAgLy8gdGhlcmUgYXJlIHNvbWUgb3V0cHV0cyBpbiB0aGUgcmVjaXBpZW50cyBsaXN0IHRoYXQgaGF2ZSBub3QgbWFkZSBpdCBpbnRvIHRoZSBhY3R1YWwgdHJhbnNhY3Rpb25cbiAgICB0aHJvd1R4TWlzbWF0Y2goJ2V4cGVjdGVkIG91dHB1dHMgbWlzc2luZyBpbiB0cmFuc2FjdGlvbiBwcmVidWlsZCcpO1xuICB9XG5cbiAgY29uc3QgaW50ZW5kZWRFeHRlcm5hbFNwZW5kID0gcGFyc2VkVHJhbnNhY3Rpb24uZXhwbGljaXRFeHRlcm5hbFNwZW5kQW1vdW50O1xuXG4gIC8vIHRoaXMgaXMgYSBsaW1pdCB3ZSBpbXBvc2UgZm9yIHRoZSB0b3RhbCB2YWx1ZSB0aGF0IGlzIGFtZW5kZWQgdG8gdGhlIHRyYW5zYWN0aW9uIGJleW9uZCB3aGF0IHdhcyBvcmlnaW5hbGx5IGludGVuZGVkXG4gIGNvbnN0IHBheUFzWW91R29MaW1pdCA9IG5ldyBCaWdOdW1iZXIoZ2V0UGF5R29MaW1pdCh2ZXJpZmljYXRpb24uYWxsb3dQYXlnb091dHB1dCkpLm11bHRpcGxpZWRCeShcbiAgICBpbnRlbmRlZEV4dGVybmFsU3BlbmQudG9TdHJpbmcoKVxuICApO1xuXG4gIC8qXG4gIFNvbWUgZXhwbGFuYXRpb24gZm9yIHdoeSB3ZSdyZSBkb2luZyB3aGF0IHdlJ3JlIGRvaW5nOlxuICBTb21lIGN1c3RvbWVycyB3aWxsIGhhdmUgYW4gb3V0cHV0IHRvIEJpdEdvJ3MgUEFZR28gd2FsbGV0IGFkZGVkIHRvIHRoZWlyIHRyYW5zYWN0aW9uLCBhbmQgd2UgbmVlZCB0byBhY2NvdW50IGZvclxuICBpdCBoZXJlLiBUbyBwcm90ZWN0IHNvbWVvbmUgdGFtcGVyaW5nIHdpdGggdGhlIG91dHB1dCB0byBtYWtlIGl0IHNlbmQgbW9yZSB0aGFuIGl0IHNob3VsZCB0byBCaXRHbywgd2UgZGVmaW5lIGFcbiAgdGhyZXNob2xkIGZvciB0aGUgb3V0cHV0J3MgdmFsdWUgYWJvdmUgd2hpY2ggd2UnbGwgdGhyb3cgYW4gZXJyb3IsIGJlY2F1c2UgdGhlIHBheWdvIG91dHB1dCBzaG91bGQgbmV2ZXIgYmUgdGhhdFxuICBoaWdoLlxuICAgKi9cblxuICAvLyBtYWtlIHN1cmUgdGhhdCBhbGwgdGhlIGV4dHJhIGFkZHJlc3NlcyBhcmUgY2hhbmdlIGFkZHJlc3Nlc1xuICAvLyBnZXQgYWxsIHRoZSBhZGRpdGlvbmFsIGV4dGVybmFsIG91dHB1dHMgdGhlIHNlcnZlciBhZGRlZCBhbmQgY2FsY3VsYXRlIHRoZWlyIHZhbHVlc1xuICBjb25zdCBub25DaGFuZ2VBbW91bnQgPSBuZXcgQmlnTnVtYmVyKHBhcnNlZFRyYW5zYWN0aW9uLmltcGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudC50b1N0cmluZygpKTtcblxuICBkZWJ1ZyhcbiAgICAnSW50ZW5kZWQgc3BlbmQgaXMgJXMsIE5vbi1jaGFuZ2UgYW1vdW50IGlzICVzLCBwYXlnbyBsaW1pdCBpcyAlcycsXG4gICAgaW50ZW5kZWRFeHRlcm5hbFNwZW5kLnRvU3RyaW5nKCksXG4gICAgbm9uQ2hhbmdlQW1vdW50LnRvU3RyaW5nKCksXG4gICAgcGF5QXNZb3VHb0xpbWl0LnRvU3RyaW5nKClcbiAgKTtcblxuICAvLyBUaGVyZSBhcmUgdHdvIGluc3RhbmNlcyB3aGVyZSB3ZSB3aWxsIGdldCBpbnRvIHRoaXMgcG9pbnQgaGVyZVxuICBpZiAobm9uQ2hhbmdlQW1vdW50Lmd0KHBheUFzWW91R29MaW1pdCkpIHtcbiAgICBpZiAoaXNCcmlkZ2luZykge1xuICAgICAgLy8gVGhlIGltcGxpY2l0IGV4dGVybmFsIG91dHB1dCBpcyB0aGUgYnJpZGdlIGRlcG9zaXQgYWRkcmVzcyAoc2VlIG5vdGUgYWJvdmUpOyBpdCBoYXMgbm9cbiAgICAgIC8vIHJlY2lwaWVudCB0byBtYXRjaCBhZ2FpbnN0LCBzbyBpbnN0ZWFkIHZlcmlmeSB0aGUgdG90YWwgaW1wbGljaXQgZXh0ZXJuYWwgc3BlbmQgZXF1YWxzIHRoZVxuICAgICAgLy8gaW50ZW5kZWQgYnJpZGdlIGFtb3VudCBmcm9tIGJyaWRnaW5nUGFyYW1zLlxuICAgICAgY29uc3QgYnJpZGdlQW1vdW50ID0gdHhQYXJhbXMuYnJpZGdpbmdQYXJhbXM/LnNidGM/LmFtb3VudDtcbiAgICAgIGlmIChicmlkZ2VBbW91bnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvd1R4TWlzbWF0Y2goJ2JyaWRnaW5nIHRyYW5zYWN0aW9uIGlzIG1pc3NpbmcgYnJpZGdpbmdQYXJhbXMuc2J0Yy5hbW91bnQnKTtcbiAgICAgIH0gZWxzZSBpZiAoIW5vbkNoYW5nZUFtb3VudC5lcShicmlkZ2VBbW91bnQudG9TdHJpbmcoKSkpIHtcbiAgICAgICAgdGhyb3dUeE1pc21hdGNoKFxuICAgICAgICAgIGBicmlkZ2luZyBvdXRwdXQgYW1vdW50ICgke25vbkNoYW5nZUFtb3VudC50b1N0cmluZygpfSkgZG9lcyBub3QgbWF0Y2ggaW50ZW5kZWQgYnJpZGdlIGFtb3VudCAoJHticmlkZ2VBbW91bnR9KWBcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlYnVnKCd2ZXJpZmllZCBicmlkZ2luZyBvdXRwdXQgYW1vdW50IG1hdGNoZXMgYnJpZGdpbmdQYXJhbXMuc2J0Yy5hbW91bnQnKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGlzUHNidCAmJiBwYXJzZWRUcmFuc2FjdGlvbi5jdXN0b21DaGFuZ2UpIHtcbiAgICAgIC8vIEluIHRoZSBjYXNlIHRoYXQgd2UgaGF2ZSBhIGN1c3RvbSBjaGFuZ2UgYWRkcmVzcyBvbiBhIHdhbGxldCBhbmQgd2UgYXJlIGJ1aWxkaW5nIHRoZSB0cmFuc2FjdGlvblxuICAgICAgLy8gd2l0aCBhIFBTQlQsIHdlIGRvIG5vdCBoYXZlIHRoZSBtZXRhZGF0YSB0byB2ZXJpZnkgdGhlIGFkZHJlc3MgZnJvbSB0aGUgY3VzdG9tIGNoYW5nZSB3YWxsZXQsIG5vclxuICAgICAgLy8gY2FuIHdlIGZldGNoIHRoYXQgaW5mb3JtYXRpb24gZnJvbSB0aGUgb3RoZXIgd2FsbGV0IGJlY2F1c2Ugd2UgbWF5IG5vdCBoYXZlIHRoZSBjcmVkZW50aWFscy4gVGhlcmVmb3JlLFxuICAgICAgLy8gd2Ugd2lsbCBub3QgdGhyb3cgYW4gZXJyb3IgaGVyZSwgYnV0IHdlIHdpbGwgbG9nIGEgd2FybmluZy5cbiAgICAgIGRlYnVnKGBjYW5ub3QgdmVyaWZ5IHNvbWUgb2YgdGhlIGFkZHJlc3NlcyBiZWNhdXNlIGl0IGJlbG9uZ3MgdG8gYSBzZXBhcmF0ZSB3YWxsZXRgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gdGhlIGFkZGl0aW9uYWwgZXh0ZXJuYWwgb3V0cHV0cyBjYW4gb25seSBiZSBCaXRHbydzIHBheS1hcy15b3UtZ28gZmVlLCBidXQgd2UgY2Fubm90IHZlcmlmeSB0aGUgd2FsbGV0IGFkZHJlc3NcbiAgICAgIC8vIHRoZXJlIGFyZSBzb21lIGFkZHJlc3NlcyB0aGF0IGFyZSBvdXRzaWRlIHRoZSBzY29wZSBvZiBpbnRlbmRlZCByZWNpcGllbnRzIHRoYXQgYXJlIG5vdCBjaGFuZ2UgYWRkcmVzc2VzXG4gICAgICB0aHJvd1R4TWlzbWF0Y2goJ3ByZWJ1aWxkIGF0dGVtcHRzIHRvIHNwZW5kIHRvIHVuaW50ZW5kZWQgZXh0ZXJuYWwgcmVjaXBpZW50cycpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGFsbE91dHB1dHMgPSBwYXJzZWRUcmFuc2FjdGlvbi5vdXRwdXRzO1xuICBpZiAoIXR4UHJlYnVpbGQudHhIZXgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHR4UHJlYnVpbGQudHhIZXggbm90IHNldGApO1xuICB9XG4gIGNvbnN0IGlucHV0cyA9IGlzUHNidFxuICAgID8gZ2V0UHNidFR4SW5wdXRzKHR4UHJlYnVpbGQudHhIZXgsIGNvaW4ubmFtZSkubWFwKCh2KSA9PiAoe1xuICAgICAgICAuLi52LFxuICAgICAgICB2YWx1ZTogdXR4b2xpYi5iaXRnby50b1ROdW1iZXIodi52YWx1ZSwgY29pbi5hbW91bnRUeXBlKSxcbiAgICAgIH0pKVxuICAgIDogYXdhaXQgZ2V0VHhJbnB1dHMoeyB0eFByZWJ1aWxkLCBiaXRnbywgY29pbiwgZGlzYWJsZU5ldHdvcmtpbmcsIHJlcUlkIH0pO1xuICAvLyBjb2lucyAoZG9nZSkgdGhhdCBjYW4gZXhjZWVkIG51bWJlciBsaW1pdHMgKGFuZCB0aHVzIHdpbGwgdXNlIGJpZ2ludCkgd2lsbCBoYXZlIHRoZSBgdmFsdWVTdHJpbmdgIGZpZWxkXG4gIGNvbnN0IGlucHV0QW1vdW50ID0gaW5wdXRzLnJlZHVjZShcbiAgICAoc3VtOiBiaWdpbnQsIGkpID0+IHN1bSArIEJpZ0ludChjb2luLmFtb3VudFR5cGUgPT09ICdiaWdpbnQnID8gaS52YWx1ZVN0cmluZyA6IGkudmFsdWUpLFxuICAgIEJpZ0ludCgwKVxuICApO1xuICBjb25zdCBvdXRwdXRBbW91bnQgPSBhbGxPdXRwdXRzLnJlZHVjZSgoc3VtOiBiaWdpbnQsIG86IE91dHB1dCkgPT4gc3VtICsgQmlnSW50KG8uYW1vdW50KSwgQmlnSW50KDApKTtcbiAgY29uc3QgZmVlID0gaW5wdXRBbW91bnQgLSBvdXRwdXRBbW91bnQ7XG5cbiAgaWYgKGZlZSA8IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgYXR0ZW1wdGluZyB0byBzcGVuZCAke291dHB1dEFtb3VudH0gc2F0b3NoaXMsIHdoaWNoIGV4Y2VlZHMgdGhlIGlucHV0IGFtb3VudCAoJHtpbnB1dEFtb3VudH0gc2F0b3NoaXMpIGJ5ICR7LWZlZX1gXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuIl19
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5VHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZml4ZWRTY3JpcHQvdmVyaWZ5VHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUErQ0EsOENBcUxDO0FBcE9ELGtEQUErQjtBQUMvQixvREFBdUI7QUFDdkIsZ0VBQXFDO0FBQ3JDLDhDQUE4RTtBQUM5RSxnREFBZ0Q7QUFJaEQsMkNBQTBDO0FBQzFDLHNDQUFxRDtBQUNyRCwrQ0FBZ0g7QUFDaEgsZ0RBQThEO0FBRTlELE1BQU0sS0FBSyxHQUFHLElBQUEsZUFBVSxFQUFDLHVDQUF1QyxDQUFDLENBQUM7QUFFbEU7Ozs7R0FJRztBQUNILFNBQVMsYUFBYSxDQUFDLGdCQUEwQjtJQUMvQyxpR0FBaUc7SUFDakcscURBQXFEO0lBQ3JELElBQUksQ0FBQyxnQkFBQyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUNwRCxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFDRCxrRkFBa0Y7SUFDbEYsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSSxLQUFLLFVBQVUsaUJBQWlCLENBQ3JDLElBQXNCLEVBQ3RCLEtBQWdCLEVBQ2hCLE1BQXlDO0lBRXpDLE1BQU0sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxZQUFZLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUUxRSxNQUFNLGFBQWEsR0FBRyxNQUFNLGdDQUFxQixDQUFDLG1CQUFtQixDQUFDLElBQTRCLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFFaEgsZ0VBQWdFO0lBQ2hFLE1BQU0sZUFBZSxHQUFHLENBQUMsT0FBZSxFQUFTLEVBQUU7UUFDakQsTUFBTSxJQUFJLGdDQUFxQixDQUFDLE9B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RixNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBVyxFQUFFLENBQVMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEcsTUFBTSxHQUFHLEdBQUcsV0FBVyxHQUFHLFlBQVksQ0FBQztJQUV2QyxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNaLE1BQU0sSUFBSSxLQUFLLENBQ2IsdUJBQXVCLFlBQVksOENBQThDLFdBQVcsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQ3BILENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJ1aWxkRGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IEJpdEdvQmFzZSwgVHhJbnRlbnRNaXNtYXRjaEVycm9yLCBJQmFzZUNvaW4gfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgaGFzUHNidE1hZ2ljIH0gZnJvbSAnQGJpdGdvL3dhc20tdXR4byc7XG5cbmltcG9ydCB7IEFic3RyYWN0VXR4b0NvaW4sIFZlcmlmeVRyYW5zYWN0aW9uT3B0aW9ucyB9IGZyb20gJy4uLy4uL2Fic3RyYWN0VXR4b0NvaW4nO1xuaW1wb3J0IHsgT3V0cHV0LCBQYXJzZWRUcmFuc2FjdGlvbiB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IHRvVE51bWJlciB9IGZyb20gJy4uLy4uL3RudW1iZXInO1xuaW1wb3J0IHsgc3RyaW5nVG9CdWZmZXJUcnlGb3JtYXRzIH0gZnJvbSAnLi4vZGVjb2RlJztcbmltcG9ydCB7IHZlcmlmeUN1c3RvbUNoYW5nZUtleVNpZ25hdHVyZXMsIHZlcmlmeUtleVNpZ25hdHVyZSwgdmVyaWZ5VXNlclB1YmxpY0tleUFzeW5jIH0gZnJvbSAnLi4vLi4vdmVyaWZ5S2V5JztcbmltcG9ydCB7IGdldFBzYnRUeElucHV0cywgZ2V0VHhJbnB1dHMgfSBmcm9tICcuLi9mZXRjaElucHV0cyc7XG5cbmNvbnN0IGRlYnVnID0gYnVpbGREZWJ1ZygnYml0Z286YWJzdHJhY3QtdXR4bzp2ZXJpZnlUcmFuc2FjdGlvbicpO1xuXG4vKipcbiAqIEdldCB0aGUgbWF4aW11bSBwZXJjZW50YWdlIGxpbWl0IGZvciBwYXktYXMteW91LWdvIG91dHB1dHNcbiAqXG4gKiBAcHJvdGVjdGVkXG4gKi9cbmZ1bmN0aW9uIGdldFBheUdvTGltaXQoYWxsb3dQYXlnb091dHB1dD86IGJvb2xlYW4pOiBudW1iZXIge1xuICAvLyBhbGxvd2luZyBwYXlnbyBvdXRwdXRzIG5lZWRzIHRvIGJlIHRoZSBkZWZhdWx0IGJlaGF2aW9yLCBzbyBvbmx5IGRpc2FsbG93IHBheWdvIG91dHB1dHMgaWYgdGhlXG4gIC8vIHJlbGV2YW50IHZlcmlmaWNhdGlvbiBvcHRpb24gaXMgYm90aCBzZXQgYW5kIGZhbHNlXG4gIGlmICghXy5pc05pbChhbGxvd1BheWdvT3V0cHV0KSAmJiAhYWxsb3dQYXlnb091dHB1dCkge1xuICAgIHJldHVybiAwO1xuICB9XG4gIC8vIDE1MCBiYXNpcyBwb2ludHMgaXMgdGhlIGFic29sdXRlIHBlcm1pdHRlZCBtYXhpbXVtIGlmIHBheWdvIG91dHB1dHMgYXJlIGFsbG93ZWRcbiAgcmV0dXJuIDAuMDE1O1xufVxuXG4vKipcbiAqIFZlcmlmeSB0aGF0IGEgdHJhbnNhY3Rpb24gcHJlYnVpbGQgY29tcGxpZXMgd2l0aCB0aGUgb3JpZ2luYWwgaW50ZW50aW9uIGZvciBmaXhlZC1zY3JpcHQgd2FsbGV0c1xuICpcbiAqIFRoaXMgaW1wbGVtZW50YXRpb24gaGFuZGxlcyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZm9yIHRyYWRpdGlvbmFsIFVUWE8gY29pbnMgdXNpbmcgZml4ZWQgc2NyaXB0c1xuICogKG5vbi1kZXNjcmlwdG9yIHdhbGxldHMpLiBJdCB2YWxpZGF0ZXMga2V5Y2hhaW5zLCBzaWduYXR1cmVzLCBvdXRwdXRzLCBhbmQgYW1vdW50cy5cbiAqXG4gKiBAcGFyYW0gY29pbiAtIFRoZSBVVFhPIGNvaW4gaW5zdGFuY2VcbiAqIEBwYXJhbSBiaXRnbyAtIEJpdEdvIEFQSSBpbnN0YW5jZSBmb3IgbmV0d29yayBjYWxsc1xuICogQHBhcmFtIHBhcmFtcyAtIFZlcmlmaWNhdGlvbiBwYXJhbWV0ZXJzXG4gKiBAcGFyYW0gcGFyYW1zLnR4UGFyYW1zIC0gVHJhbnNhY3Rpb24gcGFyYW1ldGVycyBwYXNzZWQgdG8gc2VuZFxuICogQHBhcmFtIHBhcmFtcy50eFByZWJ1aWxkIC0gUHJlYnVpbGQgb2JqZWN0IHJldHVybmVkIGJ5IHNlcnZlclxuICogQHBhcmFtIHBhcmFtcy53YWxsZXQgLSBXYWxsZXQgb2JqZWN0IHRvIG9idGFpbiBrZXlzIHRvIHZlcmlmeSBhZ2FpbnN0XG4gKiBAcGFyYW0gcGFyYW1zLnZlcmlmaWNhdGlvbiAtIFZlcmlmaWNhdGlvbiBvcHRpb25zIChkaXNhYmxlTmV0d29ya2luZywga2V5Y2hhaW5zLCBhZGRyZXNzZXMpXG4gKiBAcGFyYW0gcGFyYW1zLnJlcUlkIC0gT3B0aW9uYWwgcmVxdWVzdCBJRCBmb3IgbG9nZ2luZ1xuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmVyaWZpY2F0aW9uIHBhc3Nlc1xuICogQHRocm93cyB7VHhJbnRlbnRNaXNtYXRjaEVycm9yfSBpZiB0cmFuc2FjdGlvbiB2YWxpZGF0aW9uIGZhaWxzXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB2ZXJpZnlUcmFuc2FjdGlvbjxUTnVtYmVyIGV4dGVuZHMgYmlnaW50IHwgbnVtYmVyPihcbiAgY29pbjogQWJzdHJhY3RVdHhvQ29pbixcbiAgYml0Z286IEJpdEdvQmFzZSxcbiAgcGFyYW1zOiBWZXJpZnlUcmFuc2FjdGlvbk9wdGlvbnM8VE51bWJlcj5cbik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBjb25zdCB7IHR4UGFyYW1zLCB0eFByZWJ1aWxkLCB3YWxsZXQsIHZlcmlmaWNhdGlvbiA9IHt9LCByZXFJZCB9ID0gcGFyYW1zO1xuXG4gIGNvbnN0IHR4RXhwbGFuYXRpb24gPSBhd2FpdCBUeEludGVudE1pc21hdGNoRXJyb3IudHJ5R2V0VHhFeHBsYW5hdGlvbihjb2luIGFzIHVua25vd24gYXMgSUJhc2VDb2luLCB0eFByZWJ1aWxkKTtcblxuICAvLyBIZWxwZXIgdG8gdGhyb3cgVHhJbnRlbnRNaXNtYXRjaEVycm9yIHdpdGggY29uc2lzdGVudCBjb250ZXh0XG4gIGNvbnN0IHRocm93VHhNaXNtYXRjaCA9IChtZXNzYWdlOiBzdHJpbmcpOiBuZXZlciA9PiB7XG4gICAgdGhyb3cgbmV3IFR4SW50ZW50TWlzbWF0Y2hFcnJvcihtZXNzYWdlLCByZXFJZCwgW3R4UGFyYW1zXSwgdHhQcmVidWlsZC50eEhleCwgdHhFeHBsYW5hdGlvbik7XG4gIH07XG5cbiAgaWYgKCFfLmlzVW5kZWZpbmVkKHZlcmlmaWNhdGlvbi5kaXNhYmxlTmV0d29ya2luZykgJiYgIV8uaXNCb29sZWFuKHZlcmlmaWNhdGlvbi5kaXNhYmxlTmV0d29ya2luZykpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCd2ZXJpZmljYXRpb24uZGlzYWJsZU5ldHdvcmtpbmcgbXVzdCBiZSBhIGJvb2xlYW4nKTtcbiAgfVxuICBjb25zdCBpc1BzYnQgPSB0eFByZWJ1aWxkLnR4SGV4ICYmIGhhc1BzYnRNYWdpYyhzdHJpbmdUb0J1ZmZlclRyeUZvcm1hdHModHhQcmVidWlsZC50eEhleCwgWydoZXgnLCAnYmFzZTY0J10pKTtcbiAgaWYgKGlzUHNidCAmJiB0eFByZWJ1aWxkLnR4SW5mbz8udW5zcGVudHMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3Nob3VsZCBub3QgaGF2ZSB1bnNwZW50cyBpbiB0eEluZm8gZm9yIHBzYnQnKTtcbiAgfVxuICBjb25zdCBkaXNhYmxlTmV0d29ya2luZyA9ICEhdmVyaWZpY2F0aW9uLmRpc2FibGVOZXR3b3JraW5nO1xuICBjb25zdCBpc0JyaWRnaW5nID0gdHhQYXJhbXMudHlwZSA9PT0gJ2JyaWRnaW5nJztcbiAgY29uc3QgcGFyc2VkVHJhbnNhY3Rpb246IFBhcnNlZFRyYW5zYWN0aW9uPFROdW1iZXI+ID0gYXdhaXQgY29pbi5wYXJzZVRyYW5zYWN0aW9uPFROdW1iZXI+KHtcbiAgICB0eFBhcmFtcyxcbiAgICB0eFByZWJ1aWxkLFxuICAgIHdhbGxldCxcbiAgICB2ZXJpZmljYXRpb24sXG4gICAgcmVxSWQsXG4gIH0pO1xuXG4gIGNvbnN0IGtleWNoYWlucyA9IHBhcnNlZFRyYW5zYWN0aW9uLmtleWNoYWlucztcblxuICAvLyB2ZXJpZnkgdGhhdCB0aGUgY2xhaW1lZCB1c2VyIHB1YmxpYyBrZXkgY29ycmVzcG9uZHMgdG8gdGhlIHdhbGxldCdzIHVzZXIgcHJpdmF0ZSBrZXlcbiAgbGV0IHVzZXJQdWJsaWNLZXlWZXJpZmllZCA9IGZhbHNlO1xuICB0cnkge1xuICAgIC8vIHZlcmlmeSB0aGUgdXNlciBwdWJsaWMga2V5IG1hdGNoZXMgdGhlIHByaXZhdGUga2V5IC0gdGhpcyB3aWxsIHRocm93IGlmIHRoZXJlIGlzIG5vIG1hdGNoXG4gICAgdXNlclB1YmxpY0tleVZlcmlmaWVkID0gYXdhaXQgdmVyaWZ5VXNlclB1YmxpY0tleUFzeW5jKGJpdGdvLCB7XG4gICAgICB1c2VyS2V5Y2hhaW46IGtleWNoYWlucy51c2VyLFxuICAgICAgZGlzYWJsZU5ldHdvcmtpbmcsXG4gICAgICB0eFBhcmFtcyxcbiAgICB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGRlYnVnKCdmYWlsZWQgdG8gdmVyaWZ5IHVzZXIgcHVibGljIGtleSEnLCBlKTtcbiAgfVxuXG4gIC8vIGxldCdzIHZlcmlmeSB0aGVzZSBrZXljaGFpbnNcbiAgY29uc3Qga2V5U2lnbmF0dXJlcyA9IHBhcnNlZFRyYW5zYWN0aW9uLmtleVNpZ25hdHVyZXM7XG4gIGlmICghXy5pc0VtcHR5KGtleVNpZ25hdHVyZXMpKSB7XG4gICAgY29uc3QgdmVyaWZ5ID0gKGtleSwgcHViKSA9PiB7XG4gICAgICBpZiAoIWtleWNoYWlucy51c2VyIHx8ICFrZXljaGFpbnMudXNlci5wdWIpIHtcbiAgICAgICAgdGhyb3dUeE1pc21hdGNoKCdtaXNzaW5nIHVzZXIga2V5Y2hhaW4nKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2ZXJpZnlLZXlTaWduYXR1cmUoe1xuICAgICAgICB1c2VyS2V5Y2hhaW46IGtleWNoYWlucy51c2VyIGFzIHsgcHViOiBzdHJpbmcgfSxcbiAgICAgICAga2V5Y2hhaW5Ub1ZlcmlmeToga2V5LFxuICAgICAgICBrZXlTaWduYXR1cmU6IHB1YixcbiAgICAgIH0pO1xuICAgIH07XG4gICAgY29uc3QgaXNCYWNrdXBLZXlTaWduYXR1cmVWYWxpZCA9IHZlcmlmeShrZXljaGFpbnMuYmFja3VwLCBrZXlTaWduYXR1cmVzLmJhY2t1cFB1Yik7XG4gICAgY29uc3QgaXNCaXRnb0tleVNpZ25hdHVyZVZhbGlkID0gdmVyaWZ5KGtleWNoYWlucy5iaXRnbywga2V5U2lnbmF0dXJlcy5iaXRnb1B1Yik7XG4gICAgaWYgKCFpc0JhY2t1cEtleVNpZ25hdHVyZVZhbGlkIHx8ICFpc0JpdGdvS2V5U2lnbmF0dXJlVmFsaWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignc2Vjb25kYXJ5IHB1YmxpYyBrZXkgc2lnbmF0dXJlcyBpbnZhbGlkJyk7XG4gICAgfVxuICAgIGRlYnVnKCdzdWNjZXNzZnVsbHkgdmVyaWZpZWQgYmFja3VwIGFuZCBiaXRnbyBrZXkgc2lnbmF0dXJlcycpO1xuICB9IGVsc2UgaWYgKCFkaXNhYmxlTmV0d29ya2luZykge1xuICAgIC8vIHRoZXNlIGtleXMgd2VyZSBvYnRhaW5lZCBvbmxpbmUgYW5kIHRoZWlyIHNpZ25hdHVyZXMgd2VyZSBub3QgdmVyaWZpZWRcbiAgICAvLyB0aGlzIGNvdWxkIGJlIGRhbmdlcm91c1xuICAgIGNvbnNvbGUubG9nKCd1bnNpZ25lZCBrZXlzIG9idGFpbmVkIG9ubGluZSBhcmUgYmVpbmcgdXNlZCBmb3IgYWRkcmVzcyB2ZXJpZmljYXRpb24nKTtcbiAgfVxuXG4gIGlmIChwYXJzZWRUcmFuc2FjdGlvbi5uZWVkc0N1c3RvbUNoYW5nZUtleVNpZ25hdHVyZVZlcmlmaWNhdGlvbikge1xuICAgIGlmICgha2V5Y2hhaW5zLnVzZXIgfHwgIXVzZXJQdWJsaWNLZXlWZXJpZmllZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd0cmFuc2FjdGlvbiByZXF1aXJlcyB2ZXJpZmljYXRpb24gb2YgdXNlciBwdWJsaWMga2V5LCBidXQgaXQgd2FzIHVuYWJsZSB0byBiZSB2ZXJpZmllZCcpO1xuICAgIH1cbiAgICBjb25zdCBjdXN0b21DaGFuZ2VLZXlTaWduYXR1cmVzVmVyaWZpZWQgPSB2ZXJpZnlDdXN0b21DaGFuZ2VLZXlTaWduYXR1cmVzKHBhcnNlZFRyYW5zYWN0aW9uLCBrZXljaGFpbnMudXNlcik7XG4gICAgaWYgKCFjdXN0b21DaGFuZ2VLZXlTaWduYXR1cmVzVmVyaWZpZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ3RyYW5zYWN0aW9uIHJlcXVpcmVzIHZlcmlmaWNhdGlvbiBvZiBjdXN0b20gY2hhbmdlIGtleSBzaWduYXR1cmVzLCBidXQgdGhleSB3ZXJlIHVuYWJsZSB0byBiZSB2ZXJpZmllZCdcbiAgICAgICk7XG4gICAgfVxuICAgIGRlYnVnKCdzdWNjZXNzZnVsbHkgdmVyaWZpZWQgdXNlciBwdWJsaWMga2V5IGFuZCBjdXN0b20gY2hhbmdlIGtleSBzaWduYXR1cmVzJyk7XG4gIH1cblxuICBpZiAodHhQYXJhbXMucXIpIHtcbiAgICBjb25zdCBhbGxFeHRlcm5hbE91dHB1dHMgPSBbXG4gICAgICAuLi5wYXJzZWRUcmFuc2FjdGlvbi5leHBsaWNpdEV4dGVybmFsT3V0cHV0cyxcbiAgICAgIC4uLnBhcnNlZFRyYW5zYWN0aW9uLmltcGxpY2l0RXh0ZXJuYWxPdXRwdXRzLFxuICAgIF07XG4gICAgaWYgKGFsbEV4dGVybmFsT3V0cHV0cy5sZW5ndGggPiAwKSB7XG4gICAgICB0aHJvd1R4TWlzbWF0Y2goJ3F1YW50dW0tcmVzaXN0YW50IHN3ZWVwIHRyYW5zYWN0aW9ucyBtdXN0IG9ubHkgY29udGFpbiB3YWxsZXQtaW50ZXJuYWwgb3V0cHV0cycpO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGNvbnN0IG1pc3NpbmdPdXRwdXRzID0gcGFyc2VkVHJhbnNhY3Rpb24ubWlzc2luZ091dHB1dHM7XG4gIGlmIChtaXNzaW5nT3V0cHV0cy5sZW5ndGggIT09IDApIHtcbiAgICAvLyB0aGVyZSBhcmUgc29tZSBvdXRwdXRzIGluIHRoZSByZWNpcGllbnRzIGxpc3QgdGhhdCBoYXZlIG5vdCBtYWRlIGl0IGludG8gdGhlIGFjdHVhbCB0cmFuc2FjdGlvblxuICAgIHRocm93VHhNaXNtYXRjaCgnZXhwZWN0ZWQgb3V0cHV0cyBtaXNzaW5nIGluIHRyYW5zYWN0aW9uIHByZWJ1aWxkJyk7XG4gIH1cblxuICBjb25zdCBpbnRlbmRlZEV4dGVybmFsU3BlbmQgPSBwYXJzZWRUcmFuc2FjdGlvbi5leHBsaWNpdEV4dGVybmFsU3BlbmRBbW91bnQ7XG5cbiAgLy8gdGhpcyBpcyBhIGxpbWl0IHdlIGltcG9zZSBmb3IgdGhlIHRvdGFsIHZhbHVlIHRoYXQgaXMgYW1lbmRlZCB0byB0aGUgdHJhbnNhY3Rpb24gYmV5b25kIHdoYXQgd2FzIG9yaWdpbmFsbHkgaW50ZW5kZWRcbiAgY29uc3QgcGF5QXNZb3VHb0xpbWl0ID0gbmV3IEJpZ051bWJlcihnZXRQYXlHb0xpbWl0KHZlcmlmaWNhdGlvbi5hbGxvd1BheWdvT3V0cHV0KSkubXVsdGlwbGllZEJ5KFxuICAgIGludGVuZGVkRXh0ZXJuYWxTcGVuZC50b1N0cmluZygpXG4gICk7XG5cbiAgLypcbiAgU29tZSBleHBsYW5hdGlvbiBmb3Igd2h5IHdlJ3JlIGRvaW5nIHdoYXQgd2UncmUgZG9pbmc6XG4gIFNvbWUgY3VzdG9tZXJzIHdpbGwgaGF2ZSBhbiBvdXRwdXQgdG8gQml0R28ncyBQQVlHbyB3YWxsZXQgYWRkZWQgdG8gdGhlaXIgdHJhbnNhY3Rpb24sIGFuZCB3ZSBuZWVkIHRvIGFjY291bnQgZm9yXG4gIGl0IGhlcmUuIFRvIHByb3RlY3Qgc29tZW9uZSB0YW1wZXJpbmcgd2l0aCB0aGUgb3V0cHV0IHRvIG1ha2UgaXQgc2VuZCBtb3JlIHRoYW4gaXQgc2hvdWxkIHRvIEJpdEdvLCB3ZSBkZWZpbmUgYVxuICB0aHJlc2hvbGQgZm9yIHRoZSBvdXRwdXQncyB2YWx1ZSBhYm92ZSB3aGljaCB3ZSdsbCB0aHJvdyBhbiBlcnJvciwgYmVjYXVzZSB0aGUgcGF5Z28gb3V0cHV0IHNob3VsZCBuZXZlciBiZSB0aGF0XG4gIGhpZ2guXG4gICAqL1xuXG4gIC8vIG1ha2Ugc3VyZSB0aGF0IGFsbCB0aGUgZXh0cmEgYWRkcmVzc2VzIGFyZSBjaGFuZ2UgYWRkcmVzc2VzXG4gIC8vIGdldCBhbGwgdGhlIGFkZGl0aW9uYWwgZXh0ZXJuYWwgb3V0cHV0cyB0aGUgc2VydmVyIGFkZGVkIGFuZCBjYWxjdWxhdGUgdGhlaXIgdmFsdWVzXG4gIGNvbnN0IG5vbkNoYW5nZUFtb3VudCA9IG5ldyBCaWdOdW1iZXIocGFyc2VkVHJhbnNhY3Rpb24uaW1wbGljaXRFeHRlcm5hbFNwZW5kQW1vdW50LnRvU3RyaW5nKCkpO1xuXG4gIGRlYnVnKFxuICAgICdJbnRlbmRlZCBzcGVuZCBpcyAlcywgTm9uLWNoYW5nZSBhbW91bnQgaXMgJXMsIHBheWdvIGxpbWl0IGlzICVzJyxcbiAgICBpbnRlbmRlZEV4dGVybmFsU3BlbmQudG9TdHJpbmcoKSxcbiAgICBub25DaGFuZ2VBbW91bnQudG9TdHJpbmcoKSxcbiAgICBwYXlBc1lvdUdvTGltaXQudG9TdHJpbmcoKVxuICApO1xuXG4gIC8vIFRoZXJlIGFyZSB0d28gaW5zdGFuY2VzIHdoZXJlIHdlIHdpbGwgZ2V0IGludG8gdGhpcyBwb2ludCBoZXJlXG4gIGlmIChub25DaGFuZ2VBbW91bnQuZ3QocGF5QXNZb3VHb0xpbWl0KSkge1xuICAgIGlmIChpc0JyaWRnaW5nKSB7XG4gICAgICAvLyBUaGUgaW1wbGljaXQgZXh0ZXJuYWwgb3V0cHV0IGlzIHRoZSBicmlkZ2UgZGVwb3NpdCBhZGRyZXNzIChzZWUgbm90ZSBhYm92ZSk7IGl0IGhhcyBub1xuICAgICAgLy8gcmVjaXBpZW50IHRvIG1hdGNoIGFnYWluc3QsIHNvIGluc3RlYWQgdmVyaWZ5IHRoZSB0b3RhbCBpbXBsaWNpdCBleHRlcm5hbCBzcGVuZCBlcXVhbHMgdGhlXG4gICAgICAvLyBpbnRlbmRlZCBicmlkZ2UgYW1vdW50IGZyb20gYnJpZGdpbmdQYXJhbXMuXG4gICAgICBjb25zdCBicmlkZ2VBbW91bnQgPSB0eFBhcmFtcy5icmlkZ2luZ1BhcmFtcz8uc2J0Yz8uYW1vdW50O1xuICAgICAgaWYgKGJyaWRnZUFtb3VudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93VHhNaXNtYXRjaCgnYnJpZGdpbmcgdHJhbnNhY3Rpb24gaXMgbWlzc2luZyBicmlkZ2luZ1BhcmFtcy5zYnRjLmFtb3VudCcpO1xuICAgICAgfSBlbHNlIGlmICghbm9uQ2hhbmdlQW1vdW50LmVxKGJyaWRnZUFtb3VudC50b1N0cmluZygpKSkge1xuICAgICAgICB0aHJvd1R4TWlzbWF0Y2goXG4gICAgICAgICAgYGJyaWRnaW5nIG91dHB1dCBhbW91bnQgKCR7bm9uQ2hhbmdlQW1vdW50LnRvU3RyaW5nKCl9KSBkb2VzIG5vdCBtYXRjaCBpbnRlbmRlZCBicmlkZ2UgYW1vdW50ICgke2JyaWRnZUFtb3VudH0pYFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGVidWcoJ3ZlcmlmaWVkIGJyaWRnaW5nIG91dHB1dCBhbW91bnQgbWF0Y2hlcyBicmlkZ2luZ1BhcmFtcy5zYnRjLmFtb3VudCcpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaXNQc2J0ICYmIHBhcnNlZFRyYW5zYWN0aW9uLmN1c3RvbUNoYW5nZSkge1xuICAgICAgLy8gSW4gdGhlIGNhc2UgdGhhdCB3ZSBoYXZlIGEgY3VzdG9tIGNoYW5nZSBhZGRyZXNzIG9uIGEgd2FsbGV0IGFuZCB3ZSBhcmUgYnVpbGRpbmcgdGhlIHRyYW5zYWN0aW9uXG4gICAgICAvLyB3aXRoIGEgUFNCVCwgd2UgZG8gbm90IGhhdmUgdGhlIG1ldGFkYXRhIHRvIHZlcmlmeSB0aGUgYWRkcmVzcyBmcm9tIHRoZSBjdXN0b20gY2hhbmdlIHdhbGxldCwgbm9yXG4gICAgICAvLyBjYW4gd2UgZmV0Y2ggdGhhdCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBvdGhlciB3YWxsZXQgYmVjYXVzZSB3ZSBtYXkgbm90IGhhdmUgdGhlIGNyZWRlbnRpYWxzLiBUaGVyZWZvcmUsXG4gICAgICAvLyB3ZSB3aWxsIG5vdCB0aHJvdyBhbiBlcnJvciBoZXJlLCBidXQgd2Ugd2lsbCBsb2cgYSB3YXJuaW5nLlxuICAgICAgZGVidWcoYGNhbm5vdCB2ZXJpZnkgc29tZSBvZiB0aGUgYWRkcmVzc2VzIGJlY2F1c2UgaXQgYmVsb25ncyB0byBhIHNlcGFyYXRlIHdhbGxldGApO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyB0aGUgYWRkaXRpb25hbCBleHRlcm5hbCBvdXRwdXRzIGNhbiBvbmx5IGJlIEJpdEdvJ3MgcGF5LWFzLXlvdS1nbyBmZWUsIGJ1dCB3ZSBjYW5ub3QgdmVyaWZ5IHRoZSB3YWxsZXQgYWRkcmVzc1xuICAgICAgLy8gdGhlcmUgYXJlIHNvbWUgYWRkcmVzc2VzIHRoYXQgYXJlIG91dHNpZGUgdGhlIHNjb3BlIG9mIGludGVuZGVkIHJlY2lwaWVudHMgdGhhdCBhcmUgbm90IGNoYW5nZSBhZGRyZXNzZXNcbiAgICAgIHRocm93VHhNaXNtYXRjaCgncHJlYnVpbGQgYXR0ZW1wdHMgdG8gc3BlbmQgdG8gdW5pbnRlbmRlZCBleHRlcm5hbCByZWNpcGllbnRzJyk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgYWxsT3V0cHV0cyA9IHBhcnNlZFRyYW5zYWN0aW9uLm91dHB1dHM7XG4gIGlmICghdHhQcmVidWlsZC50eEhleCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgdHhQcmVidWlsZC50eEhleCBub3Qgc2V0YCk7XG4gIH1cbiAgY29uc3QgaW5wdXRzID0gaXNQc2J0XG4gICAgPyBnZXRQc2J0VHhJbnB1dHModHhQcmVidWlsZC50eEhleCwgY29pbi5uYW1lKS5tYXAoKHYpID0+ICh7XG4gICAgICAgIC4uLnYsXG4gICAgICAgIHZhbHVlOiB0b1ROdW1iZXIodi52YWx1ZSwgY29pbi5hbW91bnRUeXBlKSxcbiAgICAgIH0pKVxuICAgIDogYXdhaXQgZ2V0VHhJbnB1dHMoeyB0eFByZWJ1aWxkLCBiaXRnbywgY29pbiwgZGlzYWJsZU5ldHdvcmtpbmcsIHJlcUlkIH0pO1xuICAvLyBjb2lucyAoZG9nZSkgdGhhdCBjYW4gZXhjZWVkIG51bWJlciBsaW1pdHMgKGFuZCB0aHVzIHdpbGwgdXNlIGJpZ2ludCkgd2lsbCBoYXZlIHRoZSBgdmFsdWVTdHJpbmdgIGZpZWxkXG4gIGNvbnN0IGlucHV0QW1vdW50ID0gaW5wdXRzLnJlZHVjZShcbiAgICAoc3VtOiBiaWdpbnQsIGkpID0+IHN1bSArIEJpZ0ludChjb2luLmFtb3VudFR5cGUgPT09ICdiaWdpbnQnID8gaS52YWx1ZVN0cmluZyA6IGkudmFsdWUpLFxuICAgIEJpZ0ludCgwKVxuICApO1xuICBjb25zdCBvdXRwdXRBbW91bnQgPSBhbGxPdXRwdXRzLnJlZHVjZSgoc3VtOiBiaWdpbnQsIG86IE91dHB1dCkgPT4gc3VtICsgQmlnSW50KG8uYW1vdW50KSwgQmlnSW50KDApKTtcbiAgY29uc3QgZmVlID0gaW5wdXRBbW91bnQgLSBvdXRwdXRBbW91bnQ7XG5cbiAgaWYgKGZlZSA8IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgYXR0ZW1wdGluZyB0byBzcGVuZCAke291dHB1dEFtb3VudH0gc2F0b3NoaXMsIHdoaWNoIGV4Y2VlZHMgdGhlIGlucHV0IGFtb3VudCAoJHtpbnB1dEFtb3VudH0gc2F0b3NoaXMpIGJ5ICR7LWZlZX1gXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuIl19
@@ -5,6 +5,6 @@ export { parseTransaction } from './parseTransaction';
5
5
  export { verifyTransaction } from './verifyTransaction';
6
6
  export * from './fetchInputs';
7
7
  export * as bip322 from './bip322';
8
- export { decodePsbt, decodePsbtWith } from './decode';
8
+ export { decodePsbt } from './decode';
9
9
  export * from './fixedScript';
10
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/transaction/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,cAAc,eAAe,CAAC;AAC9B,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACtD,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/transaction/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,cAAc,eAAe,CAAC;AAC9B,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,cAAc,eAAe,CAAC"}
@@ -36,7 +36,7 @@ var __importStar = (this && this.__importStar) || (function () {
36
36
  };
37
37
  })();
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.decodePsbtWith = exports.decodePsbt = exports.bip322 = exports.verifyTransaction = exports.parseTransaction = exports.explainTx = void 0;
39
+ exports.decodePsbt = exports.bip322 = exports.verifyTransaction = exports.parseTransaction = exports.explainTx = void 0;
40
40
  __exportStar(require("./types"), exports);
41
41
  __exportStar(require("./recipient"), exports);
42
42
  var explainTransaction_1 = require("./explainTransaction");
@@ -49,6 +49,5 @@ __exportStar(require("./fetchInputs"), exports);
49
49
  exports.bip322 = __importStar(require("./bip322"));
50
50
  var decode_1 = require("./decode");
51
51
  Object.defineProperty(exports, "decodePsbt", { enumerable: true, get: function () { return decode_1.decodePsbt; } });
52
- Object.defineProperty(exports, "decodePsbtWith", { enumerable: true, get: function () { return decode_1.decodePsbtWith; } });
53
52
  __exportStar(require("./fixedScript"), exports);
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMENBQXdCO0FBQ3hCLDhDQUE0QjtBQUM1QiwyREFBaUQ7QUFBeEMsK0dBQUEsU0FBUyxPQUFBO0FBQ2xCLHVEQUFzRDtBQUE3QyxvSEFBQSxnQkFBZ0IsT0FBQTtBQUN6Qix5REFBd0Q7QUFBL0Msc0hBQUEsaUJBQWlCLE9BQUE7QUFDMUIsZ0RBQThCO0FBQzlCLG1EQUFtQztBQUNuQyxtQ0FBc0Q7QUFBN0Msb0dBQUEsVUFBVSxPQUFBO0FBQUUsd0dBQUEsY0FBYyxPQUFBO0FBQ25DLGdEQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9yZWNpcGllbnQnO1xuZXhwb3J0IHsgZXhwbGFpblR4IH0gZnJvbSAnLi9leHBsYWluVHJhbnNhY3Rpb24nO1xuZXhwb3J0IHsgcGFyc2VUcmFuc2FjdGlvbiB9IGZyb20gJy4vcGFyc2VUcmFuc2FjdGlvbic7XG5leHBvcnQgeyB2ZXJpZnlUcmFuc2FjdGlvbiB9IGZyb20gJy4vdmVyaWZ5VHJhbnNhY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9mZXRjaElucHV0cyc7XG5leHBvcnQgKiBhcyBiaXAzMjIgZnJvbSAnLi9iaXAzMjInO1xuZXhwb3J0IHsgZGVjb2RlUHNidCwgZGVjb2RlUHNidFdpdGggfSBmcm9tICcuL2RlY29kZSc7XG5leHBvcnQgKiBmcm9tICcuL2ZpeGVkU2NyaXB0JztcbiJdfQ==
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMENBQXdCO0FBQ3hCLDhDQUE0QjtBQUM1QiwyREFBaUQ7QUFBeEMsK0dBQUEsU0FBUyxPQUFBO0FBQ2xCLHVEQUFzRDtBQUE3QyxvSEFBQSxnQkFBZ0IsT0FBQTtBQUN6Qix5REFBd0Q7QUFBL0Msc0hBQUEsaUJBQWlCLE9BQUE7QUFDMUIsZ0RBQThCO0FBQzlCLG1EQUFtQztBQUNuQyxtQ0FBc0M7QUFBN0Isb0dBQUEsVUFBVSxPQUFBO0FBQ25CLGdEQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9yZWNpcGllbnQnO1xuZXhwb3J0IHsgZXhwbGFpblR4IH0gZnJvbSAnLi9leHBsYWluVHJhbnNhY3Rpb24nO1xuZXhwb3J0IHsgcGFyc2VUcmFuc2FjdGlvbiB9IGZyb20gJy4vcGFyc2VUcmFuc2FjdGlvbic7XG5leHBvcnQgeyB2ZXJpZnlUcmFuc2FjdGlvbiB9IGZyb20gJy4vdmVyaWZ5VHJhbnNhY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9mZXRjaElucHV0cyc7XG5leHBvcnQgKiBhcyBiaXAzMjIgZnJvbSAnLi9iaXAzMjInO1xuZXhwb3J0IHsgZGVjb2RlUHNidCB9IGZyb20gJy4vZGVjb2RlJztcbmV4cG9ydCAqIGZyb20gJy4vZml4ZWRTY3JpcHQnO1xuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"signTransaction.d.ts","sourceRoot":"","sources":["../../../../src/transaction/signTransaction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AA0B/E,wBAAsB,eAAe,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EACnE,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,sBAAsB,CAAC,OAAO,CAAC,GACtC,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAsD5B"}
1
+ {"version":3,"file":"signTransaction.d.ts","sourceRoot":"","sources":["../../../../src/transaction/signTransaction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAyB/E,wBAAsB,eAAe,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EACnE,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,sBAAsB,CAAC,OAAO,CAAC,GACtC,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAgD5B"}
@@ -42,7 +42,6 @@ const wasm_utxo_1 = require("@bitgo/wasm-utxo");
42
42
  const debug_1 = __importDefault(require("debug"));
43
43
  const descriptor_1 = require("../descriptor");
44
44
  const keychains_1 = require("../keychains");
45
- const wasmUtil_1 = require("../wasmUtil");
46
45
  const fixedScript = __importStar(require("./fixedScript"));
47
46
  const descriptor = __importStar(require("./descriptor"));
48
47
  const decode_1 = require("./decode");
@@ -84,12 +83,7 @@ async function signTransaction(coin, bitgo, params) {
84
83
  return { txHex: Buffer.from(psbt.serialize()).toString('hex') };
85
84
  }
86
85
  else {
87
- let tx = coin.decodeTransactionFromPrebuild(params.txPrebuild);
88
- // When returnLegacyFormat is set, ensure we use wasm-utxo's BitGoPsbt so
89
- // getHalfSignedLegacyFormat() is available after signing.
90
- if (params.returnLegacyFormat && (0, wasmUtil_1.isUtxoLibPsbt)(tx)) {
91
- tx = (0, decode_1.decodePsbtWith)(tx.toBuffer(), coin.name, 'wasm-utxo');
92
- }
86
+ const tx = coin.decodeTransactionFromPrebuild(params.txPrebuild);
93
87
  const signedTx = await fixedScript.signTransaction(coin, tx, getSignerKeychain(params.prv), coin.name, {
94
88
  walletId: params.txPrebuild.walletId,
95
89
  txInfo: params.txPrebuild.txInfo,
@@ -109,4 +103,4 @@ async function signTransaction(coin, bitgo, params) {
109
103
  return { txHex: buffer.toString('hex') };
110
104
  }
111
105
  }
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnblRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL3NpZ25UcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQStCQSwwQ0EwREM7QUF6RkQsb0RBQXVCO0FBRXZCLGdEQUE0RDtBQUM1RCxrREFBK0I7QUFHL0IsOENBQWdHO0FBQ2hHLDRDQUE2RDtBQUM3RCwwQ0FBNEM7QUFFNUMsMkRBQTZDO0FBQzdDLHlEQUEyQztBQUMzQyxxQ0FBbUY7QUFFbkYsTUFBTSxLQUFLLEdBQUcsSUFBQSxlQUFVLEVBQUMsaURBQWlELENBQUMsQ0FBQztBQUU1RSxTQUFTLGlCQUFpQixDQUFDLE9BQWdCO0lBQ3pDLElBQUksT0FBTyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzFCLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFDRCxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMsMENBQTBDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBQ0QsTUFBTSxjQUFjLEdBQUcsaUJBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakQsSUFBSSxjQUFjLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztRQUNoQyxNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUNELEtBQUssQ0FBQyx3REFBd0QsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN0RyxPQUFPLGNBQWMsQ0FBQztBQUN4QixDQUFDO0FBRU0sS0FBSyxVQUFVLGVBQWUsQ0FDbkMsSUFBc0IsRUFDdEIsS0FBZ0IsRUFDaEIsTUFBdUM7SUFFdkMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUs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QixJQUFJLFFBQVEsWUFBWSw2QkFBaUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNqRixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLHlCQUF5QixFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN0RixDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFBLDBCQUFpQixFQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xGLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO0lBQzNDLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEJpdEdvQmFzZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBCSVAzMiwgZml4ZWRTY3JpcHRXYWxsZXQgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcbmltcG9ydCBidWlsZERlYnVnIGZyb20gJ2RlYnVnJztcblxuaW1wb3J0IHsgQWJzdHJhY3RVdHhvQ29pbiwgU2lnblRyYW5zYWN0aW9uT3B0aW9ucyB9IGZyb20gJy4uL2Fic3RyYWN0VXR4b0NvaW4nO1xuaW1wb3J0IHsgZ2V0RGVzY3JpcHRvck1hcEZyb21XYWxsZXQsIGdldFBvbGljeUZvckVudiwgaXNEZXNjcmlwdG9yV2FsbGV0IH0gZnJvbSAnLi4vZGVzY3JpcHRvcic7XG5pbXBvcnQgeyBmZXRjaEtleWNoYWlucywgdG9CaXAzMlRyaXBsZSB9IGZyb20gJy4uL2tleWNoYWlucyc7XG5pbXBvcnQgeyBpc1V0eG9MaWJQc2J0IH0gZnJvbSAnLi4vd2FzbVV0aWwnO1xuXG5pbXBvcnQgKiBhcyBmaXhlZFNjcmlwdCBmcm9tICcuL2ZpeGVkU2NyaXB0JztcbmltcG9ydCAqIGFzIGRlc2NyaXB0b3IgZnJvbSAnLi9kZXNjcmlwdG9yJztcbmltcG9ydCB7IGRlY29kZURlc2NyaXB0b3JQc2J0LCBkZWNvZGVQc2J0V2l0aCwgZW5jb2RlVHJhbnNhY3Rpb24gfSBmcm9tICcuL2RlY29kZSc7XG5cbmNvbnN0IGRlYnVnID0gYnVpbGREZWJ1ZygnYml0Z286YWJzdHJhY3QtdXR4bzp0cmFuc2FjdGlvbjpzaWduVHJhbnNhY3Rpb24nKTtcblxuZnVuY3Rpb24gZ2V0U2lnbmVyS2V5Y2hhaW4odXNlclBydjogdW5rbm93bik6IEJJUDMyIHwgdW5kZWZpbmVkIHtcbiAgaWYgKHVzZXJQcnYgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgaWYgKHR5cGVvZiB1c2VyUHJ2ICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBFcnJvcignZXhwZWN0ZWQgdXNlciBwcml2YXRlIGtleSB0byBiZSBhIHN0cmluZycpO1xuICB9XG4gIGNvbnN0IHNpZ25lcktleWNoYWluID0gQklQMzIuZnJvbUJhc2U1OCh1c2VyUHJ2KTtcbiAgaWYgKHNpZ25lcktleWNoYWluLmlzTmV1dGVyZWQoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignZXhwZWN0ZWQgdXNlciBwcml2YXRlIGtleSBidXQgcmVjZWl2ZWQgcHVibGljIGtleScpO1xuICB9XG4gIGRlYnVnKGBIZXJlIGlzIHRoZSBwdWJsaWMga2V5IG9mIHRoZSB4cHJ2IHlvdSB1c2VkIHRvIHNpZ246ICR7c2lnbmVyS2V5Y2hhaW4ubmV1dGVyZWQoKS50b0Jhc2U1OCgpfWApO1xuICByZXR1cm4gc2lnbmVyS2V5Y2hhaW47XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaWduVHJhbnNhY3Rpb248VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIGNvaW46IEFic3RyYWN0VXR4b0NvaW4sXG4gIGJpdGdvOiBCaXRHb0Jhc2UsXG4gIHBhcmFtczogU2lnblRyYW5zYWN0aW9uT3B0aW9uczxUTnVtYmVyPlxuKTogUHJvbWlzZTx7IHR4SGV4OiBzdHJpbmcgfT4ge1xuICBjb25zdCB0eFByZWJ1aWxkID0gcGFyYW1zLnR4UHJlYnVpbGQ7XG5cbiAgaWYgKF8uaXNVbmRlZmluZWQodHhQcmVidWlsZCkgfHwgIV8uaXNPYmplY3QodHhQcmVidWlsZCkpIHtcbiAgICBpZiAoIV8uaXNVbmRlZmluZWQodHhQcmVidWlsZCkgJiYgIV8uaXNPYmplY3QodHhQcmVidWlsZCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdHhQcmVidWlsZCBtdXN0IGJlIGFuIG9iamVjdCwgZ290IHR5cGUgJHt0eXBlb2YgdHhQcmVidWlsZH1gKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKCdtaXNzaW5nIHR4UHJlYnVpbGQgcGFyYW1ldGVyJyk7XG4gIH1cblxuICBjb25zdCBzaWduZXJLZXljaGFpbiA9IGdldFNpZ25lcktleWNoYWluKHBhcmFtcy5wcnYpO1xuXG4gIGNvbnN0IHsgd2FsbGV0IH0gPSBwYXJhbXM7XG5cbiAgaWYgKHdhbGxldCAmJiBpc0Rlc2NyaXB0b3JXYWxsZXQod2FsbGV0KSkge1xuICAgIGlmICghc2lnbmVyS2V5Y2hhaW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbWlzc2luZyBzaWduZXInKTtcbiAgICB9XG4gICAgY29uc3QgcHNidCA9IGRlY29kZURlc2NyaXB0b3JQc2J0KHBhcmFtcy50eFByZWJ1aWxkKTtcbiAgICBjb25zdCB3YWxsZXRLZXlzID0gdG9CaXAzMlRyaXBsZShhd2FpdCBmZXRjaEtleWNoYWlucyhjb2luLCB3YWxsZXQpKTtcbiAgICBjb25zdCBkZXNjcmlwdG9yTWFwID0gZ2V0RGVzY3JpcHRvck1hcEZyb21XYWxsZXQod2FsbGV0LCB3YWxsZXRLZXlzLCBnZXRQb2xpY3lGb3JFbnYoYml0Z28uZW52KSk7XG4gICAgZGVzY3JpcHRvci5zaWduUHNidChwc2J0LCBkZXNjcmlwdG9yTWFwLCBzaWduZXJLZXljaGFpbiwge1xuICAgICAgb25Vbmtub3duSW5wdXQ6ICd0aHJvdycsXG4gICAgfSk7XG4gICAgcmV0dXJuIHsgdHhIZXg6IEJ1ZmZlci5mcm9tKHBzYnQuc2VyaWFsaXplKCkpLnRvU3RyaW5nKCdoZXgnKSB9O1xuICB9IGVsc2Uge1xuICAgIGxldCB0eCA9IGNvaW4uZGVjb2RlVHJhbnNhY3Rpb25Gcm9tUHJlYnVpbGQocGFyYW1zLnR4UHJlYnVpbGQpO1xuXG4gICAgLy8gV2hlbiByZXR1cm5MZWdhY3lGb3JtYXQgaXMgc2V0LCBlbnN1cmUgd2UgdXNlIHdhc20tdXR4bydzIEJpdEdvUHNidCBzb1xuICAgIC8vIGdldEhhbGZTaWduZWRMZWdhY3lGb3JtYXQoKSBpcyBhdmFpbGFibGUgYWZ0ZXIgc2lnbmluZy5cbiAgICBpZiAocGFyYW1zLnJldHVybkxlZ2FjeUZvcm1hdCAmJiBpc1V0eG9MaWJQc2J0KHR4KSkge1xuICAgICAgdHggPSBkZWNvZGVQc2J0V2l0aCh0eC50b0J1ZmZlcigpLCBjb2luLm5hbWUsICd3YXNtLXV0eG8nKTtcbiAgICB9XG5cbiAgICBjb25zdCBzaWduZWRUeCA9IGF3YWl0IGZpeGVkU2NyaXB0LnNpZ25UcmFuc2FjdGlvbihjb2luLCB0eCwgZ2V0U2lnbmVyS2V5Y2hhaW4ocGFyYW1zLnBydiksIGNvaW4ubmFtZSwge1xuICAgICAgd2FsbGV0SWQ6IHBhcmFtcy50eFByZWJ1aWxkLndhbGxldElkLFxuICAgICAgdHhJbmZvOiBwYXJhbXMudHhQcmVidWlsZC50eEluZm8sXG4gICAgICBpc0xhc3RTaWduYXR1cmU6IHBhcmFtcy5pc0xhc3RTaWduYXR1cmUgPz8gZmFsc2UsXG4gICAgICBzaWduaW5nU3RlcDogcGFyYW1zLnNpZ25pbmdTdGVwLFxuICAgICAgYWxsb3dOb25TZWd3aXRTaWduaW5nV2l0aG91dFByZXZUeDogcGFyYW1zLmFsbG93Tm9uU2Vnd2l0U2lnbmluZ1dpdGhvdXRQcmV2VHggPz8gZmFsc2UsXG4gICAgICBwdWJzOiBwYXJhbXMucHVicyxcbiAgICAgIGNvc2lnbmVyUHViOiBwYXJhbXMuY29zaWduZXJQdWIsXG4gICAgICBleHRyYWN0VHJhbnNhY3Rpb246IHBhcmFtcy5leHRyYWN0VHJhbnNhY3Rpb24sXG4gICAgICB3cml0ZVNpZ25lZFdpdGg6IHBhcmFtcy53cml0ZVNpZ25lZFdpdGgsXG4gICAgfSk7XG5cbiAgICAvLyBDb252ZXJ0IGhhbGYtc2lnbmVkIFBTQlQgdG8gbGVnYWN5IGZvcm1hdCB3aGVuIHRoZSBjYWxsZXIgZXhwbGljaXRseSByZXF1ZXN0ZWQgdHhGb3JtYXQ6ICdsZWdhY3knXG4gICAgaWYgKHBhcmFtcy5yZXR1cm5MZWdhY3lGb3JtYXQgJiYgc2lnbmVkVHggaW5zdGFuY2VvZiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQpIHtcbiAgICAgIHJldHVybiB7IHR4SGV4OiBCdWZmZXIuZnJvbShzaWduZWRUeC5nZXRIYWxmU2lnbmVkTGVnYWN5Rm9ybWF0KCkpLnRvU3RyaW5nKCdoZXgnKSB9O1xuICAgIH1cblxuICAgIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5pc0J1ZmZlcihzaWduZWRUeCkgPyBzaWduZWRUeCA6IGVuY29kZVRyYW5zYWN0aW9uKHNpZ25lZFR4KTtcbiAgICByZXR1cm4geyB0eEhleDogYnVmZmVyLnRvU3RyaW5nKCdoZXgnKSB9O1xuICB9XG59XG4iXX0=
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnblRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL3NpZ25UcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQThCQSwwQ0FvREM7QUFsRkQsb0RBQXVCO0FBRXZCLGdEQUE0RDtBQUM1RCxrREFBK0I7QUFHL0IsOENBQWdHO0FBQ2hHLDRDQUE2RDtBQUU3RCwyREFBNkM7QUFDN0MseURBQTJDO0FBQzNDLHFDQUFtRTtBQUVuRSxNQUFNLEtBQUssR0FBRyxJQUFBLGVBQVUsRUFBQyxpREFBaUQsQ0FBQyxDQUFDO0FBRTVFLFNBQVMsaUJBQWlCLENBQUMsT0FBZ0I7SUFDekMsSUFBSSxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDMUIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUNELElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFDRCxNQUFNLGNBQWMsR0FBRyxpQkFBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqRCxJQUFJLGNBQWMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMsbURBQW1ELENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBQ0QsS0FBSyxDQUFDLHdEQUF3RCxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RHLE9BQU8sY0FBYyxDQUFDO0FBQ3hCLENBQUM7QUFFTSxLQUFLLFVBQVUsZUFBZSxDQUNuQyxJQUFzQixFQUN0QixLQUFnQixFQUNoQixNQUF1QztJQUV2QyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBRXJDLElB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QUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFBLDBCQUFpQixFQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xGLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO0lBQzNDLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEJpdEdvQmFzZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBCSVAzMiwgZml4ZWRTY3JpcHRXYWxsZXQgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcbmltcG9ydCBidWlsZERlYnVnIGZyb20gJ2RlYnVnJztcblxuaW1wb3J0IHsgQWJzdHJhY3RVdHhvQ29pbiwgU2lnblRyYW5zYWN0aW9uT3B0aW9ucyB9IGZyb20gJy4uL2Fic3RyYWN0VXR4b0NvaW4nO1xuaW1wb3J0IHsgZ2V0RGVzY3JpcHRvck1hcEZyb21XYWxsZXQsIGdldFBvbGljeUZvckVudiwgaXNEZXNjcmlwdG9yV2FsbGV0IH0gZnJvbSAnLi4vZGVzY3JpcHRvcic7XG5pbXBvcnQgeyBmZXRjaEtleWNoYWlucywgdG9CaXAzMlRyaXBsZSB9IGZyb20gJy4uL2tleWNoYWlucyc7XG5cbmltcG9ydCAqIGFzIGZpeGVkU2NyaXB0IGZyb20gJy4vZml4ZWRTY3JpcHQnO1xuaW1wb3J0ICogYXMgZGVzY3JpcHRvciBmcm9tICcuL2Rlc2NyaXB0b3InO1xuaW1wb3J0IHsgZGVjb2RlRGVzY3JpcHRvclBzYnQsIGVuY29kZVRyYW5zYWN0aW9uIH0gZnJvbSAnLi9kZWNvZGUnO1xuXG5jb25zdCBkZWJ1ZyA9IGJ1aWxkRGVidWcoJ2JpdGdvOmFic3RyYWN0LXV0eG86dHJhbnNhY3Rpb246c2lnblRyYW5zYWN0aW9uJyk7XG5cbmZ1bmN0aW9uIGdldFNpZ25lcktleWNoYWluKHVzZXJQcnY6IHVua25vd24pOiBCSVAzMiB8IHVuZGVmaW5lZCB7XG4gIGlmICh1c2VyUHJ2ID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGlmICh0eXBlb2YgdXNlclBydiAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2V4cGVjdGVkIHVzZXIgcHJpdmF0ZSBrZXkgdG8gYmUgYSBzdHJpbmcnKTtcbiAgfVxuICBjb25zdCBzaWduZXJLZXljaGFpbiA9IEJJUDMyLmZyb21CYXNlNTgodXNlclBydik7XG4gIGlmIChzaWduZXJLZXljaGFpbi5pc05ldXRlcmVkKCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2V4cGVjdGVkIHVzZXIgcHJpdmF0ZSBrZXkgYnV0IHJlY2VpdmVkIHB1YmxpYyBrZXknKTtcbiAgfVxuICBkZWJ1ZyhgSGVyZSBpcyB0aGUgcHVibGljIGtleSBvZiB0aGUgeHBydiB5b3UgdXNlZCB0byBzaWduOiAke3NpZ25lcktleWNoYWluLm5ldXRlcmVkKCkudG9CYXNlNTgoKX1gKTtcbiAgcmV0dXJuIHNpZ25lcktleWNoYWluO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2lnblRyYW5zYWN0aW9uPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICBjb2luOiBBYnN0cmFjdFV0eG9Db2luLFxuICBiaXRnbzogQml0R29CYXNlLFxuICBwYXJhbXM6IFNpZ25UcmFuc2FjdGlvbk9wdGlvbnM8VE51bWJlcj5cbik6IFByb21pc2U8eyB0eEhleDogc3RyaW5nIH0+IHtcbiAgY29uc3QgdHhQcmVidWlsZCA9IHBhcmFtcy50eFByZWJ1aWxkO1xuXG4gIGlmIChfLmlzVW5kZWZpbmVkKHR4UHJlYnVpbGQpIHx8ICFfLmlzT2JqZWN0KHR4UHJlYnVpbGQpKSB7XG4gICAgaWYgKCFfLmlzVW5kZWZpbmVkKHR4UHJlYnVpbGQpICYmICFfLmlzT2JqZWN0KHR4UHJlYnVpbGQpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHR4UHJlYnVpbGQgbXVzdCBiZSBhbiBvYmplY3QsIGdvdCB0eXBlICR7dHlwZW9mIHR4UHJlYnVpbGR9YCk7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcignbWlzc2luZyB0eFByZWJ1aWxkIHBhcmFtZXRlcicpO1xuICB9XG5cbiAgY29uc3Qgc2lnbmVyS2V5Y2hhaW4gPSBnZXRTaWduZXJLZXljaGFpbihwYXJhbXMucHJ2KTtcblxuICBjb25zdCB7IHdhbGxldCB9ID0gcGFyYW1zO1xuXG4gIGlmICh3YWxsZXQgJiYgaXNEZXNjcmlwdG9yV2FsbGV0KHdhbGxldCkpIHtcbiAgICBpZiAoIXNpZ25lcktleWNoYWluKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ21pc3Npbmcgc2lnbmVyJyk7XG4gICAgfVxuICAgIGNvbnN0IHBzYnQgPSBkZWNvZGVEZXNjcmlwdG9yUHNidChwYXJhbXMudHhQcmVidWlsZCk7XG4gICAgY29uc3Qgd2FsbGV0S2V5cyA9IHRvQmlwMzJUcmlwbGUoYXdhaXQgZmV0Y2hLZXljaGFpbnMoY29pbiwgd2FsbGV0KSk7XG4gICAgY29uc3QgZGVzY3JpcHRvck1hcCA9IGdldERlc2NyaXB0b3JNYXBGcm9tV2FsbGV0KHdhbGxldCwgd2FsbGV0S2V5cywgZ2V0UG9saWN5Rm9yRW52KGJpdGdvLmVudikpO1xuICAgIGRlc2NyaXB0b3Iuc2lnblBzYnQocHNidCwgZGVzY3JpcHRvck1hcCwgc2lnbmVyS2V5Y2hhaW4sIHtcbiAgICAgIG9uVW5rbm93bklucHV0OiAndGhyb3cnLFxuICAgIH0pO1xuICAgIHJldHVybiB7IHR4SGV4OiBCdWZmZXIuZnJvbShwc2J0LnNlcmlhbGl6ZSgpKS50b1N0cmluZygnaGV4JykgfTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB0eCA9IGNvaW4uZGVjb2RlVHJhbnNhY3Rpb25Gcm9tUHJlYnVpbGQocGFyYW1zLnR4UHJlYnVpbGQpO1xuXG4gICAgY29uc3Qgc2lnbmVkVHggPSBhd2FpdCBmaXhlZFNjcmlwdC5zaWduVHJhbnNhY3Rpb24oY29pbiwgdHgsIGdldFNpZ25lcktleWNoYWluKHBhcmFtcy5wcnYpLCBjb2luLm5hbWUsIHtcbiAgICAgIHdhbGxldElkOiBwYXJhbXMudHhQcmVidWlsZC53YWxsZXRJZCxcbiAgICAgIHR4SW5mbzogcGFyYW1zLnR4UHJlYnVpbGQudHhJbmZvLFxuICAgICAgaXNMYXN0U2lnbmF0dXJlOiBwYXJhbXMuaXNMYXN0U2lnbmF0dXJlID8/IGZhbHNlLFxuICAgICAgc2lnbmluZ1N0ZXA6IHBhcmFtcy5zaWduaW5nU3RlcCxcbiAgICAgIGFsbG93Tm9uU2Vnd2l0U2lnbmluZ1dpdGhvdXRQcmV2VHg6IHBhcmFtcy5hbGxvd05vblNlZ3dpdFNpZ25pbmdXaXRob3V0UHJldlR4ID8/IGZhbHNlLFxuICAgICAgcHViczogcGFyYW1zLnB1YnMsXG4gICAgICBjb3NpZ25lclB1YjogcGFyYW1zLmNvc2lnbmVyUHViLFxuICAgICAgZXh0cmFjdFRyYW5zYWN0aW9uOiBwYXJhbXMuZXh0cmFjdFRyYW5zYWN0aW9uLFxuICAgICAgd3JpdGVTaWduZWRXaXRoOiBwYXJhbXMud3JpdGVTaWduZWRXaXRoLFxuICAgIH0pO1xuXG4gICAgLy8gQ29udmVydCBoYWxmLXNpZ25lZCBQU0JUIHRvIGxlZ2FjeSBmb3JtYXQgd2hlbiB0aGUgY2FsbGVyIGV4cGxpY2l0bHkgcmVxdWVzdGVkIHR4Rm9ybWF0OiAnbGVnYWN5J1xuICAgIGlmIChwYXJhbXMucmV0dXJuTGVnYWN5Rm9ybWF0ICYmIHNpZ25lZFR4IGluc3RhbmNlb2YgZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0KSB7XG4gICAgICByZXR1cm4geyB0eEhleDogQnVmZmVyLmZyb20oc2lnbmVkVHguZ2V0SGFsZlNpZ25lZExlZ2FjeUZvcm1hdCgpKS50b1N0cmluZygnaGV4JykgfTtcbiAgICB9XG5cbiAgICBjb25zdCBidWZmZXIgPSBCdWZmZXIuaXNCdWZmZXIoc2lnbmVkVHgpID8gc2lnbmVkVHggOiBlbmNvZGVUcmFuc2FjdGlvbihzaWduZWRUeCk7XG4gICAgcmV0dXJuIHsgdHhIZXg6IGJ1ZmZlci50b1N0cmluZygnaGV4JykgfTtcbiAgfVxufVxuIl19
@@ -1,11 +1,8 @@
1
- import * as utxolib from '@bitgo/utxo-lib';
2
1
  import { fixedScriptWallet } from '@bitgo/wasm-utxo';
3
2
  import type { UtxoNamedKeychains } from '../keychains';
4
3
  import type { CustomChangeOptions } from './fixedScript';
5
4
  export type BitGoPsbt = fixedScriptWallet.BitGoPsbt;
6
- export type SdkBackend = 'utxolib' | 'wasm-utxo';
7
- export declare function isSdkBackend(backend: string): backend is SdkBackend;
8
- export type DecodedTransaction<TNumber extends number | bigint> = utxolib.bitgo.UtxoTransaction<TNumber> | utxolib.bitgo.UtxoPsbt | fixedScriptWallet.BitGoPsbt;
5
+ export type DecodedTransaction<TNumber extends number | bigint> = fixedScriptWallet.BitGoPsbt;
9
6
  export interface BaseOutput<TAmount = string | number> {
10
7
  address: string;
11
8
  amount: TAmount;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/transaction/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzD,MAAM,MAAM,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC;AAEpD,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,WAAW,CAAC;AAEjD,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,IAAI,UAAU,CAEnE;AAED,MAAM,MAAM,kBAAkB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,IAC1D,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,GACtC,OAAO,CAAC,KAAK,CAAC,QAAQ,GACtB,iBAAiB,CAAC,SAAS,CAAC;AAEhC,MAAM,WAAW,UAAU,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAGhB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM,CAAE,SAAQ,UAAU,CAAC,OAAO,CAAC;IAC7F,yCAAyC,CAAC,EAAE,OAAO,CAAC;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,MAAM,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;AAEvG,MAAM,MAAM,4BAA4B,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAAE,OAAO,IAAI;IACnF,8BAA8B;IAC9B,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,iGAAiG;IACjG,cAAc,EAAE,OAAO,EAAE,CAAC;IAC1B,+FAA+F;IAC/F,uBAAuB,EAAE,OAAO,EAAE,CAAC;IACnC,mGAAmG;IACnG,uBAAuB,EAAE,OAAO,EAAE,CAAC;IACnC,kDAAkD;IAClD,aAAa,EAAE,OAAO,EAAE,CAAC;IACzB,2CAA2C;IAC3C,2BAA2B,EAAE,OAAO,CAAC;IACrC,2CAA2C;IAC3C,2BAA2B,EAAE,OAAO,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAAE,OAAO,IAAI,4BAA4B,CACxG,OAAO,EACP,OAAO,CACR,CAAC,mFAAmF,GAAG;IACtF,SAAS,EAAE,kBAAkB,CAAC;IAC9B,aAAa,EAAE;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,yCAAyC,EAAE,OAAO,CAAC;IACnD,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,iBAAiB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/transaction/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzD,MAAM,MAAM,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC;AAGpD,MAAM,MAAM,kBAAkB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,IAAI,iBAAiB,CAAC,SAAS,CAAC;AAE9F,MAAM,WAAW,UAAU,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAGhB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM,CAAE,SAAQ,UAAU,CAAC,OAAO,CAAC;IAC7F,yCAAyC,CAAC,EAAE,OAAO,CAAC;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,MAAM,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;AAEvG,MAAM,MAAM,4BAA4B,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAAE,OAAO,IAAI;IACnF,8BAA8B;IAC9B,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,iGAAiG;IACjG,cAAc,EAAE,OAAO,EAAE,CAAC;IAC1B,+FAA+F;IAC/F,uBAAuB,EAAE,OAAO,EAAE,CAAC;IACnC,mGAAmG;IACnG,uBAAuB,EAAE,OAAO,EAAE,CAAC;IACnC,kDAAkD;IAClD,aAAa,EAAE,OAAO,EAAE,CAAC;IACzB,2CAA2C;IAC3C,2BAA2B,EAAE,OAAO,CAAC;IACrC,2CAA2C;IAC3C,2BAA2B,EAAE,OAAO,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAAE,OAAO,IAAI,4BAA4B,CACxG,OAAO,EACP,OAAO,CACR,CAAC,mFAAmF,GAAG;IACtF,SAAS,EAAE,kBAAkB,CAAC;IAC9B,aAAa,EAAE;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,yCAAyC,EAAE,OAAO,CAAC;IACnD,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,iBAAiB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC"}
@@ -1,7 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isSdkBackend = isSdkBackend;
4
- function isSdkBackend(backend) {
5
- return backend === 'utxolib' || backend === 'wasm-utxo';
6
- }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFXQSxvQ0FFQztBQUZELFNBQWdCLFlBQVksQ0FBQyxPQUFlO0lBQzFDLE9BQU8sT0FBTyxLQUFLLFNBQVMsSUFBSSxPQUFPLEtBQUssV0FBVyxDQUFDO0FBQzFELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5pbXBvcnQgeyBmaXhlZFNjcmlwdFdhbGxldCB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuXG5pbXBvcnQgdHlwZSB7IFV0eG9OYW1lZEtleWNoYWlucyB9IGZyb20gJy4uL2tleWNoYWlucyc7XG5cbmltcG9ydCB0eXBlIHsgQ3VzdG9tQ2hhbmdlT3B0aW9ucyB9IGZyb20gJy4vZml4ZWRTY3JpcHQnO1xuXG5leHBvcnQgdHlwZSBCaXRHb1BzYnQgPSBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQ7XG5cbmV4cG9ydCB0eXBlIFNka0JhY2tlbmQgPSAndXR4b2xpYicgfCAnd2FzbS11dHhvJztcblxuZXhwb3J0IGZ1bmN0aW9uIGlzU2RrQmFja2VuZChiYWNrZW5kOiBzdHJpbmcpOiBiYWNrZW5kIGlzIFNka0JhY2tlbmQge1xuICByZXR1cm4gYmFja2VuZCA9PT0gJ3V0eG9saWInIHx8IGJhY2tlbmQgPT09ICd3YXNtLXV0eG8nO1xufVxuXG5leHBvcnQgdHlwZSBEZWNvZGVkVHJhbnNhY3Rpb248VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4gPVxuICB8IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+XG4gIHwgdXR4b2xpYi5iaXRnby5VdHhvUHNidFxuICB8IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidDtcblxuZXhwb3J0IGludGVyZmFjZSBCYXNlT3V0cHV0PFRBbW91bnQgPSBzdHJpbmcgfCBudW1iZXI+IHtcbiAgYWRkcmVzczogc3RyaW5nO1xuICBhbW91bnQ6IFRBbW91bnQ7XG4gIC8vIEV2ZW4gdGhvdWdoIHRoaXMgZXh0ZXJuYWwgZmxhZyBpcyByZWR1bmRhbnQgd2l0aCB0aGUgY2hhaW4gcHJvcGVydHksIGl0IGlzIG5lY2Vzc2FyeSBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbiAgLy8gd2l0aCBsZWdhY3kgdHJhbnNhY3Rpb24gZm9ybWF0LlxuICBleHRlcm5hbD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRml4ZWRTY3JpcHRXYWxsZXRPdXRwdXQ8VEFtb3VudCA9IHN0cmluZyB8IG51bWJlcj4gZXh0ZW5kcyBCYXNlT3V0cHV0PFRBbW91bnQ+IHtcbiAgbmVlZHNDdXN0b21DaGFuZ2VLZXlTaWduYXR1cmVWZXJpZmljYXRpb24/OiBib29sZWFuO1xuICBjaGFpbjogbnVtYmVyO1xuICBpbmRleDogbnVtYmVyO1xufVxuXG5leHBvcnQgdHlwZSBPdXRwdXQ8VEFtb3VudCA9IHN0cmluZyB8IG51bWJlcj4gPSBCYXNlT3V0cHV0PFRBbW91bnQ+IHwgRml4ZWRTY3JpcHRXYWxsZXRPdXRwdXQ8VEFtb3VudD47XG5cbmV4cG9ydCB0eXBlIEJhc2VQYXJzZWRUcmFuc2FjdGlvbk91dHB1dHM8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCwgVE91dHB1dD4gPSB7XG4gIC8qKiBhbGwgdHJhbnNhY3Rpb24gb3V0cHV0cyAqL1xuICBvdXRwdXRzOiBUT3V0cHV0W107XG4gIC8qKiB0cmFuc2FjdGlvbiBvdXRwdXRzIHRoYXQgd2VyZSBzcGVjaWZpZWQgYXMgcmVjaXBpZW50cyBidXQgYXJlIG1pc3NpbmcgZnJvbSB0aGUgdHJhbnNhY3Rpb24gKi9cbiAgbWlzc2luZ091dHB1dHM6IFRPdXRwdXRbXTtcbiAgLyoqIHRyYW5zYWN0aW9uIG91dHB1dHMgdGhhdCB3ZXJlIHNwZWNpZmllZCBhcyByZWNpcGllbnRzIGFuZCBhcmUgcHJlc2VudCBpbiB0aGUgdHJhbnNhY3Rpb24gKi9cbiAgZXhwbGljaXRFeHRlcm5hbE91dHB1dHM6IFRPdXRwdXRbXTtcbiAgLyoqIHRyYW5zYWN0aW9uIG91dHB1dHMgdGhhdCB3ZXJlIG5vdCBzcGVjaWZpZWQgYXMgcmVjaXBpZW50cyBidXQgYXJlIHByZXNlbnQgaW4gdGhlIHRyYW5zYWN0aW9uICovXG4gIGltcGxpY2l0RXh0ZXJuYWxPdXRwdXRzOiBUT3V0cHV0W107XG4gIC8qKiB0cmFuc2FjdGlvbiBvdXRwdXRzIHRoYXQgYXJlIGNoYW5nZSBvdXRwdXRzICovXG4gIGNoYW5nZU91dHB1dHM6IFRPdXRwdXRbXTtcbiAgLyoqIHN1bSBvZiBhbGwgZXhwbGljaXQgZXh0ZXJuYWwgb3V0cHV0cyAqL1xuICBleHBsaWNpdEV4dGVybmFsU3BlbmRBbW91bnQ6IFROdW1iZXI7XG4gIC8qKiBzdW0gb2YgYWxsIGltcGxpY2l0IGV4dGVybmFsIG91dHB1dHMgKi9cbiAgaW1wbGljaXRFeHRlcm5hbFNwZW5kQW1vdW50OiBUTnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgQmFzZVBhcnNlZFRyYW5zYWN0aW9uPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQsIFRPdXRwdXQ+ID0gQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0czxcbiAgVE51bWJlcixcbiAgVE91dHB1dFxuPiAvKiogU29tZSBleHRyYSBwcm9wZXJ0aWVzIHRoYXQgaGF2ZSBub3RoaW5nIHRvIGRvIHdpdGggYW4gaW5kaXZpZHVhbCB0cmFuc2FjdGlvbiAqLyAmIHtcbiAga2V5Y2hhaW5zOiBVdHhvTmFtZWRLZXljaGFpbnM7XG4gIGtleVNpZ25hdHVyZXM6IHtcbiAgICBiYWNrdXBQdWI/OiBzdHJpbmc7XG4gICAgYml0Z29QdWI/OiBzdHJpbmc7XG4gIH07XG4gIG5lZWRzQ3VzdG9tQ2hhbmdlS2V5U2lnbmF0dXJlVmVyaWZpY2F0aW9uOiBib29sZWFuO1xuICBjdXN0b21DaGFuZ2U/OiBDdXN0b21DaGFuZ2VPcHRpb25zO1xufTtcblxuLyoqXG4gKiBUaGlzIHR5cGUgaXMgYSBiaXQgc2lsbHkgYmVjYXVzZSBpdCBhbGxvd3MgdGhlIHR5cGUgZm9yIHRoZSBhZ2dyZWdhdGUgYW1vdW50cyB0byBiZSBkaWZmZXJlbnQgZnJvbSB0aGUgdHlwZSBvZlxuICogaW5kaXZpZHVhbCBhbW91bnRzLlxuICovXG5leHBvcnQgdHlwZSBQYXJzZWRUcmFuc2FjdGlvbjxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPiA9IEJhc2VQYXJzZWRUcmFuc2FjdGlvbjxUTnVtYmVyLCBPdXRwdXQ+O1xuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpeGVkU2NyaXB0V2FsbGV0IH0gZnJvbSAnQGJpdGdvL3dhc20tdXR4byc7XG5cbmltcG9ydCB0eXBlIHsgVXR4b05hbWVkS2V5Y2hhaW5zIH0gZnJvbSAnLi4va2V5Y2hhaW5zJztcblxuaW1wb3J0IHR5cGUgeyBDdXN0b21DaGFuZ2VPcHRpb25zIH0gZnJvbSAnLi9maXhlZFNjcmlwdCc7XG5cbmV4cG9ydCB0eXBlIEJpdEdvUHNidCA9IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidDtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuZXhwb3J0IHR5cGUgRGVjb2RlZFRyYW5zYWN0aW9uPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+ID0gZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0O1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VPdXRwdXQ8VEFtb3VudCA9IHN0cmluZyB8IG51bWJlcj4ge1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIGFtb3VudDogVEFtb3VudDtcbiAgLy8gRXZlbiB0aG91Z2ggdGhpcyBleHRlcm5hbCBmbGFnIGlzIHJlZHVuZGFudCB3aXRoIHRoZSBjaGFpbiBwcm9wZXJ0eSwgaXQgaXMgbmVjZXNzYXJ5IGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuICAvLyB3aXRoIGxlZ2FjeSB0cmFuc2FjdGlvbiBmb3JtYXQuXG4gIGV4dGVybmFsPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaXhlZFNjcmlwdFdhbGxldE91dHB1dDxUQW1vdW50ID0gc3RyaW5nIHwgbnVtYmVyPiBleHRlbmRzIEJhc2VPdXRwdXQ8VEFtb3VudD4ge1xuICBuZWVkc0N1c3RvbUNoYW5nZUtleVNpZ25hdHVyZVZlcmlmaWNhdGlvbj86IGJvb2xlYW47XG4gIGNoYWluOiBudW1iZXI7XG4gIGluZGV4OiBudW1iZXI7XG59XG5cbmV4cG9ydCB0eXBlIE91dHB1dDxUQW1vdW50ID0gc3RyaW5nIHwgbnVtYmVyPiA9IEJhc2VPdXRwdXQ8VEFtb3VudD4gfCBGaXhlZFNjcmlwdFdhbGxldE91dHB1dDxUQW1vdW50PjtcblxuZXhwb3J0IHR5cGUgQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0czxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50LCBUT3V0cHV0PiA9IHtcbiAgLyoqIGFsbCB0cmFuc2FjdGlvbiBvdXRwdXRzICovXG4gIG91dHB1dHM6IFRPdXRwdXRbXTtcbiAgLyoqIHRyYW5zYWN0aW9uIG91dHB1dHMgdGhhdCB3ZXJlIHNwZWNpZmllZCBhcyByZWNpcGllbnRzIGJ1dCBhcmUgbWlzc2luZyBmcm9tIHRoZSB0cmFuc2FjdGlvbiAqL1xuICBtaXNzaW5nT3V0cHV0czogVE91dHB1dFtdO1xuICAvKiogdHJhbnNhY3Rpb24gb3V0cHV0cyB0aGF0IHdlcmUgc3BlY2lmaWVkIGFzIHJlY2lwaWVudHMgYW5kIGFyZSBwcmVzZW50IGluIHRoZSB0cmFuc2FjdGlvbiAqL1xuICBleHBsaWNpdEV4dGVybmFsT3V0cHV0czogVE91dHB1dFtdO1xuICAvKiogdHJhbnNhY3Rpb24gb3V0cHV0cyB0aGF0IHdlcmUgbm90IHNwZWNpZmllZCBhcyByZWNpcGllbnRzIGJ1dCBhcmUgcHJlc2VudCBpbiB0aGUgdHJhbnNhY3Rpb24gKi9cbiAgaW1wbGljaXRFeHRlcm5hbE91dHB1dHM6IFRPdXRwdXRbXTtcbiAgLyoqIHRyYW5zYWN0aW9uIG91dHB1dHMgdGhhdCBhcmUgY2hhbmdlIG91dHB1dHMgKi9cbiAgY2hhbmdlT3V0cHV0czogVE91dHB1dFtdO1xuICAvKiogc3VtIG9mIGFsbCBleHBsaWNpdCBleHRlcm5hbCBvdXRwdXRzICovXG4gIGV4cGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudDogVE51bWJlcjtcbiAgLyoqIHN1bSBvZiBhbGwgaW1wbGljaXQgZXh0ZXJuYWwgb3V0cHV0cyAqL1xuICBpbXBsaWNpdEV4dGVybmFsU3BlbmRBbW91bnQ6IFROdW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBCYXNlUGFyc2VkVHJhbnNhY3Rpb248VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCwgVE91dHB1dD4gPSBCYXNlUGFyc2VkVHJhbnNhY3Rpb25PdXRwdXRzPFxuICBUTnVtYmVyLFxuICBUT3V0cHV0XG4+IC8qKiBTb21lIGV4dHJhIHByb3BlcnRpZXMgdGhhdCBoYXZlIG5vdGhpbmcgdG8gZG8gd2l0aCBhbiBpbmRpdmlkdWFsIHRyYW5zYWN0aW9uICovICYge1xuICBrZXljaGFpbnM6IFV0eG9OYW1lZEtleWNoYWlucztcbiAga2V5U2lnbmF0dXJlczoge1xuICAgIGJhY2t1cFB1Yj86IHN0cmluZztcbiAgICBiaXRnb1B1Yj86IHN0cmluZztcbiAgfTtcbiAgbmVlZHNDdXN0b21DaGFuZ2VLZXlTaWduYXR1cmVWZXJpZmljYXRpb246IGJvb2xlYW47XG4gIGN1c3RvbUNoYW5nZT86IEN1c3RvbUNoYW5nZU9wdGlvbnM7XG59O1xuXG4vKipcbiAqIFRoaXMgdHlwZSBpcyBhIGJpdCBzaWxseSBiZWNhdXNlIGl0IGFsbG93cyB0aGUgdHlwZSBmb3IgdGhlIGFnZ3JlZ2F0ZSBhbW91bnRzIHRvIGJlIGRpZmZlcmVudCBmcm9tIHRoZSB0eXBlIG9mXG4gKiBpbmRpdmlkdWFsIGFtb3VudHMuXG4gKi9cbmV4cG9ydCB0eXBlIFBhcnNlZFRyYW5zYWN0aW9uPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQgPSBudW1iZXI+ID0gQmFzZVBhcnNlZFRyYW5zYWN0aW9uPFROdW1iZXIsIE91dHB1dD47XG4iXX0=