@bitgo-beta/sdk-core 8.2.1-beta.985 → 8.2.1-beta.987

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/dist/src/account-lib/baseCoin/iface.d.ts +1 -1
  2. package/dist/src/account-lib/baseCoin/iface.d.ts.map +1 -1
  3. package/dist/src/account-lib/baseCoin/iface.js +2 -2
  4. package/dist/src/account-lib/baseCoin/messages/baseMessage.d.ts.map +1 -1
  5. package/dist/src/account-lib/baseCoin/messages/baseMessage.js +10 -14
  6. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilder.js +2 -2
  7. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts.map +1 -1
  8. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilderFactory.js +12 -2
  9. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +1 -0
  10. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts.map +1 -1
  11. package/dist/src/bitgo/baseCoin/iBaseCoin.js +1 -1
  12. package/dist/src/bitgo/utils/messageTypes.d.ts +3 -3
  13. package/dist/src/bitgo/utils/messageTypes.d.ts.map +1 -1
  14. package/dist/src/bitgo/utils/messageTypes.js +1 -1
  15. package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts +16 -2
  16. package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts.map +1 -1
  17. package/dist/src/bitgo/utils/tss/baseTSSUtils.js +48 -2
  18. package/dist/src/bitgo/utils/tss/baseTypes.d.ts +3 -0
  19. package/dist/src/bitgo/utils/tss/baseTypes.d.ts.map +1 -1
  20. package/dist/src/bitgo/utils/tss/baseTypes.js +1 -1
  21. package/dist/src/bitgo/wallet/iWallet.d.ts +2 -1
  22. package/dist/src/bitgo/wallet/iWallet.d.ts.map +1 -1
  23. package/dist/src/bitgo/wallet/iWallet.js +1 -1
  24. package/dist/src/bitgo/wallet/wallet.d.ts +7 -0
  25. package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
  26. package/dist/src/bitgo/wallet/wallet.js +51 -11
  27. package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.js +2 -26
  28. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.js +3 -2
  29. package/dist/tsconfig.tsbuildinfo +1 -1
  30. package/package.json +9 -9
@@ -138,31 +138,6 @@ describe('Base Message', () => {
138
138
  });
139
139
  });
