@wallfree-dev/angular-core 0.0.59-beta.6 → 0.0.59-beta.8

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.
@@ -15,6 +15,7 @@ import { createKusamaProtocol, createPolkadotProtocol, PolkadotModule } from '@w
15
15
  import { createSolanaProtocol, SolanaModule } from '@wallfree-dev/solana';
16
16
  import { createTronProtocol, TronModule } from '@wallfree-dev/tron';
17
17
  import { AptosModule, createAptosProtocol } from '@wallfree-dev/aptos';
18
+ import { SuiModule, createSuiProtocol } from '@wallfree-dev/sui';
18
19
  import { createBTCTezProtocol, createCTezProtocol, createDogamiProtocol, createETHTezProtocol, createKolibriUSDProtocol, createPlentyProtocol, createQuipuswapProtocol, createSiriusProtocol, createStakerProtocol, createTetherUSDProtocol, createTezosFA1p2Protocol, createTezosFA2Protocol, createTezosKtProtocol, createTezosProtocol, createTezosShieldedTezProtocol, createTzBTCProtocol, createUBTCProtocol, createUDEFIProtocol, createUSDTezProtocol, createUUSDProtocol, createWrappedTezosProtocol, createWrapProtocol, createYouProtocol, TezosModule } from '@wallfree-dev/tezos';
19
20
  import BigNumber from '@wallfree-dev/coinlib-core/dependencies/src/bignumber.js-9.0.0/bignumber';
20
21
  import { AirGapTransactionStatus as AirGapTransactionStatusV0, AirGapTransactionWarningType } from '@wallfree-dev/coinlib-core/interfaces/IAirGapTransaction';
@@ -183,6 +184,11 @@ export async function createV0AptosProtocol(...args) {
183
184
  const module = new AptosModule();
184
185
  return createV0Protocol(protocol, module);
185
186
  }
