@bitgo-beta/sdk-core 8.2.1-beta.2004 → 8.2.1-beta.2006
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/dist/src/bitgo/utils/tss/redpallas/SMC/utils.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/redpallas/SMC/utils.js +1 -3
- package/dist/src/bitgo/utils/tss/redpallas/redpallasMPCv2.d.ts +2 -5
- package/dist/src/bitgo/utils/tss/redpallas/redpallasMPCv2.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/redpallas/redpallasMPCv2.js +3 -6
- package/dist/src/bitgo/utils/tss/redpallas/redpallasMPCv2KeyGenSender.d.ts +0 -1
- package/dist/src/bitgo/utils/tss/redpallas/redpallasMPCv2KeyGenSender.d.ts.map +1 -1
- package/dist/test/unit/bitgo/utils/tss/redpallas/redpallasMPCv2.js +1 -2
- package/dist/test/unit/bitgo/utils/tss/redpallas/smcUtil.js +1 -3
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../../src/bitgo/utils/tss/redpallas/SMC/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,kCAAkC,EAClC,kCAAkC,EAElC,kCAAkC,EAClC,kCAAkC,EAClC,iCAAiC,EACjC,iCAAiC,EAClC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAgB,QAAQ,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAE,0BAA0B,EAAsC,MAAM,+BAA+B,CAAC;AAE/G;;;;;;;GAOG;AACH,qBAAa,sBAAsB;IAGrB,OAAO,CAAC,KAAK;IAAa,OAAO,CAAC,QAAQ;IAFtD,OAAO,CAAC,UAAU,CAAsB;gBAEpB,KAAK,EAAE,SAAS,EAAU,QAAQ,EAAE,SAAS;IAIpD,YAAY,CACvB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,iCAAiC,GACzC,OAAO,CAAC,kCAAkC,CAAC;IAIjC,YAAY,CACvB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,iCAAiC,GACzC,OAAO,CAAC,kCAAkC,CAAC;IAIjC,oBAAoB,CAC/B,QAAQ,EAAE,0BAA0B,CAAC,kCAAkC,CAAC,EACxE,OAAO,EAAE,iCAAiC,GACzC,OAAO,CAAC,kCAAkC,CAAC;IAwCjC,oBAAoB,CAC/B,QAAQ,EAAE,0BAA0B,CAAC,kCAAkC,CAAC,EACxE,OAAO,EAAE,iCAAiC,GACzC,OAAO,CAAC,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../../src/bitgo/utils/tss/redpallas/SMC/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,kCAAkC,EAClC,kCAAkC,EAElC,kCAAkC,EAClC,kCAAkC,EAClC,iCAAiC,EACjC,iCAAiC,EAClC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAgB,QAAQ,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAE,0BAA0B,EAAsC,MAAM,+BAA+B,CAAC;AAE/G;;;;;;;GAOG;AACH,qBAAa,sBAAsB;IAGrB,OAAO,CAAC,KAAK;IAAa,OAAO,CAAC,QAAQ;IAFtD,OAAO,CAAC,UAAU,CAAsB;gBAEpB,KAAK,EAAE,SAAS,EAAU,QAAQ,EAAE,SAAS;IAIpD,YAAY,CACvB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,iCAAiC,GACzC,OAAO,CAAC,kCAAkC,CAAC;IAIjC,YAAY,CACvB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,iCAAiC,GACzC,OAAO,CAAC,kCAAkC,CAAC;IAIjC,oBAAoB,CAC/B,QAAQ,EAAE,0BAA0B,CAAC,kCAAkC,CAAC,EACxE,OAAO,EAAE,iCAAiC,GACzC,OAAO,CAAC,kCAAkC,CAAC;IAwCjC,oBAAoB,CAC/B,QAAQ,EAAE,0BAA0B,CAAC,kCAAkC,CAAC,EACxE,OAAO,EAAE,iCAAiC,GACzC,OAAO,CAAC,kCAAkC,CAAC;IAsDjC,gBAAgB,CAC3B,UAAU,EAAE,MAAM,EAClB,kBAAkB,EAAE,MAAM,EAC1B,oBAAoB,EAAE,MAAM,GAC3B,OAAO,CAAC;QAAE,YAAY,EAAE,QAAQ,CAAC;QAAC,cAAc,EAAE,QAAQ,CAAC;QAAC,aAAa,EAAE,QAAQ,CAAA;KAAE,CAAC;CA8B1F"}
|
|
@@ -69,7 +69,6 @@ class RedpallasMPCv2SMCUtils {
|
|
|
69
69
|
sessionId,
|
|
70
70
|
userMsg2: ovc1.ovcMsg2,
|
|
71
71
|
backupMsg2: ovc2.ovcMsg2,
|
|
72
|
-
derivationSeed: payload.derivationSeed,
|
|
73
72
|
});
|
|
74
73
|
assert_1.default.equal(sessionId, result.sessionId, 'Round 1 and round 2 session IDs do not match');
|
|
75
74
|
const keychains = this.baseCoin.keychains();
|
|
@@ -86,7 +85,6 @@ class RedpallasMPCv2SMCUtils {
|
|
|
86
85
|
walletType: payload.walletType,
|
|
87
86
|
coin: payload.coin,
|
|
88
87
|
ovc: payload.ovc,
|
|
89
|
-
derivationSeed: payload.derivationSeed,
|
|
90
88
|
platform: {
|
|
91
89
|
// sessionId/bitgoMsg1 carried over from payload.platform; safe because the assert
|
|
92
90
|
// above guarantees payload.platform.sessionId equals result.sessionId.
|
|
@@ -125,4 +123,4 @@ class RedpallasMPCv2SMCUtils {
|
|
|
125
123
|
}
|
|
126
124
|
}
|
|
127
125
|
exports.RedpallasMPCv2SMCUtils = RedpallasMPCv2SMCUtils;
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYml0Z28vdXRpbHMvdHNzL3JlZHBhbGxhcy9TTUMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLHNEQVM2QjtBQUc3QixtQ0FBcUQ7QUFDckQsc0RBQXdEO0FBQ3hELDhFQUErRztBQUUvRzs7Ozs7OztHQU9HO0FBQ0gsTUFBYSxzQkFBc0I7SUFHakMsWUFBb0IsS0FBZ0IsRUFBVSxRQUFtQjtRQUE3QyxVQUFLLEdBQUwsS0FBSyxDQUFXO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUMvRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksb0NBQW1CLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFTSxLQUFLLENBQUMsWUFBWSxDQUN2QixVQUFrQixFQUNsQixPQUEwQztRQUUxQyxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFBLCtEQUFrQyxFQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDeEcsQ0FBQztJQUVNLEtBQUssQ0FBQyxZQUFZLENBQ3ZCLFVBQWtCLEVBQ2xCLE9BQTBDO1FBRTFDLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUEsK0RBQWtDLEVBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN4RyxDQUFDO0lBRU0sS0FBSyxDQUFDLG9CQUFvQixDQUMvQixRQUF3RSxFQUN4RSxPQUEwQztRQUUxQyxJQUFBLGdCQUFNLEVBQ0osT0FBTyxDQUFDLEtBQUssS0FBSyxpREFBa0MsQ0FBQyx5QkFBeUIsRUFDOUUsd0NBQXdDLGlEQUFrQyxDQUFDLHlCQUF5QixVQUFVLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FDOUgsQ0FBQztRQUNG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JztcbmltcG9ydCB7XG4gIE9WQ0luZGV4RW51bSxcbiAgUmVkcGFsbGFzQml0Z29Ub09WQzFSb3VuZDFSZXNwb25zZSxcbiAgUmVkcGFsbGFzQml0Z29Ub09WQzFSb3VuZDJSZXNwb25zZSxcbiAgUmVkcGFsbGFzS2V5Q3JlYXRpb25NUEN2MlN0YXRlRW51bSxcbiAgUmVkcGFsbGFzTVBDdjJLZXlHZW5Sb3VuZDFSZXNwb25zZSxcbiAgUmVkcGFsbGFzTVBDdjJLZXlHZW5Sb3VuZDJSZXNwb25zZSxcbiAgUmVkcGFsbGFzT1ZDMVRvQml0Z29Sb3VuZDFQYXlsb2FkLFxuICBSZWRwYWxsYXNPVkMyVG9CaXRnb1JvdW5kMlBheWxvYWQsXG59IGZyb20gJ0BiaXRnby9wdWJsaWMtdHlwZXMnO1xuaW1wb3J0IHsgSUJhc2VDb2luIH0gZnJvbSAnLi4vLi4vLi4vLi4vYmFzZUNvaW4nO1xuaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vYml0Z29CYXNlJztcbmltcG9ydCB7IGRlY29kZU9yRWxzZSwgS2V5Y2hhaW4gfSBmcm9tICcuLi8uLi8uLi8uLic7XG5pbXBvcnQgeyBSZWRwYWxsYXNNUEN2MlV0aWxzIH0gZnJvbSAnLi4vcmVkcGFsbGFzTVBDdjInO1xuaW1wb3J0IHsgUmVkcGFsbGFzTVBDdjJLZXlHZW5TZW5kRm4sIFJlZHBhbGxhc0tleUdlblNlbmRlckZvckVudGVycHJpc2UgfSBmcm9tICcuLi9yZWRwYWxsYXNNUEN2MktleUdlblNlbmRlcic7XG5cbi8qKlxuICogQ3VzdG9kaWFsIChTTUMvT1ZDKSBES0ctb25seSBrZXkgZ2VuZXJhdGlvbiBmb3IgdGhlIFpjYXNoIE9yY2hhcmQgc2hpZWxkZWQgcG9vbCAoUmVkUGFsbGFzKS5cbiAqXG4gKiBNaXJyb3JzIGZvciBib3RoIGN1c3RvZGlhbCBhbmQgU01DIHdhbGxldFxuICogY2VyZW1vbmllcyBkcml2ZW4gYnkgZXh0ZXJuYWwgT1ZDIChvZmZsaW5lIHZhdWx0IGNvbnNvbGUpIGNsaWVudHM6IHJvdW5kMS9yb3VuZDIgcGF5bG9hZHMgYXJlXG4gKiByZWxheWVkIGZyb20gT1ZDMS9PVkMyIHRvIEJpdEdvIGFuZCBiYWNrLiBUaGVyZSBpcyBubyByb3VuZDMgKG5vIHNpZ25pbmcpIC0gUmVkUGFsbGFzIE1QUyBES0dcbiAqIGNvbXBsZXRlcyBrZXkgZ2VuZXJhdGlvbiBpbiAyIG9ubGluZSByb3VuZHMsIHNhbWUgYXMgRWREU0EgTVBTIERLRy5cbiAqL1xuZXhwb3J0IGNsYXNzIFJlZHBhbGxhc01QQ3YyU01DVXRpbHMge1xuICBwcml2YXRlIE1QQ3YyVXRpbHM6IFJlZHBhbGxhc01QQ3YyVXRpbHM7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBiaXRnbzogQml0R29CYXNlLCBwcml2YXRlIGJhc2VDb2luOiBJQmFzZUNvaW4pIHtcbiAgICB0aGlzLk1QQ3YyVXRpbHMgPSBuZXcgUmVkcGFsbGFzTVBDdjJVdGlscyhiaXRnbywgYmFzZUNvaW4pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGtleUdlblJvdW5kMShcbiAgICBlbnRlcnByaXNlOiBzdHJpbmcsXG4gICAgcGF5bG9hZDogUmVkcGFsbGFzT1ZDMVRvQml0Z29Sb3VuZDFQYXlsb2FkXG4gICk6IFByb21pc2U8UmVkcGFsbGFzQml0Z29Ub09WQzFSb3VuZDFSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmtleUdlblJvdW5kMUJ5U2VuZGVyKFJlZHBhbGxhc0tleUdlblNlbmRlckZvckVudGVycHJpc2UodGhpcy5iaXRnbywgZW50ZXJwcmlzZSksIHBheWxvYWQpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGtleUdlblJvdW5kMihcbiAgICBlbnRlcnByaXNlOiBzdHJpbmcsXG4gICAgcGF5bG9hZDogUmVkcGFsbGFzT1ZDMlRvQml0Z29Sb3VuZDJQYXlsb2FkXG4gICk6IFByb21pc2U8UmVkcGFsbGFzQml0Z29Ub09WQzFSb3VuZDJSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmtleUdlblJvdW5kMkJ5U2VuZGVyKFJlZHBhbGxhc0tleUdlblNlbmRlckZvckVudGVycHJpc2UodGhpcy5iaXRnbywgZW50ZXJwcmlzZSksIHBheWxvYWQpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGtleUdlblJvdW5kMUJ5U2VuZGVyKFxuICAgIHNlbmRlckZuOiBSZWRwYWxsYXNNUEN2MktleUdlblNlbmRGbjxSZWRwYWxsYXNNUEN2MktleUdlblJvdW5kMVJlc3BvbnNlPixcbiAgICBwYXlsb2FkOiBSZWRwYWxsYXNPVkMxVG9CaXRnb1JvdW5kMVBheWxvYWRcbiAgKTogUHJvbWlzZTxSZWRwYWxsYXNCaXRnb1RvT1ZDMVJvdW5kMVJlc3BvbnNlPiB7XG4gICAgYXNzZXJ0KFxuICAgICAgcGF5bG9hZC5zdGF0ZSA9PT0gUmVkcGFsbGFzS2V5Q3JlYXRpb25NUEN2MlN0YXRlRW51bS5XYWl0aW5nRm9yQml0Z29Sb3VuZDFEYXRhLFxuICAgICAgYEludmFsaWQgc3RhdGUgZm9yIHJvdW5kIDEsIGV4cGVjdGVkOiAke1JlZHBhbGxhc0tleUNyZWF0aW9uTVBDdjJTdGF0ZUVudW0uV2FpdGluZ0ZvckJpdGdvUm91bmQxRGF0YX0sIGdvdDogJHtwYXlsb2FkLnN0YXRlfWBcbiAgICApO1xuICAgIGRlY29kZU9yRWxzZShSZWRwYWxsYXNPVkMxVG9CaXRnb1JvdW5kMVBheWxvYWQubmFtZSwgUmVkcGFsbGFzT1ZDMVRvQml0Z29Sb3VuZDFQYXlsb2FkLCBwYXlsb2FkLCAoZXJyb3JzKSA9PiB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGVycm9yKHMpIHBhcnNpbmcgcGF5bG9hZDogJHtlcnJvcnN9YCk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBvdmMxID0gcGF5bG9hZC5vdmNbT1ZDSW5kZXhFbnVtLk9ORV07XG4gICAgY29uc3Qgb3ZjMiA9IHBheWxvYWQub3ZjW09WQ0luZGV4RW51bS5UV09dO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuTVBDdjJVdGlscy5zZW5kS2V5R2VuZXJhdGlvblJvdW5kMUJ5U2VuZGVyKHNlbmRlckZuLCB7XG4gICAgICB1c2VyR3BnUHVibGljS2V5OiBvdmMxLmdwZ1B1YktleSxcbiAgICAgIGJhY2t1cEdwZ1B1YmxpY0tleTogb3ZjMi5ncGdQdWJLZXksXG4gICAgICB1c2VyTXNnMTogb3ZjMS5vdmNNc2cxLFxuICAgICAgYmFja3VwTXNnMTogb3ZjMi5vdmNNc2cxLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSB7XG4gICAgICBzdGF0ZTogUmVkcGFsbGFzS2V5Q3JlYXRpb25NUEN2MlN0YXRlRW51bS5XYWl0aW5nRm9yT1ZDMVJvdW5kMkRhdGEsXG4gICAgICB0c3NWZXJzaW9uOiBwYXlsb2FkLnRzc1ZlcnNpb24sXG4gICAgICB3YWxsZXRUeXBlOiBwYXlsb2FkLndhbGxldFR5cGUsXG4gICAgICBjb2luOiBwYXlsb2FkLmNvaW4sXG4gICAgICBvdmM6IHBheWxvYWQub3ZjLFxuICAgICAgcGxhdGZvcm06IHtcbiAgICAgICAgc2Vzc2lvbklkOiByZXN1bHQuc2Vzc2lvbklkLFxuICAgICAgICBiaXRnb01zZzE6IHJlc3VsdC5iaXRnb01zZzEsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICByZXR1cm4gZGVjb2RlT3JFbHNlKFxuICAgICAgUmVkcGFsbGFzQml0Z29Ub09WQzFSb3VuZDFSZXNwb25zZS5uYW1lLFxuICAgICAgUmVkcGFsbGFzQml0Z29Ub09WQzFSb3VuZDFSZXNwb25zZSxcbiAgICAgIHJlc3BvbnNlLFxuICAgICAgKGVycm9ycykgPT4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGVycm9yKHMpIHBhcnNpbmcgcmVzcG9uc2U6ICR7ZXJyb3JzfWApO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMga2V5R2VuUm91bmQyQnlTZW5kZXIoXG4gICAgc2VuZGVyRm46IFJlZHBhbGxhc01QQ3YyS2V5R2VuU2VuZEZuPFJlZHBhbGxhc01QQ3YyS2V5R2VuUm91bmQyUmVzcG9uc2U+LFxuICAgIHBheWxvYWQ6IFJlZHBhbGxhc09WQzJUb0JpdGdvUm91bmQyUGF5bG9hZFxuICApOiBQcm9taXNlPFJlZHBhbGxhc0JpdGdvVG9PVkMxUm91bmQyUmVzcG9uc2U+IHtcbiAgICBhc3NlcnQoXG4gICAgICBwYXlsb2FkLnN0YXRlID09PSBSZWRwYWxsYXNLZXlDcmVhdGlvbk1QQ3YyU3RhdGVFbnVtLldhaXRpbmdGb3JCaXRnb1JvdW5kMkRhdGEsXG4gICAgICBgSW52YWxpZCBzdGF0ZSBmb3Igcm91bmQgMiwgZXhwZWN0ZWQ6ICR7UmVkcGFsbGFzS2V5Q3JlYXRpb25NUEN2MlN0YXRlRW51bS5XYWl0aW5nRm9yQml0Z29Sb3VuZDJEYXRhfSwgZ290OiAke3BheWxvYWQuc3RhdGV9YFxuICAgICk7XG4gICAgZGVjb2RlT3JFbHNlKFJlZHBhbGxhc09WQzJUb0JpdGdvUm91bmQyUGF5bG9hZC5uYW1lLCBSZWRwYWxsYXNPVkMyVG9CaXRnb1JvdW5kMlBheWxvYWQsIHBheWxvYWQsIChlcnJvcnMpID0+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgZXJyb3IocykgcGFyc2luZyBwYXlsb2FkOiAke2Vycm9yc31gKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IG92YzEgPSBwYXlsb2FkLm92Y1tPVkNJbmRleEVudW0uT05FXTtcbiAgICBjb25zdCBvdmMyID0gcGF5bG9hZC5vdmNbT1ZDSW5kZXhFbnVtLlRXT107XG4gICAgY29uc3Qgc2Vzc2lvbklkID0gcGF5bG9hZC5wbGF0Zm9ybS5zZXNzaW9uSWQ7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5NUEN2MlV0aWxzLnNlbmRLZXlHZW5lcmF0aW9uUm91bmQyQnlTZW5kZXIoc2VuZGVyRm4sIHtcbiAgICAgIHNlc3Npb25JZCxcbiAgICAgIHVzZXJNc2cyOiBvdmMxLm92Y01zZzIsXG4gICAgICBiYWNrdXBNc2cyOiBvdmMyLm92Y01zZzIsXG4gICAgICBkZXJpdmF0aW9uU2VlZDogcGF5bG9hZC5kZXJpdmF0aW9uU2VlZCxcbiAgICB9KTtcblxuICAgIGFzc2VydC5lcXVhbChzZXNzaW9uSWQsIHJlc3VsdC5zZXNzaW9uSWQsICdSb3VuZCAxIGFuZCByb3VuZCAyIHNlc3Npb24gSURzIGRvIG5vdCBtYXRjaCcpO1xuXG4gICAgY29uc3Qga2V5Y2hhaW5zID0gdGhpcy5iYXNlQ29pbi5rZXljaGFpbnMoKTtcbiAgICBjb25zdCBiaXRnb0tleWNoYWluID0gYXdhaXQga2V5Y2hhaW5zLmFkZCh7XG4gICAgICBzb3VyY2U6ICdiaXRnbycsXG4gICAgICBrZXlUeXBlOiAndHNzJyxcbiAgICAgIGNvbW1vbktleWNoYWluOiByZXN1bHQuY29tbW9uUHVibGljS2V5Y2hhaW4sXG4gICAgICBpc01QQ3YyOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSB7XG4gICAgICBzdGF0ZTogUmVkcGFsbGFzS2V5Q3JlYXRpb25NUEN2MlN0YXRlRW51bS5XYWl0aW5nRm9yT1ZDMUdlbmVyYXRlS2V5LFxuICAgICAgYml0R29LZXlJZDogYml0Z29LZXljaGFpbi5pZCxcbiAgICAgIHRzc1ZlcnNpb246IHBheWxvYWQudHNzVmVyc2lvbixcbiAgICAgIHdhbGxldFR5cGU6IHBheWxvYWQud2FsbGV0VHlwZSxcbiAgICAgIGNvaW46IHBheWxvYWQuY29pbixcbiAgICAgIG92YzogcGF5bG9hZC5vdmMsXG4gICAgICBkZXJpdmF0aW9uU2VlZDogcGF5bG9hZC5kZXJpdmF0aW9uU2VlZCxcbiAgICAgIHBsYXRmb3JtOiB7XG4gICAgICAgIC8vIHNlc3Npb25JZC9iaXRnb01zZzEgY2FycmllZCBvdmVyIGZyb20gcGF5bG9hZC5wbGF0Zm9ybTsgc2FmZSBiZWNhdXNlIHRoZSBhc3NlcnRcbiAgICAgICAgLy8gYWJvdmUgZ3VhcmFudGVlcyBwYXlsb2FkLnBsYXRmb3JtLnNlc3Npb25JZCBlcXVhbHMgcmVzdWx0LnNlc3Npb25JZC5cbiAgICAgICAgLi4ucGF5bG9hZC5wbGF0Zm9ybSxcbiAgICAgICAgY29tbW9uUHVibGljS2V5Y2hhaW46IHJlc3VsdC5jb21tb25QdWJsaWNLZXljaGFpbixcbiAgICAgICAgYml0Z29Nc2cyOiByZXN1bHQuYml0Z29Nc2cyLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGRlY29kZU9yRWxzZShcbiAgICAgIFJlZHBhbGxhc0JpdGdvVG9PVkMxUm91bmQyUmVzcG9uc2UubmFtZSxcbiAgICAgIFJlZHBhbGxhc0JpdGdvVG9PVkMxUm91bmQyUmVzcG9uc2UsXG4gICAgICByZXNwb25zZSxcbiAgICAgIChlcnJvcnMpID0+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBlcnJvcihzKSBwYXJzaW5nIHJlc3BvbnNlOiAke2Vycm9yc31gKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHVwbG9hZENsaWVudEtleXMoXG4gICAgYml0Z29LZXlJZDogc3RyaW5nLFxuICAgIHVzZXJDb21tb25LZXljaGFpbjogc3RyaW5nLFxuICAgIGJhY2t1cENvbW1vbktleWNoYWluOiBzdHJpbmdcbiAgKTogUHJvbWlzZTx7IHVzZXJLZXljaGFpbjogS2V5Y2hhaW47IGJhY2t1cEtleWNoYWluOiBLZXljaGFpbjsgYml0Z29LZXljaGFpbjogS2V5Y2hhaW4gfT4ge1xuICAgIGFzc2VydChcbiAgICAgIHVzZXJDb21tb25LZXljaGFpbiA9PT0gYmFja3VwQ29tbW9uS2V5Y2hhaW4sXG4gICAgICAnQ29tbW9uIGtleWNoYWluIG1pc21hdGNoIGJldHdlZW4gdGhlIHVzZXIgYW5kIGJhY2t1cCBrZXljaGFpbnMnXG4gICAgKTtcblxuICAgIGNvbnN0IGtleWNoYWlucyA9IHRoaXMuYmFzZUNvaW4ua2V5Y2hhaW5zKCk7XG4gICAgY29uc3QgYml0Z29LZXljaGFpbiA9IGF3YWl0IGtleWNoYWlucy5nZXQoeyBpZDogYml0Z29LZXlJZCB9KTtcbiAgICBhc3NlcnQoYml0Z29LZXljaGFpbiwgJ0tleWNoYWluIG5vdCBmb3VuZCcpO1xuICAgIGFzc2VydChiaXRnb0tleWNoYWluLnNvdXJjZSA9PT0gJ2JpdGdvJywgJ1RoZSBrZXljaGFpbiBpcyBub3QgYSBCaXRHbyBrZXljaGFpbicpO1xuICAgIGFzc2VydChiaXRnb0tleWNoYWluLnR5cGUgPT09ICd0c3MnLCAnQml0R28ga2V5Y2hhaW4gaXMgbm90IGEgVFNTIGtleWNoYWluJyk7XG4gICAgYXNzZXJ0KGJpdGdvS2V5Y2hhaW4uY29tbW9uS2V5Y2hhaW4sICdCaXRHbyBrZXljaGFpbiBkb2VzIG5vdCBoYXZlIGEgY29tbW9uIGtleWNoYWluJyk7XG4gICAgYXNzZXJ0KGJpdGdvS2V5Y2hhaW4uY29tbW9uS2V5Y2hhaW4gPT09IHVzZXJDb21tb25LZXljaGFpbiwgJ0NvbW1vbiBrZXljaGFpbiBtaXNtYXRjaCBiZXR3ZWVuIHRoZSBPVkNzIGFuZCBCaXRHbycpO1xuXG4gICAgY29uc3QgdXNlcktleWNoYWluUHJvbWlzZSA9IGtleWNoYWlucy5hZGQoe1xuICAgICAgc291cmNlOiAndXNlcicsXG4gICAgICBrZXlUeXBlOiAndHNzJyxcbiAgICAgIGNvbW1vbktleWNoYWluOiB1c2VyQ29tbW9uS2V5Y2hhaW4sXG4gICAgICBpc01QQ3YyOiB0cnVlLFxuICAgIH0pO1xuICAgIGNvbnN0IGJhY2t1cEtleWNoYWluUHJvbWlzZSA9IGtleWNoYWlucy5hZGQoe1xuICAgICAgc291cmNlOiAnYmFja3VwJyxcbiAgICAgIGtleVR5cGU6ICd0c3MnLFxuICAgICAgY29tbW9uS2V5Y2hhaW46IGJhY2t1cENvbW1vbktleWNoYWluLFxuICAgICAgaXNNUEN2MjogdHJ1ZSxcbiAgICB9KTtcblxuICAgIGNvbnN0IFt1c2VyS2V5Y2hhaW4sIGJhY2t1cEtleWNoYWluXSA9IGF3YWl0IFByb21pc2UuYWxsKFt1c2VyS2V5Y2hhaW5Qcm9taXNlLCBiYWNrdXBLZXljaGFpblByb21pc2VdKTtcbiAgICByZXR1cm4geyB1c2VyS2V5Y2hhaW4sIGJhY2t1cEtleWNoYWluLCBiaXRnb0tleWNoYWluIH07XG4gIH1cbn1cbiJdfQ==
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYml0Z28vdXRpbHMvdHNzL3JlZHBhbGxhcy9TTUMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLHNEQVM2QjtBQUc3QixtQ0FBcUQ7QUFDckQsc0RBQXdEO0FBQ3hELDhFQUErRztBQUUvRzs7Ozs7OztHQU9HO0FBQ0gsTUFBYSxzQkFBc0I7SUFHakMsWUFBb0IsS0FBZ0IsRUFBVSxRQUFtQjtRQUE3QyxVQUFLLEdBQUwsS0FBSyxDQUFXO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUMvRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksb0NBQW1CLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFTSxLQUFLLENBQUMsWUFBWSxDQUN2QixVQUFrQixFQUNsQixPQUEwQztRQUUxQyxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFBLCtEQUFrQyxFQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDeEcsQ0FBQztJQUVNLEtBQUssQ0FBQyxZQUFZLENBQ3ZCLFVBQWtCLEVBQ2xCLE9BQTBDO1FBRTFDLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUEsK0RBQWtDLEVBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN4RyxDQUFDO0lBRU0sS0FBSyxDQUFDLG9CQUFvQixDQUMvQixRQUF3RSxFQUN4RSxPQUEwQztRQUUxQyxJQUFBLGdCQUFNLEVBQ0osT0FBTyxDQUFDLEtBQUssS0FBSyxpREFBa0MsQ0FBQyx5QkFBeUIsRUFDOUUsd0NBQXdDLGlEQUFrQyxDQUFDLHlCQUF5QixVQUFVLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FDOUgsQ0FBQztRQUNG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QyxDQUFDO1FBQzlELElBQUEsZ0JBQU0sRUFBQyxhQUFhLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztRQUM1QyxJQUFBLGdCQUFNLEVBQUMsYUFBYSxDQUFDLE1BQU0sS0FBSyxPQUFPLEVBQUUsc0NBQXNDLENBQUMsQ0FBQztRQUNqRixJQUFBLGdCQUFNLEVBQUMsYUFBYSxDQUFDLElBQUksS0FBSyxLQUFLLEVBQUUsc0NBQXNDLENBQUMsQ0FBQztRQUM3RSxJQUFBLGdCQUFNLEVBQUMsYUFBYSxDQUFDLGNBQWMsRUFBRSxnREFBZ0QsQ0FBQyxDQUFDO1FBQ3ZGLElBQUEsZ0JBQU0sRUFBQyxhQUFhLENBQUMsY0FBYyxLQUFLLGtCQUFrQixFQUFFLHFEQUFxRCxDQUFDLENBQUM7UUFFbkgsTUFBTSxtQkFBbUIsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDO1lBQ3hDLE1BQU0sRUFBRSxNQUFNO1lBQ2QsT0FBTyxFQUFFLEtBQUs7WUFDZCxjQUFjLEVBQUUsa0JBQWtCO1lBQ2xDLE9BQU8sRUFBRSxJQUFJO1NBQ2QsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxxQkFBcUIsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDO1lBQzFDLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLE9BQU8sRUFBRSxLQUFLO1lBQ2QsY0FBYyxFQUFFLG9CQUFvQjtZQUNwQyxPQUFPLEVBQUUsSUFBSTtTQUNkLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxZQUFZLEVBQUUsY0FBYyxDQUFDLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsbUJBQW1CLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxDQUFDO1FBQ3ZHLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxDQUFDO0lBQ3pELENBQUM7Q0FDRjtBQTNKRCx3REEySkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQge1xuICBPVkNJbmRleEVudW0sXG4gIFJlZHBhbGxhc0JpdGdvVG9PVkMxUm91bmQxUmVzcG9uc2UsXG4gIFJlZHBhbGxhc0JpdGdvVG9PVkMxUm91bmQyUmVzcG9uc2UsXG4gIFJlZHBhbGxhc0tleUNyZWF0aW9uTVBDdjJTdGF0ZUVudW0sXG4gIFJlZHBhbGxhc01QQ3YyS2V5R2VuUm91bmQxUmVzcG9uc2UsXG4gIFJlZHBhbGxhc01QQ3YyS2V5R2VuUm91bmQyUmVzcG9uc2UsXG4gIFJlZHBhbGxhc09WQzFUb0JpdGdvUm91bmQxUGF5bG9hZCxcbiAgUmVkcGFsbGFzT1ZDMlRvQml0Z29Sb3VuZDJQYXlsb2FkLFxufSBmcm9tICdAYml0Z28vcHVibGljLXR5cGVzJztcbmltcG9ydCB7IElCYXNlQ29pbiB9IGZyb20gJy4uLy4uLy4uLy4uL2Jhc2VDb2luJztcbmltcG9ydCB7IEJpdEdvQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL2JpdGdvQmFzZSc7XG5pbXBvcnQgeyBkZWNvZGVPckVsc2UsIEtleWNoYWluIH0gZnJvbSAnLi4vLi4vLi4vLi4nO1xuaW1wb3J0IHsgUmVkcGFsbGFzTVBDdjJVdGlscyB9IGZyb20gJy4uL3JlZHBhbGxhc01QQ3YyJztcbmltcG9ydCB7IFJlZHBhbGxhc01QQ3YyS2V5R2VuU2VuZEZuLCBSZWRwYWxsYXNLZXlHZW5TZW5kZXJGb3JFbnRlcnByaXNlIH0gZnJvbSAnLi4vcmVkcGFsbGFzTVBDdjJLZXlHZW5TZW5kZXInO1xuXG4vKipcbiAqIEN1c3RvZGlhbCAoU01DL09WQykgREtHLW9ubHkga2V5IGdlbmVyYXRpb24gZm9yIHRoZSBaY2FzaCBPcmNoYXJkIHNoaWVsZGVkIHBvb2wgKFJlZFBhbGxhcykuXG4gKlxuICogTWlycm9ycyBmb3IgYm90aCBjdXN0b2RpYWwgYW5kIFNNQyB3YWxsZXRcbiAqIGNlcmVtb25pZXMgZHJpdmVuIGJ5IGV4dGVybmFsIE9WQyAob2ZmbGluZSB2YXVsdCBjb25zb2xlKSBjbGllbnRzOiByb3VuZDEvcm91bmQyIHBheWxvYWRzIGFyZVxuICogcmVsYXllZCBmcm9tIE9WQzEvT1ZDMiB0byBCaXRHbyBhbmQgYmFjay4gVGhlcmUgaXMgbm8gcm91bmQzIChubyBzaWduaW5nKSAtIFJlZFBhbGxhcyBNUFMgREtHXG4gKiBjb21wbGV0ZXMga2V5IGdlbmVyYXRpb24gaW4gMiBvbmxpbmUgcm91bmRzLCBzYW1lIGFzIEVkRFNBIE1QUyBES0cuXG4gKi9cbmV4cG9ydCBjbGFzcyBSZWRwYWxsYXNNUEN2MlNNQ1V0aWxzIHtcbiAgcHJpdmF0ZSBNUEN2MlV0aWxzOiBSZWRwYWxsYXNNUEN2MlV0aWxzO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYml0Z286IEJpdEdvQmFzZSwgcHJpdmF0ZSBiYXNlQ29pbjogSUJhc2VDb2luKSB7XG4gICAgdGhpcy5NUEN2MlV0aWxzID0gbmV3IFJlZHBhbGxhc01QQ3YyVXRpbHMoYml0Z28sIGJhc2VDb2luKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBrZXlHZW5Sb3VuZDEoXG4gICAgZW50ZXJwcmlzZTogc3RyaW5nLFxuICAgIHBheWxvYWQ6IFJlZHBhbGxhc09WQzFUb0JpdGdvUm91bmQxUGF5bG9hZFxuICApOiBQcm9taXNlPFJlZHBhbGxhc0JpdGdvVG9PVkMxUm91bmQxUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5rZXlHZW5Sb3VuZDFCeVNlbmRlcihSZWRwYWxsYXNLZXlHZW5TZW5kZXJGb3JFbnRlcnByaXNlKHRoaXMuYml0Z28sIGVudGVycHJpc2UpLCBwYXlsb2FkKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBrZXlHZW5Sb3VuZDIoXG4gICAgZW50ZXJwcmlzZTogc3RyaW5nLFxuICAgIHBheWxvYWQ6IFJlZHBhbGxhc09WQzJUb0JpdGdvUm91bmQyUGF5bG9hZFxuICApOiBQcm9taXNlPFJlZHBhbGxhc0JpdGdvVG9PVkMxUm91bmQyUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5rZXlHZW5Sb3VuZDJCeVNlbmRlcihSZWRwYWxsYXNLZXlHZW5TZW5kZXJGb3JFbnRlcnByaXNlKHRoaXMuYml0Z28sIGVudGVycHJpc2UpLCBwYXlsb2FkKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBrZXlHZW5Sb3VuZDFCeVNlbmRlcihcbiAgICBzZW5kZXJGbjogUmVkcGFsbGFzTVBDdjJLZXlHZW5TZW5kRm48UmVkcGFsbGFzTVBDdjJLZXlHZW5Sb3VuZDFSZXNwb25zZT4sXG4gICAgcGF5bG9hZDogUmVkcGFsbGFzT1ZDMVRvQml0Z29Sb3VuZDFQYXlsb2FkXG4gICk6IFByb21pc2U8UmVkcGFsbGFzQml0Z29Ub09WQzFSb3VuZDFSZXNwb25zZT4ge1xuICAgIGFzc2VydChcbiAgICAgIHBheWxvYWQuc3RhdGUgPT09IFJlZHBhbGxhc0tleUNyZWF0aW9uTVBDdjJTdGF0ZUVudW0uV2FpdGluZ0ZvckJpdGdvUm91bmQxRGF0YSxcbiAgICAgIGBJbnZhbGlkIHN0YXRlIGZvciByb3VuZCAxLCBleHBlY3RlZDogJHtSZWRwYWxsYXNLZXlDcmVhdGlvbk1QQ3YyU3RhdGVFbnVtLldhaXRpbmdGb3JCaXRnb1JvdW5kMURhdGF9LCBnb3Q6ICR7cGF5bG9hZC5zdGF0ZX1gXG4gICAgKTtcbiAgICBkZWNvZGVPckVsc2UoUmVkcGFsbGFzT1ZDMVRvQml0Z29Sb3VuZDFQYXlsb2FkLm5hbWUsIFJlZHBhbGxhc09WQzFUb0JpdGdvUm91bmQxUGF5bG9hZCwgcGF5bG9hZCwgKGVycm9ycykgPT4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBlcnJvcihzKSBwYXJzaW5nIHBheWxvYWQ6ICR7ZXJyb3JzfWApO1xuICAgIH0pO1xuXG4gICAgY29uc3Qgb3ZjMSA9IHBheWxvYWQub3ZjW09WQ0luZGV4RW51bS5PTkVdO1xuICAgIGNvbnN0IG92YzIgPSBwYXlsb2FkLm92Y1tPVkNJbmRleEVudW0uVFdPXTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLk1QQ3YyVXRpbHMuc2VuZEtleUdlbmVyYXRpb25Sb3VuZDFCeVNlbmRlcihzZW5kZXJGbiwge1xuICAgICAgdXNlckdwZ1B1YmxpY0tleTogb3ZjMS5ncGdQdWJLZXksXG4gICAgICBiYWNrdXBHcGdQdWJsaWNLZXk6IG92YzIuZ3BnUHViS2V5LFxuICAgICAgdXNlck1zZzE6IG92YzEub3ZjTXNnMSxcbiAgICAgIGJhY2t1cE1zZzE6IG92YzIub3ZjTXNnMSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0ge1xuICAgICAgc3RhdGU6IFJlZHBhbGxhc0tleUNyZWF0aW9uTVBDdjJTdGF0ZUVudW0uV2FpdGluZ0Zvck9WQzFSb3VuZDJEYXRhLFxuICAgICAgdHNzVmVyc2lvbjogcGF5bG9hZC50c3NWZXJzaW9uLFxuICAgICAgd2FsbGV0VHlwZTogcGF5bG9hZC53YWxsZXRUeXBlLFxuICAgICAgY29pbjogcGF5bG9hZC5jb2luLFxuICAgICAgb3ZjOiBwYXlsb2FkLm92YyxcbiAgICAgIHBsYXRmb3JtOiB7XG4gICAgICAgIHNlc3Npb25JZDogcmVzdWx0LnNlc3Npb25JZCxcbiAgICAgICAgYml0Z29Nc2cxOiByZXN1bHQuYml0Z29Nc2cxLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGRlY29kZU9yRWxzZShcbiAgICAgIFJlZHBhbGxhc0JpdGdvVG9PVkMxUm91bmQxUmVzcG9uc2UubmFtZSxcbiAgICAgIFJlZHBhbGxhc0JpdGdvVG9PVkMxUm91bmQxUmVzcG9uc2UsXG4gICAgICByZXNwb25zZSxcbiAgICAgIChlcnJvcnMpID0+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBlcnJvcihzKSBwYXJzaW5nIHJlc3BvbnNlOiAke2Vycm9yc31gKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGtleUdlblJvdW5kMkJ5U2VuZGVyKFxuICAgIHNlbmRlckZuOiBSZWRwYWxsYXNNUEN2MktleUdlblNlbmRGbjxSZWRwYWxsYXNNUEN2MktleUdlblJvdW5kMlJlc3BvbnNlPixcbiAgICBwYXlsb2FkOiBSZWRwYWxsYXNPVkMyVG9CaXRnb1JvdW5kMlBheWxvYWRcbiAgKTogUHJvbWlzZTxSZWRwYWxsYXNCaXRnb1RvT1ZDMVJvdW5kMlJlc3BvbnNlPiB7XG4gICAgYXNzZXJ0KFxuICAgICAgcGF5bG9hZC5zdGF0ZSA9PT0gUmVkcGFsbGFzS2V5Q3JlYXRpb25NUEN2MlN0YXRlRW51bS5XYWl0aW5nRm9yQml0Z29Sb3VuZDJEYXRhLFxuICAgICAgYEludmFsaWQgc3RhdGUgZm9yIHJvdW5kIDIsIGV4cGVjdGVkOiAke1JlZHBhbGxhc0tleUNyZWF0aW9uTVBDdjJTdGF0ZUVudW0uV2FpdGluZ0ZvckJpdGdvUm91bmQyRGF0YX0sIGdvdDogJHtwYXlsb2FkLnN0YXRlfWBcbiAgICApO1xuICAgIGRlY29kZU9yRWxzZShSZWRwYWxsYXNPVkMyVG9CaXRnb1JvdW5kMlBheWxvYWQubmFtZSwgUmVkcGFsbGFzT1ZDMlRvQml0Z29Sb3VuZDJQYXlsb2FkLCBwYXlsb2FkLCAoZXJyb3JzKSA9PiB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGVycm9yKHMpIHBhcnNpbmcgcGF5bG9hZDogJHtlcnJvcnN9YCk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBvdmMxID0gcGF5bG9hZC5vdmNbT1ZDSW5kZXhFbnVtLk9ORV07XG4gICAgY29uc3Qgb3ZjMiA9IHBheWxvYWQub3ZjW09WQ0luZGV4RW51bS5UV09dO1xuICAgIGNvbnN0IHNlc3Npb25JZCA9IHBheWxvYWQucGxhdGZvcm0uc2Vzc2lvbklkO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuTVBDdjJVdGlscy5zZW5kS2V5R2VuZXJhdGlvblJvdW5kMkJ5U2VuZGVyKHNlbmRlckZuLCB7XG4gICAgICBzZXNzaW9uSWQsXG4gICAgICB1c2VyTXNnMjogb3ZjMS5vdmNNc2cyLFxuICAgICAgYmFja3VwTXNnMjogb3ZjMi5vdmNNc2cyLFxuICAgIH0pO1xuXG4gICAgYXNzZXJ0LmVxdWFsKHNlc3Npb25JZCwgcmVzdWx0LnNlc3Npb25JZCwgJ1JvdW5kIDEgYW5kIHJvdW5kIDIgc2Vzc2lvbiBJRHMgZG8gbm90IG1hdGNoJyk7XG5cbiAgICBjb25zdCBrZXljaGFpbnMgPSB0aGlzLmJhc2VDb2luLmtleWNoYWlucygpO1xuICAgIGNvbnN0IGJpdGdvS2V5Y2hhaW4gPSBhd2FpdCBrZXljaGFpbnMuYWRkKHtcbiAgICAgIHNvdXJjZTogJ2JpdGdvJyxcbiAgICAgIGtleVR5cGU6ICd0c3MnLFxuICAgICAgY29tbW9uS2V5Y2hhaW46IHJlc3VsdC5jb21tb25QdWJsaWNLZXljaGFpbixcbiAgICAgIGlzTVBDdjI6IHRydWUsXG4gICAgfSk7XG5cbiAgICBjb25zdCByZXNwb25zZSA9IHtcbiAgICAgIHN0YXRlOiBSZWRwYWxsYXNLZXlDcmVhdGlvbk1QQ3YyU3RhdGVFbnVtLldhaXRpbmdGb3JPVkMxR2VuZXJhdGVLZXksXG4gICAgICBiaXRHb0tleUlkOiBiaXRnb0tleWNoYWluLmlkLFxuICAgICAgdHNzVmVyc2lvbjogcGF5bG9hZC50c3NWZXJzaW9uLFxuICAgICAgd2FsbGV0VHlwZTogcGF5bG9hZC53YWxsZXRUeXBlLFxuICAgICAgY29pbjogcGF5bG9hZC5jb2luLFxuICAgICAgb3ZjOiBwYXlsb2FkLm92YyxcbiAgICAgIHBsYXRmb3JtOiB7XG4gICAgICAgIC8vIHNlc3Npb25JZC9iaXRnb01zZzEgY2FycmllZCBvdmVyIGZyb20gcGF5bG9hZC5wbGF0Zm9ybTsgc2FmZSBiZWNhdXNlIHRoZSBhc3NlcnRcbiAgICAgICAgLy8gYWJvdmUgZ3VhcmFudGVlcyBwYXlsb2FkLnBsYXRmb3JtLnNlc3Npb25JZCBlcXVhbHMgcmVzdWx0LnNlc3Npb25JZC5cbiAgICAgICAgLi4ucGF5bG9hZC5wbGF0Zm9ybSxcbiAgICAgICAgY29tbW9uUHVibGljS2V5Y2hhaW46IHJlc3VsdC5jb21tb25QdWJsaWNLZXljaGFpbixcbiAgICAgICAgYml0Z29Nc2cyOiByZXN1bHQuYml0Z29Nc2cyLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGRlY29kZU9yRWxzZShcbiAgICAgIFJlZHBhbGxhc0JpdGdvVG9PVkMxUm91bmQyUmVzcG9uc2UubmFtZSxcbiAgICAgIFJlZHBhbGxhc0JpdGdvVG9PVkMxUm91bmQyUmVzcG9uc2UsXG4gICAgICByZXNwb25zZSxcbiAgICAgIChlcnJvcnMpID0+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBlcnJvcihzKSBwYXJzaW5nIHJlc3BvbnNlOiAke2Vycm9yc31gKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHVwbG9hZENsaWVudEtleXMoXG4gICAgYml0Z29LZXlJZDogc3RyaW5nLFxuICAgIHVzZXJDb21tb25LZXljaGFpbjogc3RyaW5nLFxuICAgIGJhY2t1cENvbW1vbktleWNoYWluOiBzdHJpbmdcbiAgKTogUHJvbWlzZTx7IHVzZXJLZXljaGFpbjogS2V5Y2hhaW47IGJhY2t1cEtleWNoYWluOiBLZXljaGFpbjsgYml0Z29LZXljaGFpbjogS2V5Y2hhaW4gfT4ge1xuICAgIGFzc2VydChcbiAgICAgIHVzZXJDb21tb25LZXljaGFpbiA9PT0gYmFja3VwQ29tbW9uS2V5Y2hhaW4sXG4gICAgICAnQ29tbW9uIGtleWNoYWluIG1pc21hdGNoIGJldHdlZW4gdGhlIHVzZXIgYW5kIGJhY2t1cCBrZXljaGFpbnMnXG4gICAgKTtcblxuICAgIGNvbnN0IGtleWNoYWlucyA9IHRoaXMuYmFzZUNvaW4ua2V5Y2hhaW5zKCk7XG4gICAgY29uc3QgYml0Z29LZXljaGFpbiA9IGF3YWl0IGtleWNoYWlucy5nZXQoeyBpZDogYml0Z29LZXlJZCB9KTtcbiAgICBhc3NlcnQoYml0Z29LZXljaGFpbiwgJ0tleWNoYWluIG5vdCBmb3VuZCcpO1xuICAgIGFzc2VydChiaXRnb0tleWNoYWluLnNvdXJjZSA9PT0gJ2JpdGdvJywgJ1RoZSBrZXljaGFpbiBpcyBub3QgYSBCaXRHbyBrZXljaGFpbicpO1xuICAgIGFzc2VydChiaXRnb0tleWNoYWluLnR5cGUgPT09ICd0c3MnLCAnQml0R28ga2V5Y2hhaW4gaXMgbm90IGEgVFNTIGtleWNoYWluJyk7XG4gICAgYXNzZXJ0KGJpdGdvS2V5Y2hhaW4uY29tbW9uS2V5Y2hhaW4sICdCaXRHbyBrZXljaGFpbiBkb2VzIG5vdCBoYXZlIGEgY29tbW9uIGtleWNoYWluJyk7XG4gICAgYXNzZXJ0KGJpdGdvS2V5Y2hhaW4uY29tbW9uS2V5Y2hhaW4gPT09IHVzZXJDb21tb25LZXljaGFpbiwgJ0NvbW1vbiBrZXljaGFpbiBtaXNtYXRjaCBiZXR3ZWVuIHRoZSBPVkNzIGFuZCBCaXRHbycpO1xuXG4gICAgY29uc3QgdXNlcktleWNoYWluUHJvbWlzZSA9IGtleWNoYWlucy5hZGQoe1xuICAgICAgc291cmNlOiAndXNlcicsXG4gICAgICBrZXlUeXBlOiAndHNzJyxcbiAgICAgIGNvbW1vbktleWNoYWluOiB1c2VyQ29tbW9uS2V5Y2hhaW4sXG4gICAgICBpc01QQ3YyOiB0cnVlLFxuICAgIH0pO1xuICAgIGNvbnN0IGJhY2t1cEtleWNoYWluUHJvbWlzZSA9IGtleWNoYWlucy5hZGQoe1xuICAgICAgc291cmNlOiAnYmFja3VwJyxcbiAgICAgIGtleVR5cGU6ICd0c3MnLFxuICAgICAgY29tbW9uS2V5Y2hhaW46IGJhY2t1cENvbW1vbktleWNoYWluLFxuICAgICAgaXNNUEN2MjogdHJ1ZSxcbiAgICB9KTtcblxuICAgIGNvbnN0IFt1c2VyS2V5Y2hhaW4sIGJhY2t1cEtleWNoYWluXSA9IGF3YWl0IFByb21pc2UuYWxsKFt1c2VyS2V5Y2hhaW5Qcm9taXNlLCBiYWNrdXBLZXljaGFpblByb21pc2VdKTtcbiAgICByZXR1cm4geyB1c2VyS2V5Y2hhaW4sIGJhY2t1cEtleWNoYWluLCBiaXRnb0tleWNoYWluIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -14,11 +14,8 @@ import { GenerateRedpallasMPCv2KeyRequestResponse, RedpallasMPCv2KeyGenSendFn }
|
|
|
14
14
|
* addresses is out of scope for this SDK.
|
|
15
15
|
*
|
|
16
16
|
* RedPallas MPS DKG completes in the same 2-round shape as EdDSA MPS DKG (round0 local, round1 +
|
|
17
|
-
* round2 online)
|
|
18
|
-
*
|
|
19
|
-
* intentionally not implemented here. The resulting `commonPublicKeychain` is the raw 32-byte
|
|
20
|
-
* RedPallas group public key (64 hex chars) - there is no BIP32-style chain code, unlike EdDSA/ECDSA
|
|
21
|
-
* commonKeychains.
|
|
17
|
+
* round2 online). The resulting `commonPublicKeychain` is the raw 32-byte RedPallas group public
|
|
18
|
+
* key (64 hex chars) - there is no BIP32-style chain code, unlike EdDSA/ECDSA commonKeychains.
|
|
22
19
|
*/
|
|
23
20
|
export declare class RedpallasMPCv2Utils extends BaseTssUtils<unknown> {
|
|
24
21
|
constructor(bitgo: BitGoBase, baseCoin: IBaseCoin, wallet?: IWallet);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redpallasMPCv2.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/redpallas/redpallasMPCv2.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,iCAAiC,EACjC,kCAAkC,EAClC,iCAAiC,EACjC,kCAAkC,EACnC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAEL,wCAAwC,EAExC,0BAA0B,EAC3B,MAAM,8BAA8B,CAAC;AAEtC
|
|
1
|
+
{"version":3,"file":"redpallasMPCv2.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/redpallas/redpallasMPCv2.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,iCAAiC,EACjC,kCAAkC,EAClC,iCAAiC,EACjC,kCAAkC,EACnC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAEL,wCAAwC,EAExC,0BAA0B,EAC3B,MAAM,8BAA8B,CAAC;AAEtC;;;;;;;;;;;;GAYG;AACH,qBAAa,mBAAoB,SAAQ,YAAY,CAAC,OAAO,CAAC;gBAChD,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,OAAO;IAO7D,uBAAuB,CAC3B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,iCAAiC,EAC1C,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,kCAAkC,CAAC;IAOxC,+BAA+B,CACnC,QAAQ,EAAE,0BAA0B,CAAC,wCAAwC,CAAC,EAC9E,OAAO,EAAE,iCAAiC,GACzC,OAAO,CAAC,kCAAkC,CAAC;IAOxC,uBAAuB,CAC3B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,iCAAiC,GACzC,OAAO,CAAC,kCAAkC,CAAC;IAIxC,+BAA+B,CACnC,QAAQ,EAAE,0BAA0B,CAAC,wCAAwC,CAAC,EAC9E,OAAO,EAAE,iCAAiC,GACzC,OAAO,CAAC,kCAAkC,CAAC;CAQ/C"}
|
|
@@ -17,11 +17,8 @@ const redpallasMPCv2KeyGenSender_1 = require("./redpallasMPCv2KeyGenSender");
|
|
|
17
17
|
* addresses is out of scope for this SDK.
|
|
18
18
|
*
|
|
19
19
|
* RedPallas MPS DKG completes in the same 2-round shape as EdDSA MPS DKG (round0 local, round1 +
|
|
20
|
-
* round2 online)
|
|
21
|
-
*
|
|
22
|
-
* intentionally not implemented here. The resulting `commonPublicKeychain` is the raw 32-byte
|
|
23
|
-
* RedPallas group public key (64 hex chars) - there is no BIP32-style chain code, unlike EdDSA/ECDSA
|
|
24
|
-
* commonKeychains.
|
|
20
|
+
* round2 online). The resulting `commonPublicKeychain` is the raw 32-byte RedPallas group public
|
|
21
|
+
* key (64 hex chars) - there is no BIP32-style chain code, unlike EdDSA/ECDSA commonKeychains.
|
|
25
22
|
*/
|
|
26
23
|
class RedpallasMPCv2Utils extends baseTSSUtils_1.default {
|
|
27
24
|
constructor(bitgo, baseCoin, wallet) {
|
|
@@ -43,4 +40,4 @@ class RedpallasMPCv2Utils extends baseTSSUtils_1.default {
|
|
|
43
40
|
}
|
|
44
41
|
}
|
|
45
42
|
exports.RedpallasMPCv2Utils = RedpallasMPCv2Utils;
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkcGFsbGFzTVBDdjIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYml0Z28vdXRpbHMvdHNzL3JlZHBhbGxhcy9yZWRwYWxsYXNNUEN2Mi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxzREFNNkI7QUFJN0IsbUVBQTJDO0FBQzNDLDZFQUtzQztBQUV0Qzs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxNQUFhLG1CQUFvQixTQUFRLHNCQUFxQjtJQUM1RCxZQUFZLEtBQWdCLEVBQUUsUUFBbUIsRUFBRSxNQUFnQjtRQUNqRSxLQUFLLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELDBDQUEwQztJQUUxQyxLQUFLLENBQUMsdUJBQXVCLENBQzNCLFVBQWtCLEVBQ2xCLE9BQTBDLEVBQzFDLE1BQWU7UUFFZixPQUFPLElBQUksQ0FBQywrQkFBK0IsQ0FDekMsSUFBQSwrREFBa0MsRUFBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsRUFDbEUsT0FBTyxDQUNSLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLCtCQUErQixDQUNuQyxRQUE4RSxFQUM5RSxPQUEwQztRQUUxQyxPQUFPLFFBQVEsQ0FDYixtQ0FBb0IsQ0FBQyxVQUFVLENBQUMsRUFDaEMsT0FBK0MsQ0FDRCxDQUFDO0lBQ25ELENBQUM7SUFFRCxLQUFLLENBQUMsdUJBQXVCLENBQzNCLFVBQWtCLEVBQ2xCLE9BQTBDO1FBRTFDLE9BQU8sSUFBSSxDQUFDLCtCQUErQixDQUFDLElBQUEsK0RBQWtDLEVBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNuSCxDQUFDO0lBRUQsS0FBSyxDQUFDLCtCQUErQixDQUNuQyxRQUE4RSxFQUM5RSxPQUEwQztRQUUxQyxPQUFPLFFBQVEsQ0FDYixtQ0FBb0IsQ0FBQyxVQUFVLENBQUMsRUFDaEMsT0FBK0MsQ0FDRCxDQUFDO0lBQ25ELENBQUM7Q0FHRjtBQS9DRCxrREErQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBNUEN2MktleUdlblN0YXRlRW51bSxcbiAgUmVkcGFsbGFzTVBDdjJLZXlHZW5Sb3VuZDFSZXF1ZXN0LFxuICBSZWRwYWxsYXNNUEN2MktleUdlblJvdW5kMVJlc3BvbnNlLFxuICBSZWRwYWxsYXNNUEN2MktleUdlblJvdW5kMlJlcXVlc3QsXG4gIFJlZHBhbGxhc01QQ3YyS2V5R2VuUm91bmQyUmVzcG9uc2UsXG59IGZyb20gJ0BiaXRnby9wdWJsaWMtdHlwZXMnO1xuaW1wb3J0IHsgSUJhc2VDb2luIH0gZnJvbSAnLi4vLi4vLi4vYmFzZUNvaW4nO1xuaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnLi4vLi4vLi4vYml0Z29CYXNlJztcbmltcG9ydCB7IElXYWxsZXQgfSBmcm9tICcuLi8uLi8uLi93YWxsZXQnO1xuaW1wb3J0IEJhc2VUc3NVdGlscyBmcm9tICcuLi9iYXNlVFNTVXRpbHMnO1xuaW1wb3J0IHtcbiAgR2VuZXJhdGVSZWRwYWxsYXNNUEN2MktleVJlcXVlc3RCb2R5LFxuICBHZW5lcmF0ZVJlZHBhbGxhc01QQ3YyS2V5UmVxdWVzdFJlc3BvbnNlLFxuICBSZWRwYWxsYXNLZXlHZW5TZW5kZXJGb3JFbnRlcnByaXNlLFxuICBSZWRwYWxsYXNNUEN2MktleUdlblNlbmRGbixcbn0gZnJvbSAnLi9yZWRwYWxsYXNNUEN2MktleUdlblNlbmRlcic7XG5cbi8qKlxuICogREtHLW9ubHkgTVBDdjIgdXRpbHMgZm9yIHRoZSBaY2FzaCBPcmNoYXJkIHNoaWVsZGVkIHBvb2wgKFJlZFBhbGxhcyAvIFwiSXJvbndvb2RcIikuXG4gKlxuICogVGhpcyBjdXJyZW50bHkgb25seSBleHBvc2VzIHRoZSBCaXRHby1wbGF0Zm9ybSByb3VuZDEvcm91bmQyIGRpc3BhdGNoIHVzZWQgYnkgdGhlIGN1c3RvZGlhbFxuICogU01DL09WQyBjZXJlbW9ueSAoc2VlIGBSZWRwYWxsYXNNUEN2MlNNQ1V0aWxzYCBpbiBgLi9TTUMvdXRpbHMudHNgKSAtIHRoZXJlIGlzIG5vIHNlbGYtY3VzdG9keVxuICogKGRpcmVjdCwgbm9uLU9WQykga2V5LWdlbmVyYXRpb24gZW50cnlwb2ludCBoZXJlLCBzaW5jZSBub3RoaW5nIGluIHRoaXMgU0RLIGNvbnN0cnVjdHMgb25lXG4gKiB0b2RheS4gVGhlcmUgaXMgYWxzbyBubyBzaWduaW5nIChEU0cpIHN1cHBvcnQgLSB0cmFuc2FjdGlvbiBzaWduaW5nIGZvciBaY2FzaCBzaGllbGRlZFxuICogYWRkcmVzc2VzIGlzIG91dCBvZiBzY29wZSBmb3IgdGhpcyBTREsuXG4gKlxuICogUmVkUGFsbGFzIE1QUyBES0cgY29tcGxldGVzIGluIHRoZSBzYW1lIDItcm91bmQgc2hhcGUgYXMgRWREU0EgTVBTIERLRyAocm91bmQwIGxvY2FsLCByb3VuZDEgK1xuICogcm91bmQyIG9ubGluZSkuIFRoZSByZXN1bHRpbmcgYGNvbW1vblB1YmxpY0tleWNoYWluYCBpcyB0aGUgcmF3IDMyLWJ5dGUgUmVkUGFsbGFzIGdyb3VwIHB1YmxpY1xuICoga2V5ICg2NCBoZXggY2hhcnMpIC0gdGhlcmUgaXMgbm8gQklQMzItc3R5bGUgY2hhaW4gY29kZSwgdW5saWtlIEVkRFNBL0VDRFNBIGNvbW1vbktleWNoYWlucy5cbiAqL1xuZXhwb3J0IGNsYXNzIFJlZHBhbGxhc01QQ3YyVXRpbHMgZXh0ZW5kcyBCYXNlVHNzVXRpbHM8dW5rbm93bj4ge1xuICBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlLCBiYXNlQ29pbjogSUJhc2VDb2luLCB3YWxsZXQ/OiBJV2FsbGV0KSB7XG4gICAgc3VwZXIoYml0Z28sIGJhc2VDb2luLCB3YWxsZXQpO1xuICAgIHRoaXMuc2V0Qml0Z29HcGdQdWJLZXkoYml0Z28pO1xuICB9XG5cbiAgLy8gI3JlZ2lvbiBwbGF0Zm9ybSByb3VuZDEvcm91bmQyIGRpc3BhdGNoXG5cbiAgYXN5bmMgc2VuZEtleUdlbmVyYXRpb25Sb3VuZDEoXG4gICAgZW50ZXJwcmlzZTogc3RyaW5nLFxuICAgIHBheWxvYWQ6IFJlZHBhbGxhc01QQ3YyS2V5R2VuUm91bmQxUmVxdWVzdCxcbiAgICBzYWZlSWQ/OiBzdHJpbmdcbiAgKTogUHJvbWlzZTxSZWRwYWxsYXNNUEN2MktleUdlblJvdW5kMVJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuc2VuZEtleUdlbmVyYXRpb25Sb3VuZDFCeVNlbmRlcihcbiAgICAgIFJlZHBhbGxhc0tleUdlblNlbmRlckZvckVudGVycHJpc2UodGhpcy5iaXRnbywgZW50ZXJwcmlzZSwgc2FmZUlkKSxcbiAgICAgIHBheWxvYWRcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgc2VuZEtleUdlbmVyYXRpb25Sb3VuZDFCeVNlbmRlcihcbiAgICBzZW5kZXJGbjogUmVkcGFsbGFzTVBDdjJLZXlHZW5TZW5kRm48R2VuZXJhdGVSZWRwYWxsYXNNUEN2MktleVJlcXVlc3RSZXNwb25zZT4sXG4gICAgcGF5bG9hZDogUmVkcGFsbGFzTVBDdjJLZXlHZW5Sb3VuZDFSZXF1ZXN0XG4gICk6IFByb21pc2U8UmVkcGFsbGFzTVBDdjJLZXlHZW5Sb3VuZDFSZXNwb25zZT4ge1xuICAgIHJldHVybiBzZW5kZXJGbihcbiAgICAgIE1QQ3YyS2V5R2VuU3RhdGVFbnVtWydNUEN2Mi1SMSddLFxuICAgICAgcGF5bG9hZCBhcyBHZW5lcmF0ZVJlZHBhbGxhc01QQ3YyS2V5UmVxdWVzdEJvZHlcbiAgICApIGFzIFByb21pc2U8UmVkcGFsbGFzTVBDdjJLZXlHZW5Sb3VuZDFSZXNwb25zZT47XG4gIH1cblxuICBhc3luYyBzZW5kS2V5R2VuZXJhdGlvblJvdW5kMihcbiAgICBlbnRlcnByaXNlOiBzdHJpbmcsXG4gICAgcGF5bG9hZDogUmVkcGFsbGFzTVBDdjJLZXlHZW5Sb3VuZDJSZXF1ZXN0XG4gICk6IFByb21pc2U8UmVkcGFsbGFzTVBDdjJLZXlHZW5Sb3VuZDJSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLnNlbmRLZXlHZW5lcmF0aW9uUm91bmQyQnlTZW5kZXIoUmVkcGFsbGFzS2V5R2VuU2VuZGVyRm9yRW50ZXJwcmlzZSh0aGlzLmJpdGdvLCBlbnRlcnByaXNlKSwgcGF5bG9hZCk7XG4gIH1cblxuICBhc3luYyBzZW5kS2V5R2VuZXJhdGlvblJvdW5kMkJ5U2VuZGVyKFxuICAgIHNlbmRlckZuOiBSZWRwYWxsYXNNUEN2MktleUdlblNlbmRGbjxHZW5lcmF0ZVJlZHBhbGxhc01QQ3YyS2V5UmVxdWVzdFJlc3BvbnNlPixcbiAgICBwYXlsb2FkOiBSZWRwYWxsYXNNUEN2MktleUdlblJvdW5kMlJlcXVlc3RcbiAgKTogUHJvbWlzZTxSZWRwYWxsYXNNUEN2MktleUdlblJvdW5kMlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHNlbmRlckZuKFxuICAgICAgTVBDdjJLZXlHZW5TdGF0ZUVudW1bJ01QQ3YyLVIyJ10sXG4gICAgICBwYXlsb2FkIGFzIEdlbmVyYXRlUmVkcGFsbGFzTVBDdjJLZXlSZXF1ZXN0Qm9keVxuICAgICkgYXMgUHJvbWlzZTxSZWRwYWxsYXNNUEN2MktleUdlblJvdW5kMlJlc3BvbnNlPjtcbiAgfVxuXG4gIC8vICNlbmRyZWdpb25cbn1cbiJdfQ==
|
|
@@ -22,7 +22,6 @@ declare const generateRedpallasMPCv2KeyRequestBody: t.UnionC<[t.TypeC<{
|
|
|
22
22
|
message: t.StringC;
|
|
23
23
|
signature: t.StringC;
|
|
24
24
|
}>;
|
|
25
|
-
derivationSeed: t.StringC;
|
|
26
25
|
}>]>;
|
|
27
26
|
export type GenerateRedpallasMPCv2KeyRequestBody = t.TypeOf<typeof generateRedpallasMPCv2KeyRequestBody>;
|
|
28
27
|
declare const generateRedpallasMPCv2KeyRequestResponse: t.UnionC<[t.TypeC<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redpallasMPCv2KeyGenSender.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/redpallas/redpallasMPCv2KeyGenSender.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC;AAC3B,OAAO,EAGL,gBAAgB,EAKjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,QAAA,MAAM,oCAAoC;6BA6B6lL,aAAa;+BAAkD,aAAa;cAAgC,EAAG,KAAK;iBAAmB,EAAG,OAAO;mBAAoB,EAAG,OAAO;;gBAAyB,EAAG,KAAK;iBAAmB,EAAG,OAAO;mBAAoB,EAAG,OAAO;;;sBAAwgB,aAAa;cAAgC,EAAG,KAAK;iBAAmB,EAAG,OAAO;mBAAoB,EAAG,OAAO;;gBAAyB,EAAG,KAAK;iBAAmB,EAAG,OAAO;mBAAoB,EAAG,OAAO;;
|
|
1
|
+
{"version":3,"file":"redpallasMPCv2KeyGenSender.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/redpallas/redpallasMPCv2KeyGenSender.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC;AAC3B,OAAO,EAGL,gBAAgB,EAKjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,QAAA,MAAM,oCAAoC;6BA6B6lL,aAAa;+BAAkD,aAAa;cAAgC,EAAG,KAAK;iBAAmB,EAAG,OAAO;mBAAoB,EAAG,OAAO;;gBAAyB,EAAG,KAAK;iBAAmB,EAAG,OAAO;mBAAoB,EAAG,OAAO;;;sBAAwgB,aAAa;cAAgC,EAAG,KAAK;iBAAmB,EAAG,OAAO;mBAAoB,EAAG,OAAO;;gBAAyB,EAAG,KAAK;iBAAmB,EAAG,OAAO;mBAAoB,EAAG,OAAO;;IA1BpmN,CAAC;AACH,MAAM,MAAM,oCAAoC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAEzG,QAAA,MAAM,wCAAwC;sBAuB+iM,aAAa;eAAiC,EAAG,KAAK;iBAAmB,EAAG,OAAO;mBAAoB,EAAG,OAAO;;;sBAAmmB,aAAa;iCAAoD,aAAa;eAAiC,EAAG,KAAK;iBAAmB,EAAG,OAAO;mBAAoB,EAAG,OAAO;;IApBj+N,CAAC;AACH,MAAM,MAAM,wCAAwC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,wCAAwC,CAAC,CAAC;AAEjH,MAAM,MAAM,0BAA0B,CAAC,CAAC,SAAS,wCAAwC,IAAI,CAC3F,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,oCAAoC,KAC1C,OAAO,CAAC,CAAC,CAAC,CAAC;AAEhB,wBAAgB,kCAAkC,CAAC,CAAC,SAAS,wCAAwC,EACnG,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,GACd,0BAA0B,CAAC,CAAC,CAAC,CAO/B"}
|
|
@@ -70,7 +70,6 @@ describe('RedpallasMPCv2Utils', function () {
|
|
|
70
70
|
sessionId: 's1',
|
|
71
71
|
userMsg2: { message: 'u2', signature: 'usig' },
|
|
72
72
|
backupMsg2: { message: 'b2', signature: 'bsig' },
|
|
73
|
-
derivationSeed: 'a'.repeat(64),
|
|
74
73
|
};
|
|
75
74
|
const result = await utils.sendKeyGenerationRound2BySender(senderFn, payload);
|
|
76
75
|
assert.ok(senderFn.calledOnceWith('MPCv2-R2', payload));
|
|
@@ -78,4 +77,4 @@ describe('RedpallasMPCv2Utils', function () {
|
|
|
78
77
|
});
|
|
79
78
|
});
|
|
80
79
|
});
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkcGFsbGFzTVBDdjIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvYml0Z28vdXRpbHMvdHNzL3JlZHBhbGxhcy9yZWRwYWxsYXNNUEN2Mi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFpQztBQUNqQyw2Q0FBK0I7QUFDL0IsK0NBQTZFO0FBRTdFLE1BQU0sRUFBRSxtQkFBbUIsRUFBRSxHQUFHLG9CQUFjLENBQUM7QUFHL0MsUUFBUSxDQUFDLHFCQUFxQixFQUFFO0lBQzlCLFNBQVMsQ0FBQztRQUNSLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNsQixDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyw0REFBNEQsRUFBRTtRQUNyRSxJQUFJLEtBQTBCLENBQUM7UUFFL0IsVUFBVSxDQUFDO1lBQ1QsTUFBTSxTQUFTLEdBQUcsRUFBMEIsQ0FBQztZQUM3QyxNQUFNLFFBQVEsR0FBRyxFQUEwQixDQUFDO1lBQzVDLEtBQUssR0FBRyxJQUFJLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN2RCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyw0RUFBNEUsRUFBRSxLQUFLO1lBQ3BGLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMzRyxNQUFNLE9BQU8sR0FBRztnQkFDZCxnQkFBZ0IsRUFBRSxVQUFVO2dCQUM1QixrQkFBa0IsRUFBRSxZQUFZO2dCQUNoQyxRQUFRLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUU7Z0JBQzlDLFVBQVUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRTthQUNqRCxDQUFDO1lBRUYsTUFBTSxNQUFNLEdBQUcsTUFBTSxLQUFLLENBQUMsK0JBQStCLENBQUMsUUFBaUIsRUFBRSxPQUFnQixDQUFDLENBQUM7WUFFaEcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ3hELE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM3QyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyw0RUFBNEUsRUFBRSxLQUFLO1lBQ3BGLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBQ3JDLFNBQVMsRUFBRSxJQUFJO2dCQUNmLG9CQUFvQixFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUNwQyxTQUFTLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUU7YUFDOUMsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxPQUFPLEdBQUc7Z0JBQ2QsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsUUFBUSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFO2dCQUM5QyxVQUFVLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUU7YUFDakQsQ0FBQztZQUVGLE1BQU0sTUFBTSxHQUFHLE1BQU0sS0FBSyxDQUFDLCtCQUErQixDQUFDLFFBQWlCLEVBQUUsT0FBZ0IsQ0FBQyxDQUFDO1lBRWhHLE1BQU0sQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUN4RCxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbEUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgKiBhcyBzaW5vbiBmcm9tICdzaW5vbic7XG5pbXBvcnQgeyBCaXRHb0Jhc2UsIElCYXNlQ29pbiwgUmVkcGFsbGFzVXRpbHMgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9zcmMnO1xuXG5jb25zdCB7IFJlZHBhbGxhc01QQ3YyVXRpbHMgfSA9IFJlZHBhbGxhc1V0aWxzO1xudHlwZSBSZWRwYWxsYXNNUEN2MlV0aWxzID0gSW5zdGFuY2VUeXBlPHR5cGVvZiBSZWRwYWxsYXNVdGlscy5SZWRwYWxsYXNNUEN2MlV0aWxzPjtcblxuZGVzY3JpYmUoJ1JlZHBhbGxhc01QQ3YyVXRpbHMnLCBmdW5jdGlvbiAoKSB7XG4gIGFmdGVyRWFjaChmdW5jdGlvbiAoKSB7XG4gICAgc2lub24ucmVzdG9yZSgpO1xuICB9KTtcblxuICBkZXNjcmliZSgnc2VuZEtleUdlbmVyYXRpb25Sb3VuZDEgLyBzZW5kS2V5R2VuZXJhdGlvblJvdW5kMiBkaXNwYXRjaCcsIGZ1bmN0aW9uICgpIHtcbiAgICBsZXQgdXRpbHM6IFJlZHBhbGxhc01QQ3YyVXRpbHM7XG5cbiAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IG1vY2tCaXRHbyA9IHt9IGFzIHVua25vd24gYXMgQml0R29CYXNlO1xuICAgICAgY29uc3QgbW9ja0NvaW4gPSB7fSBhcyB1bmtub3duIGFzIElCYXNlQ29pbjtcbiAgICAgIHV0aWxzID0gbmV3IFJlZHBhbGxhc01QQ3YyVXRpbHMobW9ja0JpdEdvLCBtb2NrQ29pbik7XG4gICAgfSk7XG5cbiAgICBpdCgnc2VuZEtleUdlbmVyYXRpb25Sb3VuZDFCeVNlbmRlciBpbnZva2VzIHRoZSBzZW5kZXIgd2l0aCB0aGUgTVBDdjItUjEgcm91bmQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBzZW5kZXJGbiA9IHNpbm9uLnN0dWIoKS5yZXNvbHZlcyh7IHNlc3Npb25JZDogJ3MxJywgYml0Z29Nc2cxOiB7IG1lc3NhZ2U6ICdtJywgc2lnbmF0dXJlOiAnc2lnJyB9IH0pO1xuICAgICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgICAgdXNlckdwZ1B1YmxpY0tleTogJ3VzZXItcHViJyxcbiAgICAgICAgYmFja3VwR3BnUHVibGljS2V5OiAnYmFja3VwLXB1YicsXG4gICAgICAgIHVzZXJNc2cxOiB7IG1lc3NhZ2U6ICd1MScsIHNpZ25hdHVyZTogJ3VzaWcnIH0sXG4gICAgICAgIGJhY2t1cE1zZzE6IHsgbWVzc2FnZTogJ2IxJywgc2lnbmF0dXJlOiAnYnNpZycgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHV0aWxzLnNlbmRLZXlHZW5lcmF0aW9uUm91bmQxQnlTZW5kZXIoc2VuZGVyRm4gYXMgbmV2ZXIsIHBheWxvYWQgYXMgbmV2ZXIpO1xuXG4gICAgICBhc3NlcnQub2soc2VuZGVyRm4uY2FsbGVkT25jZVdpdGgoJ01QQ3YyLVIxJywgcGF5bG9hZCkpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdC5zZXNzaW9uSWQsICdzMScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3NlbmRLZXlHZW5lcmF0aW9uUm91bmQyQnlTZW5kZXIgaW52b2tlcyB0aGUgc2VuZGVyIHdpdGggdGhlIE1QQ3YyLVIyIHJvdW5kJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3Qgc2VuZGVyRm4gPSBzaW5vbi5zdHViKCkucmVzb2x2ZXMoe1xuICAgICAgICBzZXNzaW9uSWQ6ICdzMScsXG4gICAgICAgIGNvbW1vblB1YmxpY0tleWNoYWluOiAnYScucmVwZWF0KDY0KSxcbiAgICAgICAgYml0Z29Nc2cyOiB7IG1lc3NhZ2U6ICdtJywgc2lnbmF0dXJlOiAnc2lnJyB9LFxuICAgICAgfSk7XG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAgICBzZXNzaW9uSWQ6ICdzMScsXG4gICAgICAgIHVzZXJNc2cyOiB7IG1lc3NhZ2U6ICd1MicsIHNpZ25hdHVyZTogJ3VzaWcnIH0sXG4gICAgICAgIGJhY2t1cE1zZzI6IHsgbWVzc2FnZTogJ2IyJywgc2lnbmF0dXJlOiAnYnNpZycgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHV0aWxzLnNlbmRLZXlHZW5lcmF0aW9uUm91bmQyQnlTZW5kZXIoc2VuZGVyRm4gYXMgbmV2ZXIsIHBheWxvYWQgYXMgbmV2ZXIpO1xuXG4gICAgICBhc3NlcnQub2soc2VuZGVyRm4uY2FsbGVkT25jZVdpdGgoJ01QQ3YyLVIyJywgcGF5bG9hZCkpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdC5jb21tb25QdWJsaWNLZXljaGFpbiwgJ2EnLnJlcGVhdCg2NCkpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -86,7 +86,6 @@ describe('RedPallas MPCv2 SMC Utils:', function () {
|
|
|
86
86
|
sessionId,
|
|
87
87
|
bitgoMsg1: fakeSignedMessage('bitgo-1'),
|
|
88
88
|
},
|
|
89
|
-
derivationSeed: 'a'.repeat(64),
|
|
90
89
|
});
|
|
91
90
|
beforeEach(function () {
|
|
92
91
|
postChain = {
|
|
@@ -180,7 +179,6 @@ describe('RedPallas MPCv2 SMC Utils:', function () {
|
|
|
180
179
|
assert.strictEqual(senderPayload.sessionId, 'session-xyz');
|
|
181
180
|
assert.deepStrictEqual(senderPayload.userMsg2, payload.ovc[public_types_1.OVCIndexEnum.ONE].ovcMsg2);
|
|
182
181
|
assert.deepStrictEqual(senderPayload.backupMsg2, payload.ovc[public_types_1.OVCIndexEnum.TWO].ovcMsg2);
|
|
183
|
-
assert.strictEqual(senderPayload.derivationSeed, payload.derivationSeed);
|
|
184
182
|
assert.ok(keychainsStub.add.calledOnce);
|
|
185
183
|
assert.deepStrictEqual(keychainsStub.add.firstCall.args[0], {
|
|
186
184
|
source: 'bitgo',
|
|
@@ -278,4 +276,4 @@ describe('RedPallas MPCv2 SMC Utils:', function () {
|
|
|
278
276
|
});
|
|
279
277
|
});
|
|
280
278
|
});
|
|
281
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21jVXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Rlc3QvdW5pdC9iaXRnby91dGlscy90c3MvcmVkcGFsbGFzL3NtY1V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBaUM7QUFDakMsNkNBQStCO0FBQy9CLHNEQVM2QjtBQUU3QixxRkFBbUc7QUFFbkcsUUFBUSxDQUFDLDRCQUE0QixFQUFFO0lBQ3JDLE1BQU0sWUFBWSxHQUFHLGtDQUFrQyxDQUFDO0lBQ3hELE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQztJQUV2QixJQUFJLFFBQWdDLENBQUM7SUFDckMsSUFBSSxTQUFvQixDQUFDO0lBQ3pCLElBQUksWUFBdUIsQ0FBQztJQUM1QixJQUFJLGFBQTZELENBQUM7SUFDbEUsSUFBSSxTQUE2RCxDQUFDO0lBRWxFLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDN0MsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFDNUQsU0FBUyxFQUFFLGFBQWEsTUFBTSxFQUFFO0tBQ2pDLENBQUMsQ0FBQztJQUVILE1BQU0sa0JBQWtCLEdBQUcsQ0FDekIsUUFBNEMsaURBQWtDLENBQUMseUJBQXlCLEVBQ3JFLEVBQUUsQ0FDckMsQ0FBQztRQUNDLEtBQUs7UUFDTCxVQUFVLEVBQUUsT0FBTztRQUNuQixVQUFVLEVBQUUsTUFBTTtRQUNsQixJQUFJLEVBQUUsUUFBUTtRQUNkLEdBQUcsRUFBRTtZQUNILENBQUMsMkJBQVksQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDbEIsU0FBUyxFQUFFLGlCQUFpQjtnQkFDNUIsT0FBTyxFQUFFLGlCQUFpQixDQUFDLFFBQVEsQ0FBQzthQUNyQztZQUNELENBQUMs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QUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLGlEQUFpRCxFQUFFLEtBQUs7WUFDekQsYUFBYSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7WUFFdEMsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsY0FBYyxFQUFFLGNBQWMsQ0FBQyxFQUFFLG9CQUFvQixDQUFDLENBQUM7WUFDbEgsTUFBTSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0ICogYXMgc2lub24gZnJvbSAnc2lub24nO1xuaW1wb3J0IHtcbiAgT1ZDSW5kZXhFbnVtLFxuICBSZWRwYWxsYXNCaXRnb1RvT1ZDMVJvdW5kMVJlc3BvbnNlLFxuICBSZWRwYWxsYXNCaXRnb1RvT1ZDMVJvdW5kMlJlc3BvbnNlLFxuICBSZWRwYWxsYXNLZXlDcmVhdGlvbk1QQ3YyU3RhdGVFbnVtLFxuICBSZWRwYWxsYXNNUEN2MktleUdlblJvdW5kMVJlc3BvbnNlLFxuICBSZWRwYWxsYXNNUEN2MktleUdlblJvdW5kMlJlc3BvbnNlLFxuICBSZWRwYWxsYXNPVkMxVG9CaXRnb1JvdW5kMVBheWxvYWQsXG4gIFJlZHBhbGxhc09WQzJUb0JpdGdvUm91bmQyUGF5bG9hZCxcbn0gZnJvbSAnQGJpdGdvL3B1YmxpYy10eXBlcyc7XG5pbXBvcnQgeyBCaXRHb0Jhc2UsIElCYXNlQ29pbiB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL3NyYyc7XG5pbXBvcnQgeyBSZWRwYWxsYXNNUEN2MlNNQ1V0aWxzIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3V0aWxzL3Rzcy9yZWRwYWxsYXMvU01DL3V0aWxzJztcblxuZGVzY3JpYmUoJ1JlZFBhbGxhcyBNUEN2MiBTTUMgVXRpbHM6JywgZnVuY3Rpb24gKCkge1xuICBjb25zdCBlbnRlcnByaXNlSWQgPSAnNjQ0OTE1M2E2ZjZiYzIwMDA2ZDY2NzcxY2RiZTE1ZDMnO1xuICBjb25zdCBjb2luTmFtZSA9ICd6ZWMnO1xuXG4gIGxldCBzbWNVdGlsczogUmVkcGFsbGFzTVBDdjJTTUNVdGlscztcbiAgbGV0IG1vY2tCaXRnbzogQml0R29CYXNlO1xuICBsZXQgbW9ja0Jhc2VDb2luOiBJQmFzZUNvaW47XG4gIGxldCBrZXljaGFpbnNTdHViOiB7IGdldDogc2lub24uU2lub25TdHViOyBhZGQ6IHNpbm9uLlNpbm9uU3R1YiB9O1xuICBsZXQgcG9zdENoYWluOiB7IHNlbmQ6IHNpbm9uLlNpbm9uU3R1YjsgcmVzdWx0OiBzaW5vbi5TaW5vblN0dWIgfTtcblxuICBjb25zdCBmYWtlU2lnbmVkTWVzc2FnZSA9IChzdWZmaXg6IHN0cmluZykgPT4gKHtcbiAgICBtZXNzYWdlOiBCdWZmZXIuZnJvbShgbWVzc2FnZS0ke3N1ZmZpeH1gKS50b1N0cmluZygnYmFzZTY0JyksXG4gICAgc2lnbmF0dXJlOiBgc2lnbmF0dXJlLSR7c3VmZml4fWAsXG4gIH0pO1xuXG4gIGNvbnN0IGJ1aWxkUm91bmQxUGF5bG9hZCA9IChcbiAgICBzdGF0ZTogUmVkcGFsbGFzS2V5Q3JlYXRpb25NUEN2MlN0YXRlRW51bSA9IFJlZHBhbGxhc0tleUNyZWF0aW9uTVBDdjJTdGF0ZUVudW0uV2FpdGluZ0ZvckJpdGdvUm91bmQxRGF0YVxuICApOiBSZWRwYWxsYXNPVkMxVG9CaXRnb1JvdW5kMVBheWxvYWQgPT5cbiAgICAoe1xuICAgICAgc3RhdGUsXG4gICAgICB0c3NWZXJzaW9uOiAnMC4wLjEnLFxuICAgICAgd2FsbGV0VHlwZTogJ2NvbGQnLFxuICAgICAgY29pbjogY29pbk5hbWUsXG4gICAgICBvdmM6IHtcbiAgICAgICAgW09WQ0luZGV4RW51bS5PTkVdOiB7XG4gICAgICAgICAgZ3BnUHViS2V5OiAndXNlci1ncGctcHVia2V5JyxcbiAgICAgICAgICBvdmNNc2cxOiBmYWtlU2lnbmVkTWVzc2FnZSgndXNlci0xJyksXG4gICAgICAgIH0sXG4gICAgICAgIFtPVkNJbmRleEVudW0uVFdPXToge1xuICAgICAgICAgIGdwZ1B1YktleTogJ2JhY2t1cC1ncGctcHVia2V5JyxcbiAgICAgICAgICBvdmNNc2cxOiBmYWtlU2lnbmVkTWVzc2FnZSgnYmFja3VwLTEnKSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSBhcyB1bmtub3duIGFzIFJlZHBhbGxhc09WQzFUb0JpdGdvUm91bmQxUGF5bG9hZCk7XG5cbiAgY29uc3QgYnVpbGRSb3VuZDJQYXlsb2FkID0gKFxuICAgIHNlc3Npb25JZCA9ICd0ZXN0LXNlc3Npb24taWQnLFxuICAgIHN0YXRlOiBSZWRwYWxsYXNLZXlDcmVhdGlvbk1QQ3YyU3RhdGVFbnVtID0gUmVkcGFsbGFzS2V5Q3JlYXRpb25NUEN2MlN0YXRlRW51bS5XYWl0aW5nRm9yQml0Z29Sb3VuZDJEYXRhXG4gICk6IFJlZHBhbGxhc09WQzJUb0JpdGdvUm91bmQyUGF5bG9hZCA9PlxuICAgICh7XG4gICAgICBzdGF0ZSxcbiAgICAgIHRzc1ZlcnNpb246ICcwLjAuMScsXG4gICAgICB3YWxsZXRUeXBlOiAnY29sZCcsXG4gICAgICBjb2luOiBjb2luTmFtZSxcbiAgICAgIG92Yzoge1xuICAgICAgICBbT1ZDSW5kZXhFbnVtLk9ORV06IHtcbiAgICAgICAgICBncGdQdWJLZXk6ICd1c2VyLWdwZy1wdWJrZXknLFxuICAgICAgICAgIG92Y01zZzE6IGZha2VTaWduZWRNZXNzYWdlKCd1c2VyLTEnKSxcbiAgICAgICAgICBvdmNNc2cyOiBmYWtlU2lnbmVkTWVzc2FnZSgndXNlci0yJyksXG4gICAgICAgIH0sXG4gICAgICAgIFtPVkNJbmRleEVudW0uVFdPXToge1xuICAgICAgICAgIGdwZ1B1YktleTogJ2JhY2t1cC1ncGctcHVia2V5JyxcbiAgICAgICAgICBvdmNNc2cxOiBmYWtlU2lnbmVkTWVzc2FnZSgnYmFja3VwLTEnKSxcbiAgICAgICAgICBvdmNNc2cyOiBmYWtlU2lnbmVkTWVzc2FnZSgnYmFja3VwLTInKSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBwbGF0Zm9ybToge1xuICAgICAgICBzZXNzaW9uSWQsXG4gICAgICAgIGJpdGdvTXNnMTogZmFrZVNpZ25lZE1lc3NhZ2UoJ2JpdGdvLTEnKSxcbiAgICAgIH0sXG4gICAgICBkZXJpdmF0aW9uU2VlZDogJ2EnLnJlcGVhdCg2NCksXG4gICAgfSBhcyB1bmtub3duIGFzIFJlZHBhbGxhc09WQzJUb0JpdGdvUm91bmQyUGF5bG9hZCk7XG5cbiAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7XG4gICAgcG9zdENoYWluID0ge1xuICAgICAgc2VuZDogc2lub24uc3R1YigpLnJldHVybnNUaGlzKCksXG4gICAgICByZXN1bHQ6IHNpbm9uLnN0dWIoKSxcbiAgICB9O1xuICAgIG1vY2tCaXRnbyA9IHtcbiAgICAgIHBvc3Q6IHNpbm9uLnN0dWIoKS5yZXR1cm5zKHBvc3RDaGFpbiksXG4gICAgICB1cmw6IHNpbm9uLnN0dWIoKS5jYWxsc0Zha2UoKHBhdGg6IHN0cmluZykgPT4gYC9hcGkvdjIke3BhdGh9YCksXG4gICAgfSBhcyB1bmtub3duIGFzIEJpdEdvQmFzZTtcblxuICAgIGtleWNoYWluc1N0dWIgPSB7XG4gICAgICBnZXQ6IHNpbm9uLnN0dWIoKSxcbiAgICAgIGFkZDogc2lub24uc3R1YigpLFxuICAgIH07XG4gICAgbW9ja0Jhc2VDb2luID0ge1xuICAgICAga2V5Y2hhaW5zOiBzaW5vbi5zdHViKCkucmV0dXJucyhrZXljaGFpbnNTdHViKSxcbiAgICB9IGFzIHVua25vd24gYXMgSUJhc2VDb2luO1xuXG4gICAgc21jVXRpbHMgPSBuZXcgUmVkcGFsbGFzTVBDdjJTTUNVdGlscyhtb2NrQml0Z28sIG1vY2tCYXNlQ29pbik7XG4gIH0pO1xuXG4gIGFmdGVyRWFjaChmdW5jdGlvbiAoKSB7XG4gICAgc2lub24ucmVzdG9yZSgpO1xuICB9KTtcblxuICBkZXNjcmliZSgna2V5R2VuUm91bmQxQnlTZW5kZXInLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3JldHVybnMgYSB3ZWxsLWZvcm1lZCBCaXRHb+KGkk9WQzEgcm91bmQgMSByZXNwb25zZSBvbiBzdWNjZXNzJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgcGF5bG9hZCA9IGJ1aWxkUm91bmQxUGF5bG9hZCgpO1xuICAgICAgY29uc3Qgc2VuZGVyRm4gPSBzaW5vbi5zdHViKCkucmVzb2x2ZXMoe1xuICAgICAgICBzZXNzaW9uSWQ6ICdzZXNzaW9uLWFiYycsXG4gICAgICAgIGJpdGdvTXNnMTogZmFrZVNpZ25lZE1lc3NhZ2UoJ2JpdGdvLXIxJyksXG4gICAgICB9IGFzIHVua25vd24gYXMgUmVkcGFsbGFzTVBDdjJLZXlHZW5Sb3VuZDFSZXNwb25zZSk7XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gKGF3YWl0IHNtY1V0aWxzLmtleUdlblJvdW5kMUJ5U2VuZGVyKFxuICAgICAgICBzZW5kZXJGbiBhcyBuZXZlcixcbiAgICAgICAgcGF5bG9hZFxuICAgICAgKSkgYXMgUmVkcGFsbGFzQml0Z29Ub09WQzFSb3VuZDFSZXNwb25zZTtcblxuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnN0YXRlLCBSZWRwYWxsYXNLZXlDcmVhdGlvbk1QQ3YyU3RhdGVFbnVtLldhaXRpbmdGb3JPVkMxUm91bmQyRGF0YSk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2UudHNzVmVyc2lvbiwgcGF5bG9hZC50c3NWZXJzaW9uKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS53YWxsZXRUeXBlLCBwYXlsb2FkLndhbGxldFR5cGUpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLmNvaW4sIHBheWxvYWQuY29pbik7XG4gICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlLm92YywgcGF5bG9hZC5vdmMpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnBsYXRmb3JtLnNlc3Npb25JZCwgJ3Nlc3Npb24tYWJjJyk7XG4gICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlLnBsYXRmb3JtLmJpdGdvTXNnMSwgZmFrZVNpZ25lZE1lc3NhZ2UoJ2JpdGdvLXIxJykpO1xuICAgICAgYXNzZXJ0Lm9rKHNlbmRlckZuLmNhbGxlZE9uY2UpO1xuXG4gICAgICBjb25zdCBbLCBzZW5kZXJQYXlsb2FkXSA9IHNlbmRlckZuLmZpcnN0Q2FsbC5hcmdzIGFzIFt1bmtub3duLCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPl07XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2VuZGVyUGF5bG9hZC51c2VyR3BnUHVibGljS2V5LCBwYXlsb2FkLm92Y1tPVkNJbmRleEVudW0uT05FXS5ncGdQdWJLZXkpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNlbmRlclBheWxvYWQuYmFja3VwR3BnUHVibGljS2V5LCBwYXlsb2FkLm92Y1tPVkNJbmRleEVudW0uVFdPXS5ncGdQdWJLZXkpO1xuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZW5kZXJQYXlsb2FkLnVzZXJNc2cxLCBwYXlsb2FkLm92Y1tPVkNJbmRleEVudW0uT05FXS5vdmNNc2cxKTtcbiAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2VuZGVyUGF5bG9hZC5iYWNrdXBNc2cxLCBwYXlsb2FkLm92Y1tPVkNJbmRleEVudW0uVFdPXS5vdmNNc2cxKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZWplY3RzIHdoZW4gdGhlIHBheWxvYWQgc3RhdGUgaXMgbm90IFdhaXRpbmdGb3JCaXRnb1JvdW5kMURhdGEnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBwYXlsb2FkID0gYnVpbGRSb3VuZDFQYXlsb2FkKFJlZHBhbGxhc0tleUNyZWF0aW9uTVBDdjJTdGF0ZUVudW0uV2FpdGluZ0Zvck9WQzFSb3VuZDJEYXRhKTtcbiAgICAgIGNvbnN0IHNlbmRlckZuID0gc2lub24uc3R1YigpLnJlamVjdHMobmV3IEVycm9yKCdzZW5kZXIgc2hvdWxkIG5vdCBiZSBpbnZva2VkJykpO1xuXG4gICAgICBhd2FpdCBhc3NlcnQucmVqZWN0cyhzbWNVdGlscy5rZXlHZW5Sb3VuZDFCeVNlbmRlcihzZW5kZXJGbiBhcyBuZXZlciwgcGF5bG9hZCksIHtcbiAgICAgICAgbWVzc2FnZTogYEludmFsaWQgc3RhdGUgZm9yIHJvdW5kIDEsIGV4cGVjdGVkOiAke1JlZHBhbGxhc0tleUNyZWF0aW9uTVBDdjJTdGF0ZUVudW0uV2FpdGluZ0ZvckJpdGdvUm91bmQxRGF0YX0sIGdvdDogJHtSZWRwYWxsYXNLZXlDcmVhdGlvbk1QQ3YyU3RhdGVFbnVtLldhaXRpbmdGb3JPVkMxUm91bmQyRGF0YX1gLFxuICAgICAgfSk7XG4gICAgICBhc3NlcnQub2soc2VuZGVyRm4ubm90Q2FsbGVkKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZWplY3RzIHdoZW4gdGhlIHJlc3BvbnNlIGlzIG1hbGZvcm1lZCAoc2Vzc2lvbklkIGVtcHR5KScsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHBheWxvYWQgPSBidWlsZFJvdW5kMVBheWxvYWQoKTtcbiAgICAgIGNvbnN0IHNlbmRlckZuID0gc2lub24uc3R1YigpLnJlc29sdmVzKHtcbiAgICAgICAgc2Vzc2lvbklkOiAnJyxcbiAgICAgICAgYml0Z29Nc2cxOiBmYWtlU2lnbmVkTWVzc2FnZSgnYml0Z28tcjEnKSxcbiAgICAgIH0pO1xuXG4gICAgICBhd2FpdCBhc3NlcnQucmVqZWN0cyhzbWNVdGlscy5rZXlHZW5Sb3VuZDFCeVNlbmRlcihzZW5kZXJGbiBhcyBuZXZlciwgcGF5bG9hZCksIC9lcnJvclxcKHNcXCkgcGFyc2luZyByZXNwb25zZS8pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgna2V5R2VuUm91bmQyQnlTZW5kZXInLCBmdW5jdGlvbiAoKSB7XG4gICAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBmYWtlS2V5Y2hhaW4gPSB7XG4gICAgICAgIGlkOiAnYml0Z28ta2V5Y2hhaW4taWQnLFxuICAgICAgICBzb3VyY2U6ICdiaXRnbycsXG4gICAgICAgIHR5cGU6ICd0c3MnIGFzIGNvbnN0LFxuICAgICAgICBjb21tb25LZXljaGFpbjogJ2EnLnJlcGVhdCg2NCksXG4gICAgICB9O1xuICAgICAga2V5Y2hhaW5zU3R1Yi5hZGQucmVzb2x2ZXMoZmFrZUtleWNoYWluKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZXR1cm5zIGEgd2VsbC1mb3JtZWQgQml0R2/ihpJPVkMxIHJvdW5kIDIgcmVzcG9uc2UgYW5kIGFkZHMgdGhlIEJpdEdvIGtleWNoYWluJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgcGF5bG9hZCA9IGJ1aWxkUm91bmQyUGF5bG9hZCgnc2Vzc2lvbi14eXonKTtcbiAgICAgIGNvbnN0IHNlbmRlckZuID0gc2lub24uc3R1YigpLnJlc29sdmVzKHtcbiAgICAgICAgc2Vzc2lvbklkOiAnc2Vzc2lvbi14eXonLFxuICAgICAgICBjb21tb25QdWJsaWNLZXljaGFpbjogJ2EnLnJlcGVhdCg2NCksXG4gICAgICAgIGJpdGdvTXNnMjogZmFrZVNpZ25lZE1lc3NhZ2UoJ2JpdGdvLXIyJyksXG4gICAgICB9IGFzIHVua25vd24gYXMgUmVkcGFsbGFzTVBDdjJLZXlHZW5Sb3VuZDJSZXNwb25zZSk7XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gKGF3YWl0IHNtY1V0aWxzLmtleUdlblJvdW5kMkJ5U2VuZGVyKFxuICAgICAgICBzZW5kZXJGbiBhcyBuZXZlcixcbiAgICAgICAgcGF5bG9hZFxuICAgICAgKSkgYXMgUmVkcGFsbGFzQml0Z29Ub09WQzFSb3VuZDJSZXNwb25zZTtcblxuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnN0YXRlLCBSZWRwYWxsYXNLZXlDcmVhdGlvbk1QQ3YyU3RhdGVFbnVtLldhaXRpbmdGb3JPVkMxR2VuZXJhdGVLZXkpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLmJpdEdvS2V5SWQsICdiaXRnby1rZXljaGFpbi1pZCcpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnRzc1ZlcnNpb24sIHBheWxvYWQudHNzVmVyc2lvbik7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Uud2FsbGV0VHlwZSwgcGF5bG9hZC53YWxsZXRUeXBlKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5jb2luLCBwYXlsb2FkLmNvaW4pO1xuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZS5vdmMsIHBheWxvYWQub3ZjKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5wbGF0Zm9ybS5zZXNzaW9uSWQsICdzZXNzaW9uLXh5eicpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnBsYXRmb3JtLmNvbW1vblB1YmxpY0tleWNoYWluLCAnYScucmVwZWF0KDY0KSk7XG4gICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3BvbnNlLnBsYXRmb3JtLmJpdGdvTXNnMSwgcGF5bG9hZC5wbGF0Zm9ybS5iaXRnb01zZzEpO1xuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZS5wbGF0Zm9ybS5iaXRnb01zZzIsIGZha2VTaWduZWRNZXNzYWdlKCdiaXRnby1yMicpKTtcblxuICAgICAgY29uc3QgWywgc2VuZGVyUGF5bG9hZF0gPSBzZW5kZXJGbi5maXJzdENhbGwuYXJncyBhcyBbdW5rbm93biwgUmVjb3JkPHN0cmluZywgdW5rbm93bj5dO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNlbmRlclBheWxvYWQuc2Vzc2lvbklkLCAnc2Vzc2lvbi14eXonKTtcbiAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2VuZGVyUGF5bG9hZC51c2VyTXNnMiwgcGF5bG9hZC5vdmNbT1ZDSW5kZXhFbnVtLk9ORV0ub3ZjTXNnMik7XG4gICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNlbmRlclBheWxvYWQuYmFja3VwTXNnMiwgcGF5bG9hZC5vdmNbT1ZDSW5kZXhFbnVtLlRXT10ub3ZjTXNnMik7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2VuZGVyUGF5bG9hZC5kZXJpdmF0aW9uU2VlZCwgcGF5bG9hZC5kZXJpdmF0aW9uU2VlZCk7XG5cbiAgICAgIGFzc2VydC5vayhrZXljaGFpbnNTdHViLmFkZC5jYWxsZWRPbmNlKTtcbiAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoa2V5Y2hhaW5zU3R1Yi5hZGQuZmlyc3RDYWxsLmFyZ3NbMF0sIHtcbiAgICAgICAgc291cmNlOiAnYml0Z28nLFxuICAgICAgICBrZXlUeXBlOiAndHNzJyxcbiAgICAgICAgY29tbW9uS2V5Y2hhaW46ICdhJy5yZXBlYXQoNjQpLFxuICAgICAgICBpc01QQ3YyOiB0cnVlLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVqZWN0cyB3aGVuIHRoZSBwYXlsb2FkIHN0YXRlIGlzIG5vdCBXYWl0aW5nRm9yQml0Z29Sb3VuZDJEYXRhJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgcGF5bG9hZCA9IGJ1aWxkUm91bmQyUGF5bG9hZCgnc2Vzc2lvbi14eXonLCBSZWRwYWxsYXNLZXlDcmVhdGlvbk1QQ3YyU3RhdGVFbnVtLldhaXRpbmdGb3JPVkMyUm91bmQyRGF0YSk7XG4gICAgICBjb25zdCBzZW5kZXJGbiA9IHNpbm9uLnN0dWIoKS5yZWplY3RzKG5ldyBFcnJvcignc2VuZGVyIHNob3VsZCBub3QgYmUgaW52b2tlZCcpKTtcblxuICAgICAgYXdhaXQgYXNzZXJ0LnJlamVjdHMoc21jVXRpbHMua2V5R2VuUm91bmQyQnlTZW5kZXIoc2VuZGVyRm4gYXMgbmV2ZXIsIHBheWxvYWQpLCB7XG4gICAgICAgIG1lc3NhZ2U6IGBJbnZhbGlkIHN0YXRlIGZvciByb3VuZCAyLCBleHBlY3RlZDogJHtSZWRwYWxsYXNLZXlDcmVhdGlvbk1QQ3YyU3RhdGVFbnVtLldhaXRpbmdGb3JCaXRnb1JvdW5kMkRhdGF9LCBnb3Q6ICR7UmVkcGFsbGFzS2V5Q3JlYXRpb25NUEN2MlN0YXRlRW51bS5XYWl0aW5nRm9yT1ZDMlJvdW5kMkRhdGF9YCxcbiAgICAgIH0pO1xuICAgICAgYXNzZXJ0Lm9rKHNlbmRlckZuLm5vdENhbGxlZCk7XG4gICAgICBhc3NlcnQub2soa2V5Y2hhaW5zU3R1Yi5hZGQubm90Q2FsbGVkKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZWplY3RzIHdoZW4gc2Vzc2lvbiBJRHMgcmV0dXJuZWQgYnkgQml0R28gZG8gbm90IG1hdGNoIHRoZSBwYXlsb2FkJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgcGF5bG9hZCA9IGJ1aWxkUm91bmQyUGF5bG9hZCgnc2Vzc2lvbi14eXonKTtcbiAgICAgIGNvbnN0IHNlbmRlckZuID0gc2lub24uc3R1YigpLnJlc29sdmVzKHtcbiAgICAgICAgc2Vzc2lvbklkOiAnZGlmZmVyZW50LXNlc3Npb24taWQnLFxuICAgICAgICBjb21tb25QdWJsaWNLZXljaGFpbjogJ2EnLnJlcGVhdCg2NCksXG4gICAgICAgIGJpdGdvTXNnMjogZmFrZVNpZ25lZE1lc3NhZ2UoJ2JpdGdvLXIyJyksXG4gICAgICB9IGFzIHVua25vd24gYXMgUmVkcGFsbGFzTVBDdjJLZXlHZW5Sb3VuZDJSZXNwb25zZSk7XG5cbiAgICAgIGF3YWl0IGFzc2VydC5yZWplY3RzKFxuICAgICAgICBzbWNVdGlscy5rZXlHZW5Sb3VuZDJCeVNlbmRlcihzZW5kZXJGbiBhcyBuZXZlciwgcGF5bG9hZCksXG4gICAgICAgIC9Sb3VuZCAxIGFuZCByb3VuZCAyIHNlc3Npb24gSURzIGRvIG5vdCBtYXRjaC9cbiAgICAgICk7XG4gICAgICBhc3NlcnQub2soa2V5Y2hhaW5zU3R1Yi5hZGQubm90Q2FsbGVkKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2tleUdlblJvdW5kMSAoZW50ZXJwcmlzZSknLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3JlamVjdHMgZm9yIGFuIGludmFsaWQgcGF5bG9hZCBzdGF0ZSB3aXRob3V0IGNhbGxpbmcgdGhlIEFQSScsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGludmFsaWRQYXlsb2FkID0ge1xuICAgICAgICBzdGF0ZTogUmVkcGFsbGFzS2V5Q3JlYXRpb25NUEN2MlN0YXRlRW51bS5XYWl0aW5nRm9yT1ZDMVJvdW5kMkRhdGEsXG4gICAgICB9IGFzIHVua25vd24gYXMgUmVkcGFsbGFzT1ZDMVRvQml0Z29Sb3VuZDFQYXlsb2FkO1xuXG4gICAgICBhd2FpdCBhc3NlcnQucmVqZWN0cyhzbWNVdGlscy5rZXlHZW5Sb3VuZDEoZW50ZXJwcmlzZUlkLCBpbnZhbGlkUGF5bG9hZCksIHtcbiAgICAgICAgbWVzc2FnZTogYEludmFsaWQgc3RhdGUgZm9yIHJvdW5kIDEsIGV4cGVjdGVkOiAke1JlZHBhbGxhc0tleUNyZWF0aW9uTVBDdjJTdGF0ZUVudW0uV2FpdGluZ0ZvckJpdGdvUm91bmQxRGF0YX0sIGdvdDogJHtSZWRwYWxsYXNLZXlDcmVhdGlvbk1QQ3YyU3RhdGVFbnVtLldhaXRpbmdGb3JPVkMxUm91bmQyRGF0YX1gLFxuICAgICAgfSk7XG4gICAgICBhc3NlcnQub2soKG1vY2tCaXRnby5wb3N0IGFzIHNpbm9uLlNpbm9uU3R1Yikubm90Q2FsbGVkKTtcbiAgICB9KTtcblxuICAgIGl0KCdQT1NUcyB0byB0aGUgTVBDdjIgZ2VuZXJhdGVrZXkgZW5kcG9pbnQgd2l0aCBjdXJ2ZVR5cGUgUmVkUGFsbGFzIGFuZCByZXR1cm5zIGEgcGFyc2VkIHJvdW5kIDEgcmVzcG9uc2UnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBwYXlsb2FkID0gYnVpbGRSb3VuZDFQYXlsb2FkKCk7XG4gICAgICBwb3N0Q2hhaW4ucmVzdWx0LnJlc29sdmVzKHtcbiAgICAgICAgc2Vzc2lvbklkOiAnZW50ZXJwcmlzZS1zZXNzaW9uJyxcbiAgICAgICAgYml0Z29Nc2cxOiBmYWtlU2lnbmVkTWVzc2FnZSgnYml0Z28tcjEnKSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHNtY1V0aWxzLmtleUdlblJvdW5kMShlbnRlcnByaXNlSWQsIHBheWxvYWQpO1xuXG4gICAgICBhc3NlcnQub2soKG1vY2tCaXRnby5wb3N0IGFzIHNpbm9uLlNpbm9uU3R1YikuY2FsbGVkT25jZSk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoKG1vY2tCaXRnby5wb3N0IGFzIHNpbm9uLlNpbm9uU3R1YikuZmlyc3RDYWxsLmFyZ3NbMF0sICcvYXBpL3YyL21wYy9nZW5lcmF0ZWtleScpO1xuICAgICAgY29uc3Qgc2VudEJvZHkgPSBwb3N0Q2hhaW4uc2VuZC5maXJzdENhbGwuYXJnc1swXSBhcyB7XG4gICAgICAgIGVudGVycHJpc2U6IHN0cmluZztcbiAgICAgICAgcm91bmQ6IHN0cmluZztcbiAgICAgICAgY3VydmVUeXBlOiBzdHJpbmc7XG4gICAgICAgIHBheWxvYWQ6IHsgdXNlckdwZ1B1YmxpY0tleTogc3RyaW5nOyBiYWNrdXBHcGdQdWJsaWNLZXk6IHN0cmluZyB9O1xuICAgICAgfTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZW50Qm9keS5lbnRlcnByaXNlLCBlbnRlcnByaXNlSWQpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNlbnRCb2R5LnJvdW5kLCAnTVBDdjItUjEnKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZW50Qm9keS5jdXJ2ZVR5cGUsICdSZWRQYWxsYXMnKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZW50Qm9keS5wYXlsb2FkLnVzZXJHcGdQdWJsaWNLZXksIHBheWxvYWQub3ZjW09WQ0luZGV4RW51bS5PTkVdLmdwZ1B1YktleSk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2VudEJvZHkucGF5bG9hZC5iYWNrdXBHcGdQdWJsaWNLZXksIHBheWxvYWQub3ZjW09WQ0luZGV4RW51bS5UV09dLmdwZ1B1YktleSk7XG5cbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5zdGF0ZSwgUmVkcGFsbGFzS2V5Q3JlYXRpb25NUEN2MlN0YXRlRW51bS5XYWl0aW5nRm9yT1ZDMVJvdW5kMkRhdGEpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnBsYXRmb3JtLnNlc3Npb25JZCwgJ2VudGVycHJpc2Utc2Vzc2lvbicpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgna2V5R2VuUm91bmQyIChlbnRlcnByaXNlKScsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgncmVqZWN0cyBmb3IgYW4gaW52YWxpZCBwYXlsb2FkIHN0YXRlIHdpdGhvdXQgY2FsbGluZyB0aGUgQVBJJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgaW52YWxpZFBheWxvYWQgPSB7XG4gICAgICAgIHN0YXRlOiBSZWRwYWxsYXNLZXlDcmVhdGlvbk1QQ3YyU3RhdGVFbnVtLldhaXRpbmdGb3JPVkMxUm91bmQyRGF0YSxcbiAgICAgIH0gYXMgdW5rbm93biBhcyBSZWRwYWxsYXNPVkMyVG9CaXRnb1JvdW5kMlBheWxvYWQ7XG5cbiAgICAgIGF3YWl0IGFzc2VydC5yZWplY3RzKHNtY1V0aWxzLmtleUdlblJvdW5kMihlbnRlcnByaXNlSWQsIGludmFsaWRQYXlsb2FkKSwge1xuICAgICAgICBtZXNzYWdlOiBgSW52YWxpZCBzdGF0ZSBmb3Igcm91bmQgMiwgZXhwZWN0ZWQ6ICR7UmVkcGFsbGFzS2V5Q3JlYXRpb25NUEN2MlN0YXRlRW51bS5XYWl0aW5nRm9yQml0Z29Sb3VuZDJEYXRhfSwgZ290OiAke1JlZHBhbGxhc0tleUNyZWF0aW9uTVBDdjJTdGF0ZUVudW0uV2FpdGluZ0Zvck9WQzFSb3VuZDJEYXRhfWAsXG4gICAgICB9KTtcbiAgICAgIGFzc2VydC5vaygobW9ja0JpdGdvLnBvc3QgYXMgc2lub24uU2lub25TdHViKS5ub3RDYWxsZWQpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgndXBsb2FkQ2xpZW50S2V5cycsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBiaXRnb0tleUlkID0gJ2JpdGdvLWtleS1pZCc7XG4gICAgY29uc3QgY29tbW9uS2V5Y2hhaW4gPSAnYScucmVwZWF0KDY0KTtcblxuICAgIGl0KCd1cGxvYWRzIHVzZXIvYmFja3VwIGtleWNoYWlucyBhbmQgcmV0dXJucyB0aGUgdHJpcGxldCBvbiB0aGUgaGFwcHkgcGF0aCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGJpdGdvS2V5Y2hhaW4gPSB7IGlkOiBiaXRnb0tleUlkLCB0eXBlOiAndHNzJywgc291cmNlOiAnYml0Z28nLCBjb21tb25LZXljaGFpbiB9O1xuICAgICAgY29uc3QgdXNlcktleWNoYWluID0geyBpZDogJ3VzZXItaWQnLCB0eXBlOiAndHNzJywgc291cmNlOiAndXNlcicsIGNvbW1vbktleWNoYWluIH07XG4gICAgICBjb25zdCBiYWNrdXBLZXljaGFpbiA9IHsgaWQ6ICdiYWNrdXAtaWQnLCB0eXBlOiAndHNzJywgc291cmNlOiAnYmFja3VwJywgY29tbW9uS2V5Y2hhaW4gfTtcblxuICAgICAga2V5Y2hhaW5zU3R1Yi5nZXQucmVzb2x2ZXMoYml0Z29LZXljaGFpbik7XG4gICAgICBrZXljaGFpbnNTdHViLmFkZC53aXRoQXJncyhzaW5vbi5tYXRjaCh7IHNvdXJjZTogJ3VzZXInIH0pKS5yZXNvbHZlcyh1c2VyS2V5Y2hhaW4pO1xuICAgICAga2V5Y2hhaW5zU3R1Yi5hZGQud2l0aEFyZ3Moc2lub24ubWF0Y2goeyBzb3VyY2U6ICdiYWNrdXAnIH0pKS5yZXNvbHZlcyhiYWNrdXBLZXljaGFpbik7XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHNtY1V0aWxzLnVwbG9hZENsaWVudEtleXMoYml0Z29LZXlJZCwgY29tbW9uS2V5Y2hhaW4sIGNvbW1vbktleWNoYWluKTtcblxuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHQudXNlcktleWNoYWluLCB1c2VyS2V5Y2hhaW4pO1xuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHQuYmFja3VwS2V5Y2hhaW4sIGJhY2t1cEtleWNoYWluKTtcbiAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0LmJpdGdvS2V5Y2hhaW4sIGJpdGdvS2V5Y2hhaW4pO1xuXG4gICAgICBhc3NlcnQub2soa2V5Y2hhaW5zU3R1Yi5nZXQuY2FsbGVkT25jZVdpdGhFeGFjdGx5KHsgaWQ6IGJpdGdvS2V5SWQgfSkpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGtleWNoYWluc1N0dWIuYWRkLmNhbGxDb3VudCwgMik7XG4gICAgfSk7XG5cbiAgICBpdCgncmVqZWN0cyB3aGVuIHVzZXIgYW5kIGJhY2t1cCBjb21tb24ga2V5Y2hhaW5zIGRpZmZlcicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGF3YWl0IGFzc2VydC5yZWplY3RzKFxuICAgICAgICBzbWNVdGlscy51cGxvYWRDbGllbnRLZXlzKGJpdGdvS2V5SWQsICdhJy5yZXBlYXQoNjQpLCAnYicucmVwZWF0KDY0KSksXG4gICAgICAgIC9Db21tb24ga2V5Y2hhaW4gbWlzbWF0Y2ggYmV0d2VlbiB0aGUgdXNlciBhbmQgYmFja3VwIGtleWNoYWlucy9cbiAgICAgICk7XG4gICAgICBhc3NlcnQub2soa2V5Y2hhaW5zU3R1Yi5nZXQubm90Q2FsbGVkKTtcbiAgICAgIGFzc2VydC5vayhrZXljaGFpbnNTdHViLmFkZC5ub3RDYWxsZWQpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlamVjdHMgd2hlbiB0aGUgQml0R28ga2V5Y2hhaW4gY2Fubm90IGJlIGZvdW5kJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAga2V5Y2hhaW5zU3R1Yi5nZXQucmVzb2x2ZXModW5kZWZpbmVkKTtcblxuICAgICAgYXdhaXQgYXNzZXJ0LnJlamVjdHMoc21jVXRpbHMudXBsb2FkQ2xpZW50S2V5cyhiaXRnb0tleUlkLCBjb21tb25LZXljaGFpbiwgY29tbW9uS2V5Y2hhaW4pLCAvS2V5Y2hhaW4gbm90IGZvdW5kLyk7XG4gICAgICBhc3NlcnQub2soa2V5Y2hhaW5zU3R1Yi5hZGQubm90Q2FsbGVkKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
279
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21jVXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Rlc3QvdW5pdC9iaXRnby91dGlscy90c3MvcmVkcGFsbGFzL3NtY1V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBaUM7QUFDakMsNkNBQStCO0FBQy9CLHNEQVM2QjtBQUU3QixxRkFBbUc7QUFFbkcsUUFBUSxDQUFDLDRCQUE0QixFQUFFO0lBQ3JDLE1BQU0sWUFBWSxHQUFHLGtDQUFrQyxDQUFDO0lBQ3hELE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQztJQUV2QixJQUFJLFFBQWdDLENBQUM7SUFDckMsSUFBSSxTQUFvQixDQUFDO0lBQ3pCLElBQUksWUFBdUIsQ0FBQztJQUM1QixJQUFJLGFBQTZELENBQUM7SUFDbEUsSUFBSSxTQUE2RCxDQUFDO0lBRWxFLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDN0MsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFDNUQsU0FBUyxFQUFFLGFBQWEsTUFBTSxFQUFFO0tBQ2pDLENBQUMsQ0FBQztJQUVILE1BQU0sa0JBQWtCLEdBQUcsQ0FDekIsUUFBNEMsaURBQWtDLENBQUMseUJBQXlCLEVBQ3JFLEVBQUUsQ0FDckMsQ0FBQztRQUNDLEtBQUs7UUFDTCxVQUFVLEVBQUUsT0FBTztRQUNuQixVQUFVLEVBQUUsTUFBTTtRQUNsQixJQUFJLEVBQUUsUUFBUTtRQUNkLEdBQUcsRUFBRTtZQUNILENBQUMsMkJBQVksQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDbEIsU0FBUyxFQUFFLGlCQUFpQjtnQkFDNUIsT0FBTyxFQUFFLGlCQUFpQixDQUFDLFFBQVEsQ0FBQzthQUNyQztZQUNELENBQUMs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QyxHQUFHLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRXRDLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLGNBQWMsRUFBRSxjQUFjLENBQUMsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO1lBQ2xILE1BQU0sQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCAqIGFzIHNpbm9uIGZyb20gJ3Npbm9uJztcbmltcG9ydCB7XG4gIE9WQ0luZGV4RW51bSxcbiAgUmVkcGFsbGFzQml0Z29Ub09WQzFSb3VuZDFSZXNwb25zZSxcbiAgUmVkcGFsbGFzQml0Z29Ub09WQzFSb3VuZDJSZXNwb25zZSxcbiAgUmVkcGFsbGFzS2V5Q3JlYXRpb25NUEN2MlN0YXRlRW51bSxcbiAgUmVkcGFsbGFzTVBDdjJLZXlHZW5Sb3VuZDFSZXNwb25zZSxcbiAgUmVkcGFsbGFzTVBDdjJLZXlHZW5Sb3VuZDJSZXNwb25zZSxcbiAgUmVkcGFsbGFzT1ZDMVRvQml0Z29Sb3VuZDFQYXlsb2FkLFxuICBSZWRwYWxsYXNPVkMyVG9CaXRnb1JvdW5kMlBheWxvYWQsXG59IGZyb20gJ0BiaXRnby9wdWJsaWMtdHlwZXMnO1xuaW1wb3J0IHsgQml0R29CYXNlLCBJQmFzZUNvaW4gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9zcmMnO1xuaW1wb3J0IHsgUmVkcGFsbGFzTVBDdjJTTUNVdGlscyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iaXRnby91dGlscy90c3MvcmVkcGFsbGFzL1NNQy91dGlscyc7XG5cbmRlc2NyaWJlKCdSZWRQYWxsYXMgTVBDdjIgU01DIFV0aWxzOicsIGZ1bmN0aW9uICgpIHtcbiAgY29uc3QgZW50ZXJwcmlzZUlkID0gJzY0NDkxNTNhNmY2YmMyMDAwNmQ2Njc3MWNkYmUxNWQzJztcbiAgY29uc3QgY29pbk5hbWUgPSAnemVjJztcblxuICBsZXQgc21jVXRpbHM6IFJlZHBhbGxhc01QQ3YyU01DVXRpbHM7XG4gIGxldCBtb2NrQml0Z286IEJpdEdvQmFzZTtcbiAgbGV0IG1vY2tCYXNlQ29pbjogSUJhc2VDb2luO1xuICBsZXQga2V5Y2hhaW5zU3R1YjogeyBnZXQ6IHNpbm9uLlNpbm9uU3R1YjsgYWRkOiBzaW5vbi5TaW5vblN0dWIgfTtcbiAgbGV0IHBvc3RDaGFpbjogeyBzZW5kOiBzaW5vbi5TaW5vblN0dWI7IHJlc3VsdDogc2lub24uU2lub25TdHViIH07XG5cbiAgY29uc3QgZmFrZVNpZ25lZE1lc3NhZ2UgPSAoc3VmZml4OiBzdHJpbmcpID0+ICh7XG4gICAgbWVzc2FnZTogQnVmZmVyLmZyb20oYG1lc3NhZ2UtJHtzdWZmaXh9YCkudG9TdHJpbmcoJ2Jhc2U2NCcpLFxuICAgIHNpZ25hdHVyZTogYHNpZ25hdHVyZS0ke3N1ZmZpeH1gLFxuICB9KTtcblxuICBjb25zdCBidWlsZFJvdW5kMVBheWxvYWQgPSAoXG4gICAgc3RhdGU6IFJlZHBhbGxhc0tleUNyZWF0aW9uTVBDdjJTdGF0ZUVudW0gPSBSZWRwYWxsYXNLZXlDcmVhdGlvbk1QQ3YyU3RhdGVFbnVtLldhaXRpbmdGb3JCaXRnb1JvdW5kMURhdGFcbiAgKTogUmVkcGFsbGFzT1ZDMVRvQml0Z29Sb3VuZDFQYXlsb2FkID0+XG4gICAgKHtcbiAgICAgIHN0YXRlLFxuICAgICAgdHNzVmVyc2lvbjogJzAuMC4xJyxcbiAgICAgIHdhbGxldFR5cGU6ICdjb2xkJyxcbiAgICAgIGNvaW46IGNvaW5OYW1lLFxuICAgICAgb3ZjOiB7XG4gICAgICAgIFtPVkNJbmRleEVudW0uT05FXToge1xuICAgICAgICAgIGdwZ1B1YktleTogJ3VzZXItZ3BnLXB1YmtleScsXG4gICAgICAgICAgb3ZjTXNnMTogZmFrZVNpZ25lZE1lc3NhZ2UoJ3VzZXItMScpLFxuICAgICAgICB9LFxuICAgICAgICBbT1ZDSW5kZXhFbnVtLlRXT106IHtcbiAgICAgICAgICBncGdQdWJLZXk6ICdiYWNrdXAtZ3BnLXB1YmtleScsXG4gICAgICAgICAgb3ZjTXNnMTogZmFrZVNpZ25lZE1lc3NhZ2UoJ2JhY2t1cC0xJyksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0gYXMgdW5rbm93biBhcyBSZWRwYWxsYXNPVkMxVG9CaXRnb1JvdW5kMVBheWxvYWQpO1xuXG4gIGNvbnN0IGJ1aWxkUm91bmQyUGF5bG9hZCA9IChcbiAgICBzZXNzaW9uSWQgPSAndGVzdC1zZXNzaW9uLWlkJyxcbiAgICBzdGF0ZTogUmVkcGFsbGFzS2V5Q3JlYXRpb25NUEN2MlN0YXRlRW51bSA9IFJlZHBhbGxhc0tleUNyZWF0aW9uTVBDdjJTdGF0ZUVudW0uV2FpdGluZ0ZvckJpdGdvUm91bmQyRGF0YVxuICApOiBSZWRwYWxsYXNPVkMyVG9CaXRnb1JvdW5kMlBheWxvYWQgPT5cbiAgICAoe1xuICAgICAgc3RhdGUsXG4gICAgICB0c3NWZXJzaW9uOiAnMC4wLjEnLFxuICAgICAgd2FsbGV0VHlwZTogJ2NvbGQnLFxuICAgICAgY29pbjogY29pbk5hbWUsXG4gICAgICBvdmM6IHtcbiAgICAgICAgW09WQ0luZGV4RW51bS5PTkVdOiB7XG4gICAgICAgICAgZ3BnUHViS2V5OiAndXNlci1ncGctcHVia2V5JyxcbiAgICAgICAgICBvdmNNc2cxOiBmYWtlU2lnbmVkTWVzc2FnZSgndXNlci0xJyksXG4gICAgICAgICAgb3ZjTXNnMjogZmFrZVNpZ25lZE1lc3NhZ2UoJ3VzZXItMicpLFxuICAgICAgICB9LFxuICAgICAgICBbT1ZDSW5kZXhFbnVtLlRXT106IHtcbiAgICAgICAgICBncGdQdWJLZXk6ICdiYWNrdXAtZ3BnLXB1YmtleScsXG4gICAgICAgICAgb3ZjTXNnMTogZmFrZVNpZ25lZE1lc3NhZ2UoJ2JhY2t1cC0xJyksXG4gICAgICAgICAgb3ZjTXNnMjogZmFrZVNpZ25lZE1lc3NhZ2UoJ2JhY2t1cC0yJyksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgcGxhdGZvcm06IHtcbiAgICAgICAgc2Vzc2lvbklkLFxuICAgICAgICBiaXRnb01zZzE6IGZha2VTaWduZWRNZXNzYWdlKCdiaXRnby0xJyksXG4gICAgICB9LFxuICAgIH0gYXMgdW5rbm93biBhcyBSZWRwYWxsYXNPVkMyVG9CaXRnb1JvdW5kMlBheWxvYWQpO1xuXG4gIGJlZm9yZUVhY2goZnVuY3Rpb24gKCkge1xuICAgIHBvc3RDaGFpbiA9IHtcbiAgICAgIHNlbmQ6IHNpbm9uLnN0dWIoKS5yZXR1cm5zVGhpcygpLFxuICAgICAgcmVzdWx0OiBzaW5vbi5zdHViKCksXG4gICAgfTtcbiAgICBtb2NrQml0Z28gPSB7XG4gICAgICBwb3N0OiBzaW5vbi5zdHViKCkucmV0dXJucyhwb3N0Q2hhaW4pLFxuICAgICAgdXJsOiBzaW5vbi5zdHViKCkuY2FsbHNGYWtlKChwYXRoOiBzdHJpbmcpID0+IGAvYXBpL3YyJHtwYXRofWApLFxuICAgIH0gYXMgdW5rbm93biBhcyBCaXRHb0Jhc2U7XG5cbiAgICBrZXljaGFpbnNTdHViID0ge1xuICAgICAgZ2V0OiBzaW5vbi5zdHViKCksXG4gICAgICBhZGQ6IHNpbm9uLnN0dWIoKSxcbiAgICB9O1xuICAgIG1vY2tCYXNlQ29pbiA9IHtcbiAgICAgIGtleWNoYWluczogc2lub24uc3R1YigpLnJldHVybnMoa2V5Y2hhaW5zU3R1YiksXG4gICAgfSBhcyB1bmtub3duIGFzIElCYXNlQ29pbjtcblxuICAgIHNtY1V0aWxzID0gbmV3IFJlZHBhbGxhc01QQ3YyU01DVXRpbHMobW9ja0JpdGdvLCBtb2NrQmFzZUNvaW4pO1xuICB9KTtcblxuICBhZnRlckVhY2goZnVuY3Rpb24gKCkge1xuICAgIHNpbm9uLnJlc3RvcmUoKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2tleUdlblJvdW5kMUJ5U2VuZGVyJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdyZXR1cm5zIGEgd2VsbC1mb3JtZWQgQml0R2/ihpJPVkMxIHJvdW5kIDEgcmVzcG9uc2Ugb24gc3VjY2VzcycsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHBheWxvYWQgPSBidWlsZFJvdW5kMVBheWxvYWQoKTtcbiAgICAgIGNvbnN0IHNlbmRlckZuID0gc2lub24uc3R1YigpLnJlc29sdmVzKHtcbiAgICAgICAgc2Vzc2lvbklkOiAnc2Vzc2lvbi1hYmMnLFxuICAgICAgICBiaXRnb01zZzE6IGZha2VTaWduZWRNZXNzYWdlKCdiaXRnby1yMScpLFxuICAgICAgfSBhcyB1bmtub3duIGFzIFJlZHBhbGxhc01QQ3YyS2V5R2VuUm91bmQxUmVzcG9uc2UpO1xuXG4gICAgICBjb25zdCByZXNwb25zZSA9IChhd2FpdCBzbWNVdGlscy5rZXlHZW5Sb3VuZDFCeVNlbmRlcihcbiAgICAgICAgc2VuZGVyRm4gYXMgbmV2ZXIsXG4gICAgICAgIHBheWxvYWRcbiAgICAgICkpIGFzIFJlZHBhbGxhc0JpdGdvVG9PVkMxUm91bmQxUmVzcG9uc2U7XG5cbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5zdGF0ZSwgUmVkcGFsbGFzS2V5Q3JlYXRpb25NUEN2MlN0YXRlRW51bS5XYWl0aW5nRm9yT1ZDMVJvdW5kMkRhdGEpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLnRzc1ZlcnNpb24sIHBheWxvYWQudHNzVmVyc2lvbik7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Uud2FsbGV0VHlwZSwgcGF5bG9hZC53YWxsZXRUeXBlKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5jb2luLCBwYXlsb2FkLmNvaW4pO1xuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZS5vdmMsIHBheWxvYWQub3ZjKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5wbGF0Zm9ybS5zZXNzaW9uSWQsICdzZXNzaW9uLWFiYycpO1xuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZS5wbGF0Zm9ybS5iaXRnb01zZzEsIGZha2VTaWduZWRNZXNzYWdlKCdiaXRnby1yMScpKTtcbiAgICAgIGFzc2VydC5vayhzZW5kZXJGbi5jYWxsZWRPbmNlKTtcblxuICAgICAgY29uc3QgWywgc2VuZGVyUGF5bG9hZF0gPSBzZW5kZXJGbi5maXJzdENhbGwuYXJncyBhcyBbdW5rbm93biwgUmVjb3JkPHN0cmluZywgdW5rbm93bj5dO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNlbmRlclBheWxvYWQudXNlckdwZ1B1YmxpY0tleSwgcGF5bG9hZC5vdmNbT1ZDSW5kZXhFbnVtLk9ORV0uZ3BnUHViS2V5KTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZW5kZXJQYXlsb2FkLmJhY2t1cEdwZ1B1YmxpY0tleSwgcGF5bG9hZC5vdmNbT1ZDSW5kZXhFbnVtLlRXT10uZ3BnUHViS2V5KTtcbiAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2VuZGVyUGF5bG9hZC51c2VyTXNnMSwgcGF5bG9hZC5vdmNbT1ZDSW5kZXhFbnVtLk9ORV0ub3ZjTXNnMSk7XG4gICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNlbmRlclBheWxvYWQuYmFja3VwTXNnMSwgcGF5bG9hZC5vdmNbT1ZDSW5kZXhFbnVtLlRXT10ub3ZjTXNnMSk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVqZWN0cyB3aGVuIHRoZSBwYXlsb2FkIHN0YXRlIGlzIG5vdCBXYWl0aW5nRm9yQml0Z29Sb3VuZDFEYXRhJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgcGF5bG9hZCA9IGJ1aWxkUm91bmQxUGF5bG9hZChSZWRwYWxsYXNLZXlDcmVhdGlvbk1QQ3YyU3RhdGVFbnVtLldhaXRpbmdGb3JPVkMxUm91bmQyRGF0YSk7XG4gICAgICBjb25zdCBzZW5kZXJGbiA9IHNpbm9uLnN0dWIoKS5yZWplY3RzKG5ldyBFcnJvcignc2VuZGVyIHNob3VsZCBub3QgYmUgaW52b2tlZCcpKTtcblxuICAgICAgYXdhaXQgYXNzZXJ0LnJlamVjdHMoc21jVXRpbHMua2V5R2VuUm91bmQxQnlTZW5kZXIoc2VuZGVyRm4gYXMgbmV2ZXIsIHBheWxvYWQpLCB7XG4gICAgICAgIG1lc3NhZ2U6IGBJbnZhbGlkIHN0YXRlIGZvciByb3VuZCAxLCBleHBlY3RlZDogJHtSZWRwYWxsYXNLZXlDcmVhdGlvbk1QQ3YyU3RhdGVFbnVtLldhaXRpbmdGb3JCaXRnb1JvdW5kMURhdGF9LCBnb3Q6ICR7UmVkcGFsbGFzS2V5Q3JlYXRpb25NUEN2MlN0YXRlRW51bS5XYWl0aW5nRm9yT1ZDMVJvdW5kMkRhdGF9YCxcbiAgICAgIH0pO1xuICAgICAgYXNzZXJ0Lm9rKHNlbmRlckZuLm5vdENhbGxlZCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVqZWN0cyB3aGVuIHRoZSByZXNwb25zZSBpcyBtYWxmb3JtZWQgKHNlc3Npb25JZCBlbXB0eSknLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBwYXlsb2FkID0gYnVpbGRSb3VuZDFQYXlsb2FkKCk7XG4gICAgICBjb25zdCBzZW5kZXJGbiA9IHNpbm9uLnN0dWIoKS5yZXNvbHZlcyh7XG4gICAgICAgIHNlc3Npb25JZDogJycsXG4gICAgICAgIGJpdGdvTXNnMTogZmFrZVNpZ25lZE1lc3NhZ2UoJ2JpdGdvLXIxJyksXG4gICAgICB9KTtcblxuICAgICAgYXdhaXQgYXNzZXJ0LnJlamVjdHMoc21jVXRpbHMua2V5R2VuUm91bmQxQnlTZW5kZXIoc2VuZGVyRm4gYXMgbmV2ZXIsIHBheWxvYWQpLCAvZXJyb3JcXChzXFwpIHBhcnNpbmcgcmVzcG9uc2UvKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2tleUdlblJvdW5kMkJ5U2VuZGVyJywgZnVuY3Rpb24gKCkge1xuICAgIGJlZm9yZUVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgZmFrZUtleWNoYWluID0ge1xuICAgICAgICBpZDogJ2JpdGdvLWtleWNoYWluLWlkJyxcbiAgICAgICAgc291cmNlOiAnYml0Z28nLFxuICAgICAgICB0eXBlOiAndHNzJyBhcyBjb25zdCxcbiAgICAgICAgY29tbW9uS2V5Y2hhaW46ICdhJy5yZXBlYXQoNjQpLFxuICAgICAgfTtcbiAgICAgIGtleWNoYWluc1N0dWIuYWRkLnJlc29sdmVzKGZha2VLZXljaGFpbik7XG4gICAgfSk7XG5cbiAgICBpdCgncmV0dXJucyBhIHdlbGwtZm9ybWVkIEJpdEdv4oaST1ZDMSByb3VuZCAyIHJlc3BvbnNlIGFuZCBhZGRzIHRoZSBCaXRHbyBrZXljaGFpbicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHBheWxvYWQgPSBidWlsZFJvdW5kMlBheWxvYWQoJ3Nlc3Npb24teHl6Jyk7XG4gICAgICBjb25zdCBzZW5kZXJGbiA9IHNpbm9uLnN0dWIoKS5yZXNvbHZlcyh7XG4gICAgICAgIHNlc3Npb25JZDogJ3Nlc3Npb24teHl6JyxcbiAgICAgICAgY29tbW9uUHVibGljS2V5Y2hhaW46ICdhJy5yZXBlYXQoNjQpLFxuICAgICAgICBiaXRnb01zZzI6IGZha2VTaWduZWRNZXNzYWdlKCdiaXRnby1yMicpLFxuICAgICAgfSBhcyB1bmtub3duIGFzIFJlZHBhbGxhc01QQ3YyS2V5R2VuUm91bmQyUmVzcG9uc2UpO1xuXG4gICAgICBjb25zdCByZXNwb25zZSA9IChhd2FpdCBzbWNVdGlscy5rZXlHZW5Sb3VuZDJCeVNlbmRlcihcbiAgICAgICAgc2VuZGVyRm4gYXMgbmV2ZXIsXG4gICAgICAgIHBheWxvYWRcbiAgICAgICkpIGFzIFJlZHBhbGxhc0JpdGdvVG9PVkMxUm91bmQyUmVzcG9uc2U7XG5cbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5zdGF0ZSwgUmVkcGFsbGFzS2V5Q3JlYXRpb25NUEN2MlN0YXRlRW51bS5XYWl0aW5nRm9yT1ZDMUdlbmVyYXRlS2V5KTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5iaXRHb0tleUlkLCAnYml0Z28ta2V5Y2hhaW4taWQnKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS50c3NWZXJzaW9uLCBwYXlsb2FkLnRzc1ZlcnNpb24pO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlLndhbGxldFR5cGUsIHBheWxvYWQud2FsbGV0VHlwZSk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2UuY29pbiwgcGF5bG9hZC5jb2luKTtcbiAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2Uub3ZjLCBwYXlsb2FkLm92Yyk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2UucGxhdGZvcm0uc2Vzc2lvbklkLCAnc2Vzc2lvbi14eXonKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5wbGF0Zm9ybS5jb21tb25QdWJsaWNLZXljaGFpbiwgJ2EnLnJlcGVhdCg2NCkpO1xuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXNwb25zZS5wbGF0Zm9ybS5iaXRnb01zZzEsIHBheWxvYWQucGxhdGZvcm0uYml0Z29Nc2cxKTtcbiAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzcG9uc2UucGxhdGZvcm0uYml0Z29Nc2cyLCBmYWtlU2lnbmVkTWVzc2FnZSgnYml0Z28tcjInKSk7XG5cbiAgICAgIGNvbnN0IFssIHNlbmRlclBheWxvYWRdID0gc2VuZGVyRm4uZmlyc3RDYWxsLmFyZ3MgYXMgW3Vua25vd24sIFJlY29yZDxzdHJpbmcsIHVua25vd24+XTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZW5kZXJQYXlsb2FkLnNlc3Npb25JZCwgJ3Nlc3Npb24teHl6Jyk7XG4gICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNlbmRlclBheWxvYWQudXNlck1zZzIsIHBheWxvYWQub3ZjW09WQ0luZGV4RW51bS5PTkVdLm92Y01zZzIpO1xuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChzZW5kZXJQYXlsb2FkLmJhY2t1cE1zZzIsIHBheWxvYWQub3ZjW09WQ0luZGV4RW51bS5UV09dLm92Y01zZzIpO1xuXG4gICAgICBhc3NlcnQub2soa2V5Y2hhaW5zU3R1Yi5hZGQuY2FsbGVkT25jZSk7XG4gICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGtleWNoYWluc1N0dWIuYWRkLmZpcnN0Q2FsbC5hcmdzWzBdLCB7XG4gICAgICAgIHNvdXJjZTogJ2JpdGdvJyxcbiAgICAgICAga2V5VHlwZTogJ3RzcycsXG4gICAgICAgIGNvbW1vbktleWNoYWluOiAnYScucmVwZWF0KDY0KSxcbiAgICAgICAgaXNNUEN2MjogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlamVjdHMgd2hlbiB0aGUgcGF5bG9hZCBzdGF0ZSBpcyBub3QgV2FpdGluZ0ZvckJpdGdvUm91bmQyRGF0YScsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHBheWxvYWQgPSBidWlsZFJvdW5kMlBheWxvYWQoJ3Nlc3Npb24teHl6JywgUmVkcGFsbGFzS2V5Q3JlYXRpb25NUEN2MlN0YXRlRW51bS5XYWl0aW5nRm9yT1ZDMlJvdW5kMkRhdGEpO1xuICAgICAgY29uc3Qgc2VuZGVyRm4gPSBzaW5vbi5zdHViKCkucmVqZWN0cyhuZXcgRXJyb3IoJ3NlbmRlciBzaG91bGQgbm90IGJlIGludm9rZWQnKSk7XG5cbiAgICAgIGF3YWl0IGFzc2VydC5yZWplY3RzKHNtY1V0aWxzLmtleUdlblJvdW5kMkJ5U2VuZGVyKHNlbmRlckZuIGFzIG5ldmVyLCBwYXlsb2FkKSwge1xuICAgICAgICBtZXNzYWdlOiBgSW52YWxpZCBzdGF0ZSBmb3Igcm91bmQgMiwgZXhwZWN0ZWQ6ICR7UmVkcGFsbGFzS2V5Q3JlYXRpb25NUEN2MlN0YXRlRW51bS5XYWl0aW5nRm9yQml0Z29Sb3VuZDJEYXRhfSwgZ290OiAke1JlZHBhbGxhc0tleUNyZWF0aW9uTVBDdjJTdGF0ZUVudW0uV2FpdGluZ0Zvck9WQzJSb3VuZDJEYXRhfWAsXG4gICAgICB9KTtcbiAgICAgIGFzc2VydC5vayhzZW5kZXJGbi5ub3RDYWxsZWQpO1xuICAgICAgYXNzZXJ0Lm9rKGtleWNoYWluc1N0dWIuYWRkLm5vdENhbGxlZCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVqZWN0cyB3aGVuIHNlc3Npb24gSURzIHJldHVybmVkIGJ5IEJpdEdvIGRvIG5vdCBtYXRjaCB0aGUgcGF5bG9hZCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHBheWxvYWQgPSBidWlsZFJvdW5kMlBheWxvYWQoJ3Nlc3Npb24teHl6Jyk7XG4gICAgICBjb25zdCBzZW5kZXJGbiA9IHNpbm9uLnN0dWIoKS5yZXNvbHZlcyh7XG4gICAgICAgIHNlc3Npb25JZDogJ2RpZmZlcmVudC1zZXNzaW9uLWlkJyxcbiAgICAgICAgY29tbW9uUHVibGljS2V5Y2hhaW46ICdhJy5yZXBlYXQoNjQpLFxuICAgICAgICBiaXRnb01zZzI6IGZha2VTaWduZWRNZXNzYWdlKCdiaXRnby1yMicpLFxuICAgICAgfSBhcyB1bmtub3duIGFzIFJlZHBhbGxhc01QQ3YyS2V5R2VuUm91bmQyUmVzcG9uc2UpO1xuXG4gICAgICBhd2FpdCBhc3NlcnQucmVqZWN0cyhcbiAgICAgICAgc21jVXRpbHMua2V5R2VuUm91bmQyQnlTZW5kZXIoc2VuZGVyRm4gYXMgbmV2ZXIsIHBheWxvYWQpLFxuICAgICAgICAvUm91bmQgMSBhbmQgcm91bmQgMiBzZXNzaW9uIElEcyBkbyBub3QgbWF0Y2gvXG4gICAgICApO1xuICAgICAgYXNzZXJ0Lm9rKGtleWNoYWluc1N0dWIuYWRkLm5vdENhbGxlZCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdrZXlHZW5Sb3VuZDEgKGVudGVycHJpc2UpJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdyZWplY3RzIGZvciBhbiBpbnZhbGlkIHBheWxvYWQgc3RhdGUgd2l0aG91dCBjYWxsaW5nIHRoZSBBUEknLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBpbnZhbGlkUGF5bG9hZCA9IHtcbiAgICAgICAgc3RhdGU6IFJlZHBhbGxhc0tleUNyZWF0aW9uTVBDdjJTdGF0ZUVudW0uV2FpdGluZ0Zvck9WQzFSb3VuZDJEYXRhLFxuICAgICAgfSBhcyB1bmtub3duIGFzIFJlZHBhbGxhc09WQzFUb0JpdGdvUm91bmQxUGF5bG9hZDtcblxuICAgICAgYXdhaXQgYXNzZXJ0LnJlamVjdHMoc21jVXRpbHMua2V5R2VuUm91bmQxKGVudGVycHJpc2VJZCwgaW52YWxpZFBheWxvYWQpLCB7XG4gICAgICAgIG1lc3NhZ2U6IGBJbnZhbGlkIHN0YXRlIGZvciByb3VuZCAxLCBleHBlY3RlZDogJHtSZWRwYWxsYXNLZXlDcmVhdGlvbk1QQ3YyU3RhdGVFbnVtLldhaXRpbmdGb3JCaXRnb1JvdW5kMURhdGF9LCBnb3Q6ICR7UmVkcGFsbGFzS2V5Q3JlYXRpb25NUEN2MlN0YXRlRW51bS5XYWl0aW5nRm9yT1ZDMVJvdW5kMkRhdGF9YCxcbiAgICAgIH0pO1xuICAgICAgYXNzZXJ0Lm9rKChtb2NrQml0Z28ucG9zdCBhcyBzaW5vbi5TaW5vblN0dWIpLm5vdENhbGxlZCk7XG4gICAgfSk7XG5cbiAgICBpdCgnUE9TVHMgdG8gdGhlIE1QQ3YyIGdlbmVyYXRla2V5IGVuZHBvaW50IHdpdGggY3VydmVUeXBlIFJlZFBhbGxhcyBhbmQgcmV0dXJucyBhIHBhcnNlZCByb3VuZCAxIHJlc3BvbnNlJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgcGF5bG9hZCA9IGJ1aWxkUm91bmQxUGF5bG9hZCgpO1xuICAgICAgcG9zdENoYWluLnJlc3VsdC5yZXNvbHZlcyh7XG4gICAgICAgIHNlc3Npb25JZDogJ2VudGVycHJpc2Utc2Vzc2lvbicsXG4gICAgICAgIGJpdGdvTXNnMTogZmFrZVNpZ25lZE1lc3NhZ2UoJ2JpdGdvLXIxJyksXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzbWNVdGlscy5rZXlHZW5Sb3VuZDEoZW50ZXJwcmlzZUlkLCBwYXlsb2FkKTtcblxuICAgICAgYXNzZXJ0Lm9rKChtb2NrQml0Z28ucG9zdCBhcyBzaW5vbi5TaW5vblN0dWIpLmNhbGxlZE9uY2UpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKChtb2NrQml0Z28ucG9zdCBhcyBzaW5vbi5TaW5vblN0dWIpLmZpcnN0Q2FsbC5hcmdzWzBdLCAnL2FwaS92Mi9tcGMvZ2VuZXJhdGVrZXknKTtcbiAgICAgIGNvbnN0IHNlbnRCb2R5ID0gcG9zdENoYWluLnNlbmQuZmlyc3RDYWxsLmFyZ3NbMF0gYXMge1xuICAgICAgICBlbnRlcnByaXNlOiBzdHJpbmc7XG4gICAgICAgIHJvdW5kOiBzdHJpbmc7XG4gICAgICAgIGN1cnZlVHlwZTogc3RyaW5nO1xuICAgICAgICBwYXlsb2FkOiB7IHVzZXJHcGdQdWJsaWNLZXk6IHN0cmluZzsgYmFja3VwR3BnUHVibGljS2V5OiBzdHJpbmcgfTtcbiAgICAgIH07XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2VudEJvZHkuZW50ZXJwcmlzZSwgZW50ZXJwcmlzZUlkKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZW50Qm9keS5yb3VuZCwgJ01QQ3YyLVIxJyk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2VudEJvZHkuY3VydmVUeXBlLCAnUmVkUGFsbGFzJyk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2VudEJvZHkucGF5bG9hZC51c2VyR3BnUHVibGljS2V5LCBwYXlsb2FkLm92Y1tPVkNJbmRleEVudW0uT05FXS5ncGdQdWJLZXkpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNlbnRCb2R5LnBheWxvYWQuYmFja3VwR3BnUHVibGljS2V5LCBwYXlsb2FkLm92Y1tPVkNJbmRleEVudW0uVFdPXS5ncGdQdWJLZXkpO1xuXG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Uuc3RhdGUsIFJlZHBhbGxhc0tleUNyZWF0aW9uTVBDdjJTdGF0ZUVudW0uV2FpdGluZ0Zvck9WQzFSb3VuZDJEYXRhKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZS5wbGF0Zm9ybS5zZXNzaW9uSWQsICdlbnRlcnByaXNlLXNlc3Npb24nKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2tleUdlblJvdW5kMiAoZW50ZXJwcmlzZSknLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3JlamVjdHMgZm9yIGFuIGludmFsaWQgcGF5bG9hZCBzdGF0ZSB3aXRob3V0IGNhbGxpbmcgdGhlIEFQSScsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGludmFsaWRQYXlsb2FkID0ge1xuICAgICAgICBzdGF0ZTogUmVkcGFsbGFzS2V5Q3JlYXRpb25NUEN2MlN0YXRlRW51bS5XYWl0aW5nRm9yT1ZDMVJvdW5kMkRhdGEsXG4gICAgICB9IGFzIHVua25vd24gYXMgUmVkcGFsbGFzT1ZDMlRvQml0Z29Sb3VuZDJQYXlsb2FkO1xuXG4gICAgICBhd2FpdCBhc3NlcnQucmVqZWN0cyhzbWNVdGlscy5rZXlHZW5Sb3VuZDIoZW50ZXJwcmlzZUlkLCBpbnZhbGlkUGF5bG9hZCksIHtcbiAgICAgICAgbWVzc2FnZTogYEludmFsaWQgc3RhdGUgZm9yIHJvdW5kIDIsIGV4cGVjdGVkOiAke1JlZHBhbGxhc0tleUNyZWF0aW9uTVBDdjJTdGF0ZUVudW0uV2FpdGluZ0ZvckJpdGdvUm91bmQyRGF0YX0sIGdvdDogJHtSZWRwYWxsYXNLZXlDcmVhdGlvbk1QQ3YyU3RhdGVFbnVtLldhaXRpbmdGb3JPVkMxUm91bmQyRGF0YX1gLFxuICAgICAgfSk7XG4gICAgICBhc3NlcnQub2soKG1vY2tCaXRnby5wb3N0IGFzIHNpbm9uLlNpbm9uU3R1Yikubm90Q2FsbGVkKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3VwbG9hZENsaWVudEtleXMnLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgYml0Z29LZXlJZCA9ICdiaXRnby1rZXktaWQnO1xuICAgIGNvbnN0IGNvbW1vbktleWNoYWluID0gJ2EnLnJlcGVhdCg2NCk7XG5cbiAgICBpdCgndXBsb2FkcyB1c2VyL2JhY2t1cCBrZXljaGFpbnMgYW5kIHJldHVybnMgdGhlIHRyaXBsZXQgb24gdGhlIGhhcHB5IHBhdGgnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBiaXRnb0tleWNoYWluID0geyBpZDogYml0Z29LZXlJZCwgdHlwZTogJ3RzcycsIHNvdXJjZTogJ2JpdGdvJywgY29tbW9uS2V5Y2hhaW4gfTtcbiAgICAgIGNvbnN0IHVzZXJLZXljaGFpbiA9IHsgaWQ6ICd1c2VyLWlkJywgdHlwZTogJ3RzcycsIHNvdXJjZTogJ3VzZXInLCBjb21tb25LZXljaGFpbiB9O1xuICAgICAgY29uc3QgYmFja3VwS2V5Y2hhaW4gPSB7IGlkOiAnYmFja3VwLWlkJywgdHlwZTogJ3RzcycsIHNvdXJjZTogJ2JhY2t1cCcsIGNvbW1vbktleWNoYWluIH07XG5cbiAgICAgIGtleWNoYWluc1N0dWIuZ2V0LnJlc29sdmVzKGJpdGdvS2V5Y2hhaW4pO1xuICAgICAga2V5Y2hhaW5zU3R1Yi5hZGQud2l0aEFyZ3Moc2lub24ubWF0Y2goeyBzb3VyY2U6ICd1c2VyJyB9KSkucmVzb2x2ZXModXNlcktleWNoYWluKTtcbiAgICAgIGtleWNoYWluc1N0dWIuYWRkLndpdGhBcmdzKHNpbm9uLm1hdGNoKHsgc291cmNlOiAnYmFja3VwJyB9KSkucmVzb2x2ZXMoYmFja3VwS2V5Y2hhaW4pO1xuXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBzbWNVdGlscy51cGxvYWRDbGllbnRLZXlzKGJpdGdvS2V5SWQsIGNvbW1vbktleWNoYWluLCBjb21tb25LZXljaGFpbik7XG5cbiAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0LnVzZXJLZXljaGFpbiwgdXNlcktleWNoYWluKTtcbiAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0LmJhY2t1cEtleWNoYWluLCBiYWNrdXBLZXljaGFpbik7XG4gICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdC5iaXRnb0tleWNoYWluLCBiaXRnb0tleWNoYWluKTtcblxuICAgICAgYXNzZXJ0Lm9rKGtleWNoYWluc1N0dWIuZ2V0LmNhbGxlZE9uY2VXaXRoRXhhY3RseSh7IGlkOiBiaXRnb0tleUlkIH0pKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChrZXljaGFpbnNTdHViLmFkZC5jYWxsQ291bnQsIDIpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlamVjdHMgd2hlbiB1c2VyIGFuZCBiYWNrdXAgY29tbW9uIGtleWNoYWlucyBkaWZmZXInLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBhd2FpdCBhc3NlcnQucmVqZWN0cyhcbiAgICAgICAgc21jVXRpbHMudXBsb2FkQ2xpZW50S2V5cyhiaXRnb0tleUlkLCAnYScucmVwZWF0KDY0KSwgJ2InLnJlcGVhdCg2NCkpLFxuICAgICAgICAvQ29tbW9uIGtleWNoYWluIG1pc21hdGNoIGJldHdlZW4gdGhlIHVzZXIgYW5kIGJhY2t1cCBrZXljaGFpbnMvXG4gICAgICApO1xuICAgICAgYXNzZXJ0Lm9rKGtleWNoYWluc1N0dWIuZ2V0Lm5vdENhbGxlZCk7XG4gICAgICBhc3NlcnQub2soa2V5Y2hhaW5zU3R1Yi5hZGQubm90Q2FsbGVkKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZWplY3RzIHdoZW4gdGhlIEJpdEdvIGtleWNoYWluIGNhbm5vdCBiZSBmb3VuZCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGtleWNoYWluc1N0dWIuZ2V0LnJlc29sdmVzKHVuZGVmaW5lZCk7XG5cbiAgICAgIGF3YWl0IGFzc2VydC5yZWplY3RzKHNtY1V0aWxzLnVwbG9hZENsaWVudEtleXMoYml0Z29LZXlJZCwgY29tbW9uS2V5Y2hhaW4sIGNvbW1vbktleWNoYWluKSwgL0tleWNoYWluIG5vdCBmb3VuZC8pO1xuICAgICAgYXNzZXJ0Lm9rKGtleWNoYWluc1N0dWIuYWRkLm5vdENhbGxlZCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|