140
140
  describe('toBroadcastFormat', () => {
141
- it('should throw an error if no signatures are available', async () => {
142
- const message = new fixtures_1.TestMessage({
143
- coinConfig,
144
- payload: 'test',
145
- signers: ['addr1'],
146
- });
147
- await message
148
- .toBroadcastFormat()
149
- .should.be.rejectedWith('No signatures available for broadcast. Call setSignatures or addSignature first.');
150
- });
151
- it('should throw an error if no signers are available', async () => {
152
- const message = new fixtures_1.TestMessage({
153
- coinConfig,
154
- payload: 'test',
155
- signatures: [
156
- {
157
- publicKey: { pub: 'pub1' },
158
- signature: Buffer.from('sig1'),
159
- },
160
- ],
161
- });
162
- await message
163
- .toBroadcastFormat()
164
- .should.be.rejectedWith('No signers available for broadcast. Call setSigners or addSigner first.');
165
- });
166
141
  it('should create a proper broadcastable format with all fields', async () => {
167
142
  const { payload, type, metadata, signers, signatures } = fixtures_1.messageSamples.eip191;
168
143
  const customSignablePayload = Buffer.from('custom signable payload');
@@ -232,6 +207,7 @@ describe('Base Message', () => {
232
207
  serializedSignatures: (0, src_1.serializeSignatures)(signatures),
233
208
  signers,
234
209
  metadata,
210
+ signablePayload: 'SGVsbG8gQml0R28h',
235
211
  };
236
212
  const broadcastString = await message.toBroadcastString();
237
213
  const parsed = JSON.parse(broadcastString);
@@ -239,4 +215,4 @@ describe('Base Message', () => {
239
215
  });
240
216
  });
241
217
  });
242
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZU1lc3NhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvYWNjb3VudC1saWIvYmFzZUNvaW4vbWVzc2FnZXMvYmFzZU1lc3NhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxpREFBK0M7QUFDL0Msa0RBQTBCO0FBQzFCLG9EQUE0QjtBQUM1Qiw0Q0FBOEU7QUFDOUUseUNBQXlEO0FBRXpELFFBQVEsQ0FBQyxjQUFjLEVBQUUsR0FBRyxFQUFFO0lBQzVCLElBQUksVUFBZ0QsQ0FBQztJQUVyRCxVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ2QsVUFBVSxHQUFHLGVBQUssQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBUSxDQUFDLENBQUM7SUFDbEQsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsdUNBQXVDLEVBQUUsR0FBRyxFQUFFO1FBQy9DLE1BQU0sT0FBTyxHQUFHLElBQUksc0JBQVcsQ0FBQztZQUM5QixVQUFVO1lBQ1YsT0FBTyxFQUFFLEVBQUU7U0FDWixDQUFDLENBQUM7UUFFSCxnQkFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUseUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0QsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZDLGdCQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM1QyxnQkFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUMsZ0JBQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHdDQUF3QyxF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RUFBQyxVQUFVLENBQUM7Z0JBQ3JELE9BQU87Z0JBQ1AsUUFBUTthQUNULENBQUM7WUFFRixNQUFNLGVBQWUsR0FBRyxNQUFNLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzFELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7WUFFM0MsZ0JBQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLHVCQUF1QixDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCBzaW5vbiBmcm9tICdzaW5vbic7XG5pbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgeyBNZXNzYWdlU3RhbmRhcmRUeXBlLCBzZXJpYWxpemVTaWduYXR1cmVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc3JjJztcbmltcG9ydCB7IG1lc3NhZ2VTYW1wbGVzLCBUZXN0TWVzc2FnZSB9IGZyb20gJy4vZml4dHVyZXMnO1xuXG5kZXNjcmliZSgnQmFzZSBNZXNzYWdlJywgKCkgPT4ge1xuICBsZXQgY29pbkNvbmZpZzogc2lub24uU2lub25TdHViYmVkSW5zdGFuY2U8QmFzZUNvaW4+O1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGNvaW5Db25maWcgPSBzaW5vbi5jcmVhdGVTdHViSW5zdGFuY2UoQmFzZUNvaW4pO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGluaXRpYWxpemUgd2l0aCBkZWZhdWx0IHZhbHVlcycsICgpID0+IHtcbiAgICBjb25zdCBtZXNzYWdlID0gbmV3IFRlc3RNZXNzYWdlKHtcbiAgICAgIGNvaW5Db25maWcsXG4gICAgICBwYXlsb2FkOiAnJyxcbiAgICB9KTtcblxuICAgIHNob3VsZC5lcXVhbChtZXNzYWdlLmdldFR5cGUoKSwgTWVzc2FnZVN0YW5kYXJkVHlwZS5VTktOT1dOKTtcbiAgICBzaG91bGQuZXF1YWwobWVzc2FnZS5nZXRQYXlsb2FkKCksICcnKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0TWV0YWRhdGEoKSwge30pO1xuICAgIHNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRTaWduYXR1cmVzKCksIFtdKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0U2lnbmVycygpLCBbXSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgaW5pdGlhbGl6ZSB3aXRoIHByb3ZpZGVkIHZhbHVlcycsICgpID0+IHtcbiAgICBjb25zdCB7IHBheWxvYWQsIHR5cGUsIG1ldGFkYXRhLCBzaWduZXJzLCBzaWduYXR1cmVzIH0gPSBtZXNzYWdlU2FtcGxlcy5laXAxOTE7XG5cbiAgICBjb25zdCBtZXNzYWdlID0gbmV3IFRlc3RNZXNzYWdlKHtcbiAgICAgIGNvaW5Db25maWcsXG4gICAgICBwYXlsb2FkLFxuICAgICAgdHlwZSxcbiAgICAgIG1ldGFkYXRhLFxuICAgICAgc2lnbmVycyxcbiAgICAgIHNpZ25hdHVyZXMsXG4gICAgfSk7XG5cbiAgICBzaG91bGQuZXF1YWwobWVzc2FnZS5nZXRUeXBlKCksIHR5cGUpO1xuICAgIHNob3VsZC5lcXVhbChtZXNzYWdlLmdldFBheWxvYWQoKSwgcGF5bG9hZCk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChtZXNzYWdlLmdldE1ldGFkYXRhKCksIG1ldGFkYXRhKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0U2lnbmF0dXJlcygpLCBzaWduYXR1cmVzKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0U2lnbmVycygpLCBzaWduZXJzKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ0dldHRlcnMgYW5kIFNldHRlcnMnLCAoKSA9PiB7XG4gICAgbGV0IG1lc3NhZ2U6IFRlc3RNZXNzYWdlO1xuXG4gICAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgICBtZXNzYWdlID0gbmV3IFRlc3RNZXNzYWdlKHtcbiAgICAgICAgY29pbkNvbmZpZyxcbiAgICAgICAgcGF5bG9hZDogJ3Rlc3QnLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGhhbmRsZSBhZGRpbmcgYW5kIGdldHRpbmcgc2lnbmVycycsICgpID0+IHtcbiAgICAgIGNvbnN0IHNpZ25lcjEgPSAnMHhhYmMxMjMnO1xuICAgICAgY29uc3Qgc2lnbmVyMiA9ICcweGRlZjQ1Nic7XG5cbiAgICAgIG1lc3NhZ2UuYWRkU2lnbmVyKHNpZ25lcjEpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbChtZXNzYWdlLmdldFNpZ25lcnMoKSwgW3NpZ25lcjFdKTtcblxuICAgICAgbWVzc2FnZS5hZGRTaWduZXIoc2lnbmVyMik7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0U2lnbmVycygpLCBbc2lnbmVyMSwgc2lnbmVyMl0pO1xuXG4gICAgICAvLyBBZGRpbmcgYSBkdXBsaWNhdGUgc2lnbmVyIHNob3VsZCBub3QgYWRkIGl0IGFnYWluXG4gICAgICBtZXNzYWdlLmFkZFNpZ25lcihzaWduZXIxKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRTaWduZXJzKCksIFtzaWduZXIxLCBzaWduZXIyXSk7XG5cbiAgICAgIC8vIFNldCBzaWduZXJzIHNob3VsZCByZXBsYWNlIGFsbCBleGlzdGluZyBzaWduZXJzXG4gICAgICBjb25zdCBuZXdTaWduZXJzID0gWycweDExMScsICcweDIyMiddO1xuICAgICAgbWVzc2FnZS5zZXRTaWduZXJzKG5ld1NpZ25lcnMpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbChtZXNzYWdlLmdldFNpZ25lcnMoKSwgbmV3U2lnbmVycyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGhhbmRsZSBhZGRpbmcgYW5kIGdldHRpbmcgc2lnbmF0dXJlcycsICgpID0+IHtcbiAgICAgIGNvbnN0IHNpZzEgPSB7XG4gICAgICAgIHB1YmxpY0tleTogeyBwdWI6ICdwdWIxJyB9LFxuICAgICAgICBzaWduYXR1cmU6IEJ1ZmZlci5mcm9tKCdzaWduYXR1cmUxJyksXG4gICAgICB9O1xuICAgICAgY29uc3Qgc2lnMiA9IHtcbiAgICAgICAgcHVibGljS2V5OiB7IHB1YjogJ3B1YjInIH0sXG4gICAgICAgIHNpZ25hdHVyZTogQnVmZmVyLmZyb20oJ3NpZ25hdHVyZTInKSxcbiAgICAgIH07XG5cbiAgICAgIG1lc3NhZ2UuYWRkU2lnbmF0dXJlKHNpZzEpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbChtZXNzYWdlLmdldFNpZ25hdHVyZXMoKSwgW3NpZzFdKTtcblxuICAgICAgbWVzc2FnZS5hZGRTaWduYXR1cmUoc2lnMik7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0U2lnbmF0dXJlcygpLCBbc2lnMSwgc2lnMl0pO1xuXG4gICAgICAvLyBTZXQgc2lnbmF0dXJlcyBzaG91bGQgcmVwbGFjZSBhbGwgZXhpc3Rpbmcgc2lnbmF0dXJlc1xuICAgICAgY29uc3QgbmV3U2lnbmF0dXJlcyA9IFtcbiAgICAgICAge1xuICAgICAgICAgIHB1YmxpY0tleTogeyBwdWI6ICdwdWIzJyB9LFxuICAgICAgICAgIHNpZ25hdHVyZTogQnVmZmVyLmZyb20oJ3NpZzMnKSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHB1YmxpY0tleTogeyBwdWI6ICdwdWI0JyB9LFxuICAgICAgICAgIHNpZ25hdHVyZTogQnVmZmVyLmZyb20oJ3NpZzQnKSxcbiAgICAgICAgfSxcbiAgICAgIF07XG4gICAgICBtZXNzYWdlLnNldFNpZ25hdHVyZXMobmV3U2lnbmF0dXJlcyk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0U2lnbmF0dXJlcygpLCBuZXdTaWduYXR1cmVzKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIGNvcGllcyBvZiBhcnJheXMgdG8gcHJldmVudCBtdXRhdGlvbicsICgpID0+IHtcbiAgICAgIGNvbnN0IHNpZ25lcnMgPSBbJ2FkZHIxJywgJ2FkZHIyJ107XG4gICAgICBjb25zdCBzaWduYXR1cmVzID0gW1xuICAgICAgICB7XG4gICAgICAgICAgcHVibGljS2V5OiB7IHB1YjogJ3B1YjEnIH0sXG4gICAgICAgICAgc2lnbmF0dXJlOiBCdWZmZXIuZnJvbSgnc2lnMScpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHVibGljS2V5OiB7IHB1YjogJ3B1YjEnIH0sXG4gICAgICAgICAgc2lnbmF0dXJlOiBCdWZmZXIuZnJvbSgnc2lnMScpLFxuICAgICAgICB9LFxuICAgICAgXTtcblxuICAgICAgbWVzc2FnZS5zZXRTaWduZXJzKHNpZ25lcnMpO1xuICAgICAgbWVzc2FnZS5zZXRTaWduYXR1cmVzKHNpZ25hdHVyZXMpO1xuXG4gICAgICAvLyBNb2RpZnlpbmcgdGhlIHJldHVybmVkIGFycmF5cyBzaG91bGQgbm90IGFmZmVjdCB0aGUgaW50ZXJuYWwgc3RhdGVcbiAgICAgIGNvbnN0IHJldHVybmVkU2lnbmVycyA9IG1lc3NhZ2UuZ2V0U2lnbmVycygpO1xuICAgICAgY29uc3QgcmV0dXJuZWRTaWduYXR1cmVzID0gbWVzc2FnZS5nZXRTaWduYXR1cmVzKCk7XG5cbiAgICAgIHJldHVybmVkU2lnbmVycy5wdXNoKCdhZGRyMycpO1xuICAgICAgcmV0dXJuZWRTaWduYXR1cmVzLnB1c2goe1xuICAgICAgICBwdWJsaWNLZXk6IHsgcHViOiAncHViMycgfSxcbiAgICAgICAgc2lnbmF0dXJlOiBCdWZmZXIuZnJvbSgnc2lnMycpLFxuICAgICAgfSk7XG5cbiAgICAgIHNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRTaWduZXJzKCksIHNpZ25lcnMpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbChtZXNzYWdlLmdldFNpZ25hdHVyZXMoKSwgc2lnbmF0dXJlcyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdnZXRTaWduYWJsZVBheWxvYWQnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gdGhlIHNpZ25hYmxlUGF5bG9hZCBpZiBzZXQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBjdXN0b21TaWduYWJsZVBheWxvYWQgPSAnMHhhYmNkZWYxMjM0NTYnO1xuICAgICAgY29uc3QgbWVzc2FnZSA9IG5ldyBUZXN0TWVzc2FnZSh7XG4gICAgICAgIGNvaW5Db25maWcsXG4gICAgICAgIHBheWxvYWQ6ICdvcmlnaW5hbCBwYXlsb2FkJyxcbiAgICAgICAgc2lnbmFibGVQYXlsb2FkOiBjdXN0b21TaWduYWJsZVBheWxvYWQsXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbWVzc2FnZS5nZXRTaWduYWJsZVBheWxvYWQoKTtcbiAgICAgIHNob3VsZC5lcXVhbChyZXN1bHQsIGN1c3RvbVNpZ25hYmxlUGF5bG9hZCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJldHVybiB0aGUgcGF5bG9hZCBhcyBidWZmZXIgaWYgc2lnbmFibGVQYXlsb2FkIGlzIG5vdCBzZXQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBwYXlsb2FkID0gJ3Rlc3QgcGF5bG9hZCc7XG4gICAgICBjb25zdCBtZXNzYWdlID0gbmV3IFRlc3RNZXNzYWdlKHtcbiAgICAgICAgY29pbkNvbmZpZyxcbiAgICAgICAgcGF5bG9hZCxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBtZXNzYWdlLmdldFNpZ25hYmxlUGF5bG9hZCgpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbChyZXN1bHQsIEJ1ZmZlci5mcm9tKHBheWxvYWQpKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3RvQnJvYWRjYXN0Rm9ybWF0JywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgdGhyb3cgYW4gZXJyb3IgaWYgbm8gc2lnbmF0dXJlcyBhcmUgYXZhaWxhYmxlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IG5ldyBUZXN0TWVzc2FnZSh7XG4gICAgICAgIGNvaW5Db25maWcsXG4gICAgICAgIHBheWxvYWQ6ICd0ZXN0JyxcbiAgICAgICAgc2lnbmVyczogWydhZGRyMSddLFxuICAgICAgfSk7XG5cbiAgICAgIGF3YWl0IG1lc3NhZ2VcbiAgICAgICAgLnRvQnJvYWRjYXN0Rm9ybWF0KClcbiAgICAgICAgLnNob3VsZC5iZS5yZWplY3RlZFdpdGgoJ05vIHNpZ25hdHVyZXMgYXZhaWxhYmxlIGZvciBicm9hZGNhc3QuIENhbGwgc2V0U2lnbmF0dXJlcyBvciBhZGRTaWduYXR1cmUgZmlyc3QuJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHRocm93IGFuIGVycm9yIGlmIG5vIHNpZ25lcnMgYXJlIGF2YWlsYWJsZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgVGVzdE1lc3NhZ2Uoe1xuICAgICAgICBjb2luQ29uZmlnLFxuICAgICAgICBwYXlsb2FkOiAndGVzdCcsXG4gICAgICAgIHNpZ25hdHVyZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwdWJsaWNLZXk6IHsgcHViOiAncHViMScgfSxcbiAgICAgICAgICAgIHNpZ25hdHVyZTogQnVmZmVyLmZyb20oJ3NpZzEnKSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGF3YWl0IG1lc3NhZ2VcbiAgICAgICAgLnRvQnJvYWRjYXN0Rm9ybWF0KClcbiAgICAgICAgLnNob3VsZC5iZS5yZWplY3RlZFdpdGgoJ05vIHNpZ25lcnMgYXZhaWxhYmxlIGZvciBicm9hZGNhc3QuIENhbGwgc2V0U2lnbmVycyBvciBhZGRTaWduZXIgZmlyc3QuJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGNyZWF0ZSBhIHByb3BlciBicm9hZGNhc3RhYmxlIGZvcm1hdCB3aXRoIGFsbCBmaWVsZHMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB7IHBheWxvYWQsIHR5cGUsIG1ldGFkYXRhLCBzaWduZXJzLCBzaWduYXR1cmVzIH0gPSBtZXNzYWdlU2FtcGxlcy5laXAxOTE7XG4gICAgICBjb25zdCBjdXN0b21TaWduYWJsZVBheWxvYWQgPSBCdWZmZXIuZnJvbSgnY3VzdG9tIHNpZ25hYmxlIHBheWxvYWQnKTtcblxuICAgICAgY29uc3QgbWVzc2FnZSA9IG5ldyBUZXN0TWVzc2FnZSh7XG4gICAgICAgIGNvaW5Db25maWcsXG4gICAgICAgIHBheWxvYWQsXG4gICAgICAgIHR5cGUsXG4gICAgICAgIG1ldGFkYXRhLFxuICAgICAgICBzaWduZXJzLFxuICAgICAgICBzaWduYXR1cmVzLFxuICAgICAgICBzaWduYWJsZVBheWxvYWQ6IGN1c3RvbVNpZ25hYmxlUGF5bG9hZCxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBicm9hZGNhc3RGb3JtYXQgPSBhd2FpdCBtZXNzYWdlLnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG5cbiAgICAgIHNob3VsZC5kZWVwRXF1YWwoYnJvYWRjYXN0Rm9ybWF0LCB7XG4gICAgICAgIHR5cGUsXG4gICAgICAgIHBheWxvYWQsXG4gICAgICAgIHNlcmlhbGl6ZWRTaWduYXR1cmVzOiBzZXJpYWxpemVTaWduYXR1cmVzKHNpZ25hdHVyZXMpLFxuICAgICAgICBzaWduZXJzLFxuICAgICAgICBtZXRhZGF0YSxcbiAgICAgICAgc2lnbmFibGVQYXlsb2FkOiBjdXN0b21TaWduYWJsZVBheWxvYWQudG9TdHJpbmcoJ2Jhc2U2NCcpLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHBlcmZvcm0gYSBkZWVwIGNvcHkgb2YgbWV0YWRhdGEgdG8gcHJldmVudCBtdXRhdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IG5lc3RlZE1ldGFkYXRhID0ge1xuICAgICAgICB2ZXJzaW9uOiAnMS4wJyxcbiAgICAgICAgc2V0dGluZ3M6IHtcbiAgICAgICAgICBjaGFpbklkOiAxLFxuICAgICAgICAgIGdhc0xpbWl0OiAyMTAwMCxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgVGVzdE1lc3NhZ2Uoe1xuICAgICAgICBjb2luQ29uZmlnLFxuICAgICAgICBwYXlsb2FkOiAndGVzdCcsXG4gICAgICAgIG1ldGFkYXRhOiBuZXN0ZWRNZXRhZGF0YSxcbiAgICAgICAgc2lnbmVyczogWydhZGRyMSddLFxuICAgICAgICBzaWduYXR1cmVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgcHVibGljS2V5OiB7IHB1YjogJ3B1YjEnIH0sXG4gICAgICAgICAgICBzaWduYXR1cmU6IEJ1ZmZlci5mcm9tKCdzaWcxJyksXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBicm9hZGNhc3RGb3JtYXQgPSBhd2FpdCBtZXNzYWdlLnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG5cbiAgICAgIC8vIFRoZSBtZXRhZGF0YSBpbiB0aGUgYnJvYWRjYXN0IGZvcm1hdCBzaG91bGQgYmUgYSBkZWVwIGNvcHlcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwoYnJvYWRjYXN0Rm9ybWF0Lm1ldGFkYXRhLCBuZXN0ZWRNZXRhZGF0YSk7XG5cbiAgICAgIC8vIEJ1dCBpdCBzaG91bGQgbm90IGJlIHRoZSBzYW1lIG9iamVjdCByZWZlcmVuY2VcbiAgICAgIHNob3VsZC5ub3RFcXVhbChicm9hZGNhc3RGb3JtYXQubWV0YWRhdGEsIG5lc3RlZE1ldGFkYXRhKTtcblxuICAgICAgLy8gTW9kaWZ5aW5nIHRoZSBvcmlnaW5hbCBzaG91bGQgbm90IGFmZmVjdCB0aGUgYnJvYWRjYXN0ZWQgdmVyc2lvblxuICAgICAgbmVzdGVkTWV0YWRhdGEuc2V0dGluZ3MuZ2FzTGltaXQgPSA1MDAwMDtcbiAgICAgIHNob3VsZC5ub3RFcXVhbCgoYnJvYWRjYXN0Rm9ybWF0Lm1ldGFkYXRhIGFzIGFueSkuc2V0dGluZ3MuZ2FzTGltaXQsIDUwMDAwKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3RvQnJvYWRjYXN0U3RyaW5nJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgc2VyaWFsaXplIHRoZSBicm9hZGNhc3RhYmxlIGZvcm1hdCB0byBKU09OIHN0cmluZycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHsgcGF5bG9hZCwgdHlwZSwgbWV0YWRhdGEsIHNpZ25lcnMsIHNpZ25hdHVyZXMgfSA9IG1lc3NhZ2VTYW1wbGVzLmVpcDE5MTtcblxuICAgICAgY29uc3QgbWVzc2FnZSA9IG5ldyBUZXN0TWVzc2FnZSh7XG4gICAgICAgIGNvaW5Db25maWcsXG4gICAgICAgIHBheWxvYWQsXG4gICAgICAgIHR5cGUsXG4gICAgICAgIG1ldGFkYXRhLFxuICAgICAgICBzaWduZXJzLFxuICAgICAgICBzaWduYXR1cmVzLFxuICAgICAgfSk7XG4gICAgICBjb25zdCBleHBlY3RlZEJyb2FkY2FzdFN0cmluZyA9IHtcbiAgICAgICAgdHlwZSxcbiAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgc2VyaWFsaXplZFNpZ25hdHVyZXM6IHNlcmlhbGl6ZVNpZ25hdHVyZXMoc2lnbmF0dXJlcyksXG4gICAgICAgIHNpZ25lcnMsXG4gICAgICAgIG1ldGFkYXRhLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgYnJvYWRjYXN0U3RyaW5nID0gYXdhaXQgbWVzc2FnZS50b0Jyb2FkY2FzdFN0cmluZygpO1xuICAgICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZShicm9hZGNhc3RTdHJpbmcpO1xuXG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHBhcnNlZCwgZXhwZWN0ZWRCcm9hZGNhc3RTdHJpbmcpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
218
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZU1lc3NhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvYWNjb3VudC1saWIvYmFzZUNvaW4vbWVzc2FnZXMvYmFzZU1lc3NhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxpREFBK0M7QUFDL0Msa0RBQTBCO0FBQzFCLG9EQUE0QjtBQUM1Qiw0Q0FBOEU7QUFDOUUseUNBQXlEO0FBRXpELFFBQVEsQ0FBQyxjQUFjLEVBQUUsR0FBRyxFQUFFO0lBQzVCLElBQUksVUFBZ0QsQ0FBQztJQUVyRCxVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ2QsVUFBVSxHQUFHLGVBQUssQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBUSxDQUFDLENBQUM7SUFDbEQsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsdUNBQXVDLEVBQUUsR0FBRyxFQUFFO1FBQy9DLE1BQU0sT0FBTyxHQUFHLElBQUksc0JBQVcsQ0FBQztZQUM5QixVQUFVO1lBQ1YsT0FBTyxFQUFFLEVBQUU7U0FDWixDQUFDLENBQUM7UUFFSCxnQkFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUseUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0QsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZDLGdCQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM1QyxnQkFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUMsZ0JBQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHdDQUF3QyxF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RUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcseUJBQWMsQ0FBQyxNQUFNLENBQUM7WUFFL0UsTUFBTSxPQUFPLEdBQUcsSUFBSSxzQkFBVyxDQUFDO2dCQUM5QixVQUFVO2dCQUNWLE9BQU87Z0JBQ1AsSUFBSTtnQkFDSixRQUFRO2dCQUNSLE9BQU87Z0JBQ1AsVUFBVTthQUNYLENBQUMsQ0FBQztZQUNILE1BQU0sdUJBQXVCLEdBQUc7Z0JBQzlCLElBQUk7Z0JBQ0osT0FBTztnQkFDUCxvQkFBb0IsRUFBRSxJQUFBLHlCQUFtQixFQUFDLFVBQVUsQ0FBQztnQkFDckQsT0FBTztnQkFDUCxRQUFRO2dCQUNSLGVBQWUsRUFBRSxrQkFBa0I7YUFDcEMsQ0FBQztZQUVGLE1BQU0sZUFBZSxHQUFHLE1BQU0sT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDMUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUUzQyxnQkFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztRQUNwRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHNpbm9uIGZyb20gJ3Npbm9uJztcbmltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCB7IE1lc3NhZ2VTdGFuZGFyZFR5cGUsIHNlcmlhbGl6ZVNpZ25hdHVyZXMgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zcmMnO1xuaW1wb3J0IHsgbWVzc2FnZVNhbXBsZXMsIFRlc3RNZXNzYWdlIH0gZnJvbSAnLi9maXh0dXJlcyc7XG5cbmRlc2NyaWJlKCdCYXNlIE1lc3NhZ2UnLCAoKSA9PiB7XG4gIGxldCBjb2luQ29uZmlnOiBzaW5vbi5TaW5vblN0dWJiZWRJbnN0YW5jZTxCYXNlQ29pbj47XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgY29pbkNvbmZpZyA9IHNpbm9uLmNyZWF0ZVN0dWJJbnN0YW5jZShCYXNlQ29pbik7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgaW5pdGlhbGl6ZSB3aXRoIGRlZmF1bHQgdmFsdWVzJywgKCkgPT4ge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgVGVzdE1lc3NhZ2Uoe1xuICAgICAgY29pbkNvbmZpZyxcbiAgICAgIHBheWxvYWQ6ICcnLFxuICAgIH0pO1xuXG4gICAgc2hvdWxkLmVxdWFsKG1lc3NhZ2UuZ2V0VHlwZSgpLCBNZXNzYWdlU3RhbmRhcmRUeXBlLlVOS05PV04pO1xuICAgIHNob3VsZC5lcXVhbChtZXNzYWdlLmdldFBheWxvYWQoKSwgJycpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRNZXRhZGF0YSgpLCB7fSk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChtZXNzYWdlLmdldFNpZ25hdHVyZXMoKSwgW10pO1xuICAgIHNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRTaWduZXJzKCksIFtdKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBpbml0aWFsaXplIHdpdGggcHJvdmlkZWQgdmFsdWVzJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgcGF5bG9hZCwgdHlwZSwgbWV0YWRhdGEsIHNpZ25lcnMsIHNpZ25hdHVyZXMgfSA9IG1lc3NhZ2VTYW1wbGVzLmVpcDE5MTtcblxuICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgVGVzdE1lc3NhZ2Uoe1xuICAgICAgY29pbkNvbmZpZyxcbiAgICAgIHBheWxvYWQsXG4gICAgICB0eXBlLFxuICAgICAgbWV0YWRhdGEsXG4gICAgICBzaWduZXJzLFxuICAgICAgc2lnbmF0dXJlcyxcbiAgICB9KTtcblxuICAgIHNob3VsZC5lcXVhbChtZXNzYWdlLmdldFR5cGUoKSwgdHlwZSk7XG4gICAgc2hvdWxkLmVxdWFsKG1lc3NhZ2UuZ2V0UGF5bG9hZCgpLCBwYXlsb2FkKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0TWV0YWRhdGEoKSwgbWV0YWRhdGEpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRTaWduYXR1cmVzKCksIHNpZ25hdHVyZXMpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRTaWduZXJzKCksIHNpZ25lcnMpO1xuICB9KTtcblxuICBkZXNjcmliZSgnR2V0dGVycyBhbmQgU2V0dGVycycsICgpID0+IHtcbiAgICBsZXQgbWVzc2FnZTogVGVzdE1lc3NhZ2U7XG5cbiAgICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICAgIG1lc3NhZ2UgPSBuZXcgVGVzdE1lc3NhZ2Uoe1xuICAgICAgICBjb2luQ29uZmlnLFxuICAgICAgICBwYXlsb2FkOiAndGVzdCcsXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaGFuZGxlIGFkZGluZyBhbmQgZ2V0dGluZyBzaWduZXJzJywgKCkgPT4ge1xuICAgICAgY29uc3Qgc2lnbmVyMSA9ICcweGFiYzEyMyc7XG4gICAgICBjb25zdCBzaWduZXIyID0gJzB4ZGVmNDU2JztcblxuICAgICAgbWVzc2FnZS5hZGRTaWduZXIoc2lnbmVyMSk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0U2lnbmVycygpLCBbc2lnbmVyMV0pO1xuXG4gICAgICBtZXNzYWdlLmFkZFNpZ25lcihzaWduZXIyKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRTaWduZXJzKCksIFtzaWduZXIxLCBzaWduZXIyXSk7XG5cbiAgICAgIC8vIEFkZGluZyBhIGR1cGxpY2F0ZSBzaWduZXIgc2hvdWxkIG5vdCBhZGQgaXQgYWdhaW5cbiAgICAgIG1lc3NhZ2UuYWRkU2lnbmVyKHNpZ25lcjEpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbChtZXNzYWdlLmdldFNpZ25lcnMoKSwgW3NpZ25lcjEsIHNpZ25lcjJdKTtcblxuICAgICAgLy8gU2V0IHNpZ25lcnMgc2hvdWxkIHJlcGxhY2UgYWxsIGV4aXN0aW5nIHNpZ25lcnNcbiAgICAgIGNvbnN0IG5ld1NpZ25lcnMgPSBbJzB4MTExJywgJzB4MjIyJ107XG4gICAgICBtZXNzYWdlLnNldFNpZ25lcnMobmV3U2lnbmVycyk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0U2lnbmVycygpLCBuZXdTaWduZXJzKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaGFuZGxlIGFkZGluZyBhbmQgZ2V0dGluZyBzaWduYXR1cmVzJywgKCkgPT4ge1xuICAgICAgY29uc3Qgc2lnMSA9IHtcbiAgICAgICAgcHVibGljS2V5OiB7IHB1YjogJ3B1YjEnIH0sXG4gICAgICAgIHNpZ25hdHVyZTogQnVmZmVyLmZyb20oJ3NpZ25hdHVyZTEnKSxcbiAgICAgIH07XG4gICAgICBjb25zdCBzaWcyID0ge1xuICAgICAgICBwdWJsaWNLZXk6IHsgcHViOiAncHViMicgfSxcbiAgICAgICAgc2lnbmF0dXJlOiBCdWZmZXIuZnJvbSgnc2lnbmF0dXJlMicpLFxuICAgICAgfTtcblxuICAgICAgbWVzc2FnZS5hZGRTaWduYXR1cmUoc2lnMSk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0U2lnbmF0dXJlcygpLCBbc2lnMV0pO1xuXG4gICAgICBtZXNzYWdlLmFkZFNpZ25hdHVyZShzaWcyKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRTaWduYXR1cmVzKCksIFtzaWcxLCBzaWcyXSk7XG5cbiAgICAgIC8vIFNldCBzaWduYXR1cmVzIHNob3VsZCByZXBsYWNlIGFsbCBleGlzdGluZyBzaWduYXR1cmVzXG4gICAgICBjb25zdCBuZXdTaWduYXR1cmVzID0gW1xuICAgICAgICB7XG4gICAgICAgICAgcHVibGljS2V5OiB7IHB1YjogJ3B1YjMnIH0sXG4gICAgICAgICAgc2lnbmF0dXJlOiBCdWZmZXIuZnJvbSgnc2lnMycpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHVibGljS2V5OiB7IHB1YjogJ3B1YjQnIH0sXG4gICAgICAgICAgc2lnbmF0dXJlOiBCdWZmZXIuZnJvbSgnc2lnNCcpLFxuICAgICAgICB9LFxuICAgICAgXTtcbiAgICAgIG1lc3NhZ2Uuc2V0U2lnbmF0dXJlcyhuZXdTaWduYXR1cmVzKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRTaWduYXR1cmVzKCksIG5ld1NpZ25hdHVyZXMpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gY29waWVzIG9mIGFycmF5cyB0byBwcmV2ZW50IG11dGF0aW9uJywgKCkgPT4ge1xuICAgICAgY29uc3Qgc2lnbmVycyA9IFsnYWRkcjEnLCAnYWRkcjInXTtcbiAgICAgIGNvbnN0IHNpZ25hdHVyZXMgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICBwdWJsaWNLZXk6IHsgcHViOiAncHViMScgfSxcbiAgICAgICAgICBzaWduYXR1cmU6IEJ1ZmZlci5mcm9tKCdzaWcxJyksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwdWJsaWNLZXk6IHsgcHViOiAncHViMScgfSxcbiAgICAgICAgICBzaWduYXR1cmU6IEJ1ZmZlci5mcm9tKCdzaWcxJyksXG4gICAgICAgIH0sXG4gICAgICBdO1xuXG4gICAgICBtZXNzYWdlLnNldFNpZ25lcnMoc2lnbmVycyk7XG4gICAgICBtZXNzYWdlLnNldFNpZ25hdHVyZXMoc2lnbmF0dXJlcyk7XG5cbiAgICAgIC8vIE1vZGlmeWluZyB0aGUgcmV0dXJuZWQgYXJyYXlzIHNob3VsZCBub3QgYWZmZWN0IHRoZSBpbnRlcm5hbCBzdGF0ZVxuICAgICAgY29uc3QgcmV0dXJuZWRTaWduZXJzID0gbWVzc2FnZS5nZXRTaWduZXJzKCk7XG4gICAgICBjb25zdCByZXR1cm5lZFNpZ25hdHVyZXMgPSBtZXNzYWdlLmdldFNpZ25hdHVyZXMoKTtcblxuICAgICAgcmV0dXJuZWRTaWduZXJzLnB1c2goJ2FkZHIzJyk7XG4gICAgICByZXR1cm5lZFNpZ25hdHVyZXMucHVzaCh7XG4gICAgICAgIHB1YmxpY0tleTogeyBwdWI6ICdwdWIzJyB9LFxuICAgICAgICBzaWduYXR1cmU6IEJ1ZmZlci5mcm9tKCdzaWczJyksXG4gICAgICB9KTtcblxuICAgICAgc2hvdWxkLmRlZXBFcXVhbChtZXNzYWdlLmdldFNpZ25lcnMoKSwgc2lnbmVycyk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0U2lnbmF0dXJlcygpLCBzaWduYXR1cmVzKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2dldFNpZ25hYmxlUGF5bG9hZCcsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHJldHVybiB0aGUgc2lnbmFibGVQYXlsb2FkIGlmIHNldCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGN1c3RvbVNpZ25hYmxlUGF5bG9hZCA9ICcweGFiY2RlZjEyMzQ1Nic7XG4gICAgICBjb25zdCBtZXNzYWdlID0gbmV3IFRlc3RNZXNzYWdlKHtcbiAgICAgICAgY29pbkNvbmZpZyxcbiAgICAgICAgcGF5bG9hZDogJ29yaWdpbmFsIHBheWxvYWQnLFxuICAgICAgICBzaWduYWJsZVBheWxvYWQ6IGN1c3RvbVNpZ25hYmxlUGF5bG9hZCxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBtZXNzYWdlLmdldFNpZ25hYmxlUGF5bG9hZCgpO1xuICAgICAgc2hvdWxkLmVxdWFsKHJlc3VsdCwgY3VzdG9tU2lnbmFibGVQYXlsb2FkKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIHRoZSBwYXlsb2FkIGFzIGJ1ZmZlciBpZiBzaWduYWJsZVBheWxvYWQgaXMgbm90IHNldCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHBheWxvYWQgPSAndGVzdCBwYXlsb2FkJztcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgVGVzdE1lc3NhZ2Uoe1xuICAgICAgICBjb2luQ29uZmlnLFxuICAgICAgICBwYXlsb2FkLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG1lc3NhZ2UuZ2V0U2lnbmFibGVQYXlsb2FkKCk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHJlc3VsdCwgQnVmZmVyLmZyb20ocGF5bG9hZCkpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgndG9Ccm9hZGNhc3RGb3JtYXQnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBjcmVhdGUgYSBwcm9wZXIgYnJvYWRjYXN0YWJsZSBmb3JtYXQgd2l0aCBhbGwgZmllbGRzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgeyBwYXlsb2FkLCB0eXBlLCBtZXRhZGF0YSwgc2lnbmVycywgc2lnbmF0dXJlcyB9ID0gbWVzc2FnZVNhbXBsZXMuZWlwMTkxO1xuICAgICAgY29uc3QgY3VzdG9tU2lnbmFibGVQYXlsb2FkID0gQnVmZmVyLmZyb20oJ2N1c3RvbSBzaWduYWJsZSBwYXlsb2FkJyk7XG5cbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgVGVzdE1lc3NhZ2Uoe1xuICAgICAgICBjb2luQ29uZmlnLFxuICAgICAgICBwYXlsb2FkLFxuICAgICAgICB0eXBlLFxuICAgICAgICBtZXRhZGF0YSxcbiAgICAgICAgc2lnbmVycyxcbiAgICAgICAgc2lnbmF0dXJlcyxcbiAgICAgICAgc2lnbmFibGVQYXlsb2FkOiBjdXN0b21TaWduYWJsZVBheWxvYWQsXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgYnJvYWRjYXN0Rm9ybWF0ID0gYXdhaXQgbWVzc2FnZS50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuXG4gICAgICBzaG91bGQuZGVlcEVxdWFsKGJyb2FkY2FzdEZvcm1hdCwge1xuICAgICAgICB0eXBlLFxuICAgICAgICBwYXlsb2FkLFxuICAgICAgICBzZXJpYWxpemVkU2lnbmF0dXJlczogc2VyaWFsaXplU2lnbmF0dXJlcyhzaWduYXR1cmVzKSxcbiAgICAgICAgc2lnbmVycyxcbiAgICAgICAgbWV0YWRhdGEsXG4gICAgICAgIHNpZ25hYmxlUGF5bG9hZDogY3VzdG9tU2lnbmFibGVQYXlsb2FkLnRvU3RyaW5nKCdiYXNlNjQnKSxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBwZXJmb3JtIGEgZGVlcCBjb3B5IG9mIG1ldGFkYXRhIHRvIHByZXZlbnQgbXV0YXRpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBuZXN0ZWRNZXRhZGF0YSA9IHtcbiAgICAgICAgdmVyc2lvbjogJzEuMCcsXG4gICAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgICAgY2hhaW5JZDogMSxcbiAgICAgICAgICBnYXNMaW1pdDogMjEwMDAsXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBtZXNzYWdlID0gbmV3IFRlc3RNZXNzYWdlKHtcbiAgICAgICAgY29pbkNvbmZpZyxcbiAgICAgICAgcGF5bG9hZDogJ3Rlc3QnLFxuICAgICAgICBtZXRhZGF0YTogbmVzdGVkTWV0YWRhdGEsXG4gICAgICAgIHNpZ25lcnM6IFsnYWRkcjEnXSxcbiAgICAgICAgc2lnbmF0dXJlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHB1YmxpY0tleTogeyBwdWI6ICdwdWIxJyB9LFxuICAgICAgICAgICAgc2lnbmF0dXJlOiBCdWZmZXIuZnJvbSgnc2lnMScpLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgYnJvYWRjYXN0Rm9ybWF0ID0gYXdhaXQgbWVzc2FnZS50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuXG4gICAgICAvLyBUaGUgbWV0YWRhdGEgaW4gdGhlIGJyb2FkY2FzdCBmb3JtYXQgc2hvdWxkIGJlIGEgZGVlcCBjb3B5XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKGJyb2FkY2FzdEZvcm1hdC5tZXRhZGF0YSwgbmVzdGVkTWV0YWRhdGEpO1xuXG4gICAgICAvLyBCdXQgaXQgc2hvdWxkIG5vdCBiZSB0aGUgc2FtZSBvYmplY3QgcmVmZXJlbmNlXG4gICAgICBzaG91bGQubm90RXF1YWwoYnJvYWRjYXN0Rm9ybWF0Lm1ldGFkYXRhLCBuZXN0ZWRNZXRhZGF0YSk7XG5cbiAgICAgIC8vIE1vZGlmeWluZyB0aGUgb3JpZ2luYWwgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIGJyb2FkY2FzdGVkIHZlcnNpb25cbiAgICAgIG5lc3RlZE1ldGFkYXRhLnNldHRpbmdzLmdhc0xpbWl0ID0gNTAwMDA7XG4gICAgICBzaG91bGQubm90RXF1YWwoKGJyb2FkY2FzdEZvcm1hdC5tZXRhZGF0YSBhcyBhbnkpLnNldHRpbmdzLmdhc0xpbWl0LCA1MDAwMCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCd0b0Jyb2FkY2FzdFN0cmluZycsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHNlcmlhbGl6ZSB0aGUgYnJvYWRjYXN0YWJsZSBmb3JtYXQgdG8gSlNPTiBzdHJpbmcnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB7IHBheWxvYWQsIHR5cGUsIG1ldGFkYXRhLCBzaWduZXJzLCBzaWduYXR1cmVzIH0gPSBtZXNzYWdlU2FtcGxlcy5laXAxOTE7XG5cbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgVGVzdE1lc3NhZ2Uoe1xuICAgICAgICBjb2luQ29uZmlnLFxuICAgICAgICBwYXlsb2FkLFxuICAgICAgICB0eXBlLFxuICAgICAgICBtZXRhZGF0YSxcbiAgICAgICAgc2lnbmVycyxcbiAgICAgICAgc2lnbmF0dXJlcyxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgZXhwZWN0ZWRCcm9hZGNhc3RTdHJpbmcgPSB7XG4gICAgICAgIHR5cGUsXG4gICAgICAgIHBheWxvYWQsXG4gICAgICAgIHNlcmlhbGl6ZWRTaWduYXR1cmVzOiBzZXJpYWxpemVTaWduYXR1cmVzKHNpZ25hdHVyZXMpLFxuICAgICAgICBzaWduZXJzLFxuICAgICAgICBtZXRhZGF0YSxcbiAgICAgICAgc2lnbmFibGVQYXlsb2FkOiAnU0dWc2JHOGdRbWwwUjI4aCcsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBicm9hZGNhc3RTdHJpbmcgPSBhd2FpdCBtZXNzYWdlLnRvQnJvYWRjYXN0U3RyaW5nKCk7XG4gICAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKGJyb2FkY2FzdFN0cmluZyk7XG5cbiAgICAgIHNob3VsZC5kZWVwRXF1YWwocGFyc2VkLCBleHBlY3RlZEJyb2FkY2FzdFN0cmluZyk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -119,7 +119,7 @@ describe('Base Message Builder', () => {
119
119
  serializedSignatures: (0, src_1.serializeSignatures)(signatures),
120
120
  signers: signers,
121
121
  metadata: metadata,
122
- signablePayload: undefined,
122
+ signablePayload: 'aGVsbG8gd29ybGQ=',
123
123
  };
124
124
  should_1.default.deepEqual(broadcastFormat, expectedBroadcastFormat);
125
125
  });
