@bitgo-beta/sdk-coin-sol 2.4.3-beta.1271 → 2.4.3-beta.1273
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/lib/iface.d.ts +1 -0
- package/dist/src/lib/iface.d.ts.map +1 -1
- package/dist/src/lib/iface.js +1 -1
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilder.js +5 -4
- package/dist/src/sol.d.ts +7 -0
- package/dist/src/sol.d.ts.map +1 -1
- package/dist/src/sol.js +60 -1
- package/dist/test/unit/versionedTransaction.js +4 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -6
|
@@ -66,6 +66,7 @@ describe('Sol Jupiter Swap Transaction', () => {
|
|
|
66
66
|
addressLookupTables,
|
|
67
67
|
staticAccountKeys,
|
|
68
68
|
messageHeader: originalDeserialized.message.header,
|
|
69
|
+
recentBlockhash: originalDeserialized.message.recentBlockhash,
|
|
69
70
|
};
|
|
70
71
|
const factory = (0, getBuilderFactory_1.getBuilderFactory)('tsol');
|
|
71
72
|
const txBuilder = factory.getCustomInstructionBuilder();
|
|
@@ -171,7 +172,7 @@ describe('Sol Jupiter Swap Transaction', () => {
|
|
|
171
172
|
originalInstruction.programIdIndex.should.equal(builtData.staticAccountKeys.indexOf('MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr'));
|
|
172
173
|
originalInstruction.accountKeyIndexes[0].should.equal(builtData.staticAccountKeys.indexOf(testData.authAccount.pub));
|
|
173
174
|
});
|
|
174
|
-
it('should not inject nonce advance when using
|
|
175
|
+
it('should not inject nonce advance when using recentBlockhash (no durableNonceParams)', async function () {
|
|
175
176
|
const versionedTransactionData = {
|
|
176
177
|
versionedInstructions: [
|
|
177
178
|
{
|
|
@@ -187,6 +188,7 @@ describe('Sol Jupiter Swap Transaction', () => {
|
|
|
187
188
|
numReadonlySignedAccounts: 0,
|
|
188
189
|
numReadonlyUnsignedAccounts: 0,
|
|
189
190
|
},
|
|
191
|
+
recentBlockhash: testData.blockHashes.validBlockHashes[0],
|
|
190
192
|
};
|
|
191
193
|
const factory = (0, getBuilderFactory_1.getBuilderFactory)('tsol');
|
|
192
194
|
const txBuilder = factory.getCustomInstructionBuilder();
|
|
@@ -202,4 +204,4 @@ describe('Sol Jupiter Swap Transaction', () => {
|
|
|
202
204
|
builtData.staticAccountKeys.length.should.equal(2);
|
|
203
205
|
});
|
|
204
206
|
});
|
|
205
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbmVkVHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvdmVyc2lvbmVkVHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsbUNBQWlEO0FBQ2pELDJEQUE2QztBQUM3QywyREFBd0Q7QUFDeEQsZ0RBQTBCO0FBQzFCLE1BQU0sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBRTVELFFBQVEsQ0FBQyw4QkFBOEIsRUFBRSxHQUFHLEVBQUU7SUFDNUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxhQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3hELE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUV2QyxFQUFFLENBQUMsaUVBQWlFLEVBQUUsS0FBSztRQUN6RSx1Q0FBdUM7UUFDdkMsTUFBTSxvQkFBb0IsR0FDeEIsMG9DQUEwb0MsQ0FBQztRQUU3b0MsTUFBTSxvQkFBb0IsR0FBRyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRTNHLE1BQU0scUJBQXFCLEdBQUcsb0JBQW9CLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMzRixjQUFjLEVBQUUsRUFBRSxDQUFDLGNBQWM7WUFDakMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDLGlCQUFpQjtZQUN2QyxJQUFJLEVBQUUsY0FBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO1NBQzdCLENBQUMsQ0FBQyxDQUFDO1FBRUosTUFBTSxtQkFBbUIsR0FDdkIsb0JBQW9C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LCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgeyBLZXlQYWlyLCBUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uL3NyYyc7XG5pbXBvcnQgKiBhcyB0ZXN0RGF0YSBmcm9tICcuLi9yZXNvdXJjZXMvc29sJztcbmltcG9ydCB7IGdldEJ1aWxkZXJGYWN0b3J5IH0gZnJvbSAnLi9nZXRCdWlsZGVyRmFjdG9yeSc7XG5pbXBvcnQgYmFzZTU4IGZyb20gJ2JzNTgnO1xuY29uc3QgeyBWZXJzaW9uZWRUcmFuc2FjdGlvbiB9ID0gcmVxdWlyZSgnQHNvbGFuYS93ZWIzLmpzJyk7XG5cbmRlc2NyaWJlKCdTb2wgSnVwaXRlciBTd2FwIFRyYW5zYWN0aW9uJywgKCkgPT4ge1xuICBjb25zdCB3YWxsZXRLZXlQYWlyID0gbmV3IEtleVBhaXIodGVzdERhdGEuYXV0aEFjY291bnQpO1xuICBjb25zdCB3YWxsZXQgPSB3YWxsZXRLZXlQYWlyLmdldEtleXMoKTtcblxuICBpdCgnc2hvdWxkIHByZXNlcnZlIGluc3RydWN0aW9ucyBhbmQgQUxUcyB3aGVuIGJ1aWxkaW5nIGFuZCBzaWduaW5nJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIC8vIEp1cGl0ZXIgU3dhcCBUcmFuc2FjdGlvbiAoVmVyc2lvbmVkKVxuICAgIGNvbnN0IHZlcnNpb25lZFRyYW5zYWN0aW9uID1cbiAgICAgICdBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNBQVFBRkRUV29NNURCQ0duN2NuNWFWNTZmb21vNm1oRDJLMWM1WFloUUlhbjQxRTZkRzl0MDZveDZETWR2VnVCblNFQVR5Ti84cUlxMjQ2aU81YURtMWptODJ4NHdNNDBGUjhRN3hTWlVwVXRCMGxidmVsYVo0Nm9SUTJHTTloV0dNdWtIRzFFVXNBMVI5Wk81NUNsVXZOTXl3OElRT3JmUm11M09ORzUwb05lbHVUNExnYU9hY04rSTRkMEhTdGN1K29oMG5vNFhYZ1ZVd2p6azUrZWdpVWFRRGtDQ2pYQWxTREFiNDZhaExBZldlS09xek8vSEMvejJXZ1JrOFJTMXljNmhlTVp6QmJSM1NQRHdyTnZXbENaR2FFVGFpeGlIOXVmZE9KODIzR3YrTW54SDFTT3U2VENzWDErVE1za2o5NEQzTkVsRHBhZG84b2tGUWJVdXphaWpVOW9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFJeVhKWTlPSklueHV6MFFLUlNPRFlNTFdoT1oydjhRaEFTT2U5amI2ZmhaQXdaR2IrVWhGekwvN0syNmNzT2I1N3lNNWJ2Rjl4SnJMRU9iT2tBQUFBQUVlZFZiOGpIQWJ1NTB4VzdPYUJVSC9iR3kzcVAwamxFQ3NjMmlWcndUandiZDl1SFhaYUdUMmN2aFJzN3JlYXdjdElYdFgxczNrVHFNOVlWKy93Q3ArbUdwRjRJNFpyVjEyYmFwSjdwNjFCYWJ0M3R5N0hZRFVLdE1zbzM4T1lnSENnQUZBb295QkFBS0FBa0RvUTRCQUFBQUFBQUlBZ0FGREFJQUFBQXdLeUlBQUFBQUFBc0ZCUUFnREFnSmsvRjdaUFNFcm5iL0NRWUFCd0FkQ0F3QkFRcy9IZ0FGRGcwSElCME1EQndMSmc4bUVCSU9EU0FkRVNZZURBd2tKZ0lEQmdzbUd5WVdHUTRFSUNVYUpoNE1EQ1FtR0JjQkN5SWpEQ0VlQkEwVkV4UWZNdEdZVTVOOC90anBDMEFOQXdBQUFBQUFXcXdBQUFBQUFBQXlBQUFBQUFBREFBQUFKaXdhQUFNbTVBd0FBZ29RSndJRERBTUZBQUFCQ1FRcHY1VUhLaysvQk45eGRaUG5PTHpNSVNjb0ZjSkhHb0RaK2ZWVnNOU0VKUUkwSXdVQUtBNENGeW85U0Rqc1BkZldYQWRNRjBtdTIreFpidzlyYlI2cnpOQUVlRmtMbXlLd0JHQm1ZV1VBTUhDSjZPaTBBMVFqcGpwMVl2M3hQK3NQTG0ycUovL1RLWmQ1WjlLemp2RUR3YjNDQTc3RHdPdEtkMU1DdTZoNFhKakM0MnljOFRjTDkybmh6RlVSNkhMVzNYckFJWk92Qm82S2k1Q1JqUU9NazVRPSc7XG5cbiAgICBjb25zdCBvcmlnaW5hbERlc2VyaWFsaXplZCA9IFZlcnNpb25lZFRyYW5zYWN0aW9uLmRlc2VyaWFsaXplKEJ1ZmZlci5mcm9tKHZlcnNpb25lZFRyYW5zYWN0aW9uLCAnYmFzZTY0JykpO1xuXG4gICAgY29uc3QgdmVyc2lvbmVkSW5zdHJ1Y3Rpb25zID0gb3JpZ2luYWxEZXNlcmlhbGl6ZWQubWVzc2FnZS5jb21waWxlZEluc3RydWN0aW9ucy5tYXAoKGl4KSA9PiAoe1xuICAgICAgcHJvZ3JhbUlkSW5kZXg6IGl4LnByb2dyYW1JZEluZGV4LFxuICAgICAgYWNjb3VudEtleUluZGV4ZXM6IGl4LmFjY291bnRLZXlJbmRleGVzLFxuICAgICAgZGF0YTogYmFzZTU4LmVuY29kZShpeC5kYXRhKSxcbiAgICB9KSk7XG5cbiAgICBjb25zdCBhZGRyZXNzTG9va3VwVGFibGVzID1cbiAgICAgIG9yaWdpbmFsRGVzZXJpYWxpemVkLm1lc3NhZ2UuYWRkcmVzc1RhYmxlTG9va3Vwcz8ubWFwKChsb29rdXApID0+ICh7XG4gICAgICAgIGFjY291bnRLZXk6IGxvb2t1cC5hY2NvdW50S2V5LnRvQmFzZTU4KCksXG4gICAgICAgIHdyaXRhYmxlSW5kZXhlczogbG9va3VwLndyaXRhYmxlSW5kZXhlcyxcbiAgICAgICAgcmVhZG9ubHlJbmRleGVzOiBsb29rdXAucmVhZG9ubHlJbmRleGVzLFxuICAgICAgfSkpIHx8IFtdO1xuXG4gICAgY29uc3Qgc3RhdGljQWNjb3VudEtleXMgPSBvcmlnaW5hbERlc2VyaWFsaXplZC5tZXNzYWdlLnN0YXRpY0FjY291bnRLZXlzLm1hcCgoa2V5KSA9PiBrZXkudG9CYXNlNTgoKSk7XG4gICAgc3RhdGljQWNjb3VudEtleXNbMF0gPSB0ZXN0RGF0YS5hdXRoQWNjb3VudC5wdWI7IC8vIFJlcGxhY2UgZmVlIHBheWVyIHdpdGggb3VyIHRlc3QgYWNjb3VudFxuXG4gICAgY29uc3QgdmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhID0ge1xuICAgICAgdmVyc2lvbmVkSW5zdHJ1Y3Rpb25zLFxuICAgICAgYWRkcmVzc0xvb2t1cFRhYmxlcyxcbiAgICAgIHN0YXRpY0FjY291bnRLZXlzLFxuICAgICAgbWVzc2FnZUhlYWRlcjogb3JpZ2luYWxEZXNlcmlhbGl6ZWQubWVzc2FnZS5oZWFkZXIsXG4gICAgfTtcblxuICAgIGNvbnN0IGZhY3RvcnkgPSBnZXRCdWlsZGVyRmFjdG9yeSgndHNvbCcpO1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IGZhY3RvcnkuZ2V0Q3VzdG9tSW5zdHJ1Y3Rpb25CdWlsZGVyKCk7XG5cbiAgICAvLyBCdWlsZCB0cmFuc2FjdGlvbiBmcm9tIHZlcnNpb25lZCB0cmFuc2FjdGlvbiBkYXRhXG4gICAgdHhCdWlsZGVyLmZyb21WZXJzaW9uZWRUcmFuc2FjdGlvbkRhdGEodmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhKTtcbiAgICB0eEJ1aWxkZXIubm9uY2UodGVzdERhdGEuYmxvY2tIYXNoZXMudmFsaWRCbG9ja0hhc2hlc1swXSk7XG5cbiAgICAvLyBCdWlsZCB1bnNpZ25lZCB0cmFuc2FjdGlvblxuICAgIGNvbnN0IHR4VW5zaWduZWQgPSAoYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCkpIGFzIFRyYW5zYWN0aW9uO1xuICAgIHNob3VsZC5leGlzdCh0eFVuc2lnbmVkKTtcbiAgICB0eFVuc2lnbmVkLmlzVmVyc2lvbmVkVHJhbnNhY3Rpb24oKS5zaG91bGQuYmUudHJ1ZSgpO1xuICAgIHNob3VsZC5leGlzdCh0eFVuc2lnbmVkLnRvQnJvYWRjYXN0Rm9ybWF0KCkpO1xuXG4gICAgLy8gU2lnbiB0aGUgdHJhbnNhY3Rpb25cbiAgICB0eEJ1aWxkZXIuc2lnbih7IGtleTogd2FsbGV0LnBydiB9KTtcbiAgICBjb25zdCB0eCA9IChhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKSkgYXMgVHJhbnNhY3Rpb247XG4gICAgY29uc3QgcmF3VHggPSB0eC50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuICAgIHR4LmlzVmVyc2lvbmVkVHJhbnNhY3Rpb24oKS5zaG91bGQuYmUudHJ1ZSgpO1xuICAgIHNob3VsZC5leGlzdChyYXdUeCk7XG5cbiAgICBjb25zdCB0eEJ1aWxkZXIyID0gZmFjdG9yeS5nZXRDdXN0b21JbnN0cnVjdGlvbkJ1aWxkZXIoKTtcbiAgICB0eEJ1aWxkZXIyLmZyb21WZXJzaW9uZWRUcmFuc2FjdGlvbkRhdGEodmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhKTtcbiAgICB0eEJ1aWxkZXIyLm5vbmNlKHRlc3REYXRhLmJsb2NrSGFzaGVzLnZhbGlkQmxvY2tIYXNoZXNbMF0pO1xuICAgIGNvbnN0IHR4MiA9IGF3YWl0IHR4QnVpbGRlcjIuYnVpbGQoKTtcblxuICAgIHNob3VsZC5lcXVhbCh0eDIuc2lnbmFibGVQYXlsb2FkLnRvU3RyaW5nKCdoZXgnKSwgdHhVbnNpZ25lZC5zaWduYWJsZVBheWxvYWQudG9TdHJpbmcoJ2hleCcpKTtcbiAgICBzaG91bGQuZXF1YWwodHgyLnR5cGUsIHR4VW5zaWduZWQudHlwZSk7XG5cbiAgICAvLyBWZXJpZnkgd2UgY2FuIGFkZCBzaWduYXR1cmUgbWFudWFsbHlcbiAgICBjb25zdCBzaWduZWQgPSB0eC5zaWduYXR1cmVbMF07XG4gICAgY29uc3QgdHhCdWlsZGVyMyA9IGZhY3RvcnkuZ2V0Q3VzdG9tSW5zdHJ1Y3Rpb25CdWlsZGVyKCk7XG4gICAgdHhCdWlsZGVyMy5mcm9tVmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhKHZlcnNpb25lZFRyYW5zYWN0aW9uRGF0YSk7XG4gICAgdHhCdWlsZGVyMy5ub25jZSh0ZXN0RGF0YS5ibG9ja0hhc2hlcy52YWxpZEJsb2NrSGFzaGVzWzBdKTtcbiAgICBhd2FpdCB0eEJ1aWxkZXIzLmFkZFNpZ25hdHVyZSh7IHB1Yjogd2FsbGV0LnB1YiB9LCBCdWZmZXIuZnJvbShiYXNlNTguZGVjb2RlKHNpZ25lZCkpKTtcblxuICAgIGNvbnN0IHNpZ25lZFR4ID0gYXdhaXQgdHhCdWlsZGVyMy5idWlsZCgpO1xuICAgIHNob3VsZC5lcXVhbChzaWduZWRUeC50eXBlLCB0eC50eXBlKTtcblxuICAgIGNvbnN0IHJhd1NpZ25lZFR4ID0gc2lnbmVkVHgudG9Ccm9hZGNhc3RGb3JtYXQoKTtcbiAgICBzaG91bGQuZXF1YWwocmF3U2lnbmVkVHgsIHJhd1R4KTtcblxuICAgIGNvbnN0IHNpZ25lZERlc2VyaWFsaXplZCA9IFZlcnNpb25lZFRyYW5zYWN0aW9uLmRlc2VyaWFsaXplKEJ1ZmZlci5mcm9tKHJhd1R4LCAnYmFzZTY0JykpO1xuXG4gICAgLy8gVmVyaWZ5IGFsbCBpbnN0cnVjdGlvbnMgYXJlIHByZXNlcnZlZFxuICAgIGNvbnN0IG9yaWdJbnN0cnVjdGlvbnMgPSBvcmlnaW5hbERlc2VyaWFsaXplZC5tZXNzYWdlLmNvbXBpbGVkSW5zdHJ1Y3Rpb25zO1xuICAgIGNvbnN0IHNpZ25lZEluc3RydWN0aW9ucyA9IHNpZ25lZERlc2VyaWFsaXplZC5tZXNzYWdlLmNvbXBpbGVkSW5zdHJ1Y3Rpb25zO1xuICAgIHNob3VsZC5lcXVhbChvcmlnSW5zdHJ1Y3Rpb25zLmxlbmd0aCwgc2lnbmVkSW5zdHJ1Y3Rpb25zLmxlbmd0aCwgJ051bWJlciBvZiBpbnN0cnVjdGlvbnMgc2hvdWxkIG1hdGNoJyk7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9yaWdJbnN0cnVjdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHNob3VsZC5lcXVhbChcbiAgICAgICAgb3JpZ0luc3RydWN0aW9uc1tpXS5wcm9ncmFtSWRJbmRleCxcbiAgICAgICAgc2lnbmVkSW5zdHJ1Y3Rpb25zW2ldLnByb2dyYW1JZEluZGV4LFxuICAgICAgICBgSW5zdHJ1Y3Rpb24gJHtpfTogcHJvZ3JhbUlkSW5kZXggc2hvdWxkIG1hdGNoYFxuICAgICAgKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwoXG4gICAgICAgIG9yaWdJbnN0cnVjdGlvbnNbaV0uYWNjb3VudEtleUluZGV4ZXMsXG4gICAgICAgIHNpZ25lZEluc3RydWN0aW9uc1tpXS5hY2NvdW50S2V5SW5kZXhlcyxcbiAgICAgICAgYEluc3RydWN0aW9uICR7aX06IGFjY291bnRLZXlJbmRleGVzIHNob3VsZCBtYXRjaGBcbiAgICAgICk7XG4gICAgICBzaG91bGQuZXF1YWwoXG4gICAgICAgIEJ1ZmZlci5mcm9tKG9yaWdJbnN0cnVjdGlvbnNbaV0uZGF0YSkudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICBCdWZmZXIuZnJvbShzaWduZWRJbnN0cnVjdGlvbnNbaV0uZGF0YSkudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICBgSW5zdHJ1Y3Rpb24gJHtpfTogZGF0YSBzaG91bGQgbWF0Y2hgXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIFZlcmlmeSBhbGwgQUxUcyBhcmUgcHJlc2VydmVkXG4gICAgY29uc3Qgb3JpZ0FMVHMgPSBvcmlnaW5hbERlc2VyaWFsaXplZC5tZXNzYWdlLmFkZHJlc3NUYWJsZUxvb2t1cHMgfHwgW107XG4gICAgY29uc3Qgc2lnbmVkQUxUcyA9IHNpZ25lZERlc2VyaWFsaXplZC5tZXNzYWdlLmFkZHJlc3NUYWJsZUxvb2t1cHMgfHwgW107XG4gICAgc2hvdWxkLmVxdWFsKG9yaWdBTFRzLmxlbmd0aCwgc2lnbmVkQUxUcy5sZW5ndGgsICdOdW1iZXIgb2YgQUxUcyBzaG91bGQgbWF0Y2gnKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb3JpZ0FMVHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHNob3VsZC5lcXVhbChcbiAgICAgICAgb3JpZ0FMVHNbaV0uYWNjb3VudEtleS50b0Jhc2U1OCgpLFxuICAgICAgICBzaWduZWRBTFRzW2ldLmFjY291bnRLZXkudG9CYXNlNTgoKSxcbiAgICAgICAgYEFMVCAke2l9OiBhY2NvdW50S2V5IHNob3VsZCBtYXRjaGBcbiAgICAgICk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKFxuICAgICAgICBvcmlnQUxUc1tpXS53cml0YWJsZUluZGV4ZXMsXG4gICAgICAgIHNpZ25lZEFMVHNbaV0ud3JpdGFibGVJbmRleGVzLFxuICAgICAgICBgQUxUICR7aX06IHdyaXRhYmxlSW5kZXhlcyBzaG91bGQgbWF0Y2hgXG4gICAgICApO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbChcbiAgICAgICAgb3JpZ0FMVHNbaV0ucmVhZG9ubHlJbmRleGVzLFxuICAgICAgICBzaWduZWRBTFRzW2ldLnJlYWRvbmx5SW5kZXhlcyxcbiAgICAgICAgYEFMVCAke2l9OiByZWFkb25seUluZGV4ZXMgc2hvdWxkIG1hdGNoYFxuICAgICAgKTtcbiAgICB9XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYXV0b21hdGljYWxseSBpbmplY3Qgbm9uY2UgYWR2YW5jZSBpbnN0cnVjdGlvbiB3aGVuIHVzaW5nIGR1cmFibGUgbm9uY2Ugd2l0aCB2ZXJzaW9uZWQgdHJhbnNhY3Rpb25zJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIC8vIFNpbXBsZSB0cmFuc2FjdGlvbiB3aXRoIG9uZSBtZW1vIGluc3RydWN0aW9uXG4gICAgY29uc3QgdmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhID0ge1xuICAgICAgdmVyc2lvbmVkSW5zdHJ1Y3Rpb25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm9ncmFtSWRJbmRleDogMSxcbiAgICAgICAgICBhY2NvdW50S2V5SW5kZXhlczogWzBdLFxuICAgICAgICAgIGRhdGE6IGJhc2U1OC5lbmNvZGUoQnVmZmVyLmZyb20oJ0hlbGxvIFZlcnNpb25lZCBUeCcsICd1dGYtOCcpKSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBhZGRyZXNzTG9va3VwVGFibGVzOiBbXSxcbiAgICAgIHN0YXRpY0FjY291bnRLZXlzOiBbdGVzdERhdGEuYXV0aEFjY291bnQucHViLCAnTWVtb1NxNGdxQUJBWEtiOTZxbkg4VHlzTmNXeE15V0NxWGdETEdtZmNIciddLFxuICAgICAgbWVzc2FnZUhlYWRlcjoge1xuICAgICAgICBudW1SZXF1aXJlZFNpZ25hdHVyZXM6IDEsXG4gICAgICAgIG51bVJlYWRvbmx5U2lnbmVkQWNjb3VudHM6IDAsXG4gICAgICAgIG51bVJlYWRvbmx5VW5zaWduZWRBY2NvdW50czogMCxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGNvbnN0IGR1cmFibGVOb25jZVBhcmFtcyA9IHtcbiAgICAgIHdhbGxldE5vbmNlQWRkcmVzczogJ0dIdFhRQnNvWkhWbk5GYTlZZXZBenhOelFCejdDVjVoajZiU2UzdTUyVzluJyxcbiAgICAgIGF1dGhXYWxsZXRBZGRyZXNzOiAnOFk3Uk02SmZjWDRBU1NOQmtya3JtU2NxM1o5VVdWNENKQnd0ZlNOZ3FUTjInLFxuICAgIH07XG5cbiAgICBjb25zdCBmYWN0b3J5ID0gZ2V0QnVpbGRlckZhY3RvcnkoJ3Rzb2wnKTtcbiAgICBjb25zdCB0eEJ1aWxkZXIgPSBmYWN0b3J5LmdldEN1c3RvbUluc3RydWN0aW9uQnVpbGRlcigpO1xuXG4gICAgLy8gUHJvdmlkaW5nIGR1cmFibGVOb25jZVBhcmFtcyB0cmlnZ2VycyBhdXRvbWF0aWMgbm9uY2UgYWR2YW5jZSBpbmplY3Rpb25cbiAgICB0eEJ1aWxkZXIubm9uY2UodGVzdERhdGEuYmxvY2tIYXNoZXMudmFsaWRCbG9ja0hhc2hlc1swXSwgZHVyYWJsZU5vbmNlUGFyYW1zKTtcbiAgICB0eEJ1aWxkZXIuZnJvbVZlcnNpb25lZFRyYW5zYWN0aW9uRGF0YSh2ZXJzaW9uZWRUcmFuc2FjdGlvbkRhdGEpO1xuXG4gICAgY29uc3QgdHggPSAoYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCkpIGFzIFRyYW5zYWN0aW9uO1xuICAgIGNvbnN0IGJ1aWx0RGF0YSA9IHR4LmdldFZlcnNpb25lZFRyYW5zYWN0aW9uRGF0YSgpO1xuXG4gICAgc2hvdWxkLmV4aXN0KGJ1aWx0RGF0YSk7XG5cbiAgICAvLyBOb25jZSBhZHZhbmNlIGluc3RydWN0aW9uIHNob3VsZCBiZSBwcmVwZW5kZWRcbiAgICBidWlsdERhdGEhLnZlcnNpb25lZEluc3RydWN0aW9ucy5sZW5ndGguc2hvdWxkLmVxdWFsKDIpO1xuICAgIGNvbnN0IG5vbmNlSW5zdHJ1Y3Rpb24gPSBidWlsdERhdGEhLnZlcnNpb25lZEluc3RydWN0aW9uc1swXTtcbiAgICBub25jZUluc3RydWN0aW9uLmFjY291bnRLZXlJbmRleGVzLmxlbmd0aC5zaG91bGQuZXF1YWwoMyk7XG5cbiAgICAvLyBudW1SZXF1aXJlZFNpZ25hdHVyZXMgc2hvdWxkIGJlIHVwZGF0ZWQgdG8gaW5jbHVkZSBub25jZSBhdXRob3JpdHlcbiAgICBjb25zdCBudW1TaWduZXJzID0gYnVpbHREYXRhIS5tZXNzYWdlSGVhZGVyLm51bVJlcXVpcmVkU2lnbmF0dXJlcztcbiAgICBudW1TaWduZXJzLnNob3VsZC5lcXVhbCgyKTtcblxuICAgIC8vIEJvdGggZmVlIHBheWVyIGFuZCBub25jZSBhdXRob3JpdHkgc2hvdWxkIGJlIGluIHNpZ25lciBzZWN0aW9uXG4gICAgY29uc3Qgc2lnbmVyS2V5cyA9IGJ1aWx0RGF0YSEuc3RhdGljQWNjb3VudEtleXMuc2xpY2UoMCwgbnVtU2lnbmVycyk7XG4gICAgc2lnbmVyS2V5cy5zaG91bGQuY29udGFpbkVxbCh0ZXN0RGF0YS5hdXRoQWNjb3VudC5wdWIpO1xuICAgIHNpZ25lcktleXMuc2hvdWxkLmNvbnRhaW5FcWwoZHVyYWJsZU5vbmNlUGFyYW1zLmF1dGhXYWxsZXRBZGRyZXNzKTtcblxuICAgIC8vIEZlZSBwYXllciBtdXN0IHJlbWFpbiBhdCBpbmRleCAwXG4gICAgYnVpbHREYXRhIS5zdGF0aWNBY2NvdW50S2V5c1swXS5zaG91bGQuZXF1YWwodGVzdERhdGEuYXV0aEFjY291bnQucHViKTtcblxuICAgIC8vIFJlcXVpcmVkIGFjY291bnRzIGZvciBub25jZSBhZHZhbmNlIHNob3VsZCBiZSBhZGRlZFxuICAgIGJ1aWx0RGF0YSEuc3RhdGljQWNjb3VudEtleXMuc2hvdWxkLmNvbnRhaW5FcWwoZHVyYWJsZU5vbmNlUGFyYW1zLndhbGxldE5vbmNlQWRkcmVzcyk7XG4gICAgYnVpbHREYXRhIS5zdGF0aWNBY2NvdW50S2V5cy5zaG91bGQuY29udGFpbkVxbCgnMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEnKTtcbiAgICBidWlsdERhdGEhLnN0YXRpY0FjY291bnRLZXlzLnNob3VsZC5jb250YWluRXFsKCdTeXN2YXJSZWNlbnRCMW9ja0hhc2hlczExMTExMTExMTExMTExMTExMTExJyk7XG5cbiAgICAvLyBPcmlnaW5hbCBpbnN0cnVjdGlvbiBpbmRpY2VzIHNob3VsZCBiZSByZW1hcHBlZCBhZnRlciBhY2NvdW50IHJlb3JkZXJpbmdcbiAgICBjb25zdCBvcmlnaW5hbEluc3RydWN0aW9uID0gYnVpbHREYXRhIS52ZXJzaW9uZWRJbnN0cnVjdGlvbnNbMV07XG4gICAgb3JpZ2luYWxJbnN0cnVjdGlvbi5wcm9ncmFtSWRJbmRleC5zaG91bGQuZXF1YWwoXG4gICAgICBidWlsdERhdGEhLnN0YXRpY0FjY291bnRLZXlzLmluZGV4T2YoJ01lbW9TcTRncUFCQVhLYjk2cW5IOFR5c05jV3hNeVdDcVhnRExHbWZjSHInKVxuICAgICk7XG4gICAgb3JpZ2luYWxJbnN0cnVjdGlvbi5hY2NvdW50S2V5SW5kZXhlc1swXS5zaG91bGQuZXF1YWwoXG4gICAgICBidWlsdERhdGEhLnN0YXRpY0FjY291bnRLZXlzLmluZGV4T2YodGVzdERhdGEuYXV0aEFjY291bnQucHViKVxuICAgICk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgbm90IGluamVjdCBub25jZSBhZHZhbmNlIHdoZW4gdXNpbmcgcmVndWxhciBub25jZSAobm8gZHVyYWJsZU5vbmNlUGFyYW1zKScsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCB2ZXJzaW9uZWRUcmFuc2FjdGlvbkRhdGEgPSB7XG4gICAgICB2ZXJzaW9uZWRJbnN0cnVjdGlvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb2dyYW1JZEluZGV4OiAxLFxuICAgICAgICAgIGFjY291bnRLZXlJbmRleGVzOiBbMF0sXG4gICAgICAgICAgZGF0YTogYmFzZTU4LmVuY29kZShCdWZmZXIuZnJvbSgnSGVsbG8nLCAndXRmLTgnKSksXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgYWRkcmVzc0xvb2t1cFRhYmxlczogW10sXG4gICAgICBzdGF0aWNBY2NvdW50S2V5czogW3Rlc3REYXRhLmF1dGhBY2NvdW50LnB1YiwgJ01lbW9TcTRncUFCQVhLYjk2cW5IOFR5c05jV3hNeVdDcVhnRExHbWZjSHInXSxcbiAgICAgIG1lc3NhZ2VIZWFkZXI6IHtcbiAgICAgICAgbnVtUmVxdWlyZWRTaWduYXR1cmVzOiAxLFxuICAgICAgICBudW1SZWFkb25seVNpZ25lZEFjY291bnRzOiAwLFxuICAgICAgICBudW1SZWFkb25seVVuc2lnbmVkQWNjb3VudHM6IDAsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCBmYWN0b3J5ID0gZ2V0QnVpbGRlckZhY3RvcnkoJ3Rzb2wnKTtcbiAgICBjb25zdCB0eEJ1aWxkZXIgPSBmYWN0b3J5LmdldEN1c3RvbUluc3RydWN0aW9uQnVpbGRlcigpO1xuXG4gICAgLy8gUmVndWxhciBub25jZSB3aXRob3V0IGR1cmFibGVOb25jZVBhcmFtcyBzaG91bGQgbm90IHRyaWdnZXIgaW5qZWN0aW9uXG4gICAgdHhCdWlsZGVyLm5vbmNlKHRlc3REYXRhLmJsb2NrSGFzaGVzLnZhbGlkQmxvY2tIYXNoZXNbMF0pO1xuICAgIHR4QnVpbGRlci5mcm9tVmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhKHZlcnNpb25lZFRyYW5zYWN0aW9uRGF0YSk7XG5cbiAgICBjb25zdCB0eCA9IChhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKSkgYXMgVHJhbnNhY3Rpb247XG4gICAgY29uc3QgYnVpbHREYXRhID0gdHguZ2V0VmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhKCk7XG5cbiAgICBzaG91bGQuZXhpc3QoYnVpbHREYXRhKTtcblxuICAgIC8vIFRyYW5zYWN0aW9uIHNob3VsZCByZW1haW4gdW5jaGFuZ2VkXG4gICAgYnVpbHREYXRhIS52ZXJzaW9uZWRJbnN0cnVjdGlvbnMubGVuZ3RoLnNob3VsZC5lcXVhbCgxKTtcbiAgICBidWlsdERhdGEhLm1lc3NhZ2VIZWFkZXIubnVtUmVxdWlyZWRTaWduYXR1cmVzLnNob3VsZC5lcXVhbCgxKTtcbiAgICBidWlsdERhdGEhLnN0YXRpY0FjY291bnRLZXlzLmxlbmd0aC5zaG91bGQuZXF1YWwoMik7XG4gIH0pO1xufSk7XG4iXX0=
|
|
207
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbmVkVHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvdmVyc2lvbmVkVHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsbUNBQWlEO0FBQ2pELDJEQUE2QztBQUM3QywyREFBd0Q7QUFDeEQsZ0RBQTBCO0FBQzFCLE1BQU0sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBRTVELFFBQVEsQ0FBQyw4QkFBOEIsRUFBRSxHQUFHLEVBQUU7SUFDNUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxhQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3hELE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUV2QyxFQUFFLENBQUMsaUVBQWlFLEVBQUUsS0FBSztRQUN6RSx1Q0FBdUM7UUFDdkMsTUFBTSxvQkFBb0IsR0FDeEIsMG9DQUEwb0MsQ0FBQztRQUU3b0MsTUFBTSxvQkFBb0IsR0FBRyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRTNHLE1BQU0scUJBQXFCLEdBQUcsb0JBQW9CLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMzRixjQUFjLEVBQUUsRUFBRSxDQUFDLGNBQWM7WUFDakMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDLGlCQUFpQjtZQUN2QyxJQUFJLEVBQUUsY0FBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO1NBQzdCLENBQUMsQ0FBQyxDQUFDO1FBRUosTUFBTSxtQkFBbUIsR0FDdkIsb0JBQW9C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QUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCB7IEtleVBhaXIsIFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vc3JjJztcbmltcG9ydCAqIGFzIHRlc3REYXRhIGZyb20gJy4uL3Jlc291cmNlcy9zb2wnO1xuaW1wb3J0IHsgZ2V0QnVpbGRlckZhY3RvcnkgfSBmcm9tICcuL2dldEJ1aWxkZXJGYWN0b3J5JztcbmltcG9ydCBiYXNlNTggZnJvbSAnYnM1OCc7XG5jb25zdCB7IFZlcnNpb25lZFRyYW5zYWN0aW9uIH0gPSByZXF1aXJlKCdAc29sYW5hL3dlYjMuanMnKTtcblxuZGVzY3JpYmUoJ1NvbCBKdXBpdGVyIFN3YXAgVHJhbnNhY3Rpb24nLCAoKSA9PiB7XG4gIGNvbnN0IHdhbGxldEtleVBhaXIgPSBuZXcgS2V5UGFpcih0ZXN0RGF0YS5hdXRoQWNjb3VudCk7XG4gIGNvbnN0IHdhbGxldCA9IHdhbGxldEtleVBhaXIuZ2V0S2V5cygpO1xuXG4gIGl0KCdzaG91bGQgcHJlc2VydmUgaW5zdHJ1Y3Rpb25zIGFuZCBBTFRzIHdoZW4gYnVpbGRpbmcgYW5kIHNpZ25pbmcnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgLy8gSnVwaXRlciBTd2FwIFRyYW5zYWN0aW9uIChWZXJzaW9uZWQpXG4gICAgY29uc3QgdmVyc2lvbmVkVHJhbnNhY3Rpb24gPVxuICAgICAgJ0FRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0FBUUFGRFRXb001REJDR243Y241YVY1NmZvbW82bWhEMksxYzVYWWhRSWFuNDFFNmRHOXQwNm94NkRNZHZWdUJuU0VBVHlOLzhxSXEyNDZpTzVhRG0xam04Mng0d000MEZSOFE3eFNaVXBVdEIwbGJ2ZWxhWjQ2b1JRMkdNOWhXR011a0hHMUVVc0ExUjlaTzU1Q2xVdk5NeXc4SVFPcmZSbXUzT05HNTBvTmVsdVQ0TGdhT2FjTitJNGQwSFN0Y3Urb2gwbm80WFhnVlV3anprNStlZ2lVYVFEa0NDalhBbFNEQWI0NmFoTEFmV2VLT3F6Ty9IQy96MldnUms4UlMxeWM2aGVNWnpCYlIzU1BEd3JOdldsQ1pHYUVUYWl4aUg5dWZkT0o4MjNHditNbnhIMVNPdTZUQ3NYMStUTXNrajk0RDNORWxEcGFkbzhva0ZRYlV1emFpalU5b0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUl5WEpZOU9KSW54dXowUUtSU09EWU1MV2hPWjJ2OFFoQVNPZTlqYjZmaFpBd1pHYitVaEZ6TC83SzI2Y3NPYjU3eU01YnZGOXhKckxFT2JPa0FBQUFBRWVkVmI4akhBYnU1MHhXN09hQlVIL2JHeTNxUDBqbEVDc2MyaVZyd1Rqd2JkOXVIWFphR1QyY3ZoUnM3cmVhd2N0SVh0WDFzM2tUcU05WVYrL3dDcCttR3BGNEk0WnJWMTJiYXBKN3A2MUJhYnQzdHk3SFlEVUt0TXNvMzhPWWdIQ2dBRkFvb3lCQUFLQUFrRG9RNEJBQUFBQUFBSUFnQUZEQUlBQUFBd0t5SUFBQUFBQUFzRkJRQWdEQWdKay9GN1pQU0VybmIvQ1FZQUJ3QWRDQXdCQVFzL0hnQUZEZzBISUIwTURCd0xKZzhtRUJJT0RTQWRFU1llREF3a0pnSURCZ3NtR3lZV0dRNEVJQ1VhSmg0TURDUW1HQmNCQ3lJakRDRWVCQTBWRXhRZk10R1lVNU44L3RqcEMwQU5Bd0FBQUFBQVdxd0FBQUFBQUFBeUFBQUFBQUFEQUFBQUppd2FBQU1tNUF3QUFnb1FKd0lEREFNRkFBQUJDUVFwdjVVSEtrKy9CTjl4ZFpQbk9Mek1JU2NvRmNKSEdvRForZlZWc05TRUpRSTBJd1VBS0E0Q0Z5bzlTRGpzUGRmV1hBZE1GMG11Mit4WmJ3OXJiUjZyek5BRWVGa0xteUt3QkdCbVlXVUFNSENKNk9pMEExUWpwanAxWXYzeFArc1BMbTJxSi8vVEtaZDVaOUt6anZFRHdiM0NBNzdEd090S2QxTUN1Nmg0WEpqQzQyeWM4VGNMOTJuaHpGVVI2SExXM1hyQUlaT3ZCbzZLaTVDUmpRT01rNVE9JztcblxuICAgIGNvbnN0IG9yaWdpbmFsRGVzZXJpYWxpemVkID0gVmVyc2lvbmVkVHJhbnNhY3Rpb24uZGVzZXJpYWxpemUoQnVmZmVyLmZyb20odmVyc2lvbmVkVHJhbnNhY3Rpb24sICdiYXNlNjQnKSk7XG5cbiAgICBjb25zdCB2ZXJzaW9uZWRJbnN0cnVjdGlvbnMgPSBvcmlnaW5hbERlc2VyaWFsaXplZC5tZXNzYWdlLmNvbXBpbGVkSW5zdHJ1Y3Rpb25zLm1hcCgoaXgpID0+ICh7XG4gICAgICBwcm9ncmFtSWRJbmRleDogaXgucHJvZ3JhbUlkSW5kZXgsXG4gICAgICBhY2NvdW50S2V5SW5kZXhlczogaXguYWNjb3VudEtleUluZGV4ZXMsXG4gICAgICBkYXRhOiBiYXNlNTguZW5jb2RlKGl4LmRhdGEpLFxuICAgIH0pKTtcblxuICAgIGNvbnN0IGFkZHJlc3NMb29rdXBUYWJsZXMgPVxuICAgICAgb3JpZ2luYWxEZXNlcmlhbGl6ZWQubWVzc2FnZS5hZGRyZXNzVGFibGVMb29rdXBzPy5tYXAoKGxvb2t1cCkgPT4gKHtcbiAgICAgICAgYWNjb3VudEtleTogbG9va3VwLmFjY291bnRLZXkudG9CYXNlNTgoKSxcbiAgICAgICAgd3JpdGFibGVJbmRleGVzOiBsb29rdXAud3JpdGFibGVJbmRleGVzLFxuICAgICAgICByZWFkb25seUluZGV4ZXM6IGxvb2t1cC5yZWFkb25seUluZGV4ZXMsXG4gICAgICB9KSkgfHwgW107XG5cbiAgICBjb25zdCBzdGF0aWNBY2NvdW50S2V5cyA9IG9yaWdpbmFsRGVzZXJpYWxpemVkLm1lc3NhZ2Uuc3RhdGljQWNjb3VudEtleXMubWFwKChrZXkpID0+IGtleS50b0Jhc2U1OCgpKTtcbiAgICBzdGF0aWNBY2NvdW50S2V5c1swXSA9IHRlc3REYXRhLmF1dGhBY2NvdW50LnB1YjsgLy8gUmVwbGFjZSBmZWUgcGF5ZXIgd2l0aCBvdXIgdGVzdCBhY2NvdW50XG5cbiAgICBjb25zdCB2ZXJzaW9uZWRUcmFuc2FjdGlvbkRhdGEgPSB7XG4gICAgICB2ZXJzaW9uZWRJbnN0cnVjdGlvbnMsXG4gICAgICBhZGRyZXNzTG9va3VwVGFibGVzLFxuICAgICAgc3RhdGljQWNjb3VudEtleXMsXG4gICAgICBtZXNzYWdlSGVhZGVyOiBvcmlnaW5hbERlc2VyaWFsaXplZC5tZXNzYWdlLmhlYWRlcixcbiAgICAgIHJlY2VudEJsb2NraGFzaDogb3JpZ2luYWxEZXNlcmlhbGl6ZWQubWVzc2FnZS5yZWNlbnRCbG9ja2hhc2gsXG4gICAgfTtcblxuICAgIGNvbnN0IGZhY3RvcnkgPSBnZXRCdWlsZGVyRmFjdG9yeSgndHNvbCcpO1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IGZhY3RvcnkuZ2V0Q3VzdG9tSW5zdHJ1Y3Rpb25CdWlsZGVyKCk7XG5cbiAgICAvLyBCdWlsZCB0cmFuc2FjdGlvbiBmcm9tIHZlcnNpb25lZCB0cmFuc2FjdGlvbiBkYXRhXG4gICAgdHhCdWlsZGVyLmZyb21WZXJzaW9uZWRUcmFuc2FjdGlvbkRhdGEodmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhKTtcbiAgICB0eEJ1aWxkZXIubm9uY2UodGVzdERhdGEuYmxvY2tIYXNoZXMudmFsaWRCbG9ja0hhc2hlc1swXSk7XG5cbiAgICAvLyBCdWlsZCB1bnNpZ25lZCB0cmFuc2FjdGlvblxuICAgIGNvbnN0IHR4VW5zaWduZWQgPSAoYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCkpIGFzIFRyYW5zYWN0aW9uO1xuICAgIHNob3VsZC5leGlzdCh0eFVuc2lnbmVkKTtcbiAgICB0eFVuc2lnbmVkLmlzVmVyc2lvbmVkVHJhbnNhY3Rpb24oKS5zaG91bGQuYmUudHJ1ZSgpO1xuICAgIHNob3VsZC5leGlzdCh0eFVuc2lnbmVkLnRvQnJvYWRjYXN0Rm9ybWF0KCkpO1xuXG4gICAgLy8gU2lnbiB0aGUgdHJhbnNhY3Rpb25cbiAgICB0eEJ1aWxkZXIuc2lnbih7IGtleTogd2FsbGV0LnBydiB9KTtcbiAgICBjb25zdCB0eCA9IChhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKSkgYXMgVHJhbnNhY3Rpb247XG4gICAgY29uc3QgcmF3VHggPSB0eC50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuICAgIHR4LmlzVmVyc2lvbmVkVHJhbnNhY3Rpb24oKS5zaG91bGQuYmUudHJ1ZSgpO1xuICAgIHNob3VsZC5leGlzdChyYXdUeCk7XG5cbiAgICBjb25zdCB0eEJ1aWxkZXIyID0gZmFjdG9yeS5nZXRDdXN0b21JbnN0cnVjdGlvbkJ1aWxkZXIoKTtcbiAgICB0eEJ1aWxkZXIyLmZyb21WZXJzaW9uZWRUcmFuc2FjdGlvbkRhdGEodmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhKTtcbiAgICB0eEJ1aWxkZXIyLm5vbmNlKHRlc3REYXRhLmJsb2NrSGFzaGVzLnZhbGlkQmxvY2tIYXNoZXNbMF0pO1xuICAgIGNvbnN0IHR4MiA9IGF3YWl0IHR4QnVpbGRlcjIuYnVpbGQoKTtcblxuICAgIHNob3VsZC5lcXVhbCh0eDIuc2lnbmFibGVQYXlsb2FkLnRvU3RyaW5nKCdoZXgnKSwgdHhVbnNpZ25lZC5zaWduYWJsZVBheWxvYWQudG9TdHJpbmcoJ2hleCcpKTtcbiAgICBzaG91bGQuZXF1YWwodHgyLnR5cGUsIHR4VW5zaWduZWQudHlwZSk7XG5cbiAgICAvLyBWZXJpZnkgd2UgY2FuIGFkZCBzaWduYXR1cmUgbWFudWFsbHlcbiAgICBjb25zdCBzaWduZWQgPSB0eC5zaWduYXR1cmVbMF07XG4gICAgY29uc3QgdHhCdWlsZGVyMyA9IGZhY3RvcnkuZ2V0Q3VzdG9tSW5zdHJ1Y3Rpb25CdWlsZGVyKCk7XG4gICAgdHhCdWlsZGVyMy5mcm9tVmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhKHZlcnNpb25lZFRyYW5zYWN0aW9uRGF0YSk7XG4gICAgdHhCdWlsZGVyMy5ub25jZSh0ZXN0RGF0YS5ibG9ja0hhc2hlcy52YWxpZEJsb2NrSGFzaGVzWzBdKTtcbiAgICBhd2FpdCB0eEJ1aWxkZXIzLmFkZFNpZ25hdHVyZSh7IHB1Yjogd2FsbGV0LnB1YiB9LCBCdWZmZXIuZnJvbShiYXNlNTguZGVjb2RlKHNpZ25lZCkpKTtcblxuICAgIGNvbnN0IHNpZ25lZFR4ID0gYXdhaXQgdHhCdWlsZGVyMy5idWlsZCgpO1xuICAgIHNob3VsZC5lcXVhbChzaWduZWRUeC50eXBlLCB0eC50eXBlKTtcblxuICAgIGNvbnN0IHJhd1NpZ25lZFR4ID0gc2lnbmVkVHgudG9Ccm9hZGNhc3RGb3JtYXQoKTtcbiAgICBzaG91bGQuZXF1YWwocmF3U2lnbmVkVHgsIHJhd1R4KTtcblxuICAgIGNvbnN0IHNpZ25lZERlc2VyaWFsaXplZCA9IFZlcnNpb25lZFRyYW5zYWN0aW9uLmRlc2VyaWFsaXplKEJ1ZmZlci5mcm9tKHJhd1R4LCAnYmFzZTY0JykpO1xuXG4gICAgLy8gVmVyaWZ5IGFsbCBpbnN0cnVjdGlvbnMgYXJlIHByZXNlcnZlZFxuICAgIGNvbnN0IG9yaWdJbnN0cnVjdGlvbnMgPSBvcmlnaW5hbERlc2VyaWFsaXplZC5tZXNzYWdlLmNvbXBpbGVkSW5zdHJ1Y3Rpb25zO1xuICAgIGNvbnN0IHNpZ25lZEluc3RydWN0aW9ucyA9IHNpZ25lZERlc2VyaWFsaXplZC5tZXNzYWdlLmNvbXBpbGVkSW5zdHJ1Y3Rpb25zO1xuICAgIHNob3VsZC5lcXVhbChvcmlnSW5zdHJ1Y3Rpb25zLmxlbmd0aCwgc2lnbmVkSW5zdHJ1Y3Rpb25zLmxlbmd0aCwgJ051bWJlciBvZiBpbnN0cnVjdGlvbnMgc2hvdWxkIG1hdGNoJyk7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9yaWdJbnN0cnVjdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHNob3VsZC5lcXVhbChcbiAgICAgICAgb3JpZ0luc3RydWN0aW9uc1tpXS5wcm9ncmFtSWRJbmRleCxcbiAgICAgICAgc2lnbmVkSW5zdHJ1Y3Rpb25zW2ldLnByb2dyYW1JZEluZGV4LFxuICAgICAgICBgSW5zdHJ1Y3Rpb24gJHtpfTogcHJvZ3JhbUlkSW5kZXggc2hvdWxkIG1hdGNoYFxuICAgICAgKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwoXG4gICAgICAgIG9yaWdJbnN0cnVjdGlvbnNbaV0uYWNjb3VudEtleUluZGV4ZXMsXG4gICAgICAgIHNpZ25lZEluc3RydWN0aW9uc1tpXS5hY2NvdW50S2V5SW5kZXhlcyxcbiAgICAgICAgYEluc3RydWN0aW9uICR7aX06IGFjY291bnRLZXlJbmRleGVzIHNob3VsZCBtYXRjaGBcbiAgICAgICk7XG4gICAgICBzaG91bGQuZXF1YWwoXG4gICAgICAgIEJ1ZmZlci5mcm9tKG9yaWdJbnN0cnVjdGlvbnNbaV0uZGF0YSkudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICBCdWZmZXIuZnJvbShzaWduZWRJbnN0cnVjdGlvbnNbaV0uZGF0YSkudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICBgSW5zdHJ1Y3Rpb24gJHtpfTogZGF0YSBzaG91bGQgbWF0Y2hgXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIFZlcmlmeSBhbGwgQUxUcyBhcmUgcHJlc2VydmVkXG4gICAgY29uc3Qgb3JpZ0FMVHMgPSBvcmlnaW5hbERlc2VyaWFsaXplZC5tZXNzYWdlLmFkZHJlc3NUYWJsZUxvb2t1cHMgfHwgW107XG4gICAgY29uc3Qgc2lnbmVkQUxUcyA9IHNpZ25lZERlc2VyaWFsaXplZC5tZXNzYWdlLmFkZHJlc3NUYWJsZUxvb2t1cHMgfHwgW107XG4gICAgc2hvdWxkLmVxdWFsKG9yaWdBTFRzLmxlbmd0aCwgc2lnbmVkQUxUcy5sZW5ndGgsICdOdW1iZXIgb2YgQUxUcyBzaG91bGQgbWF0Y2gnKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb3JpZ0FMVHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHNob3VsZC5lcXVhbChcbiAgICAgICAgb3JpZ0FMVHNbaV0uYWNjb3VudEtleS50b0Jhc2U1OCgpLFxuICAgICAgICBzaWduZWRBTFRzW2ldLmFjY291bnRLZXkudG9CYXNlNTgoKSxcbiAgICAgICAgYEFMVCAke2l9OiBhY2NvdW50S2V5IHNob3VsZCBtYXRjaGBcbiAgICAgICk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKFxuICAgICAgICBvcmlnQUxUc1tpXS53cml0YWJsZUluZGV4ZXMsXG4gICAgICAgIHNpZ25lZEFMVHNbaV0ud3JpdGFibGVJbmRleGVzLFxuICAgICAgICBgQUxUICR7aX06IHdyaXRhYmxlSW5kZXhlcyBzaG91bGQgbWF0Y2hgXG4gICAgICApO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbChcbiAgICAgICAgb3JpZ0FMVHNbaV0ucmVhZG9ubHlJbmRleGVzLFxuICAgICAgICBzaWduZWRBTFRzW2ldLnJlYWRvbmx5SW5kZXhlcyxcbiAgICAgICAgYEFMVCAke2l9OiByZWFkb25seUluZGV4ZXMgc2hvdWxkIG1hdGNoYFxuICAgICAgKTtcbiAgICB9XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYXV0b21hdGljYWxseSBpbmplY3Qgbm9uY2UgYWR2YW5jZSBpbnN0cnVjdGlvbiB3aGVuIHVzaW5nIGR1cmFibGUgbm9uY2Ugd2l0aCB2ZXJzaW9uZWQgdHJhbnNhY3Rpb25zJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIC8vIFNpbXBsZSB0cmFuc2FjdGlvbiB3aXRoIG9uZSBtZW1vIGluc3RydWN0aW9uXG4gICAgY29uc3QgdmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhID0ge1xuICAgICAgdmVyc2lvbmVkSW5zdHJ1Y3Rpb25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm9ncmFtSWRJbmRleDogMSxcbiAgICAgICAgICBhY2NvdW50S2V5SW5kZXhlczogWzBdLFxuICAgICAgICAgIGRhdGE6IGJhc2U1OC5lbmNvZGUoQnVmZmVyLmZyb20oJ0hlbGxvIFZlcnNpb25lZCBUeCcsICd1dGYtOCcpKSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBhZGRyZXNzTG9va3VwVGFibGVzOiBbXSxcbiAgICAgIHN0YXRpY0FjY291bnRLZXlzOiBbdGVzdERhdGEuYXV0aEFjY291bnQucHViLCAnTWVtb1NxNGdxQUJBWEtiOTZxbkg4VHlzTmNXeE15V0NxWGdETEdtZmNIciddLFxuICAgICAgbWVzc2FnZUhlYWRlcjoge1xuICAgICAgICBudW1SZXF1aXJlZFNpZ25hdHVyZXM6IDEsXG4gICAgICAgIG51bVJlYWRvbmx5U2lnbmVkQWNjb3VudHM6IDAsXG4gICAgICAgIG51bVJlYWRvbmx5VW5zaWduZWRBY2NvdW50czogMCxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGNvbnN0IGR1cmFibGVOb25jZVBhcmFtcyA9IHtcbiAgICAgIHdhbGxldE5vbmNlQWRkcmVzczogJ0dIdFhRQnNvWkhWbk5GYTlZZXZBenhOelFCejdDVjVoajZiU2UzdTUyVzluJyxcbiAgICAgIGF1dGhXYWxsZXRBZGRyZXNzOiAnOFk3Uk02SmZjWDRBU1NOQmtya3JtU2NxM1o5VVdWNENKQnd0ZlNOZ3FUTjInLFxuICAgIH07XG5cbiAgICBjb25zdCBmYWN0b3J5ID0gZ2V0QnVpbGRlckZhY3RvcnkoJ3Rzb2wnKTtcbiAgICBjb25zdCB0eEJ1aWxkZXIgPSBmYWN0b3J5LmdldEN1c3RvbUluc3RydWN0aW9uQnVpbGRlcigpO1xuXG4gICAgLy8gUHJvdmlkaW5nIGR1cmFibGVOb25jZVBhcmFtcyB0cmlnZ2VycyBhdXRvbWF0aWMgbm9uY2UgYWR2YW5jZSBpbmplY3Rpb25cbiAgICB0eEJ1aWxkZXIubm9uY2UodGVzdERhdGEuYmxvY2tIYXNoZXMudmFsaWRCbG9ja0hhc2hlc1swXSwgZHVyYWJsZU5vbmNlUGFyYW1zKTtcbiAgICB0eEJ1aWxkZXIuZnJvbVZlcnNpb25lZFRyYW5zYWN0aW9uRGF0YSh2ZXJzaW9uZWRUcmFuc2FjdGlvbkRhdGEpO1xuXG4gICAgY29uc3QgdHggPSAoYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCkpIGFzIFRyYW5zYWN0aW9uO1xuICAgIGNvbnN0IGJ1aWx0RGF0YSA9IHR4LmdldFZlcnNpb25lZFRyYW5zYWN0aW9uRGF0YSgpO1xuXG4gICAgc2hvdWxkLmV4aXN0KGJ1aWx0RGF0YSk7XG5cbiAgICAvLyBOb25jZSBhZHZhbmNlIGluc3RydWN0aW9uIHNob3VsZCBiZSBwcmVwZW5kZWRcbiAgICBidWlsdERhdGEhLnZlcnNpb25lZEluc3RydWN0aW9ucy5sZW5ndGguc2hvdWxkLmVxdWFsKDIpO1xuICAgIGNvbnN0IG5vbmNlSW5zdHJ1Y3Rpb24gPSBidWlsdERhdGEhLnZlcnNpb25lZEluc3RydWN0aW9uc1swXTtcbiAgICBub25jZUluc3RydWN0aW9uLmFjY291bnRLZXlJbmRleGVzLmxlbmd0aC5zaG91bGQuZXF1YWwoMyk7XG5cbiAgICAvLyBudW1SZXF1aXJlZFNpZ25hdHVyZXMgc2hvdWxkIGJlIHVwZGF0ZWQgdG8gaW5jbHVkZSBub25jZSBhdXRob3JpdHlcbiAgICBjb25zdCBudW1TaWduZXJzID0gYnVpbHREYXRhIS5tZXNzYWdlSGVhZGVyLm51bVJlcXVpcmVkU2lnbmF0dXJlcztcbiAgICBudW1TaWduZXJzLnNob3VsZC5lcXVhbCgyKTtcblxuICAgIC8vIEJvdGggZmVlIHBheWVyIGFuZCBub25jZSBhdXRob3JpdHkgc2hvdWxkIGJlIGluIHNpZ25lciBzZWN0aW9uXG4gICAgY29uc3Qgc2lnbmVyS2V5cyA9IGJ1aWx0RGF0YSEuc3RhdGljQWNjb3VudEtleXMuc2xpY2UoMCwgbnVtU2lnbmVycyk7XG4gICAgc2lnbmVyS2V5cy5zaG91bGQuY29udGFpbkVxbCh0ZXN0RGF0YS5hdXRoQWNjb3VudC5wdWIpO1xuICAgIHNpZ25lcktleXMuc2hvdWxkLmNvbnRhaW5FcWwoZHVyYWJsZU5vbmNlUGFyYW1zLmF1dGhXYWxsZXRBZGRyZXNzKTtcblxuICAgIC8vIEZlZSBwYXllciBtdXN0IHJlbWFpbiBhdCBpbmRleCAwXG4gICAgYnVpbHREYXRhIS5zdGF0aWNBY2NvdW50S2V5c1swXS5zaG91bGQuZXF1YWwodGVzdERhdGEuYXV0aEFjY291bnQucHViKTtcblxuICAgIC8vIFJlcXVpcmVkIGFjY291bnRzIGZvciBub25jZSBhZHZhbmNlIHNob3VsZCBiZSBhZGRlZFxuICAgIGJ1aWx0RGF0YSEuc3RhdGljQWNjb3VudEtleXMuc2hvdWxkLmNvbnRhaW5FcWwoZHVyYWJsZU5vbmNlUGFyYW1zLndhbGxldE5vbmNlQWRkcmVzcyk7XG4gICAgYnVpbHREYXRhIS5zdGF0aWNBY2NvdW50S2V5cy5zaG91bGQuY29udGFpbkVxbCgnMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEnKTtcbiAgICBidWlsdERhdGEhLnN0YXRpY0FjY291bnRLZXlzLnNob3VsZC5jb250YWluRXFsKCdTeXN2YXJSZWNlbnRCMW9ja0hhc2hlczExMTExMTExMTExMTExMTExMTExJyk7XG5cbiAgICAvLyBPcmlnaW5hbCBpbnN0cnVjdGlvbiBpbmRpY2VzIHNob3VsZCBiZSByZW1hcHBlZCBhZnRlciBhY2NvdW50IHJlb3JkZXJpbmdcbiAgICBjb25zdCBvcmlnaW5hbEluc3RydWN0aW9uID0gYnVpbHREYXRhIS52ZXJzaW9uZWRJbnN0cnVjdGlvbnNbMV07XG4gICAgb3JpZ2luYWxJbnN0cnVjdGlvbi5wcm9ncmFtSWRJbmRleC5zaG91bGQuZXF1YWwoXG4gICAgICBidWlsdERhdGEhLnN0YXRpY0FjY291bnRLZXlzLmluZGV4T2YoJ01lbW9TcTRncUFCQVhLYjk2cW5IOFR5c05jV3hNeVdDcVhnRExHbWZjSHInKVxuICAgICk7XG4gICAgb3JpZ2luYWxJbnN0cnVjdGlvbi5hY2NvdW50S2V5SW5kZXhlc1swXS5zaG91bGQuZXF1YWwoXG4gICAgICBidWlsdERhdGEhLnN0YXRpY0FjY291bnRLZXlzLmluZGV4T2YodGVzdERhdGEuYXV0aEFjY291bnQucHViKVxuICAgICk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgbm90IGluamVjdCBub25jZSBhZHZhbmNlIHdoZW4gdXNpbmcgcmVjZW50QmxvY2toYXNoIChubyBkdXJhYmxlTm9uY2VQYXJhbXMpJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHZlcnNpb25lZFRyYW5zYWN0aW9uRGF0YSA9IHtcbiAgICAgIHZlcnNpb25lZEluc3RydWN0aW9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvZ3JhbUlkSW5kZXg6IDEsXG4gICAgICAgICAgYWNjb3VudEtleUluZGV4ZXM6IFswXSxcbiAgICAgICAgICBkYXRhOiBiYXNlNTguZW5jb2RlKEJ1ZmZlci5mcm9tKCdIZWxsbycsICd1dGYtOCcpKSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBhZGRyZXNzTG9va3VwVGFibGVzOiBbXSxcbiAgICAgIHN0YXRpY0FjY291bnRLZXlzOiBbdGVzdERhdGEuYXV0aEFjY291bnQucHViLCAnTWVtb1NxNGdxQUJBWEtiOTZxbkg4VHlzTmNXeE15V0NxWGdETEdtZmNIciddLFxuICAgICAgbWVzc2FnZUhlYWRlcjoge1xuICAgICAgICBudW1SZXF1aXJlZFNpZ25hdHVyZXM6IDEsXG4gICAgICAgIG51bVJlYWRvbmx5U2lnbmVkQWNjb3VudHM6IDAsXG4gICAgICAgIG51bVJlYWRvbmx5VW5zaWduZWRBY2NvdW50czogMCxcbiAgICAgIH0sXG4gICAgICByZWNlbnRCbG9ja2hhc2g6IHRlc3REYXRhLmJsb2NrSGFzaGVzLnZhbGlkQmxvY2tIYXNoZXNbMF0sXG4gICAgfTtcblxuICAgIGNvbnN0IGZhY3RvcnkgPSBnZXRCdWlsZGVyRmFjdG9yeSgndHNvbCcpO1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IGZhY3RvcnkuZ2V0Q3VzdG9tSW5zdHJ1Y3Rpb25CdWlsZGVyKCk7XG5cbiAgICAvLyBSZWd1bGFyIG5vbmNlIHdpdGhvdXQgZHVyYWJsZU5vbmNlUGFyYW1zIHNob3VsZCBub3QgdHJpZ2dlciBpbmplY3Rpb25cbiAgICB0eEJ1aWxkZXIubm9uY2UodGVzdERhdGEuYmxvY2tIYXNoZXMudmFsaWRCbG9ja0hhc2hlc1swXSk7XG4gICAgdHhCdWlsZGVyLmZyb21WZXJzaW9uZWRUcmFuc2FjdGlvbkRhdGEodmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhKTtcblxuICAgIGNvbnN0IHR4ID0gKGF3YWl0IHR4QnVpbGRlci5idWlsZCgpKSBhcyBUcmFuc2FjdGlvbjtcbiAgICBjb25zdCBidWlsdERhdGEgPSB0eC5nZXRWZXJzaW9uZWRUcmFuc2FjdGlvbkRhdGEoKTtcblxuICAgIHNob3VsZC5leGlzdChidWlsdERhdGEpO1xuXG4gICAgLy8gVHJhbnNhY3Rpb24gc2hvdWxkIHJlbWFpbiB1bmNoYW5nZWRcbiAgICBidWlsdERhdGEhLnZlcnNpb25lZEluc3RydWN0aW9ucy5sZW5ndGguc2hvdWxkLmVxdWFsKDEpO1xuICAgIGJ1aWx0RGF0YSEubWVzc2FnZUhlYWRlci5udW1SZXF1aXJlZFNpZ25hdHVyZXMuc2hvdWxkLmVxdWFsKDEpO1xuICAgIGJ1aWx0RGF0YSEuc3RhdGljQWNjb3VudEtleXMubGVuZ3RoLnNob3VsZC5lcXVhbCgyKTtcbiAgfSk7XG59KTtcbiJdfQ==
|