@bitgo/sdk-core 2.0.0-rc.3 → 2.0.0-rc.6
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/CHANGELOG.md +48 -0
- package/dist/src/bitgo/baseCoin/baseCoin.d.ts +5 -1
- package/dist/src/bitgo/baseCoin/baseCoin.d.ts.map +1 -1
- package/dist/src/bitgo/baseCoin/baseCoin.js +7 -1
- package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +2 -0
- package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts.map +1 -1
- package/dist/src/bitgo/baseCoin/iBaseCoin.js +1 -1
- package/dist/src/bitgo/config.d.ts +6 -0
- package/dist/src/bitgo/config.d.ts.map +1 -1
- package/dist/src/bitgo/index.d.ts +1 -0
- package/dist/src/bitgo/index.d.ts.map +1 -1
- package/dist/src/bitgo/index.js +3 -2
- package/dist/src/bitgo/keychain/keychains.d.ts.map +1 -1
- package/dist/src/bitgo/keychain/keychains.js +2 -2
- package/dist/src/bitgo/legacyBitcoin.d.ts +37 -0
- package/dist/src/bitgo/legacyBitcoin.d.ts.map +1 -0
- package/dist/src/bitgo/legacyBitcoin.js +97 -0
- package/dist/src/bitgo/lightning/iLightning.d.ts +4 -5
- package/dist/src/bitgo/lightning/iLightning.d.ts.map +1 -1
- package/dist/src/bitgo/lightning/iLightning.js +1 -1
- package/dist/src/bitgo/lightning/lightning.d.ts +5 -3
- package/dist/src/bitgo/lightning/lightning.d.ts.map +1 -1
- package/dist/src/bitgo/lightning/lightning.js +29 -5
- package/dist/src/bitgo/pendingApproval/pendingApproval.d.ts.map +1 -1
- package/dist/src/bitgo/pendingApproval/pendingApproval.js +3 -2
- package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts +10 -1
- package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts.map +1 -1
- package/dist/src/bitgo/tss/ecdsa/ecdsa.js +44 -12
- package/dist/src/bitgo/utils/opengpgUtils.d.ts.map +1 -1
- package/dist/src/bitgo/utils/opengpgUtils.js +2 -1
- package/dist/src/bitgo/utils/tss/index.d.ts +1 -1
- package/dist/src/bitgo/utils/tss/index.js +2 -2
- package/dist/src/bitgo/wallet/iWallets.d.ts +1 -0
- package/dist/src/bitgo/wallet/iWallets.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/iWallets.js +1 -1
- package/dist/src/bitgo/wallet/wallet.js +2 -2
- package/dist/src/bitgo/wallet/wallets.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/wallets.js +3 -1
- package/dist/tsconfig.tsbuildinfo +117 -86
- package/package.json +5 -5
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getParticapantFromIndex = exports.getParticapantIndex = exports.convertSignatureShare = exports.parseSignatureShare = exports.convertSDShare = exports.parseSDShare = exports.convertDShare = exports.parseDShare = exports.convertMuShare = exports.parseMuShare = exports.convertAShare = exports.parseAShare = exports.convertKShare = exports.parseKShare = exports.getPublicKey = exports.decryptNShare = exports.encryptNShare = exports.sendShareToBitgo = exports.createUserSignatureShare = exports.createUserOmicronAndDeltaShare = exports.createUserGammaAndMuShare = exports.createUserSignShare = exports.createCombinedKey = void 0;
|
|
3
|
+
exports.getParticapantFromIndex = exports.getParticapantIndex = exports.convertSignatureShare = exports.parseSignatureShare = exports.convertSDShare = exports.parseSDShare = exports.convertDShare = exports.parseDShare = exports.convertMuShare = exports.parseMuShare = exports.convertAShare = exports.parseAShare = exports.convertKShare = exports.parseKShare = exports.getPublicKey = exports.decryptNShare = exports.encryptNShare = exports.getBitgoToUserLatestShare = exports.sendShareToBitgo = exports.createUserSignatureShare = exports.createUserOmicronAndDeltaShare = exports.createUserGammaAndMuShare = exports.createUserSignShare = exports.createCombinedKey = void 0;
|
|
4
4
|
const tss_1 = require("./../../../account-lib/mpc/tss");
|
|
5
5
|
const types_1 = require("./types");
|
|
6
6
|
const utils_1 = require("./../../utils");
|
|
@@ -142,14 +142,14 @@ async function sendShareToBitgo(bitgo, walletId, txRequestId, shareType, share,
|
|
|
142
142
|
case types_1.SendShareType.KShare:
|
|
143
143
|
const kShare = share;
|
|
144
144
|
signatureShare = convertKShare(kShare);
|
|
145
|
-
|
|
146
|
-
responseFromBitgo =
|
|
145
|
+
await common_1.sendSignatureShare(bitgo, walletId, txRequestId, signatureShare);
|
|
146
|
+
responseFromBitgo = await getBitgoToUserLatestShare(bitgo, walletId, txRequestId, types_1.ReceivedShareType.AShare);
|
|
147
147
|
break;
|
|
148
148
|
case types_1.SendShareType.MUShare:
|
|
149
149
|
const muShare = share;
|
|
150
150
|
signatureShare = convertMuShare(muShare);
|
|
151
|
-
|
|
152
|
-
responseFromBitgo =
|
|
151
|
+
await common_1.sendSignatureShare(bitgo, walletId, txRequestId, signatureShare);
|
|
152
|
+
responseFromBitgo = await getBitgoToUserLatestShare(bitgo, walletId, txRequestId, types_1.ReceivedShareType.DShare);
|
|
153
153
|
break;
|
|
154
154
|
case types_1.SendShareType.SShare:
|
|
155
155
|
if (!dShare) {
|
|
@@ -160,15 +160,47 @@ async function sendShareToBitgo(bitgo, walletId, txRequestId, shareType, share,
|
|
|
160
160
|
}
|
|
161
161
|
const sShare = share;
|
|
162
162
|
signatureShare = convertSDShare({ sShare, dShare });
|
|
163
|
-
|
|
164
|
-
responseFromBitgo =
|
|
163
|
+
await common_1.sendSignatureShare(bitgo, walletId, txRequestId, signatureShare);
|
|
164
|
+
responseFromBitgo = sShare;
|
|
165
165
|
break;
|
|
166
166
|
default:
|
|
167
|
-
throw 'Invalid Share given to send';
|
|
167
|
+
throw new Error('Invalid Share given to send');
|
|
168
168
|
}
|
|
169
169
|
return responseFromBitgo;
|
|
170
170
|
}
|
|
171
171
|
exports.sendShareToBitgo = sendShareToBitgo;
|
|
172
|
+
/**
|
|
173
|
+
* Gets the latest user's share from bitgo needed to continue signing flow
|
|
174
|
+
* @param {BitGoBase} bitgo - the bitgo instance
|
|
175
|
+
* @param {String} walletId - the wallet id *
|
|
176
|
+
* @param {String} txRequestId - the txRequest Id
|
|
177
|
+
* @param {ReceivedShareType} shareType - the excpected share type
|
|
178
|
+
* @returns {Promise<SendShareToBitgoRT>} - share from bitgo to user
|
|
179
|
+
*/
|
|
180
|
+
async function getBitgoToUserLatestShare(bitgo, walletId, txRequestId, shareType) {
|
|
181
|
+
let responseFromBitgo;
|
|
182
|
+
const txRequest = await common_1.getTxRequest(bitgo, walletId, txRequestId);
|
|
183
|
+
const userShares = txRequest.signatureShares;
|
|
184
|
+
if (!userShares || !userShares.length) {
|
|
185
|
+
throw new Error('user share is not present');
|
|
186
|
+
}
|
|
187
|
+
const shareRecord = userShares[userShares.length - 1];
|
|
188
|
+
switch (shareType) {
|
|
189
|
+
case types_1.ReceivedShareType.AShare:
|
|
190
|
+
responseFromBitgo = parseAShare(shareRecord);
|
|
191
|
+
break;
|
|
192
|
+
case types_1.ReceivedShareType.DShare:
|
|
193
|
+
responseFromBitgo = parseDShare(shareRecord);
|
|
194
|
+
break;
|
|
195
|
+
case types_1.ReceivedShareType.Signature:
|
|
196
|
+
responseFromBitgo = parseSignatureShare(shareRecord);
|
|
197
|
+
break;
|
|
198
|
+
default:
|
|
199
|
+
throw new Error('Invalid share received');
|
|
200
|
+
}
|
|
201
|
+
return responseFromBitgo;
|
|
202
|
+
}
|
|
203
|
+
exports.getBitgoToUserLatestShare = getBitgoToUserLatestShare;
|
|
172
204
|
/**
|
|
173
205
|
* Prepares a NShare to be exchanged with other key holders.
|
|
174
206
|
* Output is in a format that is usable within BitGo's ecosystem.
|
|
@@ -205,10 +237,10 @@ async function decryptNShare(encryptedNShare) {
|
|
|
205
237
|
const nShare = {
|
|
206
238
|
i: encryptedNShare.nShare.i,
|
|
207
239
|
j: encryptedNShare.nShare.j,
|
|
208
|
-
y: encryptedNShare.nShare.publicShare.slice(0,
|
|
240
|
+
y: encryptedNShare.nShare.publicShare.slice(0, 66),
|
|
209
241
|
u: privateShare,
|
|
210
|
-
n: encryptedNShare.nShare.publicShare.slice(
|
|
211
|
-
chaincode: encryptedNShare.nShare.publicShare.slice(
|
|
242
|
+
n: encryptedNShare.nShare.publicShare.slice(130),
|
|
243
|
+
chaincode: encryptedNShare.nShare.publicShare.slice(66, 130),
|
|
212
244
|
};
|
|
213
245
|
return nShare;
|
|
214
246
|
}
|
|
@@ -444,4 +476,4 @@ function getParticapantFromIndex(index) {
|
|
|
444
476
|
}
|
|
445
477
|
}
|
|
446
478
|
exports.getParticapantFromIndex = getParticapantFromIndex;
|
|
447
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNkc2EuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYml0Z28vdHNzL2VjZHNhL2VjZHNhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHdEQUF1RDtBQUN2RCxtQ0FvQmlCO0FBQ2pCLHlDQUFnSDtBQUNoSCxvQ0FBNEM7QUFHNUMsc0NBQStDO0FBRS9DLE1BQU0sR0FBRyxHQUFHLElBQUksV0FBSyxFQUFFLENBQUM7QUFFeEI7Ozs7Ozs7O0dBUUc7QUFDSSxLQUFLLFVBQVUsaUJBQWlCLENBQ3JDLFFBQWtCLEVBQ2xCLGdCQUFxQyxFQUNyQyxjQUFzQjtJQUV0QixNQUFNLE9BQU8sR0FBYSxFQUFFLENBQUM7SUFFN0IsSUFBSSxXQUErQixDQUFDO0lBQ3BDLElBQUksVUFBOEIsQ0FBQztJQUNuQyxJQUFJLFlBQWdDLENBQUM7SUFFckMsS0FBSyxNQUFNLGVBQWUsSUFBSSxnQkFBZ0IsRUFBRTtRQUM5QyxNQUFNLE1BQU0sR0FBRyxNQUFNLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUVwRCxRQUFRLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFO1lBQ2hDLEtBQUssQ0FBQztnQkFDSixVQUFVLEdBQUcsTUFBTSxDQUFDO2dCQUNwQixNQUFNO1lBQ1IsS0FBSyxDQUFDO2dCQUNKLFlBQVksR0FBRyxNQUFNLENBQUM7Z0JBQ3RCLE1BQU07WUFDUixLQUFLLENBQUM7Z0JBQ0osV0FBVyxHQUFHLE1BQU0sQ0FBQztnQkFDckIsTUFBTTtZQUNSO2dCQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQztTQUMzQztRQUVELE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDdEI7SUFFRCxJQUFJLENBQUMsV0FBVyxFQUFFO1FBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztLQUMxQztJQUVELE1BQU0sV0FBVyxHQUFHLEdBQUcs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LE1BQU0sS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7S0FDckM7QUFDSCxDQUFDO0FBWEQsa0RBV0M7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsdUJBQXVCLENBQUMsS0FBYTtJQUNuRCxRQUFRLEtBQUssRUFBRTtRQUNiLEtBQUssQ0FBQztZQUNKLE9BQU8sMEJBQWtCLENBQUMsSUFBSSxDQUFDO1FBQ2pDLEtBQUssQ0FBQztZQUNKLE9BQU8sMEJBQWtCLENBQUMsTUFBTSxDQUFDO1FBQ25DLEtBQUssQ0FBQztZQUNKLE9BQU8sMEJBQWtCLENBQUMsS0FBSyxDQUFDO1FBQ2xDO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsS0FBSyxFQUFFLENBQUMsQ0FBQztLQUN6RDtBQUNILENBQUM7QUFYRCwwREFXQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVjZHNhIH0gZnJvbSAnLi8uLi8uLi8uLi9hY2NvdW50LWxpYi9tcGMvdHNzJztcbmltcG9ydCB7XG4gIERlY3J5cHRhYmxlTlNoYXJlLFxuICBDb21iaW5lZEtleSxcbiAgU2lnbmluZ01hdGVyaWFsLFxuICBFbmNyeXB0ZWROU2hhcmUsXG4gIEFTaGFyZSxcbiAgQ3JlYXRlVXNlckdhbW1hQW5kTXVTaGFyZVJULFxuICBDcmVhdGVVc2VyT21pY3JvbkFuZERlbHRhU2hhcmVSVCxcbiAgRFNoYXJlLFxuICBHU2hhcmUsXG4gIEtleVNoYXJlLFxuICBOU2hhcmUsXG4gIE9TaGFyZSxcbiAgU2VuZFNoYXJlVHlwZSxcbiAgU2lnbmF0dXJlU2hhcmUsXG4gIFNpZ25TaGFyZSxcbiAgV1NoYXJlLFxuICBYU2hhcmUsXG4gIFlTaGFyZSxcbiAgU2VuZFNoYXJlVG9CaXRnb1JULFxufSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGVuY3J5cHRBbmRTaWduVGV4dCwgcmVhZFNpZ25lZE1lc3NhZ2UsIFNpZ25hdHVyZVNoYXJlUmVjb3JkLCBTaWduYXR1cmVTaGFyZVR5cGUgfSBmcm9tICcuLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IFNoYXJlS2V5UG9zaXRpb24gfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBCaXRHb0Jhc2UgfSBmcm9tICcuLi8uLi9iaXRnb0Jhc2UnO1xuaW1wb3J0IHsgS1NoYXJlLCBNVVNoYXJlLCBTU2hhcmUgfSBmcm9tICcuLi8uLi8uLi9hY2NvdW50LWxpYi9tcGMvdHNzL2VjZHNhL3R5cGVzJztcbmltcG9ydCB7IHNlbmRTaWduYXR1cmVTaGFyZSB9IGZyb20gJy4uL2NvbW1vbic7XG5cbmNvbnN0IE1QQyA9IG5ldyBFY2RzYSgpO1xuXG4vKipcbiAqIENvbWJpbmVzIE5TaGFyZXMgdG8gY29tYmluZSB0aGUgZmluYWwgVFNTIGtleVxuICogVGhpcyBjYW4gb25seSBiZSB1c2VkIHRvIGNyZWF0ZSB0aGUgVXNlciBvciBCYWNrdXAga2V5IHNpbmNlIGl0IHJlcXVpcmVzIHRoZSBjb21tb24ga2V5Y2hhaW4gZnJvbSBCaXRHbyBmaXJzdFxuICpcbiAqIEBwYXJhbSBrZXlTaGFyZSAtIFRTUyBrZXkgc2hhcmVcbiAqIEBwYXJhbSBlbmNyeXB0ZWROU2hhcmVzIC0gZW5jcnlwdGVkIE5TaGFyZXMgd2l0aCBpbmZvcm1hdGlvbiBvbiBob3cgdG8gZGVjcnlwdFxuICogQHBhcmFtIGNvbW1vbktleWNoYWluIC0gZXhwZWN0ZWQgY29tbW9uIGtleWNoYWluIG9mIHRoZSBjb21iaW5lZCBrZXlcbiAqIEByZXR1cm5zIHtDb21iaW5lZEtleX0gY29tYmluZWQgVFNTIGtleVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlQ29tYmluZWRLZXkoXG4gIGtleVNoYXJlOiBLZXlTaGFyZSxcbiAgZW5jcnlwdGVkTlNoYXJlczogRGVjcnlwdGFibGVOU2hhcmVbXSxcbiAgY29tbW9uS2V5Y2hhaW46IHN0cmluZ1xuKTogUHJvbWlzZTxDb21iaW5lZEtleT4ge1xuICBjb25zdCBuU2hhcmVzOiBOU2hhcmVbXSA9IFtdO1xuXG4gIGxldCBiaXRnb05TaGFyZTogTlNoYXJlIHwgdW5kZWZpbmVkO1xuICBsZXQgdXNlck5TaGFyZTogTlNoYXJlIHwgdW5kZWZpbmVkO1xuICBsZXQgYmFja3VwTlNoYXJlOiBOU2hhcmUgfCB1bmRlZmluZWQ7XG5cbiAgZm9yIChjb25zdCBlbmNyeXB0ZWROU2hhcmUgb2YgZW5jcnlwdGVkTlNoYXJlcykge1xuICAgIGNvbnN0IG5TaGFyZSA9IGF3YWl0IGRlY3J5cHROU2hhcmUoZW5jcnlwdGVkTlNoYXJlKTtcblxuICAgIHN3aXRjaCAoZW5jcnlwdGVkTlNoYXJlLm5TaGFyZS5qKSB7XG4gICAgICBjYXNlIDE6XG4gICAgICAgIHVzZXJOU2hhcmUgPSBuU2hhcmU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAyOlxuICAgICAgICBiYWNrdXBOU2hhcmUgPSBuU2hhcmU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAzOlxuICAgICAgICBiaXRnb05TaGFyZSA9IG5TaGFyZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgTlNoYXJlIGluZGV4Jyk7XG4gICAgfVxuXG4gICAgblNoYXJlcy5wdXNoKG5TaGFyZSk7XG4gIH1cblxuICBpZiAoIWJpdGdvTlNoYXJlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIEJpdEdvIE4gU2hhcmUnKTtcbiAgfVxuXG4gIGNvbnN0IGNvbWJpbmVkS2V5ID0gTVBDLmtleUNvbWJpbmUoa2V5U2hhcmUucFNoYXJlLCBuU2hhcmVzKTtcbiAgaWYgKGNvbWJpbmVkS2V5LnhTaGFyZS55ICsgY29tYmluZWRLZXkueFNoYXJlLmNoYWluY29kZSAhPT0gY29tbW9uS2V5Y2hhaW4pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvbW1vbiBrZXljaGFpbnMgZG8gbm90IG1hdGNoJyk7XG4gIH1cblxuICBjb25zdCBzaWduaW5nTWF0ZXJpYWw6IFNpZ25pbmdNYXRlcmlhbCA9IHtcbiAgICBwU2hhcmU6IGtleVNoYXJlLnBTaGFyZSxcbiAgICBiaXRnb05TaGFyZSxcbiAgICBiYWNrdXBOU2hhcmUsXG4gICAgdXNlck5TaGFyZSxcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIHNpZ25pbmdNYXRlcmlhbCxcbiAgICBjb21tb25LZXljaGFpbixcbiAgfTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIHRoZSBTaWduU2hhcmUgd2l0aCBVc2VyIFhTaGFyZSBhbmQgWVNoYXJlIENvcnJlc3BvbmRpbmcgdG8gQml0R29cbiAqIEBwYXJhbSB7WFNoYXJlfSB4U2hhcmUgVXNlciBzZWNyZXQgeFNoYXJlXG4gKiBAcGFyYW0ge1lTaGFyZX0geVNoYXJlIFlTaGFyZSBmcm9tIEJpdGdvXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxTaWduU2hhcmU+fVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVXNlclNpZ25TaGFyZSh4U2hhcmU6IFhTaGFyZSwgeVNoYXJlOiBZU2hhcmUpOiBQcm9taXNlPFNpZ25TaGFyZT4ge1xuICBpZiAoeFNoYXJlLmkgIT09IFNoYXJlS2V5UG9zaXRpb24uVVNFUikge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBYU2hhcmUsIFhTaGFyZSBkb2Vzbid0IGJlbG9uZyB0byB0aGUgVXNlcmApO1xuICB9XG5cbiAgaWYgKHlTaGFyZS5pICE9PSBTaGFyZUtleVBvc2l0aW9uLlVTRVIgfHwgeVNoYXJlLmogIT09IFNoYXJlS2V5UG9zaXRpb24uQklUR08pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgWVNoYXJlIHByb3ZpZGVkIGZvciBzaWduJyk7XG4gIH1cbiAgcmV0dXJuIE1QQy5zaWduU2hhcmUoeFNoYXJlLCB5U2hhcmUpO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgdGhlIEdhbW1hIFNoYXJlIGFuZCBNdVNoYXJlIHdpdGggVXNlciBXU2hhcmUgYW5kIEFTaGFyZSBGcm9tIEJpdEdvXG4gKiBAcGFyYW0ge1dTaGFyZX0gd1NoYXJlIFVzZXIgV1NoYXJlXG4gKiBAcGFyYW0ge0FTaGFyZX0gYVNoYXJlIEFTaGFyZSBmcm9tIEJpdGdvXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxDcmVhdGVVc2VyR2FtbWFBbmRNdVNoYXJlUlQ+fVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVXNlckdhbW1hQW5kTXVTaGFyZSh3U2hhcmU6IFdTaGFyZSwgYVNoYXJlOiBBU2hhcmUpOiBQcm9taXNlPENyZWF0ZVVzZXJHYW1tYUFuZE11U2hhcmVSVD4ge1xuICBpZiAod1NoYXJlLmkgIT09IFNoYXJlS2V5UG9zaXRpb24uVVNFUikge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBXU2hhcmUsIGRvZXNuJ3QgYmVsb25nIHRvIHRoZSBVc2VyYCk7XG4gIH1cbiAgaWYgKGFTaGFyZS5pICE9PSBTaGFyZUtleVBvc2l0aW9uLlVTRVIgfHwgYVNoYXJlLmogIT09IFNoYXJlS2V5UG9zaXRpb24uQklUR08pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgQVNoYXJlLCBpcyBub3QgZnJvbSBCaXRnbyB0byBVc2VyJyk7XG4gIH1cblxuICByZXR1cm4gTVBDLnNpZ25Db252ZXJ0KHsgd1NoYXJlLCBhU2hhcmUgfSk7XG59XG5cbi8qKlxuICogQ3JlYXRlcyB0aGUgT21pY3JvbiBTaGFyZSBhbmQgRGVsdGEgc2hhcmUgd2l0aCB1c2VyIEdTaGFyZVxuICogQHBhcmFtIHtHU2hhcmV9IGdTaGFyZSBVc2VyIEdTaGFyZVxuICogQHJldHVybnMge1Byb21pc2U8Q3JlYXRlVXNlck9taWNyb25BbmREZWx0YVNoYXJlUlQ+fVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVXNlck9taWNyb25BbmREZWx0YVNoYXJlKGdTaGFyZTogR1NoYXJlKTogUHJvbWlzZTxDcmVhdGVVc2VyT21pY3JvbkFuZERlbHRhU2hhcmVSVD4ge1xuICBpZiAoZ1NoYXJlLmkgIT09IFNoYXJlS2V5UG9zaXRpb24uVVNFUikge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBHU2hhcmUsIGRvZXNuJ3QgYmVsb25nIHRvIHRoZSBVc2VyYCk7XG4gIH1cbiAgcmV0dXJuIE1QQy5zaWduQ29tYmluZSh7XG4gICAgZ1NoYXJlOiBnU2hhcmUsXG4gICAgc2lnbkluZGV4OiB7XG4gICAgICBpOiBTaGFyZUtleVBvc2l0aW9uLkJJVEdPLFxuICAgICAgajogZ1NoYXJlLmksXG4gICAgfSxcbiAgfSk7XG59XG5cbi8qKlxuICogQ3JlYXRlcyB0aGUgU2lnbmF0dXJlIFNoYXJlIHdpdGggVXNlciBPU2hhcmUgYW5kIERTaGFyZSBGcm9tIEJpdEdvXG4gKiBAcGFyYW0ge09TaGFyZX0gb1NoYXJlIFVzZXIgT1NoYXJlXG4gKiBAcGFyYW0ge0RTaGFyZX0gZFNoYXJlIERTaGFyZSBmcm9tIGJpdGdvXG4gKiBAcGFyYW0ge0J1ZmZlcn0gbWVzc2FnZSBtZXNzYWdlIHRvIHBlcmZvcm0gc2lnblxuICogQHJldHVybnMge1Byb21pc2U8Y3JlYXRlVXNlclNpZ25TaGFyZVJUPn1cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVVzZXJTaWduYXR1cmVTaGFyZShcbiAgb1NoYXJlOiBPU2hhcmUsXG4gIGRTaGFyZTogRFNoYXJlLFxuICBtZXNzYWdlOiBCdWZmZXJcbik6IFByb21pc2U8U2lnbmF0dXJlU2hhcmU+IHtcbiAgaWYgKG9TaGFyZS5pICE9PSBTaGFyZUtleVBvc2l0aW9uLlVTRVIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgT1NoYXJlLCBkb2Vzbid0IGJlbG9uZyB0byB0aGUgVXNlcmApO1xuICB9XG5cbiAgaWYgKGRTaGFyZS5pICE9PSBTaGFyZUtleVBvc2l0aW9uLlVTRVIgfHwgZFNoYXJlLmogIT09IFNoYXJlS2V5UG9zaXRpb24uQklUR08pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgRFNoYXJlLCBkb2Vzbid0IHNlZW0gdG8gYmUgZnJvbSBCaXRHb2ApO1xuICB9XG4gIHJldHVybiBNUEMuc2lnbihtZXNzYWdlLCBvU2hhcmUsIGRTaGFyZSk7XG59XG5cbi8qKlxuICogU2VuZHMgU2hhcmUgVG8gQml0Z29cbiAqIEBwYXJhbSB7Qml0R29CYXNlfSBiaXRnbyAtIHRoZSBiaXRnbyBpbnN0YW5jZVxuICogQHBhcmFtIHtTdHJpbmd9IHdhbGxldElkIC0gdGhlIHdhbGxldCBpZCAgKlxuICogQHBhcmFtIHtTdHJpbmd9IHR4UmVxdWVzdElkIC0gdGhlIHR4UmVxdWVzdCBJZFxuICogQHBhcmFtIHtTaWduYXR1cmVTaGFyZVJlY29yZH0gc2lnbmF0dXJlU2hhcmUgLSBhIFNpZ25hdHVyZSBTaGFyZVxuICogQHJldHVybnMge1Byb21pc2U8U2lnbmF0dXJlU2hhcmVSZWNvcmQ+fSAtIGEgU2lnbmF0dXJlIFNoYXJlXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZW5kU2hhcmVUb0JpdGdvKFxuICBiaXRnbzogQml0R29CYXNlLFxuICB3YWxsZXRJZDogc3RyaW5nLFxuICB0eFJlcXVlc3RJZDogc3RyaW5nLFxuICBzaGFyZVR5cGU6IFNlbmRTaGFyZVR5cGUsXG4gIHNoYXJlOiBTU2hhcmUgfCBNVVNoYXJlIHwgS1NoYXJlLFxuICBkU2hhcmU/OiBEU2hhcmVcbik6IFByb21pc2U8U2VuZFNoYXJlVG9CaXRnb1JUPiB7XG4gIGlmIChzaGFyZVR5cGUgIT09IFNlbmRTaGFyZVR5cGUuU1NoYXJlICYmIHNoYXJlLmkgIT09IFNoYXJlS2V5UG9zaXRpb24uQklUR08pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgU2hhcmUsIGlzIG5vdCBmcm9tIFVzZXIgdG8gQml0Z28nKTtcbiAgfVxuICBsZXQgc2lnbmF0dXJlU2hhcmU6IFNpZ25hdHVyZVNoYXJlUmVjb3JkO1xuICBsZXQgcmVzcG9uc2VGcm9tQml0Z286IFNlbmRTaGFyZVRvQml0Z29SVDtcblxuICBzd2l0Y2ggKHNoYXJlVHlwZSkge1xuICAgIGNhc2UgU2VuZFNoYXJlVHlwZS5LU2hhcmU6XG4gICAgICBjb25zdCBrU2hhcmUgPSBzaGFyZSBhcyBLU2hhcmU7XG4gICAgICBzaWduYXR1cmVTaGFyZSA9IGNvbnZlcnRLU2hhcmUoa1NoYXJlKTtcbiAgICAgIGNvbnN0IEFTaGFyZVJlY29yZCA9IGF3YWl0IHNlbmRTaWduYXR1cmVTaGFyZShiaXRnbywgd2FsbGV0SWQsIHR4UmVxdWVzdElkLCBzaWduYXR1cmVTaGFyZSk7XG4gICAgICByZXNwb25zZUZyb21CaXRnbyA9IHBhcnNlQVNoYXJlKEFTaGFyZVJlY29yZCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFNlbmRTaGFyZVR5cGUuTVVTaGFyZTpcbiAgICAgIGNvbnN0IG11U2hhcmUgPSBzaGFyZSBhcyBNVVNoYXJlO1xuICAgICAgc2lnbmF0dXJlU2hhcmUgPSBjb252ZXJ0TXVTaGFyZShtdVNoYXJlKTtcbiAgICAgIGNvbnN0IGRTaGFyZVJlY29yZCA9IGF3YWl0IHNlbmRTaWduYXR1cmVTaGFyZShiaXRnbywgd2FsbGV0SWQsIHR4UmVxdWVzdElkLCBzaWduYXR1cmVTaGFyZSk7XG4gICAgICByZXNwb25zZUZyb21CaXRnbyA9IHBhcnNlRFNoYXJlKGRTaGFyZVJlY29yZCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFNlbmRTaGFyZVR5cGUuU1NoYXJlOlxuICAgICAgaWYgKCFkU2hhcmUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEU2hhcmUgbm90IHByb3ZpZGVkJyk7XG4gICAgICB9XG4gICAgICBpZiAoZFNoYXJlLmkgIT09IFNoYXJlS2V5UG9zaXRpb24uQklUR08gfHwgZFNoYXJlLmogIT09IFNoYXJlS2V5UG9zaXRpb24uVVNFUikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgRFNoYXJlIHByb3ZpZGVkJyk7XG4gICAgICB9XG4gICAgICBjb25zdCBzU2hhcmUgPSBzaGFyZSBhcyBTU2hhcmU7XG4gICAgICBzaWduYXR1cmVTaGFyZSA9IGNvbnZlcnRTRFNoYXJlKHsgc1NoYXJlLCBkU2hhcmUgfSk7XG4gICAgICBjb25zdCBzaWduYXR1cmVSZWNvcmQgPSBhd2FpdCBzZW5kU2lnbmF0dXJlU2hhcmUoYml0Z28sIHdhbGxldElkLCB0eFJlcXVlc3RJZCwgc2lnbmF0dXJlU2hhcmUpO1xuICAgICAgcmVzcG9uc2VGcm9tQml0Z28gPSBwYXJzZVNpZ25hdHVyZVNoYXJlKHNpZ25hdHVyZVJlY29yZCk7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgJ0ludmFsaWQgU2hhcmUgZ2l2ZW4gdG8gc2VuZCc7XG4gIH1cblxuICByZXR1cm4gcmVzcG9uc2VGcm9tQml0Z287XG59XG5cbi8qKlxuICogUHJlcGFyZXMgYSBOU2hhcmUgdG8gYmUgZXhjaGFuZ2VkIHdpdGggb3RoZXIga2V5IGhvbGRlcnMuXG4gKiBPdXRwdXQgaXMgaW4gYSBmb3JtYXQgdGhhdCBpcyB1c2FibGUgd2l0aGluIEJpdEdvJ3MgZWNvc3lzdGVtLlxuICpcbiAqIEBwYXJhbSBrZXlTaGFyZSAtIFRTUyBrZXkgc2hhcmUgb2YgdGhlIHBhcnR5IHByZXBhcmluZyBleGNoYW5nZSBtYXRlcmlhbHNcbiAqIEBwYXJhbSByZWNpcGllbnRJbmRleCAtIGluZGV4IG9mIHRoZSByZWNpcGllbnQgKDEsIDIsIG9yIDMpXG4gKiBAcGFyYW0gcmVjaXBpZW50R3BnUHVibGljQXJtb3IgLSByZWNpcGllbnQncyBwdWJsaWMgZ3BnIGtleSBpbiBhcm1vciBmb3JtYXRcbiAqIEBwYXJhbSBzZW5kZXJHcGdQcml2YXRlQXJtb3IgLSBzZW5kZXIncyBwcml2YXRlIGdwZyBrZXkgaW4gYXJtb3IgZm9ybWF0XG4gKiBAcmV0dXJucyBlbmNyeXB0ZWQgTiBTaGFyZVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZW5jcnlwdE5TaGFyZShcbiAga2V5U2hhcmU6IEtleVNoYXJlLFxuICByZWNpcGllbnRJbmRleDogbnVtYmVyLFxuICByZWNpcGllbnRHcGdQdWJsaWNBcm1vcjogc3RyaW5nLFxuICBzZW5kZXJHcGdQcml2YXRlQXJtb3I6IHN0cmluZ1xuKTogUHJvbWlzZTxFbmNyeXB0ZWROU2hhcmU+IHtcbiAgY29uc3QgblNoYXJlID0ga2V5U2hhcmUublNoYXJlc1tyZWNpcGllbnRJbmRleF07XG4gIGlmICghblNoYXJlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHJlY2lwaWVudCcpO1xuICB9XG5cbiAgY29uc3QgcHVibGljU2hhcmUgPSBrZXlTaGFyZS5wU2hhcmUueSArIG5TaGFyZS5jaGFpbmNvZGUgKyBuU2hhcmUubjtcbiAgY29uc3QgcHJpdmF0ZVNoYXJlID0gblNoYXJlLnU7XG5cbiAgY29uc3QgZW5jcnlwdGVkUHJpdmF0ZVNoYXJlID0gYXdhaXQgZW5jcnlwdEFuZFNpZ25UZXh0KHByaXZhdGVTaGFyZSwgcmVjaXBpZW50R3BnUHVibGljQXJtb3IsIHNlbmRlckdwZ1ByaXZhdGVBcm1vcik7XG5cbiAgcmV0dXJuIHtcbiAgICBpOiBuU2hhcmUuaSxcbiAgICBqOiBuU2hhcmUuaixcbiAgICBwdWJsaWNTaGFyZSxcbiAgICBlbmNyeXB0ZWRQcml2YXRlU2hhcmUsXG4gIH07XG59XG5cbi8qKlxuICogRGVjcnlwdHMgZW5jcnlwdGVkIG4gc2hhcmVcbiAqIEBwYXJhbSBlbmNyeXB0ZWROU2hhcmUgLSBkZWNyeXB0YWJsZSBuIHNoYXJlIHdpdGggcmVjaXBpZW50IHByaXZhdGUgZ3BnIGtleSBhcm1vciBhbmQgc2VuZGVyIHB1YmxpYyBncGcga2V5XG4gKiBAcmV0dXJucyBOIHNoYXJlXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZWNyeXB0TlNoYXJlKGVuY3J5cHRlZE5TaGFyZTogRGVjcnlwdGFibGVOU2hhcmUpOiBQcm9taXNlPE5TaGFyZT4ge1xuICBjb25zdCBwcml2YXRlU2hhcmUgPSBhd2FpdCByZWFkU2lnbmVkTWVzc2FnZShcbiAgICBlbmNyeXB0ZWROU2hhcmUublNoYXJlLmVuY3J5cHRlZFByaXZhdGVTaGFyZSxcbiAgICBlbmNyeXB0ZWROU2hhcmUuc2VuZGVyUHVibGljQXJtb3IsXG4gICAgZW5jcnlwdGVkTlNoYXJlLnJlY2lwaWVudFByaXZhdGVBcm1vclxuICApO1xuXG4gIGNvbnN0IG5TaGFyZTogTlNoYXJlID0ge1xuICAgIGk6IGVuY3J5cHRlZE5TaGFyZS5uU2hhcmUuaSxcbiAgICBqOiBlbmNyeXB0ZWROU2hhcmUublNoYXJlLmosXG4gICAgeTogZW5jcnlwdGVkTlNoYXJlLm5TaGFyZS5wdWJsaWNTaGFyZS5zbGljZSgwLCA2NSksXG4gICAgdTogcHJpdmF0ZVNoYXJlLFxuICAgIG46IGVuY3J5cHRlZE5TaGFyZS5uU2hhcmUucHVibGljU2hhcmUuc2xpY2UoMTI5KSxcbiAgICBjaGFpbmNvZGU6IGVuY3J5cHRlZE5TaGFyZS5uU2hhcmUucHVibGljU2hhcmUuc2xpY2UoNjUsIDEyOSksXG4gIH07XG5cbiAgcmV0dXJuIG5TaGFyZTtcbn1cblxuLyoqXG4gKiBHZXRzIHB1YmxpYyBrZXkgZnJvbSBjb21tb24ga2V5IGNoYWluXG4gKiBAcGFyYW0gY29tbW9uS2V5Q2hhaW4gLSBjb21tb24ga2V5IGNoYWluIG9mIGVjZHNhIHRzc1xuICogQHJldHVybnMgcHVibGljIGtleVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHVibGljS2V5KGNvbW1vbktleUNoYWluOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gY29tbW9uS2V5Q2hhaW4uc2xpY2UoMCwgNjYpO1xufVxuXG4vKipcbiAqIHZhbGlkYXRlcyBzaWduYXR1cmUgc2hhcmUgcmVjb3JkXG4gKiBAcGFyYW0gc2hhcmUgLSBzaWduYXR1cmUgc2hhcmUgcmVjb3JkIHRvIHZhbGlkYXRlXG4gKiBAcGFyYW0gc2hhcmVMZW5ndGggLSBzaGFyZSByZWNvcmQgZXhwZWN0ZWQgbGVuZ3RoXG4gKiBAcGFyYW0gaXNFeGFjdExlbmd0aCAtIGlmIHRoaXMgZmFsc2UgdGhlbiBzaGFyZSBsZW5ndGggY2FuIGJlIGdyZWF0ZXIuXG4gKi9cbmZ1bmN0aW9uIHZhbGlkYXRlU2hhcmUoc2hhcmU6IFNpZ25hdHVyZVNoYXJlUmVjb3JkLCBzaGFyZUxlbmd0aDogbnVtYmVyLCBpc0V4YWN0TGVuZ3RoID0gdHJ1ZSk6IHZvaWQge1xuICBjb25zdCBlcnJvciA9IChtZXNzYWdlOiBzdHJpbmcpID0+IG5ldyBFcnJvcihtZXNzYWdlKTtcblxuICBpZiAoc2hhcmUuc2hhcmUubGVuZ3RoIDwgc2hhcmVMZW5ndGgpIHtcbiAgICB0aHJvdyBlcnJvcihgRXhjZXB0ZWQgc2hhcmUgbGVuZ3RoIHRvIGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCAke3NoYXJlTGVuZ3RofSBidXQgZ290ICR7c2hhcmUuc2hhcmUubGVuZ3RofS5gKTtcbiAgfVxuXG4gIGlmIChpc0V4YWN0TGVuZ3RoICYmIHNoYXJlLnNoYXJlLmxlbmd0aCAhPT0gc2hhcmVMZW5ndGgpIHtcbiAgICB0aHJvdyBlcnJvcihgRXhjZXB0ZWQgc2hhcmUgbGVuZ3RoIHRvIGJlICR7c2hhcmVMZW5ndGh9IGJ1dCBnb3QgJHtzaGFyZS5zaGFyZS5sZW5ndGh9LmApO1xuICB9XG5cbiAgaWYgKHNoYXJlLmZyb20gPT09IHNoYXJlLnRvKSB7XG4gICAgdGhyb3cgZXJyb3IoYEtleSBzaGFyZSBzZW5kZXIgYW5kIHJlY2VpdmVyIGNhbm5vdCBiZSB0aGUgc2FtZS5gKTtcbiAgfVxufVxuXG4vKipcbiAqIHBhcnNlcyBLIHNoYXJlIGZyb20gc2lnbmF0dXJlIHNoYXJlIHJlY29yZFxuICogQHBhcmFtIHNoYXJlIC0gc2lnbmF0dXJlIHNoYXJlIHJlY29yZFxuICogQHJldHVybnMgSyBTaGFyZVxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VLU2hhcmUoc2hhcmU6IFNpZ25hdHVyZVNoYXJlUmVjb3JkKTogS1NoYXJlIHtcbiAgdmFsaWRhdGVTaGFyZShzaGFyZSwgMTUzNiwgZmFsc2UpO1xuXG4gIHJldHVybiB7XG4gICAgaTogZ2V0UGFydGljYXBhbnRJbmRleChzaGFyZS50byksXG4gICAgajogZ2V0UGFydGljYXBhbnRJbmRleChzaGFyZS5mcm9tKSxcbiAgICBrOiBzaGFyZS5zaGFyZS5zdWJzdHJpbmcoMCwgMTUzNiksXG4gICAgbjogc2hhcmUuc2hhcmUuc3Vic3RyaW5nKDE1MzYpLFxuICB9O1xufVxuXG4vKipcbiAqIGNvbnZlcnQgSyBzaGFyZSB0byBzaWduYXR1cmUgc2hhcmUgcmVjb3JkXG4gKiBAcGFyYW0gc2hhcmUgLSBLIHNoYXJlXG4gKiBAcmV0dXJucyBzaWduYXR1cmUgc2hhcmUgcmVjb3JkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0S1NoYXJlKHNoYXJlOiBLU2hhcmUpOiBTaWduYXR1cmVTaGFyZVJlY29yZCB7XG4gIHJldHVybiB7XG4gICAgdG86IGdldFBhcnRpY2FwYW50RnJvbUluZGV4KHNoYXJlLmkpLFxuICAgIGZyb206IGdldFBhcnRpY2FwYW50RnJvbUluZGV4KHNoYXJlLmopLFxuICAgIHNoYXJlOiBzaGFyZS5rICsgc2hhcmUubixcbiAgfTtcbn1cblxuLyoqXG4gKiBwYXJzZXMgQSBzaGFyZSBmcm9tIHNpZ25hdHVyZSBzaGFyZSByZWNvcmRcbiAqIEBwYXJhbSBzaGFyZSAtIHNpZ25hdHVyZSBzaGFyZSByZWNvcmRcbiAqIEByZXR1cm5zIEEgU2hhcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQVNoYXJlKHNoYXJlOiBTaWduYXR1cmVTaGFyZVJlY29yZCk6IEFTaGFyZSB7XG4gIHZhbGlkYXRlU2hhcmUoc2hhcmUsIDQ2MDgsIGZhbHNlKTtcbiAgcmV0dXJuIHtcbiAgICBpOiBnZXRQYXJ0aWNhcGFudEluZGV4KHNoYXJlLnRvKSxcbiAgICBqOiBnZXRQYXJ0aWNhcGFudEluZGV4KHNoYXJlLmZyb20pLFxuICAgIGs6IHNoYXJlLnNoYXJlLnNsaWNlKDAsIDE1MzYpLFxuICAgIGFscGhhOiBzaGFyZS5zaGFyZS5zbGljZSgxNTM2LCAzMDcyKSxcbiAgICBtdTogc2hhcmUuc2hhcmUuc2xpY2UoMzA3MiwgNDYwOCksXG4gICAgbjogc2hhcmUuc2hhcmUuc2xpY2UoNDYwOCksXG4gIH07XG59XG5cbi8qKlxuICogY29udmVydCBBIHNoYXJlIHRvIHNpZ25hdHVyZSBzaGFyZSByZWNvcmRcbiAqIEBwYXJhbSBzaGFyZSAtIEEgc2hhcmVcbiAqIEByZXR1cm5zIHNpZ25hdHVyZSBzaGFyZSByZWNvcmRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRBU2hhcmUoc2hhcmU6IEFTaGFyZSk6IFNpZ25hdHVyZVNoYXJlUmVjb3JkIHtcbiAgcmV0dXJuIHtcbiAgICB0bzogZ2V0UGFydGljYXBhbnRGcm9tSW5kZXgoc2hhcmUuaSksXG4gICAgZnJvbTogZ2V0UGFydGljYXBhbnRGcm9tSW5kZXgoc2hhcmUuaiksXG4gICAgc2hhcmU6IHNoYXJlLmshICsgc2hhcmUuYWxwaGEhICsgc2hhcmUubXUhICsgc2hhcmUubiEsXG4gIH07XG59XG5cbi8qKlxuICogcGFyc2VzIE11IHNoYXJlIGZyb20gc2lnbmF0dXJlIHNoYXJlIHJlY29yZFxuICogQHBhcmFtIHNoYXJlIC0gc2lnbmF0dXJlIHNoYXJlIHJlY29yZFxuICogQHJldHVybnMgTXUgU2hhcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlTXVTaGFyZShzaGFyZTogU2lnbmF0dXJlU2hhcmVSZWNvcmQpOiBNVVNoYXJlIHtcbiAgdmFsaWRhdGVTaGFyZShzaGFyZSwgMzA3Mik7XG4gIHJldHVybiB7XG4gICAgaTogZ2V0UGFydGljYXBhbnRJbmRleChzaGFyZS50byksXG4gICAgajogZ2V0UGFydGljYXBhbnRJbmRleChzaGFyZS5mcm9tKSxcbiAgICBhbHBoYTogc2hhcmUuc2hhcmUuc2xpY2UoMCwgMTUzNiksXG4gICAgbXU6IHNoYXJlLnNoYXJlLnNsaWNlKDE1MzYsIDMwNzIpLFxuICB9O1xufVxuXG4vKipcbiAqIGNvbnZlcnQgTXUgc2hhcmUgdG8gc2lnbmF0dXJlIHNoYXJlIHJlY29yZFxuICogQHBhcmFtIHNoYXJlIC0gTXUgc2hhcmVcbiAqIEByZXR1cm5zIHNpZ25hdHVyZSBzaGFyZSByZWNvcmRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRNdVNoYXJlKHNoYXJlOiBNVVNoYXJlKTogU2lnbmF0dXJlU2hhcmVSZWNvcmQge1xuICByZXR1cm4ge1xuICAgIHRvOiBnZXRQYXJ0aWNhcGFudEZyb21JbmRleChzaGFyZS5pKSxcbiAgICBmcm9tOiBnZXRQYXJ0aWNhcGFudEZyb21JbmRleChzaGFyZS5qKSxcbiAgICBzaGFyZTogc2hhcmUuYWxwaGEgKyBzaGFyZS5tdSxcbiAgfTtcbn1cblxuLyoqXG4gKiBwYXJzZXMgRCBzaGFyZSBmcm9tIHNpZ25hdHVyZSBzaGFyZSByZWNvcmRcbiAqIEBwYXJhbSBzaGFyZSAtIHNpZ25hdHVyZSBzaGFyZSByZWNvcmRcbiAqIEByZXR1cm5zIEQgU2hhcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRFNoYXJlKHNoYXJlOiBTaWduYXR1cmVTaGFyZVJlY29yZCk6IERTaGFyZSB7XG4gIHZhbGlkYXRlU2hhcmUoc2hhcmUsIDEzMCk7XG4gIHJldHVybiB7XG4gICAgaTogZ2V0UGFydGljYXBhbnRJbmRleChzaGFyZS50byksXG4gICAgajogZ2V0UGFydGljYXBhbnRJbmRleChzaGFyZS5mcm9tKSxcbiAgICBkZWx0YTogc2hhcmUuc2hhcmUuc2xpY2UoMCwgNjQpLFxuICAgIEdhbW1hOiBzaGFyZS5zaGFyZS5zbGljZSg2NCwgMTMwKSxcbiAgfTtcbn1cblxuLyoqXG4gKiBjb252ZXJ0IEQgc2hhcmUgdG8gc2lnbmF0dXJlIHNoYXJlIHJlY29yZFxuICogQHBhcmFtIHNoYXJlIC0gRCBzaGFyZVxuICogQHJldHVybnMgc2lnbmF0dXJlIHNoYXJlIHJlY29yZFxuICovXG5leHBvcnQgZnVuY3Rpb24gY29udmVydERTaGFyZShzaGFyZTogRFNoYXJlKTogU2lnbmF0dXJlU2hhcmVSZWNvcmQge1xuICByZXR1cm4ge1xuICAgIHRvOiBnZXRQYXJ0aWNhcGFudEZyb21JbmRleChzaGFyZS5pKSxcbiAgICBmcm9tOiBnZXRQYXJ0aWNhcGFudEZyb21JbmRleChzaGFyZS5qKSxcbiAgICBzaGFyZTogc2hhcmUuZGVsdGEgKyBzaGFyZS5HYW1tYSxcbiAgfTtcbn1cblxuLyoqXG4gKiBwYXJzZXMgUyBhbmQgRCBzaGFyZSBmcm9tIHNpZ25hdHVyZSBzaGFyZSByZWNvcmRcbiAqIEBwYXJhbSBzaGFyZSAtIHNpZ25hdHVyZSBzaGFyZSByZWNvcmRcbiAqIEByZXR1cm5zIE9iamVjdCBjb250YWluaW5nIFMgYW5kIEQgU2hhcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlU0RTaGFyZShzaGFyZTogU2lnbmF0dXJlU2hhcmVSZWNvcmQpOiB7IHNTaGFyZTogU2lnbmF0dXJlU2hhcmU7IGRTaGFyZTogRFNoYXJlIH0ge1xuICB2YWxpZGF0ZVNoYXJlKHNoYXJlLCAzMjQpO1xuICByZXR1cm4ge1xuICAgIHNTaGFyZTogcGFyc2VTaWduYXR1cmVTaGFyZSh7IHRvOiBzaGFyZS50bywgZnJvbTogc2hhcmUuZnJvbSwgc2hhcmU6IHNoYXJlLnNoYXJlLnNsaWNlKDAsIDE5NCkgfSksXG4gICAgZFNoYXJlOiBwYXJzZURTaGFyZSh7IHRvOiBzaGFyZS50bywgZnJvbTogc2hhcmUuZnJvbSwgc2hhcmU6IHNoYXJlLnNoYXJlLnNsaWNlKDE5NCkgfSksXG4gIH07XG59XG5cbi8qKlxuICogY29udmVydCBTIGFuZCBEIHNoYXJlIHRvIHNpZ25hdHVyZSBzaGFyZSByZWNvcmRcbiAqIEBwYXJhbSBzaGFyZSAtIFMgYW5kIEQgc2hhcmUgaW4gYSBvYmplY3RcbiAqIEByZXR1cm5zIHNpZ25hdHVyZSBzaGFyZSByZWNvcmRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRTRFNoYXJlKHNoYXJlOiB7IHNTaGFyZTogU2lnbmF0dXJlU2hhcmU7IGRTaGFyZTogRFNoYXJlIH0pOiBTaWduYXR1cmVTaGFyZVJlY29yZCB7XG4gIHJldHVybiB7XG4gICAgdG86IGdldFBhcnRpY2FwYW50RnJvbUluZGV4KHNoYXJlLmRTaGFyZS5pKSxcbiAgICBmcm9tOiBnZXRQYXJ0aWNhcGFudEZyb21JbmRleChzaGFyZS5kU2hhcmUuaiksXG4gICAgc2hhcmU6IHNoYXJlLnNTaGFyZS5yICsgc2hhcmUuc1NoYXJlLnMgKyBzaGFyZS5zU2hhcmUueSArIHNoYXJlLmRTaGFyZS5kZWx0YSArIHNoYXJlLmRTaGFyZS5HYW1tYSxcbiAgfTtcbn1cblxuLyoqXG4gKiBwYXJzZXMgc2lnbmF0dXJlIHNoYXJlIGZyb20gc2lnbmF0dXJlIHNoYXJlIHJlY29yZFxuICogQHBhcmFtIHNoYXJlIC0gc2lnbmF0dXJlIHNoYXJlIHJlY29yZFxuICogQHJldHVybnMgU2lnbmF0dXJlIFNoYXJlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVNpZ25hdHVyZVNoYXJlKHNoYXJlOiBTaWduYXR1cmVTaGFyZVJlY29yZCk6IFNpZ25hdHVyZVNoYXJlIHtcbiAgdmFsaWRhdGVTaGFyZShzaGFyZSwgMTk0KTtcbiAgcmV0dXJuIHtcbiAgICBpOiBnZXRQYXJ0aWNhcGFudEluZGV4KHNoYXJlLnRvKSxcbiAgICByOiBzaGFyZS5zaGFyZS5zdWJzdHJpbmcoMCwgNjQpLFxuICAgIHM6IHNoYXJlLnNoYXJlLnN1YnN0cmluZyg2NCwgMTI4KSxcbiAgICB5OiBzaGFyZS5zaGFyZS5zdWJzdHJpbmcoMTI4LCAxOTQpLFxuICB9O1xufVxuXG4vKipcbiAqIGNvbnZlcnQgc2lnbmF0dXJlIHNoYXJlIHRvIHNpZ25hdHVyZSBzaGFyZSByZWNvcmRcbiAqIEBwYXJhbSBzaGFyZSAtIEsgc2hhcmVcbiAqIEByZXR1cm5zIHNpZ25hdHVyZSBzaGFyZSByZWNvcmRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRTaWduYXR1cmVTaGFyZShzaGFyZTogU2lnbmF0dXJlU2hhcmUsIHNlbmRlckluZGV4OiBudW1iZXIpOiBTaWduYXR1cmVTaGFyZVJlY29yZCB7XG4gIHJldHVybiB7XG4gICAgdG86IGdldFBhcnRpY2FwYW50RnJvbUluZGV4KHNoYXJlLmkpLFxuICAgIGZyb206IGdldFBhcnRpY2FwYW50RnJvbUluZGV4KHNlbmRlckluZGV4KSxcbiAgICBzaGFyZTogc2hhcmUuciArIHNoYXJlLnMgKyBzaGFyZS55LFxuICB9O1xufVxuXG4vKipcbiAqIGdldHMgcGFydGljYXBhbnQgaW5kZXhcbiAqIEBwYXJhbSBwYXJ0aWNpcGFudCAtIHBhcnRpY2lwYW50cyAodXNlciwgYmFja3VwLCBvciBiaXRnbylcbiAqIEByZXR1cm5zIGluZGV4ICgxLCAyLCAwciAzKVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFydGljYXBhbnRJbmRleChwYXJ0aWNpcGFudDogJ3VzZXInIHwgJ2JhY2t1cCcgfCAnYml0Z28nKTogbnVtYmVyIHtcbiAgc3dpdGNoIChwYXJ0aWNpcGFudCkge1xuICAgIGNhc2UgJ3VzZXInOlxuICAgICAgcmV0dXJuIDE7XG4gICAgY2FzZSAnYmFja3VwJzpcbiAgICAgIHJldHVybiAyO1xuICAgIGNhc2UgJ2JpdGdvJzpcbiAgICAgIHJldHVybiAzO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBFcnJvcignVW5rb3duIHBhcnRpY2lwYW50Jyk7XG4gIH1cbn1cblxuLyoqXG4gKiBnZXRzIHBhcnRpY2FwYW50IG5hbWUgYnkgaW5kZXhcbiAqIEBwYXJhbSBpbmRleCBwYXJ0aWNhcGFudCBpbmRleFxuICogQHJldHVybnMgcGFydGljYXBhbnQgbmFtZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFydGljYXBhbnRGcm9tSW5kZXgoaW5kZXg6IG51bWJlcik6IFNpZ25hdHVyZVNoYXJlVHlwZSB7XG4gIHN3aXRjaCAoaW5kZXgpIHtcbiAgICBjYXNlIDE6XG4gICAgICByZXR1cm4gU2lnbmF0dXJlU2hhcmVUeXBlLlVTRVI7XG4gICAgY2FzZSAyOlxuICAgICAgcmV0dXJuIFNpZ25hdHVyZVNoYXJlVHlwZS5CQUNLVVA7XG4gICAgY2FzZSAzOlxuICAgICAgcmV0dXJuIFNpZ25hdHVyZVNoYXJlVHlwZS5CSVRHTztcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHBhcnRpY2FwYW50IGluZGV4ICR7aW5kZXh9YCk7XG4gIH1cbn1cbiJdfQ==
|
|
479
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNkc2EuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYml0Z28vdHNzL2VjZHNhL2VjZHNhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHdEQUF1RDtBQUN2RCxtQ0FxQmlCO0FBQ2pCLHlDQUFnSDtBQUNoSCxvQ0FBNEM7QUFHNUMsc0NBQTZEO0FBRTdELE1BQU0sR0FBRyxHQUFHLElBQUksV0FBSyxFQUFFLENBQUM7QUFFeEI7Ozs7Ozs7O0dBUUc7QUFDSSxLQUFLLFVBQVUsaUJBQWlCLENBQ3JDLFFBQWtCLEVBQ2xCLGdCQUFxQyxFQUNyQyxjQUFzQjtJQUV0QixNQUFNLE9BQU8sR0FBYSxFQUFFLENBQUM7SUFFN0IsSUFBSSxXQUErQixDQUFDO0lBQ3BDLElBQUksVUFBOEIsQ0FBQztJQUNuQyxJQUFJLFlBQWdDLENBQUM7SUFFckMsS0FBSyxNQUFNLGVBQWUsSUFBSSxnQkFBZ0IsRUFBRTtRQUM5QyxNQUFNLE1BQU0sR0FBRyxNQUFNLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUVwRCxRQUFRLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFO1lBQ2hDLEtBQUssQ0FBQztnQkFDSixVQUFVLEdBQUcsTUFBTSxDQUFDO2dCQUNwQixNQUFNO1lBQ1IsS0FBSyxDQUFDO2dCQUNKLFlBQVksR0FBRyxNQUFNLENBQUM7Z0JBQ3RCLE1BQU07WUFDUixLQUFLLENBQUM7Z0JBQ0osV0FBVyxHQUFHLE1BQU0sQ0FBQztnQkFDckIsTUFBTTtZQUNSO2dCQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQztTQUMzQztRQUVELE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDdEI7SUFFRCxJQUFJLENBQUMsV0FBVyxFQUFFO1FBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztLQUMxQztJQUVELE1BQU0sV0FBVyxHQUFHLEdBQUcs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Q0FBQyxLQUFhO0lBQ25ELFFBQVEsS0FBSyxFQUFFO1FBQ2IsS0FBSyxDQUFDO1lBQ0osT0FBTywwQkFBa0IsQ0FBQyxJQUFJLENBQUM7UUFDakMsS0FBSyxDQUFDO1lBQ0osT0FBTywwQkFBa0IsQ0FBQyxNQUFNLENBQUM7UUFDbkMsS0FBSyxDQUFDO1lBQ0osT0FBTywwQkFBa0IsQ0FBQyxLQUFLLENBQUM7UUFDbEM7WUFDRSxNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixLQUFLLEVBQUUsQ0FBQyxDQUFDO0tBQ3pEO0FBQ0gsQ0FBQztBQVhELDBEQVdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWNkc2EgfSBmcm9tICcuLy4uLy4uLy4uL2FjY291bnQtbGliL21wYy90c3MnO1xuaW1wb3J0IHtcbiAgRGVjcnlwdGFibGVOU2hhcmUsXG4gIENvbWJpbmVkS2V5LFxuICBTaWduaW5nTWF0ZXJpYWwsXG4gIEVuY3J5cHRlZE5TaGFyZSxcbiAgQVNoYXJlLFxuICBDcmVhdGVVc2VyR2FtbWFBbmRNdVNoYXJlUlQsXG4gIENyZWF0ZVVzZXJPbWljcm9uQW5kRGVsdGFTaGFyZVJULFxuICBEU2hhcmUsXG4gIEdTaGFyZSxcbiAgS2V5U2hhcmUsXG4gIE5TaGFyZSxcbiAgT1NoYXJlLFxuICBTZW5kU2hhcmVUeXBlLFxuICBTaWduYXR1cmVTaGFyZSxcbiAgU2lnblNoYXJlLFxuICBXU2hhcmUsXG4gIFhTaGFyZSxcbiAgWVNoYXJlLFxuICBTZW5kU2hhcmVUb0JpdGdvUlQsXG4gIFJlY2VpdmVkU2hhcmVUeXBlLFxufSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGVuY3J5cHRBbmRTaWduVGV4dCwgcmVhZFNpZ25lZE1lc3NhZ2UsIFNpZ25hdHVyZVNoYXJlUmVjb3JkLCBTaWduYXR1cmVTaGFyZVR5cGUgfSBmcm9tICcuLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IFNoYXJlS2V5UG9zaXRpb24gfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBCaXRHb0Jhc2UgfSBmcm9tICcuLi8uLi9iaXRnb0Jhc2UnO1xuaW1wb3J0IHsgS1NoYXJlLCBNVVNoYXJlLCBTU2hhcmUgfSBmcm9tICcuLi8uLi8uLi9hY2NvdW50LWxpYi9tcGMvdHNzL2VjZHNhL3R5cGVzJztcbmltcG9ydCB7IGdldFR4UmVxdWVzdCwgc2VuZFNpZ25hdHVyZVNoYXJlIH0gZnJvbSAnLi4vY29tbW9uJztcblxuY29uc3QgTVBDID0gbmV3IEVjZHNhKCk7XG5cbi8qKlxuICogQ29tYmluZXMgTlNoYXJlcyB0byBjb21iaW5lIHRoZSBmaW5hbCBUU1Mga2V5XG4gKiBUaGlzIGNhbiBvbmx5IGJlIHVzZWQgdG8gY3JlYXRlIHRoZSBVc2VyIG9yIEJhY2t1cCBrZXkgc2luY2UgaXQgcmVxdWlyZXMgdGhlIGNvbW1vbiBrZXljaGFpbiBmcm9tIEJpdEdvIGZpcnN0XG4gKlxuICogQHBhcmFtIGtleVNoYXJlIC0gVFNTIGtleSBzaGFyZVxuICogQHBhcmFtIGVuY3J5cHRlZE5TaGFyZXMgLSBlbmNyeXB0ZWQgTlNoYXJlcyB3aXRoIGluZm9ybWF0aW9uIG9uIGhvdyB0byBkZWNyeXB0XG4gKiBAcGFyYW0gY29tbW9uS2V5Y2hhaW4gLSBleHBlY3RlZCBjb21tb24ga2V5Y2hhaW4gb2YgdGhlIGNvbWJpbmVkIGtleVxuICogQHJldHVybnMge0NvbWJpbmVkS2V5fSBjb21iaW5lZCBUU1Mga2V5XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVDb21iaW5lZEtleShcbiAga2V5U2hhcmU6IEtleVNoYXJlLFxuICBlbmNyeXB0ZWROU2hhcmVzOiBEZWNyeXB0YWJsZU5TaGFyZVtdLFxuICBjb21tb25LZXljaGFpbjogc3RyaW5nXG4pOiBQcm9taXNlPENvbWJpbmVkS2V5PiB7XG4gIGNvbnN0IG5TaGFyZXM6IE5TaGFyZVtdID0gW107XG5cbiAgbGV0IGJpdGdvTlNoYXJlOiBOU2hhcmUgfCB1bmRlZmluZWQ7XG4gIGxldCB1c2VyTlNoYXJlOiBOU2hhcmUgfCB1bmRlZmluZWQ7XG4gIGxldCBiYWNrdXBOU2hhcmU6IE5TaGFyZSB8IHVuZGVmaW5lZDtcblxuICBmb3IgKGNvbnN0IGVuY3J5cHRlZE5TaGFyZSBvZiBlbmNyeXB0ZWROU2hhcmVzKSB7XG4gICAgY29uc3QgblNoYXJlID0gYXdhaXQgZGVjcnlwdE5TaGFyZShlbmNyeXB0ZWROU2hhcmUpO1xuXG4gICAgc3dpdGNoIChlbmNyeXB0ZWROU2hhcmUublNoYXJlLmopIHtcbiAgICAgIGNhc2UgMTpcbiAgICAgICAgdXNlck5TaGFyZSA9IG5TaGFyZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI6XG4gICAgICAgIGJhY2t1cE5TaGFyZSA9IG5TaGFyZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDM6XG4gICAgICAgIGJpdGdvTlNoYXJlID0gblNoYXJlO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBOU2hhcmUgaW5kZXgnKTtcbiAgICB9XG5cbiAgICBuU2hhcmVzLnB1c2goblNoYXJlKTtcbiAgfVxuXG4gIGlmICghYml0Z29OU2hhcmUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgQml0R28gTiBTaGFyZScpO1xuICB9XG5cbiAgY29uc3QgY29tYmluZWRLZXkgPSBNUEMua2V5Q29tYmluZShrZXlTaGFyZS5wU2hhcmUsIG5TaGFyZXMpO1xuICBpZiAoY29tYmluZWRLZXkueFNoYXJlLnkgKyBjb21iaW5lZEtleS54U2hhcmUuY2hhaW5jb2RlICE9PSBjb21tb25LZXljaGFpbikge1xuICAgIHRocm93IG5ldyBFcnJvcignQ29tbW9uIGtleWNoYWlucyBkbyBub3QgbWF0Y2gnKTtcbiAgfVxuXG4gIGNvbnN0IHNpZ25pbmdNYXRlcmlhbDogU2lnbmluZ01hdGVyaWFsID0ge1xuICAgIHBTaGFyZToga2V5U2hhcmUucFNoYXJlLFxuICAgIGJpdGdvTlNoYXJlLFxuICAgIGJhY2t1cE5TaGFyZSxcbiAgICB1c2VyTlNoYXJlLFxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgc2lnbmluZ01hdGVyaWFsLFxuICAgIGNvbW1vbktleWNoYWluLFxuICB9O1xufVxuXG4vKipcbiAqIENyZWF0ZXMgdGhlIFNpZ25TaGFyZSB3aXRoIFVzZXIgWFNoYXJlIGFuZCBZU2hhcmUgQ29ycmVzcG9uZGluZyB0byBCaXRHb1xuICogQHBhcmFtIHtYU2hhcmV9IHhTaGFyZSBVc2VyIHNlY3JldCB4U2hhcmVcbiAqIEBwYXJhbSB7WVNoYXJlfSB5U2hhcmUgWVNoYXJlIGZyb20gQml0Z29cbiAqIEByZXR1cm5zIHtQcm9taXNlPFNpZ25TaGFyZT59XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVVc2VyU2lnblNoYXJlKHhTaGFyZTogWFNoYXJlLCB5U2hhcmU6IFlTaGFyZSk6IFByb21pc2U8U2lnblNoYXJlPiB7XG4gIGlmICh4U2hhcmUuaSAhPT0gU2hhcmVLZXlQb3NpdGlvbi5VU0VSKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIFhTaGFyZSwgWFNoYXJlIGRvZXNuJ3QgYmVsb25nIHRvIHRoZSBVc2VyYCk7XG4gIH1cblxuICBpZiAoeVNoYXJlLmkgIT09IFNoYXJlS2V5UG9zaXRpb24uVVNFUiB8fCB5U2hhcmUuaiAhPT0gU2hhcmVLZXlQb3NpdGlvbi5CSVRHTykge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBZU2hhcmUgcHJvdmlkZWQgZm9yIHNpZ24nKTtcbiAgfVxuICByZXR1cm4gTVBDLnNpZ25TaGFyZSh4U2hhcmUsIHlTaGFyZSk7XG59XG5cbi8qKlxuICogQ3JlYXRlcyB0aGUgR2FtbWEgU2hhcmUgYW5kIE11U2hhcmUgd2l0aCBVc2VyIFdTaGFyZSBhbmQgQVNoYXJlIEZyb20gQml0R29cbiAqIEBwYXJhbSB7V1NoYXJlfSB3U2hhcmUgVXNlciBXU2hhcmVcbiAqIEBwYXJhbSB7QVNoYXJlfSBhU2hhcmUgQVNoYXJlIGZyb20gQml0Z29cbiAqIEByZXR1cm5zIHtQcm9taXNlPENyZWF0ZVVzZXJHYW1tYUFuZE11U2hhcmVSVD59XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVVc2VyR2FtbWFBbmRNdVNoYXJlKHdTaGFyZTogV1NoYXJlLCBhU2hhcmU6IEFTaGFyZSk6IFByb21pc2U8Q3JlYXRlVXNlckdhbW1hQW5kTXVTaGFyZVJUPiB7XG4gIGlmICh3U2hhcmUuaSAhPT0gU2hhcmVLZXlQb3NpdGlvbi5VU0VSKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIFdTaGFyZSwgZG9lc24ndCBiZWxvbmcgdG8gdGhlIFVzZXJgKTtcbiAgfVxuICBpZiAoYVNoYXJlLmkgIT09IFNoYXJlS2V5UG9zaXRpb24uVVNFUiB8fCBhU2hhcmUuaiAhPT0gU2hhcmVLZXlQb3NpdGlvbi5CSVRHTykge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBBU2hhcmUsIGlzIG5vdCBmcm9tIEJpdGdvIHRvIFVzZXInKTtcbiAgfVxuXG4gIHJldHVybiBNUEMuc2lnbkNvbnZlcnQoeyB3U2hhcmUsIGFTaGFyZSB9KTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIHRoZSBPbWljcm9uIFNoYXJlIGFuZCBEZWx0YSBzaGFyZSB3aXRoIHVzZXIgR1NoYXJlXG4gKiBAcGFyYW0ge0dTaGFyZX0gZ1NoYXJlIFVzZXIgR1NoYXJlXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxDcmVhdGVVc2VyT21pY3JvbkFuZERlbHRhU2hhcmVSVD59XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVVc2VyT21pY3JvbkFuZERlbHRhU2hhcmUoZ1NoYXJlOiBHU2hhcmUpOiBQcm9taXNlPENyZWF0ZVVzZXJPbWljcm9uQW5kRGVsdGFTaGFyZVJUPiB7XG4gIGlmIChnU2hhcmUuaSAhPT0gU2hhcmVLZXlQb3NpdGlvbi5VU0VSKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIEdTaGFyZSwgZG9lc24ndCBiZWxvbmcgdG8gdGhlIFVzZXJgKTtcbiAgfVxuICByZXR1cm4gTVBDLnNpZ25Db21iaW5lKHtcbiAgICBnU2hhcmU6IGdTaGFyZSxcbiAgICBzaWduSW5kZXg6IHtcbiAgICAgIGk6IFNoYXJlS2V5UG9zaXRpb24uQklUR08sXG4gICAgICBqOiBnU2hhcmUuaSxcbiAgICB9LFxuICB9KTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIHRoZSBTaWduYXR1cmUgU2hhcmUgd2l0aCBVc2VyIE9TaGFyZSBhbmQgRFNoYXJlIEZyb20gQml0R29cbiAqIEBwYXJhbSB7T1NoYXJlfSBvU2hhcmUgVXNlciBPU2hhcmVcbiAqIEBwYXJhbSB7RFNoYXJlfSBkU2hhcmUgRFNoYXJlIGZyb20gYml0Z29cbiAqIEBwYXJhbSB7QnVmZmVyfSBtZXNzYWdlIG1lc3NhZ2UgdG8gcGVyZm9ybSBzaWduXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxjcmVhdGVVc2VyU2lnblNoYXJlUlQ+fVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVXNlclNpZ25hdHVyZVNoYXJlKFxuICBvU2hhcmU6IE9TaGFyZSxcbiAgZFNoYXJlOiBEU2hhcmUsXG4gIG1lc3NhZ2U6IEJ1ZmZlclxuKTogUHJvbWlzZTxTaWduYXR1cmVTaGFyZT4ge1xuICBpZiAob1NoYXJlLmkgIT09IFNoYXJlS2V5UG9zaXRpb24uVVNFUikge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBPU2hhcmUsIGRvZXNuJ3QgYmVsb25nIHRvIHRoZSBVc2VyYCk7XG4gIH1cblxuICBpZiAoZFNoYXJlLmkgIT09IFNoYXJlS2V5UG9zaXRpb24uVVNFUiB8fCBkU2hhcmUuaiAhPT0gU2hhcmVLZXlQb3NpdGlvbi5CSVRHTykge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBEU2hhcmUsIGRvZXNuJ3Qgc2VlbSB0byBiZSBmcm9tIEJpdEdvYCk7XG4gIH1cbiAgcmV0dXJuIE1QQy5zaWduKG1lc3NhZ2UsIG9TaGFyZSwgZFNoYXJlKTtcbn1cblxuLyoqXG4gKiBTZW5kcyBTaGFyZSBUbyBCaXRnb1xuICogQHBhcmFtIHtCaXRHb0Jhc2V9IGJpdGdvIC0gdGhlIGJpdGdvIGluc3RhbmNlXG4gKiBAcGFyYW0ge1N0cmluZ30gd2FsbGV0SWQgLSB0aGUgd2FsbGV0IGlkICAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdHhSZXF1ZXN0SWQgLSB0aGUgdHhSZXF1ZXN0IElkXG4gKiBAcGFyYW0ge1NpZ25hdHVyZVNoYXJlUmVjb3JkfSBzaWduYXR1cmVTaGFyZSAtIGEgU2lnbmF0dXJlIFNoYXJlXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxTaWduYXR1cmVTaGFyZVJlY29yZD59IC0gYSBTaWduYXR1cmUgU2hhcmVcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlbmRTaGFyZVRvQml0Z28oXG4gIGJpdGdvOiBCaXRHb0Jhc2UsXG4gIHdhbGxldElkOiBzdHJpbmcsXG4gIHR4UmVxdWVzdElkOiBzdHJpbmcsXG4gIHNoYXJlVHlwZTogU2VuZFNoYXJlVHlwZSxcbiAgc2hhcmU6IFNTaGFyZSB8IE1VU2hhcmUgfCBLU2hhcmUsXG4gIGRTaGFyZT86IERTaGFyZVxuKTogUHJvbWlzZTxTZW5kU2hhcmVUb0JpdGdvUlQ+IHtcbiAgaWYgKHNoYXJlVHlwZSAhPT0gU2VuZFNoYXJlVHlwZS5TU2hhcmUgJiYgc2hhcmUuaSAhPT0gU2hhcmVLZXlQb3NpdGlvbi5CSVRHTykge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBTaGFyZSwgaXMgbm90IGZyb20gVXNlciB0byBCaXRnbycpO1xuICB9XG4gIGxldCBzaWduYXR1cmVTaGFyZTogU2lnbmF0dXJlU2hhcmVSZWNvcmQ7XG4gIGxldCByZXNwb25zZUZyb21CaXRnbzogU2VuZFNoYXJlVG9CaXRnb1JUO1xuXG4gIHN3aXRjaCAoc2hhcmVUeXBlKSB7XG4gICAgY2FzZSBTZW5kU2hhcmVUeXBlLktTaGFyZTpcbiAgICAgIGNvbnN0IGtTaGFyZSA9IHNoYXJlIGFzIEtTaGFyZTtcbiAgICAgIHNpZ25hdHVyZVNoYXJlID0gY29udmVydEtTaGFyZShrU2hhcmUpO1xuICAgICAgYXdhaXQgc2VuZFNpZ25hdHVyZVNoYXJlKGJpdGdvLCB3YWxsZXRJZCwgdHhSZXF1ZXN0SWQsIHNpZ25hdHVyZVNoYXJlKTtcbiAgICAgIHJlc3BvbnNlRnJvbUJpdGdvID0gYXdhaXQgZ2V0Qml0Z29Ub1VzZXJMYXRlc3RTaGFyZShiaXRnbywgd2FsbGV0SWQsIHR4UmVxdWVzdElkLCBSZWNlaXZlZFNoYXJlVHlwZS5BU2hhcmUpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBTZW5kU2hhcmVUeXBlLk1VU2hhcmU6XG4gICAgICBjb25zdCBtdVNoYXJlID0gc2hhcmUgYXMgTVVTaGFyZTtcbiAgICAgIHNpZ25hdHVyZVNoYXJlID0gY29udmVydE11U2hhcmUobXVTaGFyZSk7XG4gICAgICBhd2FpdCBzZW5kU2lnbmF0dXJlU2hhcmUoYml0Z28sIHdhbGxldElkLCB0eFJlcXVlc3RJZCwgc2lnbmF0dXJlU2hhcmUpO1xuICAgICAgcmVzcG9uc2VGcm9tQml0Z28gPSBhd2FpdCBnZXRCaXRnb1RvVXNlckxhdGVzdFNoYXJlKGJpdGdvLCB3YWxsZXRJZCwgdHhSZXF1ZXN0SWQsIFJlY2VpdmVkU2hhcmVUeXBlLkRTaGFyZSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFNlbmRTaGFyZVR5cGUuU1NoYXJlOlxuICAgICAgaWYgKCFkU2hhcmUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEU2hhcmUgbm90IHByb3ZpZGVkJyk7XG4gICAgICB9XG4gICAgICBpZiAoZFNoYXJlLmkgIT09IFNoYXJlS2V5UG9zaXRpb24uQklUR08gfHwgZFNoYXJlLmogIT09IFNoYXJlS2V5UG9zaXRpb24uVVNFUikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgRFNoYXJlIHByb3ZpZGVkJyk7XG4gICAgICB9XG4gICAgICBjb25zdCBzU2hhcmUgPSBzaGFyZSBhcyBTU2hhcmU7XG4gICAgICBzaWduYXR1cmVTaGFyZSA9IGNvbnZlcnRTRFNoYXJlKHsgc1NoYXJlLCBkU2hhcmUgfSk7XG4gICAgICBhd2FpdCBzZW5kU2lnbmF0dXJlU2hhcmUoYml0Z28sIHdhbGxldElkLCB0eFJlcXVlc3RJZCwgc2lnbmF0dXJlU2hhcmUpO1xuICAgICAgcmVzcG9uc2VGcm9tQml0Z28gPSBzU2hhcmU7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIFNoYXJlIGdpdmVuIHRvIHNlbmQnKTtcbiAgfVxuXG4gIHJldHVybiByZXNwb25zZUZyb21CaXRnbztcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBsYXRlc3QgdXNlcidzIHNoYXJlIGZyb20gYml0Z28gbmVlZGVkIHRvIGNvbnRpbnVlIHNpZ25pbmcgZmxvd1xuICogQHBhcmFtIHtCaXRHb0Jhc2V9IGJpdGdvIC0gdGhlIGJpdGdvIGluc3RhbmNlXG4gKiBAcGFyYW0ge1N0cmluZ30gd2FsbGV0SWQgLSB0aGUgd2FsbGV0IGlkICAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdHhSZXF1ZXN0SWQgLSB0aGUgdHhSZXF1ZXN0IElkXG4gKiBAcGFyYW0ge1JlY2VpdmVkU2hhcmVUeXBlfSBzaGFyZVR5cGUgLSB0aGUgZXhjcGVjdGVkIHNoYXJlIHR5cGVcbiAqIEByZXR1cm5zIHtQcm9taXNlPFNlbmRTaGFyZVRvQml0Z29SVD59IC0gc2hhcmUgZnJvbSBiaXRnbyB0byB1c2VyXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRCaXRnb1RvVXNlckxhdGVzdFNoYXJlKFxuICBiaXRnbzogQml0R29CYXNlLFxuICB3YWxsZXRJZDogc3RyaW5nLFxuICB0eFJlcXVlc3RJZDogc3RyaW5nLFxuICBzaGFyZVR5cGU6IFJlY2VpdmVkU2hhcmVUeXBlXG4pOiBQcm9taXNlPFNlbmRTaGFyZVRvQml0Z29SVD4ge1xuICBsZXQgcmVzcG9uc2VGcm9tQml0Z286IFNlbmRTaGFyZVRvQml0Z29SVDtcbiAgY29uc3QgdHhSZXF1ZXN0ID0gYXdhaXQgZ2V0VHhSZXF1ZXN0KGJpdGdvLCB3YWxsZXRJZCwgdHhSZXF1ZXN0SWQpO1xuICBjb25zdCB1c2VyU2hhcmVzID0gdHhSZXF1ZXN0LnNpZ25hdHVyZVNoYXJlcztcbiAgaWYgKCF1c2VyU2hhcmVzIHx8ICF1c2VyU2hhcmVzLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcigndXNlciBzaGFyZSBpcyBub3QgcHJlc2VudCcpO1xuICB9XG5cbiAgY29uc3Qgc2hhcmVSZWNvcmQgPSB1c2VyU2hhcmVzW3VzZXJTaGFyZXMubGVuZ3RoIC0gMV07XG4gIHN3aXRjaCAoc2hhcmVUeXBlKSB7XG4gICAgY2FzZSBSZWNlaXZlZFNoYXJlVHlwZS5BU2hhcmU6XG4gICAgICByZXNwb25zZUZyb21CaXRnbyA9IHBhcnNlQVNoYXJlKHNoYXJlUmVjb3JkKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgUmVjZWl2ZWRTaGFyZVR5cGUuRFNoYXJlOlxuICAgICAgcmVzcG9uc2VGcm9tQml0Z28gPSBwYXJzZURTaGFyZShzaGFyZVJlY29yZCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFJlY2VpdmVkU2hhcmVUeXBlLlNpZ25hdHVyZTpcbiAgICAgIHJlc3BvbnNlRnJvbUJpdGdvID0gcGFyc2VTaWduYXR1cmVTaGFyZShzaGFyZVJlY29yZCk7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHNoYXJlIHJlY2VpdmVkJyk7XG4gIH1cblxuICByZXR1cm4gcmVzcG9uc2VGcm9tQml0Z287XG59XG5cbi8qKlxuICogUHJlcGFyZXMgYSBOU2hhcmUgdG8gYmUgZXhjaGFuZ2VkIHdpdGggb3RoZXIga2V5IGhvbGRlcnMuXG4gKiBPdXRwdXQgaXMgaW4gYSBmb3JtYXQgdGhhdCBpcyB1c2FibGUgd2l0aGluIEJpdEdvJ3MgZWNvc3lzdGVtLlxuICpcbiAqIEBwYXJhbSBrZXlTaGFyZSAtIFRTUyBrZXkgc2hhcmUgb2YgdGhlIHBhcnR5IHByZXBhcmluZyBleGNoYW5nZSBtYXRlcmlhbHNcbiAqIEBwYXJhbSByZWNpcGllbnRJbmRleCAtIGluZGV4IG9mIHRoZSByZWNpcGllbnQgKDEsIDIsIG9yIDMpXG4gKiBAcGFyYW0gcmVjaXBpZW50R3BnUHVibGljQXJtb3IgLSByZWNpcGllbnQncyBwdWJsaWMgZ3BnIGtleSBpbiBhcm1vciBmb3JtYXRcbiAqIEBwYXJhbSBzZW5kZXJHcGdQcml2YXRlQXJtb3IgLSBzZW5kZXIncyBwcml2YXRlIGdwZyBrZXkgaW4gYXJtb3IgZm9ybWF0XG4gKiBAcmV0dXJucyBlbmNyeXB0ZWQgTiBTaGFyZVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZW5jcnlwdE5TaGFyZShcbiAga2V5U2hhcmU6IEtleVNoYXJlLFxuICByZWNpcGllbnRJbmRleDogbnVtYmVyLFxuICByZWNpcGllbnRHcGdQdWJsaWNBcm1vcjogc3RyaW5nLFxuICBzZW5kZXJHcGdQcml2YXRlQXJtb3I6IHN0cmluZ1xuKTogUHJvbWlzZTxFbmNyeXB0ZWROU2hhcmU+IHtcbiAgY29uc3QgblNoYXJlID0ga2V5U2hhcmUublNoYXJlc1tyZWNpcGllbnRJbmRleF07XG4gIGlmICghblNoYXJlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHJlY2lwaWVudCcpO1xuICB9XG5cbiAgY29uc3QgcHVibGljU2hhcmUgPSBrZXlTaGFyZS5wU2hhcmUueSArIG5TaGFyZS5jaGFpbmNvZGUgKyBuU2hhcmUubjtcbiAgY29uc3QgcHJpdmF0ZVNoYXJlID0gblNoYXJlLnU7XG5cbiAgY29uc3QgZW5jcnlwdGVkUHJpdmF0ZVNoYXJlID0gYXdhaXQgZW5jcnlwdEFuZFNpZ25UZXh0KHByaXZhdGVTaGFyZSwgcmVjaXBpZW50R3BnUHVibGljQXJtb3IsIHNlbmRlckdwZ1ByaXZhdGVBcm1vcik7XG5cbiAgcmV0dXJuIHtcbiAgICBpOiBuU2hhcmUuaSxcbiAgICBqOiBuU2hhcmUuaixcbiAgICBwdWJsaWNTaGFyZSxcbiAgICBlbmNyeXB0ZWRQcml2YXRlU2hhcmUsXG4gIH07XG59XG5cbi8qKlxuICogRGVjcnlwdHMgZW5jcnlwdGVkIG4gc2hhcmVcbiAqIEBwYXJhbSBlbmNyeXB0ZWROU2hhcmUgLSBkZWNyeXB0YWJsZSBuIHNoYXJlIHdpdGggcmVjaXBpZW50IHByaXZhdGUgZ3BnIGtleSBhcm1vciBhbmQgc2VuZGVyIHB1YmxpYyBncGcga2V5XG4gKiBAcmV0dXJucyBOIHNoYXJlXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZWNyeXB0TlNoYXJlKGVuY3J5cHRlZE5TaGFyZTogRGVjcnlwdGFibGVOU2hhcmUpOiBQcm9taXNlPE5TaGFyZT4ge1xuICBjb25zdCBwcml2YXRlU2hhcmUgPSBhd2FpdCByZWFkU2lnbmVkTWVzc2FnZShcbiAgICBlbmNyeXB0ZWROU2hhcmUublNoYXJlLmVuY3J5cHRlZFByaXZhdGVTaGFyZSxcbiAgICBlbmNyeXB0ZWROU2hhcmUuc2VuZGVyUHVibGljQXJtb3IsXG4gICAgZW5jcnlwdGVkTlNoYXJlLnJlY2lwaWVudFByaXZhdGVBcm1vclxuICApO1xuXG4gIGNvbnN0IG5TaGFyZTogTlNoYXJlID0ge1xuICAgIGk6IGVuY3J5cHRlZE5TaGFyZS5uU2hhcmUuaSxcbiAgICBqOiBlbmNyeXB0ZWROU2hhcmUublNoYXJlLmosXG4gICAgeTogZW5jcnlwdGVkTlNoYXJlLm5TaGFyZS5wdWJsaWNTaGFyZS5zbGljZSgwLCA2NiksXG4gICAgdTogcHJpdmF0ZVNoYXJlLFxuICAgIG46IGVuY3J5cHRlZE5TaGFyZS5uU2hhcmUucHVibGljU2hhcmUuc2xpY2UoMTMwKSxcbiAgICBjaGFpbmNvZGU6IGVuY3J5cHRlZE5TaGFyZS5uU2hhcmUucHVibGljU2hhcmUuc2xpY2UoNjYsIDEzMCksXG4gIH07XG5cbiAgcmV0dXJuIG5TaGFyZTtcbn1cblxuLyoqXG4gKiBHZXRzIHB1YmxpYyBrZXkgZnJvbSBjb21tb24ga2V5IGNoYWluXG4gKiBAcGFyYW0gY29tbW9uS2V5Q2hhaW4gLSBjb21tb24ga2V5IGNoYWluIG9mIGVjZHNhIHRzc1xuICogQHJldHVybnMgcHVibGljIGtleVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHVibGljS2V5KGNvbW1vbktleUNoYWluOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gY29tbW9uS2V5Q2hhaW4uc2xpY2UoMCwgNjYpO1xufVxuXG4vKipcbiAqIHZhbGlkYXRlcyBzaWduYXR1cmUgc2hhcmUgcmVjb3JkXG4gKiBAcGFyYW0gc2hhcmUgLSBzaWduYXR1cmUgc2hhcmUgcmVjb3JkIHRvIHZhbGlkYXRlXG4gKiBAcGFyYW0gc2hhcmVMZW5ndGggLSBzaGFyZSByZWNvcmQgZXhwZWN0ZWQgbGVuZ3RoXG4gKiBAcGFyYW0gaXNFeGFjdExlbmd0aCAtIGlmIHRoaXMgZmFsc2UgdGhlbiBzaGFyZSBsZW5ndGggY2FuIGJlIGdyZWF0ZXIuXG4gKi9cbmZ1bmN0aW9uIHZhbGlkYXRlU2hhcmUoc2hhcmU6IFNpZ25hdHVyZVNoYXJlUmVjb3JkLCBzaGFyZUxlbmd0aDogbnVtYmVyLCBpc0V4YWN0TGVuZ3RoID0gdHJ1ZSk6IHZvaWQge1xuICBjb25zdCBlcnJvciA9IChtZXNzYWdlOiBzdHJpbmcpID0+IG5ldyBFcnJvcihtZXNzYWdlKTtcblxuICBpZiAoc2hhcmUuc2hhcmUubGVuZ3RoIDwgc2hhcmVMZW5ndGgpIHtcbiAgICB0aHJvdyBlcnJvcihgRXhjZXB0ZWQgc2hhcmUgbGVuZ3RoIHRvIGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCAke3NoYXJlTGVuZ3RofSBidXQgZ290ICR7c2hhcmUuc2hhcmUubGVuZ3RofS5gKTtcbiAgfVxuXG4gIGlmIChpc0V4YWN0TGVuZ3RoICYmIHNoYXJlLnNoYXJlLmxlbmd0aCAhPT0gc2hhcmVMZW5ndGgpIHtcbiAgICB0aHJvdyBlcnJvcihgRXhjZXB0ZWQgc2hhcmUgbGVuZ3RoIHRvIGJlICR7c2hhcmVMZW5ndGh9IGJ1dCBnb3QgJHtzaGFyZS5zaGFyZS5sZW5ndGh9LmApO1xuICB9XG5cbiAgaWYgKHNoYXJlLmZyb20gPT09IHNoYXJlLnRvKSB7XG4gICAgdGhyb3cgZXJyb3IoYEtleSBzaGFyZSBzZW5kZXIgYW5kIHJlY2VpdmVyIGNhbm5vdCBiZSB0aGUgc2FtZS5gKTtcbiAgfVxufVxuXG4vKipcbiAqIHBhcnNlcyBLIHNoYXJlIGZyb20gc2lnbmF0dXJlIHNoYXJlIHJlY29yZFxuICogQHBhcmFtIHNoYXJlIC0gc2lnbmF0dXJlIHNoYXJlIHJlY29yZFxuICogQHJldHVybnMgSyBTaGFyZVxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VLU2hhcmUoc2hhcmU6IFNpZ25hdHVyZVNoYXJlUmVjb3JkKTogS1NoYXJlIHtcbiAgdmFsaWRhdGVTaGFyZShzaGFyZSwgMTUzNiwgZmFsc2UpO1xuXG4gIHJldHVybiB7XG4gICAgaTogZ2V0UGFydGljYXBhbnRJbmRleChzaGFyZS50byksXG4gICAgajogZ2V0UGFydGljYXBhbnRJbmRleChzaGFyZS5mcm9tKSxcbiAgICBrOiBzaGFyZS5zaGFyZS5zdWJzdHJpbmcoMCwgMTUzNiksXG4gICAgbjogc2hhcmUuc2hhcmUuc3Vic3RyaW5nKDE1MzYpLFxuICB9O1xufVxuXG4vKipcbiAqIGNvbnZlcnQgSyBzaGFyZSB0byBzaWduYXR1cmUgc2hhcmUgcmVjb3JkXG4gKiBAcGFyYW0gc2hhcmUgLSBLIHNoYXJlXG4gKiBAcmV0dXJucyBzaWduYXR1cmUgc2hhcmUgcmVjb3JkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0S1NoYXJlKHNoYXJlOiBLU2hhcmUpOiBTaWduYXR1cmVTaGFyZVJlY29yZCB7XG4gIHJldHVybiB7XG4gICAgdG86IGdldFBhcnRpY2FwYW50RnJvbUluZGV4KHNoYXJlLmkpLFxuICAgIGZyb206IGdldFBhcnRpY2FwYW50RnJvbUluZGV4KHNoYXJlLmopLFxuICAgIHNoYXJlOiBzaGFyZS5rICsgc2hhcmUubixcbiAgfTtcbn1cblxuLyoqXG4gKiBwYXJzZXMgQSBzaGFyZSBmcm9tIHNpZ25hdHVyZSBzaGFyZSByZWNvcmRcbiAqIEBwYXJhbSBzaGFyZSAtIHNpZ25hdHVyZSBzaGFyZSByZWNvcmRcbiAqIEByZXR1cm5zIEEgU2hhcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQVNoYXJlKHNoYXJlOiBTaWduYXR1cmVTaGFyZVJlY29yZCk6IEFTaGFyZSB7XG4gIHZhbGlkYXRlU2hhcmUoc2hhcmUsIDQ2MDgsIGZhbHNlKTtcbiAgcmV0dXJuIHtcbiAgICBpOiBnZXRQYXJ0aWNhcGFudEluZGV4KHNoYXJlLnRvKSxcbiAgICBqOiBnZXRQYXJ0aWNhcGFudEluZGV4KHNoYXJlLmZyb20pLFxuICAgIGs6IHNoYXJlLnNoYXJlLnNsaWNlKDAsIDE1MzYpLFxuICAgIGFscGhhOiBzaGFyZS5zaGFyZS5zbGljZSgxNTM2LCAzMDcyKSxcbiAgICBtdTogc2hhcmUuc2hhcmUuc2xpY2UoMzA3MiwgNDYwOCksXG4gICAgbjogc2hhcmUuc2hhcmUuc2xpY2UoNDYwOCksXG4gIH07XG59XG5cbi8qKlxuICogY29udmVydCBBIHNoYXJlIHRvIHNpZ25hdHVyZSBzaGFyZSByZWNvcmRcbiAqIEBwYXJhbSBzaGFyZSAtIEEgc2hhcmVcbiAqIEByZXR1cm5zIHNpZ25hdHVyZSBzaGFyZSByZWNvcmRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRBU2hhcmUoc2hhcmU6IEFTaGFyZSk6IFNpZ25hdHVyZVNoYXJlUmVjb3JkIHtcbiAgcmV0dXJuIHtcbiAgICB0bzogZ2V0UGFydGljYXBhbnRGcm9tSW5kZXgoc2hhcmUuaSksXG4gICAgZnJvbTogZ2V0UGFydGljYXBhbnRGcm9tSW5kZXgoc2hhcmUuaiksXG4gICAgc2hhcmU6IHNoYXJlLmshICsgc2hhcmUuYWxwaGEhICsgc2hhcmUubXUhICsgc2hhcmUubiEsXG4gIH07XG59XG5cbi8qKlxuICogcGFyc2VzIE11IHNoYXJlIGZyb20gc2lnbmF0dXJlIHNoYXJlIHJlY29yZFxuICogQHBhcmFtIHNoYXJlIC0gc2lnbmF0dXJlIHNoYXJlIHJlY29yZFxuICogQHJldHVybnMgTXUgU2hhcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlTXVTaGFyZShzaGFyZTogU2lnbmF0dXJlU2hhcmVSZWNvcmQpOiBNVVNoYXJlIHtcbiAgdmFsaWRhdGVTaGFyZShzaGFyZSwgMzA3Mik7XG4gIHJldHVybiB7XG4gICAgaTogZ2V0UGFydGljYXBhbnRJbmRleChzaGFyZS50byksXG4gICAgajogZ2V0UGFydGljYXBhbnRJbmRleChzaGFyZS5mcm9tKSxcbiAgICBhbHBoYTogc2hhcmUuc2hhcmUuc2xpY2UoMCwgMTUzNiksXG4gICAgbXU6IHNoYXJlLnNoYXJlLnNsaWNlKDE1MzYsIDMwNzIpLFxuICB9O1xufVxuXG4vKipcbiAqIGNvbnZlcnQgTXUgc2hhcmUgdG8gc2lnbmF0dXJlIHNoYXJlIHJlY29yZFxuICogQHBhcmFtIHNoYXJlIC0gTXUgc2hhcmVcbiAqIEByZXR1cm5zIHNpZ25hdHVyZSBzaGFyZSByZWNvcmRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRNdVNoYXJlKHNoYXJlOiBNVVNoYXJlKTogU2lnbmF0dXJlU2hhcmVSZWNvcmQge1xuICByZXR1cm4ge1xuICAgIHRvOiBnZXRQYXJ0aWNhcGFudEZyb21JbmRleChzaGFyZS5pKSxcbiAgICBmcm9tOiBnZXRQYXJ0aWNhcGFudEZyb21JbmRleChzaGFyZS5qKSxcbiAgICBzaGFyZTogc2hhcmUuYWxwaGEgKyBzaGFyZS5tdSxcbiAgfTtcbn1cblxuLyoqXG4gKiBwYXJzZXMgRCBzaGFyZSBmcm9tIHNpZ25hdHVyZSBzaGFyZSByZWNvcmRcbiAqIEBwYXJhbSBzaGFyZSAtIHNpZ25hdHVyZSBzaGFyZSByZWNvcmRcbiAqIEByZXR1cm5zIEQgU2hhcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRFNoYXJlKHNoYXJlOiBTaWduYXR1cmVTaGFyZVJlY29yZCk6IERTaGFyZSB7XG4gIHZhbGlkYXRlU2hhcmUoc2hhcmUsIDEzMCk7XG4gIHJldHVybiB7XG4gICAgaTogZ2V0UGFydGljYXBhbnRJbmRleChzaGFyZS50byksXG4gICAgajogZ2V0UGFydGljYXBhbnRJbmRleChzaGFyZS5mcm9tKSxcbiAgICBkZWx0YTogc2hhcmUuc2hhcmUuc2xpY2UoMCwgNjQpLFxuICAgIEdhbW1hOiBzaGFyZS5zaGFyZS5zbGljZSg2NCwgMTMwKSxcbiAgfTtcbn1cblxuLyoqXG4gKiBjb252ZXJ0IEQgc2hhcmUgdG8gc2lnbmF0dXJlIHNoYXJlIHJlY29yZFxuICogQHBhcmFtIHNoYXJlIC0gRCBzaGFyZVxuICogQHJldHVybnMgc2lnbmF0dXJlIHNoYXJlIHJlY29yZFxuICovXG5leHBvcnQgZnVuY3Rpb24gY29udmVydERTaGFyZShzaGFyZTogRFNoYXJlKTogU2lnbmF0dXJlU2hhcmVSZWNvcmQge1xuICByZXR1cm4ge1xuICAgIHRvOiBnZXRQYXJ0aWNhcGFudEZyb21JbmRleChzaGFyZS5pKSxcbiAgICBmcm9tOiBnZXRQYXJ0aWNhcGFudEZyb21JbmRleChzaGFyZS5qKSxcbiAgICBzaGFyZTogc2hhcmUuZGVsdGEgKyBzaGFyZS5HYW1tYSxcbiAgfTtcbn1cblxuLyoqXG4gKiBwYXJzZXMgUyBhbmQgRCBzaGFyZSBmcm9tIHNpZ25hdHVyZSBzaGFyZSByZWNvcmRcbiAqIEBwYXJhbSBzaGFyZSAtIHNpZ25hdHVyZSBzaGFyZSByZWNvcmRcbiAqIEByZXR1cm5zIE9iamVjdCBjb250YWluaW5nIFMgYW5kIEQgU2hhcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlU0RTaGFyZShzaGFyZTogU2lnbmF0dXJlU2hhcmVSZWNvcmQpOiB7IHNTaGFyZTogU2lnbmF0dXJlU2hhcmU7IGRTaGFyZTogRFNoYXJlIH0ge1xuICB2YWxpZGF0ZVNoYXJlKHNoYXJlLCAzMjQpO1xuICByZXR1cm4ge1xuICAgIHNTaGFyZTogcGFyc2VTaWduYXR1cmVTaGFyZSh7IHRvOiBzaGFyZS50bywgZnJvbTogc2hhcmUuZnJvbSwgc2hhcmU6IHNoYXJlLnNoYXJlLnNsaWNlKDAsIDE5NCkgfSksXG4gICAgZFNoYXJlOiBwYXJzZURTaGFyZSh7IHRvOiBzaGFyZS50bywgZnJvbTogc2hhcmUuZnJvbSwgc2hhcmU6IHNoYXJlLnNoYXJlLnNsaWNlKDE5NCkgfSksXG4gIH07XG59XG5cbi8qKlxuICogY29udmVydCBTIGFuZCBEIHNoYXJlIHRvIHNpZ25hdHVyZSBzaGFyZSByZWNvcmRcbiAqIEBwYXJhbSBzaGFyZSAtIFMgYW5kIEQgc2hhcmUgaW4gYSBvYmplY3RcbiAqIEByZXR1cm5zIHNpZ25hdHVyZSBzaGFyZSByZWNvcmRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRTRFNoYXJlKHNoYXJlOiB7IHNTaGFyZTogU2lnbmF0dXJlU2hhcmU7IGRTaGFyZTogRFNoYXJlIH0pOiBTaWduYXR1cmVTaGFyZVJlY29yZCB7XG4gIHJldHVybiB7XG4gICAgdG86IGdldFBhcnRpY2FwYW50RnJvbUluZGV4KHNoYXJlLmRTaGFyZS5pKSxcbiAgICBmcm9tOiBnZXRQYXJ0aWNhcGFudEZyb21JbmRleChzaGFyZS5kU2hhcmUuaiksXG4gICAgc2hhcmU6IHNoYXJlLnNTaGFyZS5yICsgc2hhcmUuc1NoYXJlLnMgKyBzaGFyZS5zU2hhcmUueSArIHNoYXJlLmRTaGFyZS5kZWx0YSArIHNoYXJlLmRTaGFyZS5HYW1tYSxcbiAgfTtcbn1cblxuLyoqXG4gKiBwYXJzZXMgc2lnbmF0dXJlIHNoYXJlIGZyb20gc2lnbmF0dXJlIHNoYXJlIHJlY29yZFxuICogQHBhcmFtIHNoYXJlIC0gc2lnbmF0dXJlIHNoYXJlIHJlY29yZFxuICogQHJldHVybnMgU2lnbmF0dXJlIFNoYXJlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVNpZ25hdHVyZVNoYXJlKHNoYXJlOiBTaWduYXR1cmVTaGFyZVJlY29yZCk6IFNpZ25hdHVyZVNoYXJlIHtcbiAgdmFsaWRhdGVTaGFyZShzaGFyZSwgMTk0KTtcbiAgcmV0dXJuIHtcbiAgICBpOiBnZXRQYXJ0aWNhcGFudEluZGV4KHNoYXJlLnRvKSxcbiAgICByOiBzaGFyZS5zaGFyZS5zdWJzdHJpbmcoMCwgNjQpLFxuICAgIHM6IHNoYXJlLnNoYXJlLnN1YnN0cmluZyg2NCwgMTI4KSxcbiAgICB5OiBzaGFyZS5zaGFyZS5zdWJzdHJpbmcoMTI4LCAxOTQpLFxuICB9O1xufVxuXG4vKipcbiAqIGNvbnZlcnQgc2lnbmF0dXJlIHNoYXJlIHRvIHNpZ25hdHVyZSBzaGFyZSByZWNvcmRcbiAqIEBwYXJhbSBzaGFyZSAtIEsgc2hhcmVcbiAqIEByZXR1cm5zIHNpZ25hdHVyZSBzaGFyZSByZWNvcmRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRTaWduYXR1cmVTaGFyZShzaGFyZTogU2lnbmF0dXJlU2hhcmUsIHNlbmRlckluZGV4OiBudW1iZXIpOiBTaWduYXR1cmVTaGFyZVJlY29yZCB7XG4gIHJldHVybiB7XG4gICAgdG86IGdldFBhcnRpY2FwYW50RnJvbUluZGV4KHNoYXJlLmkpLFxuICAgIGZyb206IGdldFBhcnRpY2FwYW50RnJvbUluZGV4KHNlbmRlckluZGV4KSxcbiAgICBzaGFyZTogc2hhcmUuciArIHNoYXJlLnMgKyBzaGFyZS55LFxuICB9O1xufVxuXG4vKipcbiAqIGdldHMgcGFydGljYXBhbnQgaW5kZXhcbiAqIEBwYXJhbSBwYXJ0aWNpcGFudCAtIHBhcnRpY2lwYW50cyAodXNlciwgYmFja3VwLCBvciBiaXRnbylcbiAqIEByZXR1cm5zIGluZGV4ICgxLCAyLCAwciAzKVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFydGljYXBhbnRJbmRleChwYXJ0aWNpcGFudDogJ3VzZXInIHwgJ2JhY2t1cCcgfCAnYml0Z28nKTogbnVtYmVyIHtcbiAgc3dpdGNoIChwYXJ0aWNpcGFudCkge1xuICAgIGNhc2UgJ3VzZXInOlxuICAgICAgcmV0dXJuIDE7XG4gICAgY2FzZSAnYmFja3VwJzpcbiAgICAgIHJldHVybiAyO1xuICAgIGNhc2UgJ2JpdGdvJzpcbiAgICAgIHJldHVybiAzO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBFcnJvcignVW5rb3duIHBhcnRpY2lwYW50Jyk7XG4gIH1cbn1cblxuLyoqXG4gKiBnZXRzIHBhcnRpY2FwYW50IG5hbWUgYnkgaW5kZXhcbiAqIEBwYXJhbSBpbmRleCBwYXJ0aWNhcGFudCBpbmRleFxuICogQHJldHVybnMgcGFydGljYXBhbnQgbmFtZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFydGljYXBhbnRGcm9tSW5kZXgoaW5kZXg6IG51bWJlcik6IFNpZ25hdHVyZVNoYXJlVHlwZSB7XG4gIHN3aXRjaCAoaW5kZXgpIHtcbiAgICBjYXNlIDE6XG4gICAgICByZXR1cm4gU2lnbmF0dXJlU2hhcmVUeXBlLlVTRVI7XG4gICAgY2FzZSAyOlxuICAgICAgcmV0dXJuIFNpZ25hdHVyZVNoYXJlVHlwZS5CQUNLVVA7XG4gICAgY2FzZSAzOlxuICAgICAgcmV0dXJuIFNpZ25hdHVyZVNoYXJlVHlwZS5CSVRHTztcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHBhcnRpY2FwYW50IGluZGV4ICR7aW5kZXh9YCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opengpgUtils.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/utils/opengpgUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,GAAG,EAOJ,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzC;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAQtE;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAsD5F;AAED;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAczE;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBjH;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"opengpgUtils.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/utils/opengpgUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,GAAG,EAOJ,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzC;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAQtE;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAsD5F;AAED;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAczE;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBjH;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAclH;AAED;;;;;;GAMG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAWlF;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAoBnH"}
|
|
@@ -158,6 +158,7 @@ async function readSignedMessage(signed, publicArmor, privateArmor) {
|
|
|
158
158
|
verificationKeys: publicKey,
|
|
159
159
|
decryptionKeys: privateKey,
|
|
160
160
|
expectSigned: true,
|
|
161
|
+
config: { rejectCurves: new Set() },
|
|
161
162
|
});
|
|
162
163
|
return decrypted.data;
|
|
163
164
|
}
|
|
@@ -209,4 +210,4 @@ async function verifySignature(text, armoredSignature, publicArmor) {
|
|
|
209
210
|
}
|
|
210
211
|
}
|
|
211
212
|
exports.verifySignature = verifySignature;
|
|
212
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmdwZ1V0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3V0aWxzL29wZW5ncGdVdGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsc0RBQXNEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXRELHFDQVdpQjtBQUNqQiw2Q0FBK0I7QUFHL0IsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLHlCQUF5QixDQUFDLENBQUM7QUFFbEQ7Ozs7R0FJRztBQUNJLEtBQUssVUFBVSxpQkFBaUIsQ0FBQyxLQUFnQjtJQUN0RCxNQUFNLFNBQVMsR0FBRyxNQUFNLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMvQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFO1FBQ25ELE1BQU0sSUFBSSxLQUFLLENBQUMsc0VBQXNFLENBQUMsQ0FBQztLQUN6RjtJQUVELE1BQU0saUJBQWlCLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxjQUF3QixDQUFDO0lBQ2pFLE9BQU8sTUFBTSxpQkFBTyxDQUFDLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQztBQUMxRCxDQUFDO0FBUkQsOENBUUM7QUFFRDs7Ozs7O0dBTUc7QUFDSSxLQUFLLFVBQVUsZ0JBQWdCLENBQUMsWUFBb0IsRUFBRSxNQUFjO0lBQ3pFLE1BQU0sVUFBVSxHQUFHLE1BQU0saUJBQU8sQ0FBQyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQy9ELE1BQU0sUUFBUSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDNUIsTUFBTSxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQ25CLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQzNCLE1BQU0sQ0FBQyxzQ0FBc0MsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFL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T0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQVhELDRCQVdDO0FBRUQ7Ozs7OztHQU1HO0FBQ0ksS0FBSyxVQUFVLGVBQWUsQ0FBQyxJQUFZLEVBQUUsZ0JBQXdCLEVBQUUsV0FBbUI7SUFDL0YsTUFBTSxTQUFTLEdBQUcsTUFBTSxpQkFBTyxDQUFDLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDN0QsTUFBTSxTQUFTLEdBQUcsTUFBTSx1QkFBYSxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBQzVELE1BQU0sT0FBTyxHQUFHLE1BQU0sdUJBQWEsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUMsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLGdCQUFNLENBQUM7UUFDdEMsT0FBTztRQUNQLFNBQVM7UUFDVCxnQkFBZ0IsRUFBRSxTQUFTO0tBQzVCLENBQUMsQ0FBQztJQUVILElBQUksa0JBQWtCLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDOUMsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0tBQ2pEO0lBRUQsSUFBSTtRQUNGLE1BQU0sa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUNoRCxPQUFPLElBQUksS0FBSyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7S0FDekM7SUFBQyxNQUFNO1FBQ04sT0FBTyxLQUFLLENBQUM7S0FDZDtBQUNILENBQUM7QUFwQkQsMENBb0JDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50ICovXG5cbmltcG9ydCB7XG4gIGNyZWF0ZU1lc3NhZ2UsXG4gIGRlY3J5cHQsXG4gIGVuY3J5cHQsXG4gIEtleSxcbiAgcmVhZEtleSxcbiAgcmVhZE1lc3NhZ2UsXG4gIHJlYWRQcml2YXRlS2V5LFxuICByZWFkU2lnbmF0dXJlLFxuICBzaWduLFxuICB2ZXJpZnksXG59IGZyb20gJ29wZW5wZ3AnO1xuaW1wb3J0ICogYXMgcGdwIGZyb20gJ29wZW5wZ3AnO1xuaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnLi4vYml0Z29CYXNlJztcblxuY29uc3Qgc29kaXVtID0gcmVxdWlyZSgnbGlic29kaXVtLXdyYXBwZXJzLXN1bW8nKTtcblxuLyoqXG4gKiBGZXRjaGVzIEJpdEdvJ3MgcHViaWMgZ3BnIGtleSB1c2VkIGluIE1QQyBmbG93c1xuICogQHBhcmFtIHtCaXRHb30gYml0Z28gQml0R28gb2JqZWN0XG4gKiBAcmV0dXJuIHtLZXl9IHB1YmxpYyBncGcga2V5XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRCaXRnb0dwZ1B1YktleShiaXRnbzogQml0R29CYXNlKTogUHJvbWlzZTxLZXk+IHtcbiAgY29uc3QgY29uc3RhbnRzID0gYXdhaXQgYml0Z28uZmV0Y2hDb25zdGFudHMoKTtcbiAgaWYgKCFjb25zdGFudHMubXBjIHx8ICFjb25zdGFudHMubXBjLmJpdGdvUHVibGljS2V5KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gY3JlYXRlIE1QQyBrZXlzIC0gYml0Z29QdWJsaWNLZXkgaXMgbWlzc2luZyBmcm9tIGNvbnN0YW50cycpO1xuICB9XG5cbiAgY29uc3QgYml0Z29QdWJsaWNLZXlTdHIgPSBjb25zdGFudHMubXBjLmJpdGdvUHVibGljS2V5IGFzIHN0cmluZztcbiAgcmV0dXJuIGF3YWl0IHJlYWRLZXkoeyBhcm1vcmVkS2V5OiBiaXRnb1B1YmxpY0tleVN0ciB9KTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIEVkZHNhIEtleVNoYXJlIFByb29mIGJ5IGFwcGVuZGluZyBhbiBlZDI1NTE5IHN1YmtleSB0byBhbiBhcm1vcmVkIGdwZyBwcml2YXRlIGtleS5cbiAqXG4gKiBAcGFyYW0gcHJpdmF0ZUFybW9yIGdwZyBwcml2YXRlIGtleSBpbiBhcm1vciBmb3JtYXRcbiAqIEBwYXJhbSB1VmFsdWUgdSB2YWx1ZSBmcm9tIGFuIEVkZHNhIGtleXNoYXJlXG4gKiBAcmV0dXJuIHtzdHJpbmd9IGtleXNoYXJlIHByb29mXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVTaGFyZVByb29mKHByaXZhdGVBcm1vcjogc3RyaW5nLCB1VmFsdWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IHByaXZhdGVLZXkgPSBhd2FpdCByZWFkS2V5KHsgYXJtb3JlZEtleTogcHJpdmF0ZUFybW9yIH0pO1xuICBjb25zdCBkYXRlVGltZSA9IG5ldyBEYXRlKCk7XG4gIGF3YWl0IHNvZGl1bS5yZWFkeTtcbiAgY29uc3Qgc3ViS2V5VmFsID0gQnVmZmVyLmZyb20oXG4gICAgc29kaXVtLmNyeXB0b19zY2FsYXJtdWx0X2VkMjU1MTlfYmFzZV9ub2NsYW1wKEJ1ZmZlci5mcm9tKHVWYWx1ZSwgJ2hleCcpLCAndWludDhhcnJheScpXG4gICk7XG5cbiAgLy8gU3ViLWtleSAoZW5jcnlwdGlvbiBrZXkpIHBhY2tldC5cbiAgY29uc3QgcHVibGljU3ViS2V5ID0gbmV3IFVpbnQ4QXJyYXkoWy4uLm5ldyBVaW50OEFycmF5KFsweDQwXSksIC4uLm5ldyBVaW50OEFycmF5KHN1YktleVZhbCldKTtcbiAgY29uc3Qgc3ViT2lkID0gWzB4MmIsIDB4MDYsIDB4MDEsIDB4MDQsIDB4MDEsIDB4ZGEsIDB4NDcsIDB4MGYsIDB4MDFdO1xuXG4gIC8vIEB0cy1pZ25vcmVcbiAgc3ViT2lkLndyaXRlID0gKCkgPT4gbmV3IFVpbnQ4QXJyYXkoQnVmZmVyLmZyb20oJzA5MmIwNjAxMDQwMWRhNDcwZjAxJywgJ2hleCcpKTtcbiAgLy8gQHRzLWlnbm9yZSAtIHR5cGUgaW5jb25zaXN0ZW5jeSwgdGhpcyBjdG9yIHN1cHBvcnRzIGEgZGF0ZSBwYXJhbTogaHR0cHM6Ly9kb2NzLm9wZW5wZ3Bqcy5vcmcvU2VjcmV0U3Via2V5UGFja2V0Lmh0bWxcbiAgY29uc3Qgc2VjcmV0U3Via2V5UGFja2V0ID0gbmV3IHBncC5TZWNyZXRTdWJrZXlQYWNrZXQoZGF0ZVRpbWUpO1xuICBzZWNyZXRTdWJrZXlQYWNrZXQuYWxnb3JpdGhtID0gcGdwLmVudW1zLnB1YmxpY0tleS5lZGRzYTtcbiAgLy8gQHRzLWlnbm9yZSAtIHNhbWUgYXMgYWJvdmVcbiAgc2VjcmV0U3Via2V5UGFja2V0LmlzRW5jcnlwdGVkID0gZmFsc2U7XG4gIHNlY3JldFN1YmtleVBhY2tldC5wdWJsaWNQYXJhbXMgPSB7XG4gICAgb2lkOiBzdWJPaWQsXG4gICAgUTogbmV3IFVpbnQ4QXJyYXkocHVibGljU3ViS2V5KSxcbiAgfTtcbiAgLy8gQHRzLWlnbm9yZSAtIHNhbWUgYXMgYWJvdmVcbiAgYXdhaXQgc2VjcmV0U3Via2V5UGFja2V0LmNvbXB1dGVGaW5nZXJwcmludEFuZEtleUlEKCk7XG5cbiAgLy8gU3ViLWtleSBzaWduYXR1cmUgcGFja2V0LlxuICBjb25zdCBzdWJLZXlkYXRhVG9TaWduID0ge1xuICAgIGtleTogcHJpdmF0ZUtleS5rZXlQYWNrZXQsXG4gICAgYmluZDogcHJpdmF0ZUtleS5rZXlQYWNrZXQsXG4gIH07XG4gIGNvbnN0IHN1YmtleVNpZ25hdHVyZVBhY2tldCA9IG5ldyBwZ3AuU2lnbmF0dXJlUGFja2V0KCk7XG4gIHN1YmtleVNpZ25hdHVyZVBhY2tldC5zaWduYXR1cmVUeXBlID0gcGdwLmVudW1zLnNpZ25hdHVyZS5zdWJrZXlCaW5kaW5nO1xuICBzdWJrZXlTaWduYXR1cmVQYWNrZXQucHVibGljS2V5QWxnb3JpdGhtID0gcGdwLmVudW1zLnB1YmxpY0tleS5lY2RzYTtcbiAgc3Via2V5U2lnbmF0dXJlUGFja2V0Lmhhc2hBbGdvcml0aG0gPSBwZ3AuZW51bXMuaGFzaC5zaGEyNTY7XG4gIHN1YmtleVNpZ25hdHVyZVBhY2tldC5rZXlGbGFncyA9IG5ldyBVaW50OEFycmF5KFtwZ3AuZW51bXMua2V5RmxhZ3MuYXV0aGVudGljYXRpb25dKTtcblxuICAvLyBTaWduIHRoZSBzdWJrZXlcbiAgLy8gQHRzLWlnbm9yZSAtIHNpZ24gc3VwcG9ydHMgYXJiaXRyYXJ5IGRhdGEgZm9yIDJuZCBwYXJhbTogaHR0cHM6Ly9kb2NzLm9wZW5wZ3Bqcy5vcmcvU2lnbmF0dXJlUGFja2V0Lmh0bWxcbiAgYXdhaXQgc3Via2V5U2lnbmF0dXJlUGFja2V0LnNpZ24ocHJpdmF0ZUtleS5rZXlQYWNrZXQsIHN1YktleWRhdGFUb1NpZ24sIGRhdGVUaW1lKTtcblxuICAvLyBBc3NlbWJsZSBwYWNrZXRzIHRvZ2V0aGVyLlxuICBjb25zdCBuZXdLZXlQa3RMaXN0ID0gbmV3IHBncC5QYWNrZXRMaXN0KCk7XG4gIGNvbnN0IHByaXZhdGVLZXlQa3RzID0gcHJpdmF0ZUtleS50b1BhY2tldExpc3QoKTtcbiAgcHJpdmF0ZUtleVBrdHMuZm9yRWFjaCgocGFja2V0KSA9PiBuZXdLZXlQa3RMaXN0LnB1c2gocGFja2V0KSk7XG4gIG5ld0tleVBrdExpc3QucHVzaChzZWNyZXRTdWJrZXlQYWNrZXQsIHN1YmtleVNpZ25hdHVyZVBhY2tldCk7XG4gIC8vIEB0cy1pZ25vcmUgLSBzdXBwb3J0cyBwYWNrZXQgbGlzdCBhcyBjdG9yIHBhcmFtOiBodHRwczovL2RvY3Mub3BlbnBncGpzLm9yZy9Qcml2YXRlS2V5Lmh0bWxcbiAgY29uc3QgbmV3UHViS2V5ID0gbmV3IHBncC5Qcml2YXRlS2V5KG5ld0tleVBrdExpc3QpLnRvUHVibGljKCk7XG5cbiAgaWYgKCEoYXdhaXQgbmV3UHViS2V5LnZlcmlmeVByaW1hcnlVc2VyKFtwcml2YXRlS2V5XSkpWzBdLnZhbGlkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbmNvcnJlY3Qgc2lnbmF0dXJlJyk7XG4gIH1cblxuICByZXR1cm4gbmV3UHViS2V5LmFybW9yKCkucmVwbGFjZSgvXFxyXFxuL2csICdcXG4nKTtcbn1cblxuLyoqXG4gKiBFbmNyeXB0cyBzdHJpbmcgdXNpbmcgZ3BnIGtleVxuICogQERFUFJFQ0FURUQgLSBzaG91bGQgdXNlIGVuY3J5cHRBbmRTaWduVGV4dCBpbnN0ZWFkIGZvciBhZGRlZCBzZWN1cml0eVxuICpcbiAqIEBwYXJhbSB0ZXh0IHN0cmluZyB0byBlbmNyeXB0XG4gKiBAcGFyYW0ga2V5IGVuY3J5cHRpb24ga2V5XG4gKiBAcmV0dXJuIHtzdHJpbmd9IGVuY3J5cHRlZCBzdHJpbmdcbiAqXG4gKiBUT0RPKEJHLTQ3MTcwKTogRGVsZXRlIG9uY2UgZ3BnIHNpZ25hdHVyZXMgYXJlIGZ1bGx5IHN1cHBvcnRlZFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZW5jcnlwdFRleHQodGV4dDogc3RyaW5nLCBrZXk6IEtleSk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IG1lc3NhZ2VUb0VuY3J5cHQgPSBhd2FpdCBjcmVhdGVNZXNzYWdlKHtcbiAgICB0ZXh0LFxuICB9KTtcbiAgcmV0dXJuIGF3YWl0IGVuY3J5cHQoe1xuICAgIG1lc3NhZ2U6IG1lc3NhZ2VUb0VuY3J5cHQsXG4gICAgZW5jcnlwdGlvbktleXM6IFtrZXldLFxuICAgIGZvcm1hdDogJ2FybW9yZWQnLFxuICAgIGNvbmZpZzoge1xuICAgICAgcmVqZWN0Q3VydmVzOiBuZXcgU2V0KCksXG4gICAgICBzaG93VmVyc2lvbjogZmFsc2UsXG4gICAgICBzaG93Q29tbWVudDogZmFsc2UsXG4gICAgfSxcbiAgfSk7XG59XG5cbi8qKlxuICogRW5jcnlwdHMgYW5kIHNpZ25zIGEgc3RyaW5nXG4gKiBAcGFyYW0gdGV4dCBzdHJpbmcgdG8gZW5jcnlwdCBhbmQgc2lnblxuICogQHBhcmFtIHB1YmxpY0FybW9yIHB1YmxpYyBrZXkgdG8gZW5jcnlwdCB3aXRoXG4gKiBAcGFyYW0gcHJpdmF0ZUFybW9yIHByaXZhdGUga2V5IHRvIHNpZ24gd2l0aFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZW5jcnlwdEFuZFNpZ25UZXh0KHRleHQ6IHN0cmluZywgcHVibGljQXJtb3I6IHN0cmluZywgcHJpdmF0ZUFybW9yOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBwdWJsaWNLZXkgPSBhd2FpdCByZWFkS2V5KHsgYXJtb3JlZEtleTogcHVibGljQXJtb3IgfSk7XG4gIGNvbnN0IHByaXZhdGVLZXkgPSBhd2FpdCByZWFkUHJpdmF0ZUtleSh7IGFybW9yZWRLZXk6IHByaXZhdGVBcm1vciB9KTtcblxuICBjb25zdCBtZXNzYWdlID0gYXdhaXQgY3JlYXRlTWVzc2FnZSh7IHRleHQgfSk7XG5cbiAgY29uc3Qgc2lnbmVkTWVzc2FnZSA9IGF3YWl0IGVuY3J5cHQoe1xuICAgIG1lc3NhZ2UsXG4gICAgZW5jcnlwdGlvbktleXM6IHB1YmxpY0tleSxcbiAgICBzaWduaW5nS2V5czogcHJpdmF0ZUtleSxcbiAgICBmb3JtYXQ6ICdhcm1vcmVkJyxcbiAgICBjb25maWc6IHtcbiAgICAgIHJlamVjdEN1cnZlczogbmV3IFNldCgpLFxuICAgICAgc2hvd1ZlcnNpb246IGZhbHNlLFxuICAgICAgc2hvd0NvbW1lbnQ6IGZhbHNlLFxuICAgIH0sXG4gIH0pO1xuXG4gIHJldHVybiBzaWduZWRNZXNzYWdlO1xufVxuXG4vKipcbiAqIFJlYWRzIGEgc2lnbmVkIGFuZCBlbmNyeXB0ZWQgbWVzc2FnZVxuICpcbiAqIEBwYXJhbSBzaWduZWQgc2lnbmVkIGFuZCBlbmNyeXB0ZWQgbWVzc2FnZVxuICogQHBhcmFtIHB1YmxpY0FybW9yIHB1YmxpYyBrZXkgdG8gdmVyaWZ5IHNpZ25hdHVyZVxuICogQHBhcmFtIHByaXZhdGVBcm1vciBwcml2YXRlIGtleSB0byBkZWNyeXB0IG1lc3NhZ2VcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRTaWduZWRNZXNzYWdlKHNpZ25lZDogc3RyaW5nLCBwdWJsaWNBcm1vcjogc3RyaW5nLCBwcml2YXRlQXJtb3I6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IHB1YmxpY0tleSA9IGF3YWl0IHJlYWRLZXkoeyBhcm1vcmVkS2V5OiBwdWJsaWNBcm1vciB9KTtcbiAgY29uc3QgcHJpdmF0ZUtleSA9IGF3YWl0IHJlYWRQcml2YXRlS2V5KHsgYXJtb3JlZEtleTogcHJpdmF0ZUFybW9yIH0pO1xuXG4gIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCByZWFkTWVzc2FnZSh7IGFybW9yZWRNZXNzYWdlOiBzaWduZWQgfSk7XG4gIGNvbnN0IGRlY3J5cHRlZCA9IGF3YWl0IGRlY3J5cHQoe1xuICAgIG1lc3NhZ2UsXG4gICAgdmVyaWZpY2F0aW9uS2V5czogcHVibGljS2V5LFxuICAgIGRlY3J5cHRpb25LZXlzOiBwcml2YXRlS2V5LFxuICAgIGV4cGVjdFNpZ25lZDogdHJ1ZSxcbiAgfSk7XG5cbiAgcmV0dXJuIGRlY3J5cHRlZC5kYXRhO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlcyBhIHNpZ25hdHVyZVxuICpcbiAqIEBwYXJhbSB0ZXh0IHN0cmluZyB0byBnZW5lcmF0ZSBhIHNpZ25hdHVyZSBmb3JcbiAqIEBwYXJhbSBwcml2YXRlQXJtb3IgcHJpdmF0ZSBrZXkgYXMgYXJtb3JlZCBzdHJpbmdcbiAqIEByZXR1cm4ge3N0cmluZ30gYXJtb3JlZCBzaWduYXR1cmUgc3RyaW5nXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaWduVGV4dCh0ZXh0OiBzdHJpbmcsIHByaXZhdGVBcm1vcjogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgcHJpdmF0ZUtleSA9IGF3YWl0IHJlYWRQcml2YXRlS2V5KHsgYXJtb3JlZEtleTogcHJpdmF0ZUFybW9yIH0pO1xuICBjb25zdCBtZXNzYWdlID0gYXdhaXQgY3JlYXRlTWVzc2FnZSh7IHRleHQgfSk7XG4gIGNvbnN0IHNpZ25hdHVyZSA9IGF3YWl0IHNpZ24oe1xuICAgIG1lc3NhZ2UsXG4gICAgc2lnbmluZ0tleXM6IHByaXZhdGVLZXksXG4gICAgZm9ybWF0OiAnYXJtb3JlZCcsXG4gICAgZGV0YWNoZWQ6IHRydWUsXG4gIH0pO1xuXG4gIHJldHVybiBzaWduYXR1cmU7XG59XG5cbi8qKlxuICogVmVyaWZpZXMgc2lnbmF0dXJlIHdhcyBnZW5lcmF0ZWQgYnkgdGhlIHB1YmxpYyBrZXkgYW5kIG1hdGNoZXMgdGhlIGV4cGVjdGVkIHRleHRcbiAqXG4gKiBAcGFyYW0gdGV4dCB0ZXh0IHRoYXQgdGhlIHNpZ25hdHVyZSB3YXMgZm9yXG4gKiBAcGFyYW0gYXJtb3JlZFNpZ25hdHVyZSBzaWduZWQgbWVzc2FnZSBhcyBhbiBhcm1vcmVkIHN0cmluZ1xuICogQHBhcmFtIHB1YmxpY0FybW9yIHB1YmxpYyBrZXkgdGhhdCBnZW5lcmF0ZWQgdGhlIHNpZ25hdHVyZVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdmVyaWZ5U2lnbmF0dXJlKHRleHQ6IHN0cmluZywgYXJtb3JlZFNpZ25hdHVyZTogc3RyaW5nLCBwdWJsaWNBcm1vcjogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGNvbnN0IHB1YmxpY0tleSA9IGF3YWl0IHJlYWRLZXkoeyBhcm1vcmVkS2V5OiBwdWJsaWNBcm1vciB9KTtcbiAgY29uc3Qgc2lnbmF0dXJlID0gYXdhaXQgcmVhZFNpZ25hdHVyZSh7IGFybW9yZWRTaWduYXR1cmUgfSk7XG4gIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBjcmVhdGVNZXNzYWdlKHsgdGV4dCB9KTtcbiAgY29uc3QgdmVyaWZpY2F0aW9uUmVzdWx0ID0gYXdhaXQgdmVyaWZ5KHtcbiAgICBtZXNzYWdlLFxuICAgIHNpZ25hdHVyZSxcbiAgICB2ZXJpZmljYXRpb25LZXlzOiBwdWJsaWNLZXksXG4gIH0pO1xuXG4gIGlmICh2ZXJpZmljYXRpb25SZXN1bHQuc2lnbmF0dXJlcy5sZW5ndGggIT09IDEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgbnVtYmVyIG9mIHNpZ25hdHVyZXMnKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgYXdhaXQgdmVyaWZpY2F0aW9uUmVzdWx0LnNpZ25hdHVyZXNbMF0udmVyaWZpZWQ7XG4gICAgcmV0dXJuIHRleHQgPT09IHZlcmlmaWNhdGlvblJlc3VsdC5kYXRhO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
|
|
213
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmdwZ1V0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3V0aWxzL29wZW5ncGdVdGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsc0RBQXNEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXRELHFDQVdpQjtBQUNqQiw2Q0FBK0I7QUFHL0IsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLHlCQUF5QixDQUFDLENBQUM7QUFFbEQ7Ozs7R0FJRztBQUNJLEtBQUssVUFBVSxpQkFBaUIsQ0FBQyxLQUFnQjtJQUN0RCxNQUFNLFNBQVMsR0FBRyxNQUFNLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMvQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFO1FBQ25ELE1BQU0sSUFBSSxLQUFLLENBQUMsc0VBQXNFLENBQUMsQ0FBQztLQUN6RjtJQUVELE1BQU0saUJBQWlCLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxjQUF3QixDQUFDO0lBQ2pFLE9BQU8sTUFBTSxpQkFBTyxDQUFDLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQztBQUMxRCxDQUFDO0FBUkQsOENBUUM7QUFFRDs7Ozs7O0dBTUc7QUFDSSxLQUFLLFVBQVUsZ0JBQWdCLENBQUMsWUFBb0IsRUFBRSxNQUFjO0lBQ3pFLE1BQU0sVUFBVSxHQUFHLE1BQU0saUJBQU8sQ0FBQyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQy9ELE1BQU0sUUFBUSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDNUIsTUFBTSxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQ25CLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQzNCLE1BQU0sQ0FBQyxzQ0FBc0MsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFL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RUFBRSxTQUFTO1FBQ2pCLFFBQVEsRUFBRSxJQUFJO0tBQ2YsQ0FBQyxDQUFDO0lBRUgsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQVhELDRCQVdDO0FBRUQ7Ozs7OztHQU1HO0FBQ0ksS0FBSyxVQUFVLGVBQWUsQ0FBQyxJQUFZLEVBQUUsZ0JBQXdCLEVBQUUsV0FBbUI7SUFDL0YsTUFBTSxTQUFTLEdBQUcsTUFBTSxpQkFBTyxDQUFDLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDN0QsTUFBTSxTQUFTLEdBQUcsTUFBTSx1QkFBYSxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBQzVELE1BQU0sT0FBTyxHQUFHLE1BQU0sdUJBQWEsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUMsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLGdCQUFNLENBQUM7UUFDdEMsT0FBTztRQUNQLFNBQVM7UUFDVCxnQkFBZ0IsRUFBRSxTQUFTO0tBQzVCLENBQUMsQ0FBQztJQUVILElBQUksa0JBQWtCLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDOUMsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0tBQ2pEO0lBRUQsSUFBSTtRQUNGLE1BQU0sa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUNoRCxPQUFPLElBQUksS0FBSyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7S0FDekM7SUFBQyxNQUFNO1FBQ04sT0FBTyxLQUFLLENBQUM7S0FDZDtBQUNILENBQUM7QUFwQkQsMENBb0JDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50ICovXG5cbmltcG9ydCB7XG4gIGNyZWF0ZU1lc3NhZ2UsXG4gIGRlY3J5cHQsXG4gIGVuY3J5cHQsXG4gIEtleSxcbiAgcmVhZEtleSxcbiAgcmVhZE1lc3NhZ2UsXG4gIHJlYWRQcml2YXRlS2V5LFxuICByZWFkU2lnbmF0dXJlLFxuICBzaWduLFxuICB2ZXJpZnksXG59IGZyb20gJ29wZW5wZ3AnO1xuaW1wb3J0ICogYXMgcGdwIGZyb20gJ29wZW5wZ3AnO1xuaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnLi4vYml0Z29CYXNlJztcblxuY29uc3Qgc29kaXVtID0gcmVxdWlyZSgnbGlic29kaXVtLXdyYXBwZXJzLXN1bW8nKTtcblxuLyoqXG4gKiBGZXRjaGVzIEJpdEdvJ3MgcHViaWMgZ3BnIGtleSB1c2VkIGluIE1QQyBmbG93c1xuICogQHBhcmFtIHtCaXRHb30gYml0Z28gQml0R28gb2JqZWN0XG4gKiBAcmV0dXJuIHtLZXl9IHB1YmxpYyBncGcga2V5XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRCaXRnb0dwZ1B1YktleShiaXRnbzogQml0R29CYXNlKTogUHJvbWlzZTxLZXk+IHtcbiAgY29uc3QgY29uc3RhbnRzID0gYXdhaXQgYml0Z28uZmV0Y2hDb25zdGFudHMoKTtcbiAgaWYgKCFjb25zdGFudHMubXBjIHx8ICFjb25zdGFudHMubXBjLmJpdGdvUHVibGljS2V5KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gY3JlYXRlIE1QQyBrZXlzIC0gYml0Z29QdWJsaWNLZXkgaXMgbWlzc2luZyBmcm9tIGNvbnN0YW50cycpO1xuICB9XG5cbiAgY29uc3QgYml0Z29QdWJsaWNLZXlTdHIgPSBjb25zdGFudHMubXBjLmJpdGdvUHVibGljS2V5IGFzIHN0cmluZztcbiAgcmV0dXJuIGF3YWl0IHJlYWRLZXkoeyBhcm1vcmVkS2V5OiBiaXRnb1B1YmxpY0tleVN0ciB9KTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIEVkZHNhIEtleVNoYXJlIFByb29mIGJ5IGFwcGVuZGluZyBhbiBlZDI1NTE5IHN1YmtleSB0byBhbiBhcm1vcmVkIGdwZyBwcml2YXRlIGtleS5cbiAqXG4gKiBAcGFyYW0gcHJpdmF0ZUFybW9yIGdwZyBwcml2YXRlIGtleSBpbiBhcm1vciBmb3JtYXRcbiAqIEBwYXJhbSB1VmFsdWUgdSB2YWx1ZSBmcm9tIGFuIEVkZHNhIGtleXNoYXJlXG4gKiBAcmV0dXJuIHtzdHJpbmd9IGtleXNoYXJlIHByb29mXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVTaGFyZVByb29mKHByaXZhdGVBcm1vcjogc3RyaW5nLCB1VmFsdWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IHByaXZhdGVLZXkgPSBhd2FpdCByZWFkS2V5KHsgYXJtb3JlZEtleTogcHJpdmF0ZUFybW9yIH0pO1xuICBjb25zdCBkYXRlVGltZSA9IG5ldyBEYXRlKCk7XG4gIGF3YWl0IHNvZGl1bS5yZWFkeTtcbiAgY29uc3Qgc3ViS2V5VmFsID0gQnVmZmVyLmZyb20oXG4gICAgc29kaXVtLmNyeXB0b19zY2FsYXJtdWx0X2VkMjU1MTlfYmFzZV9ub2NsYW1wKEJ1ZmZlci5mcm9tKHVWYWx1ZSwgJ2hleCcpLCAndWludDhhcnJheScpXG4gICk7XG5cbiAgLy8gU3ViLWtleSAoZW5jcnlwdGlvbiBrZXkpIHBhY2tldC5cbiAgY29uc3QgcHVibGljU3ViS2V5ID0gbmV3IFVpbnQ4QXJyYXkoWy4uLm5ldyBVaW50OEFycmF5KFsweDQwXSksIC4uLm5ldyBVaW50OEFycmF5KHN1YktleVZhbCldKTtcbiAgY29uc3Qgc3ViT2lkID0gWzB4MmIsIDB4MDYsIDB4MDEsIDB4MDQsIDB4MDEsIDB4ZGEsIDB4NDcsIDB4MGYsIDB4MDFdO1xuXG4gIC8vIEB0cy1pZ25vcmVcbiAgc3ViT2lkLndyaXRlID0gKCkgPT4gbmV3IFVpbnQ4QXJyYXkoQnVmZmVyLmZyb20oJzA5MmIwNjAxMDQwMWRhNDcwZjAxJywgJ2hleCcpKTtcbiAgLy8gQHRzLWlnbm9yZSAtIHR5cGUgaW5jb25zaXN0ZW5jeSwgdGhpcyBjdG9yIHN1cHBvcnRzIGEgZGF0ZSBwYXJhbTogaHR0cHM6Ly9kb2NzLm9wZW5wZ3Bqcy5vcmcvU2VjcmV0U3Via2V5UGFja2V0Lmh0bWxcbiAgY29uc3Qgc2VjcmV0U3Via2V5UGFja2V0ID0gbmV3IHBncC5TZWNyZXRTdWJrZXlQYWNrZXQoZGF0ZVRpbWUpO1xuICBzZWNyZXRTdWJrZXlQYWNrZXQuYWxnb3JpdGhtID0gcGdwLmVudW1zLnB1YmxpY0tleS5lZGRzYTtcbiAgLy8gQHRzLWlnbm9yZSAtIHNhbWUgYXMgYWJvdmVcbiAgc2VjcmV0U3Via2V5UGFja2V0LmlzRW5jcnlwdGVkID0gZmFsc2U7XG4gIHNlY3JldFN1YmtleVBhY2tldC5wdWJsaWNQYXJhbXMgPSB7XG4gICAgb2lkOiBzdWJPaWQsXG4gICAgUTogbmV3IFVpbnQ4QXJyYXkocHVibGljU3ViS2V5KSxcbiAgfTtcbiAgLy8gQHRzLWlnbm9yZSAtIHNhbWUgYXMgYWJvdmVcbiAgYXdhaXQgc2VjcmV0U3Via2V5UGFja2V0LmNvbXB1dGVGaW5nZXJwcmludEFuZEtleUlEKCk7XG5cbiAgLy8gU3ViLWtleSBzaWduYXR1cmUgcGFja2V0LlxuICBjb25zdCBzdWJLZXlkYXRhVG9TaWduID0ge1xuICAgIGtleTogcHJpdmF0ZUtleS5rZXlQYWNrZXQsXG4gICAgYmluZDogcHJpdmF0ZUtleS5rZXlQYWNrZXQsXG4gIH07XG4gIGNvbnN0IHN1YmtleVNpZ25hdHVyZVBhY2tldCA9IG5ldyBwZ3AuU2lnbmF0dXJlUGFja2V0KCk7XG4gIHN1YmtleVNpZ25hdHVyZVBhY2tldC5zaWduYXR1cmVUeXBlID0gcGdwLmVudW1zLnNpZ25hdHVyZS5zdWJrZXlCaW5kaW5nO1xuICBzdWJrZXlTaWduYXR1cmVQYWNrZXQucHVibGljS2V5QWxnb3JpdGhtID0gcGdwLmVudW1zLnB1YmxpY0tleS5lY2RzYTtcbiAgc3Via2V5U2lnbmF0dXJlUGFja2V0Lmhhc2hBbGdvcml0aG0gPSBwZ3AuZW51bXMuaGFzaC5zaGEyNTY7XG4gIHN1YmtleVNpZ25hdHVyZVBhY2tldC5rZXlGbGFncyA9IG5ldyBVaW50OEFycmF5KFtwZ3AuZW51bXMua2V5RmxhZ3MuYXV0aGVudGljYXRpb25dKTtcblxuICAvLyBTaWduIHRoZSBzdWJrZXlcbiAgLy8gQHRzLWlnbm9yZSAtIHNpZ24gc3VwcG9ydHMgYXJiaXRyYXJ5IGRhdGEgZm9yIDJuZCBwYXJhbTogaHR0cHM6Ly9kb2NzLm9wZW5wZ3Bqcy5vcmcvU2lnbmF0dXJlUGFja2V0Lmh0bWxcbiAgYXdhaXQgc3Via2V5U2lnbmF0dXJlUGFja2V0LnNpZ24ocHJpdmF0ZUtleS5rZXlQYWNrZXQsIHN1YktleWRhdGFUb1NpZ24sIGRhdGVUaW1lKTtcblxuICAvLyBBc3NlbWJsZSBwYWNrZXRzIHRvZ2V0aGVyLlxuICBjb25zdCBuZXdLZXlQa3RMaXN0ID0gbmV3IHBncC5QYWNrZXRMaXN0KCk7XG4gIGNvbnN0IHByaXZhdGVLZXlQa3RzID0gcHJpdmF0ZUtleS50b1BhY2tldExpc3QoKTtcbiAgcHJpdmF0ZUtleVBrdHMuZm9yRWFjaCgocGFja2V0KSA9PiBuZXdLZXlQa3RMaXN0LnB1c2gocGFja2V0KSk7XG4gIG5ld0tleVBrdExpc3QucHVzaChzZWNyZXRTdWJrZXlQYWNrZXQsIHN1YmtleVNpZ25hdHVyZVBhY2tldCk7XG4gIC8vIEB0cy1pZ25vcmUgLSBzdXBwb3J0cyBwYWNrZXQgbGlzdCBhcyBjdG9yIHBhcmFtOiBodHRwczovL2RvY3Mub3BlbnBncGpzLm9yZy9Qcml2YXRlS2V5Lmh0bWxcbiAgY29uc3QgbmV3UHViS2V5ID0gbmV3IHBncC5Qcml2YXRlS2V5KG5ld0tleVBrdExpc3QpLnRvUHVibGljKCk7XG5cbiAgaWYgKCEoYXdhaXQgbmV3UHViS2V5LnZlcmlmeVByaW1hcnlVc2VyKFtwcml2YXRlS2V5XSkpWzBdLnZhbGlkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbmNvcnJlY3Qgc2lnbmF0dXJlJyk7XG4gIH1cblxuICByZXR1cm4gbmV3UHViS2V5LmFybW9yKCkucmVwbGFjZSgvXFxyXFxuL2csICdcXG4nKTtcbn1cblxuLyoqXG4gKiBFbmNyeXB0cyBzdHJpbmcgdXNpbmcgZ3BnIGtleVxuICogQERFUFJFQ0FURUQgLSBzaG91bGQgdXNlIGVuY3J5cHRBbmRTaWduVGV4dCBpbnN0ZWFkIGZvciBhZGRlZCBzZWN1cml0eVxuICpcbiAqIEBwYXJhbSB0ZXh0IHN0cmluZyB0byBlbmNyeXB0XG4gKiBAcGFyYW0ga2V5IGVuY3J5cHRpb24ga2V5XG4gKiBAcmV0dXJuIHtzdHJpbmd9IGVuY3J5cHRlZCBzdHJpbmdcbiAqXG4gKiBUT0RPKEJHLTQ3MTcwKTogRGVsZXRlIG9uY2UgZ3BnIHNpZ25hdHVyZXMgYXJlIGZ1bGx5IHN1cHBvcnRlZFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZW5jcnlwdFRleHQodGV4dDogc3RyaW5nLCBrZXk6IEtleSk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IG1lc3NhZ2VUb0VuY3J5cHQgPSBhd2FpdCBjcmVhdGVNZXNzYWdlKHtcbiAgICB0ZXh0LFxuICB9KTtcbiAgcmV0dXJuIGF3YWl0IGVuY3J5cHQoe1xuICAgIG1lc3NhZ2U6IG1lc3NhZ2VUb0VuY3J5cHQsXG4gICAgZW5jcnlwdGlvbktleXM6IFtrZXldLFxuICAgIGZvcm1hdDogJ2FybW9yZWQnLFxuICAgIGNvbmZpZzoge1xuICAgICAgcmVqZWN0Q3VydmVzOiBuZXcgU2V0KCksXG4gICAgICBzaG93VmVyc2lvbjogZmFsc2UsXG4gICAgICBzaG93Q29tbWVudDogZmFsc2UsXG4gICAgfSxcbiAgfSk7XG59XG5cbi8qKlxuICogRW5jcnlwdHMgYW5kIHNpZ25zIGEgc3RyaW5nXG4gKiBAcGFyYW0gdGV4dCBzdHJpbmcgdG8gZW5jcnlwdCBhbmQgc2lnblxuICogQHBhcmFtIHB1YmxpY0FybW9yIHB1YmxpYyBrZXkgdG8gZW5jcnlwdCB3aXRoXG4gKiBAcGFyYW0gcHJpdmF0ZUFybW9yIHByaXZhdGUga2V5IHRvIHNpZ24gd2l0aFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZW5jcnlwdEFuZFNpZ25UZXh0KHRleHQ6IHN0cmluZywgcHVibGljQXJtb3I6IHN0cmluZywgcHJpdmF0ZUFybW9yOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBwdWJsaWNLZXkgPSBhd2FpdCByZWFkS2V5KHsgYXJtb3JlZEtleTogcHVibGljQXJtb3IgfSk7XG4gIGNvbnN0IHByaXZhdGVLZXkgPSBhd2FpdCByZWFkUHJpdmF0ZUtleSh7IGFybW9yZWRLZXk6IHByaXZhdGVBcm1vciB9KTtcblxuICBjb25zdCBtZXNzYWdlID0gYXdhaXQgY3JlYXRlTWVzc2FnZSh7IHRleHQgfSk7XG5cbiAgY29uc3Qgc2lnbmVkTWVzc2FnZSA9IGF3YWl0IGVuY3J5cHQoe1xuICAgIG1lc3NhZ2UsXG4gICAgZW5jcnlwdGlvbktleXM6IHB1YmxpY0tleSxcbiAgICBzaWduaW5nS2V5czogcHJpdmF0ZUtleSxcbiAgICBmb3JtYXQ6ICdhcm1vcmVkJyxcbiAgICBjb25maWc6IHtcbiAgICAgIHJlamVjdEN1cnZlczogbmV3IFNldCgpLFxuICAgICAgc2hvd1ZlcnNpb246IGZhbHNlLFxuICAgICAgc2hvd0NvbW1lbnQ6IGZhbHNlLFxuICAgIH0sXG4gIH0pO1xuXG4gIHJldHVybiBzaWduZWRNZXNzYWdlO1xufVxuXG4vKipcbiAqIFJlYWRzIGEgc2lnbmVkIGFuZCBlbmNyeXB0ZWQgbWVzc2FnZVxuICpcbiAqIEBwYXJhbSBzaWduZWQgc2lnbmVkIGFuZCBlbmNyeXB0ZWQgbWVzc2FnZVxuICogQHBhcmFtIHB1YmxpY0FybW9yIHB1YmxpYyBrZXkgdG8gdmVyaWZ5IHNpZ25hdHVyZVxuICogQHBhcmFtIHByaXZhdGVBcm1vciBwcml2YXRlIGtleSB0byBkZWNyeXB0IG1lc3NhZ2VcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRTaWduZWRNZXNzYWdlKHNpZ25lZDogc3RyaW5nLCBwdWJsaWNBcm1vcjogc3RyaW5nLCBwcml2YXRlQXJtb3I6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IHB1YmxpY0tleSA9IGF3YWl0IHJlYWRLZXkoeyBhcm1vcmVkS2V5OiBwdWJsaWNBcm1vciB9KTtcbiAgY29uc3QgcHJpdmF0ZUtleSA9IGF3YWl0IHJlYWRQcml2YXRlS2V5KHsgYXJtb3JlZEtleTogcHJpdmF0ZUFybW9yIH0pO1xuXG4gIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCByZWFkTWVzc2FnZSh7IGFybW9yZWRNZXNzYWdlOiBzaWduZWQgfSk7XG4gIGNvbnN0IGRlY3J5cHRlZCA9IGF3YWl0IGRlY3J5cHQoe1xuICAgIG1lc3NhZ2UsXG4gICAgdmVyaWZpY2F0aW9uS2V5czogcHVibGljS2V5LFxuICAgIGRlY3J5cHRpb25LZXlzOiBwcml2YXRlS2V5LFxuICAgIGV4cGVjdFNpZ25lZDogdHJ1ZSxcbiAgICBjb25maWc6IHsgcmVqZWN0Q3VydmVzOiBuZXcgU2V0KCkgfSxcbiAgfSk7XG5cbiAgcmV0dXJuIGRlY3J5cHRlZC5kYXRhO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlcyBhIHNpZ25hdHVyZVxuICpcbiAqIEBwYXJhbSB0ZXh0IHN0cmluZyB0byBnZW5lcmF0ZSBhIHNpZ25hdHVyZSBmb3JcbiAqIEBwYXJhbSBwcml2YXRlQXJtb3IgcHJpdmF0ZSBrZXkgYXMgYXJtb3JlZCBzdHJpbmdcbiAqIEByZXR1cm4ge3N0cmluZ30gYXJtb3JlZCBzaWduYXR1cmUgc3RyaW5nXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaWduVGV4dCh0ZXh0OiBzdHJpbmcsIHByaXZhdGVBcm1vcjogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgcHJpdmF0ZUtleSA9IGF3YWl0IHJlYWRQcml2YXRlS2V5KHsgYXJtb3JlZEtleTogcHJpdmF0ZUFybW9yIH0pO1xuICBjb25zdCBtZXNzYWdlID0gYXdhaXQgY3JlYXRlTWVzc2FnZSh7IHRleHQgfSk7XG4gIGNvbnN0IHNpZ25hdHVyZSA9IGF3YWl0IHNpZ24oe1xuICAgIG1lc3NhZ2UsXG4gICAgc2lnbmluZ0tleXM6IHByaXZhdGVLZXksXG4gICAgZm9ybWF0OiAnYXJtb3JlZCcsXG4gICAgZGV0YWNoZWQ6IHRydWUsXG4gIH0pO1xuXG4gIHJldHVybiBzaWduYXR1cmU7XG59XG5cbi8qKlxuICogVmVyaWZpZXMgc2lnbmF0dXJlIHdhcyBnZW5lcmF0ZWQgYnkgdGhlIHB1YmxpYyBrZXkgYW5kIG1hdGNoZXMgdGhlIGV4cGVjdGVkIHRleHRcbiAqXG4gKiBAcGFyYW0gdGV4dCB0ZXh0IHRoYXQgdGhlIHNpZ25hdHVyZSB3YXMgZm9yXG4gKiBAcGFyYW0gYXJtb3JlZFNpZ25hdHVyZSBzaWduZWQgbWVzc2FnZSBhcyBhbiBhcm1vcmVkIHN0cmluZ1xuICogQHBhcmFtIHB1YmxpY0FybW9yIHB1YmxpYyBrZXkgdGhhdCBnZW5lcmF0ZWQgdGhlIHNpZ25hdHVyZVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdmVyaWZ5U2lnbmF0dXJlKHRleHQ6IHN0cmluZywgYXJtb3JlZFNpZ25hdHVyZTogc3RyaW5nLCBwdWJsaWNBcm1vcjogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGNvbnN0IHB1YmxpY0tleSA9IGF3YWl0IHJlYWRLZXkoeyBhcm1vcmVkS2V5OiBwdWJsaWNBcm1vciB9KTtcbiAgY29uc3Qgc2lnbmF0dXJlID0gYXdhaXQgcmVhZFNpZ25hdHVyZSh7IGFybW9yZWRTaWduYXR1cmUgfSk7XG4gIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBjcmVhdGVNZXNzYWdlKHsgdGV4dCB9KTtcbiAgY29uc3QgdmVyaWZpY2F0aW9uUmVzdWx0ID0gYXdhaXQgdmVyaWZ5KHtcbiAgICBtZXNzYWdlLFxuICAgIHNpZ25hdHVyZSxcbiAgICB2ZXJpZmljYXRpb25LZXlzOiBwdWJsaWNLZXksXG4gIH0pO1xuXG4gIGlmICh2ZXJpZmljYXRpb25SZXN1bHQuc2lnbmF0dXJlcy5sZW5ndGggIT09IDEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgbnVtYmVyIG9mIHNpZ25hdHVyZXMnKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgYXdhaXQgdmVyaWZpY2F0aW9uUmVzdWx0LnNpZ25hdHVyZXNbMF0udmVyaWZpZWQ7XG4gICAgcmV0dXJuIHRleHQgPT09IHZlcmlmaWNhdGlvblJlc3VsdC5kYXRhO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import TssUtils, { TssUtilsTypes, EddsaUtilsTypes } from './eddsa';
|
|
2
2
|
export * as ECDSAUtils from './ecdsa';
|
|
3
|
-
export * as EDDSAUtils from './
|
|
3
|
+
export * as EDDSAUtils from './eddsa';
|
|
4
4
|
/** @deprecated use EDDSAUtils */
|
|
5
5
|
export { TssUtils };
|
|
6
6
|
/** @deprecated use EDDSAUtilsTypes */
|
|
@@ -28,7 +28,7 @@ exports.TssUtils = eddsa_1.default;
|
|
|
28
28
|
Object.defineProperty(exports, "TssUtilsTypes", { enumerable: true, get: function () { return eddsa_1.TssUtilsTypes; } });
|
|
29
29
|
Object.defineProperty(exports, "EddsaUtilsTypes", { enumerable: true, get: function () { return eddsa_1.EddsaUtilsTypes; } });
|
|
30
30
|
exports.ECDSAUtils = __importStar(require("./ecdsa"));
|
|
31
|
-
exports.EDDSAUtils = __importStar(require("./
|
|
31
|
+
exports.EDDSAUtils = __importStar(require("./eddsa"));
|
|
32
32
|
exports.BaseTssUtils = __importStar(require("./baseTSSUtils"));
|
|
33
33
|
__exportStar(require("./baseTypes"), exports);
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYml0Z28vdXRpbHMvdHNzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxpREFBbUU7QUFLMUQsbUJBTEYsZUFBUSxDQUtFO0FBRVIsOEZBUFUscUJBQWEsT0FPVjtBQUNiLGdHQVJ5Qix1QkFBZSxPQVF6QjtBQVB4QixzREFBc0M7QUFDdEMsc0RBQXNDO0FBWXRDLCtEQUErQztBQUMvQyw4Q0FBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVHNzVXRpbHMsIHsgVHNzVXRpbHNUeXBlcywgRWRkc2FVdGlsc1R5cGVzIH0gZnJvbSAnLi9lZGRzYSc7XG5leHBvcnQgKiBhcyBFQ0RTQVV0aWxzIGZyb20gJy4vZWNkc2EnO1xuZXhwb3J0ICogYXMgRUREU0FVdGlscyBmcm9tICcuL2VkZHNhJztcblxuLyoqIEBkZXByZWNhdGVkIHVzZSBFRERTQVV0aWxzICovXG5leHBvcnQgeyBUc3NVdGlscyB9O1xuLyoqIEBkZXByZWNhdGVkIHVzZSBFRERTQVV0aWxzVHlwZXMgKi9cbmV4cG9ydCB7IFRzc1V0aWxzVHlwZXMgfTtcbmV4cG9ydCB7IEVkZHNhVXRpbHNUeXBlcyB9O1xuXG4vLyBleHBvcnRpbmcgdGhpcyB0eXBlcyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS5cbi8qKiBAZGVwcmVjYXRlZCB1c2UgRUREU0FVdGlscy48dHlwZS9tZXRob2Q+ICovXG5leHBvcnQgeyBJVHNzVXRpbHMsIElFZGRzYVV0aWxzLCBUeFJlcXVlc3QsIEVkZHNhVW5zaWduZWRUcmFuc2FjdGlvbiB9IGZyb20gJy4vZWRkc2EnO1xuXG5leHBvcnQgKiBhcyBCYXNlVHNzVXRpbHMgZnJvbSAnLi9iYXNlVFNTVXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9iYXNlVHlwZXMnO1xuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iWallets.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/wallet/iWallets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,wBAAwB;IACvC,YAAY,EAAE,SAAS,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"iWallets.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/wallet/iWallets.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaVdhbGxldHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vd2FsbGV0L2lXYWxsZXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJUmVxdWVzdFRyYWNlciB9IGZyb20gJy4uLy4uL2FwaSc7XG5pbXBvcnQgeyBLZXljaGFpbnNUcmlwbGV0IH0gZnJvbSAnLi4vYmFzZUNvaW4nO1xuaW1wb3J0IHsgSVdhbGxldCwgUGFnaW5hdGlvbk9wdGlvbnMgfSBmcm9tICcuL2lXYWxsZXQnO1xuaW1wb3J0IHsgV2FsbGV0IH0gZnJvbSAnLi93YWxsZXQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFdhbGxldFdpdGhLZXljaGFpbnMgZXh0ZW5kcyBLZXljaGFpbnNUcmlwbGV0IHtcbiAgd2FsbGV0OiBJV2FsbGV0O1xuICB3YXJuaW5nPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldFdhbGxldE9wdGlvbnMge1xuICBhbGxUb2tlbnM/
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaVdhbGxldHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vd2FsbGV0L2lXYWxsZXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJUmVxdWVzdFRyYWNlciB9IGZyb20gJy4uLy4uL2FwaSc7XG5pbXBvcnQgeyBLZXljaGFpbnNUcmlwbGV0IH0gZnJvbSAnLi4vYmFzZUNvaW4nO1xuaW1wb3J0IHsgSVdhbGxldCwgUGFnaW5hdGlvbk9wdGlvbnMgfSBmcm9tICcuL2lXYWxsZXQnO1xuaW1wb3J0IHsgV2FsbGV0IH0gZnJvbSAnLi93YWxsZXQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFdhbGxldFdpdGhLZXljaGFpbnMgZXh0ZW5kcyBLZXljaGFpbnNUcmlwbGV0IHtcbiAgd2FsbGV0OiBJV2FsbGV0O1xuICB3YXJuaW5nPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldFdhbGxldE9wdGlvbnMge1xuICBhbGxUb2tlbnM/OiBib29sZWFuO1xuICByZXFJZD86IElSZXF1ZXN0VHJhY2VyO1xuICBpZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW5lcmF0ZU1wY1dhbGxldE9wdGlvbnMge1xuICBtdWx0aXNpZ1R5cGU6ICdvbmNoYWluJyB8ICd0c3MnIHwgJ2Jsc2RrZyc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHBhc3NwaHJhc2U6IHN0cmluZztcbiAgb3JpZ2luYWxQYXNzY29kZUVuY3J5cHRpb25Db2RlPzogc3RyaW5nO1xuICBlbnRlcnByaXNlPzogc3RyaW5nO1xuICB3YWxsZXRWZXJzaW9uPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRlV2FsbGV0T3B0aW9ucyB7XG4gIGxhYmVsPzogc3RyaW5nO1xuICBwYXNzcGhyYXNlPzogc3RyaW5nO1xuICB1c2VyS2V5Pzogc3RyaW5nO1xuICBiYWNrdXBYcHViPzogc3RyaW5nO1xuICBiYWNrdXBYcHViUHJvdmlkZXI/OiBzdHJpbmc7XG4gIHBhc3Njb2RlRW5jcnlwdGlvbkNvZGU/OiBzdHJpbmc7XG4gIGVudGVycHJpc2U/OiBzdHJpbmc7XG4gIGRpc2FibGVUcmFuc2FjdGlvbk5vdGlmaWNhdGlvbnM/OiBzdHJpbmc7XG4gIGdhc1ByaWNlPzogc3RyaW5nO1xuICBlaXAxNTU5Pzoge1xuICAgIG1heEZlZVBlckdhczogc3RyaW5nO1xuICAgIG1heFByaW9yaXR5RmVlUGVyR2FzOiBzdHJpbmc7XG4gIH07XG4gIHdhbGxldFZlcnNpb24/OiBudW1iZXI7XG4gIGRpc2FibGVLUlNFbWFpbD86IGJvb2xlYW47XG4gIGtyc1NwZWNpZmljPzoge1xuICAgIFtpbmRleDogc3RyaW5nXTogYm9vbGVhbiB8IHN0cmluZyB8IG51bWJlcjtcbiAgfTtcbiAgY29sZERlcml2YXRpb25TZWVkPzogc3RyaW5nO1xuICByb290UHJpdmF0ZUtleT86IHN0cmluZztcbiAgbXVsdGlzaWdUeXBlPzogJ29uY2hhaW4nIHwgJ3RzcycgfCAnYmxzZGtnJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRXYWxsZXRCeUFkZHJlc3NPcHRpb25zIHtcbiAgYWRkcmVzcz86IHN0cmluZztcbiAgcmVxSWQ/OiBJUmVxdWVzdFRyYWNlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVTaGFyZU9wdGlvbnMge1xuICB3YWxsZXRTaGFyZUlkPzogc3RyaW5nO1xuICBzdGF0ZT86IHN0cmluZztcbiAgZW5jcnlwdGVkUHJ2Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFjY2VwdFNoYXJlT3B0aW9ucyB7XG4gIG92ZXJyaWRlRW5jcnlwdGVkUHJ2Pzogc3RyaW5nO1xuICB3YWxsZXRTaGFyZUlkPzogc3RyaW5nO1xuICB1c2VyUGFzc3dvcmQ/OiBzdHJpbmc7XG4gIG5ld1dhbGxldFBhc3NwaHJhc2U/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRkV2FsbGV0T3B0aW9ucyB7XG4gIGNvaW5TcGVjaWZpYz86IGFueTtcbiAgZW50ZXJwcmlzZT86IHN0cmluZztcbiAgaXNDb2xkPzogSXNDb2xkO1xuICBpc0N1c3RvZGlhbD86IElzQ3VzdG9kaWFsO1xuICBrZXlzPzogc3RyaW5nW107XG4gIGtleVNpZ25hdHVyZXM/OiBLZXlTaWduYXR1cmVzO1xuICBsYWJlbDogc3RyaW5nO1xuICBtdWx0aXNpZ1R5cGU/OiAnb25jaGFpbicgfCAndHNzJyB8ICdibHNka2cnO1xuICBhZGRyZXNzPzogc3RyaW5nO1xuICBtPzogbnVtYmVyO1xuICBuPzogbnVtYmVyO1xuICB0YWdzPzogc3RyaW5nW107XG4gIHR5cGU/OiBzdHJpbmc7XG4gIHdhbGxldFZlcnNpb24/OiBudW1iZXI7XG4gIGVpcDE1NTk/OiBFaXAxNTU5O1xuICBjbGllbnRGbGFncz86IHN0cmluZ1tdO1xuICAvLyBBZGRpdGlvbmFsIHBhcmFtcyBuZWVkZWQgZm9yIHhycFxuICByb290UHViPzogc3RyaW5nO1xuICAvLyBJbiBYUlAsIFhMTSBhbmQgQ1NQUiB0aGlzIHByaXZhdGUga2V5IGlzIHVzZWQgb25seSBmb3Igd2FsbGV0IGNyZWF0aW9uIHB1cnBvc2VzLFxuICAvLyBvbmNlIHRoZSB3YWxsZXQgaXMgaW5pdGlhbGl6ZWQgdGhlbiB3ZSB1cGRhdGUgaXRzIHdlaWdodCB0byAwIG1ha2luZyBpdCBhbiBpbnZhbGlkIGtleS5cbiAgLy8gaHR0cHM6Ly93d3cuc3RlbGxhci5vcmcvZGV2ZWxvcGVycy9ndWlkZXMvY29uY2VwdHMvbXVsdGktc2lnLmh0bWwjYWRkaXRpb25hbC1zaWduaW5nLWtleXNcbiAgcm9vdFByaXZhdGVLZXk/OiBzdHJpbmc7XG4gIGluaXRpYWxpemF0aW9uVHhzPzogYW55O1xuICBkaXNhYmxlVHJhbnNhY3Rpb25Ob3RpZmljYXRpb25zPzogYm9vbGVhbjtcbiAgZ2FzUHJpY2U/OiBudW1iZXI7XG59XG5cbnR5cGUgS2V5U2lnbmF0dXJlcyA9IHtcbiAgYmFja3VwPzogc3RyaW5nO1xuICBiaXRnbz86IHN0cmluZztcbn07XG5cbi8qKiBAZGVwcmVjYXRlZCAqL1xudHlwZSBJc0NvbGQgPSBib29sZWFuO1xuXG4vKiogQGRlcHJlY2F0ZWQgKi9cbnR5cGUgSXNDdXN0b2RpYWwgPSBib29sZWFuO1xuXG50eXBlIEVpcDE1NTkgPSB7XG4gIG1heFByaW9yaXR5RmVlUGVyR2FzOiBzdHJpbmc7XG4gIG1heEZlZVBlckdhczogc3RyaW5nO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBMaXN0V2FsbGV0T3B0aW9ucyBleHRlbmRzIFBhZ2luYXRpb25PcHRpb25zIHtcbiAgc2tpcD86IG51bWJlcjtcbiAgZ2V0YmFsYW5jZXM/OiBib29sZWFuO1xuICBhbGxUb2tlbnM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElXYWxsZXRzIHtcbiAgZ2V0KHBhcmFtcz86IEdldFdhbGxldE9wdGlvbnMpOiBQcm9taXNlPFdhbGxldD47XG4gIGxpc3QocGFyYW1zPzogTGlzdFdhbGxldE9wdGlvbnMpOiBQcm9taXNlPHsgd2FsbGV0czogSVdhbGxldFtdIH0+O1xuICBhZGQocGFyYW1zPzogQWRkV2FsbGV0T3B0aW9ucyk6IFByb21pc2U8YW55PjtcbiAgZ2VuZXJhdGVXYWxsZXQocGFyYW1zPzogR2VuZXJhdGVXYWxsZXRPcHRpb25zKTogUHJvbWlzZTxXYWxsZXRXaXRoS2V5Y2hhaW5zPjtcbiAgbGlzdFNoYXJlcyhwYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IFByb21pc2U8YW55PjtcbiAgZ2V0U2hhcmUocGFyYW1zPzogeyB3YWxsZXRTaGFyZUlkPzogc3RyaW5nIH0pOiBQcm9taXNlPGFueT47XG4gIHVwZGF0ZVNoYXJlKHBhcmFtcz86IFVwZGF0ZVNoYXJlT3B0aW9ucyk6IFByb21pc2U8YW55PjtcbiAgcmVzZW5kU2hhcmVJbnZpdGUocGFyYW1zPzogeyB3YWxsZXRTaGFyZUlkPzogc3RyaW5nIH0pOiBQcm9taXNlPGFueT47XG4gIGNhbmNlbFNoYXJlKHBhcmFtcz86IHsgd2FsbGV0U2hhcmVJZD86IHN0cmluZyB9KTogUHJvbWlzZTxhbnk+O1xuICBhY2NlcHRTaGFyZShwYXJhbXM/OiBBY2NlcHRTaGFyZU9wdGlvbnMpOiBQcm9taXNlPGFueT47XG4gIGdldFdhbGxldChwYXJhbXM/OiBHZXRXYWxsZXRPcHRpb25zKTogUHJvbWlzZTxJV2FsbGV0PjtcbiAgZ2V0V2FsbGV0QnlBZGRyZXNzKHBhcmFtcz86IEdldFdhbGxldEJ5QWRkcmVzc09wdGlvbnMpOiBQcm9taXNlPElXYWxsZXQ+O1xuICBnZXRUb3RhbEJhbGFuY2VzKHBhcmFtcz86IFJlY29yZDxzdHJpbmcsIG5ldmVyPik6IFByb21pc2U8YW55Pjtcbn1cbiJdfQ==
|