187
+ export async function createV0SuiProtocol(...args) {
188
+ const protocol = createSuiProtocol(...args);
189
+ const module = new SuiModule();
190
+ return createV0Protocol(protocol, module);
191
+ }
186
192
  export async function createV0TezosProtocol(...args) {
187
193
  const protocol = createTezosProtocol(...args);
188
194
  const module = new TezosModule();
@@ -399,4 +405,4 @@ export function getSecretKeyType(secretKey) {
399
405
  export function getPublicKeyType(publicKey) {
400
406
  return publicKey.startsWith('xpub') ? 'xpub' : 'pub';
401
407
  }
402
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdG9jb2wtdjAtYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvdXRpbHMvcHJvdG9jb2wvcHJvdG9jb2wtdjAtYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4QkFBOEI7QUFDOUIsT0FBTyxFQUFFLGVBQWUsRUFBcUIsdUJBQXVCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUNyRyxPQUFPLEVBQUUsV0FBVyxFQUFpQixtQkFBbUIsRUFBRSxvQkFBb0IsRUFBa0IsTUFBTSxxQkFBcUIsQ0FBQTtBQUMzSCxPQUFPLEVBQ0wsZUFBZSxJQUFJLGlCQUFpQixFQUNwQyxXQUFXLElBQUkscUJBQXFCLEVBS3JDLE1BQU0sNEJBQTRCLENBQUE7QUFDbkMsT0FBTyxFQUNMLGdCQUFnQixJQUFJLHdCQUF3QixFQUM1QyxzQkFBc0IsRUFFdEIsY0FBYyxFQUVmLE1BQU0sd0JBQXdCLENBQUE7QUFDL0IsT0FBTyxFQWNMLGdCQUFnQixFQUNoQixTQUFTLEVBVVYsTUFBTSwwQkFBMEIsQ0FBQTtBQUNqQyxPQUFPLEVBQUUsYUFBYSxFQUEwQyxxQkFBcUIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ2pKLE9BQU8sRUFBRSxZQUFZLEVBQWtCLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDekYsT0FBTyxFQUFFLFlBQVksRUFBa0Isb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUN6RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsaUJBQWlCLEVBQXVCLE1BQU0sMkJBQTJCLENBQUE7QUFDN0csT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBZSxNQUFNLG1CQUFtQixDQUFBO0FBQzdFLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUV2QixjQUFjLEVBR2YsTUFBTSx3QkFBd0IsQ0FBQTtBQUMvQixPQUFPLEVBQ0wsZ0JBQWdCLElBQUksd0JBQXdCLEVBQzVDLHNCQUFzQixFQUV0QixjQUFjLEVBRWYsTUFBTSx3QkFBd0IsQ0FBQTtBQUMvQixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsc0JBQXNCLEVBQWtCLGNBQWMsRUFBb0IsTUFBTSx3QkFBd0IsQ0FBQTtBQUN2SSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsWUFBWSxFQUFrQixNQUFNLHNCQUFzQixDQUFBO0FBQ3pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQWdCLE1BQU0sb0JBQW9CLENBQUE7QUFDakYsT0FBTyxFQUFFLFdBQVcsRUFBaUIsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRixPQUFPLEVBRUwsb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNsQixvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLHdCQUF3QixFQUN4QixvQkFBb0IsRUFDcEIsdUJBQXVCLEVBQ3ZCLG9CQUFvQixFQUNwQixvQkFBb0IsRUFDcEIsdUJBQXVCLEVBQ3ZCLHdCQUF3QixFQUN4QixzQkFBc0IsRUFDdEIscUJBQXFCLEVBQ3JCLG1CQUFtQixFQUNuQiw4QkFBOEIsRUFDOUIsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNsQiwwQkFBMEIsRUFDMUIsa0JBQWtCLEVBQ2xCLGlCQUFpQixFQWNqQixXQUFXLEVBWVosTUFBTSxxQkFBcUIsQ0FBQTtBQUM1QixPQUFPLFNBQVMsTUFBTSwwRUFBMEUsQ0FBQTtBQUVoRyxPQUFPLEVBQ0wsdUJBQXVCLElBQUkseUJBQXlCLEVBRXBELDRCQUE0QixFQUM3QixNQUFNLDBEQUEwRCxDQUFBO0FBQ2pFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTtBQUU1RCxPQUFPLEVBQ0wsMEJBQTBCLEVBQzFCLDZCQUE2QixFQUc3Qiw0QkFBNEIsRUFDNUIsc0JBQXNCLEVBQ3ZCLE1BQU0sNENBQTRDLENBQUE7QUFFbkQsVUFBVTtBQUVWLE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxJQUEyQjtJQUNsRSxPQUFPLElBQUksS0FBSyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUE7QUFDM0gsQ0FBQztBQUVELE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxJQUEyQjtJQUNsRSxPQUFPLElBQUksS0FBSyxTQUFTO1FBQ3ZCLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPO1FBQy9CLENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUztZQUNwQixDQUFDLENBQUMscUJBQXFCLENBQUMsT0FBTztZQUMvQixDQUFDLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFBO0FBQ2xDLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsT0FBMEI7SUFDN0QsT0FBTztRQUNMLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtRQUNsQixJQUFJLEVBQUUsd0JBQXdCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztRQUM1QyxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07UUFDdEIsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQyxhQUFhO1FBQ3JELEdBQUcsQ0FBQyxPQUFPLE9BQU8sQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7S0FDOUQsQ0FBQTtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsT0FBMEIsRUFBRSxhQUF1QztJQUN0RyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUE7SUFDL0MsTUFBTSxlQUFlLEdBQTRCLElBQUksNEJBQTRCLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO0lBRTFILE9BQU8sSUFBSSxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsd0JBQXdCLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQTtBQUN4RyxDQUFDO0FBRUQsV0FBVztBQUVYLEtBQUssVUFBVSxnREFBZ0QsQ0FDN0QsTUFBb0IsRUFDcEIsVUFBa0IsRUFDbEIsT0FBc0M7SUFFdEMsTUFBTSxDQUFDLGFBQWEsRUFBRSxxQkFBcUIsQ0FBQyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUMvRCxNQUFNLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQztRQUMvQyxNQUFNLENBQUMsMkJBQTJCLEVBQUU7S0FDckMsQ0FBQyxDQUFBO0lBRUYsT0FBTyxDQUFDLGFBQWEsRUFBRSxxQkFBcUIsQ0FBQyxDQUFBO0FBQy9DLENBQUM7QUFFRCxLQUFLLFVBQVUsb0NBQW9DLENBQ2pELFFBQVcsRUFDWCxNQUFvQjtJQUVwQixNQUFNLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFzRCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDL0YsUUFBUSxDQUFDLFdBQVcsRUFBRTtRQUN0QixnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztLQUNoRixDQUFDLENBQUE7SUFFRixPQUFPLGdEQUFnRCxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFBO0FBQy9GLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLGdCQUFnQixDQUNwQyxRQUFXLEVBQ1gsTUFBb0IsRUFDcEIsT0FBc0MsTUFBTTtJQUU1QyxNQUFNLENBQUMsYUFBYSxFQUFFLHFCQUFxQixDQUFDLEdBQzFDLE1BQU0sb0NBQW9DLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBRTlELE9BQU8sMEJBQTBCLENBQUMsUUFBUSxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7QUFDN0YsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsbUJBQW1CLENBQ3ZDLFFBQVcsRUFDWCxNQUFvQixFQUNwQixPQUFzQyxNQUFNO0lBRTVDLE1BQU0sQ0FBQyxhQUFhLEVBQUUscUJBQXFCLENBQUMsR0FDMUMsTUFBTSxvQ0FBb0MsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFFOUQsT0FBTyw2QkFBNkIsQ0FBQyxRQUFRLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtBQUNoRyxDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxrQkFBa0IsQ0FDdEMsVUFBYSxFQUNiLFFBQTJCLEVBQzNCLE1BQW9CLEVBQ3BCLE9BQXNDLE1BQU07SUFFNUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsR0FBc0QsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQy9GLFFBQVEsQ0FBQyxXQUFXLEVBQUU7UUFDdEIsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7S0FDcEYsQ0FBQyxDQUFBO0lBRUYsTUFBTSxDQUFDLGFBQWEsRUFBRSxxQkFBcUIsQ0FBQyxHQUFHLE1BQU0sZ0RBQWdELENBQ25HLE1BQU0sRUFDTixRQUFRLENBQUMsVUFBVSxFQUNuQixPQUFPLENBQ1IsQ0FBQTtJQUVELE9BQU8sNkJBQTZCLENBQUMsVUFBVSxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7QUFDbEcsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUseUJBQXlCLENBQzdDLEdBQUcsSUFBZ0Q7SUFFbkQsTUFBTSxRQUFRLEdBQXNCLHVCQUF1QixDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUE7SUFDcEUsTUFBTSxNQUFNLEdBQW9CLElBQUksZUFBZSxFQUFFLENBQUE7SUFFckQsT0FBTyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUE7QUFDM0MsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUscUJBQXFCLENBQUMsR0FBRyxJQUE0QztJQUN6RixNQUFNLFFBQVEsR0FBa0IsbUJBQW1CLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtJQUM1RCxNQUFNLE1BQU0sR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQTtJQUU3QyxPQUFPLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUMzQyxDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxzQkFBc0IsQ0FDMUMsR0FBRyxJQUE2QztJQUVoRCxNQUFNLFFBQVEsR0FBbUIsb0JBQW9CLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtJQUM5RCxNQUFNLE1BQU0sR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQTtJQUU3QyxPQUFPLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUMzQyxDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSx1QkFBdUIsQ0FDM0MsR0FBRyxJQUE4QztJQUVqRCxNQUFNLFFBQVEsR0FBb0IscUJBQXFCLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtJQUNoRSxNQUFNLE1BQU0sR0FBa0IsSUFBSSxhQUFhLEVBQUUsQ0FBQTtJQUVqRCxPQUFPLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUMzQyxDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSw2QkFBNkIsQ0FDakQsR0FBRyxJQUFvRDtJQUV2RCxNQUFNLFFBQVEsR0FBMEIsMkJBQTJCLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtJQUM1RSxNQUFNLE1BQU0sR0FBa0IsSUFBSSxhQUFhLEVBQUUsQ0FBQTtJQUVqRCxPQUFPLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUMzQyxDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxzQkFBc0IsQ0FDMUMsR0FBRyxJQUE2QztJQUVoRCxNQUFNLFFBQVEsR0FBbUIsb0JBQW9CLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtJQUM5RCxNQUFNLE1BQU0sR0FBaUIsSUFBSSxZQUFZLEVBQUUsQ0FBQTtJQUUvQyxPQUFPLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUMzQyxDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxzQkFBc0IsQ0FDMUMsR0FBRyxJQUE2QztJQUVoRCxNQUFNLFFBQVEsR0FBbUIsb0JBQW9CLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtJQUM5RCxNQUFNLE1BQU0sR0FBaUIsSUFBSSxZQUFZLEVBQUUsQ0FBQTtJQUUvQyxPQUFPLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUMzQyxDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSx3QkFBd0IsQ0FDNUMsR0FBRyxJQUErQztJQUVsRCxNQUFNLFFBQVEsR0FBcUIsc0JBQXNCLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtJQUNsRSxNQUFNLE1BQU0sR0FBbUIsSUFBSSxjQUFjLEVBQUUsQ0FBQTtJQUVuRCxPQUFPLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUMzQyxDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSwwQkFBMEIsQ0FDOUMsR0FBRyxJQUFpRDtJQUVwRCxNQUFNLFVBQVUsR0FBdUIsd0JBQXdCLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtJQUN4RSxNQUFNLGdCQUFnQixHQUFxQixzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUMxRSxNQUFNLE1BQU0sR0FBbUIsSUFBSSxjQUFjLEVBQUUsQ0FBQTtJQUVuRCxPQUFPLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUNqRSxDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSwyQkFBMkIsQ0FDL0MsR0FBRyxJQUFrRDtJQUVyRCxNQUFNLFFBQVEsR0FBd0IseUJBQXlCLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtJQUN4RSxNQUFNLE1BQU0sR0FBc0IsSUFBSSxpQkFBaUIsRUFBRSxDQUFBO0lBRXpELE9BQU8sZ0JBQWdCLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0FBQzNDLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLG1CQUFtQixDQUFDLEdBQUcsSUFBMEM7SUFDckYsTUFBTSxRQUFRLEdBQWdCLGlCQUFpQixDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUE7SUFDeEQsTUFBTSxNQUFNLEdBQWMsSUFBSSxTQUFTLEVBQUUsQ0FBQTtJQUV6QyxPQUFPLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUMzQyxDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSx3QkFBd0IsQ0FDNUMsR0FBRyxJQUErQztJQUVsRCxNQUFNLFFBQVEsR0FBcUIsc0JBQXNCLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtJQUNsRSxNQUFNLE1BQU0sR0FBbUIsSUFBSSxjQUFjLEVBQUUsQ0FBQTtJQUVuRCxPQUFPLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUMzQyxDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSx5QkFBeUIsQ0FDN0MsR0FBRyxJQUFnRDtJQUVuRCxNQUFNLFFBQVEsR0FBc0IsdUJBQXVCLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtJQUNwRSxNQUFNLE1BQU0sR0FBbUIsSUFBSSxjQUFjLEVBQUUsQ0FBQTtJQUVuRCxPQUFPLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUMzQyxDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSx3QkFBd0IsQ0FDNUMsR0FBRyxJQUErQztJQUVsRCxNQUFNLFFBQVEsR0FBcUIsc0JBQXNCLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtJQUNsRSxNQUFNLE1BQU0sR0FBbUIsSUFBSSxjQUFjLEVBQUUsQ0FBQTtJQUVuRCxPQUFPLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUMzQyxDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSx3QkFBd0IsQ0FDNUMsR0FBRyxJQUErQztJQUVsRCxNQUFNLFFBQVEsR0FBcUIsc0JBQXNCLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtJQUNsRSxNQUFNLE1BQU0sR0FBbUIsSUFBSSxjQUFjLEVBQUUsQ0FBQTtJQUVuRCxPQUFPLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUMzQyxDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSwwQkFBMEIsQ0FDOUMsR0FBRyxJQUFpRDtJQUVwRCxNQUFNLFVBQVUsR0FBdUIsd0JBQXdCLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtJQUN4RSxNQUFNLGdCQUFnQixHQUFxQixzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUMxRSxNQUFNLE1BQU0sR0FBbUIsSUFBSSxjQUFjLEVBQUUsQ0FBQTtJQUVuRCxPQUFPLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUNqRSxDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSx3QkFBd0IsQ0FDNUMsR0FBRyxJQUErQztJQUVsRCxNQUFNLFFBQVEsR0FBcUIsc0JBQXNCLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtJQUNsRSxNQUFNLE1BQU0sR0FBbUIsSUFBSSxjQUFjLEVBQUUsQ0FBQTtJQUVuRCxPQUFPLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUMzQyxDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxzQkFBc0IsQ0FDMUMsR0FBRyxJQUE2QztJQUVoRCxNQUFNLFFBQVEsR0FBbUIsb0JBQW9CLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtJQUM5RCxNQUFNLE1BQU0sR0FBbUIsSUFBSSxjQUFjLEVBQUUsQ0FBQTtJQUVuRCxPQUFPLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUMzQyxDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxzQkFBc0IsQ0FDMUMsR0FBRyxJQUE2QztJQUVoRCxNQUFNLFFBQVEsR0FBbUIsb0JBQW9CLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtJQUM5RCxNQUFNLE1BQU0sR0FBUSxJQUFJLFlBQVksRUFBRSxDQUFBO0lBRXRDLE9BQU8sZ0JBQWdCLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0FBQzNDLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLG9CQUFvQixDQUN4QyxHQUFHLElBQTJDO0lBRTlDLE1BQU0sUUFBUSxHQUFpQixrQkFBa0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO0lBQzFELE1BQU0sTUFBTSxHQUFlLElBQUksVUFBVSxFQUFFLENBQUE7SUFFM0MsT0FBTyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUE7QUFDM0MsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUscUJBQXFCLENBQ3pDLEdBQUcsSUFBNEM7SUFFL0MsTUFBTSxRQUFRLEdBQWtCLG1CQUFtQixDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUE7SUFDNUQsTUFBTSxNQUFNLEdBQWdCLElBQUksV0FBVyxFQUFFLENBQUE7SUFFN0MsT0FBTyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUE7QUFDM0MsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUscUJBQXFCLENBQUMsR0FBRyxJQUE0QztJQUN6RixNQUFNLFFBQVEsR0FBa0IsbUJBQW1CLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtJQUM1RCxNQUFNLE1BQU0sR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQTtJQUU3QyxPQUFPLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUMzQyxDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxnQ0FBZ0MsQ0FDcEQsR0FBRyxJQUF1RDtJQUUxRCxNQUFNLFFBQVEsR0FBNkIsOEJBQThCLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtJQUNsRixNQUFNLE1BQU0sR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQTtJQUU3QyxPQUFPLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUMzQyxDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSx1QkFBdUIsQ0FDM0MsR0FBRyxJQUE4QztJQUVqRCxNQUFNLFFBQVEsR0FBb0IscUJBQXFCLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtJQUNoRSxNQUFNLE1BQU0sR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQTtJQUU3QyxPQUFPLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUM5QyxDQUFDO0FBRUQsS0FBSyxVQUFVLHVCQUF1QixDQUNwQyxVQUFhLEVBQ2IsWUFBcUQsRUFDckQsT0FBc0MsTUFBTTtJQUU1QyxNQUFNLGFBQWEsR0FBa0IsbUJBQW1CLENBQUMsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQTtJQUNuRixNQUFNLE1BQU0sR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQTtJQUU3QyxNQUFNLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFzRCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDL0YsYUFBYSxDQUFDLFdBQVcsRUFBRTtRQUMzQixnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztLQUNwRixDQUFDLENBQUE7SUFFRixNQUFNLENBQUMsYUFBYSxFQUFFLHFCQUFxQixDQUFDLEdBQUcsTUFBTSxnREFBZ0QsQ0FDbkcsTUFBTSxFQUNOLFFBQVEsQ0FBQyxVQUFVLEVBQ25CLE9BQU8sQ0FDUixDQUFBO0lBRUQsT0FBTyw2QkFBNkIsQ0FBQyxVQUFVLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtBQUNsRyxDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSwwQkFBMEIsQ0FDOUMsR0FBRyxJQUFpRDtJQUVwRCxNQUFNLGFBQWEsR0FBdUIsd0JBQXdCLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtJQUUzRSxPQUFPLHVCQUF1QixDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUE7QUFDaEUsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsd0JBQXdCLENBQzVDLEdBQUcsSUFBK0M7SUFFbEQsTUFBTSxXQUFXLEdBQXFCLHNCQUFzQixDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUE7SUFFckUsT0FBTyx1QkFBdUIsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0FBQzlELENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLDJCQUEyQixDQUMvQyxHQUFHLElBQTZDO0lBRWhELE1BQU0sUUFBUSxHQUFtQixvQkFBb0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO0lBQzlELE1BQU0sTUFBTSxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFBO0lBRTdDLE9BQU8sbUJBQW1CLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0FBQzlDLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLHlCQUF5QixDQUM3QyxHQUFHLElBQTJDO0lBRTlDLE1BQU0sUUFBUSxHQUFpQixrQkFBa0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO0lBQzFELE1BQU0sTUFBTSxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFBO0lBRTdDLE9BQU8sbUJBQW1CLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0FBQzlDLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLDJCQUEyQixDQUMvQyxHQUFHLElBQTZDO0lBRWhELE1BQU0sUUFBUSxHQUFtQixvQkFBb0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO0lBQzlELE1BQU0sTUFBTSxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFBO0lBRTdDLE9BQU8sbUJBQW1CLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0FBQzlDLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLDJCQUEyQixDQUMvQyxHQUFHLElBQTZDO0lBRWhELE1BQU0sUUFBUSxHQUFtQixvQkFBb0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO0lBQzlELE1BQU0sTUFBTSxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFBO0lBRTdDLE9BQU8sbUJBQW1CLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0FBQzlDLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLCtCQUErQixDQUNuRCxHQUFHLElBQWlEO0lBRXBELE1BQU0sUUFBUSxHQUF1Qix3QkFBd0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO0lBQ3RFLE1BQU0sTUFBTSxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFBO0lBRTdDLE9BQU8sbUJBQW1CLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0FBQzlDLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLDJCQUEyQixDQUMvQyxHQUFHLElBQTZDO0lBRWhELE1BQU0sUUFBUSxHQUFtQixvQkFBb0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO0lBQzlELE1BQU0sTUFBTSxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFBO0lBRTdDLE9BQU8sbUJBQW1CLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0FBQzlDLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLDhCQUE4QixDQUNsRCxHQUFHLElBQWdEO0lBRW5ELE1BQU0sUUFBUSxHQUFzQix1QkFBdUIsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO0lBQ3BFLE1BQU0sTUFBTSxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFBO0lBRTdDLE9BQU8sbUJBQW1CLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0FBQzlDLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLDJCQUEyQixDQUMvQyxHQUFHLElBQTZDO0lBRWhELE1BQU0sUUFBUSxHQUFtQixvQkFBb0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO0lBQzlELE1BQU0sTUFBTSxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFBO0lBRTdDLE9BQU8sbUJBQW1CLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0FBQzlDLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLDJCQUEyQixDQUMvQyxHQUFHLElBQTZDO0lBRWhELE1BQU0sUUFBUSxHQUFtQixvQkFBb0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO0lBQzlELE1BQU0sTUFBTSxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFBO0lBRTdDLE9BQU8sbUJBQW1CLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0FBQzlDLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLDhCQUE4QixDQUNsRCxHQUFHLElBQWdEO0lBRW5ELE1BQU0sUUFBUSxHQUFzQix1QkFBdUIsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO0lBQ3BFLE1BQU0sTUFBTSxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFBO0lBRTdDLE9BQU8sbUJBQW1CLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0FBQzlDLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLDBCQUEwQixDQUM5QyxHQUFHLElBQTRDO0lBRS9DLE1BQU0sUUFBUSxHQUFrQixtQkFBbUIsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO0lBQzVELE1BQU0sTUFBTSxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFBO0lBRTdDLE9BQU8sbUJBQW1CLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0FBQzlDLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLHlCQUF5QixDQUM3QyxHQUFHLElBQTJDO0lBRTlDLE1BQU0sUUFBUSxHQUFpQixrQkFBa0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO0lBQzFELE1BQU0sTUFBTSxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFBO0lBRTdDLE9BQU8sbUJBQW1CLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0FBQzlDLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLDBCQUEwQixDQUM5QyxHQUFHLElBQTRDO0lBRS9DLE1BQU0sUUFBUSxHQUFrQixtQkFBbUIsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO0lBQzVELE1BQU0sTUFBTSxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFBO0lBRTdDLE9BQU8sbUJBQW1CLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0FBQzlDLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLDJCQUEyQixDQUMvQyxHQUFHLElBQTZDO0lBRWhELE1BQU0sUUFBUSxHQUFtQixvQkFBb0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO0lBQzlELE1BQU0sTUFBTSxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFBO0lBRTdDLE9BQU8sbUJBQW1CLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0FBQzlDLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLHlCQUF5QixDQUM3QyxHQUFHLElBQTJDO0lBRTlDLE1BQU0sUUFBUSxHQUFpQixrQkFBa0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO0lBQzFELE1BQU0sTUFBTSxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFBO0lBRTdDLE9BQU8sbUJBQW1CLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0FBQzlDLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLDRCQUE0QixDQUNoRCxHQUFHLElBQW1EO0lBRXRELE1BQU0sUUFBUSxHQUF5QiwwQkFBMEIsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO0lBQzFFLE1BQU0sTUFBTSxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFBO0lBRTdDLE9BQU8sbUJBQW1CLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0FBQzlDLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLHlCQUF5QixDQUM3QyxHQUFHLElBQTJDO0lBRTlDLE1BQU0sUUFBUSxHQUFpQixrQkFBa0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO0lBQzFELE1BQU0sTUFBTSxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFBO0lBRTdDLE9BQU8sbUJBQW1CLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0FBQzlDLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLHdCQUF3QixDQUM1QyxHQUFHLElBQTBDO0lBRTdDLE1BQU0sUUFBUSxHQUFnQixpQkFBaUIsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO0lBQ3hELE1BQU0sTUFBTSxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFBO0lBRTdDLE9BQU8sbUJBQW1CLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0FBQzlDLENBQUM7QUFFRCxjQUFjO0FBRWQsTUFBTSxVQUFVLDhCQUE4QixDQUFDLE1BQWlDO0lBQzlFLE9BQU8sTUFBTSxDQUFDLElBQUksS0FBSyxTQUFTO1FBQzlCLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPO1FBQ25DLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLFFBQVE7WUFDMUIsQ0FBQyxDQUFDLHlCQUF5QixDQUFDLE1BQU07WUFDbEMsQ0FBQyxDQUFDLFNBQVMsQ0FBQTtBQUNmLENBQUM7QUFFRCxTQUFTLHNCQUFzQixDQUFDLE9BQTJCO0lBQ3pELE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQXdCLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDaEQsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSztRQUN2QixJQUFJLEVBQUUsRUFBRTtLQUNULENBQUMsQ0FBQyxDQUFBO0FBQ0wsQ0FBQztBQUVELFNBQVMscUJBQXFCLENBQUMsTUFBeUI7SUFDdEQsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBc0IsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM3QyxJQUFJLEVBQ0YsS0FBSyxDQUFDLElBQUksS0FBSyxTQUFTO1lBQ3RCLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQyxPQUFPO1lBQ3RDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLE1BQU07Z0JBQ3ZCLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJO2dCQUNuQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxTQUFTO29CQUMxQixDQUFDLENBQUMsNEJBQTRCLENBQUMsT0FBTztvQkFDdEMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDLEtBQUs7UUFDeEMsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSztRQUN4QixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLO1FBQ3BDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtRQUNoQixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO0tBQzNFLENBQUMsQ0FBQyxDQUFBO0FBQ0wsQ0FBQztBQVlELHdDQUF3QztBQUN4QyxNQUFNLENBQUMsS0FBSyxVQUFVLCtCQUErQixDQUNuRCxHQUEwQixFQUMxQixrQkFBMkQsRUFDM0Qsa0JBQTBEO0lBRTFELE1BQU0sZ0JBQWdCLEdBQXFCLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDO1FBQzdFLENBQUMsQ0FBQyxNQUFNLGtCQUFrQixDQUFDLFdBQVcsRUFBRTtRQUN4QyxDQUFDLENBQUMsa0JBQWtCLENBQUE7SUFFdEIsTUFBTSxTQUFTLEdBQXNCLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDO1FBQ3ZFLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzdELENBQUMsQ0FBQyxrQkFBa0IsWUFBWSxpQkFBaUI7WUFDakQsQ0FBQyxDQUFDLGtCQUFrQjtZQUNwQixDQUFDLENBQUMsb0JBQW9CLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtJQUU1QyxNQUFNLEtBQUssR0FBMEIsZ0JBQWdCLENBQUMsS0FBSyxDQUFBO0lBQzNELE1BQU0sUUFBUSxHQUEwQixnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsS0FBSyxJQUFJLEtBQUssQ0FBQTtJQUU1RSxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUF1QixFQUF1QixFQUFFO1FBQzlELE9BQU87WUFDTCxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUk7WUFDYixFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUU7WUFDVCxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVM7WUFFdkIsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUs7WUFDcEQsR0FBRyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUs7WUFFakQsU0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTO1lBQ3ZCLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxpQkFBaUI7WUFDdkMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxhQUFhO1lBRS9CLGtCQUFrQixFQUFFLGdCQUFnQixDQUFDLFVBQTZCO1lBQ2xFLE9BQU8sRUFBRSxTQUFTO1lBRWxCLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxhQUFhLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBRXJGLElBQUksRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLElBQUk7WUFDckIsV0FBVyxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSztZQUM3QixNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsOEJBQThCLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO1lBRXpFLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFFdEUsS0FBSyxFQUFFO2dCQUNMLEdBQUcsRUFBRSxDQUFDLEtBQUs7Z0JBQ1gsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJO2FBQ2Q7WUFDRCxrQkFBa0IsRUFBRSxFQUFFLENBQUMsSUFBSTtTQUM1QixDQUFBO0lBQ0gsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDO0FBRUQsY0FBYztBQUVkLE1BQU0sVUFBVSx3QkFBd0IsQ0FBMkIsV0FBMEIsRUFBRSxRQUFnQjtJQUM3RyxPQUFPO1FBQ0wsR0FBRyxFQUFFLFNBQVMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLFlBQVksQ0FBQztRQUNoRixNQUFNLEVBQUUsU0FBUyxDQUFDLElBQUksU0FBUyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsWUFBWSxDQUFDO1FBQ3RGLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSSxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxZQUFZLENBQUM7S0FDbkYsQ0FBQTtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsV0FBMEIsRUFBRSxnQkFBa0M7SUFDckcsTUFBTSxRQUFRLEdBQTBCLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxLQUFLLElBQUksZ0JBQWdCLENBQUMsS0FBSyxDQUFBO0lBQzdGLE1BQU0sT0FBTyxHQUFXLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxRQUFRLElBQUksZ0JBQWdCLENBQUMsUUFBUSxDQUFBO0lBRW5GLE9BQU87UUFDTCxHQUFHLEVBQUUsSUFBSSxTQUFTLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRTtRQUN6RixNQUFNLEVBQUUsSUFBSSxTQUFTLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRTtRQUMvRixJQUFJLEVBQUUsSUFBSSxTQUFTLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRTtLQUM1RixDQUFBO0FBQ0gsQ0FBQztBQUVELFFBQVE7QUFFUixNQUFNLFVBQVUsc0JBQXNCLENBQUMsS0FBYTtJQUNsRCxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUE7QUFDekMsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxTQUFpQjtJQUNoRCxPQUFPLFNBQVMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFBO0FBQ3hELENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsU0FBaUI7SUFDaEQsT0FBTyxTQUFTLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQTtBQUN0RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbWF4LWxpbmVzICovXG5pbXBvcnQgeyBBZXRlcm5pdHlNb2R1bGUsIEFldGVybml0eVByb3RvY29sLCBjcmVhdGVBZXRlcm5pdHlQcm90b2NvbCB9IGZyb20gJ0B3YWxsZnJlZS1kZXYvYWV0ZXJuaXR5J1xuaW1wb3J0IHsgQXN0YXJNb2R1bGUsIEFzdGFyUHJvdG9jb2wsIGNyZWF0ZUFzdGFyUHJvdG9jb2wsIGNyZWF0ZVNoaWRlblByb3RvY29sLCBTaGlkZW5Qcm90b2NvbCB9IGZyb20gJ0B3YWxsZnJlZS1kZXYvYXN0YXInXG5pbXBvcnQge1xuICBQcm90b2NvbE5ldHdvcmsgYXMgUHJvdG9jb2xOZXR3b3JrVjAsXG4gIE5ldHdvcmtUeXBlIGFzIFByb3RvY29sTmV0d29ya1R5cGVWMCxcbiAgUHJvdG9jb2xCbG9ja0V4cGxvcmVyIGFzIFByb3RvY29sQmxvY2tFeHBsb3JlclYwLFxuICBGZWVEZWZhdWx0cyBhcyBGZWVEZWZhdWx0c1YwLFxuICBJQWlyR2FwVHJhbnNhY3Rpb24gYXMgQWlyR2FwVHJhbnNhY3Rpb25WMCxcbiAgUHJvdG9jb2xTeW1ib2xzXG59IGZyb20gJ0B3YWxsZnJlZS1kZXYvY29pbmxpYi1jb3JlJ1xuaW1wb3J0IHtcbiAgY3JlYXRlRVJDMjBUb2tlbiBhcyBjcmVhdGVFdGhlcmV1bUVSQzIwVG9rZW4sXG4gIGNyZWF0ZUV0aGVyZXVtUHJvdG9jb2wsXG4gIEVSQzIwVG9rZW4gYXMgRXRoZXJldW1FUkMyMFRva2VuLFxuICBFdGhlcmV1bU1vZHVsZSxcbiAgRXRoZXJldW1Qcm90b2NvbFxufSBmcm9tICdAd2FsbGZyZWUtZGV2L2V0aGVyZXVtJ1xuaW1wb3J0IHtcbiAgQWlyR2FwQW55UHJvdG9jb2wsXG4gIEFpckdhcEJsb2NrRXhwbG9yZXIgYXMgUHJvdG9jb2xCbG9ja0V4cGxvcmVyVjEsXG4gIEFpckdhcE1vZHVsZSxcbiAgQWlyR2FwT25saW5lUHJvdG9jb2wsXG4gIEFpckdhcFRyYW5zYWN0aW9uIGFzIEFpckdhcFRyYW5zYWN0aW9uVjEsXG4gIEFpckdhcFRyYW5zYWN0aW9uU3RhdHVzIGFzIEFpckdhcFRyYW5zYWN0aW9uU3RhdHVzVjEsXG4gIEFpckdhcFVJQWN0aW9uIGFzIEFpckdhcFVJQWN0aW9uVjEsXG4gIEFpckdhcFVJQWxlcnQgYXMgQWlyR2FwVUlBbGVydFYxLFxuICBBaXJHYXBWM1NlcmlhbGl6ZXJDb21wYW5pb24sXG4gIEJ5dGVzU3RyaW5nRm9ybWF0LFxuICBFeHRlbmRlZFB1YmxpY0tleSxcbiAgRXh0ZW5kZWRTZWNyZXRLZXksXG4gIEZlZURlZmF1bHRzIGFzIEZlZURlZmF1bHRzVjEsXG4gIGlzT25saW5lUHJvdG9jb2wsXG4gIG5ld0Ftb3VudCxcbiAgUHJvdG9jb2xDb25maWd1cmF0aW9uLFxuICBQcm90b2NvbE1ldGFkYXRhLFxuICBQcm90b2NvbE5ldHdvcmsgYXMgUHJvdG9jb2xOZXR3b3JrVjEsXG4gIFByb3RvY29sTmV0d29ya1R5cGUgYXMgUHJvdG9jb2xOZXR3b3JrVHlwZVYxLFxuICBQcm90b2NvbFVuaXRzTWV0YWRhdGEsXG4gIFB1YmxpY0tleSxcbiAgUmVjdXJzaXZlUGFydGlhbCxcbiAgU2VjcmV0S2V5LFxuICBTdWJQcm90b2NvbFxufSBmcm9tICdAd2FsbGZyZWUtZGV2L21vZHVsZS1raXQnXG5pbXBvcnQgeyBCaXRjb2luTW9kdWxlLCBCaXRjb2luUHJvdG9jb2wsIEJpdGNvaW5TZWd3aXRQcm90b2NvbCwgY3JlYXRlQml0Y29pblByb3RvY29sLCBjcmVhdGVCaXRjb2luU2Vnd2l0UHJvdG9jb2wgfSBmcm9tICdAd2FsbGZyZWUtZGV2L2JpdGNvaW4nXG5pbXBvcnQgeyBDb3JldW1Nb2R1bGUsIENvcmV1bVByb3RvY29sLCBjcmVhdGVDb3JldW1Qcm90b2NvbCB9IGZyb20gJ0B3YWxsZnJlZS1kZXYvY29yZXVtJ1xuaW1wb3J0IHsgQ29zbW9zTW9kdWxlLCBDb3Ntb3NQcm90b2NvbCwgY3JlYXRlQ29zbW9zUHJvdG9jb2wgfSBmcm9tICdAd2FsbGZyZWUtZGV2L2Nvc21vcydcbmltcG9ydCB7IGNyZWF0ZUdyb2VzdGxjb2luUHJvdG9jb2wsIEdyb2VzdGxjb2luTW9kdWxlLCBHcm9lc3RsY29pblByb3RvY29sIH0gZnJvbSAnQHdhbGxmcmVlLWRldi9ncm9lc3RsY29pbidcbmltcG9ydCB7IGNyZWF0ZUlDUFByb3RvY29sLCBJQ1BNb2R1bGUsIElDUFByb3RvY29sIH0gZnJvbSAnQHdhbGxmcmVlLWRldi9pY3AnXG5pbXBvcnQge1xuICBjcmVhdGVNb29uYmFzZVByb3RvY29sLFxuICBjcmVhdGVNb29uYmVhbVByb3RvY29sLFxuICBjcmVhdGVNb29ucml2ZXJQcm90b2NvbCxcbiAgTW9vbmJhc2VQcm90b2NvbCxcbiAgTW9vbmJlYW1Nb2R1bGUsXG4gIE1vb25iZWFtUHJvdG9jb2wsXG4gIE1vb25yaXZlclByb3RvY29sXG59IGZyb20gJ0B3YWxsZnJlZS1kZXYvbW9vbmJlYW0nXG5pbXBvcnQge1xuICBjcmVhdGVFUkMyMFRva2VuIGFzIGNyZWF0ZU9wdGltaXNtRVJDMjBUb2tlbixcbiAgY3JlYXRlT3B0aW1pc21Qcm90b2NvbCxcbiAgRVJDMjBUb2tlbiBhcyBPcHRpbWlzbUVSQzIwVG9rZW4sXG4gIE9wdGltaXNtTW9kdWxlLFxuICBPcHRpbWlzbVByb3RvY29sXG59IGZyb20gJ0B3YWxsZnJlZS1kZXYvb3B0aW1pc20nXG5pbXBvcnQgeyBjcmVhdGVLdXNhbWFQcm90b2NvbCwgY3JlYXRlUG9sa2Fkb3RQcm90b2NvbCwgS3VzYW1hUHJvdG9jb2wsIFBvbGthZG90TW9kdWxlLCBQb2xrYWRvdFByb3RvY29sIH0gZnJvbSAnQHdhbGxmcmVlLWRldi9wb2xrYWRvdCdcbmltcG9ydCB7IGNyZWF0ZVNvbGFuYVByb3RvY29sLCBTb2xhbmFNb2R1bGUsIFNvbGFuYVByb3RvY29sIH0gZnJvbSAnQHdhbGxmcmVlLWRldi9zb2xhbmEnXG5pbXBvcnQgeyBjcmVhdGVUcm9uUHJvdG9jb2wsIFRyb25Nb2R1bGUsIFRyb25Qcm90b2NvbCB9IGZyb20gJ0B3YWxsZnJlZS1kZXYvdHJvbidcbmltcG9ydCB7IEFwdG9zTW9kdWxlLCBBcHRvc1Byb3RvY29sLCBjcmVhdGVBcHRvc1Byb3RvY29sIH0gZnJvbSAnQHdhbGxmcmVlLWRldi9hcHRvcydcbmltcG9ydCB7XG4gIEJUQ1RlelByb3RvY29sLFxuICBjcmVhdGVCVENUZXpQcm90b2NvbCxcbiAgY3JlYXRlQ1RlelByb3RvY29sLFxuICBjcmVhdGVEb2dhbWlQcm90b2NvbCxcbiAgY3JlYXRlRVRIVGV6UHJvdG9jb2wsXG4gIGNyZWF0ZUtvbGlicmlVU0RQcm90b2NvbCxcbiAgY3JlYXRlUGxlbnR5UHJvdG9jb2wsXG4gIGNyZWF0ZVF1aXB1c3dhcFByb3RvY29sLFxuICBjcmVhdGVTaXJpdXNQcm90b2NvbCxcbiAgY3JlYXRlU3Rha2VyUHJvdG9jb2wsXG4gIGNyZWF0ZVRldGhlclVTRFByb3RvY29sLFxuICBjcmVhdGVUZXpvc0ZBMXAyUHJvdG9jb2wsXG4gIGNyZWF0ZVRlem9zRkEyUHJvdG9jb2wsXG4gIGNyZWF0ZVRlem9zS3RQcm90b2NvbCxcbiAgY3JlYXRlVGV6b3NQcm90b2NvbCxcbiAgY3JlYXRlVGV6b3NTaGllbGRlZFRlelByb3RvY29sLFxuICBjcmVhdGVUekJUQ1Byb3RvY29sLFxuICBjcmVhdGVVQlRDUHJvdG9jb2wsXG4gIGNyZWF0ZVVERUZJUHJvdG9jb2wsXG4gIGNyZWF0ZVVTRFRlelByb3RvY29sLFxuICBjcmVhdGVVVVNEUHJvdG9jb2wsXG4gIGNyZWF0ZVdyYXBwZWRUZXpvc1Byb3RvY29sLFxuICBjcmVhdGVXcmFwUHJvdG9jb2wsXG4gIGNyZWF0ZVlvdVByb3RvY29sLFxuICBDVGV6UHJvdG9jb2wsXG4gIERvZ2FtaVByb3RvY29sLFxuICBFVEhUZXpQcm90b2NvbCxcbiAgS29saWJyaVVTRFByb3RvY29sLFxuICBQbGVudHlQcm90b2NvbCxcbiAgUXVpcHVzd2FwUHJvdG9jb2wsXG4gIFNpcml1c1Byb3RvY29sLFxuICBTdGFrZXJQcm90b2NvbCxcbiAgVGV0aGVyVVNEUHJvdG9jb2wsXG4gIFRlem9zRkExcDJQcm90b2NvbCxcbiAgVGV6b3NGQTJQcm90b2NvbCxcbiAgVGV6b3NGQVByb3RvY29sLFxuICBUZXpvc0t0UHJvdG9jb2wsXG4gIFRlem9zTW9kdWxlLFxuICBUZXpvc1Byb3RvY29sLFxuICBUZXpvc1Byb3RvY29sTmV0d29yayxcbiAgVGV6b3NTaGllbGRlZFRlelByb3RvY29sLFxuICBUekJUQ1Byb3RvY29sLFxuICBVQlRDUHJvdG9jb2wsXG4gIFVERUZJUHJvdG9jb2wsXG4gIFVTRFRlelByb3RvY29sLFxuICBVVVNEUHJvdG9jb2wsXG4gIFdyYXBwZWRUZXpvc1Byb3RvY29sLFxuICBXcmFwUHJvdG9jb2wsXG4gIFlvdVByb3RvY29sXG59IGZyb20gJ0B3YWxsZnJlZS1kZXYvdGV6b3MnXG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ0B3YWxsZnJlZS1kZXYvY29pbmxpYi1jb3JlL2RlcGVuZGVuY2llcy9zcmMvYmlnbnVtYmVyLmpzLTkuMC4wL2JpZ251bWJlcidcblxuaW1wb3J0IHtcbiAgQWlyR2FwVHJhbnNhY3Rpb25TdGF0dXMgYXMgQWlyR2FwVHJhbnNhY3Rpb25TdGF0dXNWMCxcbiAgQWlyR2FwVHJhbnNhY3Rpb25XYXJuaW5nIGFzIEFpckdhcFVJQWxlcnRWMCxcbiAgQWlyR2FwVHJhbnNhY3Rpb25XYXJuaW5nVHlwZVxufSBmcm9tICdAd2FsbGZyZWUtZGV2L2NvaW5saWItY29yZS9pbnRlcmZhY2VzL0lBaXJHYXBUcmFuc2FjdGlvbidcbmltcG9ydCB7IGlzSGV4IH0gZnJvbSAnQHdhbGxmcmVlLWRldi9jb2lubGliLWNvcmUvdXRpbHMvaGV4J1xuXG5pbXBvcnQge1xuICBjcmVhdGVJQ29pblByb3RvY29sQWRhcHRlcixcbiAgY3JlYXRlSUNvaW5TdWJQcm90b2NvbEFkYXB0ZXIsXG4gIElDb2luUHJvdG9jb2xBZGFwdGVyLFxuICBJQ29pblN1YlByb3RvY29sQWRhcHRlcixcbiAgUHJvdG9jb2xCbG9ja0V4cGxvcmVyQWRhcHRlcixcbiAgUHJvdG9jb2xOZXR3b3JrQWRhcHRlclxufSBmcm9tICcuLi8uLi9wcm90b2NvbC9hZGFwdGVyL3Byb3RvY29sLXYwLWFkYXB0ZXInXG5cbi8vIE5ldHdvcmtcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnROZXR3b3JrVHlwZVYwVG9WMSh0eXBlOiBQcm90b2NvbE5ldHdvcmtUeXBlVjApOiBQcm90b2NvbE5ldHdvcmtUeXBlVjEge1xuICByZXR1cm4gdHlwZSA9PT0gUHJvdG9jb2xOZXR3b3JrVHlwZVYwLk1BSU5ORVQgPyAnbWFpbm5ldCcgOiB0eXBlID09PSBQcm90b2NvbE5ldHdvcmtUeXBlVjAuVEVTVE5FVCA/ICd0ZXN0bmV0JyA6ICdjdXN0b20nXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0TmV0d29ya1R5cGVWMVRvVjAodHlwZTogUHJvdG9jb2xOZXR3b3JrVHlwZVYxKTogUHJvdG9jb2xOZXR3b3JrVHlwZVYwIHtcbiAgcmV0dXJuIHR5cGUgPT09ICdtYWlubmV0J1xuICAgID8gUHJvdG9jb2xOZXR3b3JrVHlwZVYwLk1BSU5ORVRcbiAgICA6IHR5cGUgPT09ICd0ZXN0bmV0J1xuICAgID8gUHJvdG9jb2xOZXR3b3JrVHlwZVYwLlRFU1RORVRcbiAgICA6IFByb3RvY29sTmV0d29ya1R5cGVWMC5DVVNUT01cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnROZXR3b3JrVjBUb1YxKG5ldHdvcms6IFByb3RvY29sTmV0d29ya1YwKTogUHJvdG9jb2xOZXR3b3JrVjEge1xuICByZXR1cm4ge1xuICAgIG5hbWU6IG5ldHdvcmsubmFtZSxcbiAgICB0eXBlOiBjb252ZXJ0TmV0d29ya1R5cGVWMFRvVjEobmV0d29yay50eXBlKSxcbiAgICBycGNVcmw6IG5ldHdvcmsucnBjVXJsLFxuICAgIGJsb2NrRXhwbG9yZXJVcmw6IG5ldHdvcmsuYmxvY2tFeHBsb3Jlci5ibG9ja0V4cGxvcmVyLFxuICAgIC4uLih0eXBlb2YgbmV0d29yay5leHRyYXMgPT09ICdvYmplY3QnID8gbmV0d29yay5leHRyYXMgOiB7fSlcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udmVydE5ldHdvcmtWMVRvVjAobmV0d29yazogUHJvdG9jb2xOZXR3b3JrVjEsIGJsb2NrRXhwbG9yZXI/OiBQcm90b2NvbEJsb2NrRXhwbG9yZXJWMSk6IFByb3RvY29sTmV0d29ya1YwIHtcbiAgY29uc3QgeyBuYW1lLCB0eXBlLCBycGNVcmwsIC4uLnJlc3QgfSA9IG5ldHdvcmtcbiAgY29uc3QgYmxvY2tFeHBsb3JlclYwOiBQcm90b2NvbEJsb2NrRXhwbG9yZXJWMCA9IG5ldyBQcm90b2NvbEJsb2NrRXhwbG9yZXJBZGFwdGVyKGJsb2NrRXhwbG9yZXIsIG5ldHdvcmsuYmxvY2tFeHBsb3JlclVybClcblxuICByZXR1cm4gbmV3IFByb3RvY29sTmV0d29ya0FkYXB0ZXIobmFtZSwgY29udmVydE5ldHdvcmtUeXBlVjFUb1YwKHR5cGUpLCBycGNVcmwsIGJsb2NrRXhwbG9yZXJWMCwgcmVzdClcbn1cblxuLy8gUHJvdG9jb2xcblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlQWRhcHRlclN1cHBsZW1lbnRzRnJvbUlkZW50aWZpZXJBbmROZXR3b3JrKFxuICBtb2R1bGU6IEFpckdhcE1vZHVsZSxcbiAgaWRlbnRpZmllcjogc3RyaW5nLFxuICBuZXR3b3JrOiBQcm90b2NvbE5ldHdvcmtWMSB8IHVuZGVmaW5lZFxuKTogUHJvbWlzZTxbUHJvdG9jb2xCbG9ja0V4cGxvcmVyVjEsIEFpckdhcFYzU2VyaWFsaXplckNvbXBhbmlvbl0+IHtcbiAgY29uc3QgW2Jsb2NrRXhwbG9yZXIsIHYzU2VyaWFsaXplckNvbXBhbmlvbl0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgbW9kdWxlLmNyZWF0ZUJsb2NrRXhwbG9yZXIoaWRlbnRpZmllciwgbmV0d29yayksXG4gICAgbW9kdWxlLmNyZWF0ZVYzU2VyaWFsaXplckNvbXBhbmlvbigpXG4gIF0pXG5cbiAgcmV0dXJuIFtibG9ja0V4cGxvcmVyLCB2M1NlcmlhbGl6ZXJDb21wYW5pb25dXG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUFkYXB0ZXJTdXBwbGVtZW50c0Zyb21Qcm90b2NvbDxUIGV4dGVuZHMgQWlyR2FwQW55UHJvdG9jb2w+KFxuICBwcm90b2NvbDogVCxcbiAgbW9kdWxlOiBBaXJHYXBNb2R1bGVcbik6IFByb21pc2U8W1Byb3RvY29sQmxvY2tFeHBsb3JlclYxLCBBaXJHYXBWM1NlcmlhbGl6ZXJDb21wYW5pb25dPiB7XG4gIGNvbnN0IFttZXRhZGF0YSwgbmV0d29ya106IFtQcm90b2NvbE1ldGFkYXRhLCBQcm90b2NvbE5ldHdvcmtWMSB8IHVuZGVmaW5lZF0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgcHJvdG9jb2wuZ2V0TWV0YWRhdGEoKSxcbiAgICBpc09ubGluZVByb3RvY29sKHByb3RvY29sKSA/IHByb3RvY29sLmdldE5ldHdvcmsoKSA6IFByb21pc2UucmVzb2x2ZSh1bmRlZmluZWQpXG4gIF0pXG5cbiAgcmV0dXJuIGNyZWF0ZUFkYXB0ZXJTdXBwbGVtZW50c0Zyb21JZGVudGlmaWVyQW5kTmV0d29yayhtb2R1bGUsIG1ldGFkYXRhLmlkZW50aWZpZXIsIG5ldHdvcmspXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVWMFByb3RvY29sPFQgZXh0ZW5kcyBBaXJHYXBBbnlQcm90b2NvbD4oXG4gIHByb3RvY29sOiBULFxuICBtb2R1bGU6IEFpckdhcE1vZHVsZSxcbiAgdHlwZTogUHJvdG9jb2xDb25maWd1cmF0aW9uWyd0eXBlJ10gPSAnZnVsbCdcbik6IFByb21pc2U8SUNvaW5Qcm90b2NvbEFkYXB0ZXI8VD4+IHtcbiAgY29uc3QgW2Jsb2NrRXhwbG9yZXIsIHYzU2VyaWFsaXplckNvbXBhbmlvbl06IFtQcm90b2NvbEJsb2NrRXhwbG9yZXJWMSwgQWlyR2FwVjNTZXJpYWxpemVyQ29tcGFuaW9uXSA9XG4gICAgYXdhaXQgY3JlYXRlQWRhcHRlclN1cHBsZW1lbnRzRnJvbVByb3RvY29sKHByb3RvY29sLCBtb2R1bGUpXG5cbiAgcmV0dXJuIGNyZWF0ZUlDb2luUHJvdG9jb2xBZGFwdGVyKHByb3RvY29sLCBibG9ja0V4cGxvcmVyLCB2M1NlcmlhbGl6ZXJDb21wYW5pb24sIHsgdHlwZSB9KVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBTdWJQcm90b2NvbDxUIGV4dGVuZHMgQWlyR2FwQW55UHJvdG9jb2wgJiBTdWJQcm90b2NvbD4oXG4gIHByb3RvY29sOiBULFxuICBtb2R1bGU6IEFpckdhcE1vZHVsZSxcbiAgdHlwZTogUHJvdG9jb2xDb25maWd1cmF0aW9uWyd0eXBlJ10gPSAnZnVsbCdcbik6IFByb21pc2U8SUNvaW5TdWJQcm90b2NvbEFkYXB0ZXI8VD4+IHtcbiAgY29uc3QgW2Jsb2NrRXhwbG9yZXIsIHYzU2VyaWFsaXplckNvbXBhbmlvbl06IFtQcm90b2NvbEJsb2NrRXhwbG9yZXJWMSwgQWlyR2FwVjNTZXJpYWxpemVyQ29tcGFuaW9uXSA9XG4gICAgYXdhaXQgY3JlYXRlQWRhcHRlclN1cHBsZW1lbnRzRnJvbVByb3RvY29sKHByb3RvY29sLCBtb2R1bGUpXG5cbiAgcmV0dXJuIGNyZWF0ZUlDb2luU3ViUHJvdG9jb2xBZGFwdGVyKHByb3RvY29sLCBibG9ja0V4cGxvcmVyLCB2M1NlcmlhbGl6ZXJDb21wYW5pb24sIHsgdHlwZSB9KVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBFUkMyMFRva2VuPFQgZXh0ZW5kcyBBaXJHYXBBbnlQcm90b2NvbCAmIFN1YlByb3RvY29sPihcbiAgZXJjMjBUb2tlbjogVCxcbiAgcHJvdG9jb2w6IEFpckdhcEFueVByb3RvY29sLFxuICBtb2R1bGU6IEFpckdhcE1vZHVsZSxcbiAgdHlwZTogUHJvdG9jb2xDb25maWd1cmF0aW9uWyd0eXBlJ10gPSAnZnVsbCdcbik6IFByb21pc2U8SUNvaW5TdWJQcm90b2NvbEFkYXB0ZXI8VD4+IHtcbiAgY29uc3QgW21ldGFkYXRhLCBuZXR3b3JrXTogW1Byb3RvY29sTWV0YWRhdGEsIFByb3RvY29sTmV0d29ya1YxIHwgdW5kZWZpbmVkXSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICBwcm90b2NvbC5nZXRNZXRhZGF0YSgpLFxuICAgIGlzT25saW5lUHJvdG9jb2woZXJjMjBUb2tlbikgPyBlcmMyMFRva2VuLmdldE5ldHdvcmsoKSA6IFByb21pc2UucmVzb2x2ZSh1bmRlZmluZWQpXG4gIF0pXG5cbiAgY29uc3QgW2Jsb2NrRXhwbG9yZXIsIHYzU2VyaWFsaXplckNvbXBhbmlvbl0gPSBhd2FpdCBjcmVhdGVBZGFwdGVyU3VwcGxlbWVudHNGcm9tSWRlbnRpZmllckFuZE5ldHdvcmsoXG4gICAgbW9kdWxlLFxuICAgIG1ldGFkYXRhLmlkZW50aWZpZXIsXG4gICAgbmV0d29ya1xuICApXG5cbiAgcmV0dXJuIGNyZWF0ZUlDb2luU3ViUHJvdG9jb2xBZGFwdGVyKGVyYzIwVG9rZW4sIGJsb2NrRXhwbG9yZXIsIHYzU2VyaWFsaXplckNvbXBhbmlvbiwgeyB0eXBlIH0pXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVWMEFldGVybml0eVByb3RvY29sKFxuICAuLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVBZXRlcm5pdHlQcm90b2NvbD5cbik6IFByb21pc2U8SUNvaW5Qcm90b2NvbEFkYXB0ZXI8QWV0ZXJuaXR5UHJvdG9jb2w+PiB7XG4gIGNvbnN0IHByb3RvY29sOiBBZXRlcm5pdHlQcm90b2NvbCA9IGNyZWF0ZUFldGVybml0eVByb3RvY29sKC4uLmFyZ3MpXG4gIGNvbnN0IG1vZHVsZTogQWV0ZXJuaXR5TW9kdWxlID0gbmV3IEFldGVybml0eU1vZHVsZSgpXG5cbiAgcmV0dXJuIGNyZWF0ZVYwUHJvdG9jb2wocHJvdG9jb2wsIG1vZHVsZSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwQXN0YXJQcm90b2NvbCguLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVBc3RhclByb3RvY29sPik6IFByb21pc2U8SUNvaW5Qcm90b2NvbEFkYXB0ZXI8QXN0YXJQcm90b2NvbD4+IHtcbiAgY29uc3QgcHJvdG9jb2w6IEFzdGFyUHJvdG9jb2wgPSBjcmVhdGVBc3RhclByb3RvY29sKC4uLmFyZ3MpXG4gIGNvbnN0IG1vZHVsZTogQXN0YXJNb2R1bGUgPSBuZXcgQXN0YXJNb2R1bGUoKVxuXG4gIHJldHVybiBjcmVhdGVWMFByb3RvY29sKHByb3RvY29sLCBtb2R1bGUpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVWMFNoaWRlblByb3RvY29sKFxuICAuLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVTaGlkZW5Qcm90b2NvbD5cbik6IFByb21pc2U8SUNvaW5Qcm90b2NvbEFkYXB0ZXI8U2hpZGVuUHJvdG9jb2w+PiB7XG4gIGNvbnN0IHByb3RvY29sOiBTaGlkZW5Qcm90b2NvbCA9IGNyZWF0ZVNoaWRlblByb3RvY29sKC4uLmFyZ3MpXG4gIGNvbnN0IG1vZHVsZTogQXN0YXJNb2R1bGUgPSBuZXcgQXN0YXJNb2R1bGUoKVxuXG4gIHJldHVybiBjcmVhdGVWMFByb3RvY29sKHByb3RvY29sLCBtb2R1bGUpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVWMEJpdGNvaW5Qcm90b2NvbChcbiAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlQml0Y29pblByb3RvY29sPlxuKTogUHJvbWlzZTxJQ29pblByb3RvY29sQWRhcHRlcjxCaXRjb2luUHJvdG9jb2w+PiB7XG4gIGNvbnN0IHByb3RvY29sOiBCaXRjb2luUHJvdG9jb2wgPSBjcmVhdGVCaXRjb2luUHJvdG9jb2woLi4uYXJncylcbiAgY29uc3QgbW9kdWxlOiBCaXRjb2luTW9kdWxlID0gbmV3IEJpdGNvaW5Nb2R1bGUoKVxuXG4gIHJldHVybiBjcmVhdGVWMFByb3RvY29sKHByb3RvY29sLCBtb2R1bGUpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVWMEJpdGNvaW5TZWd3aXRQcm90b2NvbChcbiAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlQml0Y29pblNlZ3dpdFByb3RvY29sPlxuKTogUHJvbWlzZTxJQ29pblByb3RvY29sQWRhcHRlcjxCaXRjb2luU2Vnd2l0UHJvdG9jb2w+PiB7XG4gIGNvbnN0IHByb3RvY29sOiBCaXRjb2luU2Vnd2l0UHJvdG9jb2wgPSBjcmVhdGVCaXRjb2luU2Vnd2l0UHJvdG9jb2woLi4uYXJncylcbiAgY29uc3QgbW9kdWxlOiBCaXRjb2luTW9kdWxlID0gbmV3IEJpdGNvaW5Nb2R1bGUoKVxuXG4gIHJldHVybiBjcmVhdGVWMFByb3RvY29sKHByb3RvY29sLCBtb2R1bGUpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVWMENvcmV1bVByb3RvY29sKFxuICAuLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVDb3JldW1Qcm90b2NvbD5cbik6IFByb21pc2U8SUNvaW5Qcm90b2NvbEFkYXB0ZXI8Q29yZXVtUHJvdG9jb2w+PiB7XG4gIGNvbnN0IHByb3RvY29sOiBDb3JldW1Qcm90b2NvbCA9IGNyZWF0ZUNvcmV1bVByb3RvY29sKC4uLmFyZ3MpXG4gIGNvbnN0IG1vZHVsZTogQ29yZXVtTW9kdWxlID0gbmV3IENvcmV1bU1vZHVsZSgpXG5cbiAgcmV0dXJuIGNyZWF0ZVYwUHJvdG9jb2wocHJvdG9jb2wsIG1vZHVsZSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwQ29zbW9zUHJvdG9jb2woXG4gIC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZUNvc21vc1Byb3RvY29sPlxuKTogUHJvbWlzZTxJQ29pblByb3RvY29sQWRhcHRlcjxDb3Ntb3NQcm90b2NvbD4+IHtcbiAgY29uc3QgcHJvdG9jb2w6IENvc21vc1Byb3RvY29sID0gY3JlYXRlQ29zbW9zUHJvdG9jb2woLi4uYXJncylcbiAgY29uc3QgbW9kdWxlOiBDb3Ntb3NNb2R1bGUgPSBuZXcgQ29zbW9zTW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBQcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBFdGhlcmV1bVByb3RvY29sKFxuICAuLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVFdGhlcmV1bVByb3RvY29sPlxuKTogUHJvbWlzZTxJQ29pblByb3RvY29sQWRhcHRlcjxFdGhlcmV1bVByb3RvY29sPj4ge1xuICBjb25zdCBwcm90b2NvbDogRXRoZXJldW1Qcm90b2NvbCA9IGNyZWF0ZUV0aGVyZXVtUHJvdG9jb2woLi4uYXJncylcbiAgY29uc3QgbW9kdWxlOiBFdGhlcmV1bU1vZHVsZSA9IG5ldyBFdGhlcmV1bU1vZHVsZSgpXG5cbiAgcmV0dXJuIGNyZWF0ZVYwUHJvdG9jb2wocHJvdG9jb2wsIG1vZHVsZSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwRXRoZXJldW1FUkMyMFRva2VuKFxuICAuLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVFdGhlcmV1bUVSQzIwVG9rZW4+XG4pOiBQcm9taXNlPElDb2luU3ViUHJvdG9jb2xBZGFwdGVyPEV0aGVyZXVtRVJDMjBUb2tlbj4+IHtcbiAgY29uc3QgZXJjMjBUb2tlbjogRXRoZXJldW1FUkMyMFRva2VuID0gY3JlYXRlRXRoZXJldW1FUkMyMFRva2VuKC4uLmFyZ3MpXG4gIGNvbnN0IGV0aGVyZXVtUHJvdG9jb2w6IEV0aGVyZXVtUHJvdG9jb2wgPSBjcmVhdGVFdGhlcmV1bVByb3RvY29sKGFyZ3NbMV0pXG4gIGNvbnN0IG1vZHVsZTogRXRoZXJldW1Nb2R1bGUgPSBuZXcgRXRoZXJldW1Nb2R1bGUoKVxuXG4gIHJldHVybiBjcmVhdGVWMEVSQzIwVG9rZW4oZXJjMjBUb2tlbiwgZXRoZXJldW1Qcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBHcm9lc3RsY29pblByb3RvY29sKFxuICAuLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVHcm9lc3RsY29pblByb3RvY29sPlxuKTogUHJvbWlzZTxJQ29pblByb3RvY29sQWRhcHRlcjxHcm9lc3RsY29pblByb3RvY29sPj4ge1xuICBjb25zdCBwcm90b2NvbDogR3JvZXN0bGNvaW5Qcm90b2NvbCA9IGNyZWF0ZUdyb2VzdGxjb2luUHJvdG9jb2woLi4uYXJncylcbiAgY29uc3QgbW9kdWxlOiBHcm9lc3RsY29pbk1vZHVsZSA9IG5ldyBHcm9lc3RsY29pbk1vZHVsZSgpXG5cbiAgcmV0dXJuIGNyZWF0ZVYwUHJvdG9jb2wocHJvdG9jb2wsIG1vZHVsZSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwSUNQUHJvdG9jb2woLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlSUNQUHJvdG9jb2w+KTogUHJvbWlzZTxJQ29pblByb3RvY29sQWRhcHRlcjxJQ1BQcm90b2NvbD4+IHtcbiAgY29uc3QgcHJvdG9jb2w6IElDUFByb3RvY29sID0gY3JlYXRlSUNQUHJvdG9jb2woLi4uYXJncylcbiAgY29uc3QgbW9kdWxlOiBJQ1BNb2R1bGUgPSBuZXcgSUNQTW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBQcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBNb29uYmVhbVByb3RvY29sKFxuICAuLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVNb29uYmVhbVByb3RvY29sPlxuKTogUHJvbWlzZTxJQ29pblByb3RvY29sQWRhcHRlcjxNb29uYmVhbVByb3RvY29sPj4ge1xuICBjb25zdCBwcm90b2NvbDogTW9vbmJlYW1Qcm90b2NvbCA9IGNyZWF0ZU1vb25iZWFtUHJvdG9jb2woLi4uYXJncylcbiAgY29uc3QgbW9kdWxlOiBNb29uYmVhbU1vZHVsZSA9IG5ldyBNb29uYmVhbU1vZHVsZSgpXG5cbiAgcmV0dXJuIGNyZWF0ZVYwUHJvdG9jb2wocHJvdG9jb2wsIG1vZHVsZSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwTW9vbnJpdmVyUHJvdG9jb2woXG4gIC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZU1vb25yaXZlclByb3RvY29sPlxuKTogUHJvbWlzZTxJQ29pblByb3RvY29sQWRhcHRlcjxNb29ucml2ZXJQcm90b2NvbD4+IHtcbiAgY29uc3QgcHJvdG9jb2w6IE1vb25yaXZlclByb3RvY29sID0gY3JlYXRlTW9vbnJpdmVyUHJvdG9jb2woLi4uYXJncylcbiAgY29uc3QgbW9kdWxlOiBNb29uYmVhbU1vZHVsZSA9IG5ldyBNb29uYmVhbU1vZHVsZSgpXG5cbiAgcmV0dXJuIGNyZWF0ZVYwUHJvdG9jb2wocHJvdG9jb2wsIG1vZHVsZSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwTW9vbmJhc2VQcm90b2NvbChcbiAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlTW9vbmJhc2VQcm90b2NvbD5cbik6IFByb21pc2U8SUNvaW5Qcm90b2NvbEFkYXB0ZXI8TW9vbmJhc2VQcm90b2NvbD4+IHtcbiAgY29uc3QgcHJvdG9jb2w6IE1vb25iYXNlUHJvdG9jb2wgPSBjcmVhdGVNb29uYmFzZVByb3RvY29sKC4uLmFyZ3MpXG4gIGNvbnN0IG1vZHVsZTogTW9vbmJlYW1Nb2R1bGUgPSBuZXcgTW9vbmJlYW1Nb2R1bGUoKVxuXG4gIHJldHVybiBjcmVhdGVWMFByb3RvY29sKHByb3RvY29sLCBtb2R1bGUpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVWME9wdGltaXNtUHJvdG9jb2woXG4gIC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZU9wdGltaXNtUHJvdG9jb2w+XG4pOiBQcm9taXNlPElDb2luUHJvdG9jb2xBZGFwdGVyPE9wdGltaXNtUHJvdG9jb2w+PiB7XG4gIGNvbnN0IHByb3RvY29sOiBPcHRpbWlzbVByb3RvY29sID0gY3JlYXRlT3B0aW1pc21Qcm90b2NvbCguLi5hcmdzKVxuICBjb25zdCBtb2R1bGU6IE9wdGltaXNtTW9kdWxlID0gbmV3IE9wdGltaXNtTW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBQcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBPcHRpbWlzbUVSQzIwVG9rZW4oXG4gIC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZU9wdGltaXNtRVJDMjBUb2tlbj5cbik6IFByb21pc2U8SUNvaW5TdWJQcm90b2NvbEFkYXB0ZXI8T3B0aW1pc21FUkMyMFRva2VuPj4ge1xuICBjb25zdCBlcmMyMFRva2VuOiBPcHRpbWlzbUVSQzIwVG9rZW4gPSBjcmVhdGVPcHRpbWlzbUVSQzIwVG9rZW4oLi4uYXJncylcbiAgY29uc3Qgb3B0aW1pc21Qcm90b2NvbDogT3B0aW1pc21Qcm90b2NvbCA9IGNyZWF0ZU9wdGltaXNtUHJvdG9jb2woYXJnc1sxXSlcbiAgY29uc3QgbW9kdWxlOiBPcHRpbWlzbU1vZHVsZSA9IG5ldyBPcHRpbWlzbU1vZHVsZSgpXG5cbiAgcmV0dXJuIGNyZWF0ZVYwRVJDMjBUb2tlbihlcmMyMFRva2VuLCBvcHRpbWlzbVByb3RvY29sLCBtb2R1bGUpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVWMFBvbGthZG90UHJvdG9jb2woXG4gIC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZVBvbGthZG90UHJvdG9jb2w+XG4pOiBQcm9taXNlPElDb2luUHJvdG9jb2xBZGFwdGVyPFBvbGthZG90UHJvdG9jb2w+PiB7XG4gIGNvbnN0IHByb3RvY29sOiBQb2xrYWRvdFByb3RvY29sID0gY3JlYXRlUG9sa2Fkb3RQcm90b2NvbCguLi5hcmdzKVxuICBjb25zdCBtb2R1bGU6IFBvbGthZG90TW9kdWxlID0gbmV3IFBvbGthZG90TW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBQcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBLdXNhbWFQcm90b2NvbChcbiAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlS3VzYW1hUHJvdG9jb2w+XG4pOiBQcm9taXNlPElDb2luUHJvdG9jb2xBZGFwdGVyPEt1c2FtYVByb3RvY29sPj4ge1xuICBjb25zdCBwcm90b2NvbDogS3VzYW1hUHJvdG9jb2wgPSBjcmVhdGVLdXNhbWFQcm90b2NvbCguLi5hcmdzKVxuICBjb25zdCBtb2R1bGU6IFBvbGthZG90TW9kdWxlID0gbmV3IFBvbGthZG90TW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBQcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBTb2xhbmFQcm90b2NvbChcbiAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlU29sYW5hUHJvdG9jb2w+XG4pOiBQcm9taXNlPElDb2luUHJvdG9jb2xBZGFwdGVyPFNvbGFuYVByb3RvY29sPj4ge1xuICBjb25zdCBwcm90b2NvbDogU29sYW5hUHJvdG9jb2wgPSBjcmVhdGVTb2xhbmFQcm90b2NvbCguLi5hcmdzKVxuICBjb25zdCBtb2R1bGU6IGFueSA9IG5ldyBTb2xhbmFNb2R1bGUoKVxuXG4gIHJldHVybiBjcmVhdGVWMFByb3RvY29sKHByb3RvY29sLCBtb2R1bGUpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVWMFRyb25Qcm90b2NvbChcbiAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlVHJvblByb3RvY29sPlxuKTogUHJvbWlzZTxJQ29pblByb3RvY29sQWRhcHRlcjxUcm9uUHJvdG9jb2w+PiB7XG4gIGNvbnN0IHByb3RvY29sOiBUcm9uUHJvdG9jb2wgPSBjcmVhdGVUcm9uUHJvdG9jb2woLi4uYXJncylcbiAgY29uc3QgbW9kdWxlOiBUcm9uTW9kdWxlID0gbmV3IFRyb25Nb2R1bGUoKVxuXG4gIHJldHVybiBjcmVhdGVWMFByb3RvY29sKHByb3RvY29sLCBtb2R1bGUpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVWMEFwdG9zUHJvdG9jb2woXG4gIC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZUFwdG9zUHJvdG9jb2w+XG4pOiBQcm9taXNlPElDb2luUHJvdG9jb2xBZGFwdGVyPEFwdG9zUHJvdG9jb2w+PiB7XG4gIGNvbnN0IHByb3RvY29sOiBBcHRvc1Byb3RvY29sID0gY3JlYXRlQXB0b3NQcm90b2NvbCguLi5hcmdzKVxuICBjb25zdCBtb2R1bGU6IEFwdG9zTW9kdWxlID0gbmV3IEFwdG9zTW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBQcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBUZXpvc1Byb3RvY29sKC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZVRlem9zUHJvdG9jb2w+KTogUHJvbWlzZTxJQ29pblByb3RvY29sQWRhcHRlcjxUZXpvc1Byb3RvY29sPj4ge1xuICBjb25zdCBwcm90b2NvbDogVGV6b3NQcm90b2NvbCA9IGNyZWF0ZVRlem9zUHJvdG9jb2woLi4uYXJncylcbiAgY29uc3QgbW9kdWxlOiBUZXpvc01vZHVsZSA9IG5ldyBUZXpvc01vZHVsZSgpXG5cbiAgcmV0dXJuIGNyZWF0ZVYwUHJvdG9jb2wocHJvdG9jb2wsIG1vZHVsZSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwVGV6b3NTaGllbGRlZFRlelByb3RvY29sKFxuICAuLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVUZXpvc1NoaWVsZGVkVGV6UHJvdG9jb2w+XG4pOiBQcm9taXNlPElDb2luUHJvdG9jb2xBZGFwdGVyPFRlem9zU2hpZWxkZWRUZXpQcm90b2NvbD4+IHtcbiAgY29uc3QgcHJvdG9jb2w6IFRlem9zU2hpZWxkZWRUZXpQcm90b2NvbCA9IGNyZWF0ZVRlem9zU2hpZWxkZWRUZXpQcm90b2NvbCguLi5hcmdzKVxuICBjb25zdCBtb2R1bGU6IFRlem9zTW9kdWxlID0gbmV3IFRlem9zTW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBQcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBUZXpvc0t0UHJvdG9jb2woXG4gIC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZVRlem9zS3RQcm90b2NvbD5cbik6IFByb21pc2U8SUNvaW5TdWJQcm90b2NvbEFkYXB0ZXI8VGV6b3NLdFByb3RvY29sPj4ge1xuICBjb25zdCBwcm90b2NvbDogVGV6b3NLdFByb3RvY29sID0gY3JlYXRlVGV6b3NLdFByb3RvY29sKC4uLmFyZ3MpXG4gIGNvbnN0IG1vZHVsZTogVGV6b3NNb2R1bGUgPSBuZXcgVGV6b3NNb2R1bGUoKVxuXG4gIHJldHVybiBjcmVhdGVWMFN1YlByb3RvY29sKHByb3RvY29sLCBtb2R1bGUpXG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwVGV6b3NGQVByb3RvY29sPFQgZXh0ZW5kcyBUZXpvc0ZBUHJvdG9jb2w+KFxuICBmYVByb3RvY29sOiBULFxuICB0ZXpvc05ldHdvcms/OiBSZWN1cnNpdmVQYXJ0aWFsPFRlem9zUHJvdG9jb2xOZXR3b3JrPixcbiAgdHlwZTogUHJvdG9jb2xDb25maWd1cmF0aW9uWyd0eXBlJ10gPSAnZnVsbCdcbik6IFByb21pc2U8SUNvaW5TdWJQcm90b2NvbEFkYXB0ZXI8VD4+IHtcbiAgY29uc3QgdGV6b3NQcm90b2NvbDogVGV6b3NQcm90b2NvbCA9IGNyZWF0ZVRlem9zUHJvdG9jb2woeyBuZXR3b3JrOiB0ZXpvc05ldHdvcmsgfSlcbiAgY29uc3QgbW9kdWxlOiBUZXpvc01vZHVsZSA9IG5ldyBUZXpvc01vZHVsZSgpXG5cbiAgY29uc3QgW21ldGFkYXRhLCBuZXR3b3JrXTogW1Byb3RvY29sTWV0YWRhdGEsIFByb3RvY29sTmV0d29ya1YxIHwgdW5kZWZpbmVkXSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICB0ZXpvc1Byb3RvY29sLmdldE1ldGFkYXRhKCksXG4gICAgaXNPbmxpbmVQcm90b2NvbChmYVByb3RvY29sKSA/IGZhUHJvdG9jb2wuZ2V0TmV0d29yaygpIDogUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZClcbiAgXSlcblxuICBjb25zdCBbYmxvY2tFeHBsb3JlciwgdjNTZXJpYWxpemVyQ29tcGFuaW9uXSA9IGF3YWl0IGNyZWF0ZUFkYXB0ZXJTdXBwbGVtZW50c0Zyb21JZGVudGlmaWVyQW5kTmV0d29yayhcbiAgICBtb2R1bGUsXG4gICAgbWV0YWRhdGEuaWRlbnRpZmllcixcbiAgICBuZXR3b3JrXG4gIClcblxuICByZXR1cm4gY3JlYXRlSUNvaW5TdWJQcm90b2NvbEFkYXB0ZXIoZmFQcm90b2NvbCwgYmxvY2tFeHBsb3JlciwgdjNTZXJpYWxpemVyQ29tcGFuaW9uLCB7IHR5cGUgfSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwVGV6b3NGQTFwMlByb3RvY29sKFxuICAuLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVUZXpvc0ZBMXAyUHJvdG9jb2w+XG4pOiBQcm9taXNlPElDb2luU3ViUHJvdG9jb2xBZGFwdGVyPFRlem9zRkExcDJQcm90b2NvbD4+IHtcbiAgY29uc3QgZmExcDJQcm90b2NvbDogVGV6b3NGQTFwMlByb3RvY29sID0gY3JlYXRlVGV6b3NGQTFwMlByb3RvY29sKC4uLmFyZ3MpXG5cbiAgcmV0dXJuIGNyZWF0ZVYwVGV6b3NGQVByb3RvY29sKGZhMXAyUHJvdG9jb2wsIGFyZ3NbMF0ubmV0d29yaylcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwVGV6b3NGQTJQcm90b2NvbChcbiAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlVGV6b3NGQTJQcm90b2NvbD5cbik6IFByb21pc2U8SUNvaW5TdWJQcm90b2NvbEFkYXB0ZXI8VGV6b3NGQTJQcm90b2NvbD4+IHtcbiAgY29uc3QgZmEyUHJvdG9jb2w6IFRlem9zRkEyUHJvdG9jb2wgPSBjcmVhdGVUZXpvc0ZBMlByb3RvY29sKC4uLmFyZ3MpXG5cbiAgcmV0dXJuIGNyZWF0ZVYwVGV6b3NGQVByb3RvY29sKGZhMlByb3RvY29sLCBhcmdzWzBdLm5ldHdvcmspXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVWMFRlem9zQlRDVGV6UHJvdG9jb2woXG4gIC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZUJUQ1RlelByb3RvY29sPlxuKTogUHJvbWlzZTxJQ29pblN1YlByb3RvY29sQWRhcHRlcjxCVENUZXpQcm90b2NvbD4+IHtcbiAgY29uc3QgcHJvdG9jb2w6IEJUQ1RlelByb3RvY29sID0gY3JlYXRlQlRDVGV6UHJvdG9jb2woLi4uYXJncylcbiAgY29uc3QgbW9kdWxlOiBUZXpvc01vZHVsZSA9IG5ldyBUZXpvc01vZHVsZSgpXG5cbiAgcmV0dXJuIGNyZWF0ZVYwU3ViUHJvdG9jb2wocHJvdG9jb2wsIG1vZHVsZSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwVGV6b3NDVGV6UHJvdG9jb2woXG4gIC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZUNUZXpQcm90b2NvbD5cbik6IFByb21pc2U8SUNvaW5TdWJQcm90b2NvbEFkYXB0ZXI8Q1RlelByb3RvY29sPj4ge1xuICBjb25zdCBwcm90b2NvbDogQ1RlelByb3RvY29sID0gY3JlYXRlQ1RlelByb3RvY29sKC4uLmFyZ3MpXG4gIGNvbnN0IG1vZHVsZTogVGV6b3NNb2R1bGUgPSBuZXcgVGV6b3NNb2R1bGUoKVxuXG4gIHJldHVybiBjcmVhdGVWMFN1YlByb3RvY29sKHByb3RvY29sLCBtb2R1bGUpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVWMFRlem9zRG9nYW1pUHJvdG9jb2woXG4gIC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZURvZ2FtaVByb3RvY29sPlxuKTogUHJvbWlzZTxJQ29pblN1YlByb3RvY29sQWRhcHRlcjxEb2dhbWlQcm90b2NvbD4+IHtcbiAgY29uc3QgcHJvdG9jb2w6IERvZ2FtaVByb3RvY29sID0gY3JlYXRlRG9nYW1pUHJvdG9jb2woLi4uYXJncylcbiAgY29uc3QgbW9kdWxlOiBUZXpvc01vZHVsZSA9IG5ldyBUZXpvc01vZHVsZSgpXG5cbiAgcmV0dXJuIGNyZWF0ZVYwU3ViUHJvdG9jb2wocHJvdG9jb2wsIG1vZHVsZSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwVGV6b3NFVEhUZXpQcm90b2NvbChcbiAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlRVRIVGV6UHJvdG9jb2w+XG4pOiBQcm9taXNlPElDb2luU3ViUHJvdG9jb2xBZGFwdGVyPEVUSFRlelByb3RvY29sPj4ge1xuICBjb25zdCBwcm90b2NvbDogRVRIVGV6UHJvdG9jb2wgPSBjcmVhdGVFVEhUZXpQcm90b2NvbCguLi5hcmdzKVxuICBjb25zdCBtb2R1bGU6IFRlem9zTW9kdWxlID0gbmV3IFRlem9zTW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBTdWJQcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBUZXpvc0tvbGlicmlVU0RQcm90b2NvbChcbiAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlS29saWJyaVVTRFByb3RvY29sPlxuKTogUHJvbWlzZTxJQ29pblN1YlByb3RvY29sQWRhcHRlcjxLb2xpYnJpVVNEUHJvdG9jb2w+PiB7XG4gIGNvbnN0IHByb3RvY29sOiBLb2xpYnJpVVNEUHJvdG9jb2wgPSBjcmVhdGVLb2xpYnJpVVNEUHJvdG9jb2woLi4uYXJncylcbiAgY29uc3QgbW9kdWxlOiBUZXpvc01vZHVsZSA9IG5ldyBUZXpvc01vZHVsZSgpXG5cbiAgcmV0dXJuIGNyZWF0ZVYwU3ViUHJvdG9jb2wocHJvdG9jb2wsIG1vZHVsZSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwVGV6b3NQbGVudHlQcm90b2NvbChcbiAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlUGxlbnR5UHJvdG9jb2w+XG4pOiBQcm9taXNlPElDb2luU3ViUHJvdG9jb2xBZGFwdGVyPFBsZW50eVByb3RvY29sPj4ge1xuICBjb25zdCBwcm90b2NvbDogUGxlbnR5UHJvdG9jb2wgPSBjcmVhdGVQbGVudHlQcm90b2NvbCguLi5hcmdzKVxuICBjb25zdCBtb2R1bGU6IFRlem9zTW9kdWxlID0gbmV3IFRlem9zTW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBTdWJQcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBUZXpvc1F1aXB1c3dhcFByb3RvY29sKFxuICAuLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVRdWlwdXN3YXBQcm90b2NvbD5cbik6IFByb21pc2U8SUNvaW5TdWJQcm90b2NvbEFkYXB0ZXI8UXVpcHVzd2FwUHJvdG9jb2w+PiB7XG4gIGNvbnN0IHByb3RvY29sOiBRdWlwdXN3YXBQcm90b2NvbCA9IGNyZWF0ZVF1aXB1c3dhcFByb3RvY29sKC4uLmFyZ3MpXG4gIGNvbnN0IG1vZHVsZTogVGV6b3NNb2R1bGUgPSBuZXcgVGV6b3NNb2R1bGUoKVxuXG4gIHJldHVybiBjcmVhdGVWMFN1YlByb3RvY29sKHByb3RvY29sLCBtb2R1bGUpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVWMFRlem9zU2lyaXVzUHJvdG9jb2woXG4gIC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZVNpcml1c1Byb3RvY29sPlxuKTogUHJvbWlzZTxJQ29pblN1YlByb3RvY29sQWRhcHRlcjxTaXJpdXNQcm90b2NvbD4+IHtcbiAgY29uc3QgcHJvdG9jb2w6IFNpcml1c1Byb3RvY29sID0gY3JlYXRlU2lyaXVzUHJvdG9jb2woLi4uYXJncylcbiAgY29uc3QgbW9kdWxlOiBUZXpvc01vZHVsZSA9IG5ldyBUZXpvc01vZHVsZSgpXG5cbiAgcmV0dXJuIGNyZWF0ZVYwU3ViUHJvdG9jb2wocHJvdG9jb2wsIG1vZHVsZSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwVGV6b3NTdGFrZXJQcm90b2NvbChcbiAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlU3Rha2VyUHJvdG9jb2w+XG4pOiBQcm9taXNlPElDb2luU3ViUHJvdG9jb2xBZGFwdGVyPFN0YWtlclByb3RvY29sPj4ge1xuICBjb25zdCBwcm90b2NvbDogU3Rha2VyUHJvdG9jb2wgPSBjcmVhdGVTdGFrZXJQcm90b2NvbCguLi5hcmdzKVxuICBjb25zdCBtb2R1bGU6IFRlem9zTW9kdWxlID0gbmV3IFRlem9zTW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBTdWJQcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBUZXpvc1RldGhlclVTRFByb3RvY29sKFxuICAuLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVUZXRoZXJVU0RQcm90b2NvbD5cbik6IFByb21pc2U8SUNvaW5TdWJQcm90b2NvbEFkYXB0ZXI8VGV0aGVyVVNEUHJvdG9jb2w+PiB7XG4gIGNvbnN0IHByb3RvY29sOiBUZXRoZXJVU0RQcm90b2NvbCA9IGNyZWF0ZVRldGhlclVTRFByb3RvY29sKC4uLmFyZ3MpXG4gIGNvbnN0IG1vZHVsZTogVGV6b3NNb2R1bGUgPSBuZXcgVGV6b3NNb2R1bGUoKVxuXG4gIHJldHVybiBjcmVhdGVWMFN1YlByb3RvY29sKHByb3RvY29sLCBtb2R1bGUpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVWMFRlem9zVHpCVENQcm90b2NvbChcbiAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlVHpCVENQcm90b2NvbD5cbik6IFByb21pc2U8SUNvaW5TdWJQcm90b2NvbEFkYXB0ZXI8VHpCVENQcm90b2NvbD4+IHtcbiAgY29uc3QgcHJvdG9jb2w6IFR6QlRDUHJvdG9jb2wgPSBjcmVhdGVUekJUQ1Byb3RvY29sKC4uLmFyZ3MpXG4gIGNvbnN0IG1vZHVsZTogVGV6b3NNb2R1bGUgPSBuZXcgVGV6b3NNb2R1bGUoKVxuXG4gIHJldHVybiBjcmVhdGVWMFN1YlByb3RvY29sKHByb3RvY29sLCBtb2R1bGUpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVWMFRlem9zVUJUQ1Byb3RvY29sKFxuICAuLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVVQlRDUHJvdG9jb2w+XG4pOiBQcm9taXNlPElDb2luU3ViUHJvdG9jb2xBZGFwdGVyPFVCVENQcm90b2NvbD4+IHtcbiAgY29uc3QgcHJvdG9jb2w6IFVCVENQcm90b2NvbCA9IGNyZWF0ZVVCVENQcm90b2NvbCguLi5hcmdzKVxuICBjb25zdCBtb2R1bGU6IFRlem9zTW9kdWxlID0gbmV3IFRlem9zTW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBTdWJQcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBUZXpvc1VERUZJUHJvdG9jb2woXG4gIC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZVVERUZJUHJvdG9jb2w+XG4pOiBQcm9taXNlPElDb2luU3ViUHJvdG9jb2xBZGFwdGVyPFVERUZJUHJvdG9jb2w+PiB7XG4gIGNvbnN0IHByb3RvY29sOiBVREVGSVByb3RvY29sID0gY3JlYXRlVURFRklQcm90b2NvbCguLi5hcmdzKVxuICBjb25zdCBtb2R1bGU6IFRlem9zTW9kdWxlID0gbmV3IFRlem9zTW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBTdWJQcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBUZXpvc1VTRFRlelByb3RvY29sKFxuICAuLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVVU0RUZXpQcm90b2NvbD5cbik6IFByb21pc2U8SUNvaW5TdWJQcm90b2NvbEFkYXB0ZXI8VVNEVGV6UHJvdG9jb2w+PiB7XG4gIGNvbnN0IHByb3RvY29sOiBVU0RUZXpQcm90b2NvbCA9IGNyZWF0ZVVTRFRlelByb3RvY29sKC4uLmFyZ3MpXG4gIGNvbnN0IG1vZHVsZTogVGV6b3NNb2R1bGUgPSBuZXcgVGV6b3NNb2R1bGUoKVxuXG4gIHJldHVybiBjcmVhdGVWMFN1YlByb3RvY29sKHByb3RvY29sLCBtb2R1bGUpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVWMFRlem9zVVVTRFByb3RvY29sKFxuICAuLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVVVVNEUHJvdG9jb2w+XG4pOiBQcm9taXNlPElDb2luU3ViUHJvdG9jb2xBZGFwdGVyPFVVU0RQcm90b2NvbD4+IHtcbiAgY29uc3QgcHJvdG9jb2w6IFVVU0RQcm90b2NvbCA9IGNyZWF0ZVVVU0RQcm90b2NvbCguLi5hcmdzKVxuICBjb25zdCBtb2R1bGU6IFRlem9zTW9kdWxlID0gbmV3IFRlem9zTW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBTdWJQcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBUZXpvc1dyYXBwZWRQcm90b2NvbChcbiAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlV3JhcHBlZFRlem9zUHJvdG9jb2w+XG4pOiBQcm9taXNlPElDb2luU3ViUHJvdG9jb2xBZGFwdGVyPFdyYXBwZWRUZXpvc1Byb3RvY29sPj4ge1xuICBjb25zdCBwcm90b2NvbDogV3JhcHBlZFRlem9zUHJvdG9jb2wgPSBjcmVhdGVXcmFwcGVkVGV6b3NQcm90b2NvbCguLi5hcmdzKVxuICBjb25zdCBtb2R1bGU6IFRlem9zTW9kdWxlID0gbmV3IFRlem9zTW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBTdWJQcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBUZXpvc1dyYXBQcm90b2NvbChcbiAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlV3JhcFByb3RvY29sPlxuKTogUHJvbWlzZTxJQ29pblN1YlByb3RvY29sQWRhcHRlcjxXcmFwUHJvdG9jb2w+PiB7XG4gIGNvbnN0IHByb3RvY29sOiBXcmFwUHJvdG9jb2wgPSBjcmVhdGVXcmFwUHJvdG9jb2woLi4uYXJncylcbiAgY29uc3QgbW9kdWxlOiBUZXpvc01vZHVsZSA9IG5ldyBUZXpvc01vZHVsZSgpXG5cbiAgcmV0dXJuIGNyZWF0ZVYwU3ViUHJvdG9jb2wocHJvdG9jb2wsIG1vZHVsZSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwVGV6b3NZb3VQcm90b2NvbChcbiAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlWW91UHJvdG9jb2w+XG4pOiBQcm9taXNlPElDb2luU3ViUHJvdG9jb2xBZGFwdGVyPFlvdVByb3RvY29sPj4ge1xuICBjb25zdCBwcm90b2NvbDogWW91UHJvdG9jb2wgPSBjcmVhdGVZb3VQcm90b2NvbCguLi5hcmdzKVxuICBjb25zdCBtb2R1bGU6IFRlem9zTW9kdWxlID0gbmV3IFRlem9zTW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBTdWJQcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxufVxuXG4vLyBUcmFuc2FjdGlvblxuXG5leHBvcnQgZnVuY3Rpb24gY29udmVydFRyYW5zYWN0aW9uU3RhdHVzVjFUb1YwKHN0YXR1czogQWlyR2FwVHJhbnNhY3Rpb25TdGF0dXNWMSk6IEFpckdhcFRyYW5zYWN0aW9uU3RhdHVzVjAge1xuICByZXR1cm4gc3RhdHVzLnR5cGUgPT09ICdhcHBsaWVkJ1xuICAgID8gQWlyR2FwVHJhbnNhY3Rpb25TdGF0dXNWMC5BUFBMSUVEXG4gICAgOiBzdGF0dXMudHlwZSA9PT0gJ2ZhaWxlZCdcbiAgICA/IEFpckdhcFRyYW5zYWN0aW9uU3RhdHVzVjAuRkFJTEVEXG4gICAgOiB1bmRlZmluZWRcbn1cblxuZnVuY3Rpb24gY29udmVydFVJQWN0aW9uc1YxVG9WMChhY3Rpb25zOiBBaXJHYXBVSUFjdGlvblYxW10pOiBBaXJHYXBVSUFsZXJ0VjBbJ2FjdGlvbnMnXSB7XG4gIHJldHVybiBhY3Rpb25zLm1hcCgoYWN0aW9uOiBBaXJHYXBVSUFjdGlvblYxKSA9PiAoe1xuICAgIHRleHQ6IGFjdGlvbi50ZXh0LnZhbHVlLFxuICAgIGxpbms6ICcnXG4gIH0pKVxufVxuXG5mdW5jdGlvbiBjb252ZXJ0VUlBbGVydHNWMVRvVjAoYWxlcnRzOiBBaXJHYXBVSUFsZXJ0VjFbXSk6IEFpckdhcFVJQWxlcnRWMFtdIHtcbiAgcmV0dXJuIGFsZXJ0cy5tYXAoKGFsZXJ0OiBBaXJHYXBVSUFsZXJ0VjEpID0+ICh7XG4gICAgdHlwZTpcbiAgICAgIGFsZXJ0LnR5cGUgPT09ICdzdWNjZXNzJ1xuICAgICAgICA/IEFpckdhcFRyYW5zYWN0aW9uV2FybmluZ1R5cGUuU1VDQ0VTU1xuICAgICAgICA6IGFsZXJ0LnR5cGUgPT09ICdpbmZvJ1xuICAgICAgICA/IEFpckdhcFRyYW5zYWN0aW9uV2FybmluZ1R5cGUuTk9URVxuICAgICAgICA6IGFsZXJ0LnR5cGUgPT09ICd3YXJuaW5nJ1xuICAgICAgICA/IEFpckdhcFRyYW5zYWN0aW9uV2FybmluZ1R5cGUuV0FSTklOR1xuICAgICAgICA6IEFpckdhcFRyYW5zYWN0aW9uV2FybmluZ1R5cGUuRVJST1IsXG4gICAgdGl0bGU6IGFsZXJ0LnRpdGxlLnZhbHVlLFxuICAgIGRlc2NyaXB0aW9uOiBhbGVydC5kZXNjcmlwdGlvbi52YWx1ZSxcbiAgICBpY29uOiBhbGVydC5pY29uLFxuICAgIGFjdGlvbnM6IGFsZXJ0LmFjdGlvbnMgPyBjb252ZXJ0VUlBY3Rpb25zVjFUb1YwKGFsZXJ0LmFjdGlvbnMpIDogdW5kZWZpbmVkXG4gIH0pKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY29udmVydFRyYW5zYWN0aW9uRGV0YWlsc1YxVG9WMChcbiAgdHhzOiBBaXJHYXBUcmFuc2FjdGlvblYxW10sXG4gIHByb3RvY29sOiBBaXJHYXBPbmxpbmVQcm90b2NvbFxuKTogUHJvbWlzZTxBaXJHYXBUcmFuc2FjdGlvblYwW10+XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVkZWNsYXJlXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY29udmVydFRyYW5zYWN0aW9uRGV0YWlsc1YxVG9WMChcbiAgdHhzOiBBaXJHYXBUcmFuc2FjdGlvblYxW10sXG4gIG1ldGFkYXRhOiBQcm90b2NvbE1ldGFkYXRhLFxuICBuZXR3b3JrOiBQcm90b2NvbE5ldHdvcmtWMSB8IFByb3RvY29sTmV0d29ya1YwXG4pOiBQcm9taXNlPEFpckdhcFRyYW5zYWN0aW9uVjBbXT5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZWRlY2xhcmVcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb252ZXJ0VHJhbnNhY3Rpb25EZXRhaWxzVjFUb1YwKFxuICB0eHM6IEFpckdhcFRyYW5zYWN0aW9uVjFbXSxcbiAgcHJvdG9jb2xPck1ldGFkYXRhOiBBaXJHYXBPbmxpbmVQcm90b2NvbCB8IFByb3RvY29sTWV0YWRhdGEsXG4gIG5ldHdvcmtPclVuZGVmaW5lZD86IFByb3RvY29sTmV0d29ya1YxIHwgUHJvdG9jb2xOZXR3b3JrVjBcbik6IFByb21pc2U8QWlyR2FwVHJhbnNhY3Rpb25WMFtdPiB7XG4gIGNvbnN0IHByb3RvY29sTWV0YWRhdGE6IFByb3RvY29sTWV0YWRhdGEgPSBpc09ubGluZVByb3RvY29sKHByb3RvY29sT3JNZXRhZGF0YSlcbiAgICA/IGF3YWl0IHByb3RvY29sT3JNZXRhZGF0YS5nZXRNZXRhZGF0YSgpXG4gICAgOiBwcm90b2NvbE9yTWV0YWRhdGFcblxuICBjb25zdCBuZXR3b3JrVjA6IFByb3RvY29sTmV0d29ya1YwID0gaXNPbmxpbmVQcm90b2NvbChwcm90b2NvbE9yTWV0YWRhdGEpXG4gICAgPyBjb252ZXJ0TmV0d29ya1YxVG9WMChhd2FpdCBwcm90b2NvbE9yTWV0YWRhdGEuZ2V0TmV0d29yaygpKVxuICAgIDogbmV0d29ya09yVW5kZWZpbmVkIGluc3RhbmNlb2YgUHJvdG9jb2xOZXR3b3JrVjBcbiAgICA/IG5ldHdvcmtPclVuZGVmaW5lZFxuICAgIDogY29udmVydE5ldHdvcmtWMVRvVjAobmV0d29ya09yVW5kZWZpbmVkKVxuXG4gIGNvbnN0IHVuaXRzOiBQcm90b2NvbFVuaXRzTWV0YWRhdGEgPSBwcm90b2NvbE1ldGFkYXRhLnVuaXRzXG4gIGNvbnN0IGZlZVVuaXRzOiBQcm90b2NvbFVuaXRzTWV0YWRhdGEgPSBwcm90b2NvbE1ldGFkYXRhLmZlZT8udW5pdHMgPz8gdW5pdHNcblxuICByZXR1cm4gdHhzLm1hcCgodHg6IEFpckdhcFRyYW5zYWN0aW9uVjEpOiBBaXJHYXBUcmFuc2FjdGlvblYwID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgZnJvbTogdHguZnJvbSxcbiAgICAgIHRvOiB0eC50byxcbiAgICAgIGlzSW5ib3VuZDogdHguaXNJbmJvdW5kLFxuXG4gICAgICBhbW91bnQ6IG5ld0Ftb3VudCh0eC5hbW91bnQpLmJsb2NrY2hhaW4odW5pdHMpLnZhbHVlLFxuICAgICAgZmVlOiBuZXdBbW91bnQodHguZmVlKS5ibG9ja2NoYWluKGZlZVVuaXRzKS52YWx1ZSxcblxuICAgICAgdGltZXN0YW1wOiB0eC50aW1lc3RhbXAsXG4gICAgICBjaGFuZ2VBZGRyZXNzSW5mbzogdHguY2hhbmdlQWRkcmVzc0luZm8sXG4gICAgICBkaXNwbGF5RnJvbVRvOiB0eC5kaXNwbGF5RnJvbVRvLFxuXG4gICAgICBwcm90b2NvbElkZW50aWZpZXI6IHByb3RvY29sTWV0YWRhdGEuaWRlbnRpZmllciBhcyBQcm90b2NvbFN5bWJvbHMsXG4gICAgICBuZXR3b3JrOiBuZXR3b3JrVjAsXG5cbiAgICAgIGRhdGE6IHR5cGVvZiB0eC5hcmJpdHJhcnlEYXRhID09PSAnc3RyaW5nJyA/IHR4LmFyYml0cmFyeURhdGEgOiB0eC5hcmJpdHJhcnlEYXRhPy5bMV0sXG5cbiAgICAgIGhhc2g6IHR4LnN0YXR1cz8uaGFzaCxcbiAgICAgIGJsb2NrSGVpZ2h0OiB0eC5zdGF0dXM/LmJsb2NrLFxuICAgICAgc3RhdHVzOiB0eC5zdGF0dXMgPyBjb252ZXJ0VHJhbnNhY3Rpb25TdGF0dXNWMVRvVjAodHguc3RhdHVzKSA6IHVuZGVmaW5lZCxcblxuICAgICAgd2FybmluZ3M6IHR4LnVpQWxlcnRzID8gY29udmVydFVJQWxlcnRzVjFUb1YwKHR4LnVpQWxlcnRzKSA6IHVuZGVmaW5lZCxcblxuICAgICAgZXh0cmE6IHtcbiAgICAgICAgLi4udHguZXh0cmEsXG4gICAgICAgIHR5cGU6IHR4LnR5cGVcbiAgICAgIH0sXG4gICAgICB0cmFuc2FjdGlvbkRldGFpbHM6IHR4Lmpzb25cbiAgICB9XG4gIH0pXG59XG5cbi8vIEZlZURlZmF1bHRzXG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0RmVlRGVmYXVsdHNWMFRvVjE8X0ZlZVVuaXRzIGV4dGVuZHMgc3RyaW5nPihmZWVEZWZhdWx0czogRmVlRGVmYXVsdHNWMCwgZGVjaW1hbHM6IG51bWJlcik6IEZlZURlZmF1bHRzVjE8X0ZlZVVuaXRzPiB7XG4gIHJldHVybiB7XG4gICAgbG93OiBuZXdBbW91bnQobmV3IEJpZ051bWJlcihmZWVEZWZhdWx0cy5sb3cpLnNoaWZ0ZWRCeShkZWNpbWFscyksICdibG9ja2NoYWluJyksXG4gICAgbWVkaXVtOiBuZXdBbW91bnQobmV3IEJpZ051bWJlcihmZWVEZWZhdWx0cy5tZWRpdW0pLnNoaWZ0ZWRCeShkZWNpbWFscyksICdibG9ja2NoYWluJyksXG4gICAgaGlnaDogbmV3QW1vdW50KG5ldyBCaWdOdW1iZXIoZmVlRGVmYXVsdHMuaGlnaCkuc2hpZnRlZEJ5KGRlY2ltYWxzKSwgJ2Jsb2NrY2hhaW4nKVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0RmVlRGVmYXVsdHNWMVRvVjAoZmVlRGVmYXVsdHM6IEZlZURlZmF1bHRzVjEsIHByb3RvY29sTWV0YWRhdGE6IFByb3RvY29sTWV0YWRhdGEpOiBGZWVEZWZhdWx0c1YwIHtcbiAgY29uc3QgZmVlVW5pdHM6IFByb3RvY29sVW5pdHNNZXRhZGF0YSA9IHByb3RvY29sTWV0YWRhdGEuZmVlPy51bml0cyA/PyBwcm90b2NvbE1ldGFkYXRhLnVuaXRzXG4gIGNvbnN0IGZlZVVuaXQ6IHN0cmluZyA9IHByb3RvY29sTWV0YWRhdGEuZmVlPy5tYWluVW5pdCA/PyBwcm90b2NvbE1ldGFkYXRhLm1haW5Vbml0XG5cbiAgcmV0dXJuIHtcbiAgICBsb3c6IG5ldyBCaWdOdW1iZXIobmV3QW1vdW50KGZlZURlZmF1bHRzLmxvdykuY29udmVydChmZWVVbml0LCBmZWVVbml0cykudmFsdWUpLnRvRml4ZWQoKSxcbiAgICBtZWRpdW06IG5ldyBCaWdOdW1iZXIobmV3QW1vdW50KGZlZURlZmF1bHRzLm1lZGl1bSkuY29udmVydChmZWVVbml0LCBmZWVVbml0cykudmFsdWUpLnRvRml4ZWQoKSxcbiAgICBoaWdoOiBuZXcgQmlnTnVtYmVyKG5ld0Ftb3VudChmZWVEZWZhdWx0cy5oaWdoKS5jb252ZXJ0KGZlZVVuaXQsIGZlZVVuaXRzKS52YWx1ZSkudG9GaXhlZCgpXG4gIH1cbn1cblxuLy8gQnl0ZXNcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEJ5dGVzRm9ybWF0VjFGcm9tVjAoYnl0ZXM6IHN0cmluZyk6IEJ5dGVzU3RyaW5nRm9ybWF0IHtcbiAgcmV0dXJuIGlzSGV4KGJ5dGVzKSA/ICdoZXgnIDogJ2VuY29kZWQnXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWNyZXRLZXlUeXBlKHNlY3JldEtleTogc3RyaW5nKTogU2VjcmV0S2V5Wyd0eXBlJ10gfCBFeHRlbmRlZFNlY3JldEtleVsndHlwZSddIHtcbiAgcmV0dXJuIHNlY3JldEtleS5zdGFydHNXaXRoKCd4cHJ2JykgPyAneHByaXYnIDogJ3ByaXYnXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQdWJsaWNLZXlUeXBlKHB1YmxpY0tleTogc3RyaW5nKTogUHVibGljS2V5Wyd0eXBlJ10gfCBFeHRlbmRlZFB1YmxpY0tleVsndHlwZSddIHtcbiAgcmV0dXJuIHB1YmxpY0tleS5zdGFydHNXaXRoKCd4cHViJykgPyAneHB1YicgOiAncHViJ1xufVxuIl19
408
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdG9jb2wtdjAtYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvdXRpbHMvcHJvdG9jb2wvcHJvdG9jb2wtdjAtYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4QkFBOEI7QUFDOUIsT0FBTyxFQUFFLGVBQWUsRUFBcUIsdUJBQXVCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUNyRyxPQUFPLEVBQUUsV0FBVyxFQUFpQixtQkFBbUIsRUFBRSxvQkFBb0IsRUFBa0IsTUFBTSxxQkFBcUIsQ0FBQTtBQUMzSCxPQUFPLEVBQ0wsZUFBZSxJQUFJLGlCQUFpQixFQUNwQyxXQUFXLElBQUkscUJBQXFCLEVBS3JDLE1BQU0sNEJBQTRCLENBQUE7QUFDbkMsT0FBTyxFQUNMLGdCQUFnQixJQUFJLHdCQUF3QixFQUM1QyxzQkFBc0IsRUFFdEIsY0FBYyxFQUVmLE1BQU0sd0JBQXdCLENBQUE7QUFDL0IsT0FBTyxFQWNMLGdCQUFnQixFQUNoQixTQUFTLEVBVVYsTUFBTSwwQkFBMEIsQ0FBQTtBQUNqQyxPQUFPLEVBQUUsYUFBYSxFQUEwQyxxQkFBcUIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ2pKLE9BQU8sRUFBRSxZQUFZLEVBQWtCLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDekYsT0FBTyxFQUFFLFlBQVksRUFBa0Isb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUN6RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsaUJBQWlCLEVBQXVCLE1BQU0sMkJBQTJCLENBQUE7QUFDN0csT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBZSxNQUFNLG1CQUFtQixDQUFBO0FBQzdFLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUV2QixjQUFjLEVBR2YsTUFBTSx3QkFBd0IsQ0FBQTtBQUMvQixPQUFPLEVB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QUFTLENBQUE7QUFDekMsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxTQUFpQjtJQUNoRCxPQUFPLFNBQVMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFBO0FBQ3hELENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsU0FBaUI7SUFDaEQsT0FBTyxTQUFTLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQTtBQUN0RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbWF4LWxpbmVzICovXG5pbXBvcnQgeyBBZXRlcm5pdHlNb2R1bGUsIEFldGVybml0eVByb3RvY29sLCBjcmVhdGVBZXRlcm5pdHlQcm90b2NvbCB9IGZyb20gJ0B3YWxsZnJlZS1kZXYvYWV0ZXJuaXR5J1xuaW1wb3J0IHsgQXN0YXJNb2R1bGUsIEFzdGFyUHJvdG9jb2wsIGNyZWF0ZUFzdGFyUHJvdG9jb2wsIGNyZWF0ZVNoaWRlblByb3RvY29sLCBTaGlkZW5Qcm90b2NvbCB9IGZyb20gJ0B3YWxsZnJlZS1kZXYvYXN0YXInXG5pbXBvcnQge1xuICBQcm90b2NvbE5ldHdvcmsgYXMgUHJvdG9jb2xOZXR3b3JrVjAsXG4gIE5ldHdvcmtUeXBlIGFzIFByb3RvY29sTmV0d29ya1R5cGVWMCxcbiAgUHJvdG9jb2xCbG9ja0V4cGxvcmVyIGFzIFByb3RvY29sQmxvY2tFeHBsb3JlclYwLFxuICBGZWVEZWZhdWx0cyBhcyBGZWVEZWZhdWx0c1YwLFxuICBJQWlyR2FwVHJhbnNhY3Rpb24gYXMgQWlyR2FwVHJhbnNhY3Rpb25WMCxcbiAgUHJvdG9jb2xTeW1ib2xzXG59IGZyb20gJ0B3YWxsZnJlZS1kZXYvY29pbmxpYi1jb3JlJ1xuaW1wb3J0IHtcbiAgY3JlYXRlRVJDMjBUb2tlbiBhcyBjcmVhdGVFdGhlcmV1bUVSQzIwVG9rZW4sXG4gIGNyZWF0ZUV0aGVyZXVtUHJvdG9jb2wsXG4gIEVSQzIwVG9rZW4gYXMgRXRoZXJldW1FUkMyMFRva2VuLFxuICBFdGhlcmV1bU1vZHVsZSxcbiAgRXRoZXJldW1Qcm90b2NvbFxufSBmcm9tICdAd2FsbGZyZWUtZGV2L2V0aGVyZXVtJ1xuaW1wb3J0IHtcbiAgQWlyR2FwQW55UHJvdG9jb2wsXG4gIEFpckdhcEJsb2NrRXhwbG9yZXIgYXMgUHJvdG9jb2xCbG9ja0V4cGxvcmVyVjEsXG4gIEFpckdhcE1vZHVsZSxcbiAgQWlyR2FwT25saW5lUHJvdG9jb2wsXG4gIEFpckdhcFRyYW5zYWN0aW9uIGFzIEFpckdhcFRyYW5zYWN0aW9uVjEsXG4gIEFpckdhcFRyYW5zYWN0aW9uU3RhdHVzIGFzIEFpckdhcFRyYW5zYWN0aW9uU3RhdHVzVjEsXG4gIEFpckdhcFVJQWN0aW9uIGFzIEFpckdhcFVJQWN0aW9uVjEsXG4gIEFpckdhcFVJQWxlcnQgYXMgQWlyR2FwVUlBbGVydFYxLFxuICBBaXJHYXBWM1NlcmlhbGl6ZXJDb21wYW5pb24sXG4gIEJ5dGVzU3RyaW5nRm9ybWF0LFxuICBFeHRlbmRlZFB1YmxpY0tleSxcbiAgRXh0ZW5kZWRTZWNyZXRLZXksXG4gIEZlZURlZmF1bHRzIGFzIEZlZURlZmF1bHRzVjEsXG4gIGlzT25saW5lUHJvdG9jb2wsXG4gIG5ld0Ftb3VudCxcbiAgUHJvdG9jb2xDb25maWd1cmF0aW9uLFxuICBQcm90b2NvbE1ldGFkYXRhLFxuICBQcm90b2NvbE5ldHdvcmsgYXMgUHJvdG9jb2xOZXR3b3JrVjEsXG4gIFByb3RvY29sTmV0d29ya1R5cGUgYXMgUHJvdG9jb2xOZXR3b3JrVHlwZVYxLFxuICBQcm90b2NvbFVuaXRzTWV0YWRhdGEsXG4gIFB1YmxpY0tleSxcbiAgUmVjdXJzaXZlUGFydGlhbCxcbiAgU2VjcmV0S2V5LFxuICBTdWJQcm90b2NvbFxufSBmcm9tICdAd2FsbGZyZWUtZGV2L21vZHVsZS1raXQnXG5pbXBvcnQgeyBCaXRjb2luTW9kdWxlLCBCaXRjb2luUHJvdG9jb2wsIEJpdGNvaW5TZWd3aXRQcm90b2NvbCwgY3JlYXRlQml0Y29pblByb3RvY29sLCBjcmVhdGVCaXRjb2luU2Vnd2l0UHJvdG9jb2wgfSBmcm9tICdAd2FsbGZyZWUtZGV2L2JpdGNvaW4nXG5pbXBvcnQgeyBDb3JldW1Nb2R1bGUsIENvcmV1bVByb3RvY29sLCBjcmVhdGVDb3JldW1Qcm90b2NvbCB9IGZyb20gJ0B3YWxsZnJlZS1kZXYvY29yZXVtJ1xuaW1wb3J0IHsgQ29zbW9zTW9kdWxlLCBDb3Ntb3NQcm90b2NvbCwgY3JlYXRlQ29zbW9zUHJvdG9jb2wgfSBmcm9tICdAd2FsbGZyZWUtZGV2L2Nvc21vcydcbmltcG9ydCB7IGNyZWF0ZUdyb2VzdGxjb2luUHJvdG9jb2wsIEdyb2VzdGxjb2luTW9kdWxlLCBHcm9lc3RsY29pblByb3RvY29sIH0gZnJvbSAnQHdhbGxmcmVlLWRldi9ncm9lc3RsY29pbidcbmltcG9ydCB7IGNyZWF0ZUlDUFByb3RvY29sLCBJQ1BNb2R1bGUsIElDUFByb3RvY29sIH0gZnJvbSAnQHdhbGxmcmVlLWRldi9pY3AnXG5pbXBvcnQge1xuICBjcmVhdGVNb29uYmFzZVByb3RvY29sLFxuICBjcmVhdGVNb29uYmVhbVByb3RvY29sLFxuICBjcmVhdGVNb29ucml2ZXJQcm90b2NvbCxcbiAgTW9vbmJhc2VQcm90b2NvbCxcbiAgTW9vbmJlYW1Nb2R1bGUsXG4gIE1vb25iZWFtUHJvdG9jb2wsXG4gIE1vb25yaXZlclByb3RvY29sXG59IGZyb20gJ0B3YWxsZnJlZS1kZXYvbW9vbmJlYW0nXG5pbXBvcnQge1xuICBjcmVhdGVFUkMyMFRva2VuIGFzIGNyZWF0ZU9wdGltaXNtRVJDMjBUb2tlbixcbiAgY3JlYXRlT3B0aW1pc21Qcm90b2NvbCxcbiAgRVJDMjBUb2tlbiBhcyBPcHRpbWlzbUVSQzIwVG9rZW4sXG4gIE9wdGltaXNtTW9kdWxlLFxuICBPcHRpbWlzbVByb3RvY29sXG59IGZyb20gJ0B3YWxsZnJlZS1kZXYvb3B0aW1pc20nXG5pbXBvcnQgeyBjcmVhdGVLdXNhbWFQcm90b2NvbCwgY3JlYXRlUG9sa2Fkb3RQcm90b2NvbCwgS3VzYW1hUHJvdG9jb2wsIFBvbGthZG90TW9kdWxlLCBQb2xrYWRvdFByb3RvY29sIH0gZnJvbSAnQHdhbGxmcmVlLWRldi9wb2xrYWRvdCdcbmltcG9ydCB7IGNyZWF0ZVNvbGFuYVByb3RvY29sLCBTb2xhbmFNb2R1bGUsIFNvbGFuYVByb3RvY29sIH0gZnJvbSAnQHdhbGxmcmVlLWRldi9zb2xhbmEnXG5pbXBvcnQgeyBjcmVhdGVUcm9uUHJvdG9jb2wsIFRyb25Nb2R1bGUsIFRyb25Qcm90b2NvbCB9IGZyb20gJ0B3YWxsZnJlZS1kZXYvdHJvbidcbmltcG9ydCB7IEFwdG9zTW9kdWxlLCBBcHRvc1Byb3RvY29sLCBjcmVhdGVBcHRvc1Byb3RvY29sIH0gZnJvbSAnQHdhbGxmcmVlLWRldi9hcHRvcydcbmltcG9ydCB7IFN1aU1vZHVsZSwgU3VpUHJvdG9jb2wsIGNyZWF0ZVN1aVByb3RvY29sIH0gZnJvbSAnQHdhbGxmcmVlLWRldi9zdWknXG5pbXBvcnQge1xuICBCVENUZXpQcm90b2NvbCxcbiAgY3JlYXRlQlRDVGV6UHJvdG9jb2wsXG4gIGNyZWF0ZUNUZXpQcm90b2NvbCxcbiAgY3JlYXRlRG9nYW1pUHJvdG9jb2wsXG4gIGNyZWF0ZUVUSFRlelByb3RvY29sLFxuICBjcmVhdGVLb2xpYnJpVVNEUHJvdG9jb2wsXG4gIGNyZWF0ZVBsZW50eVByb3RvY29sLFxuICBjcmVhdGVRdWlwdXN3YXBQcm90b2NvbCxcbiAgY3JlYXRlU2lyaXVzUHJvdG9jb2wsXG4gIGNyZWF0ZVN0YWtlclByb3RvY29sLFxuICBjcmVhdGVUZXRoZXJVU0RQcm90b2NvbCxcbiAgY3JlYXRlVGV6b3NGQTFwMlByb3RvY29sLFxuICBjcmVhdGVUZXpvc0ZBMlByb3RvY29sLFxuICBjcmVhdGVUZXpvc0t0UHJvdG9jb2wsXG4gIGNyZWF0ZVRlem9zUHJvdG9jb2wsXG4gIGNyZWF0ZVRlem9zU2hpZWxkZWRUZXpQcm90b2NvbCxcbiAgY3JlYXRlVHpCVENQcm90b2NvbCxcbiAgY3JlYXRlVUJUQ1Byb3RvY29sLFxuICBjcmVhdGVVREVGSVByb3RvY29sLFxuICBjcmVhdGVVU0RUZXpQcm90b2NvbCxcbiAgY3JlYXRlVVVTRFByb3RvY29sLFxuICBjcmVhdGVXcmFwcGVkVGV6b3NQcm90b2NvbCxcbiAgY3JlYXRlV3JhcFByb3RvY29sLFxuICBjcmVhdGVZb3VQcm90b2NvbCxcbiAgQ1RlelByb3RvY29sLFxuICBEb2dhbWlQcm90b2NvbCxcbiAgRVRIVGV6UHJvdG9jb2wsXG4gIEtvbGlicmlVU0RQcm90b2NvbCxcbiAgUGxlbnR5UHJvdG9jb2wsXG4gIFF1aXB1c3dhcFByb3RvY29sLFxuICBTaXJpdXNQcm90b2NvbCxcbiAgU3Rha2VyUHJvdG9jb2wsXG4gIFRldGhlclVTRFByb3RvY29sLFxuICBUZXpvc0ZBMXAyUHJvdG9jb2wsXG4gIFRlem9zRkEyUHJvdG9jb2wsXG4gIFRlem9zRkFQcm90b2NvbCxcbiAgVGV6b3NLdFByb3RvY29sLFxuICBUZXpvc01vZHVsZSxcbiAgVGV6b3NQcm90b2NvbCxcbiAgVGV6b3NQcm90b2NvbE5ldHdvcmssXG4gIFRlem9zU2hpZWxkZWRUZXpQcm90b2NvbCxcbiAgVHpCVENQcm90b2NvbCxcbiAgVUJUQ1Byb3RvY29sLFxuICBVREVGSVByb3RvY29sLFxuICBVU0RUZXpQcm90b2NvbCxcbiAgVVVTRFByb3RvY29sLFxuICBXcmFwcGVkVGV6b3NQcm90b2NvbCxcbiAgV3JhcFByb3RvY29sLFxuICBZb3VQcm90b2NvbFxufSBmcm9tICdAd2FsbGZyZWUtZGV2L3Rlem9zJ1xuaW1wb3J0IEJpZ051bWJlciBmcm9tICdAd2FsbGZyZWUtZGV2L2NvaW5saWItY29yZS9kZXBlbmRlbmNpZXMvc3JjL2JpZ251bWJlci5qcy05LjAuMC9iaWdudW1iZXInXG5cbmltcG9ydCB7XG4gIEFpckdhcFRyYW5zYWN0aW9uU3RhdHVzIGFzIEFpckdhcFRyYW5zYWN0aW9uU3RhdHVzVjAsXG4gIEFpckdhcFRyYW5zYWN0aW9uV2FybmluZyBhcyBBaXJHYXBVSUFsZXJ0VjAsXG4gIEFpckdhcFRyYW5zYWN0aW9uV2FybmluZ1R5cGVcbn0gZnJvbSAnQHdhbGxmcmVlLWRldi9jb2lubGliLWNvcmUvaW50ZXJmYWNlcy9JQWlyR2FwVHJhbnNhY3Rpb24nXG5pbXBvcnQgeyBpc0hleCB9IGZyb20gJ0B3YWxsZnJlZS1kZXYvY29pbmxpYi1jb3JlL3V0aWxzL2hleCdcblxuaW1wb3J0IHtcbiAgY3JlYXRlSUNvaW5Qcm90b2NvbEFkYXB0ZXIsXG4gIGNyZWF0ZUlDb2luU3ViUHJvdG9jb2xBZGFwdGVyLFxuICBJQ29pblByb3RvY29sQWRhcHRlcixcbiAgSUNvaW5TdWJQcm90b2NvbEFkYXB0ZXIsXG4gIFByb3RvY29sQmxvY2tFeHBsb3JlckFkYXB0ZXIsXG4gIFByb3RvY29sTmV0d29ya0FkYXB0ZXJcbn0gZnJvbSAnLi4vLi4vcHJvdG9jb2wvYWRhcHRlci9wcm90b2NvbC12MC1hZGFwdGVyJ1xuXG4vLyBOZXR3b3JrXG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0TmV0d29ya1R5cGVWMFRvVjEodHlwZTogUHJvdG9jb2xOZXR3b3JrVHlwZVYwKTogUHJvdG9jb2xOZXR3b3JrVHlwZVYxIHtcbiAgcmV0dXJuIHR5cGUgPT09IFByb3RvY29sTmV0d29ya1R5cGVWMC5NQUlOTkVUID8gJ21haW5uZXQnIDogdHlwZSA9PT0gUHJvdG9jb2xOZXR3b3JrVHlwZVYwLlRFU1RORVQgPyAndGVzdG5ldCcgOiAnY3VzdG9tJ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udmVydE5ldHdvcmtUeXBlVjFUb1YwKHR5cGU6IFByb3RvY29sTmV0d29ya1R5cGVWMSk6IFByb3RvY29sTmV0d29ya1R5cGVWMCB7XG4gIHJldHVybiB0eXBlID09PSAnbWFpbm5ldCdcbiAgICA/IFByb3RvY29sTmV0d29ya1R5cGVWMC5NQUlOTkVUXG4gICAgOiB0eXBlID09PSAndGVzdG5ldCdcbiAgICA/IFByb3RvY29sTmV0d29ya1R5cGVWMC5URVNUTkVUXG4gICAgOiBQcm90b2NvbE5ldHdvcmtUeXBlVjAuQ1VTVE9NXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0TmV0d29ya1YwVG9WMShuZXR3b3JrOiBQcm90b2NvbE5ldHdvcmtWMCk6IFByb3RvY29sTmV0d29ya1YxIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBuZXR3b3JrLm5hbWUsXG4gICAgdHlwZTogY29udmVydE5ldHdvcmtUeXBlVjBUb1YxKG5ldHdvcmsudHlwZSksXG4gICAgcnBjVXJsOiBuZXR3b3JrLnJwY1VybCxcbiAgICBibG9ja0V4cGxvcmVyVXJsOiBuZXR3b3JrLmJsb2NrRXhwbG9yZXIuYmxvY2tFeHBsb3JlcixcbiAgICAuLi4odHlwZW9mIG5ldHdvcmsuZXh0cmFzID09PSAnb2JqZWN0JyA/IG5ldHdvcmsuZXh0cmFzIDoge30pXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnROZXR3b3JrVjFUb1YwKG5ldHdvcms6IFByb3RvY29sTmV0d29ya1YxLCBibG9ja0V4cGxvcmVyPzogUHJvdG9jb2xCbG9ja0V4cGxvcmVyVjEpOiBQcm90b2NvbE5ldHdvcmtWMCB7XG4gIGNvbnN0IHsgbmFtZSwgdHlwZSwgcnBjVXJsLCAuLi5yZXN0IH0gPSBuZXR3b3JrXG4gIGNvbnN0IGJsb2NrRXhwbG9yZXJWMDogUHJvdG9jb2xCbG9ja0V4cGxvcmVyVjAgPSBuZXcgUHJvdG9jb2xCbG9ja0V4cGxvcmVyQWRhcHRlcihibG9ja0V4cGxvcmVyLCBuZXR3b3JrLmJsb2NrRXhwbG9yZXJVcmwpXG5cbiAgcmV0dXJuIG5ldyBQcm90b2NvbE5ldHdvcmtBZGFwdGVyKG5hbWUsIGNvbnZlcnROZXR3b3JrVHlwZVYxVG9WMCh0eXBlKSwgcnBjVXJsLCBibG9ja0V4cGxvcmVyVjAsIHJlc3QpXG59XG5cbi8vIFByb3RvY29sXG5cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUFkYXB0ZXJTdXBwbGVtZW50c0Zyb21JZGVudGlmaWVyQW5kTmV0d29yayhcbiAgbW9kdWxlOiBBaXJHYXBNb2R1bGUsXG4gIGlkZW50aWZpZXI6IHN0cmluZyxcbiAgbmV0d29yazogUHJvdG9jb2xOZXR3b3JrVjEgfCB1bmRlZmluZWRcbik6IFByb21pc2U8W1Byb3RvY29sQmxvY2tFeHBsb3JlclYxLCBBaXJHYXBWM1NlcmlhbGl6ZXJDb21wYW5pb25dPiB7XG4gIGNvbnN0IFtibG9ja0V4cGxvcmVyLCB2M1NlcmlhbGl6ZXJDb21wYW5pb25dID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgIG1vZHVsZS5jcmVhdGVCbG9ja0V4cGxvcmVyKGlkZW50aWZpZXIsIG5ldHdvcmspLFxuICAgIG1vZHVsZS5jcmVhdGVWM1NlcmlhbGl6ZXJDb21wYW5pb24oKVxuICBdKVxuXG4gIHJldHVybiBbYmxvY2tFeHBsb3JlciwgdjNTZXJpYWxpemVyQ29tcGFuaW9uXVxufVxuXG5hc3luYyBmdW5jdGlvbiBjcmVhdGVBZGFwdGVyU3VwcGxlbWVudHNGcm9tUHJvdG9jb2w8VCBleHRlbmRzIEFpckdhcEFueVByb3RvY29sPihcbiAgcHJvdG9jb2w6IFQsXG4gIG1vZHVsZTogQWlyR2FwTW9kdWxlXG4pOiBQcm9taXNlPFtQcm90b2NvbEJsb2NrRXhwbG9yZXJWMSwgQWlyR2FwVjNTZXJpYWxpemVyQ29tcGFuaW9uXT4ge1xuICBjb25zdCBbbWV0YWRhdGEsIG5ldHdvcmtdOiBbUHJvdG9jb2xNZXRhZGF0YSwgUHJvdG9jb2xOZXR3b3JrVjEgfCB1bmRlZmluZWRdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgIHByb3RvY29sLmdldE1ldGFkYXRhKCksXG4gICAgaXNPbmxpbmVQcm90b2NvbChwcm90b2NvbCkgPyBwcm90b2NvbC5nZXROZXR3b3JrKCkgOiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKVxuICBdKVxuXG4gIHJldHVybiBjcmVhdGVBZGFwdGVyU3VwcGxlbWVudHNGcm9tSWRlbnRpZmllckFuZE5ldHdvcmsobW9kdWxlLCBtZXRhZGF0YS5pZGVudGlmaWVyLCBuZXR3b3JrKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBQcm90b2NvbDxUIGV4dGVuZHMgQWlyR2FwQW55UHJvdG9jb2w+KFxuICBwcm90b2NvbDogVCxcbiAgbW9kdWxlOiBBaXJHYXBNb2R1bGUsXG4gIHR5cGU6IFByb3RvY29sQ29uZmlndXJhdGlvblsndHlwZSddID0gJ2Z1bGwnXG4pOiBQcm9taXNlPElDb2luUHJvdG9jb2xBZGFwdGVyPFQ+PiB7XG4gIGNvbnN0IFtibG9ja0V4cGxvcmVyLCB2M1NlcmlhbGl6ZXJDb21wYW5pb25dOiBbUHJvdG9jb2xCbG9ja0V4cGxvcmVyVjEsIEFpckdhcFYzU2VyaWFsaXplckNvbXBhbmlvbl0gPVxuICAgIGF3YWl0IGNyZWF0ZUFkYXB0ZXJTdXBwbGVtZW50c0Zyb21Qcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxuXG4gIHJldHVybiBjcmVhdGVJQ29pblByb3RvY29sQWRhcHRlcihwcm90b2NvbCwgYmxvY2tFeHBsb3JlciwgdjNTZXJpYWxpemVyQ29tcGFuaW9uLCB7IHR5cGUgfSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwU3ViUHJvdG9jb2w8VCBleHRlbmRzIEFpckdhcEFueVByb3RvY29sICYgU3ViUHJvdG9jb2w+KFxuICBwcm90b2NvbDogVCxcbiAgbW9kdWxlOiBBaXJHYXBNb2R1bGUsXG4gIHR5cGU6IFByb3RvY29sQ29uZmlndXJhdGlvblsndHlwZSddID0gJ2Z1bGwnXG4pOiBQcm9taXNlPElDb2luU3ViUHJvdG9jb2xBZGFwdGVyPFQ+PiB7XG4gIGNvbnN0IFtibG9ja0V4cGxvcmVyLCB2M1NlcmlhbGl6ZXJDb21wYW5pb25dOiBbUHJvdG9jb2xCbG9ja0V4cGxvcmVyVjEsIEFpckdhcFYzU2VyaWFsaXplckNvbXBhbmlvbl0gPVxuICAgIGF3YWl0IGNyZWF0ZUFkYXB0ZXJTdXBwbGVtZW50c0Zyb21Qcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxuXG4gIHJldHVybiBjcmVhdGVJQ29pblN1YlByb3RvY29sQWRhcHRlcihwcm90b2NvbCwgYmxvY2tFeHBsb3JlciwgdjNTZXJpYWxpemVyQ29tcGFuaW9uLCB7IHR5cGUgfSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwRVJDMjBUb2tlbjxUIGV4dGVuZHMgQWlyR2FwQW55UHJvdG9jb2wgJiBTdWJQcm90b2NvbD4oXG4gIGVyYzIwVG9rZW46IFQsXG4gIHByb3RvY29sOiBBaXJHYXBBbnlQcm90b2NvbCxcbiAgbW9kdWxlOiBBaXJHYXBNb2R1bGUsXG4gIHR5cGU6IFByb3RvY29sQ29uZmlndXJhdGlvblsndHlwZSddID0gJ2Z1bGwnXG4pOiBQcm9taXNlPElDb2luU3ViUHJvdG9jb2xBZGFwdGVyPFQ+PiB7XG4gIGNvbnN0IFttZXRhZGF0YSwgbmV0d29ya106IFtQcm90b2NvbE1ldGFkYXRhLCBQcm90b2NvbE5ldHdvcmtWMSB8IHVuZGVmaW5lZF0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgcHJvdG9jb2wuZ2V0TWV0YWRhdGEoKSxcbiAgICBpc09ubGluZVByb3RvY29sKGVyYzIwVG9rZW4pID8gZXJjMjBUb2tlbi5nZXROZXR3b3JrKCkgOiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKVxuICBdKVxuXG4gIGNvbnN0IFtibG9ja0V4cGxvcmVyLCB2M1NlcmlhbGl6ZXJDb21wYW5pb25dID0gYXdhaXQgY3JlYXRlQWRhcHRlclN1cHBsZW1lbnRzRnJvbUlkZW50aWZpZXJBbmROZXR3b3JrKFxuICAgIG1vZHVsZSxcbiAgICBtZXRhZGF0YS5pZGVudGlmaWVyLFxuICAgIG5ldHdvcmtcbiAgKVxuXG4gIHJldHVybiBjcmVhdGVJQ29pblN1YlByb3RvY29sQWRhcHRlcihlcmMyMFRva2VuLCBibG9ja0V4cGxvcmVyLCB2M1NlcmlhbGl6ZXJDb21wYW5pb24sIHsgdHlwZSB9KVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBBZXRlcm5pdHlQcm90b2NvbChcbiAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlQWV0ZXJuaXR5UHJvdG9jb2w+XG4pOiBQcm9taXNlPElDb2luUHJvdG9jb2xBZGFwdGVyPEFldGVybml0eVByb3RvY29sPj4ge1xuICBjb25zdCBwcm90b2NvbDogQWV0ZXJuaXR5UHJvdG9jb2wgPSBjcmVhdGVBZXRlcm5pdHlQcm90b2NvbCguLi5hcmdzKVxuICBjb25zdCBtb2R1bGU6IEFldGVybml0eU1vZHVsZSA9IG5ldyBBZXRlcm5pdHlNb2R1bGUoKVxuXG4gIHJldHVybiBjcmVhdGVWMFByb3RvY29sKHByb3RvY29sLCBtb2R1bGUpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVWMEFzdGFyUHJvdG9jb2woLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlQXN0YXJQcm90b2NvbD4pOiBQcm9taXNlPElDb2luUHJvdG9jb2xBZGFwdGVyPEFzdGFyUHJvdG9jb2w+PiB7XG4gIGNvbnN0IHByb3RvY29sOiBBc3RhclByb3RvY29sID0gY3JlYXRlQXN0YXJQcm90b2NvbCguLi5hcmdzKVxuICBjb25zdCBtb2R1bGU6IEFzdGFyTW9kdWxlID0gbmV3IEFzdGFyTW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBQcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBTaGlkZW5Qcm90b2NvbChcbiAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlU2hpZGVuUHJvdG9jb2w+XG4pOiBQcm9taXNlPElDb2luUHJvdG9jb2xBZGFwdGVyPFNoaWRlblByb3RvY29sPj4ge1xuICBjb25zdCBwcm90b2NvbDogU2hpZGVuUHJvdG9jb2wgPSBjcmVhdGVTaGlkZW5Qcm90b2NvbCguLi5hcmdzKVxuICBjb25zdCBtb2R1bGU6IEFzdGFyTW9kdWxlID0gbmV3IEFzdGFyTW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBQcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBCaXRjb2luUHJvdG9jb2woXG4gIC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZUJpdGNvaW5Qcm90b2NvbD5cbik6IFByb21pc2U8SUNvaW5Qcm90b2NvbEFkYXB0ZXI8Qml0Y29pblByb3RvY29sPj4ge1xuICBjb25zdCBwcm90b2NvbDogQml0Y29pblByb3RvY29sID0gY3JlYXRlQml0Y29pblByb3RvY29sKC4uLmFyZ3MpXG4gIGNvbnN0IG1vZHVsZTogQml0Y29pbk1vZHVsZSA9IG5ldyBCaXRjb2luTW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBQcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBCaXRjb2luU2Vnd2l0UHJvdG9jb2woXG4gIC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZUJpdGNvaW5TZWd3aXRQcm90b2NvbD5cbik6IFByb21pc2U8SUNvaW5Qcm90b2NvbEFkYXB0ZXI8Qml0Y29pblNlZ3dpdFByb3RvY29sPj4ge1xuICBjb25zdCBwcm90b2NvbDogQml0Y29pblNlZ3dpdFByb3RvY29sID0gY3JlYXRlQml0Y29pblNlZ3dpdFByb3RvY29sKC4uLmFyZ3MpXG4gIGNvbnN0IG1vZHVsZTogQml0Y29pbk1vZHVsZSA9IG5ldyBCaXRjb2luTW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBQcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBDb3JldW1Qcm90b2NvbChcbiAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlQ29yZXVtUHJvdG9jb2w+XG4pOiBQcm9taXNlPElDb2luUHJvdG9jb2xBZGFwdGVyPENvcmV1bVByb3RvY29sPj4ge1xuICBjb25zdCBwcm90b2NvbDogQ29yZXVtUHJvdG9jb2wgPSBjcmVhdGVDb3JldW1Qcm90b2NvbCguLi5hcmdzKVxuICBjb25zdCBtb2R1bGU6IENvcmV1bU1vZHVsZSA9IG5ldyBDb3JldW1Nb2R1bGUoKVxuXG4gIHJldHVybiBjcmVhdGVWMFByb3RvY29sKHByb3RvY29sLCBtb2R1bGUpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVWMENvc21vc1Byb3RvY29sKFxuICAuLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVDb3Ntb3NQcm90b2NvbD5cbik6IFByb21pc2U8SUNvaW5Qcm90b2NvbEFkYXB0ZXI8Q29zbW9zUHJvdG9jb2w+PiB7XG4gIGNvbnN0IHByb3RvY29sOiBDb3Ntb3NQcm90b2NvbCA9IGNyZWF0ZUNvc21vc1Byb3RvY29sKC4uLmFyZ3MpXG4gIGNvbnN0IG1vZHVsZTogQ29zbW9zTW9kdWxlID0gbmV3IENvc21vc01vZHVsZSgpXG5cbiAgcmV0dXJuIGNyZWF0ZVYwUHJvdG9jb2wocHJvdG9jb2wsIG1vZHVsZSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwRXRoZXJldW1Qcm90b2NvbChcbiAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlRXRoZXJldW1Qcm90b2NvbD5cbik6IFByb21pc2U8SUNvaW5Qcm90b2NvbEFkYXB0ZXI8RXRoZXJldW1Qcm90b2NvbD4+IHtcbiAgY29uc3QgcHJvdG9jb2w6IEV0aGVyZXVtUHJvdG9jb2wgPSBjcmVhdGVFdGhlcmV1bVByb3RvY29sKC4uLmFyZ3MpXG4gIGNvbnN0IG1vZHVsZTogRXRoZXJldW1Nb2R1bGUgPSBuZXcgRXRoZXJldW1Nb2R1bGUoKVxuXG4gIHJldHVybiBjcmVhdGVWMFByb3RvY29sKHByb3RvY29sLCBtb2R1bGUpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVWMEV0aGVyZXVtRVJDMjBUb2tlbihcbiAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlRXRoZXJldW1FUkMyMFRva2VuPlxuKTogUHJvbWlzZTxJQ29pblN1YlByb3RvY29sQWRhcHRlcjxFdGhlcmV1bUVSQzIwVG9rZW4+PiB7XG4gIGNvbnN0IGVyYzIwVG9rZW46IEV0aGVyZXVtRVJDMjBUb2tlbiA9IGNyZWF0ZUV0aGVyZXVtRVJDMjBUb2tlbiguLi5hcmdzKVxuICBjb25zdCBldGhlcmV1bVByb3RvY29sOiBFdGhlcmV1bVByb3RvY29sID0gY3JlYXRlRXRoZXJldW1Qcm90b2NvbChhcmdzWzFdKVxuICBjb25zdCBtb2R1bGU6IEV0aGVyZXVtTW9kdWxlID0gbmV3IEV0aGVyZXVtTW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBFUkMyMFRva2VuKGVyYzIwVG9rZW4sIGV0aGVyZXVtUHJvdG9jb2wsIG1vZHVsZSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwR3JvZXN0bGNvaW5Qcm90b2NvbChcbiAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlR3JvZXN0bGNvaW5Qcm90b2NvbD5cbik6IFByb21pc2U8SUNvaW5Qcm90b2NvbEFkYXB0ZXI8R3JvZXN0bGNvaW5Qcm90b2NvbD4+IHtcbiAgY29uc3QgcHJvdG9jb2w6IEdyb2VzdGxjb2luUHJvdG9jb2wgPSBjcmVhdGVHcm9lc3RsY29pblByb3RvY29sKC4uLmFyZ3MpXG4gIGNvbnN0IG1vZHVsZTogR3JvZXN0bGNvaW5Nb2R1bGUgPSBuZXcgR3JvZXN0bGNvaW5Nb2R1bGUoKVxuXG4gIHJldHVybiBjcmVhdGVWMFByb3RvY29sKHByb3RvY29sLCBtb2R1bGUpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVWMElDUFByb3RvY29sKC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZUlDUFByb3RvY29sPik6IFByb21pc2U8SUNvaW5Qcm90b2NvbEFkYXB0ZXI8SUNQUHJvdG9jb2w+PiB7XG4gIGNvbnN0IHByb3RvY29sOiBJQ1BQcm90b2NvbCA9IGNyZWF0ZUlDUFByb3RvY29sKC4uLmFyZ3MpXG4gIGNvbnN0IG1vZHVsZTogSUNQTW9kdWxlID0gbmV3IElDUE1vZHVsZSgpXG5cbiAgcmV0dXJuIGNyZWF0ZVYwUHJvdG9jb2wocHJvdG9jb2wsIG1vZHVsZSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwTW9vbmJlYW1Qcm90b2NvbChcbiAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlTW9vbmJlYW1Qcm90b2NvbD5cbik6IFByb21pc2U8SUNvaW5Qcm90b2NvbEFkYXB0ZXI8TW9vbmJlYW1Qcm90b2NvbD4+IHtcbiAgY29uc3QgcHJvdG9jb2w6IE1vb25iZWFtUHJvdG9jb2wgPSBjcmVhdGVNb29uYmVhbVByb3RvY29sKC4uLmFyZ3MpXG4gIGNvbnN0IG1vZHVsZTogTW9vbmJlYW1Nb2R1bGUgPSBuZXcgTW9vbmJlYW1Nb2R1bGUoKVxuXG4gIHJldHVybiBjcmVhdGVWMFByb3RvY29sKHByb3RvY29sLCBtb2R1bGUpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVWME1vb25yaXZlclByb3RvY29sKFxuICAuLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVNb29ucml2ZXJQcm90b2NvbD5cbik6IFByb21pc2U8SUNvaW5Qcm90b2NvbEFkYXB0ZXI8TW9vbnJpdmVyUHJvdG9jb2w+PiB7XG4gIGNvbnN0IHByb3RvY29sOiBNb29ucml2ZXJQcm90b2NvbCA9IGNyZWF0ZU1vb25yaXZlclByb3RvY29sKC4uLmFyZ3MpXG4gIGNvbnN0IG1vZHVsZTogTW9vbmJlYW1Nb2R1bGUgPSBuZXcgTW9vbmJlYW1Nb2R1bGUoKVxuXG4gIHJldHVybiBjcmVhdGVWMFByb3RvY29sKHByb3RvY29sLCBtb2R1bGUpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVWME1vb25iYXNlUHJvdG9jb2woXG4gIC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZU1vb25iYXNlUHJvdG9jb2w+XG4pOiBQcm9taXNlPElDb2luUHJvdG9jb2xBZGFwdGVyPE1vb25iYXNlUHJvdG9jb2w+PiB7XG4gIGNvbnN0IHByb3RvY29sOiBNb29uYmFzZVByb3RvY29sID0gY3JlYXRlTW9vbmJhc2VQcm90b2NvbCguLi5hcmdzKVxuICBjb25zdCBtb2R1bGU6IE1vb25iZWFtTW9kdWxlID0gbmV3IE1vb25iZWFtTW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBQcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBPcHRpbWlzbVByb3RvY29sKFxuICAuLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVPcHRpbWlzbVByb3RvY29sPlxuKTogUHJvbWlzZTxJQ29pblByb3RvY29sQWRhcHRlcjxPcHRpbWlzbVByb3RvY29sPj4ge1xuICBjb25zdCBwcm90b2NvbDogT3B0aW1pc21Qcm90b2NvbCA9IGNyZWF0ZU9wdGltaXNtUHJvdG9jb2woLi4uYXJncylcbiAgY29uc3QgbW9kdWxlOiBPcHRpbWlzbU1vZHVsZSA9IG5ldyBPcHRpbWlzbU1vZHVsZSgpXG5cbiAgcmV0dXJuIGNyZWF0ZVYwUHJvdG9jb2wocHJvdG9jb2wsIG1vZHVsZSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwT3B0aW1pc21FUkMyMFRva2VuKFxuICAuLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVPcHRpbWlzbUVSQzIwVG9rZW4+XG4pOiBQcm9taXNlPElDb2luU3ViUHJvdG9jb2xBZGFwdGVyPE9wdGltaXNtRVJDMjBUb2tlbj4+IHtcbiAgY29uc3QgZXJjMjBUb2tlbjogT3B0aW1pc21FUkMyMFRva2VuID0gY3JlYXRlT3B0aW1pc21FUkMyMFRva2VuKC4uLmFyZ3MpXG4gIGNvbnN0IG9wdGltaXNtUHJvdG9jb2w6IE9wdGltaXNtUHJvdG9jb2wgPSBjcmVhdGVPcHRpbWlzbVByb3RvY29sKGFyZ3NbMV0pXG4gIGNvbnN0IG1vZHVsZTogT3B0aW1pc21Nb2R1bGUgPSBuZXcgT3B0aW1pc21Nb2R1bGUoKVxuXG4gIHJldHVybiBjcmVhdGVWMEVSQzIwVG9rZW4oZXJjMjBUb2tlbiwgb3B0aW1pc21Qcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBQb2xrYWRvdFByb3RvY29sKFxuICAuLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVQb2xrYWRvdFByb3RvY29sPlxuKTogUHJvbWlzZTxJQ29pblByb3RvY29sQWRhcHRlcjxQb2xrYWRvdFByb3RvY29sPj4ge1xuICBjb25zdCBwcm90b2NvbDogUG9sa2Fkb3RQcm90b2NvbCA9IGNyZWF0ZVBvbGthZG90UHJvdG9jb2woLi4uYXJncylcbiAgY29uc3QgbW9kdWxlOiBQb2xrYWRvdE1vZHVsZSA9IG5ldyBQb2xrYWRvdE1vZHVsZSgpXG5cbiAgcmV0dXJuIGNyZWF0ZVYwUHJvdG9jb2wocHJvdG9jb2wsIG1vZHVsZSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwS3VzYW1hUHJvdG9jb2woXG4gIC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZUt1c2FtYVByb3RvY29sPlxuKTogUHJvbWlzZTxJQ29pblByb3RvY29sQWRhcHRlcjxLdXNhbWFQcm90b2NvbD4+IHtcbiAgY29uc3QgcHJvdG9jb2w6IEt1c2FtYVByb3RvY29sID0gY3JlYXRlS3VzYW1hUHJvdG9jb2woLi4uYXJncylcbiAgY29uc3QgbW9kdWxlOiBQb2xrYWRvdE1vZHVsZSA9IG5ldyBQb2xrYWRvdE1vZHVsZSgpXG5cbiAgcmV0dXJuIGNyZWF0ZVYwUHJvdG9jb2wocHJvdG9jb2wsIG1vZHVsZSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwU29sYW5hUHJvdG9jb2woXG4gIC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZVNvbGFuYVByb3RvY29sPlxuKTogUHJvbWlzZTxJQ29pblByb3RvY29sQWRhcHRlcjxTb2xhbmFQcm90b2NvbD4+IHtcbiAgY29uc3QgcHJvdG9jb2w6IFNvbGFuYVByb3RvY29sID0gY3JlYXRlU29sYW5hUHJvdG9jb2woLi4uYXJncylcbiAgY29uc3QgbW9kdWxlOiBhbnkgPSBuZXcgU29sYW5hTW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBQcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBUcm9uUHJvdG9jb2woXG4gIC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZVRyb25Qcm90b2NvbD5cbik6IFByb21pc2U8SUNvaW5Qcm90b2NvbEFkYXB0ZXI8VHJvblByb3RvY29sPj4ge1xuICBjb25zdCBwcm90b2NvbDogVHJvblByb3RvY29sID0gY3JlYXRlVHJvblByb3RvY29sKC4uLmFyZ3MpXG4gIGNvbnN0IG1vZHVsZTogVHJvbk1vZHVsZSA9IG5ldyBUcm9uTW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBQcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBBcHRvc1Byb3RvY29sKFxuICAuLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVBcHRvc1Byb3RvY29sPlxuKTogUHJvbWlzZTxJQ29pblByb3RvY29sQWRhcHRlcjxBcHRvc1Byb3RvY29sPj4ge1xuICBjb25zdCBwcm90b2NvbDogQXB0b3NQcm90b2NvbCA9IGNyZWF0ZUFwdG9zUHJvdG9jb2woLi4uYXJncylcbiAgY29uc3QgbW9kdWxlOiBBcHRvc01vZHVsZSA9IG5ldyBBcHRvc01vZHVsZSgpXG5cbiAgcmV0dXJuIGNyZWF0ZVYwUHJvdG9jb2wocHJvdG9jb2wsIG1vZHVsZSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwU3VpUHJvdG9jb2woXG4gIC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZVN1aVByb3RvY29sPlxuKTogUHJvbWlzZTxJQ29pblByb3RvY29sQWRhcHRlcjxTdWlQcm90b2NvbD4+IHtcbiAgY29uc3QgcHJvdG9jb2w6IFN1aVByb3RvY29sID0gY3JlYXRlU3VpUHJvdG9jb2woLi4uYXJncylcbiAgY29uc3QgbW9kdWxlOiBTdWlNb2R1bGUgPSBuZXcgU3VpTW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBQcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBUZXpvc1Byb3RvY29sKC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZVRlem9zUHJvdG9jb2w+KTogUHJvbWlzZTxJQ29pblByb3RvY29sQWRhcHRlcjxUZXpvc1Byb3RvY29sPj4ge1xuICBjb25zdCBwcm90b2NvbDogVGV6b3NQcm90b2NvbCA9IGNyZWF0ZVRlem9zUHJvdG9jb2woLi4uYXJncylcbiAgY29uc3QgbW9kdWxlOiBUZXpvc01vZHVsZSA9IG5ldyBUZXpvc01vZHVsZSgpXG5cbiAgcmV0dXJuIGNyZWF0ZVYwUHJvdG9jb2wocHJvdG9jb2wsIG1vZHVsZSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwVGV6b3NTaGllbGRlZFRlelByb3RvY29sKFxuICAuLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVUZXpvc1NoaWVsZGVkVGV6UHJvdG9jb2w+XG4pOiBQcm9taXNlPElDb2luUHJvdG9jb2xBZGFwdGVyPFRlem9zU2hpZWxkZWRUZXpQcm90b2NvbD4+IHtcbiAgY29uc3QgcHJvdG9jb2w6IFRlem9zU2hpZWxkZWRUZXpQcm90b2NvbCA9IGNyZWF0ZVRlem9zU2hpZWxkZWRUZXpQcm90b2NvbCguLi5hcmdzKVxuICBjb25zdCBtb2R1bGU6IFRlem9zTW9kdWxlID0gbmV3IFRlem9zTW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBQcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBUZXpvc0t0UHJvdG9jb2woXG4gIC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZVRlem9zS3RQcm90b2NvbD5cbik6IFByb21pc2U8SUNvaW5TdWJQcm90b2NvbEFkYXB0ZXI8VGV6b3NLdFByb3RvY29sPj4ge1xuICBjb25zdCBwcm90b2NvbDogVGV6b3NLdFByb3RvY29sID0gY3JlYXRlVGV6b3NLdFByb3RvY29sKC4uLmFyZ3MpXG4gIGNvbnN0IG1vZHVsZTogVGV6b3NNb2R1bGUgPSBuZXcgVGV6b3NNb2R1bGUoKVxuXG4gIHJldHVybiBjcmVhdGVWMFN1YlByb3RvY29sKHByb3RvY29sLCBtb2R1bGUpXG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwVGV6b3NGQVByb3RvY29sPFQgZXh0ZW5kcyBUZXpvc0ZBUHJvdG9jb2w+KFxuICBmYVByb3RvY29sOiBULFxuICB0ZXpvc05ldHdvcms/OiBSZWN1cnNpdmVQYXJ0aWFsPFRlem9zUHJvdG9jb2xOZXR3b3JrPixcbiAgdHlwZTogUHJvdG9jb2xDb25maWd1cmF0aW9uWyd0eXBlJ10gPSAnZnVsbCdcbik6IFByb21pc2U8SUNvaW5TdWJQcm90b2NvbEFkYXB0ZXI8VD4+IHtcbiAgY29uc3QgdGV6b3NQcm90b2NvbDogVGV6b3NQcm90b2NvbCA9IGNyZWF0ZVRlem9zUHJvdG9jb2woeyBuZXR3b3JrOiB0ZXpvc05ldHdvcmsgfSlcbiAgY29uc3QgbW9kdWxlOiBUZXpvc01vZHVsZSA9IG5ldyBUZXpvc01vZHVsZSgpXG5cbiAgY29uc3QgW21ldGFkYXRhLCBuZXR3b3JrXTogW1Byb3RvY29sTWV0YWRhdGEsIFByb3RvY29sTmV0d29ya1YxIHwgdW5kZWZpbmVkXSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICB0ZXpvc1Byb3RvY29sLmdldE1ldGFkYXRhKCksXG4gICAgaXNPbmxpbmVQcm90b2NvbChmYVByb3RvY29sKSA/IGZhUHJvdG9jb2wuZ2V0TmV0d29yaygpIDogUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZClcbiAgXSlcblxuICBjb25zdCBbYmxvY2tFeHBsb3JlciwgdjNTZXJpYWxpemVyQ29tcGFuaW9uXSA9IGF3YWl0IGNyZWF0ZUFkYXB0ZXJTdXBwbGVtZW50c0Zyb21JZGVudGlmaWVyQW5kTmV0d29yayhcbiAgICBtb2R1bGUsXG4gICAgbWV0YWRhdGEuaWRlbnRpZmllcixcbiAgICBuZXR3b3JrXG4gIClcblxuICByZXR1cm4gY3JlYXRlSUNvaW5TdWJQcm90b2NvbEFkYXB0ZXIoZmFQcm90b2NvbCwgYmxvY2tFeHBsb3JlciwgdjNTZXJpYWxpemVyQ29tcGFuaW9uLCB7IHR5cGUgfSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwVGV6b3NGQTFwMlByb3RvY29sKFxuICAuLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVUZXpvc0ZBMXAyUHJvdG9jb2w+XG4pOiBQcm9taXNlPElDb2luU3ViUHJvdG9jb2xBZGFwdGVyPFRlem9zRkExcDJQcm90b2NvbD4+IHtcbiAgY29uc3QgZmExcDJQcm90b2NvbDogVGV6b3NGQTFwMlByb3RvY29sID0gY3JlYXRlVGV6b3NGQTFwMlByb3RvY29sKC4uLmFyZ3MpXG5cbiAgcmV0dXJuIGNyZWF0ZVYwVGV6b3NGQVByb3RvY29sKGZhMXAyUHJvdG9jb2wsIGFyZ3NbMF0ubmV0d29yaylcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwVGV6b3NGQTJQcm90b2NvbChcbiAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlVGV6b3NGQTJQcm90b2NvbD5cbik6IFByb21pc2U8SUNvaW5TdWJQcm90b2NvbEFkYXB0ZXI8VGV6b3NGQTJQcm90b2NvbD4+IHtcbiAgY29uc3QgZmEyUHJvdG9jb2w6IFRlem9zRkEyUHJvdG9jb2wgPSBjcmVhdGVUZXpvc0ZBMlByb3RvY29sKC4uLmFyZ3MpXG5cbiAgcmV0dXJuIGNyZWF0ZVYwVGV6b3NGQVByb3RvY29sKGZhMlByb3RvY29sLCBhcmdzWzBdLm5ldHdvcmspXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVWMFRlem9zQlRDVGV6UHJvdG9jb2woXG4gIC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZUJUQ1RlelByb3RvY29sPlxuKTogUHJvbWlzZTxJQ29pblN1YlByb3RvY29sQWRhcHRlcjxCVENUZXpQcm90b2NvbD4+IHtcbiAgY29uc3QgcHJvdG9jb2w6IEJUQ1RlelByb3RvY29sID0gY3JlYXRlQlRDVGV6UHJvdG9jb2woLi4uYXJncylcbiAgY29uc3QgbW9kdWxlOiBUZXpvc01vZHVsZSA9IG5ldyBUZXpvc01vZHVsZSgpXG5cbiAgcmV0dXJuIGNyZWF0ZVYwU3ViUHJvdG9jb2wocHJvdG9jb2wsIG1vZHVsZSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwVGV6b3NDVGV6UHJvdG9jb2woXG4gIC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZUNUZXpQcm90b2NvbD5cbik6IFByb21pc2U8SUNvaW5TdWJQcm90b2NvbEFkYXB0ZXI8Q1RlelByb3RvY29sPj4ge1xuICBjb25zdCBwcm90b2NvbDogQ1RlelByb3RvY29sID0gY3JlYXRlQ1RlelByb3RvY29sKC4uLmFyZ3MpXG4gIGNvbnN0IG1vZHVsZTogVGV6b3NNb2R1bGUgPSBuZXcgVGV6b3NNb2R1bGUoKVxuXG4gIHJldHVybiBjcmVhdGVWMFN1YlByb3RvY29sKHByb3RvY29sLCBtb2R1bGUpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVWMFRlem9zRG9nYW1pUHJvdG9jb2woXG4gIC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZURvZ2FtaVByb3RvY29sPlxuKTogUHJvbWlzZTxJQ29pblN1YlByb3RvY29sQWRhcHRlcjxEb2dhbWlQcm90b2NvbD4+IHtcbiAgY29uc3QgcHJvdG9jb2w6IERvZ2FtaVByb3RvY29sID0gY3JlYXRlRG9nYW1pUHJvdG9jb2woLi4uYXJncylcbiAgY29uc3QgbW9kdWxlOiBUZXpvc01vZHVsZSA9IG5ldyBUZXpvc01vZHVsZSgpXG5cbiAgcmV0dXJuIGNyZWF0ZVYwU3ViUHJvdG9jb2wocHJvdG9jb2wsIG1vZHVsZSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwVGV6b3NFVEhUZXpQcm90b2NvbChcbiAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlRVRIVGV6UHJvdG9jb2w+XG4pOiBQcm9taXNlPElDb2luU3ViUHJvdG9jb2xBZGFwdGVyPEVUSFRlelByb3RvY29sPj4ge1xuICBjb25zdCBwcm90b2NvbDogRVRIVGV6UHJvdG9jb2wgPSBjcmVhdGVFVEhUZXpQcm90b2NvbCguLi5hcmdzKVxuICBjb25zdCBtb2R1bGU6IFRlem9zTW9kdWxlID0gbmV3IFRlem9zTW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBTdWJQcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBUZXpvc0tvbGlicmlVU0RQcm90b2NvbChcbiAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlS29saWJyaVVTRFByb3RvY29sPlxuKTogUHJvbWlzZTxJQ29pblN1YlByb3RvY29sQWRhcHRlcjxLb2xpYnJpVVNEUHJvdG9jb2w+PiB7XG4gIGNvbnN0IHByb3RvY29sOiBLb2xpYnJpVVNEUHJvdG9jb2wgPSBjcmVhdGVLb2xpYnJpVVNEUHJvdG9jb2woLi4uYXJncylcbiAgY29uc3QgbW9kdWxlOiBUZXpvc01vZHVsZSA9IG5ldyBUZXpvc01vZHVsZSgpXG5cbiAgcmV0dXJuIGNyZWF0ZVYwU3ViUHJvdG9jb2wocHJvdG9jb2wsIG1vZHVsZSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwVGV6b3NQbGVudHlQcm90b2NvbChcbiAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlUGxlbnR5UHJvdG9jb2w+XG4pOiBQcm9taXNlPElDb2luU3ViUHJvdG9jb2xBZGFwdGVyPFBsZW50eVByb3RvY29sPj4ge1xuICBjb25zdCBwcm90b2NvbDogUGxlbnR5UHJvdG9jb2wgPSBjcmVhdGVQbGVudHlQcm90b2NvbCguLi5hcmdzKVxuICBjb25zdCBtb2R1bGU6IFRlem9zTW9kdWxlID0gbmV3IFRlem9zTW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBTdWJQcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBUZXpvc1F1aXB1c3dhcFByb3RvY29sKFxuICAuLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVRdWlwdXN3YXBQcm90b2NvbD5cbik6IFByb21pc2U8SUNvaW5TdWJQcm90b2NvbEFkYXB0ZXI8UXVpcHVzd2FwUHJvdG9jb2w+PiB7XG4gIGNvbnN0IHByb3RvY29sOiBRdWlwdXN3YXBQcm90b2NvbCA9IGNyZWF0ZVF1aXB1c3dhcFByb3RvY29sKC4uLmFyZ3MpXG4gIGNvbnN0IG1vZHVsZTogVGV6b3NNb2R1bGUgPSBuZXcgVGV6b3NNb2R1bGUoKVxuXG4gIHJldHVybiBjcmVhdGVWMFN1YlByb3RvY29sKHByb3RvY29sLCBtb2R1bGUpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVWMFRlem9zU2lyaXVzUHJvdG9jb2woXG4gIC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZVNpcml1c1Byb3RvY29sPlxuKTogUHJvbWlzZTxJQ29pblN1YlByb3RvY29sQWRhcHRlcjxTaXJpdXNQcm90b2NvbD4+IHtcbiAgY29uc3QgcHJvdG9jb2w6IFNpcml1c1Byb3RvY29sID0gY3JlYXRlU2lyaXVzUHJvdG9jb2woLi4uYXJncylcbiAgY29uc3QgbW9kdWxlOiBUZXpvc01vZHVsZSA9IG5ldyBUZXpvc01vZHVsZSgpXG5cbiAgcmV0dXJuIGNyZWF0ZVYwU3ViUHJvdG9jb2wocHJvdG9jb2wsIG1vZHVsZSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwVGV6b3NTdGFrZXJQcm90b2NvbChcbiAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlU3Rha2VyUHJvdG9jb2w+XG4pOiBQcm9taXNlPElDb2luU3ViUHJvdG9jb2xBZGFwdGVyPFN0YWtlclByb3RvY29sPj4ge1xuICBjb25zdCBwcm90b2NvbDogU3Rha2VyUHJvdG9jb2wgPSBjcmVhdGVTdGFrZXJQcm90b2NvbCguLi5hcmdzKVxuICBjb25zdCBtb2R1bGU6IFRlem9zTW9kdWxlID0gbmV3IFRlem9zTW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBTdWJQcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBUZXpvc1RldGhlclVTRFByb3RvY29sKFxuICAuLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVUZXRoZXJVU0RQcm90b2NvbD5cbik6IFByb21pc2U8SUNvaW5TdWJQcm90b2NvbEFkYXB0ZXI8VGV0aGVyVVNEUHJvdG9jb2w+PiB7XG4gIGNvbnN0IHByb3RvY29sOiBUZXRoZXJVU0RQcm90b2NvbCA9IGNyZWF0ZVRldGhlclVTRFByb3RvY29sKC4uLmFyZ3MpXG4gIGNvbnN0IG1vZHVsZTogVGV6b3NNb2R1bGUgPSBuZXcgVGV6b3NNb2R1bGUoKVxuXG4gIHJldHVybiBjcmVhdGVWMFN1YlByb3RvY29sKHByb3RvY29sLCBtb2R1bGUpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVWMFRlem9zVHpCVENQcm90b2NvbChcbiAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlVHpCVENQcm90b2NvbD5cbik6IFByb21pc2U8SUNvaW5TdWJQcm90b2NvbEFkYXB0ZXI8VHpCVENQcm90b2NvbD4+IHtcbiAgY29uc3QgcHJvdG9jb2w6IFR6QlRDUHJvdG9jb2wgPSBjcmVhdGVUekJUQ1Byb3RvY29sKC4uLmFyZ3MpXG4gIGNvbnN0IG1vZHVsZTogVGV6b3NNb2R1bGUgPSBuZXcgVGV6b3NNb2R1bGUoKVxuXG4gIHJldHVybiBjcmVhdGVWMFN1YlByb3RvY29sKHByb3RvY29sLCBtb2R1bGUpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVWMFRlem9zVUJUQ1Byb3RvY29sKFxuICAuLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVVQlRDUHJvdG9jb2w+XG4pOiBQcm9taXNlPElDb2luU3ViUHJvdG9jb2xBZGFwdGVyPFVCVENQcm90b2NvbD4+IHtcbiAgY29uc3QgcHJvdG9jb2w6IFVCVENQcm90b2NvbCA9IGNyZWF0ZVVCVENQcm90b2NvbCguLi5hcmdzKVxuICBjb25zdCBtb2R1bGU6IFRlem9zTW9kdWxlID0gbmV3IFRlem9zTW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBTdWJQcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBUZXpvc1VERUZJUHJvdG9jb2woXG4gIC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZVVERUZJUHJvdG9jb2w+XG4pOiBQcm9taXNlPElDb2luU3ViUHJvdG9jb2xBZGFwdGVyPFVERUZJUHJvdG9jb2w+PiB7XG4gIGNvbnN0IHByb3RvY29sOiBVREVGSVByb3RvY29sID0gY3JlYXRlVURFRklQcm90b2NvbCguLi5hcmdzKVxuICBjb25zdCBtb2R1bGU6IFRlem9zTW9kdWxlID0gbmV3IFRlem9zTW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBTdWJQcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBUZXpvc1VTRFRlelByb3RvY29sKFxuICAuLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVVU0RUZXpQcm90b2NvbD5cbik6IFByb21pc2U8SUNvaW5TdWJQcm90b2NvbEFkYXB0ZXI8VVNEVGV6UHJvdG9jb2w+PiB7XG4gIGNvbnN0IHByb3RvY29sOiBVU0RUZXpQcm90b2NvbCA9IGNyZWF0ZVVTRFRlelByb3RvY29sKC4uLmFyZ3MpXG4gIGNvbnN0IG1vZHVsZTogVGV6b3NNb2R1bGUgPSBuZXcgVGV6b3NNb2R1bGUoKVxuXG4gIHJldHVybiBjcmVhdGVWMFN1YlByb3RvY29sKHByb3RvY29sLCBtb2R1bGUpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVWMFRlem9zVVVTRFByb3RvY29sKFxuICAuLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVVVVNEUHJvdG9jb2w+XG4pOiBQcm9taXNlPElDb2luU3ViUHJvdG9jb2xBZGFwdGVyPFVVU0RQcm90b2NvbD4+IHtcbiAgY29uc3QgcHJvdG9jb2w6IFVVU0RQcm90b2NvbCA9IGNyZWF0ZVVVU0RQcm90b2NvbCguLi5hcmdzKVxuICBjb25zdCBtb2R1bGU6IFRlem9zTW9kdWxlID0gbmV3IFRlem9zTW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBTdWJQcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBUZXpvc1dyYXBwZWRQcm90b2NvbChcbiAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlV3JhcHBlZFRlem9zUHJvdG9jb2w+XG4pOiBQcm9taXNlPElDb2luU3ViUHJvdG9jb2xBZGFwdGVyPFdyYXBwZWRUZXpvc1Byb3RvY29sPj4ge1xuICBjb25zdCBwcm90b2NvbDogV3JhcHBlZFRlem9zUHJvdG9jb2wgPSBjcmVhdGVXcmFwcGVkVGV6b3NQcm90b2NvbCguLi5hcmdzKVxuICBjb25zdCBtb2R1bGU6IFRlem9zTW9kdWxlID0gbmV3IFRlem9zTW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBTdWJQcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBUZXpvc1dyYXBQcm90b2NvbChcbiAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlV3JhcFByb3RvY29sPlxuKTogUHJvbWlzZTxJQ29pblN1YlByb3RvY29sQWRhcHRlcjxXcmFwUHJvdG9jb2w+PiB7XG4gIGNvbnN0IHByb3RvY29sOiBXcmFwUHJvdG9jb2wgPSBjcmVhdGVXcmFwUHJvdG9jb2woLi4uYXJncylcbiAgY29uc3QgbW9kdWxlOiBUZXpvc01vZHVsZSA9IG5ldyBUZXpvc01vZHVsZSgpXG5cbiAgcmV0dXJuIGNyZWF0ZVYwU3ViUHJvdG9jb2wocHJvdG9jb2wsIG1vZHVsZSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwVGV6b3NZb3VQcm90b2NvbChcbiAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlWW91UHJvdG9jb2w+XG4pOiBQcm9taXNlPElDb2luU3ViUHJvdG9jb2xBZGFwdGVyPFlvdVByb3RvY29sPj4ge1xuICBjb25zdCBwcm90b2NvbDogWW91UHJvdG9jb2wgPSBjcmVhdGVZb3VQcm90b2NvbCguLi5hcmdzKVxuICBjb25zdCBtb2R1bGU6IFRlem9zTW9kdWxlID0gbmV3IFRlem9zTW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBTdWJQcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxufVxuXG4vLyBUcmFuc2FjdGlvblxuXG5leHBvcnQgZnVuY3Rpb24gY29udmVydFRyYW5zYWN0aW9uU3RhdHVzVjFUb1YwKHN0YXR1czogQWlyR2FwVHJhbnNhY3Rpb25TdGF0dXNWMSk6IEFpckdhcFRyYW5zYWN0aW9uU3RhdHVzVjAge1xuICByZXR1cm4gc3RhdHVzLnR5cGUgPT09ICdhcHBsaWVkJ1xuICAgID8gQWlyR2FwVHJhbnNhY3Rpb25TdGF0dXNWMC5BUFBMSUVEXG4gICAgOiBzdGF0dXMudHlwZSA9PT0gJ2ZhaWxlZCdcbiAgICA/IEFpckdhcFRyYW5zYWN0aW9uU3RhdHVzVjAuRkFJTEVEXG4gICAgOiB1bmRlZmluZWRcbn1cblxuZnVuY3Rpb24gY29udmVydFVJQWN0aW9uc1YxVG9WMChhY3Rpb25zOiBBaXJHYXBVSUFjdGlvblYxW10pOiBBaXJHYXBVSUFsZXJ0VjBbJ2FjdGlvbnMnXSB7XG4gIHJldHVybiBhY3Rpb25zLm1hcCgoYWN0aW9uOiBBaXJHYXBVSUFjdGlvblYxKSA9PiAoe1xuICAgIHRleHQ6IGFjdGlvbi50ZXh0LnZhbHVlLFxuICAgIGxpbms6ICcnXG4gIH0pKVxufVxuXG5mdW5jdGlvbiBjb252ZXJ0VUlBbGVydHNWMVRvVjAoYWxlcnRzOiBBaXJHYXBVSUFsZXJ0VjFbXSk6IEFpckdhcFVJQWxlcnRWMFtdIHtcbiAgcmV0dXJuIGFsZXJ0cy5tYXAoKGFsZXJ0OiBBaXJHYXBVSUFsZXJ0VjEpID0+ICh7XG4gICAgdHlwZTpcbiAgICAgIGFsZXJ0LnR5cGUgPT09ICdzdWNjZXNzJ1xuICAgICAgICA/IEFpckdhcFRyYW5zYWN0aW9uV2FybmluZ1R5cGUuU1VDQ0VTU1xuICAgICAgICA6IGFsZXJ0LnR5cGUgPT09ICdpbmZvJ1xuICAgICAgICA/IEFpckdhcFRyYW5zYWN0aW9uV2FybmluZ1R5cGUuTk9URVxuICAgICAgICA6IGFsZXJ0LnR5cGUgPT09ICd3YXJuaW5nJ1xuICAgICAgICA/IEFpckdhcFRyYW5zYWN0aW9uV2FybmluZ1R5cGUuV0FSTklOR1xuICAgICAgICA6IEFpckdhcFRyYW5zYWN0aW9uV2FybmluZ1R5cGUuRVJST1IsXG4gICAgdGl0bGU6IGFsZXJ0LnRpdGxlLnZhbHVlLFxuICAgIGRlc2NyaXB0aW9uOiBhbGVydC5kZXNjcmlwdGlvbi52YWx1ZSxcbiAgICBpY29uOiBhbGVydC5pY29uLFxuICAgIGFjdGlvbnM6IGFsZXJ0LmFjdGlvbnMgPyBjb252ZXJ0VUlBY3Rpb25zVjFUb1YwKGFsZXJ0LmFjdGlvbnMpIDogdW5kZWZpbmVkXG4gIH0pKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY29udmVydFRyYW5zYWN0aW9uRGV0YWlsc1YxVG9WMChcbiAgdHhzOiBBaXJHYXBUcmFuc2FjdGlvblYxW10sXG4gIHByb3RvY29sOiBBaXJHYXBPbmxpbmVQcm90b2NvbFxuKTogUHJvbWlzZTxBaXJHYXBUcmFuc2FjdGlvblYwW10+XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVkZWNsYXJlXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY29udmVydFRyYW5zYWN0aW9uRGV0YWlsc1YxVG9WMChcbiAgdHhzOiBBaXJHYXBUcmFuc2FjdGlvblYxW10sXG4gIG1ldGFkYXRhOiBQcm90b2NvbE1ldGFkYXRhLFxuICBuZXR3b3JrOiBQcm90b2NvbE5ldHdvcmtWMSB8IFByb3RvY29sTmV0d29ya1YwXG4pOiBQcm9taXNlPEFpckdhcFRyYW5zYWN0aW9uVjBbXT5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZWRlY2xhcmVcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb252ZXJ0VHJhbnNhY3Rpb25EZXRhaWxzVjFUb1YwKFxuICB0eHM6IEFpckdhcFRyYW5zYWN0aW9uVjFbXSxcbiAgcHJvdG9jb2xPck1ldGFkYXRhOiBBaXJHYXBPbmxpbmVQcm90b2NvbCB8IFByb3RvY29sTWV0YWRhdGEsXG4gIG5ldHdvcmtPclVuZGVmaW5lZD86IFByb3RvY29sTmV0d29ya1YxIHwgUHJvdG9jb2xOZXR3b3JrVjBcbik6IFByb21pc2U8QWlyR2FwVHJhbnNhY3Rpb25WMFtdPiB7XG4gIGNvbnN0IHByb3RvY29sTWV0YWRhdGE6IFByb3RvY29sTWV0YWRhdGEgPSBpc09ubGluZVByb3RvY29sKHByb3RvY29sT3JNZXRhZGF0YSlcbiAgICA/IGF3YWl0IHByb3RvY29sT3JNZXRhZGF0YS5nZXRNZXRhZGF0YSgpXG4gICAgOiBwcm90b2NvbE9yTWV0YWRhdGFcblxuICBjb25zdCBuZXR3b3JrVjA6IFByb3RvY29sTmV0d29ya1YwID0gaXNPbmxpbmVQcm90b2NvbChwcm90b2NvbE9yTWV0YWRhdGEpXG4gICAgPyBjb252ZXJ0TmV0d29ya1YxVG9WMChhd2FpdCBwcm90b2NvbE9yTWV0YWRhdGEuZ2V0TmV0d29yaygpKVxuICAgIDogbmV0d29ya09yVW5kZWZpbmVkIGluc3RhbmNlb2YgUHJvdG9jb2xOZXR3b3JrVjBcbiAgICA/IG5ldHdvcmtPclVuZGVmaW5lZFxuICAgIDogY29udmVydE5ldHdvcmtWMVRvVjAobmV0d29ya09yVW5kZWZpbmVkKVxuXG4gIGNvbnN0IHVuaXRzOiBQcm90b2NvbFVuaXRzTWV0YWRhdGEgPSBwcm90b2NvbE1ldGFkYXRhLnVuaXRzXG4gIGNvbnN0IGZlZVVuaXRzOiBQcm90b2NvbFVuaXRzTWV0YWRhdGEgPSBwcm90b2NvbE1ldGFkYXRhLmZlZT8udW5pdHMgPz8gdW5pdHNcblxuICByZXR1cm4gdHhzLm1hcCgodHg6IEFpckdhcFRyYW5zYWN0aW9uVjEpOiBBaXJHYXBUcmFuc2FjdGlvblYwID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgZnJvbTogdHguZnJvbSxcbiAgICAgIHRvOiB0eC50byxcbiAgICAgIGlzSW5ib3VuZDogdHguaXNJbmJvdW5kLFxuXG4gICAgICBhbW91bnQ6IG5ld0Ftb3VudCh0eC5hbW91bnQpLmJsb2NrY2hhaW4odW5pdHMpLnZhbHVlLFxuICAgICAgZmVlOiBuZXdBbW91bnQodHguZmVlKS5ibG9ja2NoYWluKGZlZVVuaXRzKS52YWx1ZSxcblxuICAgICAgdGltZXN0YW1wOiB0eC50aW1lc3RhbXAsXG4gICAgICBjaGFuZ2VBZGRyZXNzSW5mbzogdHguY2hhbmdlQWRkcmVzc0luZm8sXG4gICAgICBkaXNwbGF5RnJvbVRvOiB0eC5kaXNwbGF5RnJvbVRvLFxuXG4gICAgICBwcm90b2NvbElkZW50aWZpZXI6IHByb3RvY29sTWV0YWRhdGEuaWRlbnRpZmllciBhcyBQcm90b2NvbFN5bWJvbHMsXG4gICAgICBuZXR3b3JrOiBuZXR3b3JrVjAsXG5cbiAgICAgIGRhdGE6IHR5cGVvZiB0eC5hcmJpdHJhcnlEYXRhID09PSAnc3RyaW5nJyA/IHR4LmFyYml0cmFyeURhdGEgOiB0eC5hcmJpdHJhcnlEYXRhPy5bMV0sXG5cbiAgICAgIGhhc2g6IHR4LnN0YXR1cz8uaGFzaCxcbiAgICAgIGJsb2NrSGVpZ2h0OiB0eC5zdGF0dXM/LmJsb2NrLFxuICAgICAgc3RhdHVzOiB0eC5zdGF0dXMgPyBjb252ZXJ0VHJhbnNhY3Rpb25TdGF0dXNWMVRvVjAodHguc3RhdHVzKSA6IHVuZGVmaW5lZCxcblxuICAgICAgd2FybmluZ3M6IHR4LnVpQWxlcnRzID8gY29udmVydFVJQWxlcnRzVjFUb1YwKHR4LnVpQWxlcnRzKSA6IHVuZGVmaW5lZCxcblxuICAgICAgZXh0cmE6IHtcbiAgICAgICAgLi4udHguZXh0cmEsXG4gICAgICAgIHR5cGU6IHR4LnR5cGVcbiAgICAgIH0sXG4gICAgICB0cmFuc2FjdGlvbkRldGFpbHM6IHR4Lmpzb25cbiAgICB9XG4gIH0pXG59XG5cbi8vIEZlZURlZmF1bHRzXG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0RmVlRGVmYXVsdHNWMFRvVjE8X0ZlZVVuaXRzIGV4dGVuZHMgc3RyaW5nPihmZWVEZWZhdWx0czogRmVlRGVmYXVsdHNWMCwgZGVjaW1hbHM6IG51bWJlcik6IEZlZURlZmF1bHRzVjE8X0ZlZVVuaXRzPiB7XG4gIHJldHVybiB7XG4gICAgbG93OiBuZXdBbW91bnQobmV3IEJpZ051bWJlcihmZWVEZWZhdWx0cy5sb3cpLnNoaWZ0ZWRCeShkZWNpbWFscyksICdibG9ja2NoYWluJyksXG4gICAgbWVkaXVtOiBuZXdBbW91bnQobmV3IEJpZ051bWJlcihmZWVEZWZhdWx0cy5tZWRpdW0pLnNoaWZ0ZWRCeShkZWNpbWFscyksICdibG9ja2NoYWluJyksXG4gICAgaGlnaDogbmV3QW1vdW50KG5ldyBCaWdOdW1iZXIoZmVlRGVmYXVsdHMuaGlnaCkuc2hpZnRlZEJ5KGRlY2ltYWxzKSwgJ2Jsb2NrY2hhaW4nKVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0RmVlRGVmYXVsdHNWMVRvVjAoZmVlRGVmYXVsdHM6IEZlZURlZmF1bHRzVjEsIHByb3RvY29sTWV0YWRhdGE6IFByb3RvY29sTWV0YWRhdGEpOiBGZWVEZWZhdWx0c1YwIHtcbiAgY29uc3QgZmVlVW5pdHM6IFByb3RvY29sVW5pdHNNZXRhZGF0YSA9IHByb3RvY29sTWV0YWRhdGEuZmVlPy51bml0cyA/PyBwcm90b2NvbE1ldGFkYXRhLnVuaXRzXG4gIGNvbnN0IGZlZVVuaXQ6IHN0cmluZyA9IHByb3RvY29sTWV0YWRhdGEuZmVlPy5tYWluVW5pdCA/PyBwcm90b2NvbE1ldGFkYXRhLm1haW5Vbml0XG5cbiAgcmV0dXJuIHtcbiAgICBsb3c6IG5ldyBCaWdOdW1iZXIobmV3QW1vdW50KGZlZURlZmF1bHRzLmxvdykuY29udmVydChmZWVVbml0LCBmZWVVbml0cykudmFsdWUpLnRvRml4ZWQoKSxcbiAgICBtZWRpdW06IG5ldyBCaWdOdW1iZXIobmV3QW1vdW50KGZlZURlZmF1bHRzLm1lZGl1bSkuY29udmVydChmZWVVbml0LCBmZWVVbml0cykudmFsdWUpLnRvRml4ZWQoKSxcbiAgICBoaWdoOiBuZXcgQmlnTnVtYmVyKG5ld0Ftb3VudChmZWVEZWZhdWx0cy5oaWdoKS5jb252ZXJ0KGZlZVVuaXQsIGZlZVVuaXRzKS52YWx1ZSkudG9GaXhlZCgpXG4gIH1cbn1cblxuLy8gQnl0ZXNcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEJ5dGVzRm9ybWF0VjFGcm9tVjAoYnl0ZXM6IHN0cmluZyk6IEJ5dGVzU3RyaW5nRm9ybWF0IHtcbiAgcmV0dXJuIGlzSGV4KGJ5dGVzKSA/ICdoZXgnIDogJ2VuY29kZWQnXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWNyZXRLZXlUeXBlKHNlY3JldEtleTogc3RyaW5nKTogU2VjcmV0S2V5Wyd0eXBlJ10gfCBFeHRlbmRlZFNlY3JldEtleVsndHlwZSddIHtcbiAgcmV0dXJuIHNlY3JldEtleS5zdGFydHNXaXRoKCd4cHJ2JykgPyAneHByaXYnIDogJ3ByaXYnXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQdWJsaWNLZXlUeXBlKHB1YmxpY0tleTogc3RyaW5nKTogUHVibGljS2V5Wyd0eXBlJ10gfCBFeHRlbmRlZFB1YmxpY0tleVsndHlwZSddIHtcbiAgcmV0dXJuIHB1YmxpY0tleS5zdGFydHNXaXRoKCd4cHViJykgPyAneHB1YicgOiAncHViJ1xufVxuIl19
@@ -27,6 +27,7 @@ import { createPolkadotProtocol, PolkadotModule, createKusamaProtocol } from '@w
27
27
  import { createSolanaProtocol, SolanaModule } from '@wallfree-dev/solana';
28
28
  import { createTronProtocol, TronModule } from '@wallfree-dev/tron';
29
29
  import { createAptosProtocol, AptosModule } from '@wallfree-dev/aptos';
30
+ import { createSuiProtocol, SuiModule } from '@wallfree-dev/sui';
30
31
  import { isTezosSaplingProtocol, createTezosProtocol, TezosModule, createTezosShieldedTezProtocol, createTezosKtProtocol, createTezosFA1p2Protocol, createTezosFA2Protocol, createBTCTezProtocol, createCTezProtocol, createDogamiProtocol, createETHTezProtocol, createKolibriUSDProtocol, createPlentyProtocol, createQuipuswapProtocol, createSiriusProtocol, createStakerProtocol, createTetherUSDProtocol, createTzBTCProtocol, createUBTCProtocol, createUDEFIProtocol, createUSDTezProtocol, createUUSDProtocol, createWrappedTezosProtocol, createWrapProtocol, createYouProtocol } from '@wallfree-dev/tezos';
31
32
  import BigNumber$1 from '@wallfree-dev/coinlib-core/dependencies/src/bignumber.js-9.0.0/bignumber';
32
33
  import { AirGapTransactionStatus, AirGapTransactionWarningType } from '@wallfree-dev/coinlib-core/interfaces/IAirGapTransaction';
@@ -1345,6 +1346,11 @@ async function createV0AptosProtocol(...args) {
1345
1346
  const module = new AptosModule();
1346
1347
  return createV0Protocol(protocol, module);
1347
1348
  }
1349
+ async function createV0SuiProtocol(...args) {
1350
+ const protocol = createSuiProtocol(...args);
1351
+ const module = new SuiModule();
1352
+ return createV0Protocol(protocol, module);
1353
+ }
1348
1354
  async function createV0TezosProtocol(...args) {
1349
1355
  const protocol = createTezosProtocol(...args);
1350
1356
  const module = new TezosModule();
@@ -6941,5 +6947,5 @@ var isolatedModules_plugin = /*#__PURE__*/Object.freeze({
6941
6947
  * Generated bundle index. Do not edit.
6942
6948
  */
6943
6949
 
6944
- export { APP_CONFIG, APP_INFO_PLUGIN, APP_LAUNCHER_PLUGIN, APP_PLUGIN, AccountItemComponent, AccountSelectionComponent, AddressService, AirGapAngularCoreModule, AirGapTranslateLoader, AmountConverterPipe, AppInfo, BaseComponent, BaseEnvironmentService, BaseFacade, BaseIACService, BaseModulesService, BaseStorage, CLIPBOARD_PLUGIN, CURRENCY_SYMBOL_FACADE, CURRENCY_SYMBOL_FACADE_FACTORY, ClipboardService, ComponentsModule, CurrencySymbolComponent, DEFAULT_CURRENCY_SYMBOL_URL, DeeplinkService, ExposedPromise, ExposedPromiseRegistry, ExposedPromiseStatus, FILESYSTEM_PLUGIN, FeeConverterPipe, FilesystemService, FromToComponent, IACHandlerStatus, IACMessageHandler, IACMessageTransport, IACQrComponent, IACSinglePartHandler, ICoinDelegateProtocolAdapter, ICoinDelegateSubProtocolAdapter, ICoinProtocolAdapter, ICoinSubProtocolAdapter, ISOLATED_MODULES_DETAILS_FACADE, ISOLATED_MODULES_DETAILS_FACADE_FACTORY, ISOLATED_MODULES_LIST_FACADE, ISOLATED_MODULES_LIST_FACADE_FACTORY, ISOLATED_MODULES_LIST_PAGE_FACADE, ISOLATED_MODULES_LIST_PAGE_FACADE_FACTORY, ISOLATED_MODULES_PLUGIN, IdenticonComponent, IntegralModulesController, InternalStorageKey, InternalStorageService, IsolatedAirGapBlockExplorer, IsolatedAirGapOfflineProtocol, IsolatedAirGapOnlineProtocol, IsolatedAirGapV3SerializerCompanion, IsolatedModulesBadgesComponent, IsolatedModulesController, IsolatedModulesDetailsComponent, IsolatedModulesListComponent, IsolatedModulesOnboardingComponent, KeyPairService, LanguageService, MainProtocolStoreService, ModulesController, NetworkBadgeComponent, PermissionStatus, PermissionTypes, PermissionsService, PipesModule, ProtocolBlockExplorerAdapter, ProtocolNetworkAdapter, ProtocolOptionsAdapter, ProtocolService, QRType, QrComponent, QrScannerService, QrSettingsComponent, RuntimeMode, SPLASH_SCREEN_PLUGIN, STATUS_BAR_PLUGIN, SerializerService, SubProtocolStoreService, TEMP_BTC_REQUEST_IDS, TEMP_MM_REQUEST_IDS, TitledAddressComponent, TitledTextComponent, TransactionService, TransactionValidatorAdapter, UIActionStatus, UIResourceStatus, UiEventElementsService, UiEventService, UriService, WalletFilterPipe, IsolatedModules as WebIsolatedModules, ZIP_PLUGIN, Zip, assertNever, convertFeeDefaultsV0ToV1, convertFeeDefaultsV1ToV0, convertNetworkTypeV0ToV1, convertNetworkTypeV1ToV0, convertNetworkV0ToV1, convertNetworkV1ToV0, convertTransactionDetailsV1ToV0, convertTransactionStatusV1ToV0, convertV2ToV3, convertV3ToV2, createICoinProtocolAdapter, createICoinSubProtocolAdapter, createNotInitialized, createV0AeternityProtocol, createV0AptosProtocol, createV0AstarProtocol, createV0BitcoinProtocol, createV0BitcoinSegwitProtocol, createV0CoreumProtocol, createV0CosmosProtocol, createV0ERC20Token, createV0EthereumERC20Token, createV0EthereumProtocol, createV0GroestlcoinProtocol, createV0ICPProtocol, createV0KusamaProtocol, createV0MoonbaseProtocol, createV0MoonbeamProtocol, createV0MoonriverProtocol, createV0OptimismERC20Token, createV0OptimismProtocol, createV0PolkadotProtocol, createV0Protocol, createV0ShidenProtocol, createV0SolanaProtocol, createV0SubProtocol, createV0TezosBTCTezProtocol, createV0TezosCTezProtocol, createV0TezosDogamiProtocol, createV0TezosETHTezProtocol, createV0TezosFA1p2Protocol, createV0TezosFA2Protocol, createV0TezosKolibriUSDProtocol, createV0TezosKtProtocol, createV0TezosPlentyProtocol, createV0TezosProtocol, createV0TezosQuipuswapProtocol, createV0TezosShieldedTezProtocol, createV0TezosSiriusProtocol, createV0TezosStakerProtocol, createV0TezosTetherUSDProtocol, createV0TezosTzBTCProtocol, createV0TezosUBTCProtocol, createV0TezosUDEFIProtocol, createV0TezosUSDTezProtocol, createV0TezosUUSDProtocol, createV0TezosWrapProtocol, createV0TezosWrappedProtocol, createV0TezosYouProtocol, createV0TronProtocol, currencySymbolFacade, defaultValues, deriveAddressesAsync, duplicatesRemoved, flattenAirGapTxAddresses, flattened, generateGUID, getBytesFormatV1FromV0, getMainIdentifier, getOfflineProtocolConfiguration, getOnlineProtocolConfiguration, getProtocolAndNetworkIdentifier, getPublicKeyType, getSecretKeyType, isIsolatedModuleMetadata, isolatedModules, isolatedModulesDetailsFacade, isolatedModulesListFacade, isolatedModulesListPageFacade, merged, parseIACUrl, partition, serializedDataToUrlString, splitProtocolNetworkIdentifier, sumAirGapTxValues, supportsV0Delegation, supportsV1Delegation, to, toBoolean };
6950
+ export { APP_CONFIG, APP_INFO_PLUGIN, APP_LAUNCHER_PLUGIN, APP_PLUGIN, AccountItemComponent, AccountSelectionComponent, AddressService, AirGapAngularCoreModule, AirGapTranslateLoader, AmountConverterPipe, AppInfo, BaseComponent, BaseEnvironmentService, BaseFacade, BaseIACService, BaseModulesService, BaseStorage, CLIPBOARD_PLUGIN, CURRENCY_SYMBOL_FACADE, CURRENCY_SYMBOL_FACADE_FACTORY, ClipboardService, ComponentsModule, CurrencySymbolComponent, DEFAULT_CURRENCY_SYMBOL_URL, DeeplinkService, ExposedPromise, ExposedPromiseRegistry, ExposedPromiseStatus, FILESYSTEM_PLUGIN, FeeConverterPipe, FilesystemService, FromToComponent, IACHandlerStatus, IACMessageHandler, IACMessageTransport, IACQrComponent, IACSinglePartHandler, ICoinDelegateProtocolAdapter, ICoinDelegateSubProtocolAdapter, ICoinProtocolAdapter, ICoinSubProtocolAdapter, ISOLATED_MODULES_DETAILS_FACADE, ISOLATED_MODULES_DETAILS_FACADE_FACTORY, ISOLATED_MODULES_LIST_FACADE, ISOLATED_MODULES_LIST_FACADE_FACTORY, ISOLATED_MODULES_LIST_PAGE_FACADE, ISOLATED_MODULES_LIST_PAGE_FACADE_FACTORY, ISOLATED_MODULES_PLUGIN, IdenticonComponent, IntegralModulesController, InternalStorageKey, InternalStorageService, IsolatedAirGapBlockExplorer, IsolatedAirGapOfflineProtocol, IsolatedAirGapOnlineProtocol, IsolatedAirGapV3SerializerCompanion, IsolatedModulesBadgesComponent, IsolatedModulesController, IsolatedModulesDetailsComponent, IsolatedModulesListComponent, IsolatedModulesOnboardingComponent, KeyPairService, LanguageService, MainProtocolStoreService, ModulesController, NetworkBadgeComponent, PermissionStatus, PermissionTypes, PermissionsService, PipesModule, ProtocolBlockExplorerAdapter, ProtocolNetworkAdapter, ProtocolOptionsAdapter, ProtocolService, QRType, QrComponent, QrScannerService, QrSettingsComponent, RuntimeMode, SPLASH_SCREEN_PLUGIN, STATUS_BAR_PLUGIN, SerializerService, SubProtocolStoreService, TEMP_BTC_REQUEST_IDS, TEMP_MM_REQUEST_IDS, TitledAddressComponent, TitledTextComponent, TransactionService, TransactionValidatorAdapter, UIActionStatus, UIResourceStatus, UiEventElementsService, UiEventService, UriService, WalletFilterPipe, IsolatedModules as WebIsolatedModules, ZIP_PLUGIN, Zip, assertNever, convertFeeDefaultsV0ToV1, convertFeeDefaultsV1ToV0, convertNetworkTypeV0ToV1, convertNetworkTypeV1ToV0, convertNetworkV0ToV1, convertNetworkV1ToV0, convertTransactionDetailsV1ToV0, convertTransactionStatusV1ToV0, convertV2ToV3, convertV3ToV2, createICoinProtocolAdapter, createICoinSubProtocolAdapter, createNotInitialized, createV0AeternityProtocol, createV0AptosProtocol, createV0AstarProtocol, createV0BitcoinProtocol, createV0BitcoinSegwitProtocol, createV0CoreumProtocol, createV0CosmosProtocol, createV0ERC20Token, createV0EthereumERC20Token, createV0EthereumProtocol, createV0GroestlcoinProtocol, createV0ICPProtocol, createV0KusamaProtocol, createV0MoonbaseProtocol, createV0MoonbeamProtocol, createV0MoonriverProtocol, createV0OptimismERC20Token, createV0OptimismProtocol, createV0PolkadotProtocol, createV0Protocol, createV0ShidenProtocol, createV0SolanaProtocol, createV0SubProtocol, createV0SuiProtocol, createV0TezosBTCTezProtocol, createV0TezosCTezProtocol, createV0TezosDogamiProtocol, createV0TezosETHTezProtocol, createV0TezosFA1p2Protocol, createV0TezosFA2Protocol, createV0TezosKolibriUSDProtocol, createV0TezosKtProtocol, createV0TezosPlentyProtocol, createV0TezosProtocol, createV0TezosQuipuswapProtocol, createV0TezosShieldedTezProtocol, createV0TezosSiriusProtocol, createV0TezosStakerProtocol, createV0TezosTetherUSDProtocol, createV0TezosTzBTCProtocol, createV0TezosUBTCProtocol, createV0TezosUDEFIProtocol, createV0TezosUSDTezProtocol, createV0TezosUUSDProtocol, createV0TezosWrapProtocol, createV0TezosWrappedProtocol, createV0TezosYouProtocol, createV0TronProtocol, currencySymbolFacade, defaultValues, deriveAddressesAsync, duplicatesRemoved, flattenAirGapTxAddresses, flattened, generateGUID, getBytesFormatV1FromV0, getMainIdentifier, getOfflineProtocolConfiguration, getOnlineProtocolConfiguration, getProtocolAndNetworkIdentifier, getPublicKeyType, getSecretKeyType, isIsolatedModuleMetadata, isolatedModules, isolatedModulesDetailsFacade, isolatedModulesListFacade, isolatedModulesListPageFacade, merged, parseIACUrl, partition, serializedDataToUrlString, splitProtocolNetworkIdentifier, sumAirGapTxValues, supportsV0Delegation, supportsV1Delegation, to, toBoolean };
6945
6951
  //# sourceMappingURL=wallfree-dev-angular-core.mjs.map