@@ -165,8 +165,9 @@ describe('Base Message Builder', () => {
165
165
  serializedSignatures: (0, src_1.serializeSignatures)(signatures),
166
166
  signers: signers,
167
167
  metadata: { encoding: 'utf8' },
168
+ signablePayload: 'c2VyaWFsaXplIG1l',
168
169
  });
169
170
  should_1.default.equal(broadcastString, expectedJson);
170
171
  });
171
172
  });
172
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZU1lc3NhZ2VCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L2FjY291bnQtbGliL2Jhc2VDb2luL21lc3NhZ2VzL2Jhc2VNZXNzYWdlQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGlEQUErQztBQUMvQyxrREFBMEI7QUFDMUIsb0RBQTRCO0FBQzVCLDRDQUFvRztBQUNwRyx5Q0FBZ0Q7QUFFaEQsUUFBUSxDQUFDLHNCQUFzQixFQUFFLEdBQUcsRUFBRTtJQUNwQyxJQUFJLE9BQTJCLENBQUM7SUFDaEMsSUFBSSxjQUFvRCxDQUFDO0lBRXpELFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxjQUFjLEdBQUcsZUFBSyxDQUFDLGtCQUFrQixDQUFDLGtCQUFRLENBQUMsQ0FBQztRQUNwRCxPQUFPLEdBQUcsSUFBSSw2QkFBa0IsQ0FBQyxjQUFxQyxFQUFFLHlCQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RHLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHVDQUF1QyxFQUFFLEdBQUcsRUFBRTtRQUMvQyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLHlCQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVELGdCQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5QyxnQkFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDM0MsZ0JBQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLGdCQUFNLENBQUMs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QWdCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckUsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsMkNBQTJDLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDekQsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDO1FBQy9CLE1BQU0sVUFBVSxHQUFHO1lBQ2pCO2dCQUNFLFNBQVMsRUFBRSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUU7Z0JBQzdCLFNBQVMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQzthQUMvQjtTQUNGLENBQUM7UUFDRixNQUFNLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTFCLE9BQU8sQ0FBQyxPQUFPLENBQUMseUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFOUcsTUFBTSxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdEMsTUFBTSxlQUFlLEdBQUcsTUFBTSxPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUUxRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ2xDLElBQUksRUFBRSx5QkFBbUIsQ0FBQyxNQUFNO1lBQ2hDLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLG9CQUFvQixFQUFFLElBQUEseUJBQW1CLEVBQUMsVUFBVSxDQUFDO1lBQ3JELE9BQU8sRUFBRSxPQUFPO1lBQ2hCLFFBQVEsRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUU7U0FDL0IsQ0FBQyxDQUFDO1FBRUgsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzlDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHNpbm9uIGZyb20gJ3Npbm9uJztcbmltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCB7IEJyb2FkY2FzdGFibGVNZXNzYWdlLCBNZXNzYWdlU3RhbmRhcmRUeXBlLCBzZXJpYWxpemVTaWduYXR1cmVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc3JjJztcbmltcG9ydCB7IFRlc3RNZXNzYWdlQnVpbGRlciB9IGZyb20gJy4vZml4dHVyZXMnO1xuXG5kZXNjcmliZSgnQmFzZSBNZXNzYWdlIEJ1aWxkZXInLCAoKSA9PiB7XG4gIGxldCBidWlsZGVyOiBUZXN0TWVzc2FnZUJ1aWxkZXI7XG4gIGxldCBtb2NrQ29pbkNvbmZpZzogc2lub24uU2lub25TdHViYmVkSW5zdGFuY2U8QmFzZUNvaW4+O1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIG1vY2tDb2luQ29uZmlnID0gc2lub24uY3JlYXRlU3R1Ykluc3RhbmNlKEJhc2VDb2luKTtcbiAgICBidWlsZGVyID0gbmV3IFRlc3RNZXNzYWdlQnVpbGRlcihtb2NrQ29pbkNvbmZpZyBhcyB1bmtub3duIGFzIEJhc2VDb2luLCBNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgaW5pdGlhbGl6ZSB3aXRoIGRlZmF1bHQgdmFsdWVzJywgKCkgPT4ge1xuICAgIHNob3VsZC5lcXVhbChidWlsZGVyLmdldFBheWxvYWQoKSwgJycpO1xuICAgIHNob3VsZC5lcXVhbChidWlsZGVyLmdldFR5cGUoKSwgTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwoYnVpbGRlci5nZXRTaWduYXR1cmVzKCksIFtdKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKGJ1aWxkZXIuZ2V0U2lnbmVycygpLCBbXSk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChidWlsZGVyLmdldE1ldGFkYXRhKCksIHt9KTtcbiAgICBzaG91bGQuZXF1YWwoYnVpbGRlci5nZXREaWdlc3QoKSwgdW5kZWZpbmVkKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBzZXQgYW5kIGdldCBwYXlsb2FkJywgKCkgPT4ge1xuICAgIGNvbnN0IHBheWxvYWQgPSAndGVzdCBwYXlsb2FkJztcbiAgICBidWlsZGVyLnNldFBheWxvYWQocGF5bG9hZCk7XG4gICAgc2hvdWxkLmVxdWFsKGJ1aWxkZXIuZ2V0UGF5bG9hZCgpLCBwYXlsb2FkKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBzZXQgYW5kIGdldCBtZXRhZGF0YScsICgpID0+IHtcbiAgICBjb25zdCBtZXRhZGF0YSA9IHsga2V5OiAndmFsdWUnLCBudW06IDEyMyB9O1xuICAgIGJ1aWxkZXIuc2V0TWV0YWRhdGEobWV0YWRhdGEpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwoYnVpbGRlci5nZXRNZXRhZGF0YSgpLCBtZXRhZGF0YSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgc2V0IGFuZCBnZXQgdHlwZScsICgpID0+IHtcbiAgICBjb25zdCB0eXBlID0gTWVzc2FnZVN0YW5kYXJkVHlwZS5VTktOT1dOO1xuICAgIGJ1aWxkZXIuc2V0VHlwZSh0eXBlKTtcbiAgICBzaG91bGQuZXF1YWwoYnVpbGRlci5nZXRUeXBlKCksIHR5cGUpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHNldCBhbmQgZ2V0IHNpZ25hdHVyZXMnLCAoKSA9PiB7XG4gICAgY29uc3Qgc2lnbmF0dXJlcyA9IFtcbiAgICAgIHtcbiAgICAgICAgcHVibGljS2V5OiB7IHB1YjogJ3B1YktleTEnIH0sXG4gICAgICAgIHNpZ25hdHVyZTogQnVmZmVyLmZyb20oJ3NpZzEnKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHB1YmxpY0tleTogeyBwdWI6ICdwdWJLZXkyJyB9LFxuICAgICAgICBzaWduYXR1cmU6IEJ1ZmZlci5mcm9tKCdzaWcyJyksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwdWJsaWNLZXk6IHsgcHViOiAncHViS2V5MycgfSxcbiAgICAgICAgc2lnbmF0dXJlOiBCdWZmZXIuZnJvbSgnc2lnMycpLFxuICAgICAgfSxcbiAgICBdO1xuICAgIGJ1aWxkZXIuc2V0U2lnbmF0dXJlcyhzaWduYXR1cmVzKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKGJ1aWxkZXIuZ2V0U2lnbmF0dXJlcygpLCBzaWduYXR1cmVzKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBzZXQgYW5kIGdldCBzaWduZXJzJywgKCkgPT4ge1xuICAgIGNvbnN0IHNpZ25lcnMgPSBbJ2FkZHJlc3MxJywgJ2FkZHJlc3MyJywgJ2FkZHJlc3MzJ107XG4gICAgYnVpbGRlci5zZXRTaWduZXJzKHNpZ25lcnMpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwoYnVpbGRlci5nZXRTaWduZXJzKCksIHNpZ25lcnMpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHNldCBhbmQgZ2V0IGRpZ2VzdCcsICgpID0+IHtcbiAgICBjb25zdCBkaWdlc3QgPSAnMHgxMjM0YWJjZCc7XG4gICAgYnVpbGRlci5zZXREaWdlc3QoZGlnZXN0KTtcbiAgICBzaG91bGQuZXF1YWwoYnVpbGRlci5nZXREaWdlc3QoKSwgZGlnZXN0KTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBidWlsZCBhIG1lc3NhZ2Ugd2l0aCB0aGUgY29ycmVjdCBwcm9wZXJ0aWVzJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHBheWxvYWQgPSAndGVzdCBtZXNzYWdlJztcbiAgICBjb25zdCBtZXRhZGF0YSA9IHsgZm9vOiAnYmFyJywgZW5jb2Rpbmc6ICd1dGY4JyB9O1xuICAgIGNvbnN0IHNpZ25hdHVyZXMgPSBbXG4gICAgICB7XG4gICAgICAgIHB1YmxpY0tleTogeyBwdWI6ICdwdWJLZXkxJyB9LFxuICAgICAgICBzaWduYXR1cmU6IEJ1ZmZlci5mcm9tKCdzaWcxJyksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwdWJsaWNLZXk6IHsgcHViOiAncHViS2V5MicgfSxcbiAgICAgICAgc2lnbmF0dXJlOiBCdWZmZXIuZnJvbSgnc2lnMicpLFxuICAgICAgfSxcbiAgICBdO1xuICAgIGNvbnN0IHNpZ25lcnMgPSBbJ2FkZHIxJywgJ2FkZHIyJ107XG5cbiAgICBidWlsZGVyXG4gICAgICAuc2V0VHlwZShNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSlcbiAgICAgIC5zZXRQYXlsb2FkKHBheWxvYWQpXG4gICAgICAuc2V0TWV0YWRhdGEobWV0YWRhdGEpXG4gICAgICAuc2V0U2lnbmF0dXJlcyhzaWduYXR1cmVzKVxuICAgICAgLnNldFNpZ25lcnMoc2lnbmVycyk7XG5cbiAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuXG4gICAgc2hvdWxkLmVxdWFsKG1lc3NhZ2UuZ2V0VHlwZSgpLCBNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSk7XG4gICAgc2hvdWxkLmVxdWFsKG1lc3NhZ2UuZ2V0UGF5bG9hZCgpLCBwYXlsb2FkKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0TWV0YWRhdGEoKSwgbWV0YWRhdGEpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRTaWduYXR1cmVzKCksIHNpZ25hdHVyZXMpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRTaWduZXJzKCksIHNpZ25lcnMpO1xuXG4gICAgY29uc3Qgc2lnbmFibGVQYXlsb2FkID0gYXdhaXQgbWVzc2FnZS5nZXRTaWduYWJsZVBheWxvYWQoKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKHNpZ25hYmxlUGF5bG9hZCwgQnVmZmVyLmZyb20ocGF5bG9hZCkpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGNvcnJlY3RseSBoYW5kbGUgdG9Ccm9hZGNhc3RGb3JtYXQnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcGF5bG9hZCA9ICdoZWxsbyB3b3JsZCc7XG4gICAgY29uc3QgbWV0YWRhdGEgPSB7IHZlcnNpb246ICcxLjAnLCBlbmNvZGluZzogJ3V0ZjgnIH07XG4gICAgY29uc3Qgc2lnbmF0dXJlcyA9IFtcbiAgICAgIHtcbiAgICAgICAgcHVibGljS2V5OiB7IHB1YjogJ3B1YktleTEnIH0sXG4gICAgICAgIHNpZ25hdHVyZTogQnVmZmVyLmZyb20oJ3NpZzEnKSxcbiAgICAgIH0sXG4gICAgXTtcbiAgICBjb25zdCBzaWduZXJzID0gWydhZGRyMSddO1xuXG4gICAgYnVpbGRlclxuICAgICAgLnNldFR5cGUoTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEpXG4gICAgICAuc2V0UGF5bG9hZChwYXlsb2FkKVxuICAgICAgLnNldE1ldGFkYXRhKG1ldGFkYXRhKVxuICAgICAgLnNldFNpZ25hdHVyZXMoc2lnbmF0dXJlcylcbiAgICAgIC5zZXRTaWduZXJzKHNpZ25lcnMpO1xuXG4gICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcbiAgICBjb25zdCBicm9hZGNhc3RGb3JtYXQgPSBhd2FpdCBtZXNzYWdlLnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG4gICAgY29uc3QgZXhwZWN0ZWRCcm9hZGNhc3RGb3JtYXQ6IEJyb2FkY2FzdGFibGVNZXNzYWdlID0ge1xuICAgICAgdHlwZTogTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEsXG4gICAgICBwYXlsb2FkOiBwYXlsb2FkLFxuICAgICAgc2VyaWFsaXplZFNpZ25hdHVyZXM6IHNlcmlhbGl6ZVNpZ25hdHVyZXMoc2lnbmF0dXJlcyksXG4gICAgICBzaWduZXJzOiBzaWduZXJzLFxuICAgICAgbWV0YWRhdGE6IG1ldGFkYXRhLFxuICAgICAgc2lnbmFibGVQYXlsb2FkOiB1bmRlZmluZWQsXG4gICAgfTtcblxuICAgIHNob3VsZC5kZWVwRXF1YWwoYnJvYWRjYXN0Rm9ybWF0LCBleHBlY3RlZEJyb2FkY2FzdEZvcm1hdCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgY29ycmVjdGx5IGhhbmRsZSBmcm9tQnJvYWRjYXN0Rm9ybWF0JywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGJyb2FkY2FzdE1lc3NhZ2UgPSB7XG4gICAgICB0eXBlOiBNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSxcbiAgICAgIHBheWxvYWQ6ICdicm9hZGNhc3QgdGVzdCcsXG4gICAgICBzaWduYXR1cmVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwdWJsaWNLZXk6IHsgcHViOiAncHViS2V5MScgfSxcbiAgICAgICAgICBzaWduYXR1cmU6IEJ1ZmZlci5mcm9tKCdzaWcxJyksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwdWJsaWNLZXk6IHsgcHViOiAncHViS2V5MicgfSxcbiAgICAgICAgICBzaWduYXR1cmU6IEJ1ZmZlci5mcm9tKCdzaWcyJyksXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgc2lnbmVyczogWydhZGRyMScsICdhZGRyMiddLFxuICAgICAgbWV0YWRhdGE6IHsgY2hhaW5JZDogMSwgZW5jb2Rpbmc6ICd1dGY4JyB9LFxuICAgIH07XG5cbiAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgYnVpbGRlci5mcm9tQnJvYWRjYXN0Rm9ybWF0KGJyb2FkY2FzdE1lc3NhZ2UpO1xuXG4gICAgc2hvdWxkLmVxdWFsKG1lc3NhZ2UuZ2V0VHlwZSgpLCBicm9hZGNhc3RNZXNzYWdlLnR5cGUpO1xuICAgIHNob3VsZC5lcXVhbChtZXNzYWdlLmdldFBheWxvYWQoKSwgYnJvYWRjYXN0TWVzc2FnZS5wYXlsb2FkKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0U2lnbmF0dXJlcygpLCBicm9hZGNhc3RNZXNzYWdlLnNpZ25hdHVyZXMpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRTaWduZXJzKCksIGJyb2FkY2FzdE1lc3NhZ2Uuc2lnbmVycyk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChtZXNzYWdlLmdldE1ldGFkYXRhKCksIGJyb2FkY2FzdE1lc3NhZ2UubWV0YWRhdGEpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGNvcnJlY3RseSBoYW5kbGUgdG9Ccm9hZGNhc3RTdHJpbmcnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcGF5bG9hZCA9ICdzZXJpYWxpemUgbWUnO1xuICAgIGNvbnN0IHNpZ25hdHVyZXMgPSBbXG4gICAgICB7XG4gICAgICAgIHB1YmxpY0tleTogeyBwdWI6ICdwdWJLZXkxJyB9LFxuICAgICAgICBzaWduYXR1cmU6IEJ1ZmZlci5mcm9tKCdzaWcxJyksXG4gICAgICB9LFxuICAgIF07XG4gICAgY29uc3Qgc2lnbmVycyA9IFsnYWRkcjEnXTtcblxuICAgIGJ1aWxkZXIuc2V0VHlwZShNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSkuc2V0UGF5bG9hZChwYXlsb2FkKS5zZXRTaWduYXR1cmVzKHNpZ25hdHVyZXMpLnNldFNpZ25lcnMoc2lnbmVycyk7XG5cbiAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuICAgIGNvbnN0IGJyb2FkY2FzdFN0cmluZyA9IGF3YWl0IG1lc3NhZ2UudG9Ccm9hZGNhc3RTdHJpbmcoKTtcblxuICAgIGNvbnN0IGV4cGVjdGVkSnNvbiA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIHR5cGU6IE1lc3NhZ2VTdGFuZGFyZFR5cGUuRUlQMTkxLFxuICAgICAgcGF5bG9hZDogcGF5bG9hZCxcbiAgICAgIHNlcmlhbGl6ZWRTaWduYXR1cmVzOiBzZXJpYWxpemVTaWduYXR1cmVzKHNpZ25hdHVyZXMpLFxuICAgICAgc2lnbmVyczogc2lnbmVycyxcbiAgICAgIG1ldGFkYXRhOiB7IGVuY29kaW5nOiAndXRmOCcgfSxcbiAgICB9KTtcblxuICAgIHNob3VsZC5lcXVhbChicm9hZGNhc3RTdHJpbmcsIGV4cGVjdGVkSnNvbik7XG4gIH0pO1xufSk7XG4iXX0=
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZU1lc3NhZ2VCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L2FjY291bnQtbGliL2Jhc2VDb2luL21lc3NhZ2VzL2Jhc2VNZXNzYWdlQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGlEQUErQztBQUMvQyxrREFBMEI7QUFDMUIsb0RBQTRCO0FBQzVCLDRDQUFvRztBQUNwRyx5Q0FBZ0Q7QUFFaEQsUUFBUSxDQUFDLHNCQUFzQixFQUFFLEdBQUcsRUFBRTtJQUNwQyxJQUFJLE9BQTJCLENBQUM7SUFDaEMsSUFBSSxjQUFvRCxDQUFDO0lBRXpELFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxjQUFjLEdBQUcsZUFBSyxDQUFDLGtCQUFrQixDQUFDLGtCQUFRLENBQUMsQ0FBQztRQUNwRCxPQUFPLEdBQUcsSUFBSSw2QkFBa0IsQ0FBQyxjQUFxQyxFQUFFLHlCQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RHLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHVDQUF1QyxFQUFFLEdBQUcsRUFBRTtRQUMvQyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLHlCQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVELGdCQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5QyxnQkFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDM0MsZ0JBQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLGdCQUFNLENBQUMs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ICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCBzaW5vbiBmcm9tICdzaW5vbic7XG5pbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgeyBCcm9hZGNhc3RhYmxlTWVzc2FnZSwgTWVzc2FnZVN0YW5kYXJkVHlwZSwgc2VyaWFsaXplU2lnbmF0dXJlcyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NyYyc7XG5pbXBvcnQgeyBUZXN0TWVzc2FnZUJ1aWxkZXIgfSBmcm9tICcuL2ZpeHR1cmVzJztcblxuZGVzY3JpYmUoJ0Jhc2UgTWVzc2FnZSBCdWlsZGVyJywgKCkgPT4ge1xuICBsZXQgYnVpbGRlcjogVGVzdE1lc3NhZ2VCdWlsZGVyO1xuICBsZXQgbW9ja0NvaW5Db25maWc6IHNpbm9uLlNpbm9uU3R1YmJlZEluc3RhbmNlPEJhc2VDb2luPjtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBtb2NrQ29pbkNvbmZpZyA9IHNpbm9uLmNyZWF0ZVN0dWJJbnN0YW5jZShCYXNlQ29pbik7XG4gICAgYnVpbGRlciA9IG5ldyBUZXN0TWVzc2FnZUJ1aWxkZXIobW9ja0NvaW5Db25maWcgYXMgdW5rbm93biBhcyBCYXNlQ29pbiwgTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGluaXRpYWxpemUgd2l0aCBkZWZhdWx0IHZhbHVlcycsICgpID0+IHtcbiAgICBzaG91bGQuZXF1YWwoYnVpbGRlci5nZXRQYXlsb2FkKCksICcnKTtcbiAgICBzaG91bGQuZXF1YWwoYnVpbGRlci5nZXRUeXBlKCksIE1lc3NhZ2VTdGFuZGFyZFR5cGUuRUlQMTkxKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKGJ1aWxkZXIuZ2V0U2lnbmF0dXJlcygpLCBbXSk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChidWlsZGVyLmdldFNpZ25lcnMoKSwgW10pO1xuICAgIHNob3VsZC5kZWVwRXF1YWwoYnVpbGRlci5nZXRNZXRhZGF0YSgpLCB7fSk7XG4gICAgc2hvdWxkLmVxdWFsKGJ1aWxkZXIuZ2V0RGlnZXN0KCksIHVuZGVmaW5lZCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgc2V0IGFuZCBnZXQgcGF5bG9hZCcsICgpID0+IHtcbiAgICBjb25zdCBwYXlsb2FkID0gJ3Rlc3QgcGF5bG9hZCc7XG4gICAgYnVpbGRlci5zZXRQYXlsb2FkKHBheWxvYWQpO1xuICAgIHNob3VsZC5lcXVhbChidWlsZGVyLmdldFBheWxvYWQoKSwgcGF5bG9hZCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgc2V0IGFuZCBnZXQgbWV0YWRhdGEnLCAoKSA9PiB7XG4gICAgY29uc3QgbWV0YWRhdGEgPSB7IGtleTogJ3ZhbHVlJywgbnVtOiAxMjMgfTtcbiAgICBidWlsZGVyLnNldE1ldGFkYXRhKG1ldGFkYXRhKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKGJ1aWxkZXIuZ2V0TWV0YWRhdGEoKSwgbWV0YWRhdGEpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHNldCBhbmQgZ2V0IHR5cGUnLCAoKSA9PiB7XG4gICAgY29uc3QgdHlwZSA9IE1lc3NhZ2VTdGFuZGFyZFR5cGUuVU5LTk9XTjtcbiAgICBidWlsZGVyLnNldFR5cGUodHlwZSk7XG4gICAgc2hvdWxkLmVxdWFsKGJ1aWxkZXIuZ2V0VHlwZSgpLCB0eXBlKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBzZXQgYW5kIGdldCBzaWduYXR1cmVzJywgKCkgPT4ge1xuICAgIGNvbnN0IHNpZ25hdHVyZXMgPSBbXG4gICAgICB7XG4gICAgICAgIHB1YmxpY0tleTogeyBwdWI6ICdwdWJLZXkxJyB9LFxuICAgICAgICBzaWduYXR1cmU6IEJ1ZmZlci5mcm9tKCdzaWcxJyksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwdWJsaWNLZXk6IHsgcHViOiAncHViS2V5MicgfSxcbiAgICAgICAgc2lnbmF0dXJlOiBCdWZmZXIuZnJvbSgnc2lnMicpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcHVibGljS2V5OiB7IHB1YjogJ3B1YktleTMnIH0sXG4gICAgICAgIHNpZ25hdHVyZTogQnVmZmVyLmZyb20oJ3NpZzMnKSxcbiAgICAgIH0sXG4gICAgXTtcbiAgICBidWlsZGVyLnNldFNpZ25hdHVyZXMoc2lnbmF0dXJlcyk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChidWlsZGVyLmdldFNpZ25hdHVyZXMoKSwgc2lnbmF0dXJlcyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgc2V0IGFuZCBnZXQgc2lnbmVycycsICgpID0+IHtcbiAgICBjb25zdCBzaWduZXJzID0gWydhZGRyZXNzMScsICdhZGRyZXNzMicsICdhZGRyZXNzMyddO1xuICAgIGJ1aWxkZXIuc2V0U2lnbmVycyhzaWduZXJzKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKGJ1aWxkZXIuZ2V0U2lnbmVycygpLCBzaWduZXJzKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBzZXQgYW5kIGdldCBkaWdlc3QnLCAoKSA9PiB7XG4gICAgY29uc3QgZGlnZXN0ID0gJzB4MTIzNGFiY2QnO1xuICAgIGJ1aWxkZXIuc2V0RGlnZXN0KGRpZ2VzdCk7XG4gICAgc2hvdWxkLmVxdWFsKGJ1aWxkZXIuZ2V0RGlnZXN0KCksIGRpZ2VzdCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYnVpbGQgYSBtZXNzYWdlIHdpdGggdGhlIGNvcnJlY3QgcHJvcGVydGllcycsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwYXlsb2FkID0gJ3Rlc3QgbWVzc2FnZSc7XG4gICAgY29uc3QgbWV0YWRhdGEgPSB7IGZvbzogJ2JhcicsIGVuY29kaW5nOiAndXRmOCcgfTtcbiAgICBjb25zdCBzaWduYXR1cmVzID0gW1xuICAgICAge1xuICAgICAgICBwdWJsaWNLZXk6IHsgcHViOiAncHViS2V5MScgfSxcbiAgICAgICAgc2lnbmF0dXJlOiBCdWZmZXIuZnJvbSgnc2lnMScpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcHVibGljS2V5OiB7IHB1YjogJ3B1YktleTInIH0sXG4gICAgICAgIHNpZ25hdHVyZTogQnVmZmVyLmZyb20oJ3NpZzInKSxcbiAgICAgIH0sXG4gICAgXTtcbiAgICBjb25zdCBzaWduZXJzID0gWydhZGRyMScsICdhZGRyMiddO1xuXG4gICAgYnVpbGRlclxuICAgICAgLnNldFR5cGUoTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEpXG4gICAgICAuc2V0UGF5bG9hZChwYXlsb2FkKVxuICAgICAgLnNldE1ldGFkYXRhKG1ldGFkYXRhKVxuICAgICAgLnNldFNpZ25hdHVyZXMoc2lnbmF0dXJlcylcbiAgICAgIC5zZXRTaWduZXJzKHNpZ25lcnMpO1xuXG4gICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcblxuICAgIHNob3VsZC5lcXVhbChtZXNzYWdlLmdldFR5cGUoKSwgTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEpO1xuICAgIHNob3VsZC5lcXVhbChtZXNzYWdlLmdldFBheWxvYWQoKSwgcGF5bG9hZCk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChtZXNzYWdlLmdldE1ldGFkYXRhKCksIG1ldGFkYXRhKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0U2lnbmF0dXJlcygpLCBzaWduYXR1cmVzKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0U2lnbmVycygpLCBzaWduZXJzKTtcblxuICAgIGNvbnN0IHNpZ25hYmxlUGF5bG9hZCA9IGF3YWl0IG1lc3NhZ2UuZ2V0U2lnbmFibGVQYXlsb2FkKCk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChzaWduYWJsZVBheWxvYWQsIEJ1ZmZlci5mcm9tKHBheWxvYWQpKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBjb3JyZWN0bHkgaGFuZGxlIHRvQnJvYWRjYXN0Rm9ybWF0JywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHBheWxvYWQgPSAnaGVsbG8gd29ybGQnO1xuICAgIGNvbnN0IG1ldGFkYXRhID0geyB2ZXJzaW9uOiAnMS4wJywgZW5jb2Rpbmc6ICd1dGY4JyB9O1xuICAgIGNvbnN0IHNpZ25hdHVyZXMgPSBbXG4gICAgICB7XG4gICAgICAgIHB1YmxpY0tleTogeyBwdWI6ICdwdWJLZXkxJyB9LFxuICAgICAgICBzaWduYXR1cmU6IEJ1ZmZlci5mcm9tKCdzaWcxJyksXG4gICAgICB9LFxuICAgIF07XG4gICAgY29uc3Qgc2lnbmVycyA9IFsnYWRkcjEnXTtcblxuICAgIGJ1aWxkZXJcbiAgICAgIC5zZXRUeXBlKE1lc3NhZ2VTdGFuZGFyZFR5cGUuRUlQMTkxKVxuICAgICAgLnNldFBheWxvYWQocGF5bG9hZClcbiAgICAgIC5zZXRNZXRhZGF0YShtZXRhZGF0YSlcbiAgICAgIC5zZXRTaWduYXR1cmVzKHNpZ25hdHVyZXMpXG4gICAgICAuc2V0U2lnbmVycyhzaWduZXJzKTtcblxuICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBidWlsZGVyLmJ1aWxkKCk7XG4gICAgY29uc3QgYnJvYWRjYXN0Rm9ybWF0ID0gYXdhaXQgbWVzc2FnZS50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuICAgIGNvbnN0IGV4cGVjdGVkQnJvYWRjYXN0Rm9ybWF0OiBCcm9hZGNhc3RhYmxlTWVzc2FnZSA9IHtcbiAgICAgIHR5cGU6IE1lc3NhZ2VTdGFuZGFyZFR5cGUuRUlQMTkxLFxuICAgICAgcGF5bG9hZDogcGF5bG9hZCxcbiAgICAgIHNlcmlhbGl6ZWRTaWduYXR1cmVzOiBzZXJpYWxpemVTaWduYXR1cmVzKHNpZ25hdHVyZXMpLFxuICAgICAgc2lnbmVyczogc2lnbmVycyxcbiAgICAgIG1ldGFkYXRhOiBtZXRhZGF0YSxcbiAgICAgIHNpZ25hYmxlUGF5bG9hZDogJ2FHVnNiRzhnZDI5eWJHUT0nLFxuICAgIH07XG5cbiAgICBzaG91bGQuZGVlcEVxdWFsKGJyb2FkY2FzdEZvcm1hdCwgZXhwZWN0ZWRCcm9hZGNhc3RGb3JtYXQpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGNvcnJlY3RseSBoYW5kbGUgZnJvbUJyb2FkY2FzdEZvcm1hdCcsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBicm9hZGNhc3RNZXNzYWdlID0ge1xuICAgICAgdHlwZTogTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEsXG4gICAgICBwYXlsb2FkOiAnYnJvYWRjYXN0IHRlc3QnLFxuICAgICAgc2lnbmF0dXJlczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHVibGljS2V5OiB7IHB1YjogJ3B1YktleTEnIH0sXG4gICAgICAgICAgc2lnbmF0dXJlOiBCdWZmZXIuZnJvbSgnc2lnMScpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHVibGljS2V5OiB7IHB1YjogJ3B1YktleTInIH0sXG4gICAgICAgICAgc2lnbmF0dXJlOiBCdWZmZXIuZnJvbSgnc2lnMicpLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHNpZ25lcnM6IFsnYWRkcjEnLCAnYWRkcjInXSxcbiAgICAgIG1ldGFkYXRhOiB7IGNoYWluSWQ6IDEsIGVuY29kaW5nOiAndXRmOCcgfSxcbiAgICB9O1xuXG4gICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGJ1aWxkZXIuZnJvbUJyb2FkY2FzdEZvcm1hdChicm9hZGNhc3RNZXNzYWdlKTtcblxuICAgIHNob3VsZC5lcXVhbChtZXNzYWdlLmdldFR5cGUoKSwgYnJvYWRjYXN0TWVzc2FnZS50eXBlKTtcbiAgICBzaG91bGQuZXF1YWwobWVzc2FnZS5nZXRQYXlsb2FkKCksIGJyb2FkY2FzdE1lc3NhZ2UucGF5bG9hZCk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChtZXNzYWdlLmdldFNpZ25hdHVyZXMoKSwgYnJvYWRjYXN0TWVzc2FnZS5zaWduYXR1cmVzKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0U2lnbmVycygpLCBicm9hZGNhc3RNZXNzYWdlLnNpZ25lcnMpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRNZXRhZGF0YSgpLCBicm9hZGNhc3RNZXNzYWdlLm1ldGFkYXRhKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBjb3JyZWN0bHkgaGFuZGxlIHRvQnJvYWRjYXN0U3RyaW5nJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHBheWxvYWQgPSAnc2VyaWFsaXplIG1lJztcbiAgICBjb25zdCBzaWduYXR1cmVzID0gW1xuICAgICAge1xuICAgICAgICBwdWJsaWNLZXk6IHsgcHViOiAncHViS2V5MScgfSxcbiAgICAgICAgc2lnbmF0dXJlOiBCdWZmZXIuZnJvbSgnc2lnMScpLFxuICAgICAgfSxcbiAgICBdO1xuICAgIGNvbnN0IHNpZ25lcnMgPSBbJ2FkZHIxJ107XG5cbiAgICBidWlsZGVyLnNldFR5cGUoTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEpLnNldFBheWxvYWQocGF5bG9hZCkuc2V0U2lnbmF0dXJlcyhzaWduYXR1cmVzKS5zZXRTaWduZXJzKHNpZ25lcnMpO1xuXG4gICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcbiAgICBjb25zdCBicm9hZGNhc3RTdHJpbmcgPSBhd2FpdCBtZXNzYWdlLnRvQnJvYWRjYXN0U3RyaW5nKCk7XG5cbiAgICBjb25zdCBleHBlY3RlZEpzb24gPSBKU09OLnN0cmluZ2lmeSh7XG4gICAgICB0eXBlOiBNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSxcbiAgICAgIHBheWxvYWQ6IHBheWxvYWQsXG4gICAgICBzZXJpYWxpemVkU2lnbmF0dXJlczogc2VyaWFsaXplU2lnbmF0dXJlcyhzaWduYXR1cmVzKSxcbiAgICAgIHNpZ25lcnM6IHNpZ25lcnMsXG4gICAgICBtZXRhZGF0YTogeyBlbmNvZGluZzogJ3V0ZjgnIH0sXG4gICAgICBzaWduYWJsZVBheWxvYWQ6ICdjMlZ5YVdGc2FYcGxJRzFsJyxcbiAgICB9KTtcblxuICAgIHNob3VsZC5lcXVhbChicm9hZGNhc3RTdHJpbmcsIGV4cGVjdGVkSnNvbik7XG4gIH0pO1xufSk7XG4iXX0=