@bitgo-beta/unspents 0.13.2-beta.209 → 0.13.2-beta.2091
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.
- package/README.md +0 -9
- package/dist/bin/generate_tables.js +25 -12
- package/dist/src/codes.d.ts +10 -10
- package/dist/src/codes.d.ts.map +1 -1
- package/dist/src/codes.js +27 -13
- package/dist/src/dimensions.d.ts +13 -15
- package/dist/src/dimensions.d.ts.map +1 -1
- package/dist/src/dimensions.js +30 -16
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +26 -10
- package/dist/src/inputWeights.d.ts +3 -3
- package/dist/src/inputWeights.d.ts.map +1 -1
- package/dist/src/inputWeights.js +6 -6
- package/dist/src/scriptSizes.js +3 -4
- package/dist/src/types.js +23 -9
- package/dist/src/virtualSizes.d.ts +12 -12
- package/dist/src/virtualSizes.js +2 -2
- package/dist/src/zcash.js +4 -6
- package/dist/test/dimensions.js +26 -12
- package/dist/test/signedTx/inputWeights.js +27 -13
- package/dist/test/signedTx/txCombinations.d.ts +1 -1
- package/dist/test/signedTx/txCombinations.d.ts.map +1 -1
- package/dist/test/signedTx/txCombinations.js +29 -15
- package/dist/test/signedTx/txGen.d.ts +2 -3
- package/dist/test/signedTx/txGen.d.ts.map +1 -1
- package/dist/test/signedTx/txGen.js +26 -12
- package/dist/test/testutils.d.ts +2 -2
- package/dist/test/testutils.d.ts.map +1 -1
- package/dist/test/testutils.js +28 -14
- package/dist/test/zcash.js +8 -8
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -6
- package/.eslintignore +0 -1
- package/.eslintrc.js +0 -3
- package/.mocharc.js +0 -6
- package/.prettierrc.yml +0 -3
- package/CHANGELOG.md +0 -494
- package/bin/generate_tables.ts +0 -94
- package/docs/input-costs.md +0 -13
package/dist/src/virtualSizes.js
CHANGED
|
@@ -57,7 +57,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
57
57
|
exports.VirtualSizes = void 0;
|
|
58
58
|
const inputWeights_1 = require("./inputWeights");
|
|
59
59
|
function getVirtualInputSizeFromComponents(components) {
|
|
60
|
-
return Math.ceil(inputWeights_1.getInputComponentsWeight(components) / 4);
|
|
60
|
+
return Math.ceil((0, inputWeights_1.getInputComponentsWeight)(components) / 4);
|
|
61
61
|
}
|
|
62
62
|
// Constants for signed TX input and output vsizes.
|
|
63
63
|
// See https://bitcoincore.org/en/segwit_wallet_dev/#transaction-serialization for full description
|
|
@@ -111,4 +111,4 @@ exports.VirtualSizes = Object.freeze({
|
|
|
111
111
|
// Thus, the vsize is only increased by one.
|
|
112
112
|
txSegOverheadVSize: 11,
|
|
113
113
|
});
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlydHVhbFNpemVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZpcnR1YWxTaXplcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBcURFOzs7QUFFRixpREFVd0I7QUFFeEIsU0FBUyxpQ0FBaUMsQ0FBQyxVQUEyQjtJQUNwRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBQSx1Q0FBd0IsRUFBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM3RCxDQUFDO0FBRUQsbURBQW1EO0FBQ25ELG1HQUFtRztBQUNuRywyQ0FBMkM7QUFDOUIsUUFBQSxZQUFZLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUN4QyxxREFBcUQ7SUFFckQsZ0RBQWdEO0lBQ2hELGtCQUFrQjtJQUNsQiw2QkFBNkIsRUFBRSxHQUFHO0lBQ2xDLGtCQUFrQjtJQUNsQiwrQkFBK0IsRUFBRSxHQUFHO0lBRXBDLGNBQWM7SUFDZCxlQUFlLEVBQUUsaUNBQWlDLENBQUMsa0NBQW1CLENBQUM7SUFDdkUsb0JBQW9CLEVBQUUsaUNBQWlDLENBQUMsdUNBQXdCLENBQUM7SUFDakYsZ0JBQWdCLEVBQUUsaUNBQWlDLENBQUMsbUNBQW9CLENBQUM7SUFDekUsc0JBQXNCLEVBQUUsaUNBQWlDLENBQUMsMENBQTJCLENBQUM7SUFDdEYsbUJBQW1CLEVBQUUsaUNBQWlDLENBQUMsc0NBQXVCLENBQUM7SUFDL0UsK0JBQStCLEVBQUUsaUNBQWlDLENBQUMsbURBQW9DLENBQUM7SUFDeEcsK0JBQStCLEVBQUUsaUNBQWlDLENBQUMsbURBQW9DLENBQUM7SUFFeEcsRUFBRTtJQUNGLGVBQWU7SUFDZixFQUFFO0lBRUYsNEJBQTRCO0lBQzVCLEVBQUU7SUFDRixtRUFBbUU7SUFDbkUsRUFBRTtJQUNGLGdHQUFnRztJQUNoRyxFQUFFO0lBQ0Ysc0JBQXNCO0lBQ3RCLEVBQUU7SUFFRiwrQkFBK0I7SUFDL0Isa0JBQWtCLEVBQUUsQ0FBQztJQUVyQiwrRkFBK0Y7SUFDL0YsZ0JBQWdCLEVBQUUsRUFBRTtJQUNwQixxQkFBcUIsRUFBRSxFQUFFO0lBQ3pCLHNHQUFzRztJQUN0RyxpQkFBaUIsRUFBRSxFQUFFO0lBQ3JCLHNDQUFzQztJQUN0QyxnQkFBZ0IsRUFBRSxFQUFFO0lBQ3BCLCtGQUErRjtJQUMvRixpQkFBaUIsRUFBRSxFQUFFO0lBQ3JCLHNHQUFzRztJQUN0RyxrQkFBa0IsRUFBRSxFQUFFO0lBRXRCLGtEQUFrRDtJQUNsRCxZQUFZLEVBQUUsRUFBRTtJQUVoQixFQUFFO0lBQ0YsNEJBQTRCO0lBQzVCLEVBQUU7SUFFRixjQUFjLEVBQUUsRUFBRTtJQUNsQix3RUFBd0U7SUFDeEUsNENBQTRDO0lBQzVDLGtCQUFrQixFQUFFLEVBQUU7Q0FDdkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcblRoaXMgaXMgYSByZWZlcmVuY2UgaW1wbGVtZW50YXRpb24gZm9yIGNhbGN1bGF0aW5nIHdlaWdodHMgYW5kIHZTaXplcyBmcm9tIGJpdGNvaW5qcy1saWIgMy4zLjIuXG5odHRwczovL2dpdGh1Yi5jb20vYml0Y29pbmpzL2JpdGNvaW5qcy1saWIvYmxvYi92My4zLjIvc3JjL3RyYW5zYWN0aW9uLmpzI0wxOTQtTDIxOVxuXG5gYGBcbiAgZnVuY3Rpb24gZW5jb2RpbmdMZW5ndGggKG51bWJlcikge1xuICAgIGNoZWNrVUludDUzKG51bWJlcilcblxuICAgIHJldHVybiAoXG4gICAgICBudW1iZXIgPCAweGZkID8gMVxuICAgIDogbnVtYmVyIDw9IDB4ZmZmZiA/IDNcbiAgICA6IG51bWJlciA8PSAweGZmZmZmZmZmID8gNVxuICAgIDogOVxuICAgIClcbiAgfVxuXG4gIGZ1bmN0aW9uIHZhclNsaWNlU2l6ZSAoc29tZVNjcmlwdCkge1xuICAgIHZhciBsZW5ndGggPSBzb21lU2NyaXB0Lmxlbmd0aFxuXG4gICAgcmV0dXJuIGVuY29kaW5nTGVuZ3RoKGxlbmd0aCkgKyBsZW5ndGhcbiAgfVxuXG4gIGZ1bmN0aW9uIHZlY3RvclNpemUgKHNvbWVWZWN0b3IpIHtcbiAgICB2YXIgbGVuZ3RoID0gc29tZVZlY3Rvci5sZW5ndGhcblxuICAgIHJldHVybiB2YXJ1aW50LmVuY29kaW5nTGVuZ3RoKGxlbmd0aCkgKyBzb21lVmVjdG9yLnJlZHVjZShmdW5jdGlvbiAoc3VtLCB3aXRuZXNzKSB7XG4gICAgICByZXR1cm4gc3VtICsgdmFyU2xpY2VTaXplKHdpdG5lc3MpXG4gICAgfSwgMClcbiAgfVxuXG4gIFRyYW5zYWN0aW9uLnByb3RvdHlwZS5fX2J5dGVMZW5ndGggPSBmdW5jdGlvbiAoX19hbGxvd1dpdG5lc3MpIHtcbiAgICB2YXIgaGFzV2l0bmVzc2VzID0gX19hbGxvd1dpdG5lc3MgJiYgdGhpcy5oYXNXaXRuZXNzZXMoKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIChoYXNXaXRuZXNzZXMgPyAxMCA6IDgpICtcbiAgICAgIHZhcnVpbnQuZW5jb2RpbmdMZW5ndGgodGhpcy5pbnMubGVuZ3RoKSArXG4gICAgICB2YXJ1aW50LmVuY29kaW5nTGVuZ3RoKHRoaXMub3V0cy5sZW5ndGgpICtcbiAgICAgIHRoaXMuaW5zLnJlZHVjZShmdW5jdGlvbiAoc3VtLCBpbnB1dCkgeyByZXR1cm4gc3VtICsgNDAgKyB2YXJTbGljZVNpemUoaW5wdXQuc2NyaXB0KSB9LCAwKSArXG4gICAgICB0aGlzLm91dHMucmVkdWNlKGZ1bmN0aW9uIChzdW0sIG91dHB1dCkgeyByZXR1cm4gc3VtICsgOCArIHZhclNsaWNlU2l6ZShvdXRwdXQuc2NyaXB0KSB9LCAwKSArXG4gICAgICAoaGFzV2l0bmVzc2VzID8gdGhpcy5pbnMucmVkdWNlKGZ1bmN0aW9uIChzdW0sIGlucHV0KSB7IHJldHVybiBzdW0gKyB2ZWN0b3JTaXplKGlucHV0LndpdG5lc3MpIH0sIDApIDogMClcbiAgICApXG4gIH1cblxuICBUcmFuc2FjdGlvbi5wcm90b3R5cGUud2VpZ2h0ID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciBiYXNlID0gdGhpcy5fX2J5dGVMZW5ndGgoZmFsc2UpXG4gICAgdmFyIHRvdGFsID0gdGhpcy5fX2J5dGVMZW5ndGgodHJ1ZSlcbiAgICByZXR1cm4gYmFzZSAqIDMgKyB0b3RhbFxuICB9XG5cbiAgVHJhbnNhY3Rpb24ucHJvdG90eXBlLnZpcnR1YWxTaXplID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBNYXRoLmNlaWwodGhpcy53ZWlnaHQoKSAvIDQpXG4gIH1cbmBgYFxuKi9cblxuaW1wb3J0IHtcbiAgZ2V0SW5wdXRDb21wb25lbnRzV2VpZ2h0LFxuICBJbnB1dENvbXBvbmVudHMsXG4gIGlucHV0Q29tcG9uZW50c1Ayc2gsXG4gIGlucHV0Q29tcG9uZW50c1Ayc2hQMnBrLFxuICBpbnB1dENvbXBvbmVudHNQMnNoUDJ3c2gsXG4gIGlucHV0Q29tcG9uZW50c1AydHJLZXlTcGVuZCxcbiAgaW5wdXRDb21wb25lbnRzUDJ0clNjcmlwdFNwZW5kTGV2ZWwxLFxuICBpbnB1dENvbXBvbmVudHNQMnRyU2NyaXB0U3BlbmRMZXZlbDIsXG4gIGlucHV0Q29tcG9uZW50c1Ayd3NoLFxufSBmcm9tICcuL2lucHV0V2VpZ2h0cyc7XG5cbmZ1bmN0aW9uIGdldFZpcnR1YWxJbnB1dFNpemVGcm9tQ29tcG9uZW50cyhjb21wb25lbnRzOiBJbnB1dENvbXBvbmVudHMpOiBudW1iZXIge1xuICByZXR1cm4gTWF0aC5jZWlsKGdldElucHV0Q29tcG9uZW50c1dlaWdodChjb21wb25lbnRzKSAvIDQpO1xufVxuXG4vLyBDb25zdGFudHMgZm9yIHNpZ25lZCBUWCBpbnB1dCBhbmQgb3V0cHV0IHZzaXplcy5cbi8vIFNlZSBodHRwczovL2JpdGNvaW5jb3JlLm9yZy9lbi9zZWd3aXRfd2FsbGV0X2Rldi8jdHJhbnNhY3Rpb24tc2VyaWFsaXphdGlvbiBmb3IgZnVsbCBkZXNjcmlwdGlvblxuLy8gRklYTUUoQkctOTIzMyk6IHVzZSB3ZWlnaHQgdW5pdHMgaW5zdGVhZFxuZXhwb3J0IGNvbnN0IFZpcnR1YWxTaXplcyA9IE9iamVjdC5mcmVlemUoe1xuICAvLyBGSVhNRShCRy03ODczKTogYWRkIHN1cHBvcnQgZm9yIHNpZ25hdHVyZSBncmluZGluZ1xuXG4gIC8vIFNpemUgb2YgYSBQMlBLSCBpbnB1dCB3aXRoICh1biljb21wcmVzc2VkIGtleVxuICAvKiogQGRlcHJlY2F0ZWQgKi9cbiAgdHhQMnBraElucHV0U2l6ZUNvbXByZXNzZWRLZXk6IDE0OCxcbiAgLyoqIEBkZXByZWNhdGVkICovXG4gIHR4UDJwa2hJbnB1dFNpemVVbmNvbXByZXNzZWRLZXk6IDE4MCxcblxuICAvLyBJbnB1dCBzaXplc1xuICB0eFAyc2hJbnB1dFNpemU6IGdldFZpcnR1YWxJbnB1dFNpemVGcm9tQ29tcG9uZW50cyhpbnB1dENvbXBvbmVudHNQMnNoKSxcbiAgdHhQMnNoUDJ3c2hJbnB1dFNpemU6IGdldFZpcnR1YWxJbnB1dFNpemVGcm9tQ29tcG9uZW50cyhpbnB1dENvbXBvbmVudHNQMnNoUDJ3c2gpLFxuICB0eFAyd3NoSW5wdXRTaXplOiBnZXRWaXJ0dWFsSW5wdXRTaXplRnJvbUNvbXBvbmVudHMoaW5wdXRDb21wb25lbnRzUDJ3c2gpLFxuICB0eFAydHJLZXlwYXRoSW5wdXRTaXplOiBnZXRWaXJ0dWFsSW5wdXRTaXplRnJvbUNvbXBvbmVudHMoaW5wdXRDb21wb25lbnRzUDJ0cktleVNwZW5kKSxcbiAgdHhQMnNoUDJwa0lucHV0U2l6ZTogZ2V0VmlydHVhbElucHV0U2l6ZUZyb21Db21wb25lbnRzKGlucHV0Q29tcG9uZW50c1Ayc2hQMnBrKSxcbiAgdHhQMnRyU2NyaXB0UGF0aExldmVsMUlucHV0U2l6ZTogZ2V0VmlydHVhbElucHV0U2l6ZUZyb21Db21wb25lbnRzKGlucHV0Q29tcG9uZW50c1AydHJTY3JpcHRTcGVuZExldmVsMSksXG4gIHR4UDJ0clNjcmlwdFBhdGhMZXZlbDJJbnB1dFNpemU6IGdldFZpcnR1YWxJbnB1dFNpemVGcm9tQ29tcG9uZW50cyhpbnB1dENvbXBvbmVudHNQMnRyU2NyaXB0U3BlbmRMZXZlbDIpLFxuXG4gIC8vXG4gIC8vIE91dHB1dCBzaXplc1xuICAvL1xuXG4gIC8vIFRoZSBzaXplIGlzIGNhbGN1bGF0ZWQgYXNcbiAgLy9cbiAgLy8gICAgc2NyaXB0TGVuZ3RoICsgY29tcGFjdFNpemUoc2NyaXB0TGVuZ3RoKSArIHR4T3V0cHV0QW1vdW50U2l6ZVxuICAvL1xuICAvLyBTaW5jZSBjb21wYWN0U2l6ZShzY3JpcHRMZW5ndGgpIGlzIDEgZm9yIGFsbCBzY3JpcHRzIGNvbnNpZGVyZWQgaGVyZSwgd2UgY2FuIHNpbXBsaWZ5IHRoaXMgdG9cbiAgLy9cbiAgLy8gICAgc2NyaXB0TGVuZ3RoICsgOVxuICAvL1xuXG4gIC8vIFNpemUgb2Ygc2luZ2xlIG91dHB1dCBhbW91bnRcbiAgdHhPdXRwdXRBbW91bnRTaXplOiA4LFxuXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9iaXRjb2luanMvYml0Y29pbmpzLWxpYi9ibG9iL3Y0LjAuMi9zcmMvdGVtcGxhdGVzL3NjcmlwdGhhc2gvb3V0cHV0LmpzI0w5XG4gIHR4UDJzaE91dHB1dFNpemU6IDMyLFxuICB0eFAyc2hQMndzaE91dHB1dFNpemU6IDMyLFxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vYml0Y29pbmpzL2JpdGNvaW5qcy1saWIvYmxvYi92NC4wLjIvc3JjL3RlbXBsYXRlcy93aXRuZXNzc2NyaXB0aGFzaC9vdXRwdXQuanMjTDlcbiAgdHhQMndzaE91dHB1dFNpemU6IDQzLFxuICAvLyBPUF8xIE9QX1BVU0gzMiA8c2Nobm9ycl9wdWJsaWNfa2V5PlxuICB0eFAydHJPdXRwdXRTaXplOiA0MyxcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2JpdGNvaW5qcy9iaXRjb2luanMtbGliL2Jsb2IvdjQuMC4yL3NyYy90ZW1wbGF0ZXMvcHVia2V5aGFzaC9vdXRwdXQuanMjTDlcbiAgdHhQMnBraE91dHB1dFNpemU6IDM0LFxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vYml0Y29pbmpzL2JpdGNvaW5qcy1saWIvYmxvYi92NC4wLjIvc3JjL3RlbXBsYXRlcy93aXRuZXNzcHVia2V5aGFzaC9vdXRwdXQuanMjTDlcbiAgdHhQMndwa2hPdXRwdXRTaXplOiAzMSxcblxuICAvKiogQGRlcHJlY2F0ZWQgLSB1c2UgdHhQMnBraE91dHB1dFNpemUgaW5zdGVhZCAqL1xuICB0eE91dHB1dFNpemU6IDM0LFxuXG4gIC8vXG4gIC8vIEdlbmVyYWwgdHggc2l6ZSBjb25zdGFudHNcbiAgLy9cblxuICB0eE92ZXJoZWFkU2l6ZTogMTAsXG4gIC8vIFNlZ3dpdCBhZGRzIG9uZSBieXRlIGVhY2ggZm9yIG1hcmtlciBhbmQgZmxhZyB0byB0aGUgd2l0bmVzcyBzZWN0aW9uLlxuICAvLyBUaHVzLCB0aGUgdnNpemUgaXMgb25seSBpbmNyZWFzZWQgYnkgb25lLlxuICB0eFNlZ092ZXJoZWFkVlNpemU6IDExLFxufSk7XG4iXX0=
|
package/dist/src/zcash.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// https://zips.z.cash/zip-0317
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.
|
|
4
|
+
exports.getLogicalActions = getLogicalActions;
|
|
5
|
+
exports.getConventionalFeeForDimensions = getConventionalFeeForDimensions;
|
|
5
6
|
const dimensions_1 = require("./dimensions");
|
|
6
7
|
const marginalFeeZatPerAction = 5000;
|
|
7
8
|
const graceActions = 2;
|
|
@@ -15,10 +16,7 @@ function getLogicalActions(params) {
|
|
|
15
16
|
// which are not relevant for BitGo transactions.
|
|
16
17
|
return Math.max(Math.ceil(params.txInTotalSize / p2pkhStandardInputSize), Math.ceil(params.txOutTotalSize / p2pkhStandardOutputSize));
|
|
17
18
|
}
|
|
18
|
-
exports.getLogicalActions = getLogicalActions;
|
|
19
19
|
function getConventionalFeeForDimensions(dimensions, params = {}) {
|
|
20
|
-
|
|
21
|
-
return (Math.max(getLogicalActions(dimensions), graceActions) * ((_a = params.marginalFeeZatPerAction) !== null && _a !== void 0 ? _a : marginalFeeZatPerAction));
|
|
20
|
+
return (Math.max(getLogicalActions(dimensions), graceActions) * (params.marginalFeeZatPerAction ?? marginalFeeZatPerAction));
|
|
22
21
|
}
|
|
23
|
-
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemNhc2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvemNhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtCQUErQjs7O0FBRS9CLDZDQUEwQztBQUUxQyxNQUFNLHVCQUF1QixHQUFHLElBQUksQ0FBQztBQUNyQyxNQUFNLFlBQVksR0FBRyxDQUFDLENBQUM7QUFDdkIsTUFBTSxzQkFBc0IsR0FBRyxHQUFHLENBQUM7QUFDbkMsTUFBTSx1QkFBdUIsR0FBRyxFQUFFLENBQUM7QUFFbkMsU0FBZ0IsaUJBQWlCLENBQUMsTUFBc0U7SUFDdEcsSUFBSSxNQUFNLFlBQVksdUJBQVUsRUFBRTtRQUNoQyxPQUFPLGlCQUFpQixDQUFDLEVBQUUsYUFBYSxFQUFFLE1BQU0sQ0FBQyxjQUFjLEVBQUUsRUFBRSxjQUFjLEVBQUUsTUFBTSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQztLQUNoSDtJQUNELGlGQUFpRjtJQUNqRixpREFBaUQ7SUFDakQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsR0FBRyxzQkFBc0IsQ0FBQyxFQUN4RCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEdBQUcsdUJBQXVCLENBQUMsQ0FDM0QsQ0FBQztBQUNKLENBQUM7QUFWRCw4Q0FVQztBQUVELFNBQWdCLCtCQUErQixDQUM3QyxVQUFzQixFQUN0QixTQUVJLEVBQUU7O0lBRU4sT0FBTyxDQUNMLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxNQUFBLE1BQU0sQ0FBQyx1QkFBdUIsbUNBQUksdUJBQXVCLENBQUMsQ0FDcEgsQ0FBQztBQUNKLENBQUM7QUFURCwwRUFTQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vemlwcy56LmNhc2gvemlwLTAzMTdcblxuaW1wb3J0IHsgRGltZW5zaW9ucyB9IGZyb20gJy4vZGltZW5zaW9ucyc7XG5cbmNvbnN0IG1hcmdpbmFsRmVlWmF0UGVyQWN0aW9uID0gNTAwMDtcbmNvbnN0IGdyYWNlQWN0aW9ucyA9IDI7XG5jb25zdCBwMnBraFN0YW5kYXJkSW5wdXRTaXplID0gMTUwO1xuY29uc3QgcDJwa2hTdGFuZGFyZE91dHB1dFNpemUgPSAzNDtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldExvZ2ljYWxBY3Rpb25zKHBhcmFtczogeyB0eEluVG90YWxTaXplOiBudW1iZXI7IHR4T3V0VG90YWxTaXplOiBudW1iZXIgfSB8IERpbWVuc2lvbnMpOiBudW1iZXIge1xuICBpZiAocGFyYW1zIGluc3RhbmNlb2YgRGltZW5zaW9ucykge1xuICAgIHJldHVybiBnZXRMb2dpY2FsQWN0aW9ucyh7IHR4SW5Ub3RhbFNpemU6IHBhcmFtcy5nZXRJbnB1dHNWU2l6ZSgpLCB0eE91dFRvdGFsU2l6ZTogcGFyYW1zLmdldE91dHB1dHNWU2l6ZSgpIH0pO1xuICB9XG4gIC8vIFRoZSBaSVAgaW5jbHVkZXMgbkpvaW5TcGxpdHMsIG5TcGVuZHNTYXBsaW5nLCBuT3V0cHV0c1NhcGxpbmcsIG5BY3Rpb25zT3JjaGFyZFxuICAvLyB3aGljaCBhcmUgbm90IHJlbGV2YW50IGZvciBCaXRHbyB0cmFuc2FjdGlvbnMuXG4gIHJldHVybiBNYXRoLm1heChcbiAgICBNYXRoLmNlaWwocGFyYW1zLnR4SW5Ub3RhbFNpemUgLyBwMnBraFN0YW5kYXJkSW5wdXRTaXplKSxcbiAgICBNYXRoLmNlaWwocGFyYW1zLnR4T3V0VG90YWxTaXplIC8gcDJwa2hTdGFuZGFyZE91dHB1dFNpemUpXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb252ZW50aW9uYWxGZWVGb3JEaW1lbnNpb25zKFxuICBkaW1lbnNpb25zOiBEaW1lbnNpb25zLFxuICBwYXJhbXM6IHtcbiAgICBtYXJnaW5hbEZlZVphdFBlckFjdGlvbj86IG51bWJlcjtcbiAgfSA9IHt9XG4pOiBudW1iZXIge1xuICByZXR1cm4gKFxuICAgIE1hdGgubWF4KGdldExvZ2ljYWxBY3Rpb25zKGRpbWVuc2lvbnMpLCBncmFjZUFjdGlvbnMpICogKHBhcmFtcy5tYXJnaW5hbEZlZVphdFBlckFjdGlvbiA/PyBtYXJnaW5hbEZlZVphdFBlckFjdGlvbilcbiAgKTtcbn1cbiJdfQ==
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemNhc2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvemNhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtCQUErQjs7QUFTL0IsOENBVUM7QUFFRCwwRUFTQztBQTVCRCw2Q0FBMEM7QUFFMUMsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLENBQUM7QUFDckMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLE1BQU0sc0JBQXNCLEdBQUcsR0FBRyxDQUFDO0FBQ25DLE1BQU0sdUJBQXVCLEdBQUcsRUFBRSxDQUFDO0FBRW5DLFNBQWdCLGlCQUFpQixDQUFDLE1BQXNFO0lBQ3RHLElBQUksTUFBTSxZQUFZLHVCQUFVLEVBQUUsQ0FBQztRQUNqQyxPQUFPLGlCQUFpQixDQUFDLEVBQUUsYUFBYSxFQUFFLE1BQU0sQ0FBQyxjQUFjLEVBQUUsRUFBRSxjQUFjLEVBQUUsTUFBTSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqSCxDQUFDO0lBQ0QsaUZBQWlGO0lBQ2pGLGlEQUFpRDtJQUNqRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxHQUFHLHNCQUFzQixDQUFDLEVBQ3hELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsR0FBRyx1QkFBdUIsQ0FBQyxDQUMzRCxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLCtCQUErQixDQUM3QyxVQUFzQixFQUN0QixTQUVJLEVBQUU7SUFFTixPQUFPLENBQ0wsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyx1QkFBdUIsSUFBSSx1QkFBdUIsQ0FBQyxDQUNwSCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vemlwcy56LmNhc2gvemlwLTAzMTdcblxuaW1wb3J0IHsgRGltZW5zaW9ucyB9IGZyb20gJy4vZGltZW5zaW9ucyc7XG5cbmNvbnN0IG1hcmdpbmFsRmVlWmF0UGVyQWN0aW9uID0gNTAwMDtcbmNvbnN0IGdyYWNlQWN0aW9ucyA9IDI7XG5jb25zdCBwMnBraFN0YW5kYXJkSW5wdXRTaXplID0gMTUwO1xuY29uc3QgcDJwa2hTdGFuZGFyZE91dHB1dFNpemUgPSAzNDtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldExvZ2ljYWxBY3Rpb25zKHBhcmFtczogeyB0eEluVG90YWxTaXplOiBudW1iZXI7IHR4T3V0VG90YWxTaXplOiBudW1iZXIgfSB8IERpbWVuc2lvbnMpOiBudW1iZXIge1xuICBpZiAocGFyYW1zIGluc3RhbmNlb2YgRGltZW5zaW9ucykge1xuICAgIHJldHVybiBnZXRMb2dpY2FsQWN0aW9ucyh7IHR4SW5Ub3RhbFNpemU6IHBhcmFtcy5nZXRJbnB1dHNWU2l6ZSgpLCB0eE91dFRvdGFsU2l6ZTogcGFyYW1zLmdldE91dHB1dHNWU2l6ZSgpIH0pO1xuICB9XG4gIC8vIFRoZSBaSVAgaW5jbHVkZXMgbkpvaW5TcGxpdHMsIG5TcGVuZHNTYXBsaW5nLCBuT3V0cHV0c1NhcGxpbmcsIG5BY3Rpb25zT3JjaGFyZFxuICAvLyB3aGljaCBhcmUgbm90IHJlbGV2YW50IGZvciBCaXRHbyB0cmFuc2FjdGlvbnMuXG4gIHJldHVybiBNYXRoLm1heChcbiAgICBNYXRoLmNlaWwocGFyYW1zLnR4SW5Ub3RhbFNpemUgLyBwMnBraFN0YW5kYXJkSW5wdXRTaXplKSxcbiAgICBNYXRoLmNlaWwocGFyYW1zLnR4T3V0VG90YWxTaXplIC8gcDJwa2hTdGFuZGFyZE91dHB1dFNpemUpXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb252ZW50aW9uYWxGZWVGb3JEaW1lbnNpb25zKFxuICBkaW1lbnNpb25zOiBEaW1lbnNpb25zLFxuICBwYXJhbXM6IHtcbiAgICBtYXJnaW5hbEZlZVphdFBlckFjdGlvbj86IG51bWJlcjtcbiAgfSA9IHt9XG4pOiBudW1iZXIge1xuICByZXR1cm4gKFxuICAgIE1hdGgubWF4KGdldExvZ2ljYWxBY3Rpb25zKGRpbWVuc2lvbnMpLCBncmFjZUFjdGlvbnMpICogKHBhcmFtcy5tYXJnaW5hbEZlZVphdFBlckFjdGlvbiA/PyBtYXJnaW5hbEZlZVphdFBlckFjdGlvbilcbiAgKTtcbn1cbiJdfQ==
|
package/dist/test/dimensions.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -11,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
11
15
|
}) : function(o, v) {
|
|
12
16
|
o["default"] = v;
|
|
13
17
|
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
21
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
36
|
/* eslint-disable @typescript-eslint/ban-ts-comment */
|
|
23
37
|
const should = __importStar(require("should"));
|
|
@@ -175,7 +189,7 @@ describe('Dimensions from unspent types', function () {
|
|
|
175
189
|
[testutils_1.UnspentTypePubKeyHash.p2pkh, src_1.VirtualSizes.txP2pkhOutputSize],
|
|
176
190
|
[testutils_1.UnspentTypePubKeyHash.p2wpkh, src_1.VirtualSizes.txP2wpkhOutputSize],
|
|
177
191
|
]);
|
|
178
|
-
[...Object.keys(testutils_1.UnspentTypeScript2of3), ...Object.keys(testutils_1.UnspentTypePubKeyHash)].forEach((type) => testutils_1.getOutputDimensionsForUnspentType(type).outputs.size.should.eql(expectedSizes.get(type)));
|
|
192
|
+
[...Object.keys(testutils_1.UnspentTypeScript2of3), ...Object.keys(testutils_1.UnspentTypePubKeyHash)].forEach((type) => (0, testutils_1.getOutputDimensionsForUnspentType)(type).outputs.size.should.eql(expectedSizes.get(type)));
|
|
179
193
|
});
|
|
180
194
|
});
|
|
181
195
|
describe('Dimensions estimates', function () {
|
|
@@ -185,14 +199,14 @@ describe('Dimensions estimates', function () {
|
|
|
185
199
|
nP2shInputs,
|
|
186
200
|
nP2shP2wshInputs,
|
|
187
201
|
nP2wshInputs,
|
|
188
|
-
}, testutils_1.getOutputDimensionsForUnspentType(testutils_1.UnspentTypePubKeyHash.p2pkh).times(nOutputs));
|
|
202
|
+
}, (0, testutils_1.getOutputDimensionsForUnspentType)(testutils_1.UnspentTypePubKeyHash.p2pkh).times(nOutputs));
|
|
189
203
|
}
|
|
190
204
|
function dimP2tr(nP2trKeypathInputs, nP2trScriptPathLevel1Inputs, nP2trScriptPathLevel2Inputs, nOutputs) {
|
|
191
205
|
return src_1.Dimensions.sum({
|
|
192
206
|
nP2trKeypathInputs,
|
|
193
207
|
nP2trScriptPathLevel1Inputs,
|
|
194
208
|
nP2trScriptPathLevel2Inputs,
|
|
195
|
-
}, testutils_1.getOutputDimensionsForUnspentType(testutils_1.UnspentTypePubKeyHash.p2pkh).times(nOutputs));
|
|
209
|
+
}, (0, testutils_1.getOutputDimensionsForUnspentType)(testutils_1.UnspentTypePubKeyHash.p2pkh).times(nOutputs));
|
|
196
210
|
}
|
|
197
211
|
const vectors = [
|
|
198
212
|
[dim(1, 0, 0, 1), [false, 10, 298, 34, 342]],
|
|
@@ -218,4 +232,4 @@ describe('Dimensions estimates', function () {
|
|
|
218
232
|
});
|
|
219
233
|
});
|
|
220
234
|
});
|
|
221
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGltZW5zaW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3Rlc3QvZGltZW5zaW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxzREFBc0Q7QUFDdEQsK0NBQWlDO0FBQ2pDLG1EQUE2QztBQUM3QyxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsZUFBZSxFQUFFLEdBQzlHLGdCQUFLLENBQUM7QUFDUixnQ0FBb0U7QUFFcEUsMkNBQThHO0FBRTlHLFFBQVEsQ0FBQyx1QkFBdUIsRUFBRTtJQUNoQyxFQUFFLENBQUMsb0NBQW9DLEVBQUU7UUFDdkMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFFLGdCQUFVLENBQUMsSUFBWSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN6RSxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUUsZ0JBQVUsQ0FBQyxJQUFZLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzVFLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUM7QUFFSCxRQUFRLENBQUMsbUJBQW1CLEVBQUU7SUFDNUIsRUFBRSxDQUFDLGNBQWMsRUFBRTtRQUNqQixNQUFNLElBQUksR0FBRyxJQUFJLHNCQUFnQixDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6RCxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUM7QUFFSCxRQUFRLENBQUMsdUJBQXVC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RyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzVDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzNDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzNDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzVDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzNDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzNDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzNDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBRTNDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzlDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQy9DLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ2hELENBQUM7UUFFRixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUN0QztnQkFDRSxVQUFVLENBQUMsUUFBUSxFQUFFO2dCQUNyQixVQUFVLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQzdCLFVBQVUsQ0FBQyxjQUFjLEVBQUU7Z0JBQzNCLFVBQVUsQ0FBQyxlQUFlLEVBQUU7Z0JBQzVCLFVBQVUsQ0FBQyxRQUFRLEVBQUU7YUFDdEIsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudCAqL1xuaW1wb3J0ICogYXMgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgeyBiaXRnbyB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmNvbnN0IHsgY2hhaW5Db2RlcywgY2hhaW5Db2Rlc1Ayc2gsIGNoYWluQ29kZXNQMnNoUDJ3c2gsIGNoYWluQ29kZXNQMnRyLCBjaGFpbkNvZGVzUDJ0ck11c2lnMiwgY2hhaW5Db2Rlc1Ayd3NoIH0gPVxuICBiaXRnbztcbmltcG9ydCB7IERpbWVuc2lvbnMsIE91dHB1dERpbWVuc2lvbnMsIFZpcnR1YWxTaXplcyB9IGZyb20gJy4uL3NyYyc7XG5cbmltcG9ydCB7IGdldE91dHB1dERpbWVuc2lvbnNGb3JVbnNwZW50VHlwZSwgVW5zcGVudFR5cGVQdWJLZXlIYXNoLCBVbnNwZW50VHlwZVNjcmlwdDJvZjMgfSBmcm9tICcuL3Rlc3R1dGlscyc7XG5cbmRlc2NyaWJlKCdEaW1lbnNpb25zIEF0dHJpYnV0ZXMnLCBmdW5jdGlvbiAoKSB7XG4gIGl0KCdoYXMgcmVhZC1vbmx5IG5JbnB1dHMgYW5kIG5PdXRwdXRzJywgZnVuY3Rpb24gKCkge1xuICAgIHNob3VsZC50aHJvd3MoKCkgPT4gKChEaW1lbnNpb25zLlpFUk8gYXMgYW55KS5uSW5wdXRzID0gMSksIC9yZWFkLW9ubHkvKTtcbiAgICBzaG91bGQudGhyb3dzKCgpID0+ICgoRGltZW5zaW9ucy5aRVJPIGFzIGFueSkubk91dHB1dHMgPSAxKSwgL3JlYWQtb25seS8pO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnT3V0cHV0IERpbWVuc2lvbnMnLCBmdW5jdGlvbiAoKSB7XG4gIGl0KCdpbnN0YW50aWF0ZXMnLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgZGltcyA9IG5ldyBPdXRwdXREaW1lbnNpb25zKHsgc2l6ZTogMCwgY291bnQ6IDAgfSk7XG4gICAgc2hvdWxkLnRocm93cygoKSA9PiAoZGltcy5jb3VudCArPSAxKSk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdEaW1lbnNpb25zIEFyaXRobWV0aWMnLCBmdW5jdGlvbiAoKSB7XG4gIGl0KCdzdW1zIGNvcnJlY3RseScsIGZ1bmN0aW9uICgpIHtcbiAgICBEaW1lbnNpb25zLnplcm8oKVxuICAgICAgLnBsdXMoeyBuUDJzaElucHV0czogMSB9KVxuICAgICAgLnNob3VsZC5lcWwoXG4gICAgICAgIG5ldyBEaW1lbnNpb25zKHtcbiAgICAgICAgICBuUDJzaElucHV0czogMSxcbiAgICAgICAgICBuUDJzaFAyd3NoSW5wdXRzOiAwLFxuICAgICAgICAgIG5QMndzaElucHV0czogMCxcbiAgICAgICAgICBuUDJ0cktleXBhdGhJbnB1dHM6IDAsXG4gICAgICAgICAgblAydHJTY3JpcHRQYXRoTGV2ZWwxSW5wdXRzOiAwLFxuICAgICAgICAgIG5QMnRyU2NyaXB0UGF0aExldmVsMklucHV0czogMCxcbiAgICAgICAgICBuUDJzaFAycGtJbnB1dHM6IDAsXG4gICAgICAgICAgb3V0cHV0czogeyBzaXplOiAwLCBjb3VudDogMCB9LFxuICAgICAgICB9KVxuICAgICAgKTtcblxuICAgIGNvbnN0IGNvbXBvbmVudHMgPSBbXG4gICAgICB7IG5QMnNoSW5wdXRzOiAxIH0sXG4gICAgICB7IG5QMnNoUDJ3c2hJbnB1dHM6IDIgfSxcbiAgICAgIHsgblAyd3NoSW5wdXRzOiAzIH0sXG4gICAgICB7IG5QMnRyS2V5cGF0aElucHV0czogNCB9LFxuICAgICAgeyBuUDJ0clNjcmlwdFBhdGhMZXZlbDFJbnB1dHM6IDUgfSxcbiAgICAgIHsgblAydHJTY3JpcHRQYXRoTGV2ZWwySW5wdXRzOiA2IH0sXG4gICAgICB7IG91dHB1dHM6IHsgc2l6ZTogMjMsIGNvdW50OiAxIH0gfSxcbiAgICAgIHsgb3V0cHV0czogeyBzaXplOiA0NCwgY291bnQ6IDIgfSB9LFxuICAgICAgeyBvdXRwdXRzOiB7IHNpemU6IDAsIGNvdW50OiAwIH0gfSxcbiAgICBdO1xuXG4gICAgY29tcG9uZW50cy5mb3JFYWNoKChjb21wb25lbnQpID0+IHNob3VsZC5kb2VzTm90VGhyb3coKCkgPT4gRGltZW5zaW9ucy5zdW0oY29tcG9uZW50KSkpO1xuXG4gICAgY29uc3Qgc3VtID0gY29tcG9uZW50cy5yZWR1Y2UoKGEsIGIpID0+IGEucGx1cyhiKSwgRGltZW5zaW9ucy56ZXJvKCkpO1xuXG4gICAgc3VtLnNob3VsZC5lcWwoRGltZW5zaW9ucy5zdW0oLi4uY29tcG9uZW50cykpO1xuXG4gICAgc3VtLnNob3VsZC5lcWwoXG4gICAgICBuZXcgRGltZW5zaW9ucyh7XG4gICAgICAgIG5QMnNoSW5wdXRzOiAxLFxuICAgICAgICBuUDJzaFAyd3NoSW5wdXRzOiAyLFxuICAgICAgICBuUDJ3c2hJbnB1dHM6IDMsXG4gICAgICAgIG5QMnRyS2V5cGF0aElucHV0czogNCxcbiAgICAgICAgblAydHJTY3JpcHRQYXRoTGV2ZWwxSW5wdXRzOiA1LFxuICAgICAgICBuUDJ0clNjcmlwdFBhdGhMZXZlbDJJbnB1dHM6IDYsXG4gICAgICAgIG5QMnNoUDJwa0lucHV0czogMCxcbiAgICAgICAgb3V0cHV0czogeyBzaXplOiA2NywgY291bnQ6IDMgfSxcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHN1bS5uT3V0cHV0cy5zaG91bGQuZXFsKHN1bS5vdXRwdXRzLmNvdW50KTtcbiAgfSk7XG5cbiAgaXQoJ3Byb3ZpZGVzIHNvbWUgdHlwaWNhbCBvdXRwdXQgc2l6ZXMnLCBmdW5jdGlvbiAoKSB7XG4gICAgKFxuICAgICAgW1xuICAgICAgICBbRGltZW5zaW9ucy5TaW5nbGVPdXRwdXQucDJzaCwgVmlydHVhbFNpemVzLnR4UDJzaE91dHB1dFNpemVdLFxuICAgICAgICBbRGltZW5zaW9ucy5TaW5nbGVPdXRwdXQucDJzaFAyd3NoLCBWaXJ0dWFsU2l6ZXMudHhQMnNoUDJ3c2hPdXRwdXRTaXplXSxcbiAgICAgICAgW0RpbWVuc2lvbnMuU2luZ2xlT3V0cHV0LnAyd3NoLCBWaXJ0dWFsU2l6ZXMudHhQMndzaE91dHB1dFNpemVdLFxuICAgICAgICBbRGltZW5zaW9ucy5TaW5nbGVPdXRwdXQucDJwa2gsIFZpcnR1YWxTaXplcy50eFAycGtoT3V0cHV0U2l6ZV0sXG4gICAgICAgIFtEaW1lbnNpb25zLlNpbmdsZU91dHB1dC5wMndwa2gsIFZpcnR1YWxTaXplcy50eFAyd3BraE91dHB1dFNpemVdLFxuICAgICAgICBbRGltZW5zaW9ucy5TaW5nbGVPdXRwdXQucDJ0ciwgVmlydHVhbFNpemVzLnR4UDJ0ck91dHB1dFNpemVdLFxuICAgICAgXSBhcyBbRGltZW5zaW9ucywgbnVtYmVyXVtdXG4gICAgKS5mb3JFYWNoKChbZGltcywgc2l6ZV0pID0+IHtcbiAgICAgIGRpbXMuZ2V0T3V0cHV0c1ZTaXplKCkuc2hvdWxkLmVxbChzaXplKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoJ3ByZXZlbnRzIHN1bSBvZiBpbnZhbGlkIGRhdGEnLCBmdW5jdGlvbiAoKSB7XG4gICAgc2hvdWxkLmRvZXNOb3RUaHJvdygoKSA9PiBEaW1lbnNpb25zLnN1bSh7IG91dHB1dHM6IHsgY291bnQ6IDAsIHNpemU6IDAgfSB9KSk7XG4gICAgc2hvdWxkLmRvZXNOb3RUaHJvdygoKSA9PiBEaW1lbnNpb25zLnN1bSh7IG91dHB1dHM6IHsgY291bnQ6IDEsIHNpemU6IDEgfSB9KSk7XG4gICAgc2hvdWxkLnRocm93cygoKSA9PiBEaW1lbnNpb25zLnN1bSh7IG5PdXRwdXRzOiAxIH0pKTtcbiAgICBzaG91bGQudGhyb3dzKCgpID0+IERpbWVuc2lvbnMuc3VtKHsgbk91dHB1dHM6IDEsIG91dHB1dHM6IHsgY291bnQ6IDIsIHNpemU6IDEgfSB9KSk7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHNob3VsZC50aHJvd3MoKCkgPT4gRGltZW5zaW9ucy5zdW0oeyBuUDJzaElucHV0czogMSB9LCB7IG5QMnNoSW5wdXRzOiAnZm9vJyB9KSk7XG4gICAgc2hvdWxkLnRocm93cygoKSA9PiBEaW1lbnNpb25zLnN1bSh7IG91dHB1dHM6IHsgY291bnQ6IDEsIHNpemU6IDAgfSB9KSk7XG4gICAgc2hvdWxkLnRocm93cygoKSA9PiBEaW1lbnNpb25zLnN1bSh7IG91dHB1dHM6IHsgY291bnQ6IDAsIHNpemU6IDEgfSB9KSk7XG4gICAgc2hvdWxkLnRocm93cygoKSA9PiBEaW1lbnNpb25zLnN1bSh7IG91dHB1dHM6IHsgY291bnQ6IDEsIHNpemU6IDEgfSB9LCB7IG91dHB1dHM6IHsgY291bnQ6IDEsIHNpemU6IDAgfSB9KSk7XG4gIH0pO1xuXG4gIGl0KCdjb3VudHMgaW5wdXRzIGNvcnJlY3RseScsIGZ1bmN0aW9uICgpIHtcbiAgICBPYmplY3QuZW50cmllcyhEaW1lbnNpb25zLlNpbmdsZUlucHV0KS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIHZhbHVlLm5JbnB1dHMuc2hvdWxkLmVxbCgxLCBrZXkpO1xuICAgIH0pO1xuICB9KTtcblxuICBpdCgnbXVsdGlwbGllcyBjb3JyZWN0bHknLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgZCA9IG5ldyBEaW1lbnNpb25zKHtcbiAgICAgIG5QMnNoSW5wdXRzOiAxLFxuICAgICAgblAyc2hQMndzaElucHV0czogMixcbiAgICAgIG5QMndzaElucHV0czogMyxcbiAgICAgIG5QMnRyS2V5cGF0aElucHV0czogNCxcbiAgICAgIG5QMnRyU2NyaXB0UGF0aExldmVsMUlucHV0czogNSxcbiAgICAgIG5QMnRyU2NyaXB0UGF0aExldmVsMklucHV0czogNixcbiAgICAgIG5QMnNoUDJwa0lucHV0czogNyxcbiAgICAgIG91dHB1dHM6IHsgY291bnQ6IDEsIHNpemU6IDIyIH0sXG4gICAgfSkudGltZXMoMyk7XG5cbiAgICBkLnNob3VsZC5lcWwoXG4gICAgICBuZXcgRGltZW5zaW9ucyh7XG4gICAgICAgIG5QMnNoSW5wdXRzOiAzLFxuICAgICAgICBuUDJzaFAyd3NoSW5wdXRzOiA2LFxuICAgICAgICBuUDJ3c2hJbnB1dHM6IDksXG4gICAgICAgIG5QMnRyS2V5cGF0aElucHV0czogMTIsXG4gICAgICAgIG5QMnRyU2NyaXB0UGF0aExldmVsMUlucHV0czogMTUsXG4gICAgICAgIG5QMnRyU2NyaXB0UGF0aExldmVsMklucHV0czogMTgsXG4gICAgICAgIG5QMnNoUDJwa0lucHV0czogMjEsXG4gICAgICAgIG91dHB1dHM6IHsgY291bnQ6IDMsIHNpemU6IDY2IH0sXG4gICAgICB9KVxuICAgICk7XG5cbiAgICBkLmdldE5JbnB1dHMoKS5zaG91bGQuZXFsKDg0KTtcbiAgICBkLm5JbnB1dHMuc2hvdWxkLmVxbCg4NCk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdEaW1lbnNpb25zIGZyb20gdW5zcGVudCB0eXBlcycsIGZ1bmN0aW9uICgpIHtcbiAgaXQoJ2RldGVybWluZXMgdW5zcGVudCBzaXplIGFjY29yZGluZyB0byBjaGFpbicsIGZ1bmN0aW9uICgpIHtcbiAgICBjaGFpbkNvZGVzUDJzaC5mb3JFYWNoKChjaGFpbikgPT4gRGltZW5zaW9ucy5mcm9tVW5zcGVudCh7IGNoYWluIH0pLnNob3VsZC5lcWwoRGltZW5zaW9ucy5zdW0oeyBuUDJzaElucHV0czogMSB9KSkpO1xuXG4gICAgY2hhaW5Db2Rlc1Ayc2hQMndzaC5mb3JFYWNoKChjaGFpbikgPT5cbiAgICAgIERpbWVuc2lvbnMuZnJvbVVuc3BlbnQoeyBjaGFpbiB9KS5zaG91bGQuZXFsKERpbWVuc2lvbnMuc3VtKHsgblAyc2hQMndzaElucHV0czogMSB9KSlcbiAgICApO1xuXG4gICAgY2hhaW5Db2Rlc1Ayd3NoLmZvckVhY2goKGNoYWluKSA9PlxuICAgICAgRGltZW5zaW9ucy5mcm9tVW5zcGVudCh7IGNoYWluIH0pLnNob3VsZC5lcWwoRGltZW5zaW9ucy5zdW0oeyBuUDJ3c2hJbnB1dHM6IDEgfSkpXG4gICAgKTtcblxuICAgIGNoYWluQ29kZXNQMnRyLmZvckVhY2goKGNoYWluKSA9PiB7XG4gICAgICBEaW1lbnNpb25zLmZyb21VbnNwZW50KHsgY2hhaW4gfSkuc2hvdWxkLmVxbChEaW1lbnNpb25zLnN1bSh7IG5QMnRyU2NyaXB0UGF0aExldmVsMklucHV0czogMSB9KSk7XG4gICAgICBEaW1lbnNpb25zLmZyb21VbnNwZW50KFxuICAgICAgICB7IGNoYWluIH0sXG4gICAgICAgIHsgcDJ0cjogeyBzY3JpcHRQYXRoTGV2ZWw6IDEgfSwgcDJ0ck11c2lnMjogeyBzY3JpcHRQYXRoTGV2ZWw6IHVuZGVmaW5lZCB9IH1cbiAgICAgICkuc2hvdWxkLmVxbChEaW1lbnNpb25zLnN1bSh7IG5QMnRyU2NyaXB0UGF0aExldmVsMUlucHV0czogMSB9KSk7XG4gICAgfSk7XG5cbiAgICBjaGFpbkNvZGVzUDJ0ck11c2lnMi5mb3JFYWNoKChjaGFpbikgPT4ge1xuICAgICAgRGltZW5zaW9ucy5mcm9tVW5zcGVudCh7IGNoYWluIH0pLnNob3VsZC5lcWwoRGltZW5zaW9ucy5zdW0oeyBuUDJ0clNjcmlwdFBhdGhMZXZlbDFJbnB1dHM6IDEgfSkpO1xuICAgICAgRGltZW5zaW9ucy5mcm9tVW5zcGVudChcbiAgICAgICAgeyBjaGFpbiB9LFxuICAgICAgICB7IHAydHI6IHsgc2NyaXB0UGF0aExldmVsOiB1bmRlZmluZWQgfSwgcDJ0ck11c2lnMjogeyBzY3JpcHRQYXRoTGV2ZWw6IHVuZGVmaW5lZCB9IH1cbiAgICAgICkuc2hvdWxkLmVxbChEaW1lbnNpb25zLnN1bSh7IG5QMnRyS2V5cGF0aElucHV0czogMSB9KSk7XG4gICAgfSk7XG5cbiAgICBEaW1lbnNpb25zLmZyb21VbnNwZW50cyhjaGFpbkNvZGVzLm1hcCgoY2hhaW4pID0+ICh7IGNoYWluIH0pKSkuc2hvdWxkLmVxbChcbiAgICAgIG5ldyBEaW1lbnNpb25zKHtcbiAgICAgICAgblAyc2hQMndzaElucHV0czogMixcbiAgICAgICAgblAyc2hJbnB1dHM6IDIsXG4gICAgICAgIG5QMndzaElucHV0czogMixcbiAgICAgICAgblAydHJLZXlwYXRoSW5wdXRzOiAwLFxuICAgICAgICBuUDJ0clNjcmlwdFBhdGhMZXZlbDFJbnB1dHM6IDIsXG4gICAgICAgIG5QMnRyU2NyaXB0UGF0aExldmVsMklucHV0czogMixcbiAgICAgICAgblAyc2hQMnBrSW5wdXRzOiAwLFxuICAgICAgICBvdXRwdXRzOiB7IGNvdW50OiAwLCBzaXplOiAwIH0sXG4gICAgICB9KVxuICAgICk7XG5cbiAgICBEaW1lbnNpb25zLmZyb21VbnNwZW50cyhcbiAgICAgIGNoYWluQ29kZXMubWFwKChjaGFpbikgPT4gKHsgY2hhaW4gfSkpLFxuICAgICAgeyBwMnRyOiB7IHNjcmlwdFBhdGhMZXZlbDogMSB9LCBwMnRyTXVzaWcyOiB7IHNjcmlwdFBhdGhMZXZlbDogdW5kZWZpbmVkIH0gfVxuICAgICkuc2hvdWxkLmVxbChcbiAgICAgIG5ldyBEaW1lbnNpb25zKHtcbiAgICAgICAgblAyc2hQMndzaElucHV0czogMixcbiAgICAgICAgblAyc2hJbnB1dHM6IDIsXG4gICAgICAgIG5QMndzaElucHV0czogMixcbiAgICAgICAgblAydHJLZXlwYXRoSW5wdXRzOiAyLFxuICAgICAgICBuUDJ0clNjcmlwdFBhdGhMZXZlbDFJbnB1dHM6IDIsXG4gICAgICAgIG5QMnRyU2NyaXB0UGF0aExldmVsMklucHV0czogMCxcbiAgICAgICAgblAyc2hQMnBrSW5wdXRzOiAwLFxuICAgICAgICBvdXRwdXRzOiB7IGNvdW50OiAwLCBzaXplOiAwIH0sXG4gICAgICB9KVxuICAgICk7XG4gIH0pO1xuXG4gIGl0KCdjYWxjdWxhdGVzIG91dHB1dCBkaW1lbnNpb25zIGR5bmFtaWNhbGx5JywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGV4cGVjdGVkU2l6ZXMgPSBuZXcgTWFwKFtcbiAgICAgIFtVbnNwZW50VHlwZVNjcmlwdDJvZjMucDJzaCwgVmlydHVhbFNpemVzLnR4UDJzaE91dHB1dFNpemVdLFxuICAgICAgW1Vuc3BlbnRUeXBlU2NyaXB0Mm9mMy5wMnNoUDJ3c2gsIFZpcnR1YWxTaXplcy50eFAyc2hQMndzaE91dHB1dFNpemVdLFxuICAgICAgW1Vuc3BlbnRUeXBlU2NyaXB0Mm9mMy5wMndzaCwgVmlydHVhbFNpemVzLnR4UDJ3c2hPdXRwdXRTaXplXSxcbiAgICAgIFtVbnNwZW50VHlwZVNjcmlwdDJvZjMucDJ0ciwgVmlydHVhbFNpemVzLnR4UDJ0ck91dHB1dFNpemVdLFxuICAgICAgW1Vuc3BlbnRUeXBlU2NyaXB0Mm9mMy5wMnRyTXVzaWcyLCBWaXJ0dWFsU2l6ZXMudHhQMnRyT3V0cHV0U2l6ZV0sXG4gICAgICBbVW5zcGVudFR5cGVTY3JpcHQyb2YzLnRhcHJvb3RLZXlQYXRoU3BlbmQsIFZpcnR1YWxTaXplcy50eFAydHJPdXRwdXRTaXplXSxcbiAgICAgIFtVbnNwZW50VHlwZVB1YktleUhhc2gucDJwa2gsIFZpcnR1YWxTaXplcy50eFAycGtoT3V0cHV0U2l6ZV0sXG4gICAgICBbVW5zcGVudFR5cGVQdWJLZXlIYXNoLnAyd3BraCwgVmlydHVhbFNpemVzLnR4UDJ3cGtoT3V0cHV0U2l6ZV0sXG4gICAgXSk7XG5cbiAgICBbLi4uT2JqZWN0LmtleXMoVW5zcGVudFR5cGVTY3JpcHQyb2YzKSwgLi4uT2JqZWN0LmtleXMoVW5zcGVudFR5cGVQdWJLZXlIYXNoKV0uZm9yRWFjaCgodHlwZSkgPT5cbiAgICAgIGdldE91dHB1dERpbWVuc2lvbnNGb3JVbnNwZW50VHlwZSh0eXBlKS5vdXRwdXRzLnNpemUuc2hvdWxkLmVxbChleHBlY3RlZFNpemVzLmdldCh0eXBlIGFzIGFueSkpXG4gICAgKTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ0RpbWVuc2lvbnMgZXN0aW1hdGVzJywgZnVuY3Rpb24gKCkge1xuICBpdCgnY2FsY3VsYXRlcyB2c2l6ZXMnLCBmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gZGltKG5QMnNoSW5wdXRzOiBudW1iZXIsIG5QMnNoUDJ3c2hJbnB1dHM6IG51bWJlciwgblAyd3NoSW5wdXRzOiBudW1iZXIsIG5PdXRwdXRzOiBudW1iZXIpOiBEaW1lbnNpb25zIHtcbiAgICAgIHJldHVybiBEaW1lbnNpb25zLnN1bShcbiAgICAgICAge1xuICAgICAgICAgIG5QMnNoSW5wdXRzLFxuICAgICAgICAgIG5QMnNoUDJ3c2hJbnB1dHMsXG4gICAgICAgICAgblAyd3NoSW5wdXRzLFxuICAgICAgICB9LFxuICAgICAgICBnZXRPdXRwdXREaW1lbnNpb25zRm9yVW5zcGVudFR5cGUoVW5zcGVudFR5cGVQdWJLZXlIYXNoLnAycGtoKS50aW1lcyhuT3V0cHV0cylcbiAgICAgICk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZGltUDJ0cihcbiAgICAgIG5QMnRyS2V5cGF0aElucHV0czogbnVtYmVyLFxuICAgICAgblAydHJTY3JpcHRQYXRoTGV2ZWwxSW5wdXRzOiBudW1iZXIsXG4gICAgICBuUDJ0clNjcmlwdFBhdGhMZXZlbDJJbnB1dHM6IG51bWJlcixcbiAgICAgIG5PdXRwdXRzOiBudW1iZXJcbiAgICApOiBEaW1lbnNpb25zIHtcbiAgICAgIHJldHVybiBEaW1lbnNpb25zLnN1bShcbiAgICAgICAge1xuICAgICAgICAgIG5QMnRyS2V5cGF0aElucHV0cyxcbiAgICAgICAgICBuUDJ0clNjcmlwdFBhdGhMZXZlbDFJbnB1dHMsXG4gICAgICAgICAgblAydHJTY3JpcHRQYXRoTGV2ZWwySW5wdXRzLFxuICAgICAgICB9LFxuICAgICAgICBnZXRPdXRwdXREaW1lbnNpb25zRm9yVW5zcGVudFR5cGUoVW5zcGVudFR5cGVQdWJLZXlIYXNoLnAycGtoKS50aW1lcyhuT3V0cHV0cylcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgdmVjdG9yczogW0RpbWVuc2lvbnMsIHVua25vd25bXV1bXSA9IFtcbiAgICAgIFtkaW0oMSwgMCwgMCwgMSksIFtmYWxzZSwgMTAsIDI5OCwgMzQsIDM0Ml1dLFxuICAgICAgW2RpbSgwLCAxLCAwLCAxKSwgW3RydWUsIDExLCAxNDAsIDM0LCAxODVdXSxcbiAgICAgIFtkaW0oMCwgMCwgMSwgMSksIFt0cnVlLCAxMSwgMTA1LCAzNCwgMTUwXV0sXG4gICAgICBbZGltKDIsIDAsIDAsIDEpLCBbZmFsc2UsIDEwLCA1OTYsIDM0LCA2NDBdXSxcbiAgICAgIFtkaW0oMCwgMiwgMCwgMSksIFt0cnVlLCAxMSwgMjgwLCAzNCwgMzI1XV0sXG4gICAgICBbZGltKDAsIDAsIDIsIDEpLCBbdHJ1ZSwgMTEsIDIxMCwgMzQsIDI1NV1dLFxuICAgICAgW2RpbSgxLCAxLCAxLCAxKSwgW3RydWUsIDExLCA1NDMsIDM0LCA1ODhdXSxcbiAgICAgIFtkaW0oMSwgMSwgMSwgMiksIFt0cnVlLCAxMSwgNTQzLCA2OCwgNjIyXV0sXG5cbiAgICAgIFtkaW1QMnRyKDEsIDAsIDAsIDEpLCBbdHJ1ZSwgMTEsIDU4LCAzNCwgMTAzXV0sXG4gICAgICBbZGltUDJ0cigwLCAxLCAwLCAxKSwgW3RydWUsIDExLCAxMDgsIDM0LCAxNTNdXSxcbiAgICAgIFtkaW1QMnRyKDAsIDAsIDEsIDEpLCBbdHJ1ZSwgMTEsIDExNiwgMzQsIDE2MV1dLFxuICAgIF07XG5cbiAgICB2ZWN0b3JzLmZvckVhY2goKFtkaW1lbnNpb25zLCBwcm9wc10pID0+IHtcbiAgICAgIFtcbiAgICAgICAgZGltZW5zaW9ucy5pc1NlZ3dpdCgpLFxuICAgICAgICBkaW1lbnNpb25zLmdldE92ZXJoZWFkVlNpemUoKSxcbiAgICAgICAgZGltZW5zaW9ucy5nZXRJbnB1dHNWU2l6ZSgpLFxuICAgICAgICBkaW1lbnNpb25zLmdldE91dHB1dHNWU2l6ZSgpLFxuICAgICAgICBkaW1lbnNpb25zLmdldFZTaXplKCksXG4gICAgICBdLnNob3VsZC5lcWwocHJvcHMpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
235
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGltZW5zaW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3Rlc3QvZGltZW5zaW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHNEQUFzRDtBQUN0RCwrQ0FBaUM7QUFDakMsbURBQTZDO0FBQzdDLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxlQUFlLEVBQUUsR0FDOUcsZ0JBQUssQ0FBQztBQUNSLGdDQUFvRTtBQUVwRSwyQ0FBOEc7QUFFOUcsUUFBUSxDQUFDLHVCQUF1QixFQUFFO0lBQ2hDLEVBQUUsQ0FBQyxvQ0FBb0MsRUFBRTtRQUN2QyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUUsZ0JBQVUsQ0FBQyxJQUFZLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBRSxnQkFBVSxDQUFDLElBQVksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDNUUsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQztBQUVILFFBQVEsQ0FBQyxtQkFBbUIsRUFBRTtJQUM1QixFQUFFLENBQUMsY0FBYyxFQUFFO1FBQ2pCLE1BQU0sSUFBSSxHQUFHLElBQUksc0JBQWdCLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQztBQUVILFFB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QUFNLE9BQU8sR0FBOEI7WUFDekMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDNUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDM0MsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDM0MsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDNUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDM0MsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDM0MsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDM0MsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFFM0MsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDOUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDL0MsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDaEQsQ0FBQztRQUVGLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO1lBQ3RDO2dCQUNFLFVBQVUsQ0FBQyxRQUFRLEVBQUU7Z0JBQ3JCLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDN0IsVUFBVSxDQUFDLGNBQWMsRUFBRTtnQkFDM0IsVUFBVSxDQUFDLGVBQWUsRUFBRTtnQkFDNUIsVUFBVSxDQUFDLFFBQVEsRUFBRTthQUN0QixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50ICovXG5pbXBvcnQgKiBhcyBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCB7IGJpdGdvIH0gZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuY29uc3QgeyBjaGFpbkNvZGVzLCBjaGFpbkNvZGVzUDJzaCwgY2hhaW5Db2Rlc1Ayc2hQMndzaCwgY2hhaW5Db2Rlc1AydHIsIGNoYWluQ29kZXNQMnRyTXVzaWcyLCBjaGFpbkNvZGVzUDJ3c2ggfSA9XG4gIGJpdGdvO1xuaW1wb3J0IHsgRGltZW5zaW9ucywgT3V0cHV0RGltZW5zaW9ucywgVmlydHVhbFNpemVzIH0gZnJvbSAnLi4vc3JjJztcblxuaW1wb3J0IHsgZ2V0T3V0cHV0RGltZW5zaW9uc0ZvclVuc3BlbnRUeXBlLCBVbnNwZW50VHlwZVB1YktleUhhc2gsIFVuc3BlbnRUeXBlU2NyaXB0Mm9mMyB9IGZyb20gJy4vdGVzdHV0aWxzJztcblxuZGVzY3JpYmUoJ0RpbWVuc2lvbnMgQXR0cmlidXRlcycsIGZ1bmN0aW9uICgpIHtcbiAgaXQoJ2hhcyByZWFkLW9ubHkgbklucHV0cyBhbmQgbk91dHB1dHMnLCBmdW5jdGlvbiAoKSB7XG4gICAgc2hvdWxkLnRocm93cygoKSA9PiAoKERpbWVuc2lvbnMuWkVSTyBhcyBhbnkpLm5JbnB1dHMgPSAxKSwgL3JlYWQtb25seS8pO1xuICAgIHNob3VsZC50aHJvd3MoKCkgPT4gKChEaW1lbnNpb25zLlpFUk8gYXMgYW55KS5uT3V0cHV0cyA9IDEpLCAvcmVhZC1vbmx5Lyk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdPdXRwdXQgRGltZW5zaW9ucycsIGZ1bmN0aW9uICgpIHtcbiAgaXQoJ2luc3RhbnRpYXRlcycsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBkaW1zID0gbmV3IE91dHB1dERpbWVuc2lvbnMoeyBzaXplOiAwLCBjb3VudDogMCB9KTtcbiAgICBzaG91bGQudGhyb3dzKCgpID0+IChkaW1zLmNvdW50ICs9IDEpKTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ0RpbWVuc2lvbnMgQXJpdGhtZXRpYycsIGZ1bmN0aW9uICgpIHtcbiAgaXQoJ3N1bXMgY29ycmVjdGx5JywgZnVuY3Rpb24gKCkge1xuICAgIERpbWVuc2lvbnMuemVybygpXG4gICAgICAucGx1cyh7IG5QMnNoSW5wdXRzOiAxIH0pXG4gICAgICAuc2hvdWxkLmVxbChcbiAgICAgICAgbmV3IERpbWVuc2lvbnMoe1xuICAgICAgICAgIG5QMnNoSW5wdXRzOiAxLFxuICAgICAgICAgIG5QMnNoUDJ3c2hJbnB1dHM6IDAsXG4gICAgICAgICAgblAyd3NoSW5wdXRzOiAwLFxuICAgICAgICAgIG5QMnRyS2V5cGF0aElucHV0czogMCxcbiAgICAgICAgICBuUDJ0clNjcmlwdFBhdGhMZXZlbDFJbnB1dHM6IDAsXG4gICAgICAgICAgblAydHJTY3JpcHRQYXRoTGV2ZWwySW5wdXRzOiAwLFxuICAgICAgICAgIG5QMnNoUDJwa0lucHV0czogMCxcbiAgICAgICAgICBvdXRwdXRzOiB7IHNpemU6IDAsIGNvdW50OiAwIH0sXG4gICAgICAgIH0pXG4gICAgICApO1xuXG4gICAgY29uc3QgY29tcG9uZW50cyA9IFtcbiAgICAgIHsgblAyc2hJbnB1dHM6IDEgfSxcbiAgICAgIHsgblAyc2hQMndzaElucHV0czogMiB9LFxuICAgICAgeyBuUDJ3c2hJbnB1dHM6IDMgfSxcbiAgICAgIHsgblAydHJLZXlwYXRoSW5wdXRzOiA0IH0sXG4gICAgICB7IG5QMnRyU2NyaXB0UGF0aExldmVsMUlucHV0czogNSB9LFxuICAgICAgeyBuUDJ0clNjcmlwdFBhdGhMZXZlbDJJbnB1dHM6IDYgfSxcbiAgICAgIHsgb3V0cHV0czogeyBzaXplOiAyMywgY291bnQ6IDEgfSB9LFxuICAgICAgeyBvdXRwdXRzOiB7IHNpemU6IDQ0LCBjb3VudDogMiB9IH0sXG4gICAgICB7IG91dHB1dHM6IHsgc2l6ZTogMCwgY291bnQ6IDAgfSB9LFxuICAgIF07XG5cbiAgICBjb21wb25lbnRzLmZvckVhY2goKGNvbXBvbmVudCkgPT4gc2hvdWxkLmRvZXNOb3RUaHJvdygoKSA9PiBEaW1lbnNpb25zLnN1bShjb21wb25lbnQpKSk7XG5cbiAgICBjb25zdCBzdW0gPSBjb21wb25lbnRzLnJlZHVjZSgoYSwgYikgPT4gYS5wbHVzKGIpLCBEaW1lbnNpb25zLnplcm8oKSk7XG5cbiAgICBzdW0uc2hvdWxkLmVxbChEaW1lbnNpb25zLnN1bSguLi5jb21wb25lbnRzKSk7XG5cbiAgICBzdW0uc2hvdWxkLmVxbChcbiAgICAgIG5ldyBEaW1lbnNpb25zKHtcbiAgICAgICAgblAyc2hJbnB1dHM6IDEsXG4gICAgICAgIG5QMnNoUDJ3c2hJbnB1dHM6IDIsXG4gICAgICAgIG5QMndzaElucHV0czogMyxcbiAgICAgICAgblAydHJLZXlwYXRoSW5wdXRzOiA0LFxuICAgICAgICBuUDJ0clNjcmlwdFBhdGhMZXZlbDFJbnB1dHM6IDUsXG4gICAgICAgIG5QMnRyU2NyaXB0UGF0aExldmVsMklucHV0czogNixcbiAgICAgICAgblAyc2hQMnBrSW5wdXRzOiAwLFxuICAgICAgICBvdXRwdXRzOiB7IHNpemU6IDY3LCBjb3VudDogMyB9LFxuICAgICAgfSlcbiAgICApO1xuXG4gICAgc3VtLm5PdXRwdXRzLnNob3VsZC5lcWwoc3VtLm91dHB1dHMuY291bnQpO1xuICB9KTtcblxuICBpdCgncHJvdmlkZXMgc29tZSB0eXBpY2FsIG91dHB1dCBzaXplcycsIGZ1bmN0aW9uICgpIHtcbiAgICAoXG4gICAgICBbXG4gICAgICAgIFtEaW1lbnNpb25zLlNpbmdsZU91dHB1dC5wMnNoLCBWaXJ0dWFsU2l6ZXMudHhQMnNoT3V0cHV0U2l6ZV0sXG4gICAgICAgIFtEaW1lbnNpb25zLlNpbmdsZU91dHB1dC5wMnNoUDJ3c2gsIFZpcnR1YWxTaXplcy50eFAyc2hQMndzaE91dHB1dFNpemVdLFxuICAgICAgICBbRGltZW5zaW9ucy5TaW5nbGVPdXRwdXQucDJ3c2gsIFZpcnR1YWxTaXplcy50eFAyd3NoT3V0cHV0U2l6ZV0sXG4gICAgICAgIFtEaW1lbnNpb25zLlNpbmdsZU91dHB1dC5wMnBraCwgVmlydHVhbFNpemVzLnR4UDJwa2hPdXRwdXRTaXplXSxcbiAgICAgICAgW0RpbWVuc2lvbnMuU2luZ2xlT3V0cHV0LnAyd3BraCwgVmlydHVhbFNpemVzLnR4UDJ3cGtoT3V0cHV0U2l6ZV0sXG4gICAgICAgIFtEaW1lbnNpb25zLlNpbmdsZU91dHB1dC5wMnRyLCBWaXJ0dWFsU2l6ZXMudHhQMnRyT3V0cHV0U2l6ZV0sXG4gICAgICBdIGFzIFtEaW1lbnNpb25zLCBudW1iZXJdW11cbiAgICApLmZvckVhY2goKFtkaW1zLCBzaXplXSkgPT4ge1xuICAgICAgZGltcy5nZXRPdXRwdXRzVlNpemUoKS5zaG91bGQuZXFsKHNpemUpO1xuICAgIH0pO1xuICB9KTtcblxuICBpdCgncHJldmVudHMgc3VtIG9mIGludmFsaWQgZGF0YScsIGZ1bmN0aW9uICgpIHtcbiAgICBzaG91bGQuZG9lc05vdFRocm93KCgpID0+IERpbWVuc2lvbnMuc3VtKHsgb3V0cHV0czogeyBjb3VudDogMCwgc2l6ZTogMCB9IH0pKTtcbiAgICBzaG91bGQuZG9lc05vdFRocm93KCgpID0+IERpbWVuc2lvbnMuc3VtKHsgb3V0cHV0czogeyBjb3VudDogMSwgc2l6ZTogMSB9IH0pKTtcbiAgICBzaG91bGQudGhyb3dzKCgpID0+IERpbWVuc2lvbnMuc3VtKHsgbk91dHB1dHM6IDEgfSkpO1xuICAgIHNob3VsZC50aHJvd3MoKCkgPT4gRGltZW5zaW9ucy5zdW0oeyBuT3V0cHV0czogMSwgb3V0cHV0czogeyBjb3VudDogMiwgc2l6ZTogMSB9IH0pKTtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgc2hvdWxkLnRocm93cygoKSA9PiBEaW1lbnNpb25zLnN1bSh7IG5QMnNoSW5wdXRzOiAxIH0sIHsgblAyc2hJbnB1dHM6ICdmb28nIH0pKTtcbiAgICBzaG91bGQudGhyb3dzKCgpID0+IERpbWVuc2lvbnMuc3VtKHsgb3V0cHV0czogeyBjb3VudDogMSwgc2l6ZTogMCB9IH0pKTtcbiAgICBzaG91bGQudGhyb3dzKCgpID0+IERpbWVuc2lvbnMuc3VtKHsgb3V0cHV0czogeyBjb3VudDogMCwgc2l6ZTogMSB9IH0pKTtcbiAgICBzaG91bGQudGhyb3dzKCgpID0+IERpbWVuc2lvbnMuc3VtKHsgb3V0cHV0czogeyBjb3VudDogMSwgc2l6ZTogMSB9IH0sIHsgb3V0cHV0czogeyBjb3VudDogMSwgc2l6ZTogMCB9IH0pKTtcbiAgfSk7XG5cbiAgaXQoJ2NvdW50cyBpbnB1dHMgY29ycmVjdGx5JywgZnVuY3Rpb24gKCkge1xuICAgIE9iamVjdC5lbnRyaWVzKERpbWVuc2lvbnMuU2luZ2xlSW5wdXQpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgdmFsdWUubklucHV0cy5zaG91bGQuZXFsKDEsIGtleSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KCdtdWx0aXBsaWVzIGNvcnJlY3RseScsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBkID0gbmV3IERpbWVuc2lvbnMoe1xuICAgICAgblAyc2hJbnB1dHM6IDEsXG4gICAgICBuUDJzaFAyd3NoSW5wdXRzOiAyLFxuICAgICAgblAyd3NoSW5wdXRzOiAzLFxuICAgICAgblAydHJLZXlwYXRoSW5wdXRzOiA0LFxuICAgICAgblAydHJTY3JpcHRQYXRoTGV2ZWwxSW5wdXRzOiA1LFxuICAgICAgblAydHJTY3JpcHRQYXRoTGV2ZWwySW5wdXRzOiA2LFxuICAgICAgblAyc2hQMnBrSW5wdXRzOiA3LFxuICAgICAgb3V0cHV0czogeyBjb3VudDogMSwgc2l6ZTogMjIgfSxcbiAgICB9KS50aW1lcygzKTtcblxuICAgIGQuc2hvdWxkLmVxbChcbiAgICAgIG5ldyBEaW1lbnNpb25zKHtcbiAgICAgICAgblAyc2hJbnB1dHM6IDMsXG4gICAgICAgIG5QMnNoUDJ3c2hJbnB1dHM6IDYsXG4gICAgICAgIG5QMndzaElucHV0czogOSxcbiAgICAgICAgblAydHJLZXlwYXRoSW5wdXRzOiAxMixcbiAgICAgICAgblAydHJTY3JpcHRQYXRoTGV2ZWwxSW5wdXRzOiAxNSxcbiAgICAgICAgblAydHJTY3JpcHRQYXRoTGV2ZWwySW5wdXRzOiAxOCxcbiAgICAgICAgblAyc2hQMnBrSW5wdXRzOiAyMSxcbiAgICAgICAgb3V0cHV0czogeyBjb3VudDogMywgc2l6ZTogNjYgfSxcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIGQuZ2V0TklucHV0cygpLnNob3VsZC5lcWwoODQpO1xuICAgIGQubklucHV0cy5zaG91bGQuZXFsKDg0KTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ0RpbWVuc2lvbnMgZnJvbSB1bnNwZW50IHR5cGVzJywgZnVuY3Rpb24gKCkge1xuICBpdCgnZGV0ZXJtaW5lcyB1bnNwZW50IHNpemUgYWNjb3JkaW5nIHRvIGNoYWluJywgZnVuY3Rpb24gKCkge1xuICAgIGNoYWluQ29kZXNQMnNoLmZvckVhY2goKGNoYWluKSA9PiBEaW1lbnNpb25zLmZyb21VbnNwZW50KHsgY2hhaW4gfSkuc2hvdWxkLmVxbChEaW1lbnNpb25zLnN1bSh7IG5QMnNoSW5wdXRzOiAxIH0pKSk7XG5cbiAgICBjaGFpbkNvZGVzUDJzaFAyd3NoLmZvckVhY2goKGNoYWluKSA9PlxuICAgICAgRGltZW5zaW9ucy5mcm9tVW5zcGVudCh7IGNoYWluIH0pLnNob3VsZC5lcWwoRGltZW5zaW9ucy5zdW0oeyBuUDJzaFAyd3NoSW5wdXRzOiAxIH0pKVxuICAgICk7XG5cbiAgICBjaGFpbkNvZGVzUDJ3c2guZm9yRWFjaCgoY2hhaW4pID0+XG4gICAgICBEaW1lbnNpb25zLmZyb21VbnNwZW50KHsgY2hhaW4gfSkuc2hvdWxkLmVxbChEaW1lbnNpb25zLnN1bSh7IG5QMndzaElucHV0czogMSB9KSlcbiAgICApO1xuXG4gICAgY2hhaW5Db2Rlc1AydHIuZm9yRWFjaCgoY2hhaW4pID0+IHtcbiAgICAgIERpbWVuc2lvbnMuZnJvbVVuc3BlbnQoeyBjaGFpbiB9KS5zaG91bGQuZXFsKERpbWVuc2lvbnMuc3VtKHsgblAydHJTY3JpcHRQYXRoTGV2ZWwySW5wdXRzOiAxIH0pKTtcbiAgICAgIERpbWVuc2lvbnMuZnJvbVVuc3BlbnQoXG4gICAgICAgIHsgY2hhaW4gfSxcbiAgICAgICAgeyBwMnRyOiB7IHNjcmlwdFBhdGhMZXZlbDogMSB9LCBwMnRyTXVzaWcyOiB7IHNjcmlwdFBhdGhMZXZlbDogdW5kZWZpbmVkIH0gfVxuICAgICAgKS5zaG91bGQuZXFsKERpbWVuc2lvbnMuc3VtKHsgblAydHJTY3JpcHRQYXRoTGV2ZWwxSW5wdXRzOiAxIH0pKTtcbiAgICB9KTtcblxuICAgIGNoYWluQ29kZXNQMnRyTXVzaWcyLmZvckVhY2goKGNoYWluKSA9PiB7XG4gICAgICBEaW1lbnNpb25zLmZyb21VbnNwZW50KHsgY2hhaW4gfSkuc2hvdWxkLmVxbChEaW1lbnNpb25zLnN1bSh7IG5QMnRyU2NyaXB0UGF0aExldmVsMUlucHV0czogMSB9KSk7XG4gICAgICBEaW1lbnNpb25zLmZyb21VbnNwZW50KFxuICAgICAgICB7IGNoYWluIH0sXG4gICAgICAgIHsgcDJ0cjogeyBzY3JpcHRQYXRoTGV2ZWw6IHVuZGVmaW5lZCB9LCBwMnRyTXVzaWcyOiB7IHNjcmlwdFBhdGhMZXZlbDogdW5kZWZpbmVkIH0gfVxuICAgICAgKS5zaG91bGQuZXFsKERpbWVuc2lvbnMuc3VtKHsgblAydHJLZXlwYXRoSW5wdXRzOiAxIH0pKTtcbiAgICB9KTtcblxuICAgIERpbWVuc2lvbnMuZnJvbVVuc3BlbnRzKGNoYWluQ29kZXMubWFwKChjaGFpbikgPT4gKHsgY2hhaW4gfSkpKS5zaG91bGQuZXFsKFxuICAgICAgbmV3IERpbWVuc2lvbnMoe1xuICAgICAgICBuUDJzaFAyd3NoSW5wdXRzOiAyLFxuICAgICAgICBuUDJzaElucHV0czogMixcbiAgICAgICAgblAyd3NoSW5wdXRzOiAyLFxuICAgICAgICBuUDJ0cktleXBhdGhJbnB1dHM6IDAsXG4gICAgICAgIG5QMnRyU2NyaXB0UGF0aExldmVsMUlucHV0czogMixcbiAgICAgICAgblAydHJTY3JpcHRQYXRoTGV2ZWwySW5wdXRzOiAyLFxuICAgICAgICBuUDJzaFAycGtJbnB1dHM6IDAsXG4gICAgICAgIG91dHB1dHM6IHsgY291bnQ6IDAsIHNpemU6IDAgfSxcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIERpbWVuc2lvbnMuZnJvbVVuc3BlbnRzKFxuICAgICAgY2hhaW5Db2Rlcy5tYXAoKGNoYWluKSA9PiAoeyBjaGFpbiB9KSksXG4gICAgICB7IHAydHI6IHsgc2NyaXB0UGF0aExldmVsOiAxIH0sIHAydHJNdXNpZzI6IHsgc2NyaXB0UGF0aExldmVsOiB1bmRlZmluZWQgfSB9XG4gICAgKS5zaG91bGQuZXFsKFxuICAgICAgbmV3IERpbWVuc2lvbnMoe1xuICAgICAgICBuUDJzaFAyd3NoSW5wdXRzOiAyLFxuICAgICAgICBuUDJzaElucHV0czogMixcbiAgICAgICAgblAyd3NoSW5wdXRzOiAyLFxuICAgICAgICBuUDJ0cktleXBhdGhJbnB1dHM6IDIsXG4gICAgICAgIG5QMnRyU2NyaXB0UGF0aExldmVsMUlucHV0czogMixcbiAgICAgICAgblAydHJTY3JpcHRQYXRoTGV2ZWwySW5wdXRzOiAwLFxuICAgICAgICBuUDJzaFAycGtJbnB1dHM6IDAsXG4gICAgICAgIG91dHB1dHM6IHsgY291bnQ6IDAsIHNpemU6IDAgfSxcbiAgICAgIH0pXG4gICAgKTtcbiAgfSk7XG5cbiAgaXQoJ2NhbGN1bGF0ZXMgb3V0cHV0IGRpbWVuc2lvbnMgZHluYW1pY2FsbHknLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgZXhwZWN0ZWRTaXplcyA9IG5ldyBNYXAoW1xuICAgICAgW1Vuc3BlbnRUeXBlU2NyaXB0Mm9mMy5wMnNoLCBWaXJ0dWFsU2l6ZXMudHhQMnNoT3V0cHV0U2l6ZV0sXG4gICAgICBbVW5zcGVudFR5cGVTY3JpcHQyb2YzLnAyc2hQMndzaCwgVmlydHVhbFNpemVzLnR4UDJzaFAyd3NoT3V0cHV0U2l6ZV0sXG4gICAgICBbVW5zcGVudFR5cGVTY3JpcHQyb2YzLnAyd3NoLCBWaXJ0dWFsU2l6ZXMudHhQMndzaE91dHB1dFNpemVdLFxuICAgICAgW1Vuc3BlbnRUeXBlU2NyaXB0Mm9mMy5wMnRyLCBWaXJ0dWFsU2l6ZXMudHhQMnRyT3V0cHV0U2l6ZV0sXG4gICAgICBbVW5zcGVudFR5cGVTY3JpcHQyb2YzLnAydHJNdXNpZzIsIFZpcnR1YWxTaXplcy50eFAydHJPdXRwdXRTaXplXSxcbiAgICAgIFtVbnNwZW50VHlwZVNjcmlwdDJvZjMudGFwcm9vdEtleVBhdGhTcGVuZCwgVmlydHVhbFNpemVzLnR4UDJ0ck91dHB1dFNpemVdLFxuICAgICAgW1Vuc3BlbnRUeXBlUHViS2V5SGFzaC5wMnBraCwgVmlydHVhbFNpemVzLnR4UDJwa2hPdXRwdXRTaXplXSxcbiAgICAgIFtVbnNwZW50VHlwZVB1YktleUhhc2gucDJ3cGtoLCBWaXJ0dWFsU2l6ZXMudHhQMndwa2hPdXRwdXRTaXplXSxcbiAgICBdKTtcblxuICAgIFsuLi5PYmplY3Qua2V5cyhVbnNwZW50VHlwZVNjcmlwdDJvZjMpLCAuLi5PYmplY3Qua2V5cyhVbnNwZW50VHlwZVB1YktleUhhc2gpXS5mb3JFYWNoKCh0eXBlKSA9PlxuICAgICAgZ2V0T3V0cHV0RGltZW5zaW9uc0ZvclVuc3BlbnRUeXBlKHR5cGUpLm91dHB1dHMuc2l6ZS5zaG91bGQuZXFsKGV4cGVjdGVkU2l6ZXMuZ2V0KHR5cGUgYXMgYW55KSlcbiAgICApO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnRGltZW5zaW9ucyBlc3RpbWF0ZXMnLCBmdW5jdGlvbiAoKSB7XG4gIGl0KCdjYWxjdWxhdGVzIHZzaXplcycsIGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBkaW0oblAyc2hJbnB1dHM6IG51bWJlciwgblAyc2hQMndzaElucHV0czogbnVtYmVyLCBuUDJ3c2hJbnB1dHM6IG51bWJlciwgbk91dHB1dHM6IG51bWJlcik6IERpbWVuc2lvbnMge1xuICAgICAgcmV0dXJuIERpbWVuc2lvbnMuc3VtKFxuICAgICAgICB7XG4gICAgICAgICAgblAyc2hJbnB1dHMsXG4gICAgICAgICAgblAyc2hQMndzaElucHV0cyxcbiAgICAgICAgICBuUDJ3c2hJbnB1dHMsXG4gICAgICAgIH0sXG4gICAgICAgIGdldE91dHB1dERpbWVuc2lvbnNGb3JVbnNwZW50VHlwZShVbnNwZW50VHlwZVB1YktleUhhc2gucDJwa2gpLnRpbWVzKG5PdXRwdXRzKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBkaW1QMnRyKFxuICAgICAgblAydHJLZXlwYXRoSW5wdXRzOiBudW1iZXIsXG4gICAgICBuUDJ0clNjcmlwdFBhdGhMZXZlbDFJbnB1dHM6IG51bWJlcixcbiAgICAgIG5QMnRyU2NyaXB0UGF0aExldmVsMklucHV0czogbnVtYmVyLFxuICAgICAgbk91dHB1dHM6IG51bWJlclxuICAgICk6IERpbWVuc2lvbnMge1xuICAgICAgcmV0dXJuIERpbWVuc2lvbnMuc3VtKFxuICAgICAgICB7XG4gICAgICAgICAgblAydHJLZXlwYXRoSW5wdXRzLFxuICAgICAgICAgIG5QMnRyU2NyaXB0UGF0aExldmVsMUlucHV0cyxcbiAgICAgICAgICBuUDJ0clNjcmlwdFBhdGhMZXZlbDJJbnB1dHMsXG4gICAgICAgIH0sXG4gICAgICAgIGdldE91dHB1dERpbWVuc2lvbnNGb3JVbnNwZW50VHlwZShVbnNwZW50VHlwZVB1YktleUhhc2gucDJwa2gpLnRpbWVzKG5PdXRwdXRzKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCB2ZWN0b3JzOiBbRGltZW5zaW9ucywgdW5rbm93bltdXVtdID0gW1xuICAgICAgW2RpbSgxLCAwLCAwLCAxKSwgW2ZhbHNlLCAxMCwgMjk4LCAzNCwgMzQyXV0sXG4gICAgICBbZGltKDAsIDEsIDAsIDEpLCBbdHJ1ZSwgMTEsIDE0MCwgMzQsIDE4NV1dLFxuICAgICAgW2RpbSgwLCAwLCAxLCAxKSwgW3RydWUsIDExLCAxMDUsIDM0LCAxNTBdXSxcbiAgICAgIFtkaW0oMiwgMCwgMCwgMSksIFtmYWxzZSwgMTAsIDU5NiwgMzQsIDY0MF1dLFxuICAgICAgW2RpbSgwLCAyLCAwLCAxKSwgW3RydWUsIDExLCAyODAsIDM0LCAzMjVdXSxcbiAgICAgIFtkaW0oMCwgMCwgMiwgMSksIFt0cnVlLCAxMSwgMjEwLCAzNCwgMjU1XV0sXG4gICAgICBbZGltKDEsIDEsIDEsIDEpLCBbdHJ1ZSwgMTEsIDU0MywgMzQsIDU4OF1dLFxuICAgICAgW2RpbSgxLCAxLCAxLCAyKSwgW3RydWUsIDExLCA1NDMsIDY4LCA2MjJdXSxcblxuICAgICAgW2RpbVAydHIoMSwgMCwgMCwgMSksIFt0cnVlLCAxMSwgNTgsIDM0LCAxMDNdXSxcbiAgICAgIFtkaW1QMnRyKDAsIDEsIDAsIDEpLCBbdHJ1ZSwgMTEsIDEwOCwgMzQsIDE1M11dLFxuICAgICAgW2RpbVAydHIoMCwgMCwgMSwgMSksIFt0cnVlLCAxMSwgMTE2LCAzNCwgMTYxXV0sXG4gICAgXTtcblxuICAgIHZlY3RvcnMuZm9yRWFjaCgoW2RpbWVuc2lvbnMsIHByb3BzXSkgPT4ge1xuICAgICAgW1xuICAgICAgICBkaW1lbnNpb25zLmlzU2Vnd2l0KCksXG4gICAgICAgIGRpbWVuc2lvbnMuZ2V0T3ZlcmhlYWRWU2l6ZSgpLFxuICAgICAgICBkaW1lbnNpb25zLmdldElucHV0c1ZTaXplKCksXG4gICAgICAgIGRpbWVuc2lvbnMuZ2V0T3V0cHV0c1ZTaXplKCksXG4gICAgICAgIGRpbWVuc2lvbnMuZ2V0VlNpemUoKSxcbiAgICAgIF0uc2hvdWxkLmVxbChwcm9wcyk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -11,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
11
15
|
}) : function(o, v) {
|
|
12
16
|
o["default"] = v;
|
|
13
17
|
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
21
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
36
|
const assert = __importStar(require("assert"));
|
|
23
37
|
const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
|
|
@@ -33,7 +47,7 @@ describe('Input Script Sizes (Worst-Case)', function () {
|
|
|
33
47
|
const cosignerName = signKeys.length > 1 ? signKeys[1] : signerName;
|
|
34
48
|
const inputScriptTypes = Array.from({ length: inputCount }).fill(inputType);
|
|
35
49
|
const outputScriptTypes = [testutils_1.UnspentTypeScript2of3.p2sh];
|
|
36
|
-
return testutils_1.getSignedTransaction(rootWalletKeys, signerName, cosignerName, inputScriptTypes, outputScriptTypes).ins.reduce((a, b) => (inputWeights_1.getInputWeight(a) > inputWeights_1.getInputWeight(b) ? a : b));
|
|
50
|
+
return (0, testutils_1.getSignedTransaction)(rootWalletKeys, signerName, cosignerName, inputScriptTypes, outputScriptTypes).ins.reduce((a, b) => ((0, inputWeights_1.getInputWeight)(a) > (0, inputWeights_1.getInputWeight)(b) ? a : b));
|
|
37
51
|
}
|
|
38
52
|
function getInputComponents(input) {
|
|
39
53
|
const decompiled = utxolib.script.decompile(input.script);
|
|
@@ -44,7 +58,7 @@ describe('Input Script Sizes (Worst-Case)', function () {
|
|
|
44
58
|
if (!Buffer.isBuffer(v)) {
|
|
45
59
|
return { length: 1 };
|
|
46
60
|
}
|
|
47
|
-
return { length: v.length + scriptSizes_1.pushdataEncodingLength(v.length) };
|
|
61
|
+
return { length: v.length + (0, scriptSizes_1.pushdataEncodingLength)(v.length) };
|
|
48
62
|
});
|
|
49
63
|
const witness = (input.witness || []).map((v) => ({ length: v.length }));
|
|
50
64
|
const scriptSize = script.reduce((a, b) => a + b.length, 0);
|
|
@@ -97,11 +111,11 @@ describe('Input Script Sizes (Worst-Case)', function () {
|
|
|
97
111
|
const input = getLargestInputWithType(inputType, signKeys, inputType === 'p2tr' || inputType === 'p2trMusig2' || inputType === 'taprootKeyPathSpend' ? 10 : 100);
|
|
98
112
|
const components = getInputComponents(input);
|
|
99
113
|
assert.deepStrictEqual(components, expectedComponents);
|
|
100
|
-
assert.strictEqual(inputWeights_1.getInputComponentsWeight(components), inputWeights_1.getInputWeight(input));
|
|
114
|
+
assert.strictEqual((0, inputWeights_1.getInputComponentsWeight)(components), (0, inputWeights_1.getInputWeight)(input));
|
|
101
115
|
});
|
|
102
116
|
});
|
|
103
117
|
}
|
|
104
|
-
testutils_1.getInputScriptTypes().forEach((inputType) => {
|
|
118
|
+
(0, testutils_1.getInputScriptTypes)().forEach((inputType) => {
|
|
105
119
|
if (inputType !== 'p2trMusig2') {
|
|
106
120
|
runTestComponentSizes(inputType, inputType === 'p2shP2pk' ? ['user'] : ['user', 'bitgo']);
|
|
107
121
|
}
|
|
@@ -110,4 +124,4 @@ describe('Input Script Sizes (Worst-Case)', function () {
|
|
|
110
124
|
}
|
|
111
125
|
});
|
|
112
126
|
});
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRXZWlnaHRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC9zaWduZWRUeC9pbnB1dFdlaWdodHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQWlDO0FBR2pDLDhEQUFnRDtBQUNoRCxtREFBNkQ7QUFDN0QseURBV2dDO0FBQ2hDLHVEQUErRDtBQUMvRCw0Q0FNc0I7QUFFdEIsUUFBUSxDQUFDLGlDQUFpQyxFQUFFO0lBQzFDLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLGdCQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFxQixDQUFDO0lBQ3JHLE1BQU0sY0FBYyxHQUFHLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFckYsU0FBUyx1QkFBdUIsQ0FDOUIsU0FBaUIsRUFDakIsUUFBaUMsRUFDakMsVUFBVSxHQUFHLEdBQUc7UUFFaEIsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9CLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztRQUNwRSxNQUFNLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFzQixD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QUMsQ0FBQyxTQUFpQixFQUFFLEVBQUU7UUFDbEQsSUFBSSxTQUFTLEtBQUssWUFBWSxFQUFFO1lBQzlCLHFCQUFxQixDQUFDLFNBQVMsRUFBRSxTQUFTLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1NBQzNGO1FBQ0QsSUFBSSxTQUFTLEtBQUssVUFBVSxJQUFJLFNBQVMsS0FBSyxxQkFBcUIsRUFBRTtZQUNuRSxxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztTQUN0RDtJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0ICogYXMgbW9jaGEgZnJvbSAnbW9jaGEnO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBiaXAzMiwgQklQMzJJbnRlcmZhY2UgfSBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQge1xuICBnZXRJbnB1dENvbXBvbmVudHNXZWlnaHQsXG4gIGdldElucHV0V2VpZ2h0LFxuICBJbnB1dENvbXBvbmVudHMsXG4gIGlucHV0Q29tcG9uZW50c1Ayc2gsXG4gIGlucHV0Q29tcG9uZW50c1Ayc2hQMnBrLFxuICBpbnB1dENvbXBvbmVudHNQMnNoUDJ3c2gsXG4gIGlucHV0Q29tcG9uZW50c1AydHJLZXlTcGVuZCxcbiAgaW5wdXRDb21wb25lbnRzUDJ0clNjcmlwdFNwZW5kTGV2ZWwxLFxuICBpbnB1dENvbXBvbmVudHNQMnRyU2NyaXB0U3BlbmRMZXZlbDIsXG4gIGlucHV0Q29tcG9uZW50c1Ayd3NoLFxufSBmcm9tICcuLi8uLi9zcmMvaW5wdXRXZWlnaHRzJztcbmltcG9ydCB7IHB1c2hkYXRhRW5jb2RpbmdMZW5ndGggfSBmcm9tICcuLi8uLi9zcmMvc2NyaXB0U2l6ZXMnO1xuaW1wb3J0IHtcbiAgZ2V0SW5wdXRTY3JpcHRUeXBlcyxcbiAgZ2V0U2lnbmVkVHJhbnNhY3Rpb24sXG4gIElucHV0U2NyaXB0VHlwZSxcbiAgVGVzdFVuc3BlbnRUeXBlLFxuICBVbnNwZW50VHlwZVNjcmlwdDJvZjMsXG59IGZyb20gJy4uL3Rlc3R1dGlscyc7XG5cbmRlc2NyaWJlKCdJbnB1dCBTY3JpcHQgU2l6ZXMgKFdvcnN0LUNhc2UpJywgZnVuY3Rpb24gKCkge1xuICBjb25zdCBrZXlzID0gWzEsIDIsIDNdLm1hcCgodikgPT4gYmlwMzIuZnJvbVNlZWQoQnVmZmVyLmFsbG9jKDE2LCBgdGVzdC8ke3Z9YCkpKSBhcyBCSVAzMkludGVyZmFjZVtdO1xuICBjb25zdCByb290V2FsbGV0S2V5cyA9IG5ldyB1dHhvbGliLmJpdGdvLlJvb3RXYWxsZXRLZXlzKFtrZXlzWzBdLCBrZXlzWzFdLCBrZXlzWzJdXSk7XG5cbiAgZnVuY3Rpb24gZ2V0TGFyZ2VzdElucHV0V2l0aFR5cGUoXG4gICAgaW5wdXRUeXBlOiBzdHJpbmcsXG4gICAgc2lnbktleXM6IHV0eG9saWIuYml0Z28uS2V5TmFtZVtdLFxuICAgIGlucHV0Q291bnQgPSAxMDBcbiAgKTogdXR4b2xpYi5UeElucHV0IHtcbiAgICBjb25zdCBzaWduZXJOYW1lID0gc2lnbktleXNbMF07XG4gICAgY29uc3QgY29zaWduZXJOYW1lID0gc2lnbktleXMubGVuZ3RoID4gMSA/IHNpZ25LZXlzWzFdIDogc2lnbmVyTmFtZTtcbiAgICBjb25zdCBpbnB1dFNjcmlwdFR5cGVzID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogaW5wdXRDb3VudCB9KS5maWxsKGlucHV0VHlwZSkgYXMgSW5wdXRTY3JpcHRUeXBlW107XG4gICAgY29uc3Qgb3V0cHV0U2NyaXB0VHlwZXMgPSBbVW5zcGVudFR5cGVTY3JpcHQyb2YzLnAyc2hdIGFzIFRlc3RVbnNwZW50VHlwZVtdO1xuICAgIHJldHVybiBnZXRTaWduZWRUcmFuc2FjdGlvbihcbiAgICAgIHJvb3RXYWxsZXRLZXlzLFxuICAgICAgc2lnbmVyTmFtZSxcbiAgICAgIGNvc2lnbmVyTmFtZSxcbiAgICAgIGlucHV0U2NyaXB0VHlwZXMsXG4gICAgICBvdXRwdXRTY3JpcHRUeXBlc1xuICAgICkuaW5zLnJlZHVjZSgoYSwgYikgPT4gKGdldElucHV0V2VpZ2h0KGEpID4gZ2V0SW5wdXRXZWlnaHQoYikgPyBhIDogYikpO1xuICB9XG5cbiAgZnVuY3Rpb24gZ2V0SW5wdXRDb21wb25lbnRzKGlucHV0OiB1dHhvbGliLlR4SW5wdXQpOiBJbnB1dENvbXBvbmVudHMge1xuICAgIGNvbnN0IGRlY29tcGlsZWQgPSB1dHhvbGliLnNjcmlwdC5kZWNvbXBpbGUoaW5wdXQuc2NyaXB0KTtcbiAgICBpZiAoIWRlY29tcGlsZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigpO1xuICAgIH1cblxuICAgIGNvbnN0IHNjcmlwdCA9IGRlY29tcGlsZWQubWFwKCh2KSA9PiB7XG4gICAgICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcih2KSkge1xuICAgICAgICByZXR1cm4geyBsZW5ndGg6IDEgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7IGxlbmd0aDogdi5sZW5ndGggKyBwdXNoZGF0YUVuY29kaW5nTGVuZ3RoKHYubGVuZ3RoKSB9O1xuICAgIH0pO1xuICAgIGNvbnN0IHdpdG5lc3MgPSAoaW5wdXQud2l0bmVzcyB8fCBbXSkubWFwKCh2KSA9PiAoeyBsZW5ndGg6IHYubGVuZ3RoIH0pKTtcblxuICAgIGNvbnN0IHNjcmlwdFNpemUgPSBzY3JpcHQucmVkdWNlKChhLCBiKSA9PiBhICsgYi5sZW5ndGgsIDApO1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChzY3JpcHRTaXplLCBpbnB1dC5zY3JpcHQubGVuZ3RoLCB1dHhvbGliLnNjcmlwdC50b0FTTShkZWNvbXBpbGVkKSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc2NyaXB0OiBzY3JpcHQubWFwKCh2KSA9PiB2Lmxlbmd0aCksXG4gICAgICB3aXRuZXNzOiB3aXRuZXNzLm1hcCgodikgPT4gdi5sZW5ndGgpLFxuICAgIH07XG4gIH1cblxuICBmdW5jdGlvbiBydW5UZXN0Q29tcG9uZW50U2l6ZXMoaW5wdXRUeXBlOiBzdHJpbmcsIHNpZ25LZXlzOiB1dHhvbGliLmJpdGdvLktleU5hbWVbXSkge1xuICAgIGNvbnN0IHNpZ25LZXlzU3RyID0gc2lnbktleXMuam9pbignLCcpO1xuXG4gICAgZGVzY3JpYmUoYGlucHV0VHlwZT0ke2lucHV0VHlwZX0gc2lnbktleXM9JHtzaWduS2V5c1N0cn1gLCBmdW5jdGlvbiAoKSB7XG4gICAgICBpdChgY29tcG9uZW50IHNpemVzYCwgZnVuY3Rpb24gKHRoaXM6IG1vY2hhLkNvbnRleHQpIHtcbiAgICAgICAgdGhpcy50aW1lb3V0KDEwXzAwMCk7XG4gICAgICAgIGxldCBleHBlY3RlZENvbXBvbmVudHM7XG4gICAgICAgIHN3aXRjaCAoaW5wdXRUeXBlKSB7XG4gICAgICAgICAgY2FzZSAncDJzaCc6XG4gICAgICAgICAgICBleHBlY3RlZENvbXBvbmVudHMgPSBpbnB1dENvbXBvbmVudHNQMnNoO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAncDJzaFAyd3NoJzpcbiAgICAgICAgICAgIGV4cGVjdGVkQ29tcG9uZW50cyA9IGlucHV0Q29tcG9uZW50c1Ayc2hQMndzaDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ3Ayd3NoJzpcbiAgICAgICAgICAgIGV4cGVjdGVkQ29tcG9uZW50cyA9IGlucHV0Q29tcG9uZW50c1Ayd3NoO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAncDJzaFAycGsnOlxuICAgICAgICAgICAgZXhwZWN0ZWRDb21wb25lbnRzID0gaW5wdXRDb21wb25lbnRzUDJzaFAycGs7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdwMnRyJzpcbiAgICAgICAgICAgIGlmIChzaWduS2V5c1sxXSA9PT0gJ2JpdGdvJykge1xuICAgICAgICAgICAgICBleHBlY3RlZENvbXBvbmVudHMgPSBpbnB1dENvbXBvbmVudHNQMnRyU2NyaXB0U3BlbmRMZXZlbDE7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHNpZ25LZXlzWzFdID09PSAnYmFja3VwJykge1xuICAgICAgICAgICAgICBleHBlY3RlZENvbXBvbmVudHMgPSBpbnB1dENvbXBvbmVudHNQMnRyU2NyaXB0U3BlbmRMZXZlbDI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHVuZXhwZWN0ZWQgY29zaWduZXJgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ3AydHJNdXNpZzInOlxuICAgICAgICAgICAgLy8gYXNzdW1lcyBvbmx5IHNjcmlwdCBwYXRoXG4gICAgICAgICAgICBleHBlY3RlZENvbXBvbmVudHMgPSBpbnB1dENvbXBvbmVudHNQMnRyU2NyaXB0U3BlbmRMZXZlbDE7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICd0YXByb290S2V5UGF0aFNwZW5kJzpcbiAgICAgICAgICAgIGV4cGVjdGVkQ29tcG9uZW50cyA9IGlucHV0Q29tcG9uZW50c1AydHJLZXlTcGVuZDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgaW5wdXRUeXBlICR7aW5wdXRUeXBlfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaW5wdXQgPSBnZXRMYXJnZXN0SW5wdXRXaXRoVHlwZShcbiAgICAgICAgICBpbnB1dFR5cGUsXG4gICAgICAgICAgc2lnbktleXMsXG4gICAgICAgICAgaW5wdXRUeXBlID09PSAncDJ0cicgfHwgaW5wdXRUeXBlID09PSAncDJ0ck11c2lnMicgfHwgaW5wdXRUeXBlID09PSAndGFwcm9vdEtleVBhdGhTcGVuZCcgPyAxMCA6IDEwMFxuICAgICAgICApO1xuICAgICAgICBjb25zdCBjb21wb25lbnRzID0gZ2V0SW5wdXRDb21wb25lbnRzKGlucHV0KTtcbiAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb21wb25lbnRzLCBleHBlY3RlZENvbXBvbmVudHMpO1xuICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ2V0SW5wdXRDb21wb25lbnRzV2VpZ2h0KGNvbXBvbmVudHMpLCBnZXRJbnB1dFdlaWdodChpbnB1dCkpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBnZXRJbnB1dFNjcmlwdFR5cGVzKCkuZm9yRWFjaCgoaW5wdXRUeXBlOiBzdHJpbmcpID0+IHtcbiAgICBpZiAoaW5wdXRUeXBlICE9PSAncDJ0ck11c2lnMicpIHtcbiAgICAgIHJ1blRlc3RDb21wb25lbnRTaXplcyhpbnB1dFR5cGUsIGlucHV0VHlwZSA9PT0gJ3Ayc2hQMnBrJyA/IFsndXNlciddIDogWyd1c2VyJywgJ2JpdGdvJ10pO1xuICAgIH1cbiAgICBpZiAoaW5wdXRUeXBlICE9PSAncDJzaFAycGsnICYmIGlucHV0VHlwZSAhPT0gJ3RhcHJvb3RLZXlQYXRoU3BlbmQnKSB7XG4gICAgICBydW5UZXN0Q29tcG9uZW50U2l6ZXMoaW5wdXRUeXBlLCBbJ3VzZXInLCAnYmFja3VwJ10pO1xuICAgIH1cbiAgfSk7XG59KTtcbiJdfQ==
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRXZWlnaHRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC9zaWduZWRUeC9pbnB1dFdlaWdodHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBaUM7QUFHakMsOERBQWdEO0FBQ2hELG1EQUE2RDtBQUM3RCx5REFXZ0M7QUFDaEMsdURBQStEO0FBQy9ELDRDQU1zQjtBQUV0QixRQUFRLENBQUMsaUNBQWlDLEVBQUU7SUFDMUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsZ0JBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQXFCLENBQUM7SUFDckcsTUFBTSxjQUFjLEdBQUcsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVyRixTQUFTLHVCQUF1QixDQUM5QixTQUFpQixFQUNqQixRQUFpQyxFQUNqQyxVQUFVLEdBQUcsR0FBRztRQUVoQixNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0IsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO1FBQ3BFLE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FB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RUFBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ2xGLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBQSwrQkFBbUIsR0FBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQWlCLEVBQUUsRUFBRTtRQUNsRCxJQUFJLFNBQVMsS0FBSyxZQUFZLEVBQUUsQ0FBQztZQUMvQixxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsU0FBUyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUM1RixDQUFDO1FBQ0QsSUFBSSxTQUFTLEtBQUssVUFBVSxJQUFJLFNBQVMsS0FBSyxxQkFBcUIsRUFBRSxDQUFDO1lBQ3BFLHFCQUFxQixDQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCAqIGFzIG1vY2hhIGZyb20gJ21vY2hhJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0IHsgYmlwMzIsIEJJUDMySW50ZXJmYWNlIH0gZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0IHtcbiAgZ2V0SW5wdXRDb21wb25lbnRzV2VpZ2h0LFxuICBnZXRJbnB1dFdlaWdodCxcbiAgSW5wdXRDb21wb25lbnRzLFxuICBpbnB1dENvbXBvbmVudHNQMnNoLFxuICBpbnB1dENvbXBvbmVudHNQMnNoUDJwayxcbiAgaW5wdXRDb21wb25lbnRzUDJzaFAyd3NoLFxuICBpbnB1dENvbXBvbmVudHNQMnRyS2V5U3BlbmQsXG4gIGlucHV0Q29tcG9uZW50c1AydHJTY3JpcHRTcGVuZExldmVsMSxcbiAgaW5wdXRDb21wb25lbnRzUDJ0clNjcmlwdFNwZW5kTGV2ZWwyLFxuICBpbnB1dENvbXBvbmVudHNQMndzaCxcbn0gZnJvbSAnLi4vLi4vc3JjL2lucHV0V2VpZ2h0cyc7XG5pbXBvcnQgeyBwdXNoZGF0YUVuY29kaW5nTGVuZ3RoIH0gZnJvbSAnLi4vLi4vc3JjL3NjcmlwdFNpemVzJztcbmltcG9ydCB7XG4gIGdldElucHV0U2NyaXB0VHlwZXMsXG4gIGdldFNpZ25lZFRyYW5zYWN0aW9uLFxuICBJbnB1dFNjcmlwdFR5cGUsXG4gIFRlc3RVbnNwZW50VHlwZSxcbiAgVW5zcGVudFR5cGVTY3JpcHQyb2YzLFxufSBmcm9tICcuLi90ZXN0dXRpbHMnO1xuXG5kZXNjcmliZSgnSW5wdXQgU2NyaXB0IFNpemVzIChXb3JzdC1DYXNlKScsIGZ1bmN0aW9uICgpIHtcbiAgY29uc3Qga2V5cyA9IFsxLCAyLCAzXS5tYXAoKHYpID0+IGJpcDMyLmZyb21TZWVkKEJ1ZmZlci5hbGxvYygxNiwgYHRlc3QvJHt2fWApKSkgYXMgQklQMzJJbnRlcmZhY2VbXTtcbiAgY29uc3Qgcm9vdFdhbGxldEtleXMgPSBuZXcgdXR4b2xpYi5iaXRnby5Sb290V2FsbGV0S2V5cyhba2V5c1swXSwga2V5c1sxXSwga2V5c1syXV0pO1xuXG4gIGZ1bmN0aW9uIGdldExhcmdlc3RJbnB1dFdpdGhUeXBlKFxuICAgIGlucHV0VHlwZTogc3RyaW5nLFxuICAgIHNpZ25LZXlzOiB1dHhvbGliLmJpdGdvLktleU5hbWVbXSxcbiAgICBpbnB1dENvdW50ID0gMTAwXG4gICk6IHV0eG9saWIuVHhJbnB1dCB7XG4gICAgY29uc3Qgc2lnbmVyTmFtZSA9IHNpZ25LZXlzWzBdO1xuICAgIGNvbnN0IGNvc2lnbmVyTmFtZSA9IHNpZ25LZXlzLmxlbmd0aCA+IDEgPyBzaWduS2V5c1sxXSA6IHNpZ25lck5hbWU7XG4gICAgY29uc3QgaW5wdXRTY3JpcHRUeXBlcyA9IEFycmF5LmZyb20oeyBsZW5ndGg6IGlucHV0Q291bnQgfSkuZmlsbChpbnB1dFR5cGUpIGFzIElucHV0U2NyaXB0VHlwZVtdO1xuICAgIGNvbnN0IG91dHB1dFNjcmlwdFR5cGVzID0gW1Vuc3BlbnRUeXBlU2NyaXB0Mm9mMy5wMnNoXSBhcyBUZXN0VW5zcGVudFR5cGVbXTtcbiAgICByZXR1cm4gZ2V0U2lnbmVkVHJhbnNhY3Rpb24oXG4gICAgICByb290V2FsbGV0S2V5cyxcbiAgICAgIHNpZ25lck5hbWUsXG4gICAgICBjb3NpZ25lck5hbWUsXG4gICAgICBpbnB1dFNjcmlwdFR5cGVzLFxuICAgICAgb3V0cHV0U2NyaXB0VHlwZXNcbiAgICApLmlucy5yZWR1Y2UoKGEsIGIpID0+IChnZXRJbnB1dFdlaWdodChhKSA+IGdldElucHV0V2VpZ2h0KGIpID8gYSA6IGIpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGdldElucHV0Q29tcG9uZW50cyhpbnB1dDogdXR4b2xpYi5UeElucHV0KTogSW5wdXRDb21wb25lbnRzIHtcbiAgICBjb25zdCBkZWNvbXBpbGVkID0gdXR4b2xpYi5zY3JpcHQuZGVjb21waWxlKGlucHV0LnNjcmlwdCk7XG4gICAgaWYgKCFkZWNvbXBpbGVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoKTtcbiAgICB9XG5cbiAgICBjb25zdCBzY3JpcHQgPSBkZWNvbXBpbGVkLm1hcCgodikgPT4ge1xuICAgICAgaWYgKCFCdWZmZXIuaXNCdWZmZXIodikpIHtcbiAgICAgICAgcmV0dXJuIHsgbGVuZ3RoOiAxIH07XG4gICAgICB9XG4gICAgICByZXR1cm4geyBsZW5ndGg6IHYubGVuZ3RoICsgcHVzaGRhdGFFbmNvZGluZ0xlbmd0aCh2Lmxlbmd0aCkgfTtcbiAgICB9KTtcbiAgICBjb25zdCB3aXRuZXNzID0gKGlucHV0LndpdG5lc3MgfHwgW10pLm1hcCgodikgPT4gKHsgbGVuZ3RoOiB2Lmxlbmd0aCB9KSk7XG5cbiAgICBjb25zdCBzY3JpcHRTaXplID0gc2NyaXB0LnJlZHVjZSgoYSwgYikgPT4gYSArIGIubGVuZ3RoLCAwKTtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2NyaXB0U2l6ZSwgaW5wdXQuc2NyaXB0Lmxlbmd0aCwgdXR4b2xpYi5zY3JpcHQudG9BU00oZGVjb21waWxlZCkpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHNjcmlwdDogc2NyaXB0Lm1hcCgodikgPT4gdi5sZW5ndGgpLFxuICAgICAgd2l0bmVzczogd2l0bmVzcy5tYXAoKHYpID0+IHYubGVuZ3RoKSxcbiAgICB9O1xuICB9XG5cbiAgZnVuY3Rpb24gcnVuVGVzdENvbXBvbmVudFNpemVzKGlucHV0VHlwZTogc3RyaW5nLCBzaWduS2V5czogdXR4b2xpYi5iaXRnby5LZXlOYW1lW10pIHtcbiAgICBjb25zdCBzaWduS2V5c1N0ciA9IHNpZ25LZXlzLmpvaW4oJywnKTtcblxuICAgIGRlc2NyaWJlKGBpbnB1dFR5cGU9JHtpbnB1dFR5cGV9IHNpZ25LZXlzPSR7c2lnbktleXNTdHJ9YCwgZnVuY3Rpb24gKCkge1xuICAgICAgaXQoYGNvbXBvbmVudCBzaXplc2AsIGZ1bmN0aW9uICh0aGlzOiBtb2NoYS5Db250ZXh0KSB7XG4gICAgICAgIHRoaXMudGltZW91dCgxMF8wMDApO1xuICAgICAgICBsZXQgZXhwZWN0ZWRDb21wb25lbnRzO1xuICAgICAgICBzd2l0Y2ggKGlucHV0VHlwZSkge1xuICAgICAgICAgIGNhc2UgJ3Ayc2gnOlxuICAgICAgICAgICAgZXhwZWN0ZWRDb21wb25lbnRzID0gaW5wdXRDb21wb25lbnRzUDJzaDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ3Ayc2hQMndzaCc6XG4gICAgICAgICAgICBleHBlY3RlZENvbXBvbmVudHMgPSBpbnB1dENvbXBvbmVudHNQMnNoUDJ3c2g7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdwMndzaCc6XG4gICAgICAgICAgICBleHBlY3RlZENvbXBvbmVudHMgPSBpbnB1dENvbXBvbmVudHNQMndzaDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ3Ayc2hQMnBrJzpcbiAgICAgICAgICAgIGV4cGVjdGVkQ29tcG9uZW50cyA9IGlucHV0Q29tcG9uZW50c1Ayc2hQMnBrO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAncDJ0cic6XG4gICAgICAgICAgICBpZiAoc2lnbktleXNbMV0gPT09ICdiaXRnbycpIHtcbiAgICAgICAgICAgICAgZXhwZWN0ZWRDb21wb25lbnRzID0gaW5wdXRDb21wb25lbnRzUDJ0clNjcmlwdFNwZW5kTGV2ZWwxO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChzaWduS2V5c1sxXSA9PT0gJ2JhY2t1cCcpIHtcbiAgICAgICAgICAgICAgZXhwZWN0ZWRDb21wb25lbnRzID0gaW5wdXRDb21wb25lbnRzUDJ0clNjcmlwdFNwZW5kTGV2ZWwyO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bmV4cGVjdGVkIGNvc2lnbmVyYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdwMnRyTXVzaWcyJzpcbiAgICAgICAgICAgIC8vIGFzc3VtZXMgb25seSBzY3JpcHQgcGF0aFxuICAgICAgICAgICAgZXhwZWN0ZWRDb21wb25lbnRzID0gaW5wdXRDb21wb25lbnRzUDJ0clNjcmlwdFNwZW5kTGV2ZWwxO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAndGFwcm9vdEtleVBhdGhTcGVuZCc6XG4gICAgICAgICAgICBleHBlY3RlZENvbXBvbmVudHMgPSBpbnB1dENvbXBvbmVudHNQMnRyS2V5U3BlbmQ7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIGlucHV0VHlwZSAke2lucHV0VHlwZX1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGlucHV0ID0gZ2V0TGFyZ2VzdElucHV0V2l0aFR5cGUoXG4gICAgICAgICAgaW5wdXRUeXBlLFxuICAgICAgICAgIHNpZ25LZXlzLFxuICAgICAgICAgIGlucHV0VHlwZSA9PT0gJ3AydHInIHx8IGlucHV0VHlwZSA9PT0gJ3AydHJNdXNpZzInIHx8IGlucHV0VHlwZSA9PT0gJ3RhcHJvb3RLZXlQYXRoU3BlbmQnID8gMTAgOiAxMDBcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50cyA9IGdldElucHV0Q29tcG9uZW50cyhpbnB1dCk7XG4gICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29tcG9uZW50cywgZXhwZWN0ZWRDb21wb25lbnRzKTtcbiAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdldElucHV0Q29tcG9uZW50c1dlaWdodChjb21wb25lbnRzKSwgZ2V0SW5wdXRXZWlnaHQoaW5wdXQpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0SW5wdXRTY3JpcHRUeXBlcygpLmZvckVhY2goKGlucHV0VHlwZTogc3RyaW5nKSA9PiB7XG4gICAgaWYgKGlucHV0VHlwZSAhPT0gJ3AydHJNdXNpZzInKSB7XG4gICAgICBydW5UZXN0Q29tcG9uZW50U2l6ZXMoaW5wdXRUeXBlLCBpbnB1dFR5cGUgPT09ICdwMnNoUDJwaycgPyBbJ3VzZXInXSA6IFsndXNlcicsICdiaXRnbyddKTtcbiAgICB9XG4gICAgaWYgKGlucHV0VHlwZSAhPT0gJ3Ayc2hQMnBrJyAmJiBpbnB1dFR5cGUgIT09ICd0YXByb290S2V5UGF0aFNwZW5kJykge1xuICAgICAgcnVuVGVzdENvbXBvbmVudFNpemVzKGlucHV0VHlwZSwgWyd1c2VyJywgJ2JhY2t1cCddKTtcbiAgICB9XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import * as utxolib from '@bitgo-beta/utxo-lib';
|
|
2
|
-
export
|
|
2
|
+
export type InputScriptType = utxolib.bitgo.outputScripts.ScriptType | 'taprootKeyPathSpend';
|
|
3
3
|
//# sourceMappingURL=txCombinations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"txCombinations.d.ts","sourceRoot":"","sources":["../../../test/signedTx/txCombinations.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,
|
|
1
|
+
{"version":3,"file":"txCombinations.d.ts","sourceRoot":"","sources":["../../../test/signedTx/txCombinations.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,GAAG,qBAAqB,CAAC"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -11,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
11
15
|
}) : function(o, v) {
|
|
12
16
|
o["default"] = v;
|
|
13
17
|
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
21
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
37
|
};
|
|
@@ -50,7 +64,7 @@ const testDimensionsFromTx = (txCombo) => {
|
|
|
50
64
|
it(`calculates dimensions for signed input of transaction`, function () {
|
|
51
65
|
const signedTx = txCombo.getSignedTx();
|
|
52
66
|
// test Dimensions.fromInput()
|
|
53
|
-
inputTypes.forEach((input, i) => src_1.Dimensions.fromInput(signedTx.ins[i]).should.eql(src_1.Dimensions.sum(testutils_1.getInputDimensionsForUnspentType(input))));
|
|
67
|
+
inputTypes.forEach((input, i) => src_1.Dimensions.fromInput(signedTx.ins[i]).should.eql(src_1.Dimensions.sum((0, testutils_1.getInputDimensionsForUnspentType)(input))));
|
|
54
68
|
});
|
|
55
69
|
});
|
|
56
70
|
};
|
|
@@ -58,13 +72,13 @@ const testDimensionsFromPsbt = (keys, inputTypes, outputTypes, expectedDims) =>
|
|
|
58
72
|
describe(`Psbt Combination inputs=${inputTypes}; outputs=${outputTypes}`, function () {
|
|
59
73
|
['unsigned', 'halfsigned', 'fullysigned'].forEach((s) => {
|
|
60
74
|
it(`calculates dimensions from ${s} psbt`, function () {
|
|
61
|
-
const dimensions = src_1.Dimensions.fromPsbt(testutils_1.constructPsbt(keys, inputTypes, outputTypes, s));
|
|
75
|
+
const dimensions = src_1.Dimensions.fromPsbt((0, testutils_1.constructPsbt)(keys, inputTypes, outputTypes, s));
|
|
62
76
|
dimensions.should.eql(expectedDims);
|
|
63
77
|
});
|
|
64
78
|
});
|
|
65
79
|
it(`calculates dimensions for signed input of psbt`, function () {
|
|
66
|
-
const signedPsbt = testutils_1.constructPsbt(keys, inputTypes, outputTypes, 'fullysigned');
|
|
67
|
-
inputTypes.forEach((input, i) => src_1.Dimensions.fromPsbtInput(signedPsbt.data.inputs[i]).should.eql(src_1.Dimensions.sum(testutils_1.getInputDimensionsForUnspentType(input))));
|
|
80
|
+
const signedPsbt = (0, testutils_1.constructPsbt)(keys, inputTypes, outputTypes, 'fullysigned');
|
|
81
|
+
inputTypes.forEach((input, i) => src_1.Dimensions.fromPsbtInput(signedPsbt.data.inputs[i]).should.eql(src_1.Dimensions.sum((0, testutils_1.getInputDimensionsForUnspentType)(input))));
|
|
68
82
|
});
|
|
69
83
|
});
|
|
70
84
|
};
|
|
@@ -77,7 +91,7 @@ describe(`Dimensions for transaction combinations`, function () {
|
|
|
77
91
|
outputTypes: [...scriptTypes, ...Object.keys(testutils_1.UnspentTypePubKeyHash)],
|
|
78
92
|
maxNOutputs: 2,
|
|
79
93
|
};
|
|
80
|
-
txGen_1.runCombinations(params, (inputTypeCombo, outputTypeCombo) => {
|
|
94
|
+
(0, txGen_1.runCombinations)(params, (inputTypeCombo, outputTypeCombo) => {
|
|
81
95
|
const expectedInputDims = src_1.Dimensions.sum(...inputTypeCombo.map(testutils_1.getInputDimensionsForUnspentType));
|
|
82
96
|
const expectedOutputDims = src_1.Dimensions.sum(...outputTypeCombo.map(testutils_1.getOutputDimensionsForUnspentType));
|
|
83
97
|
testDimensionsFromTx(new txGen_1.TxCombo(keys, inputTypeCombo, outputTypeCombo, expectedInputDims.plus(expectedOutputDims)));
|
|
@@ -103,7 +117,7 @@ describe(`Dimensions for PSBT combinations`, function () {
|
|
|
103
117
|
psbt.addInput({ hash: Buffer.alloc(32), index: 0 });
|
|
104
118
|
should_1.default.throws(() => src_1.Dimensions.fromPsbt(psbt));
|
|
105
119
|
});
|
|
106
|
-
txGen_1.runCombinations(params, (inputTypeCombo, outputTypeCombo) => {
|
|
120
|
+
(0, txGen_1.runCombinations)(params, (inputTypeCombo, outputTypeCombo) => {
|
|
107
121
|
const expectedInputDims = src_1.Dimensions.sum(...inputTypeCombo.map(testutils_1.getInputDimensionsForUnspentType));
|
|
108
122
|
const expectedOutputDims = src_1.Dimensions.sum(...outputTypeCombo.map(testutils_1.getOutputDimensionsForUnspentType));
|
|
109
123
|
testDimensionsFromPsbt(rootWalletKeys, inputTypeCombo, outputTypeCombo, expectedInputDims.plus(expectedOutputDims));
|
|
@@ -113,4 +127,4 @@ describe(`Dimensions for PSBT combinations`, function () {
|
|
|
113
127
|
testDimensionsFromPsbt(rootWalletKeys, inputTypeCombo, [...outputTypeCombo, ...outputTypeCombo], expectedInputDims.plus(expectedOutputDims).plus(expectedOutputDims));
|
|
114
128
|
});
|
|
115
129
|
});
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhDb21iaW5hdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3NpZ25lZFR4L3R4Q29tYmluYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9EQUE0QjtBQUM1QixtQ0FBdUM7QUFFdkMsNENBUXNCO0FBRXRCLG1DQUFtRDtBQUNuRCw4REFBZ0Q7QUFJaEQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQy9CLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUN0RCxDQUFDO0FBRTlCLE1BQU0sY0FBYyxHQUFHLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFckYsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLE9BQVksRUFBRSxFQUFFO0lBQzVDLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUUxRCxRQUFRLENBQUMsc0JBQXNCLFVBQVUsYUFBYSxXQUFXLEVBQUUsRUFBRTtRQUNuRSxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2xDLE1BQU0sVUFBVSxHQUFHLGdCQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyw2Q0FBaUMsQ0FBQyxDQUFDLENBQUM7UUFFekYsRUFBRSxDQUFDLGlEQUFpRCxFQUFF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QUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuaW1wb3J0IHsgRGltZW5zaW9ucyB9IGZyb20gJy4uLy4uL3NyYyc7XG5cbmltcG9ydCB7XG4gIGNvbnN0cnVjdFBzYnQsXG4gIGdldElucHV0RGltZW5zaW9uc0ZvclVuc3BlbnRUeXBlLFxuICBnZXRPdXRwdXREaW1lbnNpb25zRm9yVW5zcGVudFR5cGUsXG4gIFRlc3RVbnNwZW50VHlwZSxcbiAgVW5zcGVudFR5cGVQMnNoUDJwayxcbiAgVW5zcGVudFR5cGVQdWJLZXlIYXNoLFxuICBVbnNwZW50VHlwZVNjcmlwdDJvZjMsXG59IGZyb20gJy4uL3Rlc3R1dGlscyc7XG5cbmltcG9ydCB7IHJ1bkNvbWJpbmF0aW9ucywgVHhDb21ibyB9IGZyb20gJy4vdHhHZW4nO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5cbmV4cG9ydCB0eXBlIElucHV0U2NyaXB0VHlwZSA9IHV0eG9saWIuYml0Z28ub3V0cHV0U2NyaXB0cy5TY3JpcHRUeXBlIHwgJ3RhcHJvb3RLZXlQYXRoU3BlbmQnO1xuXG5jb25zdCBrZXlzID0gWzEsIDIsIDNdLm1hcCgodikgPT5cbiAgdXR4b2xpYi5iaXAzMi5mcm9tU2VlZChCdWZmZXIuYWxsb2MoMTYsIGB0ZXN0LzIvJHt2fWApLCB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW4pXG4pIGFzIHV0eG9saWIuQklQMzJJbnRlcmZhY2VbXTtcblxuY29uc3Qgcm9vdFdhbGxldEtleXMgPSBuZXcgdXR4b2xpYi5iaXRnby5Sb290V2FsbGV0S2V5cyhba2V5c1swXSwga2V5c1sxXSwga2V5c1syXV0pO1xuXG5jb25zdCB0ZXN0RGltZW5zaW9uc0Zyb21UeCA9ICh0eENvbWJvOiBhbnkpID0+IHtcbiAgY29uc3QgeyBpbnB1dFR5cGVzLCBvdXRwdXRUeXBlcywgZXhwZWN0ZWREaW1zIH0gPSB0eENvbWJvO1xuXG4gIGRlc2NyaWJlKGBDb21iaW5hdGlvbiBpbnB1dHM9JHtpbnB1dFR5cGVzfTsgb3V0cHV0cz0ke291dHB1dFR5cGVzfWAsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBuSW5wdXRzID0gaW5wdXRUeXBlcy5sZW5ndGg7XG4gICAgY29uc3Qgb3V0cHV0RGltcyA9IERpbWVuc2lvbnMuc3VtKC4uLm91dHB1dFR5cGVzLm1hcChnZXRPdXRwdXREaW1lbnNpb25zRm9yVW5zcGVudFR5cGUpKTtcblxuICAgIGl0KGBjYWxjdWxhdGVzIGRpbWVuc2lvbnMgZnJvbSB1bnNpZ25lZCB0cmFuc2FjdGlvbmAsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHVuc2lnbmVkVHggPSB0eENvbWJvLmdldFVuc2lnbmVkVHgoKTtcblxuICAgICAgLy8gZG9lcyBub3Qgd29yayBmb3IgdW5zaWduZWQgdHJhbnNhY3Rpb25zXG4gICAgICBzaG91bGQudGhyb3dzKCgpID0+IERpbWVuc2lvbnMuZnJvbVRyYW5zYWN0aW9uKHVuc2lnbmVkVHgpKTtcblxuICAgICAgLy8gdW5sZXNzIGV4cGxpY2l0bHkgYWxsb3dlZFxuICAgICAgRGltZW5zaW9ucy5mcm9tVHJhbnNhY3Rpb24odW5zaWduZWRUeCwgeyBhc3N1bWVVbnNpZ25lZDogRGltZW5zaW9ucy5BU1NVTUVfUDJTSCB9KS5zaG91bGQuZXFsKFxuICAgICAgICBEaW1lbnNpb25zLnN1bSh7IG5QMnNoSW5wdXRzOiBuSW5wdXRzIH0sIG91dHB1dERpbXMpXG4gICAgICApO1xuXG4gICAgICBEaW1lbnNpb25zLmZyb21UcmFuc2FjdGlvbih1bnNpZ25lZFR4LCB7IGFzc3VtZVVuc2lnbmVkOiBEaW1lbnNpb25zLkFTU1VNRV9QMlNIX1AyV1NIIH0pLnNob3VsZC5lcWwoXG4gICAgICAgIERpbWVuc2lvbnMuc3VtKHsgblAyc2hQMndzaElucHV0czogbklucHV0cyB9LCBvdXRwdXREaW1zKVxuICAgICAgKTtcblxuICAgICAgRGltZW5zaW9ucy5mcm9tVHJhbnNhY3Rpb24odW5zaWduZWRUeCwgeyBhc3N1bWVVbnNpZ25lZDogRGltZW5zaW9ucy5BU1NVTUVfUDJXU0ggfSkuc2hvdWxkLmVxbChcbiAgICAgICAgRGltZW5zaW9ucy5zdW0oeyBuUDJ3c2hJbnB1dHM6IG5JbnB1dHMgfSwgb3V0cHV0RGltcylcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdChgY2FsY3VsYXRlcyBkaW1lbnNpb25zIGZvciBzaWduZWQgdHJhbnNhY3Rpb25gLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBkaW1lbnNpb25zID0gRGltZW5zaW9ucy5mcm9tVHJhbnNhY3Rpb24odHhDb21iby5nZXRTaWduZWRUeCgpKTtcbiAgICAgIGRpbWVuc2lvbnMuc2hvdWxkLmVxbChleHBlY3RlZERpbXMpO1xuICAgIH0pO1xuXG4gICAgaXQoYGNhbGN1bGF0ZXMgZGltZW5zaW9ucyBmb3Igc2lnbmVkIGlucHV0IG9mIHRyYW5zYWN0aW9uYCwgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3Qgc2lnbmVkVHggPSB0eENvbWJvLmdldFNpZ25lZFR4KCk7XG5cbiAgICAgIC8vIHRlc3QgRGltZW5zaW9ucy5mcm9tSW5wdXQoKVxuICAgICAgaW5wdXRUeXBlcy5mb3JFYWNoKChpbnB1dDogYW55LCBpOiBudW1iZXIpID0+XG4gICAgICAgIERpbWVuc2lvbnMuZnJvbUlucHV0KHNpZ25lZFR4Lmluc1tpXSkuc2hvdWxkLmVxbChEaW1lbnNpb25zLnN1bShnZXRJbnB1dERpbWVuc2lvbnNGb3JVbnNwZW50VHlwZShpbnB1dCkpKVxuICAgICAgKTtcbiAgICB9KTtcbiAgfSk7XG59O1xuXG5jb25zdCB0ZXN0RGltZW5zaW9uc0Zyb21Qc2J0ID0gKFxuICBrZXlzOiB1dHhvbGliLmJpdGdvLlJvb3RXYWxsZXRLZXlzLFxuICBpbnB1dFR5cGVzOiBJbnB1dFNjcmlwdFR5cGVbXSxcbiAgb3V0cHV0VHlwZXM6IFRlc3RVbnNwZW50VHlwZVtdLFxuICBleHBlY3RlZERpbXM6IERpbWVuc2lvbnNcbikgPT4ge1xuICBkZXNjcmliZShgUHNidCBDb21iaW5hdGlvbiBpbnB1dHM9JHtpbnB1dFR5cGVzfTsgb3V0cHV0cz0ke291dHB1dFR5cGVzfWAsIGZ1bmN0aW9uICgpIHtcbiAgICAoWyd1bnNpZ25lZCcsICdoYWxmc2lnbmVkJywgJ2Z1bGx5c2lnbmVkJ10gYXMgY29uc3QpLmZvckVhY2goKHMpID0+IHtcbiAgICAgIGl0KGBjYWxjdWxhdGVzIGRpbWVuc2lvbnMgZnJvbSAke3N9IHBzYnRgLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnN0IGRpbWVuc2lvbnMgPSBEaW1lbnNpb25zLmZyb21Qc2J0KGNvbnN0cnVjdFBzYnQoa2V5cywgaW5wdXRUeXBlcywgb3V0cHV0VHlwZXMsIHMpKTtcbiAgICAgICAgZGltZW5zaW9ucy5zaG91bGQuZXFsKGV4cGVjdGVkRGltcyk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KGBjYWxjdWxhdGVzIGRpbWVuc2lvbnMgZm9yIHNpZ25lZCBpbnB1dCBvZiBwc2J0YCwgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3Qgc2lnbmVkUHNidCA9IGNvbnN0cnVjdFBzYnQoa2V5cywgaW5wdXRUeXBlcywgb3V0cHV0VHlwZXMsICdmdWxseXNpZ25lZCcpO1xuXG4gICAgICBpbnB1dFR5cGVzLmZvckVhY2goKGlucHV0OiBhbnksIGk6IG51bWJlcikgPT5cbiAgICAgICAgRGltZW5zaW9ucy5mcm9tUHNidElucHV0KHNpZ25lZFBzYnQuZGF0YS5pbnB1dHNbaV0pLnNob3VsZC5lcWwoXG4gICAgICAgICAgRGltZW5zaW9ucy5zdW0oZ2V0SW5wdXREaW1lbnNpb25zRm9yVW5zcGVudFR5cGUoaW5wdXQpKVxuICAgICAgICApXG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcbn07XG5cbmRlc2NyaWJlKGBEaW1lbnNpb25zIGZvciB0cmFuc2FjdGlvbiBjb21iaW5hdGlvbnNgLCBmdW5jdGlvbiAoKSB7XG4gIC8vIHAydHJNdXNpZzIgaXMgc3VwcG9ydGVkIG9ubHkgd2l0aCBQU0JUXG4gIGNvbnN0IHNjcmlwdFR5cGVzID0gdXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLnNjcmlwdFR5cGVzMk9mMy5maWx0ZXIoKHQpID0+IHQgIT09ICdwMnRyTXVzaWcyJyk7XG4gIGNvbnN0IHBhcmFtcyA9IHtcbiAgICBpbnB1dFR5cGVzOiBbLi4uc2NyaXB0VHlwZXMsIFVuc3BlbnRUeXBlUDJzaFAycGtdIGFzIElucHV0U2NyaXB0VHlwZVtdLFxuICAgIG1heE5JbnB1dHM6IDIsXG4gICAgb3V0cHV0VHlwZXM6IFsuLi5zY3JpcHRUeXBlcywgLi4uT2JqZWN0LmtleXMoVW5zcGVudFR5cGVQdWJLZXlIYXNoKV0gYXMgVGVzdFVuc3BlbnRUeXBlW10sXG4gICAgbWF4Tk91dHB1dHM6IDIsXG4gIH07XG5cbiAgcnVuQ29tYmluYXRpb25zKHBhcmFtcywgKGlucHV0VHlwZUNvbWJvOiBJbnB1dFNjcmlwdFR5cGVbXSwgb3V0cHV0VHlwZUNvbWJvOiBUZXN0VW5zcGVudFR5cGVbXSkgPT4ge1xuICAgIGNvbnN0IGV4cGVjdGVkSW5wdXREaW1zID0gRGltZW5zaW9ucy5zdW0oLi4uaW5wdXRUeXBlQ29tYm8ubWFwKGdldElucHV0RGltZW5zaW9uc0ZvclVuc3BlbnRUeXBlKSk7XG4gICAgY29uc3QgZXhwZWN0ZWRPdXRwdXREaW1zID0gRGltZW5zaW9ucy5zdW0oLi4ub3V0cHV0VHlwZUNvbWJvLm1hcChnZXRPdXRwdXREaW1lbnNpb25zRm9yVW5zcGVudFR5cGUpKTtcblxuICAgIHRlc3REaW1lbnNpb25zRnJvbVR4KFxuICAgICAgbmV3IFR4Q29tYm8oa2V5cywgaW5wdXRUeXBlQ29tYm8sIG91dHB1dFR5cGVDb21ibywgZXhwZWN0ZWRJbnB1dERpbXMucGx1cyhleHBlY3RlZE91dHB1dERpbXMpKVxuICAgICk7XG5cbiAgICAvLyBEb3VibGluZyB0aGUgaW5wdXRzIHNob3VsZCB5aWVsZCB0d2ljZSB0aGUgaW5wdXQgZGltc1xuICAgIHRlc3REaW1lbnNpb25zRnJvbVR4KFxuICAgICAgbmV3IFR4Q29tYm8oXG4gICAgICAgIGtleXMsXG4gICAgICAgIFsuLi5pbnB1dFR5cGVDb21ibywgLi4uaW5wdXRUeXBlQ29tYm9dLFxuICAgICAgICBvdXRwdXRUeXBlQ29tYm8sXG4gICAgICAgIGV4cGVjdGVkSW5wdXREaW1zLnBsdXMoZXhwZWN0ZWRJbnB1dERpbXMpLnBsdXMoZXhwZWN0ZWRPdXRwdXREaW1zKVxuICAgICAgKVxuICAgICk7XG5cbiAgICAvLyBTYW1lIGZvciBvdXRwdXRzXG4gICAgdGVzdERpbWVuc2lvbnNGcm9tVHgoXG4gICAgICBuZXcgVHhDb21ibyhcbiAgICAgICAga2V5cyxcbiAgICAgICAgaW5wdXRUeXBlQ29tYm8sXG4gICAgICAgIFsuLi5vdXRwdXRUeXBlQ29tYm8sIC4uLm91dHB1dFR5cGVDb21ib10sXG4gICAgICAgIGV4cGVjdGVkSW5wdXREaW1zLnBsdXMoZXhwZWN0ZWRPdXRwdXREaW1zKS5wbHVzKGV4cGVjdGVkT3V0cHV0RGltcylcbiAgICAgIClcbiAgICApO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZShgRGltZW5zaW9ucyBmb3IgUFNCVCBjb21iaW5hdGlvbnNgLCBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IHBhcmFtcyA9IHtcbiAgICBpbnB1dFR5cGVzOiBbXG4gICAgICAuLi51dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuc2NyaXB0VHlwZXMyT2YzLFxuICAgICAgdXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLnNjcmlwdFR5cGVQMnNoUDJwayxcbiAgICAgICd0YXByb290S2V5UGF0aFNwZW5kJyxcbiAgICBdIGFzIElucHV0U2NyaXB0VHlwZVtdLFxuICAgIG1heE5JbnB1dHM6IDEsXG4gICAgb3V0cHV0VHlwZXM6IFsuLi5PYmplY3Qua2V5cyhVbnNwZW50VHlwZVNjcmlwdDJvZjMpLCAuLi5PYmplY3Qua2V5cyhVbnNwZW50VHlwZVB1YktleUhhc2gpXSxcbiAgICBtYXhOT3V0cHV0czogMSxcbiAgfTtcblxuICBpdChgZG9lcyBub3Qgd29yayBmb3IgdW5rbm93biBwc2J0IGlucHV0YCwgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHBzYnQgPSB1dHhvbGliLmJpdGdvLmNyZWF0ZVBzYnRGb3JOZXR3b3JrKHsgbmV0d29yazogdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luIH0pO1xuICAgIHBzYnQuYWRkSW5wdXQoeyBoYXNoOiBCdWZmZXIuYWxsb2MoMzIpLCBpbmRleDogMCB9KTtcbiAgICBzaG91bGQudGhyb3dzKCgpID0+IERpbWVuc2lvbnMuZnJvbVBzYnQocHNidCkpO1xuICB9KTtcblxuICBydW5Db21iaW5hdGlvbnMocGFyYW1zLCAoaW5wdXRUeXBlQ29tYm86IElucHV0U2NyaXB0VHlwZVtdLCBvdXRwdXRUeXBlQ29tYm86IFRlc3RVbnNwZW50VHlwZVtdKSA9PiB7XG4gICAgY29uc3QgZXhwZWN0ZWRJbnB1dERpbXMgPSBEaW1lbnNpb25zLnN1bSguLi5pbnB1dFR5cGVDb21iby5tYXAoZ2V0SW5wdXREaW1lbnNpb25zRm9yVW5zcGVudFR5cGUpKTtcbiAgICBjb25zdCBleHBlY3RlZE91dHB1dERpbXMgPSBEaW1lbnNpb25zLnN1bSguLi5vdXRwdXRUeXBlQ29tYm8ubWFwKGdldE91dHB1dERpbWVuc2lvbnNGb3JVbnNwZW50VHlwZSkpO1xuXG4gICAgdGVzdERpbWVuc2lvbnNGcm9tUHNidChyb290V2FsbGV0S2V5cywgaW5wdXRUeXBlQ29tYm8sIG91dHB1dFR5cGVDb21ibywgZXhwZWN0ZWRJbnB1dERpbXMucGx1cyhleHBlY3RlZE91dHB1dERpbXMpKTtcblxuICAgIC8vIERvdWJsaW5nIHRoZSBpbnB1dHMgc2hvdWxkIHlpZWxkIHR3aWNlIHRoZSBpbnB1dCBkaW1zXG4gICAgdGVzdERpbWVuc2lvbnNGcm9tUHNidChcbiAgICAgIHJvb3RXYWxsZXRLZXlzLFxuICAgICAgWy4uLmlucHV0VHlwZUNvbWJvLCAuLi5pbnB1dFR5cGVDb21ib10sXG4gICAgICBvdXRwdXRUeXBlQ29tYm8sXG4gICAgICBleHBlY3RlZElucHV0RGltcy5wbHVzKGV4cGVjdGVkSW5wdXREaW1zKS5wbHVzKGV4cGVjdGVkT3V0cHV0RGltcylcbiAgICApO1xuXG4gICAgLy8gU2FtZSBmb3Igb3V0cHV0c1xuICAgIHRlc3REaW1lbnNpb25zRnJvbVBzYnQoXG4gICAgICByb290V2FsbGV0S2V5cyxcbiAgICAgIGlucHV0VHlwZUNvbWJvLFxuICAgICAgWy4uLm91dHB1dFR5cGVDb21ibywgLi4ub3V0cHV0VHlwZUNvbWJvXSxcbiAgICAgIGV4cGVjdGVkSW5wdXREaW1zLnBsdXMoZXhwZWN0ZWRPdXRwdXREaW1zKS5wbHVzKGV4cGVjdGVkT3V0cHV0RGltcylcbiAgICApO1xuICB9KTtcbn0pO1xuIl19
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhDb21iaW5hdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3NpZ25lZFR4L3R4Q29tYmluYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLG1DQUF1QztBQUV2Qyw0Q0FRc0I7QUFFdEIsbUNBQW1EO0FBQ25ELDhEQUFnRDtBQUloRCxNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDL0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQ3RELENBQUM7QUFFOUIsTUFBTSxjQUFjLEdBQUcsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUVyRixNQUFNLG9CQUFvQixHQUFHLENBQUMsT0FBWSxFQUFFLEVBQUU7SUFDNUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBRTFELFFBQVEsQ0FBQyxzQkFBc0IsVUFBVSxhQUFhLFdBQVcsRUFBRSxFQUFFO1FBQ25FLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDbEMsTUFBTSxVQUFVLEdBQUcsZ0JBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLDZDQUFpQyxDQUFDLENBQUMsQ0FBQztRQUV6RixFQUFFLENB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Q0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FDcEUsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgeyBEaW1lbnNpb25zIH0gZnJvbSAnLi4vLi4vc3JjJztcblxuaW1wb3J0IHtcbiAgY29uc3RydWN0UHNidCxcbiAgZ2V0SW5wdXREaW1lbnNpb25zRm9yVW5zcGVudFR5cGUsXG4gIGdldE91dHB1dERpbWVuc2lvbnNGb3JVbnNwZW50VHlwZSxcbiAgVGVzdFVuc3BlbnRUeXBlLFxuICBVbnNwZW50VHlwZVAyc2hQMnBrLFxuICBVbnNwZW50VHlwZVB1YktleUhhc2gsXG4gIFVuc3BlbnRUeXBlU2NyaXB0Mm9mMyxcbn0gZnJvbSAnLi4vdGVzdHV0aWxzJztcblxuaW1wb3J0IHsgcnVuQ29tYmluYXRpb25zLCBUeENvbWJvIH0gZnJvbSAnLi90eEdlbic7XG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcblxuZXhwb3J0IHR5cGUgSW5wdXRTY3JpcHRUeXBlID0gdXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLlNjcmlwdFR5cGUgfCAndGFwcm9vdEtleVBhdGhTcGVuZCc7XG5cbmNvbnN0IGtleXMgPSBbMSwgMiwgM10ubWFwKCh2KSA9PlxuICB1dHhvbGliLmJpcDMyLmZyb21TZWVkKEJ1ZmZlci5hbGxvYygxNiwgYHRlc3QvMi8ke3Z9YCksIHV0eG9saWIubmV0d29ya3MuYml0Y29pbilcbikgYXMgdXR4b2xpYi5CSVAzMkludGVyZmFjZVtdO1xuXG5jb25zdCByb290V2FsbGV0S2V5cyA9IG5ldyB1dHhvbGliLmJpdGdvLlJvb3RXYWxsZXRLZXlzKFtrZXlzWzBdLCBrZXlzWzFdLCBrZXlzWzJdXSk7XG5cbmNvbnN0IHRlc3REaW1lbnNpb25zRnJvbVR4ID0gKHR4Q29tYm86IGFueSkgPT4ge1xuICBjb25zdCB7IGlucHV0VHlwZXMsIG91dHB1dFR5cGVzLCBleHBlY3RlZERpbXMgfSA9IHR4Q29tYm87XG5cbiAgZGVzY3JpYmUoYENvbWJpbmF0aW9uIGlucHV0cz0ke2lucHV0VHlwZXN9OyBvdXRwdXRzPSR7b3V0cHV0VHlwZXN9YCwgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IG5JbnB1dHMgPSBpbnB1dFR5cGVzLmxlbmd0aDtcbiAgICBjb25zdCBvdXRwdXREaW1zID0gRGltZW5zaW9ucy5zdW0oLi4ub3V0cHV0VHlwZXMubWFwKGdldE91dHB1dERpbWVuc2lvbnNGb3JVbnNwZW50VHlwZSkpO1xuXG4gICAgaXQoYGNhbGN1bGF0ZXMgZGltZW5zaW9ucyBmcm9tIHVuc2lnbmVkIHRyYW5zYWN0aW9uYCwgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgdW5zaWduZWRUeCA9IHR4Q29tYm8uZ2V0VW5zaWduZWRUeCgpO1xuXG4gICAgICAvLyBkb2VzIG5vdCB3b3JrIGZvciB1bnNpZ25lZCB0cmFuc2FjdGlvbnNcbiAgICAgIHNob3VsZC50aHJvd3MoKCkgPT4gRGltZW5zaW9ucy5mcm9tVHJhbnNhY3Rpb24odW5zaWduZWRUeCkpO1xuXG4gICAgICAvLyB1bmxlc3MgZXhwbGljaXRseSBhbGxvd2VkXG4gICAgICBEaW1lbnNpb25zLmZyb21UcmFuc2FjdGlvbih1bnNpZ25lZFR4LCB7IGFzc3VtZVVuc2lnbmVkOiBEaW1lbnNpb25zLkFTU1VNRV9QMlNIIH0pLnNob3VsZC5lcWwoXG4gICAgICAgIERpbWVuc2lvbnMuc3VtKHsgblAyc2hJbnB1dHM6IG5JbnB1dHMgfSwgb3V0cHV0RGltcylcbiAgICAgICk7XG5cbiAgICAgIERpbWVuc2lvbnMuZnJvbVRyYW5zYWN0aW9uKHVuc2lnbmVkVHgsIHsgYXNzdW1lVW5zaWduZWQ6IERpbWVuc2lvbnMuQVNTVU1FX1AyU0hfUDJXU0ggfSkuc2hvdWxkLmVxbChcbiAgICAgICAgRGltZW5zaW9ucy5zdW0oeyBuUDJzaFAyd3NoSW5wdXRzOiBuSW5wdXRzIH0sIG91dHB1dERpbXMpXG4gICAgICApO1xuXG4gICAgICBEaW1lbnNpb25zLmZyb21UcmFuc2FjdGlvbih1bnNpZ25lZFR4LCB7IGFzc3VtZVVuc2lnbmVkOiBEaW1lbnNpb25zLkFTU1VNRV9QMldTSCB9KS5zaG91bGQuZXFsKFxuICAgICAgICBEaW1lbnNpb25zLnN1bSh7IG5QMndzaElucHV0czogbklucHV0cyB9LCBvdXRwdXREaW1zKVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KGBjYWxjdWxhdGVzIGRpbWVuc2lvbnMgZm9yIHNpZ25lZCB0cmFuc2FjdGlvbmAsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGRpbWVuc2lvbnMgPSBEaW1lbnNpb25zLmZyb21UcmFuc2FjdGlvbih0eENvbWJvLmdldFNpZ25lZFR4KCkpO1xuICAgICAgZGltZW5zaW9ucy5zaG91bGQuZXFsKGV4cGVjdGVkRGltcyk7XG4gICAgfSk7XG5cbiAgICBpdChgY2FsY3VsYXRlcyBkaW1lbnNpb25zIGZvciBzaWduZWQgaW5wdXQgb2YgdHJhbnNhY3Rpb25gLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBzaWduZWRUeCA9IHR4Q29tYm8uZ2V0U2lnbmVkVHgoKTtcblxuICAgICAgLy8gdGVzdCBEaW1lbnNpb25zLmZyb21JbnB1dCgpXG4gICAgICBpbnB1dFR5cGVzLmZvckVhY2goKGlucHV0OiBhbnksIGk6IG51bWJlcikgPT5cbiAgICAgICAgRGltZW5zaW9ucy5mcm9tSW5wdXQoc2lnbmVkVHguaW5zW2ldKS5zaG91bGQuZXFsKERpbWVuc2lvbnMuc3VtKGdldElucHV0RGltZW5zaW9uc0ZvclVuc3BlbnRUeXBlKGlucHV0KSkpXG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcbn07XG5cbmNvbnN0IHRlc3REaW1lbnNpb25zRnJvbVBzYnQgPSAoXG4gIGtleXM6IHV0eG9saWIuYml0Z28uUm9vdFdhbGxldEtleXMsXG4gIGlucHV0VHlwZXM6IElucHV0U2NyaXB0VHlwZVtdLFxuICBvdXRwdXRUeXBlczogVGVzdFVuc3BlbnRUeXBlW10sXG4gIGV4cGVjdGVkRGltczogRGltZW5zaW9uc1xuKSA9PiB7XG4gIGRlc2NyaWJlKGBQc2J0IENvbWJpbmF0aW9uIGlucHV0cz0ke2lucHV0VHlwZXN9OyBvdXRwdXRzPSR7b3V0cHV0VHlwZXN9YCwgZnVuY3Rpb24gKCkge1xuICAgIChbJ3Vuc2lnbmVkJywgJ2hhbGZzaWduZWQnLCAnZnVsbHlzaWduZWQnXSBhcyBjb25zdCkuZm9yRWFjaCgocykgPT4ge1xuICAgICAgaXQoYGNhbGN1bGF0ZXMgZGltZW5zaW9ucyBmcm9tICR7c30gcHNidGAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc3QgZGltZW5zaW9ucyA9IERpbWVuc2lvbnMuZnJvbVBzYnQoY29uc3RydWN0UHNidChrZXlzLCBpbnB1dFR5cGVzLCBvdXRwdXRUeXBlcywgcykpO1xuICAgICAgICBkaW1lbnNpb25zLnNob3VsZC5lcWwoZXhwZWN0ZWREaW1zKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoYGNhbGN1bGF0ZXMgZGltZW5zaW9ucyBmb3Igc2lnbmVkIGlucHV0IG9mIHBzYnRgLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBzaWduZWRQc2J0ID0gY29uc3RydWN0UHNidChrZXlzLCBpbnB1dFR5cGVzLCBvdXRwdXRUeXBlcywgJ2Z1bGx5c2lnbmVkJyk7XG5cbiAgICAgIGlucHV0VHlwZXMuZm9yRWFjaCgoaW5wdXQ6IGFueSwgaTogbnVtYmVyKSA9PlxuICAgICAgICBEaW1lbnNpb25zLmZyb21Qc2J0SW5wdXQoc2lnbmVkUHNidC5kYXRhLmlucHV0c1tpXSkuc2hvdWxkLmVxbChcbiAgICAgICAgICBEaW1lbnNpb25zLnN1bShnZXRJbnB1dERpbWVuc2lvbnNGb3JVbnNwZW50VHlwZShpbnB1dCkpXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfSk7XG4gIH0pO1xufTtcblxuZGVzY3JpYmUoYERpbWVuc2lvbnMgZm9yIHRyYW5zYWN0aW9uIGNvbWJpbmF0aW9uc2AsIGZ1bmN0aW9uICgpIHtcbiAgLy8gcDJ0ck11c2lnMiBpcyBzdXBwb3J0ZWQgb25seSB3aXRoIFBTQlRcbiAgY29uc3Qgc2NyaXB0VHlwZXMgPSB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuc2NyaXB0VHlwZXMyT2YzLmZpbHRlcigodCkgPT4gdCAhPT0gJ3AydHJNdXNpZzInKTtcbiAgY29uc3QgcGFyYW1zID0ge1xuICAgIGlucHV0VHlwZXM6IFsuLi5zY3JpcHRUeXBlcywgVW5zcGVudFR5cGVQMnNoUDJwa10gYXMgSW5wdXRTY3JpcHRUeXBlW10sXG4gICAgbWF4TklucHV0czogMixcbiAgICBvdXRwdXRUeXBlczogWy4uLnNjcmlwdFR5cGVzLCAuLi5PYmplY3Qua2V5cyhVbnNwZW50VHlwZVB1YktleUhhc2gpXSBhcyBUZXN0VW5zcGVudFR5cGVbXSxcbiAgICBtYXhOT3V0cHV0czogMixcbiAgfTtcblxuICBydW5Db21iaW5hdGlvbnMocGFyYW1zLCAoaW5wdXRUeXBlQ29tYm86IElucHV0U2NyaXB0VHlwZVtdLCBvdXRwdXRUeXBlQ29tYm86IFRlc3RVbnNwZW50VHlwZVtdKSA9PiB7XG4gICAgY29uc3QgZXhwZWN0ZWRJbnB1dERpbXMgPSBEaW1lbnNpb25zLnN1bSguLi5pbnB1dFR5cGVDb21iby5tYXAoZ2V0SW5wdXREaW1lbnNpb25zRm9yVW5zcGVudFR5cGUpKTtcbiAgICBjb25zdCBleHBlY3RlZE91dHB1dERpbXMgPSBEaW1lbnNpb25zLnN1bSguLi5vdXRwdXRUeXBlQ29tYm8ubWFwKGdldE91dHB1dERpbWVuc2lvbnNGb3JVbnNwZW50VHlwZSkpO1xuXG4gICAgdGVzdERpbWVuc2lvbnNGcm9tVHgoXG4gICAgICBuZXcgVHhDb21ibyhrZXlzLCBpbnB1dFR5cGVDb21ibywgb3V0cHV0VHlwZUNvbWJvLCBleHBlY3RlZElucHV0RGltcy5wbHVzKGV4cGVjdGVkT3V0cHV0RGltcykpXG4gICAgKTtcblxuICAgIC8vIERvdWJsaW5nIHRoZSBpbnB1dHMgc2hvdWxkIHlpZWxkIHR3aWNlIHRoZSBpbnB1dCBkaW1zXG4gICAgdGVzdERpbWVuc2lvbnNGcm9tVHgoXG4gICAgICBuZXcgVHhDb21ibyhcbiAgICAgICAga2V5cyxcbiAgICAgICAgWy4uLmlucHV0VHlwZUNvbWJvLCAuLi5pbnB1dFR5cGVDb21ib10sXG4gICAgICAgIG91dHB1dFR5cGVDb21ibyxcbiAgICAgICAgZXhwZWN0ZWRJbnB1dERpbXMucGx1cyhleHBlY3RlZElucHV0RGltcykucGx1cyhleHBlY3RlZE91dHB1dERpbXMpXG4gICAgICApXG4gICAgKTtcblxuICAgIC8vIFNhbWUgZm9yIG91dHB1dHNcbiAgICB0ZXN0RGltZW5zaW9uc0Zyb21UeChcbiAgICAgIG5ldyBUeENvbWJvKFxuICAgICAgICBrZXlzLFxuICAgICAgICBpbnB1dFR5cGVDb21ibyxcbiAgICAgICAgWy4uLm91dHB1dFR5cGVDb21ibywgLi4ub3V0cHV0VHlwZUNvbWJvXSxcbiAgICAgICAgZXhwZWN0ZWRJbnB1dERpbXMucGx1cyhleHBlY3RlZE91dHB1dERpbXMpLnBsdXMoZXhwZWN0ZWRPdXRwdXREaW1zKVxuICAgICAgKVxuICAgICk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKGBEaW1lbnNpb25zIGZvciBQU0JUIGNvbWJpbmF0aW9uc2AsIGZ1bmN0aW9uICgpIHtcbiAgY29uc3QgcGFyYW1zID0ge1xuICAgIGlucHV0VHlwZXM6IFtcbiAgICAgIC4uLnV0eG9saWIuYml0Z28ub3V0cHV0U2NyaXB0cy5zY3JpcHRUeXBlczJPZjMsXG4gICAgICB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuc2NyaXB0VHlwZVAyc2hQMnBrLFxuICAgICAgJ3RhcHJvb3RLZXlQYXRoU3BlbmQnLFxuICAgIF0gYXMgSW5wdXRTY3JpcHRUeXBlW10sXG4gICAgbWF4TklucHV0czogMSxcbiAgICBvdXRwdXRUeXBlczogWy4uLk9iamVjdC5rZXlzKFVuc3BlbnRUeXBlU2NyaXB0Mm9mMyksIC4uLk9iamVjdC5rZXlzKFVuc3BlbnRUeXBlUHViS2V5SGFzaCldLFxuICAgIG1heE5PdXRwdXRzOiAxLFxuICB9O1xuXG4gIGl0KGBkb2VzIG5vdCB3b3JrIGZvciB1bmtub3duIHBzYnQgaW5wdXRgLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgcHNidCA9IHV0eG9saWIuYml0Z28uY3JlYXRlUHNidEZvck5ldHdvcmsoeyBuZXR3b3JrOiB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW4gfSk7XG4gICAgcHNidC5hZGRJbnB1dCh7IGhhc2g6IEJ1ZmZlci5hbGxvYygzMiksIGluZGV4OiAwIH0pO1xuICAgIHNob3VsZC50aHJvd3MoKCkgPT4gRGltZW5zaW9ucy5mcm9tUHNidChwc2J0KSk7XG4gIH0pO1xuXG4gIHJ1bkNvbWJpbmF0aW9ucyhwYXJhbXMsIChpbnB1dFR5cGVDb21ibzogSW5wdXRTY3JpcHRUeXBlW10sIG91dHB1dFR5cGVDb21ibzogVGVzdFVuc3BlbnRUeXBlW10pID0+IHtcbiAgICBjb25zdCBleHBlY3RlZElucHV0RGltcyA9IERpbWVuc2lvbnMuc3VtKC4uLmlucHV0VHlwZUNvbWJvLm1hcChnZXRJbnB1dERpbWVuc2lvbnNGb3JVbnNwZW50VHlwZSkpO1xuICAgIGNvbnN0IGV4cGVjdGVkT3V0cHV0RGltcyA9IERpbWVuc2lvbnMuc3VtKC4uLm91dHB1dFR5cGVDb21iby5tYXAoZ2V0T3V0cHV0RGltZW5zaW9uc0ZvclVuc3BlbnRUeXBlKSk7XG5cbiAgICB0ZXN0RGltZW5zaW9uc0Zyb21Qc2J0KHJvb3RXYWxsZXRLZXlzLCBpbnB1dFR5cGVDb21ibywgb3V0cHV0VHlwZUNvbWJvLCBleHBlY3RlZElucHV0RGltcy5wbHVzKGV4cGVjdGVkT3V0cHV0RGltcykpO1xuXG4gICAgLy8gRG91YmxpbmcgdGhlIGlucHV0cyBzaG91bGQgeWllbGQgdHdpY2UgdGhlIGlucHV0IGRpbXNcbiAgICB0ZXN0RGltZW5zaW9uc0Zyb21Qc2J0KFxuICAgICAgcm9vdFdhbGxldEtleXMsXG4gICAgICBbLi4uaW5wdXRUeXBlQ29tYm8sIC4uLmlucHV0VHlwZUNvbWJvXSxcbiAgICAgIG91dHB1dFR5cGVDb21ibyxcbiAgICAgIGV4cGVjdGVkSW5wdXREaW1zLnBsdXMoZXhwZWN0ZWRJbnB1dERpbXMpLnBsdXMoZXhwZWN0ZWRPdXRwdXREaW1zKVxuICAgICk7XG5cbiAgICAvLyBTYW1lIGZvciBvdXRwdXRzXG4gICAgdGVzdERpbWVuc2lvbnNGcm9tUHNidChcbiAgICAgIHJvb3RXYWxsZXRLZXlzLFxuICAgICAgaW5wdXRUeXBlQ29tYm8sXG4gICAgICBbLi4ub3V0cHV0VHlwZUNvbWJvLCAuLi5vdXRwdXRUeXBlQ29tYm9dLFxuICAgICAgZXhwZWN0ZWRJbnB1dERpbXMucGx1cyhleHBlY3RlZE91dHB1dERpbXMpLnBsdXMoZXhwZWN0ZWRPdXRwdXREaW1zKVxuICAgICk7XG4gIH0pO1xufSk7XG4iXX0=
|