@bitgo/abstract-utxo 10.16.0 → 10.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/dist/cjs/src/abstractUtxoCoin.d.ts +4 -7
  2. package/dist/cjs/src/abstractUtxoCoin.d.ts.map +1 -1
  3. package/dist/cjs/src/abstractUtxoCoin.js +5 -10
  4. package/dist/cjs/src/address/fixedScript.d.ts +4 -5
  5. package/dist/cjs/src/address/fixedScript.d.ts.map +1 -1
  6. package/dist/cjs/src/address/fixedScript.js +17 -47
  7. package/dist/cjs/src/impl/btc/inscriptionBuilder.d.ts +15 -5
  8. package/dist/cjs/src/impl/btc/inscriptionBuilder.d.ts.map +1 -1
  9. package/dist/cjs/src/impl/btc/inscriptionBuilder.js +43 -55
  10. package/dist/cjs/src/keychains.d.ts +5 -0
  11. package/dist/cjs/src/keychains.d.ts.map +1 -1
  12. package/dist/cjs/src/keychains.js +10 -1
  13. package/dist/cjs/src/transaction/fixedScript/SigningError.d.ts +4 -0
  14. package/dist/cjs/src/transaction/fixedScript/SigningError.d.ts.map +1 -1
  15. package/dist/cjs/src/transaction/fixedScript/SigningError.js +10 -2
  16. package/dist/cjs/src/transaction/fixedScript/parseOutput.d.ts.map +1 -1
  17. package/dist/cjs/src/transaction/fixedScript/parseOutput.js +3 -2
  18. package/dist/cjs/src/transaction/fixedScript/parseTransaction.d.ts +2 -2
  19. package/dist/cjs/src/transaction/fixedScript/parseTransaction.d.ts.map +1 -1
  20. package/dist/cjs/src/transaction/fixedScript/parseTransaction.js +36 -11
  21. package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.d.ts +1 -0
  22. package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.d.ts.map +1 -1
  23. package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.js +12 -18
  24. package/dist/cjs/src/transaction/outputDifference.d.ts +5 -1
  25. package/dist/cjs/src/transaction/outputDifference.d.ts.map +1 -1
  26. package/dist/cjs/src/transaction/outputDifference.js +6 -2
  27. package/dist/cjs/src/transaction/recipient.d.ts +5 -0
  28. package/dist/cjs/src/transaction/recipient.d.ts.map +1 -1
  29. package/dist/cjs/src/transaction/recipient.js +14 -1
  30. package/dist/cjs/test/unit/coins.js +7 -2
  31. package/dist/cjs/test/unit/descriptorAddress.d.ts +2 -2
  32. package/dist/cjs/test/unit/descriptorAddress.d.ts.map +1 -1
  33. package/dist/cjs/test/unit/descriptorAddress.js +8 -7
  34. package/dist/cjs/test/unit/prebuildAndSign.d.ts.map +1 -1
  35. package/dist/cjs/test/unit/prebuildAndSign.js +3 -2
  36. package/dist/cjs/test/unit/recovery/backupKeyRecovery.js +3 -2
  37. package/dist/cjs/test/unit/recovery/crossChainRecovery.js +4 -3
  38. package/dist/cjs/test/unit/recovery/mock.d.ts.map +1 -1
  39. package/dist/cjs/test/unit/recovery/mock.js +4 -3
  40. package/dist/cjs/test/unit/transaction/fixedScript/parsePsbt.js +2 -2
  41. package/dist/cjs/test/unit/transaction/outputDifference.d.ts.map +1 -0
  42. package/dist/cjs/test/unit/transaction/outputDifference.js +117 -0
  43. package/dist/cjs/test/unit/transaction.js +3 -2
  44. package/dist/cjs/test/unit/txFormat.d.ts.map +1 -1
  45. package/dist/cjs/test/unit/txFormat.js +9 -9
  46. package/dist/cjs/test/unit/util/nockIndexerAPI.d.ts.map +1 -1
  47. package/dist/cjs/test/unit/util/nockIndexerAPI.js +4 -37
  48. package/dist/cjs/test/unit/util/transaction.d.ts.map +1 -1
  49. package/dist/cjs/test/unit/util/transaction.js +4 -2
  50. package/dist/cjs/test/unit/util/unspents.d.ts.map +1 -1
  51. package/dist/cjs/test/unit/util/unspents.js +2 -2
  52. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  53. package/dist/esm/abstractUtxoCoin.d.ts +4 -7
  54. package/dist/esm/abstractUtxoCoin.d.ts.map +1 -1
  55. package/dist/esm/abstractUtxoCoin.js +5 -10
  56. package/dist/esm/address/fixedScript.d.ts +4 -5
  57. package/dist/esm/address/fixedScript.d.ts.map +1 -1
  58. package/dist/esm/address/fixedScript.js +17 -14
  59. package/dist/esm/impl/btc/inscriptionBuilder.d.ts +15 -5
  60. package/dist/esm/impl/btc/inscriptionBuilder.d.ts.map +1 -1
  61. package/dist/esm/impl/btc/inscriptionBuilder.js +44 -23
  62. package/dist/esm/keychains.d.ts +5 -0
  63. package/dist/esm/keychains.d.ts.map +1 -1
  64. package/dist/esm/keychains.js +9 -1
  65. package/dist/esm/transaction/fixedScript/SigningError.d.ts +4 -0
  66. package/dist/esm/transaction/fixedScript/SigningError.d.ts.map +1 -1
  67. package/dist/esm/transaction/fixedScript/SigningError.js +8 -1
  68. package/dist/esm/transaction/fixedScript/parseOutput.d.ts.map +1 -1
  69. package/dist/esm/transaction/fixedScript/parseOutput.js +3 -2
  70. package/dist/esm/transaction/fixedScript/parseTransaction.d.ts +2 -2
  71. package/dist/esm/transaction/fixedScript/parseTransaction.d.ts.map +1 -1
  72. package/dist/esm/transaction/fixedScript/parseTransaction.js +36 -11
  73. package/dist/esm/transaction/fixedScript/signPsbtWasm.d.ts +1 -0
  74. package/dist/esm/transaction/fixedScript/signPsbtWasm.d.ts.map +1 -1
  75. package/dist/esm/transaction/fixedScript/signPsbtWasm.js +13 -19
  76. package/dist/esm/transaction/outputDifference.d.ts +5 -1
  77. package/dist/esm/transaction/outputDifference.d.ts.map +1 -1
  78. package/dist/esm/transaction/outputDifference.js +5 -2
  79. package/dist/esm/transaction/recipient.d.ts +5 -0
  80. package/dist/esm/transaction/recipient.d.ts.map +1 -1
  81. package/dist/esm/transaction/recipient.js +13 -1
  82. package/package.json +13 -13
  83. package/dist/cjs/test/unit/transaction/descriptor/outputDifference.d.ts.map +0 -1
  84. package/dist/cjs/test/unit/transaction/descriptor/outputDifference.js +0 -76
  85. /package/dist/cjs/test/unit/transaction/{descriptor/outputDifference.d.ts → outputDifference.d.ts} +0 -0
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.matchingOutput = matchingOutput;
4
4
  exports.outputDifference = outputDifference;
5
+ exports.getMissingOutputs = getMissingOutputs;
5
6
  exports.outputDifferencesWithExpected = outputDifferencesWithExpected;
6
7
  /**
7
8
  * @param a
@@ -29,6 +30,9 @@ function outputDifference(first, second) {
29
30
  }
30
31
  return first;
31
32
  }
33
+ function getMissingOutputs(actualOutputs, expectedOutputs) {
34
+ return outputDifference(expectedOutputs, actualOutputs).filter((o) => !o.optional);
35
+ }
32
36
  /**
33
37
  * @param actualOutputs - external outputs in the transaction
34
38
  * @param expectedOutputs - external outputs that were expected to be in the transaction
@@ -37,11 +41,11 @@ function outputDifference(first, second) {
37
41
  function outputDifferencesWithExpected(actualOutputs, expectedOutputs) {
38
42
  const implicitOutputs = outputDifference(actualOutputs, expectedOutputs);
39
43
  const explicitOutputs = outputDifference(actualOutputs, implicitOutputs);
40
- const missingOutputs = outputDifference(expectedOutputs, actualOutputs);
44
+ const missingOutputs = getMissingOutputs(actualOutputs, expectedOutputs);
41
45
  return {
42
46
  explicitOutputs,
43
47
  implicitOutputs,
44
48
  missingOutputs,
45
49
  };
46
50
  }
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0cHV0RGlmZmVyZW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90cmFuc2FjdGlvbi9vdXRwdXREaWZmZXJlbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBZ0JBLHdDQUtDO0FBT0QsNENBWUM7QUFxQkQsc0VBWUM7QUE5REQ7Ozs7R0FJRztBQUNILFNBQWdCLGNBQWMsQ0FBUyxDQUEyQixFQUFFLENBQTJCO0lBQzdGLElBQUksQ0FBQyxDQUFDLEtBQUssS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDLEtBQUssS0FBSyxLQUFLLEVBQUUsQ0FBQztRQUMzQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBQ0QsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQzFELENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQzlCLEtBQVUsRUFDVixNQUFXO0lBRVgsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN0QixLQUFLLE1BQU0sTUFBTSxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQzVCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNoRSxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2pCLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBZ0JEOzs7O0dBSUc7QUFDSCxTQUFnQiw2QkFBNkIsQ0FDM0MsYUFBd0IsRUFDeEIsZUFBNEI7SUFFNUIsTUFBTSxlQUFlLEdBQUcsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ3pFLE1BQU0sZUFBZSxHQUFHLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUN6RSxNQUFNLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQyxlQUFlLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDeEUsT0FBTztRQUNMLGVBQWU7UUFDZixlQUFlO1FBQ2YsY0FBYztLQUNmLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgQ29tcGFyYWJsZU91dHB1dDxUVmFsdWU+ID0ge1xuICBzY3JpcHQ6IEJ1ZmZlcjtcbiAgdmFsdWU6IFRWYWx1ZTtcbn07XG5cbi8qKiBBY3R1YWwgb3V0cHV0cyBoYXZlIGZpeGVkIHZhbHVlcy4gKi9cbmV4cG9ydCB0eXBlIEFjdHVhbE91dHB1dCA9IENvbXBhcmFibGVPdXRwdXQ8YmlnaW50PjtcblxuLyoqIEV4cGVjdGVkIG91dHB1dHMgY2FuIGhhdmUgYSBmaXhlZCB2YWx1ZSBvciAnbWF4Jy4gKi9cbmV4cG9ydCB0eXBlIEV4cGVjdGVkT3V0cHV0ID0gQ29tcGFyYWJsZU91dHB1dDxiaWdpbnQgfCAnbWF4Jz47XG5cbi8qKlxuICogQHBhcmFtIGFcbiAqIEBwYXJhbSBiXG4gKiBAcmV0dXJucyB3aGV0aGVyIHRoZSB0d28gb3V0cHV0cyBhcmUgZXF1YWwuIE91dHB1dHMgd2l0aCB2YWx1ZSBgbWF4YCBhcmUgY29uc2lkZXJlZCBlcXVhbCB0byBhbnkgb3RoZXIgb3V0cHV0IHdpdGggdGhlIHNhbWUgc2NyaXB0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2hpbmdPdXRwdXQ8VFZhbHVlPihhOiBDb21wYXJhYmxlT3V0cHV0PFRWYWx1ZT4sIGI6IENvbXBhcmFibGVPdXRwdXQ8VFZhbHVlPik6IGJvb2xlYW4ge1xuICBpZiAoYS52YWx1ZSA9PT0gJ21heCcgfHwgYi52YWx1ZSA9PT0gJ21heCcpIHtcbiAgICByZXR1cm4gYS5zY3JpcHQuZXF1YWxzKGIuc2NyaXB0KTtcbiAgfVxuICByZXR1cm4gYS5zY3JpcHQuZXF1YWxzKGIuc2NyaXB0KSAmJiBhLnZhbHVlID09PSBiLnZhbHVlO1xufVxuXG4vKipcbiAqIEByZXR1cm5zIGFsbCBvdXRwdXRzIGluIHRoZSBmaXJzdCBhcnJheSB0aGF0IGFyZSBub3QgaW4gdGhlIHNlY29uZCBhcnJheS5cbiAqIE91dHB1dHMgY2FuIG9jY3VyIG1vcmUgdGhhbiBvbmNlIGluIGVhY2ggYXJyYXkuXG4gKiBBbiBvdXRwdXQgd2l0aCB2YWx1ZSBgbWF4YCBpcyBjb25zaWRlcmVkIGVxdWFsIHRvIGFueSBvdGhlciBvdXRwdXQgd2l0aCB0aGUgc2FtZSBzY3JpcHQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvdXRwdXREaWZmZXJlbmNlPEEgZXh0ZW5kcyBBY3R1YWxPdXRwdXQgfCBFeHBlY3RlZE91dHB1dCwgQiBleHRlbmRzIEFjdHVhbE91dHB1dCB8IEV4cGVjdGVkT3V0cHV0PihcbiAgZmlyc3Q6IEFbXSxcbiAgc2Vjb25kOiBCW11cbik6IEFbXSB7XG4gIGZpcnN0ID0gZmlyc3Quc2xpY2UoKTtcbiAgZm9yIChjb25zdCBvdXRwdXQgb2Ygc2Vjb25kKSB7XG4gICAgY29uc3QgaW5kZXggPSBmaXJzdC5maW5kSW5kZXgoKG8pID0+IG1hdGNoaW5nT3V0cHV0KG8sIG91dHB1dCkpO1xuICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgIGZpcnN0LnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBmaXJzdDtcbn1cblxuZXhwb3J0IHR5cGUgT3V0cHV0RGlmZmVyZW5jZVdpdGhFeHBlY3RlZDxUQWN0dWFsIGV4dGVuZHMgQWN0dWFsT3V0cHV0LCBURXhwZWN0ZWQgZXh0ZW5kcyBFeHBlY3RlZE91dHB1dD4gPSB7XG4gIC8qKiBUaGVzZSBhcmUgdGhlIGV4dGVybmFsIG91dHB1dHMgdGhhdCB3ZXJlIGV4cGVjdGVkIGFuZCBmb3VuZCBpbiB0aGUgdHJhbnNhY3Rpb24uICovXG4gIGV4cGxpY2l0T3V0cHV0czogVEFjdHVhbFtdO1xuICAvKipcbiAgICogVGhlc2UgYXJlIHRoZSBzdXJwcmlzZSBleHRlcm5hbCBvdXRwdXRzIHRoYXQgd2VyZSBub3QgZXhwbGljaXRseSBzcGVjaWZpZWQgaW4gdGhlIHRyYW5zYWN0aW9uLlxuICAgKiBUaGV5IGNhbiBiZSBQYXlHbyBmZWVzLlxuICAgKi9cbiAgaW1wbGljaXRPdXRwdXRzOiBUQWN0dWFsW107XG4gIC8qKlxuICAgKiBUaGVzZSBhcmUgdGhlIG91dHB1dHMgdGhhdCB3ZXJlIGV4cGVjdGVkIHRvIGJlIGluIHRoZSB0cmFuc2FjdGlvbiBidXQgd2VyZSBub3QgZm91bmQuXG4gICAqL1xuICBtaXNzaW5nT3V0cHV0czogVEV4cGVjdGVkW107XG59O1xuXG4vKipcbiAqIEBwYXJhbSBhY3R1YWxPdXRwdXRzIC0gZXh0ZXJuYWwgb3V0cHV0cyBpbiB0aGUgdHJhbnNhY3Rpb25cbiAqIEBwYXJhbSBleHBlY3RlZE91dHB1dHMgLSBleHRlcm5hbCBvdXRwdXRzIHRoYXQgd2VyZSBleHBlY3RlZCB0byBiZSBpbiB0aGUgdHJhbnNhY3Rpb25cbiAqIEByZXR1cm5zIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIGFjdHVhbCBhbmQgZXhwZWN0ZWQgZXh0ZXJuYWwgb3V0cHV0c1xuICovXG5leHBvcnQgZnVuY3Rpb24gb3V0cHV0RGlmZmVyZW5jZXNXaXRoRXhwZWN0ZWQ8VEFjdHVhbCBleHRlbmRzIEFjdHVhbE91dHB1dCwgVEV4cGVjdGVkIGV4dGVuZHMgRXhwZWN0ZWRPdXRwdXQ+KFxuICBhY3R1YWxPdXRwdXRzOiBUQWN0dWFsW10sXG4gIGV4cGVjdGVkT3V0cHV0czogVEV4cGVjdGVkW11cbik6IE91dHB1dERpZmZlcmVuY2VXaXRoRXhwZWN0ZWQ8VEFjdHVhbCwgVEV4cGVjdGVkPiB7XG4gIGNvbnN0IGltcGxpY2l0T3V0cHV0cyA9IG91dHB1dERpZmZlcmVuY2UoYWN0dWFsT3V0cHV0cywgZXhwZWN0ZWRPdXRwdXRzKTtcbiAgY29uc3QgZXhwbGljaXRPdXRwdXRzID0gb3V0cHV0RGlmZmVyZW5jZShhY3R1YWxPdXRwdXRzLCBpbXBsaWNpdE91dHB1dHMpO1xuICBjb25zdCBtaXNzaW5nT3V0cHV0cyA9IG91dHB1dERpZmZlcmVuY2UoZXhwZWN0ZWRPdXRwdXRzLCBhY3R1YWxPdXRwdXRzKTtcbiAgcmV0dXJuIHtcbiAgICBleHBsaWNpdE91dHB1dHMsXG4gICAgaW1wbGljaXRPdXRwdXRzLFxuICAgIG1pc3NpbmdPdXRwdXRzLFxuICB9O1xufVxuIl19
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0cHV0RGlmZmVyZW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90cmFuc2FjdGlvbi9vdXRwdXREaWZmZXJlbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBbUJBLHdDQUtDO0FBT0QsNENBWUM7QUFFRCw4Q0FLQztBQXFCRCxzRUFZQztBQXJFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsY0FBYyxDQUFTLENBQTJCLEVBQUUsQ0FBMkI7SUFDN0YsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLEtBQUssRUFBRSxDQUFDO1FBQzNDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFDRCxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDMUQsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FDOUIsS0FBVSxFQUNWLE1BQVc7SUFFWCxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3RCLEtBQUssTUFBTSxNQUFNLElBQUksTUFBTSxFQUFFLENBQUM7UUFDNUIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDakIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxTQUFnQixpQkFBaUIsQ0FDL0IsYUFBa0IsRUFDbEIsZUFBb0I7SUFFcEIsT0FBTyxnQkFBZ0IsQ0FBQyxlQUFlLEVBQUUsYUFBYSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNyRixDQUFDO0FBZ0JEOzs7O0dBSUc7QUFDSCxTQUFnQiw2QkFBNkIsQ0FDM0MsYUFBd0IsRUFDeEIsZUFBNEI7SUFFNUIsTUFBTSxlQUFlLEdBQUcsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ3pFLE1BQU0sZUFBZSxHQUFHLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUN6RSxNQUFNLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDekUsT0FBTztRQUNMLGVBQWU7UUFDZixlQUFlO1FBQ2YsY0FBYztLQUNmLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgQ29tcGFyYWJsZU91dHB1dDxUVmFsdWU+ID0ge1xuICBzY3JpcHQ6IEJ1ZmZlcjtcbiAgdmFsdWU6IFRWYWx1ZTtcbn07XG5cbi8qKiBBY3R1YWwgb3V0cHV0cyBoYXZlIGZpeGVkIHZhbHVlcy4gKi9cbmV4cG9ydCB0eXBlIEFjdHVhbE91dHB1dCA9IENvbXBhcmFibGVPdXRwdXQ8YmlnaW50PjtcblxuLyoqIEV4cGVjdGVkIG91dHB1dHMgY2FuIGhhdmUgYSBmaXhlZCB2YWx1ZSBvciAnbWF4Jy4gKi9cbmV4cG9ydCB0eXBlIEV4cGVjdGVkT3V0cHV0ID0gQ29tcGFyYWJsZU91dHB1dDxiaWdpbnQgfCAnbWF4Jz4gJiB7XG4gIC8qKiBXaGVuIHRydWUsIHRoZSBvdXRwdXQgaXMgbm90IHJlcXVpcmVkIHRvIGJlIHByZXNlbnQgaW4gdGhlIHRyYW5zYWN0aW9uLiAqL1xuICBvcHRpb25hbD86IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIEBwYXJhbSBhXG4gKiBAcGFyYW0gYlxuICogQHJldHVybnMgd2hldGhlciB0aGUgdHdvIG91dHB1dHMgYXJlIGVxdWFsLiBPdXRwdXRzIHdpdGggdmFsdWUgYG1heGAgYXJlIGNvbnNpZGVyZWQgZXF1YWwgdG8gYW55IG90aGVyIG91dHB1dCB3aXRoIHRoZSBzYW1lIHNjcmlwdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hdGNoaW5nT3V0cHV0PFRWYWx1ZT4oYTogQ29tcGFyYWJsZU91dHB1dDxUVmFsdWU+LCBiOiBDb21wYXJhYmxlT3V0cHV0PFRWYWx1ZT4pOiBib29sZWFuIHtcbiAgaWYgKGEudmFsdWUgPT09ICdtYXgnIHx8IGIudmFsdWUgPT09ICdtYXgnKSB7XG4gICAgcmV0dXJuIGEuc2NyaXB0LmVxdWFscyhiLnNjcmlwdCk7XG4gIH1cbiAgcmV0dXJuIGEuc2NyaXB0LmVxdWFscyhiLnNjcmlwdCkgJiYgYS52YWx1ZSA9PT0gYi52YWx1ZTtcbn1cblxuLyoqXG4gKiBAcmV0dXJucyBhbGwgb3V0cHV0cyBpbiB0aGUgZmlyc3QgYXJyYXkgdGhhdCBhcmUgbm90IGluIHRoZSBzZWNvbmQgYXJyYXkuXG4gKiBPdXRwdXRzIGNhbiBvY2N1ciBtb3JlIHRoYW4gb25jZSBpbiBlYWNoIGFycmF5LlxuICogQW4gb3V0cHV0IHdpdGggdmFsdWUgYG1heGAgaXMgY29uc2lkZXJlZCBlcXVhbCB0byBhbnkgb3RoZXIgb3V0cHV0IHdpdGggdGhlIHNhbWUgc2NyaXB0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gb3V0cHV0RGlmZmVyZW5jZTxBIGV4dGVuZHMgQWN0dWFsT3V0cHV0IHwgRXhwZWN0ZWRPdXRwdXQsIEIgZXh0ZW5kcyBBY3R1YWxPdXRwdXQgfCBFeHBlY3RlZE91dHB1dD4oXG4gIGZpcnN0OiBBW10sXG4gIHNlY29uZDogQltdXG4pOiBBW10ge1xuICBmaXJzdCA9IGZpcnN0LnNsaWNlKCk7XG4gIGZvciAoY29uc3Qgb3V0cHV0IG9mIHNlY29uZCkge1xuICAgIGNvbnN0IGluZGV4ID0gZmlyc3QuZmluZEluZGV4KChvKSA9PiBtYXRjaGluZ091dHB1dChvLCBvdXRwdXQpKTtcbiAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICBmaXJzdC5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZmlyc3Q7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRNaXNzaW5nT3V0cHV0czxBIGV4dGVuZHMgQWN0dWFsT3V0cHV0LCBCIGV4dGVuZHMgRXhwZWN0ZWRPdXRwdXQ+KFxuICBhY3R1YWxPdXRwdXRzOiBBW10sXG4gIGV4cGVjdGVkT3V0cHV0czogQltdXG4pOiBCW10ge1xuICByZXR1cm4gb3V0cHV0RGlmZmVyZW5jZShleHBlY3RlZE91dHB1dHMsIGFjdHVhbE91dHB1dHMpLmZpbHRlcigobykgPT4gIW8ub3B0aW9uYWwpO1xufVxuXG5leHBvcnQgdHlwZSBPdXRwdXREaWZmZXJlbmNlV2l0aEV4cGVjdGVkPFRBY3R1YWwgZXh0ZW5kcyBBY3R1YWxPdXRwdXQsIFRFeHBlY3RlZCBleHRlbmRzIEV4cGVjdGVkT3V0cHV0PiA9IHtcbiAgLyoqIFRoZXNlIGFyZSB0aGUgZXh0ZXJuYWwgb3V0cHV0cyB0aGF0IHdlcmUgZXhwZWN0ZWQgYW5kIGZvdW5kIGluIHRoZSB0cmFuc2FjdGlvbi4gKi9cbiAgZXhwbGljaXRPdXRwdXRzOiBUQWN0dWFsW107XG4gIC8qKlxuICAgKiBUaGVzZSBhcmUgdGhlIHN1cnByaXNlIGV4dGVybmFsIG91dHB1dHMgdGhhdCB3ZXJlIG5vdCBleHBsaWNpdGx5IHNwZWNpZmllZCBpbiB0aGUgdHJhbnNhY3Rpb24uXG4gICAqIFRoZXkgY2FuIGJlIFBheUdvIGZlZXMuXG4gICAqL1xuICBpbXBsaWNpdE91dHB1dHM6IFRBY3R1YWxbXTtcbiAgLyoqXG4gICAqIFRoZXNlIGFyZSB0aGUgb3V0cHV0cyB0aGF0IHdlcmUgZXhwZWN0ZWQgdG8gYmUgaW4gdGhlIHRyYW5zYWN0aW9uIGJ1dCB3ZXJlIG5vdCBmb3VuZC5cbiAgICovXG4gIG1pc3NpbmdPdXRwdXRzOiBURXhwZWN0ZWRbXTtcbn07XG5cbi8qKlxuICogQHBhcmFtIGFjdHVhbE91dHB1dHMgLSBleHRlcm5hbCBvdXRwdXRzIGluIHRoZSB0cmFuc2FjdGlvblxuICogQHBhcmFtIGV4cGVjdGVkT3V0cHV0cyAtIGV4dGVybmFsIG91dHB1dHMgdGhhdCB3ZXJlIGV4cGVjdGVkIHRvIGJlIGluIHRoZSB0cmFuc2FjdGlvblxuICogQHJldHVybnMgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgYWN0dWFsIGFuZCBleHBlY3RlZCBleHRlcm5hbCBvdXRwdXRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvdXRwdXREaWZmZXJlbmNlc1dpdGhFeHBlY3RlZDxUQWN0dWFsIGV4dGVuZHMgQWN0dWFsT3V0cHV0LCBURXhwZWN0ZWQgZXh0ZW5kcyBFeHBlY3RlZE91dHB1dD4oXG4gIGFjdHVhbE91dHB1dHM6IFRBY3R1YWxbXSxcbiAgZXhwZWN0ZWRPdXRwdXRzOiBURXhwZWN0ZWRbXVxuKTogT3V0cHV0RGlmZmVyZW5jZVdpdGhFeHBlY3RlZDxUQWN0dWFsLCBURXhwZWN0ZWQ+IHtcbiAgY29uc3QgaW1wbGljaXRPdXRwdXRzID0gb3V0cHV0RGlmZmVyZW5jZShhY3R1YWxPdXRwdXRzLCBleHBlY3RlZE91dHB1dHMpO1xuICBjb25zdCBleHBsaWNpdE91dHB1dHMgPSBvdXRwdXREaWZmZXJlbmNlKGFjdHVhbE91dHB1dHMsIGltcGxpY2l0T3V0cHV0cyk7XG4gIGNvbnN0IG1pc3NpbmdPdXRwdXRzID0gZ2V0TWlzc2luZ091dHB1dHMoYWN0dWFsT3V0cHV0cywgZXhwZWN0ZWRPdXRwdXRzKTtcbiAgcmV0dXJuIHtcbiAgICBleHBsaWNpdE91dHB1dHMsXG4gICAgaW1wbGljaXRPdXRwdXRzLFxuICAgIG1pc3NpbmdPdXRwdXRzLFxuICB9O1xufVxuIl19
@@ -15,6 +15,11 @@ export declare function fromExtendedAddressFormat(extendedAddress: string): {
15
15
  script: string;
16
16
  };
17
17
  export declare function fromExtendedAddressFormatToScript(extendedAddress: string, coinName: UtxoCoinName): Buffer;
18
+ export declare function toOutputScript(v: string | {
19
+ address: string;
20
+ } | {
21
+ script: string;
22
+ }, coinName: UtxoCoinName): Buffer;
18
23
  /**
19
24
  * Convert a script or address to the extended address format.
20
25
  * @param script
@@ -1 +1 @@
1
- {"version":3,"file":"recipient.d.ts","sourceRoot":"","sources":["../../../../src/transaction/recipient.ts"],"names":[],"mappings":"AAEA,OAAO,EAA0B,YAAY,EAAE,MAAM,UAAU,CAAC;AAIhE;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,eAAe,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAK3G;AAED,wBAAgB,iCAAiC,CAAC,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,MAAM,CAOzG;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,MAAM,CAKtF;AAED,wBAAgB,+BAA+B,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAUpH"}
1
+ {"version":3,"file":"recipient.d.ts","sourceRoot":"","sources":["../../../../src/transaction/recipient.ts"],"names":[],"mappings":"AAEA,OAAO,EAA0B,YAAY,EAAE,MAAM,UAAU,CAAC;AAIhE;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,eAAe,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAK3G;AAED,wBAAgB,iCAAiC,CAAC,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,MAAM,CAOzG;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,QAAQ,EAAE,YAAY,GAAG,MAAM,CAWnH;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,MAAM,CAKtF;AAED,wBAAgB,+BAA+B,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAUpH"}
@@ -36,6 +36,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.isScriptRecipient = isScriptRecipient;
37
37
  exports.fromExtendedAddressFormat = fromExtendedAddressFormat;
38
38
  exports.fromExtendedAddressFormatToScript = fromExtendedAddressFormatToScript;
39
+ exports.toOutputScript = toOutputScript;
39
40
  exports.toExtendedAddressFormat = toExtendedAddressFormat;
40
41
  exports.assertValidTransactionRecipient = assertValidTransactionRecipient;
41
42
  const utxolib = __importStar(require("@bitgo/utxo-lib"));
@@ -67,6 +68,18 @@ function fromExtendedAddressFormatToScript(extendedAddress, coinName) {
67
68
  const network = (0, names_1.getNetworkFromCoinName)(coinName);
68
69
  return utxolib.addressFormat.toOutputScriptTryFormats(result.address, network);
69
70
  }
71
+ function toOutputScript(v, coinName) {
72
+ if (typeof v === 'string') {
73
+ return fromExtendedAddressFormatToScript(v, coinName);
74
+ }
75
+ if ('script' in v) {
76
+ return Buffer.from(v.script, 'hex');
77
+ }
78
+ if ('address' in v) {
79
+ return fromExtendedAddressFormatToScript(v.address, coinName);
80
+ }
81
+ throw new Error('invalid input');
82
+ }
70
83
  /**
71
84
  * Convert a script or address to the extended address format.
72
85
  * @param script
@@ -88,4 +101,4 @@ function assertValidTransactionRecipient(output) {
88
101
  }
89
102
  }
90
103
  }
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL3JlY2lwaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVVBLDhDQUVDO0FBT0QsOERBS0M7QUFFRCw4RUFPQztBQVFELDBEQUtDO0FBRUQsMEVBVUM7QUExREQseURBQTJDO0FBRTNDLG9DQUFnRTtBQUVoRSxNQUFNLHFCQUFxQixHQUFHLGVBQWUsQ0FBQztBQUU5Qzs7O0dBR0c7QUFDSCxTQUFnQixpQkFBaUIsQ0FBQyxPQUFlO0lBQy9DLE9BQU8sT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0FBQy9FLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IseUJBQXlCLENBQUMsZUFBdUI7SUFDL0QsSUFBSSxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1FBQ3ZDLE9BQU8sRUFBRSxNQUFNLEVBQUUsZUFBZSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO0lBQ3pFLENBQUM7SUFDRCxPQUFPLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxDQUFDO0FBQ3RDLENBQUM7QUFFRCxTQUFnQixpQ0FBaUMsQ0FBQyxlQUF1QixFQUFFLFFBQXNCO0lBQy9GLE1BQU0sTUFBTSxHQUFHLHlCQUF5QixDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzFELElBQUksUUFBUSxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ3ZCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFDRCxNQUFNLE9BQU8sR0FBRyxJQUFBLDhCQUFzQixFQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pELE9BQU8sT0FBTyxDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2pGLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLHVCQUF1QixDQUFDLE1BQWMsRUFBRSxRQUFzQjtJQUM1RSxNQUFNLE9BQU8sR0FBRyxJQUFBLDhCQUFzQixFQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pELE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUztRQUM1QyxDQUFDLENBQUMsR0FBRyxxQkFBcUIsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ3JELENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN4RCxDQUFDO0FBRUQsU0FBZ0IsK0JBQStCLENBQUMsTUFBOEQ7SUFDNUcsK0dBQStHO0lBQy9HLHNGQUFzRjtJQUN0RixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUN6RCxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDckMsTUFBTSxJQUFJLEtBQUssQ0FDYix1RUFBdUUsTUFBTSxDQUFDLE1BQU0sY0FBYyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQ25ILENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5cbmltcG9ydCB7IGdldE5ldHdvcmtGcm9tQ29pbk5hbWUsIFV0eG9Db2luTmFtZSB9IGZyb20gJy4uL25hbWVzJztcblxuY29uc3QgU2NyaXB0UmVjaXBpZW50UHJlZml4ID0gJ3NjcmlwdFB1YktleTonO1xuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBhZGRyZXNzIGlzIGEgc2NyaXB0IHJlY2lwaWVudCAoc3RhcnRzIHdpdGggYHNjcmlwdFB1YktleTpgKS5cbiAqIEBwYXJhbSBhZGRyZXNzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1NjcmlwdFJlY2lwaWVudChhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIGFkZHJlc3MudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKFNjcmlwdFJlY2lwaWVudFByZWZpeC50b0xvd2VyQ2FzZSgpKTtcbn1cblxuLyoqXG4gKiBBbiBleHRlbmRlZCBhZGRyZXNzIGlzIG9uZSB0aGF0IGVuY29kZXMgZWl0aGVyIGEgcmVndWxhciBhZGRyZXNzIG9yIGEgaGV4IGVuY29kZWQgc2NyaXB0IHdpdGggdGhlIHByZWZpeCBgc2NyaXB0UHViS2V5OmAuXG4gKiBUaGlzIGZ1bmN0aW9uIGNvbnZlcnRzIHRoZSBleHRlbmRlZCBhZGRyZXNzIGZvcm1hdCB0byBlaXRoZXIgYSBzY3JpcHQgb3IgYW4gYWRkcmVzcy5cbiAqIEBwYXJhbSBleHRlbmRlZEFkZHJlc3NcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb21FeHRlbmRlZEFkZHJlc3NGb3JtYXQoZXh0ZW5kZWRBZGRyZXNzOiBzdHJpbmcpOiB7IGFkZHJlc3M6IHN0cmluZyB9IHwgeyBzY3JpcHQ6IHN0cmluZyB9IHtcbiAgaWYgKGlzU2NyaXB0UmVjaXBpZW50KGV4dGVuZGVkQWRkcmVzcykpIHtcbiAgICByZXR1cm4geyBzY3JpcHQ6IGV4dGVuZGVkQWRkcmVzcy5zbGljZShTY3JpcHRSZWNpcGllbnRQcmVmaXgubGVuZ3RoKSB9O1xuICB9XG4gIHJldHVybiB7IGFkZHJlc3M6IGV4dGVuZGVkQWRkcmVzcyB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZnJvbUV4dGVuZGVkQWRkcmVzc0Zvcm1hdFRvU2NyaXB0KGV4dGVuZGVkQWRkcmVzczogc3RyaW5nLCBjb2luTmFtZTogVXR4b0NvaW5OYW1lKTogQnVmZmVyIHtcbiAgY29uc3QgcmVzdWx0ID0gZnJvbUV4dGVuZGVkQWRkcmVzc0Zvcm1hdChleHRlbmRlZEFkZHJlc3MpO1xuICBpZiAoJ3NjcmlwdCcgaW4gcmVzdWx0KSB7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKHJlc3VsdC5zY3JpcHQsICdoZXgnKTtcbiAgfVxuICBjb25zdCBuZXR3b3JrID0gZ2V0TmV0d29ya0Zyb21Db2luTmFtZShjb2luTmFtZSk7XG4gIHJldHVybiB1dHhvbGliLmFkZHJlc3NGb3JtYXQudG9PdXRwdXRTY3JpcHRUcnlGb3JtYXRzKHJlc3VsdC5hZGRyZXNzLCBuZXR3b3JrKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGEgc2NyaXB0IG9yIGFkZHJlc3MgdG8gdGhlIGV4dGVuZGVkIGFkZHJlc3MgZm9ybWF0LlxuICogQHBhcmFtIHNjcmlwdFxuICogQHBhcmFtIGNvaW5OYW1lXG4gKiBAcmV0dXJucyBpZiB0aGUgc2NyaXB0IGlzIGFuIE9QX1JFVFVSTiBzY3JpcHQsIHRoZW4gaXQgd2lsbCBiZSBwcmVmaXhlZCB3aXRoIGBzY3JpcHRQdWJLZXk6YCwgb3RoZXJ3aXNlIGl0IHdpbGwgYmUgY29udmVydGVkIHRvIGFuIGFkZHJlc3MuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0V4dGVuZGVkQWRkcmVzc0Zvcm1hdChzY3JpcHQ6IEJ1ZmZlciwgY29pbk5hbWU6IFV0eG9Db2luTmFtZSk6IHN0cmluZyB7XG4gIGNvbnN0IG5ldHdvcmsgPSBnZXROZXR3b3JrRnJvbUNvaW5OYW1lKGNvaW5OYW1lKTtcbiAgcmV0dXJuIHNjcmlwdFswXSA9PT0gdXR4b2xpYi5vcGNvZGVzLk9QX1JFVFVSTlxuICAgID8gYCR7U2NyaXB0UmVjaXBpZW50UHJlZml4fSR7c2NyaXB0LnRvU3RyaW5nKCdoZXgnKX1gXG4gICAgOiB1dHhvbGliLmFkZHJlc3MuZnJvbU91dHB1dFNjcmlwdChzY3JpcHQsIG5ldHdvcmspO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0VmFsaWRUcmFuc2FjdGlvblJlY2lwaWVudChvdXRwdXQ6IHsgYW1vdW50OiBiaWdpbnQgfCBudW1iZXIgfCBzdHJpbmc7IGFkZHJlc3M/OiBzdHJpbmcgfSk6IHZvaWQge1xuICAvLyBJbiB0aGUgY2FzZSB0aGF0IHRoaXMgaXMgYW4gT1BfUkVUVVJOIG91dHB1dCBvciBhbm90aGVyIG5vbi1lbmNvZGFibGUgc2NyaXB0UHVia2V5LCB3ZSBkb250IGhhdmUgYW4gYWRkcmVzcy5cbiAgLy8gV2Ugd2lsbCB2ZXJpZnkgdGhhdCB0aGUgYW1vdW50IGlzIHplcm8sIGFuZCBpZiBpdCBpc250IHRoZW4gd2Ugd2lsbCB0aHJvdyBhbiBlcnJvci5cbiAgaWYgKCFvdXRwdXQuYWRkcmVzcyB8fCBpc1NjcmlwdFJlY2lwaWVudChvdXRwdXQuYWRkcmVzcykpIHtcbiAgICBpZiAob3V0cHV0LmFtb3VudC50b1N0cmluZygpICE9PSAnMCcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYE9ubHkgemVybyBhbW91bnRzIGFsbG93ZWQgZm9yIG5vbi1lbmNvZGVhYmxlIHNjcmlwdFB1YmtleXM6IGFtb3VudDogJHtvdXRwdXQuYW1vdW50fSwgYWRkcmVzczogJHtvdXRwdXQuYWRkcmVzc31gXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIl19
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL3JlY2lwaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVVBLDhDQUVDO0FBT0QsOERBS0M7QUFFRCw4RUFPQztBQUVELHdDQVdDO0FBUUQsMERBS0M7QUFFRCwwRUFVQztBQXZFRCx5REFBMkM7QUFFM0Msb0NBQWdFO0FBRWhFLE1BQU0scUJBQXFCLEdBQUcsZUFBZSxDQUFDO0FBRTlDOzs7R0FHRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLE9BQWU7SUFDL0MsT0FBTyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsVUFBVSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFDL0UsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQix5QkFBeUIsQ0FBQyxlQUF1QjtJQUMvRCxJQUFJLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7UUFDdkMsT0FBTyxFQUFFLE1BQU0sRUFBRSxlQUFlLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7SUFDekUsQ0FBQztJQUNELE9BQU8sRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLENBQUM7QUFDdEMsQ0FBQztBQUVELFNBQWdCLGlDQUFpQyxDQUFDLGVBQXVCLEVBQUUsUUFBc0I7SUFDL0YsTUFBTSxNQUFNLEdBQUcseUJBQXlCLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDMUQsSUFBSSxRQUFRLElBQUksTUFBTSxFQUFFLENBQUM7UUFDdkIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUNELE1BQU0sT0FBTyxHQUFHLElBQUEsOEJBQXNCLEVBQUMsUUFBUSxDQUFDLENBQUM7SUFDakQsT0FBTyxPQUFPLENBQUMsYUFBYSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDakYsQ0FBQztBQUVELFNBQWdCLGNBQWMsQ0FBQyxDQUFvRCxFQUFFLFFBQXNCO0lBQ3pHLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDMUIsT0FBTyxpQ0FBaUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUNELElBQUksUUFBUSxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2xCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFDRCxJQUFJLFNBQVMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNuQixPQUFPLGlDQUFpQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7QUFDbkMsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsdUJBQXVCLENBQUMsTUFBYyxFQUFFLFFBQXNCO0lBQzVFLE1BQU0sT0FBTyxHQUFHLElBQUEsOEJBQXNCLEVBQUMsUUFBUSxDQUFDLENBQUM7SUFDakQsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTO1FBQzVDLENBQUMsQ0FBQyxHQUFHLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDckQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3hELENBQUM7QUFFRCxTQUFnQiwrQkFBK0IsQ0FBQyxNQUE4RDtJQUM1RywrR0FBK0c7SUFDL0csc0ZBQXNGO0lBQ3RGLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ3pELElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNyQyxNQUFNLElBQUksS0FBSyxDQUNiLHVFQUF1RSxNQUFNLENBQUMsTUFBTSxjQUFjLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FDbkgsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcblxuaW1wb3J0IHsgZ2V0TmV0d29ya0Zyb21Db2luTmFtZSwgVXR4b0NvaW5OYW1lIH0gZnJvbSAnLi4vbmFtZXMnO1xuXG5jb25zdCBTY3JpcHRSZWNpcGllbnRQcmVmaXggPSAnc2NyaXB0UHViS2V5Oic7XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIGFkZHJlc3MgaXMgYSBzY3JpcHQgcmVjaXBpZW50IChzdGFydHMgd2l0aCBgc2NyaXB0UHViS2V5OmApLlxuICogQHBhcmFtIGFkZHJlc3NcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU2NyaXB0UmVjaXBpZW50KGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gYWRkcmVzcy50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoU2NyaXB0UmVjaXBpZW50UHJlZml4LnRvTG93ZXJDYXNlKCkpO1xufVxuXG4vKipcbiAqIEFuIGV4dGVuZGVkIGFkZHJlc3MgaXMgb25lIHRoYXQgZW5jb2RlcyBlaXRoZXIgYSByZWd1bGFyIGFkZHJlc3Mgb3IgYSBoZXggZW5jb2RlZCBzY3JpcHQgd2l0aCB0aGUgcHJlZml4IGBzY3JpcHRQdWJLZXk6YC5cbiAqIFRoaXMgZnVuY3Rpb24gY29udmVydHMgdGhlIGV4dGVuZGVkIGFkZHJlc3MgZm9ybWF0IHRvIGVpdGhlciBhIHNjcmlwdCBvciBhbiBhZGRyZXNzLlxuICogQHBhcmFtIGV4dGVuZGVkQWRkcmVzc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZnJvbUV4dGVuZGVkQWRkcmVzc0Zvcm1hdChleHRlbmRlZEFkZHJlc3M6IHN0cmluZyk6IHsgYWRkcmVzczogc3RyaW5nIH0gfCB7IHNjcmlwdDogc3RyaW5nIH0ge1xuICBpZiAoaXNTY3JpcHRSZWNpcGllbnQoZXh0ZW5kZWRBZGRyZXNzKSkge1xuICAgIHJldHVybiB7IHNjcmlwdDogZXh0ZW5kZWRBZGRyZXNzLnNsaWNlKFNjcmlwdFJlY2lwaWVudFByZWZpeC5sZW5ndGgpIH07XG4gIH1cbiAgcmV0dXJuIHsgYWRkcmVzczogZXh0ZW5kZWRBZGRyZXNzIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmcm9tRXh0ZW5kZWRBZGRyZXNzRm9ybWF0VG9TY3JpcHQoZXh0ZW5kZWRBZGRyZXNzOiBzdHJpbmcsIGNvaW5OYW1lOiBVdHhvQ29pbk5hbWUpOiBCdWZmZXIge1xuICBjb25zdCByZXN1bHQgPSBmcm9tRXh0ZW5kZWRBZGRyZXNzRm9ybWF0KGV4dGVuZGVkQWRkcmVzcyk7XG4gIGlmICgnc2NyaXB0JyBpbiByZXN1bHQpIHtcbiAgICByZXR1cm4gQnVmZmVyLmZyb20ocmVzdWx0LnNjcmlwdCwgJ2hleCcpO1xuICB9XG4gIGNvbnN0IG5ldHdvcmsgPSBnZXROZXR3b3JrRnJvbUNvaW5OYW1lKGNvaW5OYW1lKTtcbiAgcmV0dXJuIHV0eG9saWIuYWRkcmVzc0Zvcm1hdC50b091dHB1dFNjcmlwdFRyeUZvcm1hdHMocmVzdWx0LmFkZHJlc3MsIG5ldHdvcmspO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9PdXRwdXRTY3JpcHQodjogc3RyaW5nIHwgeyBhZGRyZXNzOiBzdHJpbmcgfSB8IHsgc2NyaXB0OiBzdHJpbmcgfSwgY29pbk5hbWU6IFV0eG9Db2luTmFtZSk6IEJ1ZmZlciB7XG4gIGlmICh0eXBlb2YgdiA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZnJvbUV4dGVuZGVkQWRkcmVzc0Zvcm1hdFRvU2NyaXB0KHYsIGNvaW5OYW1lKTtcbiAgfVxuICBpZiAoJ3NjcmlwdCcgaW4gdikge1xuICAgIHJldHVybiBCdWZmZXIuZnJvbSh2LnNjcmlwdCwgJ2hleCcpO1xuICB9XG4gIGlmICgnYWRkcmVzcycgaW4gdikge1xuICAgIHJldHVybiBmcm9tRXh0ZW5kZWRBZGRyZXNzRm9ybWF0VG9TY3JpcHQodi5hZGRyZXNzLCBjb2luTmFtZSk7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIGlucHV0Jyk7XG59XG5cbi8qKlxuICogQ29udmVydCBhIHNjcmlwdCBvciBhZGRyZXNzIHRvIHRoZSBleHRlbmRlZCBhZGRyZXNzIGZvcm1hdC5cbiAqIEBwYXJhbSBzY3JpcHRcbiAqIEBwYXJhbSBjb2luTmFtZVxuICogQHJldHVybnMgaWYgdGhlIHNjcmlwdCBpcyBhbiBPUF9SRVRVUk4gc2NyaXB0LCB0aGVuIGl0IHdpbGwgYmUgcHJlZml4ZWQgd2l0aCBgc2NyaXB0UHViS2V5OmAsIG90aGVyd2lzZSBpdCB3aWxsIGJlIGNvbnZlcnRlZCB0byBhbiBhZGRyZXNzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9FeHRlbmRlZEFkZHJlc3NGb3JtYXQoc2NyaXB0OiBCdWZmZXIsIGNvaW5OYW1lOiBVdHhvQ29pbk5hbWUpOiBzdHJpbmcge1xuICBjb25zdCBuZXR3b3JrID0gZ2V0TmV0d29ya0Zyb21Db2luTmFtZShjb2luTmFtZSk7XG4gIHJldHVybiBzY3JpcHRbMF0gPT09IHV0eG9saWIub3Bjb2Rlcy5PUF9SRVRVUk5cbiAgICA/IGAke1NjcmlwdFJlY2lwaWVudFByZWZpeH0ke3NjcmlwdC50b1N0cmluZygnaGV4Jyl9YFxuICAgIDogdXR4b2xpYi5hZGRyZXNzLmZyb21PdXRwdXRTY3JpcHQoc2NyaXB0LCBuZXR3b3JrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydFZhbGlkVHJhbnNhY3Rpb25SZWNpcGllbnQob3V0cHV0OiB7IGFtb3VudDogYmlnaW50IHwgbnVtYmVyIHwgc3RyaW5nOyBhZGRyZXNzPzogc3RyaW5nIH0pOiB2b2lkIHtcbiAgLy8gSW4gdGhlIGNhc2UgdGhhdCB0aGlzIGlzIGFuIE9QX1JFVFVSTiBvdXRwdXQgb3IgYW5vdGhlciBub24tZW5jb2RhYmxlIHNjcmlwdFB1YmtleSwgd2UgZG9udCBoYXZlIGFuIGFkZHJlc3MuXG4gIC8vIFdlIHdpbGwgdmVyaWZ5IHRoYXQgdGhlIGFtb3VudCBpcyB6ZXJvLCBhbmQgaWYgaXQgaXNudCB0aGVuIHdlIHdpbGwgdGhyb3cgYW4gZXJyb3IuXG4gIGlmICghb3V0cHV0LmFkZHJlc3MgfHwgaXNTY3JpcHRSZWNpcGllbnQob3V0cHV0LmFkZHJlc3MpKSB7XG4gICAgaWYgKG91dHB1dC5hbW91bnQudG9TdHJpbmcoKSAhPT0gJzAnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBPbmx5IHplcm8gYW1vdW50cyBhbGxvd2VkIGZvciBub24tZW5jb2RlYWJsZSBzY3JpcHRQdWJrZXlzOiBhbW91bnQ6ICR7b3V0cHV0LmFtb3VudH0sIGFkZHJlc3M6ICR7b3V0cHV0LmFkZHJlc3N9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -39,7 +39,12 @@ const names_1 = require("../../src/names");
39
39
  const util_1 = require("./util");
40
40
  describe('utxoCoins', function () {
41
41
  it('has expected chain/network values for items', function () {
42
- assert.deepStrictEqual(util_1.utxoCoins.map((c) => [c.getChain(), c.getFamily(), c.getFullName(), utxolib.getNetworkName(c.network)]), [
42
+ assert.deepStrictEqual(util_1.utxoCoins.map((c) => [
43
+ c.getChain(),
44
+ c.getFamily(),
45
+ c.getFullName(),
46
+ utxolib.getNetworkName((0, names_1.getNetworkFromCoinName)(c.name)),
47
+ ]), [
43
48
  ['btc', 'btc', 'Bitcoin', 'bitcoin'],
44
49
  ['tbtc', 'btc', 'Testnet Bitcoin', 'testnet'],
45
50
  ['tbtcsig', 'btc', 'Public Signet Bitcoin', 'bitcoinPublicSignet'],
@@ -111,4 +116,4 @@ describe('utxoCoins', function () {
111
116
  assert.strictEqual((0, names_1.getMainnetCoinName)('tbtcbgsig'), 'btc');
112
117
  });
113
118
  });
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29pbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3VuaXQvY29pbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBaUM7QUFFakMseURBQTJDO0FBRTNDLDJDQUF5RjtBQUV6RixpQ0FBMEQ7QUFFMUQsUUFBUSxDQUFDLFdBQVcsRUFBRTtJQUNwQixFQUFFLENBQUMsNkNBQTZDLEVBQUU7UUFDaEQsTUFBTSxDQUFDLGVBQWUsQ0FDcEIsZ0JBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUN2RztZQUNFLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDO1lBQ3BDLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxTQUFTLENBQUM7WUFDN0MsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFLHFCQUFxQixDQUFDO1lBQ2xFLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsQ0FBQztZQUN2RCxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsb0JBQW9CLENBQUM7WUFDbEUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxhQUFhLENBQUM7WUFDN0MsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixFQUFFLG9CQUFvQixDQUFDO1lBQzdELENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsYUFBYSxDQUFDO1lBQzdDLENBQUMs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Q0FBQztRQUNyRCxDQUFDO1FBRUQsaURBQWlEO1FBQ2pELEtBQUssTUFBTSxJQUFJLElBQUksd0JBQWdCLEVBQUUsQ0FBQztZQUNwQyxNQUFNLE9BQU8sR0FBRyxJQUFBLDBCQUFrQixFQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3pDLE1BQU0sQ0FBQyxFQUFFLENBQUMsd0JBQWdCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsSUFBSSxPQUFPLE9BQU8sMkJBQTJCLENBQUMsQ0FBQztRQUNsRyxDQUFDO1FBRUQsZ0VBQWdFO1FBQ2hFLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBQSwwQkFBa0IsRUFBQyxNQUFNLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN0RCxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUEsMEJBQWtCLEVBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdkQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFBLDBCQUFrQixFQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3pELE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBQSwwQkFBa0IsRUFBQyxXQUFXLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM3RCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcblxuaW1wb3J0IHsgZ2V0TWFpbm5ldENvaW5OYW1lLCB1dHhvQ29pbnNNYWlubmV0LCB1dHhvQ29pbnNUZXN0bmV0IH0gZnJvbSAnLi4vLi4vc3JjL25hbWVzJztcblxuaW1wb3J0IHsgZ2V0VXR4b0NvaW5Gb3JOZXR3b3JrLCB1dHhvQ29pbnMgfSBmcm9tICcuL3V0aWwnO1xuXG5kZXNjcmliZSgndXR4b0NvaW5zJywgZnVuY3Rpb24gKCkge1xuICBpdCgnaGFzIGV4cGVjdGVkIGNoYWluL25ldHdvcmsgdmFsdWVzIGZvciBpdGVtcycsIGZ1bmN0aW9uICgpIHtcbiAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFxuICAgICAgdXR4b0NvaW5zLm1hcCgoYykgPT4gW2MuZ2V0Q2hhaW4oKSwgYy5nZXRGYW1pbHkoKSwgYy5nZXRGdWxsTmFtZSgpLCB1dHhvbGliLmdldE5ldHdvcmtOYW1lKGMubmV0d29yayldKSxcbiAgICAgIFtcbiAgICAgICAgWydidGMnLCAnYnRjJywgJ0JpdGNvaW4nLCAnYml0Y29pbiddLFxuICAgICAgICBbJ3RidGMnLCAnYnRjJywgJ1Rlc3RuZXQgQml0Y29pbicsICd0ZXN0bmV0J10sXG4gICAgICAgIFsndGJ0Y3NpZycsICdidGMnLCAnUHVibGljIFNpZ25ldCBCaXRjb2luJywgJ2JpdGNvaW5QdWJsaWNTaWduZXQnXSxcbiAgICAgICAgWyd0YnRjNCcsICdidGMnLCAnVGVzdG5ldDQgQml0Y29pbicsICdiaXRjb2luVGVzdG5ldDQnXSxcbiAgICAgICAgWyd0YnRjYmdzaWcnLCAnYnRjJywgJ0JpdEdvIFNpZ25ldCBCaXRjb2luJywgJ2JpdGNvaW5CaXRHb1NpZ25ldCddLFxuICAgICAgICBbJ2JjaCcsICdiY2gnLCAnQml0Y29pbiBDYXNoJywgJ2JpdGNvaW5jYXNoJ10sXG4gICAgICAgIFsndGJjaCcsICdiY2gnLCAnVGVzdG5ldCBCaXRjb2luIENhc2gnLCAnYml0Y29pbmNhc2hUZXN0bmV0J10sXG4gICAgICAgIFsnYnRnJywgJ2J0ZycsICdCaXRjb2luIEdvbGQnLCAnYml0Y29pbmdvbGQnXSxcbiAgICAgICAgWydic3YnLCAnYnN2JywgJ0JpdGNvaW4gU1YnLCAnYml0Y29pbnN2J10sXG4gICAgICAgIFsndGJzdicsICdic3YnLCAnVGVzdG5ldCBCaXRjb2luIFNWJywgJ2JpdGNvaW5zdlRlc3RuZXQnXSxcbiAgICAgICAgWydkYXNoJywgJ2Rhc2gnLCAnRGFzaCcsICdkYXNoJ10sXG4gICAgICAgIFsndGRhc2gnLCAnZGFzaCcsICdUZXN0bmV0IERhc2gnLCAnZGFzaFRlc3QnXSxcbiAgICAgICAgWydkb2dlJywgJ2RvZ2UnLCAnRG9nZWNvaW4nLCAnZG9nZWNvaW4nXSxcbiAgICAgICAgWyd0ZG9nZScsICdkb2dlJywgJ1Rlc3RuZXQgRG9nZWNvaW4nLCAnZG9nZWNvaW5UZXN0J10sXG4gICAgICAgIFsnYmNoYScsICdiY2hhJywgJ0JpdGNvaW4gQUJDJywgJ2VjYXNoJ10sXG4gICAgICAgIFsndGJjaGEnLCAnYmNoYScsICdUZXN0bmV0IEJpdGNvaW4gQUJDJywgJ2VjYXNoVGVzdCddLFxuICAgICAgICBbJ2x0YycsICdsdGMnLCAnTGl0ZWNvaW4nLCAnbGl0ZWNvaW4nXSxcbiAgICAgICAgWyd0bHRjJywgJ2x0YycsICdUZXN0bmV0IExpdGVjb2luJywgJ2xpdGVjb2luVGVzdCddLFxuICAgICAgICBbJ3plYycsICd6ZWMnLCAnWkNhc2gnLCAnemNhc2gnXSxcbiAgICAgICAgWyd0emVjJywgJ3plYycsICdUZXN0bmV0IFpDYXNoJywgJ3pjYXNoVGVzdCddLFxuICAgICAgXVxuICAgICk7XG5cbiAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFxuICAgICAgdXR4b2xpYi5nZXROZXR3b3JrTGlzdCgpLm1hcCgobmV0d29yayk6IFtzdHJpbmcgfCB1bmRlZmluZWQsIHN0cmluZyB8IHVuZGVmaW5lZF0gPT4ge1xuICAgICAgICBsZXQgY29pbjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb2luID0gZ2V0VXR4b0NvaW5Gb3JOZXR3b3JrKG5ldHdvcmspO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgLy8gaWdub3JlXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gW3V0eG9saWIuZ2V0TmV0d29ya05hbWUobmV0d29yayksIGNvaW4/LmdldENoYWluKCldO1xuICAgICAgfSksXG4gICAgICBbXG4gICAgICAgIFsnYml0Y29pbicsICdidGMnXSxcbiAgICAgICAgWyd0ZXN0bmV0JywgJ3RidGMnXSxcbiAgICAgICAgWydiaXRjb2luUHVibGljU2lnbmV0JywgJ3RidGNzaWcnXSxcbiAgICAgICAgWydiaXRjb2luVGVzdG5ldDQnLCAndGJ0YzQnXSxcbiAgICAgICAgWydiaXRjb2luQml0R29TaWduZXQnLCAndGJ0Y2Jnc2lnJ10sXG4gICAgICAgIFsnYml0Y29pbmNhc2gnLCAnYmNoJ10sXG4gICAgICAgIFsnYml0Y29pbmNhc2hUZXN0bmV0JywgJ3RiY2gnXSxcbiAgICAgICAgWydiaXRjb2luZ29sZCcsICdidGcnXSxcbiAgICAgICAgWydiaXRjb2luZ29sZFRlc3RuZXQnLCB1bmRlZmluZWRdLFxuICAgICAgICBbJ2JpdGNvaW5zdicsICdic3YnXSxcbiAgICAgICAgWydiaXRjb2luc3ZUZXN0bmV0JywgJ3Ric3YnXSxcbiAgICAgICAgWydkYXNoJywgJ2Rhc2gnXSxcbiAgICAgICAgWydkYXNoVGVzdCcsICd0ZGFzaCddLFxuICAgICAgICBbJ2RvZ2Vjb2luJywgJ2RvZ2UnXSxcbiAgICAgICAgWydkb2dlY29pblRlc3QnLCAndGRvZ2UnXSxcbiAgICAgICAgWydlY2FzaCcsICdiY2hhJ10sXG4gICAgICAgIFsnZWNhc2hUZXN0JywgJ3RiY2hhJ10sXG4gICAgICAgIFsnbGl0ZWNvaW4nLCAnbHRjJ10sXG4gICAgICAgIFsnbGl0ZWNvaW5UZXN0JywgJ3RsdGMnXSxcbiAgICAgICAgWyd6Y2FzaCcsICd6ZWMnXSxcbiAgICAgICAgWyd6Y2FzaFRlc3QnLCAndHplYyddLFxuICAgICAgXVxuICAgICk7XG4gIH0pO1xuXG4gIGl0KCdnZXRNYWlubmV0Q29pbk5hbWUgcmV0dXJucyBjb3JyZWN0IG1haW5uZXQgY29pbiBuYW1lJywgZnVuY3Rpb24gKCkge1xuICAgIC8vIE1haW5uZXQgY29pbnMgcmV0dXJuIHRoZW1zZWx2ZXNcbiAgICBmb3IgKGNvbnN0IGNvaW4gb2YgdXR4b0NvaW5zTWFpbm5ldCkge1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdldE1haW5uZXRDb2luTmFtZShjb2luKSwgY29pbik7XG4gICAgfVxuXG4gICAgLy8gVGVzdG5ldCBjb2lucyByZXR1cm4gdGhlaXIgbWFpbm5ldCBjb3VudGVycGFydFxuICAgIGZvciAoY29uc3QgY29pbiBvZiB1dHhvQ29pbnNUZXN0bmV0KSB7XG4gICAgICBjb25zdCBtYWlubmV0ID0gZ2V0TWFpbm5ldENvaW5OYW1lKGNvaW4pO1xuICAgICAgYXNzZXJ0Lm9rKHV0eG9Db2luc01haW5uZXQuaW5jbHVkZXMobWFpbm5ldCksIGAke2NvaW59IC0+ICR7bWFpbm5ldH0gc2hvdWxkIGJlIGEgbWFpbm5ldCBjb2luYCk7XG4gICAgfVxuXG4gICAgLy8gVmVyaWZ5IHNwZWNpZmljIG1hcHBpbmdzIGZvciBzcGVjaWFsIEJpdGNvaW4gdGVzdG5ldCB2YXJpYW50c1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChnZXRNYWlubmV0Q29pbk5hbWUoJ3RidGMnKSwgJ2J0YycpO1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChnZXRNYWlubmV0Q29pbk5hbWUoJ3RidGM0JyksICdidGMnKTtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ2V0TWFpbm5ldENvaW5OYW1lKCd0YnRjc2lnJyksICdidGMnKTtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ2V0TWFpbm5ldENvaW5OYW1lKCd0YnRjYmdzaWcnKSwgJ2J0YycpO1xuICB9KTtcbn0pO1xuIl19
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29pbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3VuaXQvY29pbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBaUM7QUFFakMseURBQTJDO0FBRTNDLDJDQUFpSDtBQUVqSCxpQ0FBMEQ7QUFFMUQsUUFBUSxDQUFDLFdBQVcsRUFBRTtJQUNwQixFQUFFLENBQUMsNkNBQTZDLEVBQUU7UUFDaEQsTUFBTSxDQUFDLGVBQWUsQ0FDcEIsZ0JBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ25CLENBQUMsQ0FBQyxRQUFRLEVBQUU7WUFDWixDQUFDLENBQUMsU0FBUyxFQUFFO1lBQ2IsQ0FBQyxDQUFDLFdBQVcsRUFBRTtZQUNmLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBQSw4QkFBc0IsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdkQsQ0FBQyxFQUNGO1lBQ0UsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUM7WUFDcEMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsQ0FBQztZQUM3QyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUUscUJBQXFCLENBQUM7WUFDbEUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixDQUFDO1lBQ3ZELENBQUMsV0FBVyxFQUFFLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxvQkFBb0IsQ0FBQztZQUNsRSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLGFBQWEsQ0FBQztZQUM3QyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsb0JBQW9CLENBQUM7WUFDN0QsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFB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QUksQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3JELENBQUM7UUFFRCxpREFBaUQ7UUFDakQsS0FBSyxNQUFNLElBQUksSUFBSSx3QkFBZ0IsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sT0FBTyxHQUFHLElBQUEsMEJBQWtCLEVBQUMsSUFBSSxDQUFDLENBQUM7WUFDekMsTUFBTSxDQUFDLEVBQUUsQ0FBQyx3QkFBZ0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRyxJQUFJLE9BQU8sT0FBTywyQkFBMkIsQ0FBQyxDQUFDO1FBQ2xHLENBQUM7UUFFRCxnRUFBZ0U7UUFDaEUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFBLDBCQUFrQixFQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3RELE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBQSwwQkFBa0IsRUFBQyxPQUFPLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN2RCxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUEsMEJBQWtCLEVBQUMsU0FBUyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDekQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFBLDBCQUFrQixFQUFDLFdBQVcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzdELENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28vdXR4by1saWInO1xuXG5pbXBvcnQgeyBnZXRNYWlubmV0Q29pbk5hbWUsIGdldE5ldHdvcmtGcm9tQ29pbk5hbWUsIHV0eG9Db2luc01haW5uZXQsIHV0eG9Db2luc1Rlc3RuZXQgfSBmcm9tICcuLi8uLi9zcmMvbmFtZXMnO1xuXG5pbXBvcnQgeyBnZXRVdHhvQ29pbkZvck5ldHdvcmssIHV0eG9Db2lucyB9IGZyb20gJy4vdXRpbCc7XG5cbmRlc2NyaWJlKCd1dHhvQ29pbnMnLCBmdW5jdGlvbiAoKSB7XG4gIGl0KCdoYXMgZXhwZWN0ZWQgY2hhaW4vbmV0d29yayB2YWx1ZXMgZm9yIGl0ZW1zJywgZnVuY3Rpb24gKCkge1xuICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoXG4gICAgICB1dHhvQ29pbnMubWFwKChjKSA9PiBbXG4gICAgICAgIGMuZ2V0Q2hhaW4oKSxcbiAgICAgICAgYy5nZXRGYW1pbHkoKSxcbiAgICAgICAgYy5nZXRGdWxsTmFtZSgpLFxuICAgICAgICB1dHhvbGliLmdldE5ldHdvcmtOYW1lKGdldE5ldHdvcmtGcm9tQ29pbk5hbWUoYy5uYW1lKSksXG4gICAgICBdKSxcbiAgICAgIFtcbiAgICAgICAgWydidGMnLCAnYnRjJywgJ0JpdGNvaW4nLCAnYml0Y29pbiddLFxuICAgICAgICBbJ3RidGMnLCAnYnRjJywgJ1Rlc3RuZXQgQml0Y29pbicsICd0ZXN0bmV0J10sXG4gICAgICAgIFsndGJ0Y3NpZycsICdidGMnLCAnUHVibGljIFNpZ25ldCBCaXRjb2luJywgJ2JpdGNvaW5QdWJsaWNTaWduZXQnXSxcbiAgICAgICAgWyd0YnRjNCcsICdidGMnLCAnVGVzdG5ldDQgQml0Y29pbicsICdiaXRjb2luVGVzdG5ldDQnXSxcbiAgICAgICAgWyd0YnRjYmdzaWcnLCAnYnRjJywgJ0JpdEdvIFNpZ25ldCBCaXRjb2luJywgJ2JpdGNvaW5CaXRHb1NpZ25ldCddLFxuICAgICAgICBbJ2JjaCcsICdiY2gnLCAnQml0Y29pbiBDYXNoJywgJ2JpdGNvaW5jYXNoJ10sXG4gICAgICAgIFsndGJjaCcsICdiY2gnLCAnVGVzdG5ldCBCaXRjb2luIENhc2gnLCAnYml0Y29pbmNhc2hUZXN0bmV0J10sXG4gICAgICAgIFsnYnRnJywgJ2J0ZycsICdCaXRjb2luIEdvbGQnLCAnYml0Y29pbmdvbGQnXSxcbiAgICAgICAgWydic3YnLCAnYnN2JywgJ0JpdGNvaW4gU1YnLCAnYml0Y29pbnN2J10sXG4gICAgICAgIFsndGJzdicsICdic3YnLCAnVGVzdG5ldCBCaXRjb2luIFNWJywgJ2JpdGNvaW5zdlRlc3RuZXQnXSxcbiAgICAgICAgWydkYXNoJywgJ2Rhc2gnLCAnRGFzaCcsICdkYXNoJ10sXG4gICAgICAgIFsndGRhc2gnLCAnZGFzaCcsICdUZXN0bmV0IERhc2gnLCAnZGFzaFRlc3QnXSxcbiAgICAgICAgWydkb2dlJywgJ2RvZ2UnLCAnRG9nZWNvaW4nLCAnZG9nZWNvaW4nXSxcbiAgICAgICAgWyd0ZG9nZScsICdkb2dlJywgJ1Rlc3RuZXQgRG9nZWNvaW4nLCAnZG9nZWNvaW5UZXN0J10sXG4gICAgICAgIFsnYmNoYScsICdiY2hhJywgJ0JpdGNvaW4gQUJDJywgJ2VjYXNoJ10sXG4gICAgICAgIFsndGJjaGEnLCAnYmNoYScsICdUZXN0bmV0IEJpdGNvaW4gQUJDJywgJ2VjYXNoVGVzdCddLFxuICAgICAgICBbJ2x0YycsICdsdGMnLCAnTGl0ZWNvaW4nLCAnbGl0ZWNvaW4nXSxcbiAgICAgICAgWyd0bHRjJywgJ2x0YycsICdUZXN0bmV0IExpdGVjb2luJywgJ2xpdGVjb2luVGVzdCddLFxuICAgICAgICBbJ3plYycsICd6ZWMnLCAnWkNhc2gnLCAnemNhc2gnXSxcbiAgICAgICAgWyd0emVjJywgJ3plYycsICdUZXN0bmV0IFpDYXNoJywgJ3pjYXNoVGVzdCddLFxuICAgICAgXVxuICAgICk7XG5cbiAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFxuICAgICAgdXR4b2xpYi5nZXROZXR3b3JrTGlzdCgpLm1hcCgobmV0d29yayk6IFtzdHJpbmcgfCB1bmRlZmluZWQsIHN0cmluZyB8IHVuZGVmaW5lZF0gPT4ge1xuICAgICAgICBsZXQgY29pbjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb2luID0gZ2V0VXR4b0NvaW5Gb3JOZXR3b3JrKG5ldHdvcmspO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgLy8gaWdub3JlXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gW3V0eG9saWIuZ2V0TmV0d29ya05hbWUobmV0d29yayksIGNvaW4/LmdldENoYWluKCldO1xuICAgICAgfSksXG4gICAgICBbXG4gICAgICAgIFsnYml0Y29pbicsICdidGMnXSxcbiAgICAgICAgWyd0ZXN0bmV0JywgJ3RidGMnXSxcbiAgICAgICAgWydiaXRjb2luUHVibGljU2lnbmV0JywgJ3RidGNzaWcnXSxcbiAgICAgICAgWydiaXRjb2luVGVzdG5ldDQnLCAndGJ0YzQnXSxcbiAgICAgICAgWydiaXRjb2luQml0R29TaWduZXQnLCAndGJ0Y2Jnc2lnJ10sXG4gICAgICAgIFsnYml0Y29pbmNhc2gnLCAnYmNoJ10sXG4gICAgICAgIFsnYml0Y29pbmNhc2hUZXN0bmV0JywgJ3RiY2gnXSxcbiAgICAgICAgWydiaXRjb2luZ29sZCcsICdidGcnXSxcbiAgICAgICAgWydiaXRjb2luZ29sZFRlc3RuZXQnLCB1bmRlZmluZWRdLFxuICAgICAgICBbJ2JpdGNvaW5zdicsICdic3YnXSxcbiAgICAgICAgWydiaXRjb2luc3ZUZXN0bmV0JywgJ3Ric3YnXSxcbiAgICAgICAgWydkYXNoJywgJ2Rhc2gnXSxcbiAgICAgICAgWydkYXNoVGVzdCcsICd0ZGFzaCddLFxuICAgICAgICBbJ2RvZ2Vjb2luJywgJ2RvZ2UnXSxcbiAgICAgICAgWydkb2dlY29pblRlc3QnLCAndGRvZ2UnXSxcbiAgICAgICAgWydlY2FzaCcsICdiY2hhJ10sXG4gICAgICAgIFsnZWNhc2hUZXN0JywgJ3RiY2hhJ10sXG4gICAgICAgIFsnbGl0ZWNvaW4nLCAnbHRjJ10sXG4gICAgICAgIFsnbGl0ZWNvaW5UZXN0JywgJ3RsdGMnXSxcbiAgICAgICAgWyd6Y2FzaCcsICd6ZWMnXSxcbiAgICAgICAgWyd6Y2FzaFRlc3QnLCAndHplYyddLFxuICAgICAgXVxuICAgICk7XG4gIH0pO1xuXG4gIGl0KCdnZXRNYWlubmV0Q29pbk5hbWUgcmV0dXJucyBjb3JyZWN0IG1haW5uZXQgY29pbiBuYW1lJywgZnVuY3Rpb24gKCkge1xuICAgIC8vIE1haW5uZXQgY29pbnMgcmV0dXJuIHRoZW1zZWx2ZXNcbiAgICBmb3IgKGNvbnN0IGNvaW4gb2YgdXR4b0NvaW5zTWFpbm5ldCkge1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdldE1haW5uZXRDb2luTmFtZShjb2luKSwgY29pbik7XG4gICAgfVxuXG4gICAgLy8gVGVzdG5ldCBjb2lucyByZXR1cm4gdGhlaXIgbWFpbm5ldCBjb3VudGVycGFydFxuICAgIGZvciAoY29uc3QgY29pbiBvZiB1dHhvQ29pbnNUZXN0bmV0KSB7XG4gICAgICBjb25zdCBtYWlubmV0ID0gZ2V0TWFpbm5ldENvaW5OYW1lKGNvaW4pO1xuICAgICAgYXNzZXJ0Lm9rKHV0eG9Db2luc01haW5uZXQuaW5jbHVkZXMobWFpbm5ldCksIGAke2NvaW59IC0+ICR7bWFpbm5ldH0gc2hvdWxkIGJlIGEgbWFpbm5ldCBjb2luYCk7XG4gICAgfVxuXG4gICAgLy8gVmVyaWZ5IHNwZWNpZmljIG1hcHBpbmdzIGZvciBzcGVjaWFsIEJpdGNvaW4gdGVzdG5ldCB2YXJpYW50c1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChnZXRNYWlubmV0Q29pbk5hbWUoJ3RidGMnKSwgJ2J0YycpO1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChnZXRNYWlubmV0Q29pbk5hbWUoJ3RidGM0JyksICdidGMnKTtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ2V0TWFpbm5ldENvaW5OYW1lKCd0YnRjc2lnJyksICdidGMnKTtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ2V0TWFpbm5ldENvaW5OYW1lKCd0YnRjYmdzaWcnKSwgJ2J0YycpO1xuICB9KTtcbn0pO1xuIl19
@@ -1,3 +1,3 @@
1
- import * as utxolib from '@bitgo/utxo-lib';
2
- export declare function getDescriptorAddress(d: string, index: number, network: utxolib.Network): string;
1
+ import { CoinName } from '@bitgo/wasm-utxo';
2
+ export declare function getDescriptorAddress(d: string, index: number, coinName: CoinName): string;
3
3
  //# sourceMappingURL=descriptorAddress.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"descriptorAddress.d.ts","sourceRoot":"","sources":["../../../../test/unit/descriptorAddress.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAO3C,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,MAAM,CAK/F"}
1
+ {"version":3,"file":"descriptorAddress.d.ts","sourceRoot":"","sources":["../../../../test/unit/descriptorAddress.ts"],"names":[],"mappings":"AAGA,OAAO,EAA0B,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAOpE,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAGzF"}
@@ -36,11 +36,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.getDescriptorAddress = getDescriptorAddress;
37
37
  const assert = __importStar(require("node:assert"));
38
38
  const utxolib = __importStar(require("@bitgo/utxo-lib"));
39
+ const wasm_utxo_1 = require("@bitgo/wasm-utxo");
39
40
  const src_1 = require("../../src");
40
41
  const util_1 = require("./util");
41
- function getDescriptorAddress(d, index, network) {
42
- const derivedScript = Buffer.from(src_1.descriptor.Descriptor.fromString(d, 'derivable').atDerivationIndex(index).scriptPubkey());
43
- return utxolib.address.fromOutputScript(derivedScript, network);
42
+ function getDescriptorAddress(d, index, coinName) {
43
+ const derivedScript = src_1.descriptor.Descriptor.fromString(d, 'derivable').atDerivationIndex(index).scriptPubkey();
44
+ return wasm_utxo_1.address.fromOutputScriptWithCoin(derivedScript, coinName);
44
45
  }
45
46
  describe('descriptor wallets', function () {
46
47
  const coin = (0, util_1.getUtxoCoin)('tbtc');
@@ -64,9 +65,9 @@ describe('descriptor wallets', function () {
64
65
  }
65
66
  const descFoo = getNamedDescriptor2Of2('foo', xpubs[0], xpubs[1]);
66
67
  const descBar = getNamedDescriptor2Of2('bar', xpubs[1], xpubs[0]);
67
- const addressFoo0 = getDescriptorAddress(descFoo.value, 0, coin.network);
68
- const addressFoo1 = getDescriptorAddress(descFoo.value, 1, coin.network);
69
- const addressBar0 = getDescriptorAddress(descBar.value, 0, coin.network);
68
+ const addressFoo0 = getDescriptorAddress(descFoo.value, 0, coin.name);
69
+ const addressFoo1 = getDescriptorAddress(descFoo.value, 1, coin.name);
70
+ const addressBar0 = getDescriptorAddress(descBar.value, 0, coin.name);
70
71
  it('has expected values', function () {
71
72
  assert.deepStrictEqual([addressFoo0, addressFoo1, addressBar0], [
72
73
  '2N9b1trWxMJN16mTzGJypFn6pEWfXtgh689',
@@ -99,4 +100,4 @@ describe('descriptor wallets', function () {
99
100
  runTestIsAddress(addressBar0, 0, 'bar', descFoo.value.slice(-8), /Descriptor checksum mismatch/);
100
101
  runTestIsAddress(addressFoo0, 0, 'bar', descBar.value.slice(-8), /Address mismatch for descriptor/);
101
102
  });
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpcHRvckFkZHJlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3VuaXQvZGVzY3JpcHRvckFkZHJlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTQSxvREFLQztBQWRELG9EQUFzQztBQUV0Qyx5REFBMkM7QUFHM0MsbUNBQWdEO0FBRWhELGlDQUFxQztBQUVyQyxTQUFnQixvQkFBb0IsQ0FBQyxDQUFTLEVBQUUsS0FBYSxFQUFFLE9BQXdCO0lBQ3JGLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQy9CLGdCQUFLLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQ3BGLENBQUM7SUFDRixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2xFLENBQUM7QUFFRCxRQUFRLENBQUMsb0JBQW9CLEVBQUU7SUFDN0IsTUFBTSxJQUFJLEdBQUcsSUFBQSxrQkFBVyxFQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUVuRyxTQUFTLFlBQVksQ0FBQyxVQUFrQjtRQUN0QyxPQUFPLGdCQUFLLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDekUsQ0FBQztJQUVELFNBQVMsc0JBQXNCLENBQUMsSUFBWSxFQUFFLENBQVMsRUFBRSxD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QUNwRyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLDhCQUE4QixDQUFDLENBQUM7SUFDakcsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxpQ0FBaUMsQ0FBQyxDQUFDO0FBQ3RHLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ25vZGU6YXNzZXJ0JztcblxuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28vdXR4by1saWInO1xuaW1wb3J0IHsgSVdhbGxldCwgV2FsbGV0Q29pblNwZWNpZmljIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcblxuaW1wb3J0IHsgZGVzY3JpcHRvciBhcyB1dHhvZCB9IGZyb20gJy4uLy4uL3NyYyc7XG5cbmltcG9ydCB7IGdldFV0eG9Db2luIH0gZnJvbSAnLi91dGlsJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlc2NyaXB0b3JBZGRyZXNzKGQ6IHN0cmluZywgaW5kZXg6IG51bWJlciwgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrKTogc3RyaW5nIHtcbiAgY29uc3QgZGVyaXZlZFNjcmlwdCA9IEJ1ZmZlci5mcm9tKFxuICAgIHV0eG9kLkRlc2NyaXB0b3IuZnJvbVN0cmluZyhkLCAnZGVyaXZhYmxlJykuYXREZXJpdmF0aW9uSW5kZXgoaW5kZXgpLnNjcmlwdFB1YmtleSgpXG4gICk7XG4gIHJldHVybiB1dHhvbGliLmFkZHJlc3MuZnJvbU91dHB1dFNjcmlwdChkZXJpdmVkU2NyaXB0LCBuZXR3b3JrKTtcbn1cblxuZGVzY3JpYmUoJ2Rlc2NyaXB0b3Igd2FsbGV0cycsIGZ1bmN0aW9uICgpIHtcbiAgY29uc3QgY29pbiA9IGdldFV0eG9Db2luKCd0YnRjJyk7XG4gIGNvbnN0IHhwdWJzID0gdXR4b2xpYi50ZXN0dXRpbC5nZXRLZXlUcmlwbGUoJ3NldGVjIGFzdHJvbm9teScpLm1hcCgoaykgPT4gay5uZXV0ZXJlZCgpLnRvQmFzZTU4KCkpO1xuXG4gIGZ1bmN0aW9uIHdpdGhDaGVja3N1bShkZXNjcmlwdG9yOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB1dHhvZC5EZXNjcmlwdG9yLmZyb21TdHJpbmcoZGVzY3JpcHRvciwgJ2Rlcml2YWJsZScpLnRvU3RyaW5nKCk7XG4gIH1cblxuICBmdW5jdGlvbiBnZXROYW1lZERlc2NyaXB0b3IyT2YyKG5hbWU6IHN0cmluZywgYTogc3RyaW5nLCBiOiBzdHJpbmcpOiB1dHhvZC5OYW1lZERlc2NyaXB0b3Ige1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lLFxuICAgICAgdmFsdWU6IHdpdGhDaGVja3N1bShgc2gobXVsdGkoMiwke2F9LyosJHtifS8qKSlgKSxcbiAgICAgIHNpZ25hdHVyZXM6IFtdLFxuICAgIH07XG4gIH1cblxuICBmdW5jdGlvbiBnZXRJV2FsbGV0V2l0aERlc2NyaXB0b3JzKGRlc2NyaXB0b3JzOiB1dHhvZC5OYW1lZERlc2NyaXB0b3JbXSk6IElXYWxsZXQge1xuICAgIHJldHVybiB7XG4gICAgICBjb2luU3BlY2lmaWMoKSB7XG4gICAgICAgIHJldHVybiB7IGRlc2NyaXB0b3JzIH0gYXMgdW5rbm93biBhcyBXYWxsZXRDb2luU3BlY2lmaWM7XG4gICAgICB9LFxuICAgIH0gYXMgSVdhbGxldDtcbiAgfVxuXG4gIGNvbnN0IGRlc2NGb28gPSBnZXROYW1lZERlc2NyaXB0b3IyT2YyKCdmb28nLCB4cHVic1swXSwgeHB1YnNbMV0pO1xuICBjb25zdCBkZXNjQmFyID0gZ2V0TmFtZWREZXNjcmlwdG9yMk9mMignYmFyJywgeHB1YnNbMV0sIHhwdWJzWzBdKTtcbiAgY29uc3QgYWRkcmVzc0ZvbzAgPSBnZXREZXNjcmlwdG9yQWRkcmVzcyhkZXNjRm9vLnZhbHVlLCAwLCBjb2luLm5ldHdvcmspO1xuICBjb25zdCBhZGRyZXNzRm9vMSA9IGdldERlc2NyaXB0b3JBZGRyZXNzKGRlc2NGb28udmFsdWUsIDEsIGNvaW4ubmV0d29yayk7XG4gIGNvbnN0IGFkZHJlc3NCYXIwID0gZ2V0RGVzY3JpcHRvckFkZHJlc3MoZGVzY0Jhci52YWx1ZSwgMCwgY29pbi5uZXR3b3JrKTtcblxuICBpdCgnaGFzIGV4cGVjdGVkIHZhbHVlcycsIGZ1bmN0aW9uICgpIHtcbiAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFxuICAgICAgW2FkZHJlc3NGb28wLCBhZGRyZXNzRm9vMSwgYWRkcmVzc0JhcjBdLFxuICAgICAgW1xuICAgICAgICAnMk45YjF0cld4TUpOMTZtVHpHSnlwRm42cEVXZlh0Z2g2ODknLFxuICAgICAgICAnMk4xWUZ6ajRFQ3pjanVydWFFdlN6R2FHR0gxdG9wTVhNWFonLFxuICAgICAgICAnMk45b041S2MyZkx0Mk1yeEVrdVFQc3k4RmcyS2RyRmZlS0gnLFxuICAgICAgXVxuICAgICk7XG4gIH0pO1xuXG4gIGZ1bmN0aW9uIHJ1blRlc3RJc0FkZHJlc3MoXG4gICAgYWRkcmVzczogc3RyaW5nLFxuICAgIGluZGV4OiBudW1iZXIsXG4gICAgZGVzY3JpcHRvck5hbWU6IHN0cmluZyxcbiAgICBkZXNjcmlwdG9yQ2hlY2tzdW06IHN0cmluZyxcbiAgICBleHBlY3RlZDogdHJ1ZSB8IEVycm9yIHwgUmVnRXhwXG4gICkge1xuICAgIGl0KGBzaG91bGQgcmV0dXJuICR7ZXhwZWN0ZWR9IGZvciBhZGRyZXNzICR7YWRkcmVzc30gd2l0aCBpbmRleCAke2luZGV4fSBhbmQgZGVzY3JpcHRvciAke2Rlc2NyaXB0b3JOYW1lfSB3aXRoIGNoZWNrc3VtICR7ZGVzY3JpcHRvckNoZWNrc3VtfWAsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHdhbGxldCA9IGdldElXYWxsZXRXaXRoRGVzY3JpcHRvcnMoW2Rlc2NGb28sIGRlc2NCYXJdKTtcbiAgICAgIGFzeW5jIGZ1bmN0aW9uIGYoKSB7XG4gICAgICAgIHJldHVybiBjb2luLmlzV2FsbGV0QWRkcmVzcyhcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhZGRyZXNzLFxuICAgICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgICBjb2luU3BlY2lmaWM6IHsgZGVzY3JpcHRvck5hbWUsIGRlc2NyaXB0b3JDaGVja3N1bSB9LFxuICAgICAgICAgICAga2V5Y2hhaW5zOiB4cHVicy5tYXAoKHB1YikgPT4gKHsgcHViIH0pKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHdhbGxldFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKGV4cGVjdGVkID09PSB0cnVlKSB7XG4gICAgICAgIGFzc2VydC5lcXVhbChhd2FpdCBmKCksIGV4cGVjdGVkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGJlY2F1c2UgaXNXYWxsZXRBZGRyZXNzIGlzIHN0dXBpZCBpdCBhY3R1YWxseSB0aHJvd3MgaW5zdGVhZCBvZiByZXR1cm5pbmcgZmFsc2VcbiAgICAgICAgYXdhaXQgYXNzZXJ0LnJlamVjdHMoZiwgZXhwZWN0ZWQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcnVuVGVzdElzQWRkcmVzcyhhZGRyZXNzRm9vMCwgMCwgJ2ZvbycsIGRlc2NGb28udmFsdWUuc2xpY2UoLTgpLCB0cnVlKTtcbiAgcnVuVGVzdElzQWRkcmVzcyhhZGRyZXNzRm9vMSwgMCwgJ2ZvbycsIGRlc2NGb28udmFsdWUuc2xpY2UoLTgpLCAvQWRkcmVzcyBtaXNtYXRjaCBmb3IgZGVzY3JpcHRvci8pO1xuICBydW5UZXN0SXNBZGRyZXNzKGFkZHJlc3NCYXIwLCAwLCAnYmFyJywgZGVzY0Zvby52YWx1ZS5zbGljZSgtOCksIC9EZXNjcmlwdG9yIGNoZWNrc3VtIG1pc21hdGNoLyk7XG4gIHJ1blRlc3RJc0FkZHJlc3MoYWRkcmVzc0ZvbzAsIDAsICdiYXInLCBkZXNjQmFyLnZhbHVlLnNsaWNlKC04KSwgL0FkZHJlc3MgbWlzbWF0Y2ggZm9yIGRlc2NyaXB0b3IvKTtcbn0pO1xuIl19
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpcHRvckFkZHJlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3VuaXQvZGVzY3JpcHRvckFkZHJlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFVQSxvREFHQztBQWJELG9EQUFzQztBQUV0Qyx5REFBMkM7QUFDM0MsZ0RBQW9FO0FBR3BFLG1DQUFnRDtBQUVoRCxpQ0FBcUM7QUFFckMsU0FBZ0Isb0JBQW9CLENBQUMsQ0FBUyxFQUFFLEtBQWEsRUFBRSxRQUFrQjtJQUMvRSxNQUFNLGFBQWEsR0FBRyxnQkFBSyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFHLE9BQU8sbUJBQVcsQ0FBQyx3QkFBd0IsQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDdkUsQ0FBQztBQUVELFFBQVEsQ0FBQyxvQkFBb0IsRUFBRTtJQUM3QixNQUFNLElBQUksR0FBRyxJQUFBLGtCQUFXLEVBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBRW5HLFNBQVMsWUFBWSxDQUFDLFVBQWtCO1FBQ3RDLE9BQU8sZ0JBQUssQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN6RSxDQUFDO0lBRUQsU0FBUyxzQkFBc0IsQ0FBQyxJQUFZLEVBQUUsQ0FBUyxFQUFFLENBQVM7UUFDaEUsT0FBTztZQUNMLElB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RUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsOEJBQThCLENBQUMsQ0FBQztJQUNqRyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLGlDQUFpQyxDQUFDLENBQUM7QUFDdEcsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnbm9kZTphc3NlcnQnO1xuXG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5pbXBvcnQgeyBhZGRyZXNzIGFzIHdhc21BZGRyZXNzLCBDb2luTmFtZSB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuaW1wb3J0IHsgSVdhbGxldCwgV2FsbGV0Q29pblNwZWNpZmljIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcblxuaW1wb3J0IHsgZGVzY3JpcHRvciBhcyB1dHhvZCB9IGZyb20gJy4uLy4uL3NyYyc7XG5cbmltcG9ydCB7IGdldFV0eG9Db2luIH0gZnJvbSAnLi91dGlsJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlc2NyaXB0b3JBZGRyZXNzKGQ6IHN0cmluZywgaW5kZXg6IG51bWJlciwgY29pbk5hbWU6IENvaW5OYW1lKTogc3RyaW5nIHtcbiAgY29uc3QgZGVyaXZlZFNjcmlwdCA9IHV0eG9kLkRlc2NyaXB0b3IuZnJvbVN0cmluZyhkLCAnZGVyaXZhYmxlJykuYXREZXJpdmF0aW9uSW5kZXgoaW5kZXgpLnNjcmlwdFB1YmtleSgpO1xuICByZXR1cm4gd2FzbUFkZHJlc3MuZnJvbU91dHB1dFNjcmlwdFdpdGhDb2luKGRlcml2ZWRTY3JpcHQsIGNvaW5OYW1lKTtcbn1cblxuZGVzY3JpYmUoJ2Rlc2NyaXB0b3Igd2FsbGV0cycsIGZ1bmN0aW9uICgpIHtcbiAgY29uc3QgY29pbiA9IGdldFV0eG9Db2luKCd0YnRjJyk7XG4gIGNvbnN0IHhwdWJzID0gdXR4b2xpYi50ZXN0dXRpbC5nZXRLZXlUcmlwbGUoJ3NldGVjIGFzdHJvbm9teScpLm1hcCgoaykgPT4gay5uZXV0ZXJlZCgpLnRvQmFzZTU4KCkpO1xuXG4gIGZ1bmN0aW9uIHdpdGhDaGVja3N1bShkZXNjcmlwdG9yOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB1dHhvZC5EZXNjcmlwdG9yLmZyb21TdHJpbmcoZGVzY3JpcHRvciwgJ2Rlcml2YWJsZScpLnRvU3RyaW5nKCk7XG4gIH1cblxuICBmdW5jdGlvbiBnZXROYW1lZERlc2NyaXB0b3IyT2YyKG5hbWU6IHN0cmluZywgYTogc3RyaW5nLCBiOiBzdHJpbmcpOiB1dHhvZC5OYW1lZERlc2NyaXB0b3Ige1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lLFxuICAgICAgdmFsdWU6IHdpdGhDaGVja3N1bShgc2gobXVsdGkoMiwke2F9LyosJHtifS8qKSlgKSxcbiAgICAgIHNpZ25hdHVyZXM6IFtdLFxuICAgIH07XG4gIH1cblxuICBmdW5jdGlvbiBnZXRJV2FsbGV0V2l0aERlc2NyaXB0b3JzKGRlc2NyaXB0b3JzOiB1dHhvZC5OYW1lZERlc2NyaXB0b3JbXSk6IElXYWxsZXQge1xuICAgIHJldHVybiB7XG4gICAgICBjb2luU3BlY2lmaWMoKSB7XG4gICAgICAgIHJldHVybiB7IGRlc2NyaXB0b3JzIH0gYXMgdW5rbm93biBhcyBXYWxsZXRDb2luU3BlY2lmaWM7XG4gICAgICB9LFxuICAgIH0gYXMgSVdhbGxldDtcbiAgfVxuXG4gIGNvbnN0IGRlc2NGb28gPSBnZXROYW1lZERlc2NyaXB0b3IyT2YyKCdmb28nLCB4cHVic1swXSwgeHB1YnNbMV0pO1xuICBjb25zdCBkZXNjQmFyID0gZ2V0TmFtZWREZXNjcmlwdG9yMk9mMignYmFyJywgeHB1YnNbMV0sIHhwdWJzWzBdKTtcbiAgY29uc3QgYWRkcmVzc0ZvbzAgPSBnZXREZXNjcmlwdG9yQWRkcmVzcyhkZXNjRm9vLnZhbHVlLCAwLCBjb2luLm5hbWUpO1xuICBjb25zdCBhZGRyZXNzRm9vMSA9IGdldERlc2NyaXB0b3JBZGRyZXNzKGRlc2NGb28udmFsdWUsIDEsIGNvaW4ubmFtZSk7XG4gIGNvbnN0IGFkZHJlc3NCYXIwID0gZ2V0RGVzY3JpcHRvckFkZHJlc3MoZGVzY0Jhci52YWx1ZSwgMCwgY29pbi5uYW1lKTtcblxuICBpdCgnaGFzIGV4cGVjdGVkIHZhbHVlcycsIGZ1bmN0aW9uICgpIHtcbiAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFxuICAgICAgW2FkZHJlc3NGb28wLCBhZGRyZXNzRm9vMSwgYWRkcmVzc0JhcjBdLFxuICAgICAgW1xuICAgICAgICAnMk45YjF0cld4TUpOMTZtVHpHSnlwRm42cEVXZlh0Z2g2ODknLFxuICAgICAgICAnMk4xWUZ6ajRFQ3pjanVydWFFdlN6R2FHR0gxdG9wTVhNWFonLFxuICAgICAgICAnMk45b041S2MyZkx0Mk1yeEVrdVFQc3k4RmcyS2RyRmZlS0gnLFxuICAgICAgXVxuICAgICk7XG4gIH0pO1xuXG4gIGZ1bmN0aW9uIHJ1blRlc3RJc0FkZHJlc3MoXG4gICAgYWRkcmVzczogc3RyaW5nLFxuICAgIGluZGV4OiBudW1iZXIsXG4gICAgZGVzY3JpcHRvck5hbWU6IHN0cmluZyxcbiAgICBkZXNjcmlwdG9yQ2hlY2tzdW06IHN0cmluZyxcbiAgICBleHBlY3RlZDogdHJ1ZSB8IEVycm9yIHwgUmVnRXhwXG4gICkge1xuICAgIGl0KGBzaG91bGQgcmV0dXJuICR7ZXhwZWN0ZWR9IGZvciBhZGRyZXNzICR7YWRkcmVzc30gd2l0aCBpbmRleCAke2luZGV4fSBhbmQgZGVzY3JpcHRvciAke2Rlc2NyaXB0b3JOYW1lfSB3aXRoIGNoZWNrc3VtICR7ZGVzY3JpcHRvckNoZWNrc3VtfWAsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHdhbGxldCA9IGdldElXYWxsZXRXaXRoRGVzY3JpcHRvcnMoW2Rlc2NGb28sIGRlc2NCYXJdKTtcbiAgICAgIGFzeW5jIGZ1bmN0aW9uIGYoKSB7XG4gICAgICAgIHJldHVybiBjb2luLmlzV2FsbGV0QWRkcmVzcyhcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhZGRyZXNzLFxuICAgICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgICBjb2luU3BlY2lmaWM6IHsgZGVzY3JpcHRvck5hbWUsIGRlc2NyaXB0b3JDaGVja3N1bSB9LFxuICAgICAgICAgICAga2V5Y2hhaW5zOiB4cHVicy5tYXAoKHB1YikgPT4gKHsgcHViIH0pKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHdhbGxldFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKGV4cGVjdGVkID09PSB0cnVlKSB7XG4gICAgICAgIGFzc2VydC5lcXVhbChhd2FpdCBmKCksIGV4cGVjdGVkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGJlY2F1c2UgaXNXYWxsZXRBZGRyZXNzIGlzIHN0dXBpZCBpdCBhY3R1YWxseSB0aHJvd3MgaW5zdGVhZCBvZiByZXR1cm5pbmcgZmFsc2VcbiAgICAgICAgYXdhaXQgYXNzZXJ0LnJlamVjdHMoZiwgZXhwZWN0ZWQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcnVuVGVzdElzQWRkcmVzcyhhZGRyZXNzRm9vMCwgMCwgJ2ZvbycsIGRlc2NGb28udmFsdWUuc2xpY2UoLTgpLCB0cnVlKTtcbiAgcnVuVGVzdElzQWRkcmVzcyhhZGRyZXNzRm9vMSwgMCwgJ2ZvbycsIGRlc2NGb28udmFsdWUuc2xpY2UoLTgpLCAvQWRkcmVzcyBtaXNtYXRjaCBmb3IgZGVzY3JpcHRvci8pO1xuICBydW5UZXN0SXNBZGRyZXNzKGFkZHJlc3NCYXIwLCAwLCAnYmFyJywgZGVzY0Zvby52YWx1ZS5zbGljZSgtOCksIC9EZXNjcmlwdG9yIGNoZWNrc3VtIG1pc21hdGNoLyk7XG4gIHJ1blRlc3RJc0FkZHJlc3MoYWRkcmVzc0ZvbzAsIDAsICdiYXInLCBkZXNjQmFyLnZhbHVlLnNsaWNlKC04KSwgL0FkZHJlc3MgbWlzbWF0Y2ggZm9yIGRlc2NyaXB0b3IvKTtcbn0pO1xuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"prebuildAndSign.d.ts","sourceRoot":"","sources":["../../../../test/unit/prebuildAndSign.ts"],"names":[],"mappings":"AAWA,QAAA,MAAM,SAAS,6BAA8B,CAAC;AAC9C,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAalD,QAAA,MAAM,WAAW,kGAA+F,CAAC;AACjH,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"prebuildAndSign.d.ts","sourceRoot":"","sources":["../../../../test/unit/prebuildAndSign.ts"],"names":[],"mappings":"AAYA,QAAA,MAAM,SAAS,6BAA8B,CAAC;AAC9C,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAalD,QAAA,MAAM,WAAW,kGAA+F,CAAC;AACjH,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC"}
@@ -39,6 +39,7 @@ const nock = require("nock");
39
39
  const sdk_core_1 = require("@bitgo/sdk-core");
40
40
  const sdk_test_1 = require("@bitgo/sdk-test");
41
41
  const src_1 = require("../../src");
42
+ const names_1 = require("../../src/names");
42
43
  const util_1 = require("./util");
43
44
  const txFormats = ['legacy', 'psbt'];
44
45
  const walletPassphrase = 'gabagool';
@@ -248,7 +249,7 @@ function run(coin, inputScripts, txFormat) {
248
249
  });
249
250
  }
250
251
  util_1.utxoCoins
251
- .filter((coin) => utxolib.getMainnet(coin.network) !== utxolib.networks.bitcoinsv)
252
+ .filter((coin) => (0, names_1.getMainnetCoinName)(coin.name) !== 'bsv')
252
253
  .forEach((coin) => {
253
254
  scriptTypes
254
255
  // Don't iterate over p2shP2pk - in no scenario would a wallet spend two p2shP2pk inputs as these
@@ -267,4 +268,4 @@ util_1.utxoCoins
267
268
  }
268
269
  });
269
270
  });
270
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlYnVpbGRBbmRTaWduLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC91bml0L3ByZWJ1aWxkQW5kU2lnbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFpQztBQUVqQyx5REFBMkM7QUFDM0MsNkJBQThCO0FBQzlCLDhDQUE0RTtBQUM1RSw4Q0FBMEM7QUFFMUMsbUNBQTJFO0FBRTNFLGlDQUF3SDtBQUV4SCxNQUFNLFNBQVMsR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQVUsQ0FBQztBQVc5QyxNQUFNLGdCQUFnQixHQUFHLFVBQVUsQ0FBQztBQUNwQyxNQUFNLHdCQUF3QixHQUFHLG1CQUFtQixDQUFDO0FBRXJELE1BQU0sV0FBVyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxlQUFlLEVBQUUscUJBQXFCLEVBQUUsVUFBVSxDQUFVLENBQUM7QUFRakgsU0FBUyxjQUFjLENBQUMsT0FBZSxFQUFFLFlBQTBCLEVBQUUsT0FBd0I7SUFDM0YsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDL0QseUVBQXlFO0lBQ3pFLDJEQUEyRDtJQUMzRCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sR0FBRyxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7UUFDL0YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsNkJBQTZCLEVBQUUs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dCI6WyJpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28vdXR4by1saWInO1xuaW1wb3J0IG5vY2sgPSByZXF1aXJlKCdub2NrJyk7XG5pbXBvcnQgeyBjb21tb24sIEhhbGZTaWduZWRVdHhvVHJhbnNhY3Rpb24sIFdhbGxldCB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBnZXRTZWVkIH0gZnJvbSAnQGJpdGdvL3Nkay10ZXN0JztcblxuaW1wb3J0IHsgQWJzdHJhY3RVdHhvQ29pbiwgZ2V0UmVwbGF5UHJvdGVjdGlvbkFkZHJlc3NlcyB9IGZyb20gJy4uLy4uL3NyYyc7XG5cbmltcG9ydCB7IGRlZmF1bHRCaXRHbywgZW5jcnlwdEtleWNoYWluLCBnZXREZWZhdWx0V2FsbGV0S2V5cywgZ2V0VXR4b1dhbGxldCwga2V5Y2hhaW5zQmFzZTU4LCB1dHhvQ29pbnMgfSBmcm9tICcuL3V0aWwnO1xuXG5jb25zdCB0eEZvcm1hdHMgPSBbJ2xlZ2FjeScsICdwc2J0J10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBUeEZvcm1hdCA9ICh0eXBlb2YgdHhGb3JtYXRzKVtudW1iZXJdO1xuXG50eXBlIEtleURvYyA9IHtcbiAgaWQ6IHN0cmluZztcbiAgcHViOiBzdHJpbmc7XG4gIHNvdXJjZTogc3RyaW5nO1xuICBlbmNyeXB0ZWRQcnY6IHN0cmluZztcbiAgY29pblNwZWNpZmljOiBhbnk7XG59O1xuXG5jb25zdCB3YWxsZXRQYXNzcGhyYXNlID0gJ2dhYmFnb29sJztcbmNvbnN0IHdlYmF1dGhuV2FsbGV0UGFzc1BocmFzZSA9ICdqdXN0IHRoZSBnYWJhZ29vbCc7XG5cbmNvbnN0IHNjcmlwdFR5cGVzID0gWy4uLnV0eG9saWIuYml0Z28ub3V0cHV0U2NyaXB0cy5zY3JpcHRUeXBlczJPZjMsICd0YXByb290S2V5UGF0aFNwZW5kJywgJ3Ayc2hQMnBrJ10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBTY3JpcHRUeXBlID0gKHR5cGVvZiBzY3JpcHRUeXBlcylbbnVtYmVyXTtcblxudHlwZSBJbnB1dCA9IHtcbiAgc2NyaXB0VHlwZTogU2NyaXB0VHlwZTtcbiAgdmFsdWU6IGJpZ2ludDtcbn07XG5cbmZ1bmN0aW9uIGFzc2VydFNpZ25hYmxlKHBzYnRIZXg6IHN0cmluZywgaW5wdXRTY3JpcHRzOiBTY3JpcHRUeXBlW10sIG5ldHdvcms6IHV0eG9saWIuTmV0d29yayk6IHZvaWQge1xuICBjb25zdCBwc2J0ID0gdXR4b2xpYi5iaXRnby5jcmVhdGVQc2J0RnJvbUhleChwc2J0SGV4LCBuZXR3b3JrKTtcbiAgLy8gTWFrZSBzdXJlIHRoYXQgeW91IGNhbiBzaWduIHdpdGggYml0Z28ga2V5IGFuZCBleHRyYWN0IHRoZSB0cmFuc2FjdGlvblxuICAvLyBObyBzaWduYXR1cmVzIHNob3VsZCBiZSBwcmVzZW50IGlmIGl0J3MgYSBwMnNoUDJwayBpbnB1dFxuICBpZiAoIWlucHV0U2NyaXB0cy5pbmNsdWRlcygncDJzaFAycGsnKSkge1xuICAgIGNvbnN0IGtleSA9IGlucHV0U2NyaXB0cy5pbmNsdWRlcygncDJ0ck11c2lnMicpID8gcm9vdFdhbGxldEtleXMuYmFja3VwIDogcm9vdFdhbGxldEtleXMuYml0Z287XG4gICAgcHNidC5zaWduQWxsSW5wdXRzSEQoa2V5LCB7IGRldGVybWluaXN0aWM6IHRydWUgfSk7XG4gICAgcHNidC52YWxpZGF0ZVNpZ25hdHVyZXNPZkFsbElucHV0cygpO1xuICAgIHBzYnQuZmluYWxpemVBbGxJbnB1dHMoKTtcbiAgICBjb25zdCB0eCA9IHBzYnQuZXh0cmFjdFRyYW5zYWN0aW9uKCk7XG4gICAgYXNzZXJ0Lm9rKHR4KTtcbiAgfVxufVxuXG4vLyBCdWlsZCB0aGUga2V5IG9iamVjdHNcbmNvbnN0IHJvb3RXYWxsZXRLZXlzID0gZ2V0RGVmYXVsdFdhbGxldEtleXMoKTtcbmNvbnN0IGtleURvY3VtZW50T2JqZWN0cyA9IHJvb3RXYWxsZXRLZXlzLnRyaXBsZS5tYXAoKGJpcDMyLCBrZXlJZHgpID0+IHtcbiAgcmV0dXJuIHtcbiAgICBpZDogZ2V0U2VlZChrZXljaGFpbnNCYXNlNThba2V5SWR4XS5wdWIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICBwdWI6IGJpcDMyLm5ldXRlcmVkKCkudG9CYXNlNTgoKSxcbiAgICBzb3VyY2U6IFsndXNlcicsICdiYWNrdXAnLCAnYml0Z28nXVtrZXlJZHhdLFxuICAgIGVuY3J5cHRlZFBydjogZW5jcnlwdEtleWNoYWluKHdhbGxldFBhc3NwaHJhc2UsIGtleWNoYWluc0Jhc2U1OFtrZXlJZHhdKSxcbiAgICB3ZWJhdXRobkRldmljZXM6IFtcbiAgICAgIHtcbiAgICAgICAgb3RwRGV2aWNlSWQ6ICcxMjMnLFxuICAgICAgICBhdXRoZW50aWNhdG9ySW5mbzoge1xuICAgICAgICAgIGNyZWRJRDogJ2NyZWRJRCcsXG4gICAgICAgICAgZm10OiAncGFja2VkJyxcbiAgICAgICAgICBwdWJsaWNLZXk6ICdzb21lIHZhbHVlJyxcbiAgICAgICAgfSxcbiAgICAgICAgcHJmU2FsdDogJzQ1NicsXG4gICAgICAgIGVuY3J5cHRlZFBydjogZW5jcnlwdEtleWNoYWluKHdlYmF1dGhuV2FsbGV0UGFzc1BocmFzZSwga2V5Y2hhaW5zQmFzZTU4W2tleUlkeF0pLFxuICAgICAgfSxcbiAgICBdLFxuICAgIGNvaW5TcGVjaWZpYzoge30sXG4gIH07XG59KTtcblxuZnVuY3Rpb24gcnVuKGNvaW46IEFic3RyYWN0VXR4b0NvaW4sIGlucHV0U2NyaXB0czogU2NyaXB0VHlwZVtdLCB0eEZvcm1hdDogVHhGb3JtYXQpOiB2b2lkIHtcbiAgZnVuY3Rpb24gY3JlYXRlUHJlYnVpbGRQc2J0KGlucHV0czogSW5wdXRbXSwgb3V0cHV0czogeyBzY3JpcHRUeXBlOiAncDJzaCc7IHZhbHVlOiBiaWdpbnQgfVtdKSB7XG4gICAgY29uc3QgcHNidCA9IHV0eG9saWIudGVzdHV0aWwuY29uc3RydWN0UHNidChcbiAgICAgIGlucHV0cyBhcyB1dHhvbGliLnRlc3R1dGlsLklucHV0W10sXG4gICAgICBvdXRwdXRzLFxuICAgICAgY29pbi5uZXR3b3JrLFxuICAgICAgcm9vdFdhbGxldEtleXMsXG4gICAgICAndW5zaWduZWQnXG4gICAgKTtcbiAgICB1dHhvbGliLmJpdGdvLmFkZFhwdWJzVG9Qc2J0KHBzYnQsIHJvb3RXYWxsZXRLZXlzKTtcbiAgICByZXR1cm4gcHNidDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZU5vY2tzKHBhcmFtczoge1xuICAgIGJnVXJsOiBzdHJpbmc7XG4gICAgd2FsbGV0OiBXYWxsZXQ7XG4gICAga2V5RG9jdW1lbnRzOiBLZXlEb2NbXTtcbiAgICBwcmVidWlsZDogdXR4b2xpYi5iaXRnby5VdHhvUHNidDtcbiAgICByZWNpcGllbnQ6IHsgYWRkcmVzczogc3RyaW5nOyBhbW91bnQ6IHN0cmluZyB9O1xuICAgIGFkZHJlc3NJbmZvOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgIHJiZlR4SWRzPzogc3RyaW5nW107XG4gICAgZmVlTXVsdGlwbGllcj86IG51bWJlcjtcbiAgICBzZWxmU2VuZD86IGJvb2xlYW47XG4gICAgbm9ja091dHB1dEFkZHJlc3Nlcz86IGJvb2xlYW47XG4gICAgdHhGb3JtYXQ/OiBzdHJpbmc7XG4gIH0pOiBub2NrLlNjb3BlW10ge1xuICAgIGNvbnN0IG5vY2tzOiBub2NrLlNjb3BlW10gPSBbXTtcblxuICAgIC8vIE5vY2sgdGhlIHByZWJ1aWxkIHJvdXRlICgvdHgvYnVpbGQsIGJsb2NraGVpZ2h0KVxuICAgIGNvbnN0IGV4cGVjdGVkX3BhcmFtcyA9IHtcbiAgICAgIHJlY2lwaWVudHM6IFtwYXJhbXMucmVjaXBpZW50XSxcbiAgICAgIHJiZlR4SWRzOiBwYXJhbXMucmJmVHhJZHMsXG4gICAgICBmZWVNdWx0aXBsaWVyOiBwYXJhbXMuZmVlTXVsdGlwbGllcixcbiAgICAgIGNoYW5nZUFkZHJlc3NUeXBlOiBbJ3AydHJNdXNpZzInLCAncDJ3c2gnLCAncDJzaFAyd3NoJywgJ3Ayc2gnLCAncDJ0ciddLFxuICAgIH07XG4gICAgaWYgKHBhcmFtcy50eEZvcm1hdCkge1xuICAgICAgZXhwZWN0ZWRfcGFyYW1zWyd0eEZvcm1hdCddID0gcGFyYW1zLnR4Rm9ybWF0O1xuICAgIH1cbiAgICBub2Nrcy5wdXNoKFxuICAgICAgbm9jayhwYXJhbXMuYmdVcmwpXG4gICAgICAgIC5wb3N0KGAvYXBpL3YyLyR7Y29pbi5nZXRDaGFpbigpfS93YWxsZXQvJHtwYXJhbXMud2FsbGV0LmlkKCl9L3R4L2J1aWxkYCwgZXhwZWN0ZWRfcGFyYW1zKVxuICAgICAgICAucmVwbHkoMjAwLCB7IHR4SGV4OiBwYXJhbXMucHJlYnVpbGQudG9IZXgoKSwgdHhJbmZvOiB7fSB9KVxuICAgICk7XG4gICAgbm9ja3MucHVzaChub2NrKHBhcmFtcy5iZ1VybCkuZ2V0KGAvYXBpL3YyLyR7Y29pbi5nZXRDaGFpbigpfS9wdWJsaWMvYmxvY2svbGF0ZXN0YCkucmVwbHkoMjAwLCB7IGhlaWdodDogMTAwMCB9KSk7XG5cbiAgICAvLyBub2NrIHRoZSBrZXljaGFpbiBmZXRjaCAtIDMgdGltZXMgKHByZWJ1aWxkQW5kU2lnbiwgdmVyaWZ5VHJhbnNhY3Rpb24sIGFuZCBzaWduVHJhbnNhY3Rpb24pXG4gICAgcGFyYW1zLmtleURvY3VtZW50cy5mb3JFYWNoKChrZXlEb2N1bWVudCkgPT4ge1xuICAgICAgbm9ja3MucHVzaChcbiAgICAgICAgbm9jayhwYXJhbXMuYmdVcmwpLmdldChgL2FwaS92Mi8ke2NvaW4uZ2V0Q2hhaW4oKX0va2V5LyR7a2V5RG9jdW1lbnQuaWR9YCkudGltZXMoMykucmVwbHkoMjAwLCBrZXlEb2N1bWVudClcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICAvLyBub2NrIHRoZSBhZGRyZXNzIGluZm8gZmV0Y2hcbiAgICBpZiAocGFyYW1zLm5vY2tPdXRwdXRBZGRyZXNzZXMpIHtcbiAgICAgIG5vY2tzLnB1c2goXG4gICAgICAgIG5vY2socGFyYW1zLmJnVXJsKVxuICAgICAgICAgIC5nZXQoYC9hcGkvdjIvJHtjb2luLmdldENoYWluKCl9L3dhbGxldC8ke3BhcmFtcy53YWxsZXQuaWQoKX0vYWRkcmVzcy8ke3BhcmFtcy5hZGRyZXNzSW5mby5hZGRyZXNzfWApXG4gICAgICAgICAgLnJlcGx5KDIwMCwgcGFyYW1zLmFkZHJlc3NJbmZvKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAocGFyYW1zLnJiZlR4SWRzKSB7XG4gICAgICBub2Nrcy5wdXNoKFxuICAgICAgICBub2NrKHBhcmFtcy5iZ1VybClcbiAgICAgICAgICAuZ2V0KGAvYXBpL3YyLyR7Y29pbi5nZXRDaGFpbigpfS93YWxsZXQvJHtwYXJhbXMud2FsbGV0LmlkKCl9L3R4LyR7cGFyYW1zLnJiZlR4SWRzWzBdfT9pbmNsdWRlUmJmPXRydWVgKVxuICAgICAgICAgIC5yZXBseSgyMDAsIHtcbiAgICAgICAgICAgIG91dHB1dHM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGFkZHJlc3M6IHBhcmFtcy5yZWNpcGllbnQuYWRkcmVzcyxcbiAgICAgICAgICAgICAgICB2YWx1ZTogTnVtYmVyKHBhcmFtcy5yZWNpcGllbnQuYW1vdW50KSxcbiAgICAgICAgICAgICAgICB2YWx1ZVN0cmluZzogcGFyYW1zLnJlY2lwaWVudC5hbW91bnQsXG4gICAgICAgICAgICAgICAgd2FsbGV0OiBwYXJhbXMuc2VsZlNlbmQgPyBwYXJhbXMud2FsbGV0LmlkKCkgOiAnc29tZS1vdGhlci13YWxsZXQtaWQnLCAvLyBleHRlcm5hbCBvdXRwdXQgaWYgbm90IGEgc2VsZiBzZW5kXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIC8vIER1bW15IGNoYW5nZSBvdXRwdXQgdG8gdGVzdCB0cmFuc2ZlciBlbnRyaWVzIGZpbHRlcmluZ1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYWRkcmVzczogcGFyYW1zLnJlY2lwaWVudC5hZGRyZXNzLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBOdW1iZXIocGFyYW1zLnJlY2lwaWVudC5hbW91bnQpLFxuICAgICAgICAgICAgICAgIHZhbHVlU3RyaW5nOiBwYXJhbXMucmVjaXBpZW50LmFtb3VudCxcbiAgICAgICAgICAgICAgICB3YWxsZXQ6IHBhcmFtcy53YWxsZXQuaWQoKSwgLy8gaW50ZXJuYWwgb3V0cHV0XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIG5vY2sgdGhlIGRldGVybWluaXN0aWMgbm9uY2UgcmVzcG9uc2VcbiAgICBpZiAoaW5wdXRTY3JpcHRzLmluY2x1ZGVzKCd0YXByb290S2V5UGF0aFNwZW5kJykpIHtcbiAgICAgIGNvbnN0IHBzYnQgPSBwYXJhbXMucHJlYnVpbGQuY2xvbmUoKTtcbiAgICAgIHBzYnQuc2V0QWxsSW5wdXRzTXVzaWcyTm9uY2VIRChyb290V2FsbGV0S2V5cy51c2VyKTtcbiAgICAgIHBzYnQuc2V0QWxsSW5wdXRzTXVzaWcyTm9uY2VIRChyb290V2FsbGV0S2V5cy5iaXRnbyk7XG4gICAgICBub2Nrcy5wdXNoKFxuICAgICAgICBub2NrKHBhcmFtcy5iZ1VybClcbiAgICAgICAgICAucG9zdChgL2FwaS92Mi8ke2NvaW4uZ2V0Q2hhaW4oKX0vd2FsbGV0LyR7cGFyYW1zLndhbGxldC5pZCgpfS90eC9zaWducHNidGAsIChib2R5KSA9PiBib2R5LnBzYnQpXG4gICAgICAgICAgLnJlcGx5KDIwMCwgeyBwc2J0OiBwc2J0LnRvSGV4KCkgfSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vY2tzO1xuICB9XG5cbiAgZGVzY3JpYmUoYCR7Y29pbi5nZXRGdWxsTmFtZSgpfS1wcmVidWlsZEFuZFNpZ24tdHhGb3JtYXQ9JHt0eEZvcm1hdH0taW5wdXRTY3JpcHRzPSR7aW5wdXRTY3JpcHRzLmpvaW4oXG4gICAgJywnXG4gICl9YCwgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHdhbGxldCA9IGdldFV0eG9XYWxsZXQoY29pbiwge1xuICAgICAgY29pblNwZWNpZmljOiB7IGFkZHJlc3NWZXJzaW9uOiAnYmFzZTU4JyB9LFxuICAgICAga2V5czoga2V5RG9jdW1lbnRPYmplY3RzLm1hcCgoaykgPT4gay5pZCksXG4gICAgICBpZDogJ3dhbGxldElkJyxcbiAgICB9KTtcblxuICAgIGNvbnN0IGJnVXJsID0gY29tbW9uLkVudmlyb25tZW50c1tkZWZhdWx0Qml0R28uZ2V0RW52KCldLnVyaTtcbiAgICBsZXQgcHJlYnVpbGQ6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQ7XG4gICAgbGV0IHJlY2lwaWVudDogeyBhZGRyZXNzOiBzdHJpbmc7IGFtb3VudDogc3RyaW5nIH07XG4gICAgbGV0IGFkZHJlc3NJbmZvOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgIGNvbnN0IGZlZSA9IEJpZ0ludCgxMDAwMCk7XG5cbiAgICBiZWZvcmUoYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgLy8gTWFrZSBvdXRwdXQgYWRkcmVzcyBpbmZvcm1hdGlvblxuICAgICAgY29uc3Qgb3V0cHV0QW1vdW50ID0gQmlnSW50KGlucHV0U2NyaXB0cy5sZW5ndGgpICogQmlnSW50KDFlOCkgLSBmZWU7XG4gICAgICBjb25zdCBvdXRwdXRTY3JpcHRUeXBlOiB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuU2NyaXB0VHlwZSA9ICdwMnNoJztcbiAgICAgIGNvbnN0IG91dHB1dENoYWluID0gdXR4b2xpYi5iaXRnby5nZXRFeHRlcm5hbENoYWluQ29kZShvdXRwdXRTY3JpcHRUeXBlKTtcbiAgICAgIGNvbnN0IG91dHB1dEFkZHJlc3MgPSB1dHhvbGliLmJpdGdvLmdldFdhbGxldEFkZHJlc3Mocm9vdFdhbGxldEtleXMsIG91dHB1dENoYWluLCAwLCBjb2luLm5ldHdvcmspO1xuXG4gICAgICByZWNpcGllbnQgPSB7XG4gICAgICAgIGFkZHJlc3M6IG91dHB1dEFkZHJlc3MsXG4gICAgICAgIGFtb3VudDogb3V0cHV0QW1vdW50LnRvU3RyaW5nKCksXG4gICAgICB9O1xuICAgICAgYWRkcmVzc0luZm8gPSB7XG4gICAgICAgIGFkZHJlc3M6IG91dHB1dEFkZHJlc3MsXG4gICAgICAgIGNoYWluOiBvdXRwdXRDaGFpbixcbiAgICAgICAgaW5kZXg6IDAsXG4gICAgICAgIGNvaW46IGNvaW4uZ2V0Q2hhaW4oKSxcbiAgICAgICAgd2FsbGV0OiB3YWxsZXQuaWQoKSxcbiAgICAgICAgY29pblNwZWNpZmljOiB7fSxcbiAgICAgIH07XG5cbiAgICAgIHByZWJ1aWxkID0gY3JlYXRlUHJlYnVpbGRQc2J0KFxuICAgICAgICBpbnB1dFNjcmlwdHMubWFwKChzKSA9PiAoeyBzY3JpcHRUeXBlOiBzLCB2YWx1ZTogQmlnSW50KDFlOCkgfSkpLFxuICAgICAgICBbeyBzY3JpcHRUeXBlOiBvdXRwdXRTY3JpcHRUeXBlLCB2YWx1ZTogb3V0cHV0QW1vdW50IH1dXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgYWZ0ZXJFYWNoKG5vY2suY2xlYW5BbGwpO1xuXG4gICAgW3RydWUsIGZhbHNlXS5mb3JFYWNoKCh1c2VXZWJhdXRobikgPT4ge1xuICAgICAgaXQoYHNob3VsZCBzdWNjZWVkIHdpdGggJHt1c2VXZWJhdXRobiA/ICd3ZWJhdXRobiBlbmNyeXB0ZWRQcnYnIDogJ2VuY3J5cHRlZFBydid9YCwgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICAvLyBDaGVjayBpZiB0aGlzIHdhbGxldC9jb2luIGNvbWJpbmF0aW9uIGRlZmF1bHRzIHRvIHBzYnRcbiAgICAgICAgY29uc3QgZGVmYXVsdFR4Rm9ybWF0ID0gY29pbi5nZXREZWZhdWx0VHhGb3JtYXQod2FsbGV0KTtcbiAgICAgICAgY29uc3Qgbm9ja3MgPSBjcmVhdGVOb2Nrcyh7XG4gICAgICAgICAgYmdVcmwsXG4gICAgICAgICAgd2FsbGV0LFxuICAgICAgICAgIGtleURvY3VtZW50czoga2V5RG9jdW1lbnRPYmplY3RzLFxuICAgICAgICAgIHByZWJ1aWxkLFxuICAgICAgICAgIHJlY2lwaWVudCxcbiAgICAgICAgICBhZGRyZXNzSW5mbyxcbiAgICAgICAgICBub2NrT3V0cHV0QWRkcmVzc2VzOiB0eEZvcm1hdCAhPT0gJ3BzYnQnLFxuICAgICAgICAgIHR4Rm9ybWF0OiBkZWZhdWx0VHhGb3JtYXQsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIGNhbGwgcHJlYnVpbGQgYW5kIHNpZ24sIG5vY2tzIHNob3VsZCBiZSBjb25zdW1lZFxuICAgICAgICBjb25zdCByZXMgPSAoYXdhaXQgd2FsbGV0LnByZWJ1aWxkQW5kU2lnblRyYW5zYWN0aW9uKHtcbiAgICAgICAgICByZWNpcGllbnRzOiBbcmVjaXBpZW50XSxcbiAgICAgICAgICB3YWxsZXRQYXNzcGhyYXNlOiB1c2VXZWJhdXRobiA/IHdlYmF1dGhuV2FsbGV0UGFzc1BocmFzZSA6IHdhbGxldFBhc3NwaHJhc2UsXG4gICAgICAgIH0pKSBhcyBIYWxmU2lnbmVkVXR4b1RyYW5zYWN0aW9uO1xuXG4gICAgICAgIG5vY2tzLmZvckVhY2goKG5vY2spID0+IGFzc2VydC5vayhub2NrLmlzRG9uZSgpKSk7XG5cbiAgICAgICAgYXNzZXJ0U2lnbmFibGUocmVzLnR4SGV4LCBpbnB1dFNjcmlwdHMsIGNvaW4ubmV0d29yayk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCBmYWlsIGlmIHRoZSB3YWxsZXQgcGFzc3BocmFzZSBpcyBpbmNvcnJlY3QnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNyZWF0ZU5vY2tzKHtcbiAgICAgICAgICBiZ1VybCxcbiAgICAgICAgICB3YWxsZXQsXG4gICAgICAgICAga2V5RG9jdW1lbnRzOiBrZXlEb2N1bWVudE9iamVjdHMsXG4gICAgICAgICAgcHJlYnVpbGQsXG4gICAgICAgICAgcmVjaXBpZW50LFxuICAgICAgICAgIGFkZHJlc3NJbmZvLFxuICAgICAgICAgIG5vY2tPdXRwdXRBZGRyZXNzZXM6IHR4Rm9ybWF0ICE9PSAncHNidCcsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGF3YWl0IHdhbGxldFxuICAgICAgICAgIC5wcmVidWlsZEFuZFNpZ25UcmFuc2FjdGlvbih7XG4gICAgICAgICAgICByZWNpcGllbnRzOiBbcmVjaXBpZW50XSxcbiAgICAgICAgICAgIHdhbGxldFBhc3NwaHJhc2U6IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoKSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5zaG91bGQuYmUucmVqZWN0ZWRXaXRoKCd1bmFibGUgdG8gZGVjcnlwdCBrZXljaGFpbiB3aXRoIHRoZSBnaXZlbiB3YWxsZXQgcGFzc3BocmFzZScpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBbdHJ1ZSwgZmFsc2VdLmZvckVhY2goKHNlbGZTZW5kKSA9PiB7XG4gICAgICBpdChgc2hvdWxkIGJlIGFibGUgdG8gYnVpbGQsIHNpZ24sICYgdmVyaWZ5IGEgcmVwbGFjZW1lbnQgdHJhbnNhY3Rpb24gd2l0aCBzZWxmU2VuZDogJHtzZWxmU2VuZH1gLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnN0IHJiZlR4SWRzID0gWyd0eC10by1iZS1yZXBsYWNlZCddLFxuICAgICAgICAgIGZlZU11bHRpcGxpZXIgPSAxLjU7XG4gICAgICAgIC8vIENoZWNrIGlmIHRoaXMgd2FsbGV0L2NvaW4gY29tYmluYXRpb24gZGVmYXVsdHMgdG8gcHNidFxuICAgICAgICBjb25zdCBkZWZhdWx0VHhGb3JtYXQgPSBjb2luLmdldERlZmF1bHRUeEZvcm1hdCh3YWxsZXQpO1xuICAgICAgICBjb25zdCBub2NrcyA9IGNyZWF0ZU5vY2tzKHtcbiAgICAgICAgICBiZ1VybCxcbiAgICAgICAgICB3YWxsZXQsXG4gICAgICAgICAga2V5RG9jdW1lbnRzOiBrZXlEb2N1bWVudE9iamVjdHMsXG4gICAgICAgICAgcHJlYnVpbGQsXG4gICAgICAgICAgcmVjaXBpZW50LFxuICAgICAgICAgIGFkZHJlc3NJbmZvLFxuICAgICAgICAgIHJiZlR4SWRzLFxuICAgICAgICAgIGZlZU11bHRpcGxpZXIsXG4gICAgICAgICAgc2VsZlNlbmQsXG4gICAgICAgICAgbm9ja091dHB1dEFkZHJlc3NlczogdHhGb3JtYXQgIT09ICdwc2J0JyxcbiAgICAgICAgICB0eEZvcm1hdDogZGVmYXVsdFR4Rm9ybWF0LFxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBjYWxsIHByZWJ1aWxkIGFuZCBzaWduLCBub2NrcyBzaG91bGQgYmUgY29uc3VtZWRcbiAgICAgICAgY29uc3QgcmVzID0gKGF3YWl0IHdhbGxldC5wcmVidWlsZEFuZFNpZ25UcmFuc2FjdGlvbih7XG4gICAgICAgICAgcmVjaXBpZW50czogW3JlY2lwaWVudF0sXG4gICAgICAgICAgd2FsbGV0UGFzc3BocmFzZSxcbiAgICAgICAgICByYmZUeElkcyxcbiAgICAgICAgICBmZWVNdWx0aXBsaWVyLFxuICAgICAgICB9KSkgYXMgSGFsZlNpZ25lZFV0eG9UcmFuc2FjdGlvbjtcblxuICAgICAgICBub2Nrcy5mb3JFYWNoKChub2NrKSA9PiBhc3NlcnQub2sobm9jay5pc0RvbmUoKSkpO1xuXG4gICAgICAgIGFzc2VydFNpZ25hYmxlKHJlcy50eEhleCwgaW5wdXRTY3JpcHRzLCBjb2luLm5ldHdvcmspO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG51dHhvQ29pbnNcbiAgLmZpbHRlcigoY29pbikgPT4gdXR4b2xpYi5nZXRNYWlubmV0KGNvaW4ubmV0d29yaykgIT09IHV0eG9saWIubmV0d29ya3MuYml0Y29pbnN2KVxuICAuZm9yRWFjaCgoY29pbikgPT4ge1xuICAgIHNjcmlwdFR5cGVzXG4gICAgICAvLyBEb24ndCBpdGVyYXRlIG92ZXIgcDJzaFAycGsgLSBpbiBubyBzY2VuYXJpbyB3b3VsZCBhIHdhbGxldCBzcGVuZCB0d28gcDJzaFAycGsgaW5wdXRzIGFzIHRoZXNlXG4gICAgICAvLyBhcmUgc2luZ2xlIHNpZ25hdHVyZSBpbnB1dHMgdGhhdCBhcmUgdXNlZCBmb3IgcmVwbGF5IHByb3RlY3Rpb24gYW5kIGFyZSBhZGRlZCB0byB0aGUgdHJhbnNhY3Rpb25cbiAgICAgIC8vIGJ5IG91ciBzeXN0ZW0gZnJvbSBhIHNlcGFyYXRlIHdhbGxldC4gV2UgZG8gcnVuIHRlc3RzIGJlbG93IHdoZXJlIG9uZSBvZiB0aGUgaW5wdXRzIGlzIGEgcDJzaFAycGsgYW5kXG4gICAgICAvLyB0aGUgb3RoZXIgaXMgYW4gaW5wdXQgc3BlbnQgYnkgdGhlIHVzZXIuXG4gICAgICAuZmlsdGVyKChzY3JpcHRUeXBlKSA9PiBzY3JpcHRUeXBlICE9PSAncDJzaFAycGsnKVxuICAgICAgLmZvckVhY2goKGlucHV0U2NyaXB0KSA9PiB7XG4gICAgICAgIGNvbnN0IGlucHV0U2NyaXB0Q2xlYW5lZCA9IChcbiAgICAgICAgICBpbnB1dFNjcmlwdCA9PT0gJ3RhcHJvb3RLZXlQYXRoU3BlbmQnID8gJ3AydHJNdXNpZzInIDogaW5wdXRTY3JpcHRcbiAgICAgICAgKSBhcyB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuU2NyaXB0VHlwZTJPZjM7XG5cbiAgICAgICAgaWYgKCFjb2luLnN1cHBvcnRzQWRkcmVzc1R5cGUoaW5wdXRTY3JpcHRDbGVhbmVkKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJ1bihjb2luLCBbaW5wdXRTY3JpcHQsIGlucHV0U2NyaXB0XSwgJ3BzYnQnKTtcbiAgICAgICAgaWYgKGdldFJlcGxheVByb3RlY3Rpb25BZGRyZXNzZXMoY29pbi5uYW1lKS5sZW5ndGgpIHtcbiAgICAgICAgICBydW4oY29pbiwgWydwMnNoUDJwaycsIGlucHV0U2NyaXB0XSwgJ3BzYnQnKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH0pO1xuIl19
271
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlYnVpbGRBbmRTaWduLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC91bml0L3ByZWJ1aWxkQW5kU2lnbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFpQztBQUVqQyx5REFBMkM7QUFDM0MsNkJBQThCO0FBQzlCLDhDQUE0RTtBQUM1RSw4Q0FBMEM7QUFFMUMsbUNBQTJFO0FBQzNFLDJDQUFxRDtBQUVyRCxpQ0FBd0g7QUFFeEgsTUFBTSxTQUFTLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFVLENBQUM7QUFXOUMsTUFBTSxnQkFBZ0IsR0FBRyxVQUFVLENBQUM7QUFDcEMsTUFBTSx3QkFBd0IsR0FBRyxtQkFBbUIsQ0FBQztBQUVyRCxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFFLHFCQUFxQixFQUFFLFVBQVUsQ0FBVSxDQUFDO0FBUWpILFNBQVMsY0FBYyxDQUFDLE9BQWUsRUFBRSxZQUEwQixFQUFFLE9BQXdCO0lBQzNGLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQy9ELHlFQUF5RTtJQUN6RSwyREFBMkQ7SUFDM0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUN2QyxNQUFNLEdBQUcsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO1FBQy9GLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFD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dCAqIGFzIGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5pbXBvcnQgbm9jayA9IHJlcXVpcmUoJ25vY2snKTtcbmltcG9ydCB7IGNvbW1vbiwgSGFsZlNpZ25lZFV0eG9UcmFuc2FjdGlvbiwgV2FsbGV0IH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IGdldFNlZWQgfSBmcm9tICdAYml0Z28vc2RrLXRlc3QnO1xuXG5pbXBvcnQgeyBBYnN0cmFjdFV0eG9Db2luLCBnZXRSZXBsYXlQcm90ZWN0aW9uQWRkcmVzc2VzIH0gZnJvbSAnLi4vLi4vc3JjJztcbmltcG9ydCB7IGdldE1haW5uZXRDb2luTmFtZSB9IGZyb20gJy4uLy4uL3NyYy9uYW1lcyc7XG5cbmltcG9ydCB7IGRlZmF1bHRCaXRHbywgZW5jcnlwdEtleWNoYWluLCBnZXREZWZhdWx0V2FsbGV0S2V5cywgZ2V0VXR4b1dhbGxldCwga2V5Y2hhaW5zQmFzZTU4LCB1dHhvQ29pbnMgfSBmcm9tICcuL3V0aWwnO1xuXG5jb25zdCB0eEZvcm1hdHMgPSBbJ2xlZ2FjeScsICdwc2J0J10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBUeEZvcm1hdCA9ICh0eXBlb2YgdHhGb3JtYXRzKVtudW1iZXJdO1xuXG50eXBlIEtleURvYyA9IHtcbiAgaWQ6IHN0cmluZztcbiAgcHViOiBzdHJpbmc7XG4gIHNvdXJjZTogc3RyaW5nO1xuICBlbmNyeXB0ZWRQcnY6IHN0cmluZztcbiAgY29pblNwZWNpZmljOiBhbnk7XG59O1xuXG5jb25zdCB3YWxsZXRQYXNzcGhyYXNlID0gJ2dhYmFnb29sJztcbmNvbnN0IHdlYmF1dGhuV2FsbGV0UGFzc1BocmFzZSA9ICdqdXN0IHRoZSBnYWJhZ29vbCc7XG5cbmNvbnN0IHNjcmlwdFR5cGVzID0gWy4uLnV0eG9saWIuYml0Z28ub3V0cHV0U2NyaXB0cy5zY3JpcHRUeXBlczJPZjMsICd0YXByb290S2V5UGF0aFNwZW5kJywgJ3Ayc2hQMnBrJ10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBTY3JpcHRUeXBlID0gKHR5cGVvZiBzY3JpcHRUeXBlcylbbnVtYmVyXTtcblxudHlwZSBJbnB1dCA9IHtcbiAgc2NyaXB0VHlwZTogU2NyaXB0VHlwZTtcbiAgdmFsdWU6IGJpZ2ludDtcbn07XG5cbmZ1bmN0aW9uIGFzc2VydFNpZ25hYmxlKHBzYnRIZXg6IHN0cmluZywgaW5wdXRTY3JpcHRzOiBTY3JpcHRUeXBlW10sIG5ldHdvcms6IHV0eG9saWIuTmV0d29yayk6IHZvaWQge1xuICBjb25zdCBwc2J0ID0gdXR4b2xpYi5iaXRnby5jcmVhdGVQc2J0RnJvbUhleChwc2J0SGV4LCBuZXR3b3JrKTtcbiAgLy8gTWFrZSBzdXJlIHRoYXQgeW91IGNhbiBzaWduIHdpdGggYml0Z28ga2V5IGFuZCBleHRyYWN0IHRoZSB0cmFuc2FjdGlvblxuICAvLyBObyBzaWduYXR1cmVzIHNob3VsZCBiZSBwcmVzZW50IGlmIGl0J3MgYSBwMnNoUDJwayBpbnB1dFxuICBpZiAoIWlucHV0U2NyaXB0cy5pbmNsdWRlcygncDJzaFAycGsnKSkge1xuICAgIGNvbnN0IGtleSA9IGlucHV0U2NyaXB0cy5pbmNsdWRlcygncDJ0ck11c2lnMicpID8gcm9vdFdhbGxldEtleXMuYmFja3VwIDogcm9vdFdhbGxldEtleXMuYml0Z287XG4gICAgcHNidC5zaWduQWxsSW5wdXRzSEQoa2V5LCB7IGRldGVybWluaXN0aWM6IHRydWUgfSk7XG4gICAgcHNidC52YWxpZGF0ZVNpZ25hdHVyZXNPZkFsbElucHV0cygpO1xuICAgIHBzYnQuZmluYWxpemVBbGxJbnB1dHMoKTtcbiAgICBjb25zdCB0eCA9IHBzYnQuZXh0cmFjdFRyYW5zYWN0aW9uKCk7XG4gICAgYXNzZXJ0Lm9rKHR4KTtcbiAgfVxufVxuXG4vLyBCdWlsZCB0aGUga2V5IG9iamVjdHNcbmNvbnN0IHJvb3RXYWxsZXRLZXlzID0gZ2V0RGVmYXVsdFdhbGxldEtleXMoKTtcbmNvbnN0IGtleURvY3VtZW50T2JqZWN0cyA9IHJvb3RXYWxsZXRLZXlzLnRyaXBsZS5tYXAoKGJpcDMyLCBrZXlJZHgpID0+IHtcbiAgcmV0dXJuIHtcbiAgICBpZDogZ2V0U2VlZChrZXljaGFpbnNCYXNlNThba2V5SWR4XS5wdWIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICBwdWI6IGJpcDMyLm5ldXRlcmVkKCkudG9CYXNlNTgoKSxcbiAgICBzb3VyY2U6IFsndXNlcicsICdiYWNrdXAnLCAnYml0Z28nXVtrZXlJZHhdLFxuICAgIGVuY3J5cHRlZFBydjogZW5jcnlwdEtleWNoYWluKHdhbGxldFBhc3NwaHJhc2UsIGtleWNoYWluc0Jhc2U1OFtrZXlJZHhdKSxcbiAgICB3ZWJhdXRobkRldmljZXM6IFtcbiAgICAgIHtcbiAgICAgICAgb3RwRGV2aWNlSWQ6ICcxMjMnLFxuICAgICAgICBhdXRoZW50aWNhdG9ySW5mbzoge1xuICAgICAgICAgIGNyZWRJRDogJ2NyZWRJRCcsXG4gICAgICAgICAgZm10OiAncGFja2VkJyxcbiAgICAgICAgICBwdWJsaWNLZXk6ICdzb21lIHZhbHVlJyxcbiAgICAgICAgfSxcbiAgICAgICAgcHJmU2FsdDogJzQ1NicsXG4gICAgICAgIGVuY3J5cHRlZFBydjogZW5jcnlwdEtleWNoYWluKHdlYmF1dGhuV2FsbGV0UGFzc1BocmFzZSwga2V5Y2hhaW5zQmFzZTU4W2tleUlkeF0pLFxuICAgICAgfSxcbiAgICBdLFxuICAgIGNvaW5TcGVjaWZpYzoge30sXG4gIH07XG59KTtcblxuZnVuY3Rpb24gcnVuKGNvaW46IEFic3RyYWN0VXR4b0NvaW4sIGlucHV0U2NyaXB0czogU2NyaXB0VHlwZVtdLCB0eEZvcm1hdDogVHhGb3JtYXQpOiB2b2lkIHtcbiAgZnVuY3Rpb24gY3JlYXRlUHJlYnVpbGRQc2J0KGlucHV0czogSW5wdXRbXSwgb3V0cHV0czogeyBzY3JpcHRUeXBlOiAncDJzaCc7IHZhbHVlOiBiaWdpbnQgfVtdKSB7XG4gICAgY29uc3QgcHNidCA9IHV0eG9saWIudGVzdHV0aWwuY29uc3RydWN0UHNidChcbiAgICAgIGlucHV0cyBhcyB1dHhvbGliLnRlc3R1dGlsLklucHV0W10sXG4gICAgICBvdXRwdXRzLFxuICAgICAgY29pbi5uZXR3b3JrLFxuICAgICAgcm9vdFdhbGxldEtleXMsXG4gICAgICAndW5zaWduZWQnXG4gICAgKTtcbiAgICB1dHhvbGliLmJpdGdvLmFkZFhwdWJzVG9Qc2J0KHBzYnQsIHJvb3RXYWxsZXRLZXlzKTtcbiAgICByZXR1cm4gcHNidDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZU5vY2tzKHBhcmFtczoge1xuICAgIGJnVXJsOiBzdHJpbmc7XG4gICAgd2FsbGV0OiBXYWxsZXQ7XG4gICAga2V5RG9jdW1lbnRzOiBLZXlEb2NbXTtcbiAgICBwcmVidWlsZDogdXR4b2xpYi5iaXRnby5VdHhvUHNidDtcbiAgICByZWNpcGllbnQ6IHsgYWRkcmVzczogc3RyaW5nOyBhbW91bnQ6IHN0cmluZyB9O1xuICAgIGFkZHJlc3NJbmZvOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgIHJiZlR4SWRzPzogc3RyaW5nW107XG4gICAgZmVlTXVsdGlwbGllcj86IG51bWJlcjtcbiAgICBzZWxmU2VuZD86IGJvb2xlYW47XG4gICAgbm9ja091dHB1dEFkZHJlc3Nlcz86IGJvb2xlYW47XG4gICAgdHhGb3JtYXQ/OiBzdHJpbmc7XG4gIH0pOiBub2NrLlNjb3BlW10ge1xuICAgIGNvbnN0IG5vY2tzOiBub2NrLlNjb3BlW10gPSBbXTtcblxuICAgIC8vIE5vY2sgdGhlIHByZWJ1aWxkIHJvdXRlICgvdHgvYnVpbGQsIGJsb2NraGVpZ2h0KVxuICAgIGNvbnN0IGV4cGVjdGVkX3BhcmFtcyA9IHtcbiAgICAgIHJlY2lwaWVudHM6IFtwYXJhbXMucmVjaXBpZW50XSxcbiAgICAgIHJiZlR4SWRzOiBwYXJhbXMucmJmVHhJZHMsXG4gICAgICBmZWVNdWx0aXBsaWVyOiBwYXJhbXMuZmVlTXVsdGlwbGllcixcbiAgICAgIGNoYW5nZUFkZHJlc3NUeXBlOiBbJ3AydHJNdXNpZzInLCAncDJ3c2gnLCAncDJzaFAyd3NoJywgJ3Ayc2gnLCAncDJ0ciddLFxuICAgIH07XG4gICAgaWYgKHBhcmFtcy50eEZvcm1hdCkge1xuICAgICAgZXhwZWN0ZWRfcGFyYW1zWyd0eEZvcm1hdCddID0gcGFyYW1zLnR4Rm9ybWF0O1xuICAgIH1cbiAgICBub2Nrcy5wdXNoKFxuICAgICAgbm9jayhwYXJhbXMuYmdVcmwpXG4gICAgICAgIC5wb3N0KGAvYXBpL3YyLyR7Y29pbi5nZXRDaGFpbigpfS93YWxsZXQvJHtwYXJhbXMud2FsbGV0LmlkKCl9L3R4L2J1aWxkYCwgZXhwZWN0ZWRfcGFyYW1zKVxuICAgICAgICAucmVwbHkoMjAwLCB7IHR4SGV4OiBwYXJhbXMucHJlYnVpbGQudG9IZXgoKSwgdHhJbmZvOiB7fSB9KVxuICAgICk7XG4gICAgbm9ja3MucHVzaChub2NrKHBhcmFtcy5iZ1VybCkuZ2V0KGAvYXBpL3YyLyR7Y29pbi5nZXRDaGFpbigpfS9wdWJsaWMvYmxvY2svbGF0ZXN0YCkucmVwbHkoMjAwLCB7IGhlaWdodDogMTAwMCB9KSk7XG5cbiAgICAvLyBub2NrIHRoZSBrZXljaGFpbiBmZXRjaCAtIDMgdGltZXMgKHByZWJ1aWxkQW5kU2lnbiwgdmVyaWZ5VHJhbnNhY3Rpb24sIGFuZCBzaWduVHJhbnNhY3Rpb24pXG4gICAgcGFyYW1zLmtleURvY3VtZW50cy5mb3JFYWNoKChrZXlEb2N1bWVudCkgPT4ge1xuICAgICAgbm9ja3MucHVzaChcbiAgICAgICAgbm9jayhwYXJhbXMuYmdVcmwpLmdldChgL2FwaS92Mi8ke2NvaW4uZ2V0Q2hhaW4oKX0va2V5LyR7a2V5RG9jdW1lbnQuaWR9YCkudGltZXMoMykucmVwbHkoMjAwLCBrZXlEb2N1bWVudClcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICAvLyBub2NrIHRoZSBhZGRyZXNzIGluZm8gZmV0Y2hcbiAgICBpZiAocGFyYW1zLm5vY2tPdXRwdXRBZGRyZXNzZXMpIHtcbiAgICAgIG5vY2tzLnB1c2goXG4gICAgICAgIG5vY2socGFyYW1zLmJnVXJsKVxuICAgICAgICAgIC5nZXQoYC9hcGkvdjIvJHtjb2luLmdldENoYWluKCl9L3dhbGxldC8ke3BhcmFtcy53YWxsZXQuaWQoKX0vYWRkcmVzcy8ke3BhcmFtcy5hZGRyZXNzSW5mby5hZGRyZXNzfWApXG4gICAgICAgICAgLnJlcGx5KDIwMCwgcGFyYW1zLmFkZHJlc3NJbmZvKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAocGFyYW1zLnJiZlR4SWRzKSB7XG4gICAgICBub2Nrcy5wdXNoKFxuICAgICAgICBub2NrKHBhcmFtcy5iZ1VybClcbiAgICAgICAgICAuZ2V0KGAvYXBpL3YyLyR7Y29pbi5nZXRDaGFpbigpfS93YWxsZXQvJHtwYXJhbXMud2FsbGV0LmlkKCl9L3R4LyR7cGFyYW1zLnJiZlR4SWRzWzBdfT9pbmNsdWRlUmJmPXRydWVgKVxuICAgICAgICAgIC5yZXBseSgyMDAsIHtcbiAgICAgICAgICAgIG91dHB1dHM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGFkZHJlc3M6IHBhcmFtcy5yZWNpcGllbnQuYWRkcmVzcyxcbiAgICAgICAgICAgICAgICB2YWx1ZTogTnVtYmVyKHBhcmFtcy5yZWNpcGllbnQuYW1vdW50KSxcbiAgICAgICAgICAgICAgICB2YWx1ZVN0cmluZzogcGFyYW1zLnJlY2lwaWVudC5hbW91bnQsXG4gICAgICAgICAgICAgICAgd2FsbGV0OiBwYXJhbXMuc2VsZlNlbmQgPyBwYXJhbXMud2FsbGV0LmlkKCkgOiAnc29tZS1vdGhlci13YWxsZXQtaWQnLCAvLyBleHRlcm5hbCBvdXRwdXQgaWYgbm90IGEgc2VsZiBzZW5kXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIC8vIER1bW15IGNoYW5nZSBvdXRwdXQgdG8gdGVzdCB0cmFuc2ZlciBlbnRyaWVzIGZpbHRlcmluZ1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYWRkcmVzczogcGFyYW1zLnJlY2lwaWVudC5hZGRyZXNzLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBOdW1iZXIocGFyYW1zLnJlY2lwaWVudC5hbW91bnQpLFxuICAgICAgICAgICAgICAgIHZhbHVlU3RyaW5nOiBwYXJhbXMucmVjaXBpZW50LmFtb3VudCxcbiAgICAgICAgICAgICAgICB3YWxsZXQ6IHBhcmFtcy53YWxsZXQuaWQoKSwgLy8gaW50ZXJuYWwgb3V0cHV0XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIG5vY2sgdGhlIGRldGVybWluaXN0aWMgbm9uY2UgcmVzcG9uc2VcbiAgICBpZiAoaW5wdXRTY3JpcHRzLmluY2x1ZGVzKCd0YXByb290S2V5UGF0aFNwZW5kJykpIHtcbiAgICAgIGNvbnN0IHBzYnQgPSBwYXJhbXMucHJlYnVpbGQuY2xvbmUoKTtcbiAgICAgIHBzYnQuc2V0QWxsSW5wdXRzTXVzaWcyTm9uY2VIRChyb290V2FsbGV0S2V5cy51c2VyKTtcbiAgICAgIHBzYnQuc2V0QWxsSW5wdXRzTXVzaWcyTm9uY2VIRChyb290V2FsbGV0S2V5cy5iaXRnbyk7XG4gICAgICBub2Nrcy5wdXNoKFxuICAgICAgICBub2NrKHBhcmFtcy5iZ1VybClcbiAgICAgICAgICAucG9zdChgL2FwaS92Mi8ke2NvaW4uZ2V0Q2hhaW4oKX0vd2FsbGV0LyR7cGFyYW1zLndhbGxldC5pZCgpfS90eC9zaWducHNidGAsIChib2R5KSA9PiBib2R5LnBzYnQpXG4gICAgICAgICAgLnJlcGx5KDIwMCwgeyBwc2J0OiBwc2J0LnRvSGV4KCkgfSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vY2tzO1xuICB9XG5cbiAgZGVzY3JpYmUoYCR7Y29pbi5nZXRGdWxsTmFtZSgpfS1wcmVidWlsZEFuZFNpZ24tdHhGb3JtYXQ9JHt0eEZvcm1hdH0taW5wdXRTY3JpcHRzPSR7aW5wdXRTY3JpcHRzLmpvaW4oXG4gICAgJywnXG4gICl9YCwgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHdhbGxldCA9IGdldFV0eG9XYWxsZXQoY29pbiwge1xuICAgICAgY29pblNwZWNpZmljOiB7IGFkZHJlc3NWZXJzaW9uOiAnYmFzZTU4JyB9LFxuICAgICAga2V5czoga2V5RG9jdW1lbnRPYmplY3RzLm1hcCgoaykgPT4gay5pZCksXG4gICAgICBpZDogJ3dhbGxldElkJyxcbiAgICB9KTtcblxuICAgIGNvbnN0IGJnVXJsID0gY29tbW9uLkVudmlyb25tZW50c1tkZWZhdWx0Qml0R28uZ2V0RW52KCldLnVyaTtcbiAgICBsZXQgcHJlYnVpbGQ6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQ7XG4gICAgbGV0IHJlY2lwaWVudDogeyBhZGRyZXNzOiBzdHJpbmc7IGFtb3VudDogc3RyaW5nIH07XG4gICAgbGV0IGFkZHJlc3NJbmZvOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgIGNvbnN0IGZlZSA9IEJpZ0ludCgxMDAwMCk7XG5cbiAgICBiZWZvcmUoYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgLy8gTWFrZSBvdXRwdXQgYWRkcmVzcyBpbmZvcm1hdGlvblxuICAgICAgY29uc3Qgb3V0cHV0QW1vdW50ID0gQmlnSW50KGlucHV0U2NyaXB0cy5sZW5ndGgpICogQmlnSW50KDFlOCkgLSBmZWU7XG4gICAgICBjb25zdCBvdXRwdXRTY3JpcHRUeXBlOiB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuU2NyaXB0VHlwZSA9ICdwMnNoJztcbiAgICAgIGNvbnN0IG91dHB1dENoYWluID0gdXR4b2xpYi5iaXRnby5nZXRFeHRlcm5hbENoYWluQ29kZShvdXRwdXRTY3JpcHRUeXBlKTtcbiAgICAgIGNvbnN0IG91dHB1dEFkZHJlc3MgPSB1dHhvbGliLmJpdGdvLmdldFdhbGxldEFkZHJlc3Mocm9vdFdhbGxldEtleXMsIG91dHB1dENoYWluLCAwLCBjb2luLm5ldHdvcmspO1xuXG4gICAgICByZWNpcGllbnQgPSB7XG4gICAgICAgIGFkZHJlc3M6IG91dHB1dEFkZHJlc3MsXG4gICAgICAgIGFtb3VudDogb3V0cHV0QW1vdW50LnRvU3RyaW5nKCksXG4gICAgICB9O1xuICAgICAgYWRkcmVzc0luZm8gPSB7XG4gICAgICAgIGFkZHJlc3M6IG91dHB1dEFkZHJlc3MsXG4gICAgICAgIGNoYWluOiBvdXRwdXRDaGFpbixcbiAgICAgICAgaW5kZXg6IDAsXG4gICAgICAgIGNvaW46IGNvaW4uZ2V0Q2hhaW4oKSxcbiAgICAgICAgd2FsbGV0OiB3YWxsZXQuaWQoKSxcbiAgICAgICAgY29pblNwZWNpZmljOiB7fSxcbiAgICAgIH07XG5cbiAgICAgIHByZWJ1aWxkID0gY3JlYXRlUHJlYnVpbGRQc2J0KFxuICAgICAgICBpbnB1dFNjcmlwdHMubWFwKChzKSA9PiAoeyBzY3JpcHRUeXBlOiBzLCB2YWx1ZTogQmlnSW50KDFlOCkgfSkpLFxuICAgICAgICBbeyBzY3JpcHRUeXBlOiBvdXRwdXRTY3JpcHRUeXBlLCB2YWx1ZTogb3V0cHV0QW1vdW50IH1dXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgYWZ0ZXJFYWNoKG5vY2suY2xlYW5BbGwpO1xuXG4gICAgW3RydWUsIGZhbHNlXS5mb3JFYWNoKCh1c2VXZWJhdXRobikgPT4ge1xuICAgICAgaXQoYHNob3VsZCBzdWNjZWVkIHdpdGggJHt1c2VXZWJhdXRobiA/ICd3ZWJhdXRobiBlbmNyeXB0ZWRQcnYnIDogJ2VuY3J5cHRlZFBydid9YCwgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICAvLyBDaGVjayBpZiB0aGlzIHdhbGxldC9jb2luIGNvbWJpbmF0aW9uIGRlZmF1bHRzIHRvIHBzYnRcbiAgICAgICAgY29uc3QgZGVmYXVsdFR4Rm9ybWF0ID0gY29pbi5nZXREZWZhdWx0VHhGb3JtYXQod2FsbGV0KTtcbiAgICAgICAgY29uc3Qgbm9ja3MgPSBjcmVhdGVOb2Nrcyh7XG4gICAgICAgICAgYmdVcmwsXG4gICAgICAgICAgd2FsbGV0LFxuICAgICAgICAgIGtleURvY3VtZW50czoga2V5RG9jdW1lbnRPYmplY3RzLFxuICAgICAgICAgIHByZWJ1aWxkLFxuICAgICAgICAgIHJlY2lwaWVudCxcbiAgICAgICAgICBhZGRyZXNzSW5mbyxcbiAgICAgICAgICBub2NrT3V0cHV0QWRkcmVzc2VzOiB0eEZvcm1hdCAhPT0gJ3BzYnQnLFxuICAgICAgICAgIHR4Rm9ybWF0OiBkZWZhdWx0VHhGb3JtYXQsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIGNhbGwgcHJlYnVpbGQgYW5kIHNpZ24sIG5vY2tzIHNob3VsZCBiZSBjb25zdW1lZFxuICAgICAgICBjb25zdCByZXMgPSAoYXdhaXQgd2FsbGV0LnByZWJ1aWxkQW5kU2lnblRyYW5zYWN0aW9uKHtcbiAgICAgICAgICByZWNpcGllbnRzOiBbcmVjaXBpZW50XSxcbiAgICAgICAgICB3YWxsZXRQYXNzcGhyYXNlOiB1c2VXZWJhdXRobiA/IHdlYmF1dGhuV2FsbGV0UGFzc1BocmFzZSA6IHdhbGxldFBhc3NwaHJhc2UsXG4gICAgICAgIH0pKSBhcyBIYWxmU2lnbmVkVXR4b1RyYW5zYWN0aW9uO1xuXG4gICAgICAgIG5vY2tzLmZvckVhY2goKG5vY2spID0+IGFzc2VydC5vayhub2NrLmlzRG9uZSgpKSk7XG5cbiAgICAgICAgYXNzZXJ0U2lnbmFibGUocmVzLnR4SGV4LCBpbnB1dFNjcmlwdHMsIGNvaW4ubmV0d29yayk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCBmYWlsIGlmIHRoZSB3YWxsZXQgcGFzc3BocmFzZSBpcyBpbmNvcnJlY3QnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNyZWF0ZU5vY2tzKHtcbiAgICAgICAgICBiZ1VybCxcbiAgICAgICAgICB3YWxsZXQsXG4gICAgICAgICAga2V5RG9jdW1lbnRzOiBrZXlEb2N1bWVudE9iamVjdHMsXG4gICAgICAgICAgcHJlYnVpbGQsXG4gICAgICAgICAgcmVjaXBpZW50LFxuICAgICAgICAgIGFkZHJlc3NJbmZvLFxuICAgICAgICAgIG5vY2tPdXRwdXRBZGRyZXNzZXM6IHR4Rm9ybWF0ICE9PSAncHNidCcsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGF3YWl0IHdhbGxldFxuICAgICAgICAgIC5wcmVidWlsZEFuZFNpZ25UcmFuc2FjdGlvbih7XG4gICAgICAgICAgICByZWNpcGllbnRzOiBbcmVjaXBpZW50XSxcbiAgICAgICAgICAgIHdhbGxldFBhc3NwaHJhc2U6IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoKSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5zaG91bGQuYmUucmVqZWN0ZWRXaXRoKCd1bmFibGUgdG8gZGVjcnlwdCBrZXljaGFpbiB3aXRoIHRoZSBnaXZlbiB3YWxsZXQgcGFzc3BocmFzZScpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBbdHJ1ZSwgZmFsc2VdLmZvckVhY2goKHNlbGZTZW5kKSA9PiB7XG4gICAgICBpdChgc2hvdWxkIGJlIGFibGUgdG8gYnVpbGQsIHNpZ24sICYgdmVyaWZ5IGEgcmVwbGFjZW1lbnQgdHJhbnNhY3Rpb24gd2l0aCBzZWxmU2VuZDogJHtzZWxmU2VuZH1gLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnN0IHJiZlR4SWRzID0gWyd0eC10by1iZS1yZXBsYWNlZCddLFxuICAgICAgICAgIGZlZU11bHRpcGxpZXIgPSAxLjU7XG4gICAgICAgIC8vIENoZWNrIGlmIHRoaXMgd2FsbGV0L2NvaW4gY29tYmluYXRpb24gZGVmYXVsdHMgdG8gcHNidFxuICAgICAgICBjb25zdCBkZWZhdWx0VHhGb3JtYXQgPSBjb2luLmdldERlZmF1bHRUeEZvcm1hdCh3YWxsZXQpO1xuICAgICAgICBjb25zdCBub2NrcyA9IGNyZWF0ZU5vY2tzKHtcbiAgICAgICAgICBiZ1VybCxcbiAgICAgICAgICB3YWxsZXQsXG4gICAgICAgICAga2V5RG9jdW1lbnRzOiBrZXlEb2N1bWVudE9iamVjdHMsXG4gICAgICAgICAgcHJlYnVpbGQsXG4gICAgICAgICAgcmVjaXBpZW50LFxuICAgICAgICAgIGFkZHJlc3NJbmZvLFxuICAgICAgICAgIHJiZlR4SWRzLFxuICAgICAgICAgIGZlZU11bHRpcGxpZXIsXG4gICAgICAgICAgc2VsZlNlbmQsXG4gICAgICAgICAgbm9ja091dHB1dEFkZHJlc3NlczogdHhGb3JtYXQgIT09ICdwc2J0JyxcbiAgICAgICAgICB0eEZvcm1hdDogZGVmYXVsdFR4Rm9ybWF0LFxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBjYWxsIHByZWJ1aWxkIGFuZCBzaWduLCBub2NrcyBzaG91bGQgYmUgY29uc3VtZWRcbiAgICAgICAgY29uc3QgcmVzID0gKGF3YWl0IHdhbGxldC5wcmVidWlsZEFuZFNpZ25UcmFuc2FjdGlvbih7XG4gICAgICAgICAgcmVjaXBpZW50czogW3JlY2lwaWVudF0sXG4gICAgICAgICAgd2FsbGV0UGFzc3BocmFzZSxcbiAgICAgICAgICByYmZUeElkcyxcbiAgICAgICAgICBmZWVNdWx0aXBsaWVyLFxuICAgICAgICB9KSkgYXMgSGFsZlNpZ25lZFV0eG9UcmFuc2FjdGlvbjtcblxuICAgICAgICBub2Nrcy5mb3JFYWNoKChub2NrKSA9PiBhc3NlcnQub2sobm9jay5pc0RvbmUoKSkpO1xuXG4gICAgICAgIGFzc2VydFNpZ25hYmxlKHJlcy50eEhleCwgaW5wdXRTY3JpcHRzLCBjb2luLm5ldHdvcmspO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG51dHhvQ29pbnNcbiAgLmZpbHRlcigoY29pbikgPT4gZ2V0TWFpbm5ldENvaW5OYW1lKGNvaW4ubmFtZSkgIT09ICdic3YnKVxuICAuZm9yRWFjaCgoY29pbikgPT4ge1xuICAgIHNjcmlwdFR5cGVzXG4gICAgICAvLyBEb24ndCBpdGVyYXRlIG92ZXIgcDJzaFAycGsgLSBpbiBubyBzY2VuYXJpbyB3b3VsZCBhIHdhbGxldCBzcGVuZCB0d28gcDJzaFAycGsgaW5wdXRzIGFzIHRoZXNlXG4gICAgICAvLyBhcmUgc2luZ2xlIHNpZ25hdHVyZSBpbnB1dHMgdGhhdCBhcmUgdXNlZCBmb3IgcmVwbGF5IHByb3RlY3Rpb24gYW5kIGFyZSBhZGRlZCB0byB0aGUgdHJhbnNhY3Rpb25cbiAgICAgIC8vIGJ5IG91ciBzeXN0ZW0gZnJvbSBhIHNlcGFyYXRlIHdhbGxldC4gV2UgZG8gcnVuIHRlc3RzIGJlbG93IHdoZXJlIG9uZSBvZiB0aGUgaW5wdXRzIGlzIGEgcDJzaFAycGsgYW5kXG4gICAgICAvLyB0aGUgb3RoZXIgaXMgYW4gaW5wdXQgc3BlbnQgYnkgdGhlIHVzZXIuXG4gICAgICAuZmlsdGVyKChzY3JpcHRUeXBlKSA9PiBzY3JpcHRUeXBlICE9PSAncDJzaFAycGsnKVxuICAgICAgLmZvckVhY2goKGlucHV0U2NyaXB0KSA9PiB7XG4gICAgICAgIGNvbnN0IGlucHV0U2NyaXB0Q2xlYW5lZCA9IChcbiAgICAgICAgICBpbnB1dFNjcmlwdCA9PT0gJ3RhcHJvb3RLZXlQYXRoU3BlbmQnID8gJ3AydHJNdXNpZzInIDogaW5wdXRTY3JpcHRcbiAgICAgICAgKSBhcyB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuU2NyaXB0VHlwZTJPZjM7XG5cbiAgICAgICAgaWYgKCFjb2luLnN1cHBvcnRzQWRkcmVzc1R5cGUoaW5wdXRTY3JpcHRDbGVhbmVkKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJ1bihjb2luLCBbaW5wdXRTY3JpcHQsIGlucHV0U2NyaXB0XSwgJ3BzYnQnKTtcbiAgICAgICAgaWYgKGdldFJlcGxheVByb3RlY3Rpb25BZGRyZXNzZXMoY29pbi5uYW1lKS5sZW5ndGgpIHtcbiAgICAgICAgICBydW4oY29pbiwgWydwMnNoUDJwaycsIGlucHV0U2NyaXB0XSwgJ3BzYnQnKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH0pO1xuIl19