@wallfree-dev/angular-core 0.0.59-beta.1 → 0.0.59-beta.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/protocol/adapter/protocol-v0-adapter.mjs +3 -3
- package/esm2022/lib/services/protocol/defaults.mjs +4 -3
- package/esm2022/lib/utils/protocol/protocol-v0-adapter.mjs +19 -1
- package/fesm2022/wallfree-dev-angular-core.mjs +23 -5
- package/fesm2022/wallfree-dev-angular-core.mjs.map +1 -1
- package/lib/services/protocol/defaults.d.ts.map +1 -1
- package/lib/utils/protocol/protocol-v0-adapter.d.ts +6 -0
- package/lib/utils/protocol/protocol-v0-adapter.d.ts.map +1 -1
- package/package.json +34 -30
- package/src/assets/symbols/apt.svg +1 -0
- package/src/assets/symbols/aptos.svg +1 -0
- package/src/assets/symbols/arbitrum.svg +1 -0
- package/src/assets/symbols/avalanche.svg +1 -0
- package/src/assets/symbols/avax.svg +1 -0
- package/src/assets/symbols/bsc.svg +1 -0
- package/src/assets/symbols/cfx.svg +1 -1
- package/src/assets/symbols/conflux.svg +1 -0
- package/src/assets/symbols/plasma.svg +1 -0
- package/src/assets/symbols/polygon.svg +1 -0
- package/src/assets/symbols/sol.svg +1 -1
- package/src/assets/symbols/solana.svg +1 -0
- package/src/assets/symbols/sui.svg +1 -0
- package/src/assets/symbols/ton.svg +13 -0
- package/src/assets/symbols/xlayer.svg +1 -0
- package/src/assets/symbols/xpl.svg +1 -1
- package/src/assets/workers/airgap-coin-lib.js +5 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { erc20Tokens } from '@wallfree-dev/ethereum';
|
|
2
|
-
import { createV0AeternityProtocol, createV0AstarProtocol, createV0BitcoinProtocol, createV0BitcoinSegwitProtocol, createV0CosmosProtocol, createV0EthereumERC20Token, createV0EthereumProtocol, createV0GroestlcoinProtocol, createV0KusamaProtocol, createV0MoonbeamProtocol, createV0MoonriverProtocol, createV0PolkadotProtocol, createV0ShidenProtocol, createV0SolanaProtocol, createV0TezosBTCTezProtocol, createV0TezosCTezProtocol, createV0TezosDogamiProtocol, createV0TezosETHTezProtocol, createV0TezosKolibriUSDProtocol, createV0TezosKtProtocol, createV0TezosPlentyProtocol, createV0TezosProtocol, createV0TezosQuipuswapProtocol, createV0TezosSiriusProtocol, createV0TezosTetherUSDProtocol, createV0TezosTzBTCProtocol, createV0TezosUBTCProtocol, createV0TezosUDEFIProtocol, createV0TezosUSDTezProtocol, createV0TezosUUSDProtocol, createV0TezosWrapProtocol, createV0TezosYouProtocol } from '../../utils/protocol/protocol-v0-adapter';
|
|
2
|
+
import { createV0AeternityProtocol, createV0AptosProtocol, createV0AstarProtocol, createV0BitcoinProtocol, createV0BitcoinSegwitProtocol, createV0CosmosProtocol, createV0EthereumERC20Token, createV0EthereumProtocol, createV0GroestlcoinProtocol, createV0KusamaProtocol, createV0MoonbeamProtocol, createV0MoonriverProtocol, createV0PolkadotProtocol, createV0ShidenProtocol, createV0SolanaProtocol, createV0TezosBTCTezProtocol, createV0TezosCTezProtocol, createV0TezosDogamiProtocol, createV0TezosETHTezProtocol, createV0TezosKolibriUSDProtocol, createV0TezosKtProtocol, createV0TezosPlentyProtocol, createV0TezosProtocol, createV0TezosQuipuswapProtocol, createV0TezosSiriusProtocol, createV0TezosTetherUSDProtocol, createV0TezosTzBTCProtocol, createV0TezosUBTCProtocol, createV0TezosUDEFIProtocol, createV0TezosUSDTezProtocol, createV0TezosUUSDProtocol, createV0TezosWrapProtocol, createV0TezosYouProtocol } from '../../utils/protocol/protocol-v0-adapter';
|
|
3
3
|
export async function getDefaultPassiveProtocols() {
|
|
4
4
|
return [];
|
|
5
5
|
}
|
|
@@ -18,7 +18,8 @@ export async function getDefaultActiveProtocols() {
|
|
|
18
18
|
createV0BitcoinProtocol(),
|
|
19
19
|
createV0AstarProtocol(),
|
|
20
20
|
createV0ShidenProtocol(),
|
|
21
|
-
createV0SolanaProtocol()
|
|
21
|
+
createV0SolanaProtocol(),
|
|
22
|
+
createV0AptosProtocol()
|
|
22
23
|
]);
|
|
23
24
|
}
|
|
24
25
|
export async function getDefaultPassiveSubProtocols() {
|
|
@@ -52,4 +53,4 @@ function pairWithMainProtocol(mainProtocol) {
|
|
|
52
53
|
return [mainProtocol, subProtocol];
|
|
53
54
|
};
|
|
54
55
|
}
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL3Byb3RvY29sL2RlZmF1bHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUVwRCxPQUFPLEVBQ0wseUJBQXlCLEVBQ3pCLHFCQUFxQixFQUNyQixxQkFBcUIsRUFDckIsdUJBQXVCLEVBQ3ZCLDZCQUE2QixFQUM3QixzQkFBc0IsRUFDdEIsMEJBQTBCLEVBQzFCLHdCQUF3QixFQUN4QiwyQkFBMkIsRUFDM0Isc0JBQXNCLEVBQ3RCLHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDekIsd0JBQXdCLEVBQ3hCLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIsMkJBQTJCLEVBQzNCLHlCQUF5QixFQUN6QiwyQkFBMkIsRUFDM0IsMkJBQTJCLEVBQzNCLCtCQUErQixFQUMvQix1QkFBdUIsRUFDdkIsMkJBQTJCLEVBQzNCLHFCQUFxQixFQUNyQiw4QkFBOEIsRUFDOUIsMkJBQTJCLEVBQzNCLDhCQUE4QixFQUM5QiwwQkFBMEIsRUFDMUIseUJBQXlCLEVBQ3pCLDBCQUEwQixFQUMxQiwyQkFBMkIsRUFDM0IseUJBQXlCLEVBQ3pCLHlCQUF5QixFQUN6Qix3QkFBd0IsRUFDekIsTUFBTSwwQ0FBMEMsQ0FBQTtBQUVqRCxNQUFNLENBQUMsS0FBSyxVQUFVLDBCQUEwQjtJQUM5QyxPQUFPLEVBQUUsQ0FBQTtBQUNYLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLHlCQUF5QjtJQUM3QyxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQWdCO1FBQ2hDLDZCQUE2QixFQUFFO1FBQy9CLHdCQUF3QixFQUFFO1FBQzFCLHFCQUFxQixFQUFFO1FBQ3ZCLHdCQUF3QixFQUFFO1FBQzFCLHNCQUFzQixFQUFFO1FBQ3hCLHNCQUFzQixFQUFFO1FBQ3hCLHlCQUF5QixFQUFFO1FB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ZS1iZWZvcmUtZGVmaW5lICovXG5pbXBvcnQgeyBJQ29pblByb3RvY29sLCBJQ29pblN1YlByb3RvY29sIH0gZnJvbSAnQHdhbGxmcmVlLWRldi9jb2lubGliLWNvcmUnXG5pbXBvcnQgeyBlcmMyMFRva2VucyB9IGZyb20gJ0B3YWxsZnJlZS1kZXYvZXRoZXJldW0nXG5pbXBvcnQgeyBUb2tlbiB9IGZyb20gJy4uLy4uL3R5cGVzL1Rva2VuJ1xuaW1wb3J0IHtcbiAgY3JlYXRlVjBBZXRlcm5pdHlQcm90b2NvbCxcbiAgY3JlYXRlVjBBcHRvc1Byb3RvY29sLFxuICBjcmVhdGVWMEFzdGFyUHJvdG9jb2wsXG4gIGNyZWF0ZVYwQml0Y29pblByb3RvY29sLFxuICBjcmVhdGVWMEJpdGNvaW5TZWd3aXRQcm90b2NvbCxcbiAgY3JlYXRlVjBDb3Ntb3NQcm90b2NvbCxcbiAgY3JlYXRlVjBFdGhlcmV1bUVSQzIwVG9rZW4sXG4gIGNyZWF0ZVYwRXRoZXJldW1Qcm90b2NvbCxcbiAgY3JlYXRlVjBHcm9lc3RsY29pblByb3RvY29sLFxuICBjcmVhdGVWMEt1c2FtYVByb3RvY29sLFxuICBjcmVhdGVWME1vb25iZWFtUHJvdG9jb2wsXG4gIGNyZWF0ZVYwTW9vbnJpdmVyUHJvdG9jb2wsXG4gIGNyZWF0ZVYwUG9sa2Fkb3RQcm90b2NvbCxcbiAgY3JlYXRlVjBTaGlkZW5Qcm90b2NvbCxcbiAgY3JlYXRlVjBTb2xhbmFQcm90b2NvbCxcbiAgY3JlYXRlVjBUZXpvc0JUQ1RlelByb3RvY29sLFxuICBjcmVhdGVWMFRlem9zQ1RlelByb3RvY29sLFxuICBjcmVhdGVWMFRlem9zRG9nYW1pUHJvdG9jb2wsXG4gIGNyZWF0ZVYwVGV6b3NFVEhUZXpQcm90b2NvbCxcbiAgY3JlYXRlVjBUZXpvc0tvbGlicmlVU0RQcm90b2NvbCxcbiAgY3JlYXRlVjBUZXpvc0t0UHJvdG9jb2wsXG4gIGNyZWF0ZVYwVGV6b3NQbGVudHlQcm90b2NvbCxcbiAgY3JlYXRlVjBUZXpvc1Byb3RvY29sLFxuICBjcmVhdGVWMFRlem9zUXVpcHVzd2FwUHJvdG9jb2wsXG4gIGNyZWF0ZVYwVGV6b3NTaXJpdXNQcm90b2NvbCxcbiAgY3JlYXRlVjBUZXpvc1RldGhlclVTRFByb3RvY29sLFxuICBjcmVhdGVWMFRlem9zVHpCVENQcm90b2NvbCxcbiAgY3JlYXRlVjBUZXpvc1VCVENQcm90b2NvbCxcbiAgY3JlYXRlVjBUZXpvc1VERUZJUHJvdG9jb2wsXG4gIGNyZWF0ZVYwVGV6b3NVU0RUZXpQcm90b2NvbCxcbiAgY3JlYXRlVjBUZXpvc1VVU0RQcm90b2NvbCxcbiAgY3JlYXRlVjBUZXpvc1dyYXBQcm90b2NvbCxcbiAgY3JlYXRlVjBUZXpvc1lvdVByb3RvY29sXG59IGZyb20gJy4uLy4uL3V0aWxzL3Byb3RvY29sL3Byb3RvY29sLXYwLWFkYXB0ZXInXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXREZWZhdWx0UGFzc2l2ZVByb3RvY29scygpOiBQcm9taXNlPElDb2luUHJvdG9jb2xbXT4ge1xuICByZXR1cm4gW11cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldERlZmF1bHRBY3RpdmVQcm90b2NvbHMoKTogUHJvbWlzZTxJQ29pblByb3RvY29sW10+IHtcbiAgcmV0dXJuIFByb21pc2UuYWxsPElDb2luUHJvdG9jb2w+KFtcbiAgICBjcmVhdGVWMEJpdGNvaW5TZWd3aXRQcm90b2NvbCgpLFxuICAgIGNyZWF0ZVYwRXRoZXJldW1Qcm90b2NvbCgpLFxuICAgIGNyZWF0ZVYwVGV6b3NQcm90b2NvbCgpLFxuICAgIGNyZWF0ZVYwUG9sa2Fkb3RQcm90b2NvbCgpLFxuICAgIGNyZWF0ZVYwS3VzYW1hUHJvdG9jb2woKSxcbiAgICBjcmVhdGVWMENvc21vc1Byb3RvY29sKCksXG4gICAgY3JlYXRlVjBBZXRlcm5pdHlQcm90b2NvbCgpLFxuICAgIGNyZWF0ZVYwR3JvZXN0bGNvaW5Qcm90b2NvbCgpLFxuICAgIGNyZWF0ZVYwTW9vbnJpdmVyUHJvdG9jb2woKSxcbiAgICBjcmVhdGVWME1vb25iZWFtUHJvdG9jb2woKSxcbiAgICBjcmVhdGVWMEJpdGNvaW5Qcm90b2NvbCgpLFxuICAgIGNyZWF0ZVYwQXN0YXJQcm90b2NvbCgpLFxuICAgIGNyZWF0ZVYwU2hpZGVuUHJvdG9jb2woKSxcbiAgICBjcmVhdGVWMFNvbGFuYVByb3RvY29sKCksXG4gICAgY3JlYXRlVjBBcHRvc1Byb3RvY29sKClcbiAgXSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldERlZmF1bHRQYXNzaXZlU3ViUHJvdG9jb2xzKCk6IFByb21pc2U8W0lDb2luUHJvdG9jb2wsIElDb2luU3ViUHJvdG9jb2xdW10+IHtcbiAgcmV0dXJuIFtdXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXREZWZhdWx0QWN0aXZlU3ViUHJvdG9jb2xzKCk6IFByb21pc2U8W0lDb2luUHJvdG9jb2wsIElDb2luU3ViUHJvdG9jb2xdW10+IHtcbiAgY29uc3QgW3Rlem9zUHJvdG9jb2wsIGV0aGVyZXVtUHJvdG9jb2xdID0gYXdhaXQgUHJvbWlzZS5hbGwoW2NyZWF0ZVYwVGV6b3NQcm90b2NvbCgpLCBjcmVhdGVWMEV0aGVyZXVtUHJvdG9jb2woKV0pXG5cbiAgcmV0dXJuIFByb21pc2UuYWxsKFtcbiAgICBjcmVhdGVWMFRlem9zVVVTRFByb3RvY29sKCkudGhlbihwYWlyV2l0aE1haW5Qcm90b2NvbCh0ZXpvc1Byb3RvY29sKSksXG4gICAgY3JlYXRlVjBUZXpvc1lvdVByb3RvY29sKCkudGhlbihwYWlyV2l0aE1haW5Qcm90b2NvbCh0ZXpvc1Byb3RvY29sKSksXG4gICAgY3JlYXRlVjBUZXpvc1R6QlRDUHJvdG9jb2woKS50aGVuKHBhaXJXaXRoTWFpblByb3RvY29sKHRlem9zUHJvdG9jb2wpKSxcbiAgICBjcmVhdGVWMFRlem9zVVNEVGV6UHJvdG9jb2woKS50aGVuKHBhaXJXaXRoTWFpblByb3RvY29sKHRlem9zUHJvdG9jb2wpKSxcbiAgICBjcmVhdGVWMFRlem9zVURFRklQcm90b2NvbCgpLnRoZW4ocGFpcldpdGhNYWluUHJvdG9jb2wodGV6b3NQcm90b2NvbCkpLFxuICAgIGNyZWF0ZVYwVGV6b3NDVGV6UHJvdG9jb2woKS50aGVuKHBhaXJXaXRoTWFpblByb3RvY29sKHRlem9zUHJvdG9jb2wpKSxcbiAgICBjcmVhdGVWMFRlem9zUGxlbnR5UHJvdG9jb2woKS50aGVuKHBhaXJXaXRoTWFpblByb3RvY29sKHRlem9zUHJvdG9jb2wpKSxcbiAgICBjcmVhdGVWMFRlem9zV3JhcFByb3RvY29sKCkudGhlbihwYWlyV2l0aE1haW5Qcm90b2NvbCh0ZXpvc1Byb3RvY29sKSksXG4gICAgY3JlYXRlVjBUZXpvc1F1aXB1c3dhcFByb3RvY29sKCkudGhlbihwYWlyV2l0aE1haW5Qcm90b2NvbCh0ZXpvc1Byb3RvY29sKSksXG4gICAgY3JlYXRlVjBUZXpvc0tvbGlicmlVU0RQcm90b2NvbCgpLnRoZW4ocGFpcldpdGhNYWluUHJvdG9jb2wodGV6b3NQcm90b2NvbCkpLFxuICAgIGNyZWF0ZVYwVGV6b3NVQlRDUHJvdG9jb2woKS50aGVuKHBhaXJXaXRoTWFpblByb3RvY29sKHRlem9zUHJvdG9jb2wpKSxcbiAgICBjcmVhdGVWMFRlem9zRG9nYW1pUHJvdG9jb2woKS50aGVuKHBhaXJXaXRoTWFpblByb3RvY29sKHRlem9zUHJvdG9jb2wpKSxcbiAgICBjcmVhdGVWMFRlem9zU2lyaXVzUHJvdG9jb2woKS50aGVuKHBhaXJXaXRoTWFpblByb3RvY29sKHRlem9zUHJvdG9jb2wpKSxcbiAgICBjcmVhdGVWMFRlem9zQlRDVGV6UHJvdG9jb2woKS50aGVuKHBhaXJXaXRoTWFpblByb3RvY29sKHRlem9zUHJvdG9jb2wpKSxcbiAgICBjcmVhdGVWMFRlem9zRVRIVGV6UHJvdG9jb2woKS50aGVuKHBhaXJXaXRoTWFpblByb3RvY29sKHRlem9zUHJvdG9jb2wpKSxcbiAgICBjcmVhdGVWMFRlem9zVGV0aGVyVVNEUHJvdG9jb2woKS50aGVuKHBhaXJXaXRoTWFpblByb3RvY29sKHRlem9zUHJvdG9jb2wpKSxcbiAgICBjcmVhdGVWMFRlem9zS3RQcm90b2NvbCgpLnRoZW4ocGFpcldpdGhNYWluUHJvdG9jb2wodGV6b3NQcm90b2NvbCkpLFxuICAgIC4uLk9iamVjdC52YWx1ZXMoZXJjMjBUb2tlbnMpLm1hcCgodG9rZW46IFRva2VuKSA9PiBjcmVhdGVWMEV0aGVyZXVtRVJDMjBUb2tlbih0b2tlbikudGhlbihwYWlyV2l0aE1haW5Qcm90b2NvbChldGhlcmV1bVByb3RvY29sKSkpXG4gIF0pXG59XG5cbmZ1bmN0aW9uIHBhaXJXaXRoTWFpblByb3RvY29sKG1haW5Qcm90b2NvbDogSUNvaW5Qcm90b2NvbCk6IChzdWJQcm90b2NvbDogSUNvaW5TdWJQcm90b2NvbCkgPT4gW0lDb2luUHJvdG9jb2wsIElDb2luU3ViUHJvdG9jb2xdIHtcbiAgcmV0dXJuIChzdWJQcm90b2NvbDogSUNvaW5TdWJQcm90b2NvbCk6IFtJQ29pblByb3RvY29sLCBJQ29pblN1YlByb3RvY29sXSA9PiB7XG4gICAgcmV0dXJuIFttYWluUHJvdG9jb2wsIHN1YlByb3RvY29sXSBhcyBbSUNvaW5Qcm90b2NvbCwgSUNvaW5TdWJQcm90b2NvbF1cbiAgfVxufVxuIl19
|
|
@@ -13,6 +13,9 @@ import { createMoonbaseProtocol, createMoonbeamProtocol, createMoonriverProtocol
|
|
|
13
13
|
import { createERC20Token as createOptimismERC20Token, createOptimismProtocol, OptimismModule } from '@wallfree-dev/optimism';
|
|
14
14
|
import { createKusamaProtocol, createPolkadotProtocol, PolkadotModule } from '@wallfree-dev/polkadot';
|
|
15
15
|
import { createSolanaProtocol, SolanaModule } from '@wallfree-dev/solana';
|
|
16
|
+
import { createTronProtocol, TronModule } from '@wallfree-dev/tron';
|
|
17
|
+
import { AptosModule, createAptosProtocol } from '@wallfree-dev/aptos';
|
|
18
|
+
import { SuiModule, createSuiProtocol } from '@wallfree-dev/sui';
|
|
16
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';
|
|
17
20
|
import BigNumber from '@wallfree-dev/coinlib-core/dependencies/src/bignumber.js-9.0.0/bignumber';
|
|
18
21
|
import { AirGapTransactionStatus as AirGapTransactionStatusV0, AirGapTransactionWarningType } from '@wallfree-dev/coinlib-core/interfaces/IAirGapTransaction';
|
|
@@ -171,6 +174,21 @@ export async function createV0SolanaProtocol(...args) {
|
|
|
171
174
|
const module = new SolanaModule();
|
|
172
175
|
return createV0Protocol(protocol, module);
|
|
173
176
|
}
|
|
177
|
+
export async function createV0TronProtocol(...args) {
|
|
178
|
+
const protocol = createTronProtocol(...args);
|
|
179
|
+
const module = new TronModule();
|
|
180
|
+
return createV0Protocol(protocol, module);
|
|
181
|
+
}
|
|
182
|
+
export async function createV0AptosProtocol(...args) {
|
|
183
|
+
const protocol = createAptosProtocol(...args);
|
|
184
|
+
const module = new AptosModule();
|
|
185
|
+
return createV0Protocol(protocol, module);
|
|
186
|
+
}
|
|
187
|
+
export async function createV0SuiProtocol(...args) {
|
|
188
|
+
const protocol = createSuiProtocol(...args);
|
|
189
|
+
const module = new SuiModule();
|
|
190
|
+
return createV0Protocol(protocol, module);
|
|
191
|
+
}
|
|
174
192
|
export async function createV0TezosProtocol(...args) {
|
|
175
193
|
const protocol = createTezosProtocol(...args);
|
|
176
194
|
const module = new TezosModule();
|
|
@@ -387,4 +405,4 @@ export function getSecretKeyType(secretKey) {
|
|
|
387
405
|
export function getPublicKeyType(publicKey) {
|
|
388
406
|
return publicKey.startsWith('xpub') ? 'xpub' : 'pub';
|
|
389
407
|
}
|
|
390
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdG9jb2wtdjAtYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvdXRpbHMvcHJvdG9jb2wvcHJvdG9jb2wtdjAtYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4QkFBOEI7QUFDOUIsT0FBTyxFQUFFLGVBQWUsRUFBcUIsdUJBQXVCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUNyRyxPQUFPLEVBQUUsV0FBVyxFQUFpQixtQkFBbUIsRUFBRSxvQkFBb0IsRUFBa0IsTUFBTSxxQkFBcUIsQ0FBQTtBQUMzSCxPQUFPLEVBQ0wsZUFBZSxJQUFJLGlCQUFpQixFQUNwQyxXQUFXLElBQUkscUJBQXFCLEVBS3JDLE1BQU0sNEJBQTRCLENBQUE7QUFDbkMsT0FBTyxFQUNMLGdCQUFnQixJQUFJLHdCQUF3QixFQUM1QyxzQkFBc0IsRUFFdEIsY0FBYyxFQUVmLE1BQU0sd0JBQXdCLENBQUE7QUFDL0IsT0FBTyxFQWNMLGdCQUFnQixFQUNoQixTQUFTLEVBVVYsTUFBTSwwQkFBMEIsQ0FBQTtBQUNqQyxPQUFPLEVBQUUsYUFBYSxFQUEwQyxxQkFBcUIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ2pKLE9BQU8sRUFBRSxZQUFZLEVBQWtCLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDekYsT0FBTyxFQUFFLFlBQVksRUFBa0Isb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUN6RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsaUJBQWlCLEVBQXVCLE1BQU0sMkJBQTJCLENBQUE7QUFDN0csT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBZSxNQUFNLG1CQUFtQixDQUFBO0FBQzdFLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUV2QixjQUFjLEVBR2YsTUFBTSx3QkFBd0IsQ0FBQTtBQUMvQixPQUFPLEVB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QUFBO0FBQ0gsQ0FBQztBQUVELFFBQVE7QUFFUixNQUFNLFVBQVUsc0JBQXNCLENBQUMsS0FBYTtJQUNsRCxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUE7QUFDekMsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxTQUFpQjtJQUNoRCxPQUFPLFNBQVMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFBO0FBQ3hELENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsU0FBaUI7SUFDaEQsT0FBTyxTQUFTLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQTtBQUN0RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbWF4LWxpbmVzICovXG5pbXBvcnQgeyBBZXRlcm5pdHlNb2R1bGUsIEFldGVybml0eVByb3RvY29sLCBjcmVhdGVBZXRlcm5pdHlQcm90b2NvbCB9IGZyb20gJ0B3YWxsZnJlZS1kZXYvYWV0ZXJuaXR5J1xuaW1wb3J0IHsgQXN0YXJNb2R1bGUsIEFzdGFyUHJvdG9jb2wsIGNyZWF0ZUFzdGFyUHJvdG9jb2wsIGNyZWF0ZVNoaWRlblByb3RvY29sLCBTaGlkZW5Qcm90b2NvbCB9IGZyb20gJ0B3YWxsZnJlZS1kZXYvYXN0YXInXG5pbXBvcnQge1xuICBQcm90b2NvbE5ldHdvcmsgYXMgUHJvdG9jb2xOZXR3b3JrVjAsXG4gIE5ldHdvcmtUeXBlIGFzIFByb3RvY29sTmV0d29ya1R5cGVWMCxcbiAgUHJvdG9jb2xCbG9ja0V4cGxvcmVyIGFzIFByb3RvY29sQmxvY2tFeHBsb3JlclYwLFxuICBGZWVEZWZhdWx0cyBhcyBGZWVEZWZhdWx0c1YwLFxuICBJQWlyR2FwVHJhbnNhY3Rpb24gYXMgQWlyR2FwVHJhbnNhY3Rpb25WMCxcbiAgUHJvdG9jb2xTeW1ib2xzXG59IGZyb20gJ0B3YWxsZnJlZS1kZXYvY29pbmxpYi1jb3JlJ1xuaW1wb3J0IHtcbiAgY3JlYXRlRVJDMjBUb2tlbiBhcyBjcmVhdGVFdGhlcmV1bUVSQzIwVG9rZW4sXG4gIGNyZWF0ZUV0aGVyZXVtUHJvdG9jb2wsXG4gIEVSQzIwVG9rZW4gYXMgRXRoZXJldW1FUkMyMFRva2VuLFxuICBFdGhlcmV1bU1vZHVsZSxcbiAgRXRoZXJldW1Qcm90b2NvbFxufSBmcm9tICdAd2FsbGZyZWUtZGV2L2V0aGVyZXVtJ1xuaW1wb3J0IHtcbiAgQWlyR2FwQW55UHJvdG9jb2wsXG4gIEFpckdhcEJsb2NrRXhwbG9yZXIgYXMgUHJvdG9jb2xCbG9ja0V4cGxvcmVyVjEsXG4gIEFpckdhcE1vZHVsZSxcbiAgQWlyR2FwT25saW5lUHJvdG9jb2wsXG4gIEFpckdhcFRyYW5zYWN0aW9uIGFzIEFpckdhcFRyYW5zYWN0aW9uVjEsXG4gIEFpckdhcFRyYW5zYWN0aW9uU3RhdHVzIGFzIEFpckdhcFRyYW5zYWN0aW9uU3RhdHVzVjEsXG4gIEFpckdhcFVJQWN0aW9uIGFzIEFpckdhcFVJQWN0aW9uVjEsXG4gIEFpckdhcFVJQWxlcnQgYXMgQWlyR2FwVUlBbGVydFYxLFxuICBBaXJHYXBWM1NlcmlhbGl6ZXJDb21wYW5pb24sXG4gIEJ5dGVzU3RyaW5nRm9ybWF0LFxuICBFeHRlbmRlZFB1YmxpY0tleSxcbiAgRXh0ZW5kZWRTZWNyZXRLZXksXG4gIEZlZURlZmF1bHRzIGFzIEZlZURlZmF1bHRzVjEsXG4gIGlzT25saW5lUHJvdG9jb2wsXG4gIG5ld0Ftb3VudCxcbiAgUHJvdG9jb2xDb25maWd1cmF0aW9uLFxuICBQcm90b2NvbE1ldGFkYXRhLFxuICBQcm90b2NvbE5ldHdvcmsgYXMgUHJvdG9jb2xOZXR3b3JrVjEsXG4gIFByb3RvY29sTmV0d29ya1R5cGUgYXMgUHJvdG9jb2xOZXR3b3JrVHlwZVYxLFxuICBQcm90b2NvbFVuaXRzTWV0YWRhdGEsXG4gIFB1YmxpY0tleSxcbiAgUmVjdXJzaXZlUGFydGlhbCxcbiAgU2VjcmV0S2V5LFxuICBTdWJQcm90b2NvbFxufSBmcm9tICdAd2FsbGZyZWUtZGV2L21vZHVsZS1raXQnXG5pbXBvcnQgeyBCaXRjb2luTW9kdWxlLCBCaXRjb2luUHJvdG9jb2wsIEJpdGNvaW5TZWd3aXRQcm90b2NvbCwgY3JlYXRlQml0Y29pblByb3RvY29sLCBjcmVhdGVCaXRjb2luU2Vnd2l0UHJvdG9jb2wgfSBmcm9tICdAd2FsbGZyZWUtZGV2L2JpdGNvaW4nXG5pbXBvcnQgeyBDb3JldW1Nb2R1bGUsIENvcmV1bVByb3RvY29sLCBjcmVhdGVDb3JldW1Qcm90b2NvbCB9IGZyb20gJ0B3YWxsZnJlZS1kZXYvY29yZXVtJ1xuaW1wb3J0IHsgQ29zbW9zTW9kdWxlLCBDb3Ntb3NQcm90b2NvbCwgY3JlYXRlQ29zbW9zUHJvdG9jb2wgfSBmcm9tICdAd2FsbGZyZWUtZGV2L2Nvc21vcydcbmltcG9ydCB7IGNyZWF0ZUdyb2VzdGxjb2luUHJvdG9jb2wsIEdyb2VzdGxjb2luTW9kdWxlLCBHcm9lc3RsY29pblByb3RvY29sIH0gZnJvbSAnQHdhbGxmcmVlLWRldi9ncm9lc3RsY29pbidcbmltcG9ydCB7IGNyZWF0ZUlDUFByb3RvY29sLCBJQ1BNb2R1bGUsIElDUFByb3RvY29sIH0gZnJvbSAnQHdhbGxmcmVlLWRldi9pY3AnXG5pbXBvcnQge1xuICBjcmVhdGVNb29uYmFzZVByb3RvY29sLFxuICBjcmVhdGVNb29uYmVhbVByb3RvY29sLFxuICBjcmVhdGVNb29ucml2ZXJQcm90b2NvbCxcbiAgTW9vbmJhc2VQcm90b2NvbCxcbiAgTW9vbmJlYW1Nb2R1bGUsXG4gIE1vb25iZWFtUHJvdG9jb2wsXG4gIE1vb25yaXZlclByb3RvY29sXG59IGZyb20gJ0B3YWxsZnJlZS1kZXYvbW9vbmJlYW0nXG5pbXBvcnQge1xuICBjcmVhdGVFUkMyMFRva2VuIGFzIGNyZWF0ZU9wdGltaXNtRVJDMjBUb2tlbixcbiAgY3JlYXRlT3B0aW1pc21Qcm90b2NvbCxcbiAgRVJDMjBUb2tlbiBhcyBPcHRpbWlzbUVSQzIwVG9rZW4sXG4gIE9wdGltaXNtTW9kdWxlLFxuICBPcHRpbWlzbVByb3RvY29sXG59IGZyb20gJ0B3YWxsZnJlZS1kZXYvb3B0aW1pc20nXG5pbXBvcnQgeyBjcmVhdGVLdXNhbWFQcm90b2NvbCwgY3JlYXRlUG9sa2Fkb3RQcm90b2NvbCwgS3VzYW1hUHJvdG9jb2wsIFBvbGthZG90TW9kdWxlLCBQb2xrYWRvdFByb3RvY29sIH0gZnJvbSAnQHdhbGxmcmVlLWRldi9wb2xrYWRvdCdcbmltcG9ydCB7IGNyZWF0ZVNvbGFuYVByb3RvY29sLCBTb2xhbmFNb2R1bGUsIFNvbGFuYVByb3RvY29sIH0gZnJvbSAnQHdhbGxmcmVlLWRldi9zb2xhbmEnXG5pbXBvcnQge1xuICBCVENUZXpQcm90b2NvbCxcbiAgY3JlYXRlQlRDVGV6UHJvdG9jb2wsXG4gIGNyZWF0ZUNUZXpQcm90b2NvbCxcbiAgY3JlYXRlRG9nYW1pUHJvdG9jb2wsXG4gIGNyZWF0ZUVUSFRlelByb3RvY29sLFxuICBjcmVhdGVLb2xpYnJpVVNEUHJvdG9jb2wsXG4gIGNyZWF0ZVBsZW50eVByb3RvY29sLFxuICBjcmVhdGVRdWlwdXN3YXBQcm90b2NvbCxcbiAgY3JlYXRlU2lyaXVzUHJvdG9jb2wsXG4gIGNyZWF0ZVN0YWtlclByb3RvY29sLFxuICBjcmVhdGVUZXRoZXJVU0RQcm90b2NvbCxcbiAgY3JlYXRlVGV6b3NGQTFwMlByb3RvY29sLFxuICBjcmVhdGVUZXpvc0ZBMlByb3RvY29sLFxuICBjcmVhdGVUZXpvc0t0UHJvdG9jb2wsXG4gIGNyZWF0ZVRlem9zUHJvdG9jb2wsXG4gIGNyZWF0ZVRlem9zU2hpZWxkZWRUZXpQcm90b2NvbCxcbiAgY3JlYXRlVHpCVENQcm90b2NvbCxcbiAgY3JlYXRlVUJUQ1Byb3RvY29sLFxuICBjcmVhdGVVREVGSVByb3RvY29sLFxuICBjcmVhdGVVU0RUZXpQcm90b2NvbCxcbiAgY3JlYXRlVVVTRFByb3RvY29sLFxuICBjcmVhdGVXcmFwcGVkVGV6b3NQcm90b2NvbCxcbiAgY3JlYXRlV3JhcFByb3RvY29sLFxuICBjcmVhdGVZb3VQcm90b2NvbCxcbiAgQ1RlelByb3RvY29sLFxuICBEb2dhbWlQcm90b2NvbCxcbiAgRVRIVGV6UHJvdG9jb2wsXG4gIEtvbGlicmlVU0RQcm90b2NvbCxcbiAgUGxlbnR5UHJvdG9jb2wsXG4gIFF1aXB1c3dhcFByb3RvY29sLFxuICBTaXJpdXNQcm90b2NvbCxcbiAgU3Rha2VyUHJvdG9jb2wsXG4gIFRldGhlclVTRFByb3RvY29sLFxuICBUZXpvc0ZBMXAyUHJvdG9jb2wsXG4gIFRlem9zRkEyUHJvdG9jb2wsXG4gIFRlem9zRkFQcm90b2NvbCxcbiAgVGV6b3NLdFByb3RvY29sLFxuICBUZXpvc01vZHVsZSxcbiAgVGV6b3NQcm90b2NvbCxcbiAgVGV6b3NQcm90b2NvbE5ldHdvcmssXG4gIFRlem9zU2hpZWxkZWRUZXpQcm90b2NvbCxcbiAgVHpCVENQcm90b2NvbCxcbiAgVUJUQ1Byb3RvY29sLFxuICBVREVGSVByb3RvY29sLFxuICBVU0RUZXpQcm90b2NvbCxcbiAgVVVTRFByb3RvY29sLFxuICBXcmFwcGVkVGV6b3NQcm90b2NvbCxcbiAgV3JhcFByb3RvY29sLFxuICBZb3VQcm90b2NvbFxufSBmcm9tICdAd2FsbGZyZWUtZGV2L3Rlem9zJ1xuaW1wb3J0IEJpZ051bWJlciBmcm9tICdAd2FsbGZyZWUtZGV2L2NvaW5saWItY29yZS9kZXBlbmRlbmNpZXMvc3JjL2JpZ251bWJlci5qcy05LjAuMC9iaWdudW1iZXInXG5cbmltcG9ydCB7XG4gIEFpckdhcFRyYW5zYWN0aW9uU3RhdHVzIGFzIEFpckdhcFRyYW5zYWN0aW9uU3RhdHVzVjAsXG4gIEFpckdhcFRyYW5zYWN0aW9uV2FybmluZyBhcyBBaXJHYXBVSUFsZXJ0VjAsXG4gIEFpckdhcFRyYW5zYWN0aW9uV2FybmluZ1R5cGVcbn0gZnJvbSAnQHdhbGxmcmVlLWRldi9jb2lubGliLWNvcmUvaW50ZXJmYWNlcy9JQWlyR2FwVHJhbnNhY3Rpb24nXG5pbXBvcnQgeyBpc0hleCB9IGZyb20gJ0B3YWxsZnJlZS1kZXYvY29pbmxpYi1jb3JlL3V0aWxzL2hleCdcblxuaW1wb3J0IHtcbiAgY3JlYXRlSUNvaW5Qcm90b2NvbEFkYXB0ZXIsXG4gIGNyZWF0ZUlDb2luU3ViUHJvdG9jb2xBZGFwdGVyLFxuICBJQ29pblByb3RvY29sQWRhcHRlcixcbiAgSUNvaW5TdWJQcm90b2NvbEFkYXB0ZXIsXG4gIFByb3RvY29sQmxvY2tFeHBsb3JlckFkYXB0ZXIsXG4gIFByb3RvY29sTmV0d29ya0FkYXB0ZXJcbn0gZnJvbSAnLi4vLi4vcHJvdG9jb2wvYWRhcHRlci9wcm90b2NvbC12MC1hZGFwdGVyJ1xuXG4vLyBOZXR3b3JrXG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0TmV0d29ya1R5cGVWMFRvVjEodHlwZTogUHJvdG9jb2xOZXR3b3JrVHlwZVYwKTogUHJvdG9jb2xOZXR3b3JrVHlwZVYxIHtcbiAgcmV0dXJuIHR5cGUgPT09IFByb3RvY29sTmV0d29ya1R5cGVWMC5NQUlOTkVUID8gJ21haW5uZXQnIDogdHlwZSA9PT0gUHJvdG9jb2xOZXR3b3JrVHlwZVYwLlRFU1RORVQgPyAndGVzdG5ldCcgOiAnY3VzdG9tJ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udmVydE5ldHdvcmtUeXBlVjFUb1YwKHR5cGU6IFByb3RvY29sTmV0d29ya1R5cGVWMSk6IFByb3RvY29sTmV0d29ya1R5cGVWMCB7XG4gIHJldHVybiB0eXBlID09PSAnbWFpbm5ldCdcbiAgICA/IFByb3RvY29sTmV0d29ya1R5cGVWMC5NQUlOTkVUXG4gICAgOiB0eXBlID09PSAndGVzdG5ldCdcbiAgICA/IFByb3RvY29sTmV0d29ya1R5cGVWMC5URVNUTkVUXG4gICAgOiBQcm90b2NvbE5ldHdvcmtUeXBlVjAuQ1VTVE9NXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0TmV0d29ya1YwVG9WMShuZXR3b3JrOiBQcm90b2NvbE5ldHdvcmtWMCk6IFByb3RvY29sTmV0d29ya1YxIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBuZXR3b3JrLm5hbWUsXG4gICAgdHlwZTogY29udmVydE5ldHdvcmtUeXBlVjBUb1YxKG5ldHdvcmsudHlwZSksXG4gICAgcnBjVXJsOiBuZXR3b3JrLnJwY1VybCxcbiAgICBibG9ja0V4cGxvcmVyVXJsOiBuZXR3b3JrLmJsb2NrRXhwbG9yZXIuYmxvY2tFeHBsb3JlcixcbiAgICAuLi4odHlwZW9mIG5ldHdvcmsuZXh0cmFzID09PSAnb2JqZWN0JyA/IG5ldHdvcmsuZXh0cmFzIDoge30pXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnROZXR3b3JrVjFUb1YwKG5ldHdvcms6IFByb3RvY29sTmV0d29ya1YxLCBibG9ja0V4cGxvcmVyPzogUHJvdG9jb2xCbG9ja0V4cGxvcmVyVjEpOiBQcm90b2NvbE5ldHdvcmtWMCB7XG4gIGNvbnN0IHsgbmFtZSwgdHlwZSwgcnBjVXJsLCAuLi5yZXN0IH0gPSBuZXR3b3JrXG4gIGNvbnN0IGJsb2NrRXhwbG9yZXJWMDogUHJvdG9jb2xCbG9ja0V4cGxvcmVyVjAgPSBuZXcgUHJvdG9jb2xCbG9ja0V4cGxvcmVyQWRhcHRlcihibG9ja0V4cGxvcmVyLCBuZXR3b3JrLmJsb2NrRXhwbG9yZXJVcmwpXG5cbiAgcmV0dXJuIG5ldyBQcm90b2NvbE5ldHdvcmtBZGFwdGVyKG5hbWUsIGNvbnZlcnROZXR3b3JrVHlwZVYxVG9WMCh0eXBlKSwgcnBjVXJsLCBibG9ja0V4cGxvcmVyVjAsIHJlc3QpXG59XG5cbi8vIFByb3RvY29sXG5cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUFkYXB0ZXJTdXBwbGVtZW50c0Zyb21JZGVudGlmaWVyQW5kTmV0d29yayhcbiAgbW9kdWxlOiBBaXJHYXBNb2R1bGUsXG4gIGlkZW50aWZpZXI6IHN0cmluZyxcbiAgbmV0d29yazogUHJvdG9jb2xOZXR3b3JrVjEgfCB1bmRlZmluZWRcbik6IFByb21pc2U8W1Byb3RvY29sQmxvY2tFeHBsb3JlclYxLCBBaXJHYXBWM1NlcmlhbGl6ZXJDb21wYW5pb25dPiB7XG4gIGNvbnN0IFtibG9ja0V4cGxvcmVyLCB2M1NlcmlhbGl6ZXJDb21wYW5pb25dID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgIG1vZHVsZS5jcmVhdGVCbG9ja0V4cGxvcmVyKGlkZW50aWZpZXIsIG5ldHdvcmspLFxuICAgIG1vZHVsZS5jcmVhdGVWM1NlcmlhbGl6ZXJDb21wYW5pb24oKVxuICBdKVxuXG4gIHJldHVybiBbYmxvY2tFeHBsb3JlciwgdjNTZXJpYWxpemVyQ29tcGFuaW9uXVxufVxuXG5hc3luYyBmdW5jdGlvbiBjcmVhdGVBZGFwdGVyU3VwcGxlbWVudHNGcm9tUHJvdG9jb2w8VCBleHRlbmRzIEFpckdhcEFueVByb3RvY29sPihcbiAgcHJvdG9jb2w6IFQsXG4gIG1vZHVsZTogQWlyR2FwTW9kdWxlXG4pOiBQcm9taXNlPFtQcm90b2NvbEJsb2NrRXhwbG9yZXJWMSwgQWlyR2FwVjNTZXJpYWxpemVyQ29tcGFuaW9uXT4ge1xuICBjb25zdCBbbWV0YWRhdGEsIG5ldHdvcmtdOiBbUHJvdG9jb2xNZXRhZGF0YSwgUHJvdG9jb2xOZXR3b3JrVjEgfCB1bmRlZmluZWRdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgIHByb3RvY29sLmdldE1ldGFkYXRhKCksXG4gICAgaXNPbmxpbmVQcm90b2NvbChwcm90b2NvbCkgPyBwcm90b2NvbC5nZXROZXR3b3JrKCkgOiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKVxuICBdKVxuXG4gIHJldHVybiBjcmVhdGVBZGFwdGVyU3VwcGxlbWVudHNGcm9tSWRlbnRpZmllckFuZE5ldHdvcmsobW9kdWxlLCBtZXRhZGF0YS5pZGVudGlmaWVyLCBuZXR3b3JrKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBQcm90b2NvbDxUIGV4dGVuZHMgQWlyR2FwQW55UHJvdG9jb2w+KFxuICBwcm90b2NvbDogVCxcbiAgbW9kdWxlOiBBaXJHYXBNb2R1bGUsXG4gIHR5cGU6IFByb3RvY29sQ29uZmlndXJhdGlvblsndHlwZSddID0gJ2Z1bGwnXG4pOiBQcm9taXNlPElDb2luUHJvdG9jb2xBZGFwdGVyPFQ+PiB7XG4gIGNvbnN0IFtibG9ja0V4cGxvcmVyLCB2M1NlcmlhbGl6ZXJDb21wYW5pb25dOiBbUHJvdG9jb2xCbG9ja0V4cGxvcmVyVjEsIEFpckdhcFYzU2VyaWFsaXplckNvbXBhbmlvbl0gPVxuICAgIGF3YWl0IGNyZWF0ZUFkYXB0ZXJTdXBwbGVtZW50c0Zyb21Qcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxuXG4gIHJldHVybiBjcmVhdGVJQ29pblByb3RvY29sQWRhcHRlcihwcm90b2NvbCwgYmxvY2tFeHBsb3JlciwgdjNTZXJpYWxpemVyQ29tcGFuaW9uLCB7IHR5cGUgfSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwU3ViUHJvdG9jb2w8VCBleHRlbmRzIEFpckdhcEFueVByb3RvY29sICYgU3ViUHJvdG9jb2w+KFxuICBwcm90b2NvbDogVCxcbiAgbW9kdWxlOiBBaXJHYXBNb2R1bGUsXG4gIHR5cGU6IFByb3RvY29sQ29uZmlndXJhdGlvblsndHlwZSddID0gJ2Z1bGwnXG4pOiBQcm9taXNlPElDb2luU3ViUHJvdG9jb2xBZGFwdGVyPFQ+PiB7XG4gIGNvbnN0IFtibG9ja0V4cGxvcmVyLCB2M1NlcmlhbGl6ZXJDb21wYW5pb25dOiBbUHJvdG9jb2xCbG9ja0V4cGxvcmVyVjEsIEFpckdhcFYzU2VyaWFsaXplckNvbXBhbmlvbl0gPVxuICAgIGF3YWl0IGNyZWF0ZUFkYXB0ZXJTdXBwbGVtZW50c0Zyb21Qcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxuXG4gIHJldHVybiBjcmVhdGVJQ29pblN1YlByb3RvY29sQWRhcHRlcihwcm90b2NvbCwgYmxvY2tFeHBsb3JlciwgdjNTZXJpYWxpemVyQ29tcGFuaW9uLCB7IHR5cGUgfSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwRVJDMjBUb2tlbjxUIGV4dGVuZHMgQWlyR2FwQW55UHJvdG9jb2wgJiBTdWJQcm90b2NvbD4oXG4gIGVyYzIwVG9rZW46IFQsXG4gIHByb3RvY29sOiBBaXJHYXBBbnlQcm90b2NvbCxcbiAgbW9kdWxlOiBBaXJHYXBNb2R1bGUsXG4gIHR5cGU6IFByb3RvY29sQ29uZmlndXJhdGlvblsndHlwZSddID0gJ2Z1bGwnXG4pOiBQcm9taXNlPElDb2luU3ViUHJvdG9jb2xBZGFwdGVyPFQ+PiB7XG4gIGNvbnN0IFttZXRhZGF0YSwgbmV0d29ya106IFtQcm90b2NvbE1ldGFkYXRhLCBQcm90b2NvbE5ldHdvcmtWMSB8IHVuZGVmaW5lZF0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgcHJvdG9jb2wuZ2V0TWV0YWRhdGEoKSxcbiAgICBpc09ubGluZVByb3RvY29sKGVyYzIwVG9rZW4pID8gZXJjMjBUb2tlbi5nZXROZXR3b3JrKCkgOiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKVxuICBdKVxuXG4gIGNvbnN0IFtibG9ja0V4cGxvcmVyLCB2M1NlcmlhbGl6ZXJDb21wYW5pb25dID0gYXdhaXQgY3JlYXRlQWRhcHRlclN1cHBsZW1lbnRzRnJvbUlkZW50aWZpZXJBbmROZXR3b3JrKFxuICAgIG1vZHVsZSxcbiAgICBtZXRhZGF0YS5pZGVudGlmaWVyLFxuICAgIG5ldHdvcmtcbiAgKVxuXG4gIHJldHVybiBjcmVhdGVJQ29pblN1YlByb3RvY29sQWRhcHRlcihlcmMyMFRva2VuLCBibG9ja0V4cGxvcmVyLCB2M1NlcmlhbGl6ZXJDb21wYW5pb24sIHsgdHlwZSB9KVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBBZXRlcm5pdHlQcm90b2NvbChcbiAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlQWV0ZXJuaXR5UHJvdG9jb2w+XG4pOiBQcm9taXNlPElDb2luUHJvdG9jb2xBZGFwdGVyPEFldGVybml0eVByb3RvY29sPj4ge1xuICBjb25zdCBwcm90b2NvbDogQWV0ZXJuaXR5UHJvdG9jb2wgPSBjcmVhdGVBZXRlcm5pdHlQcm90b2NvbCguLi5hcmdzKVxuICBjb25zdCBtb2R1bGU6IEFldGVybml0eU1vZHVsZSA9IG5ldyBBZXRlcm5pdHlNb2R1bGUoKVxuXG4gIHJldHVybiBjcmVhdGVWMFByb3RvY29sKHByb3RvY29sLCBtb2R1bGUpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVWMEFzdGFyUHJvdG9jb2woLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlQXN0YXJQcm90b2NvbD4pOiBQcm9taXNlPElDb2luUHJvdG9jb2xBZGFwdGVyPEFzdGFyUHJvdG9jb2w+PiB7XG4gIGNvbnN0IHByb3RvY29sOiBBc3RhclByb3RvY29sID0gY3JlYXRlQXN0YXJQcm90b2NvbCguLi5hcmdzKVxuICBjb25zdCBtb2R1bGU6IEFzdGFyTW9kdWxlID0gbmV3IEFzdGFyTW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBQcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBTaGlkZW5Qcm90b2NvbChcbiAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlU2hpZGVuUHJvdG9jb2w+XG4pOiBQcm9taXNlPElDb2luUHJvdG9jb2xBZGFwdGVyPFNoaWRlblByb3RvY29sPj4ge1xuICBjb25zdCBwcm90b2NvbDogU2hpZGVuUHJvdG9jb2wgPSBjcmVhdGVTaGlkZW5Qcm90b2NvbCguLi5hcmdzKVxuICBjb25zdCBtb2R1bGU6IEFzdGFyTW9kdWxlID0gbmV3IEFzdGFyTW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBQcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBCaXRjb2luUHJvdG9jb2woXG4gIC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZUJpdGNvaW5Qcm90b2NvbD5cbik6IFByb21pc2U8SUNvaW5Qcm90b2NvbEFkYXB0ZXI8Qml0Y29pblByb3RvY29sPj4ge1xuICBjb25zdCBwcm90b2NvbDogQml0Y29pblByb3RvY29sID0gY3JlYXRlQml0Y29pblByb3RvY29sKC4uLmFyZ3MpXG4gIGNvbnN0IG1vZHVsZTogQml0Y29pbk1vZHVsZSA9IG5ldyBCaXRjb2luTW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBQcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBCaXRjb2luU2Vnd2l0UHJvdG9jb2woXG4gIC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZUJpdGNvaW5TZWd3aXRQcm90b2NvbD5cbik6IFByb21pc2U8SUNvaW5Qcm90b2NvbEFkYXB0ZXI8Qml0Y29pblNlZ3dpdFByb3RvY29sPj4ge1xuICBjb25zdCBwcm90b2NvbDogQml0Y29pblNlZ3dpdFByb3RvY29sID0gY3JlYXRlQml0Y29pblNlZ3dpdFByb3RvY29sKC4uLmFyZ3MpXG4gIGNvbnN0IG1vZHVsZTogQml0Y29pbk1vZHVsZSA9IG5ldyBCaXRjb2luTW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBQcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBDb3JldW1Qcm90b2NvbChcbiAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlQ29yZXVtUHJvdG9jb2w+XG4pOiBQcm9taXNlPElDb2luUHJvdG9jb2xBZGFwdGVyPENvcmV1bVByb3RvY29sPj4ge1xuICBjb25zdCBwcm90b2NvbDogQ29yZXVtUHJvdG9jb2wgPSBjcmVhdGVDb3JldW1Qcm90b2NvbCguLi5hcmdzKVxuICBjb25zdCBtb2R1bGU6IENvcmV1bU1vZHVsZSA9IG5ldyBDb3JldW1Nb2R1bGUoKVxuXG4gIHJldHVybiBjcmVhdGVWMFByb3RvY29sKHByb3RvY29sLCBtb2R1bGUpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVWMENvc21vc1Byb3RvY29sKFxuICAuLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVDb3Ntb3NQcm90b2NvbD5cbik6IFByb21pc2U8SUNvaW5Qcm90b2NvbEFkYXB0ZXI8Q29zbW9zUHJvdG9jb2w+PiB7XG4gIGNvbnN0IHByb3RvY29sOiBDb3Ntb3NQcm90b2NvbCA9IGNyZWF0ZUNvc21vc1Byb3RvY29sKC4uLmFyZ3MpXG4gIGNvbnN0IG1vZHVsZTogQ29zbW9zTW9kdWxlID0gbmV3IENvc21vc01vZHVsZSgpXG5cbiAgcmV0dXJuIGNyZWF0ZVYwUHJvdG9jb2wocHJvdG9jb2wsIG1vZHVsZSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwRXRoZXJldW1Qcm90b2NvbChcbiAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlRXRoZXJldW1Qcm90b2NvbD5cbik6IFByb21pc2U8SUNvaW5Qcm90b2NvbEFkYXB0ZXI8RXRoZXJldW1Qcm90b2NvbD4+IHtcbiAgY29uc3QgcHJvdG9jb2w6IEV0aGVyZXVtUHJvdG9jb2wgPSBjcmVhdGVFdGhlcmV1bVByb3RvY29sKC4uLmFyZ3MpXG4gIGNvbnN0IG1vZHVsZTogRXRoZXJldW1Nb2R1bGUgPSBuZXcgRXRoZXJldW1Nb2R1bGUoKVxuXG4gIHJldHVybiBjcmVhdGVWMFByb3RvY29sKHByb3RvY29sLCBtb2R1bGUpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVWMEV0aGVyZXVtRVJDMjBUb2tlbihcbiAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlRXRoZXJldW1FUkMyMFRva2VuPlxuKTogUHJvbWlzZTxJQ29pblN1YlByb3RvY29sQWRhcHRlcjxFdGhlcmV1bUVSQzIwVG9rZW4+PiB7XG4gIGNvbnN0IGVyYzIwVG9rZW46IEV0aGVyZXVtRVJDMjBUb2tlbiA9IGNyZWF0ZUV0aGVyZXVtRVJDMjBUb2tlbiguLi5hcmdzKVxuICBjb25zdCBldGhlcmV1bVByb3RvY29sOiBFdGhlcmV1bVByb3RvY29sID0gY3JlYXRlRXRoZXJldW1Qcm90b2NvbChhcmdzWzFdKVxuICBjb25zdCBtb2R1bGU6IEV0aGVyZXVtTW9kdWxlID0gbmV3IEV0aGVyZXVtTW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBFUkMyMFRva2VuKGVyYzIwVG9rZW4sIGV0aGVyZXVtUHJvdG9jb2wsIG1vZHVsZSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwR3JvZXN0bGNvaW5Qcm90b2NvbChcbiAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlR3JvZXN0bGNvaW5Qcm90b2NvbD5cbik6IFByb21pc2U8SUNvaW5Qcm90b2NvbEFkYXB0ZXI8R3JvZXN0bGNvaW5Qcm90b2NvbD4+IHtcbiAgY29uc3QgcHJvdG9jb2w6IEdyb2VzdGxjb2luUHJvdG9jb2wgPSBjcmVhdGVHcm9lc3RsY29pblByb3RvY29sKC4uLmFyZ3MpXG4gIGNvbnN0IG1vZHVsZTogR3JvZXN0bGNvaW5Nb2R1bGUgPSBuZXcgR3JvZXN0bGNvaW5Nb2R1bGUoKVxuXG4gIHJldHVybiBjcmVhdGVWMFByb3RvY29sKHByb3RvY29sLCBtb2R1bGUpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVWMElDUFByb3RvY29sKC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZUlDUFByb3RvY29sPik6IFByb21pc2U8SUNvaW5Qcm90b2NvbEFkYXB0ZXI8SUNQUHJvdG9jb2w+PiB7XG4gIGNvbnN0IHByb3RvY29sOiBJQ1BQcm90b2NvbCA9IGNyZWF0ZUlDUFByb3RvY29sKC4uLmFyZ3MpXG4gIGNvbnN0IG1vZHVsZTogSUNQTW9kdWxlID0gbmV3IElDUE1vZHVsZSgpXG5cbiAgcmV0dXJuIGNyZWF0ZVYwUHJvdG9jb2wocHJvdG9jb2wsIG1vZHVsZSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwTW9vbmJlYW1Qcm90b2NvbChcbiAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlTW9vbmJlYW1Qcm90b2NvbD5cbik6IFByb21pc2U8SUNvaW5Qcm90b2NvbEFkYXB0ZXI8TW9vbmJlYW1Qcm90b2NvbD4+IHtcbiAgY29uc3QgcHJvdG9jb2w6IE1vb25iZWFtUHJvdG9jb2wgPSBjcmVhdGVNb29uYmVhbVByb3RvY29sKC4uLmFyZ3MpXG4gIGNvbnN0IG1vZHVsZTogTW9vbmJlYW1Nb2R1bGUgPSBuZXcgTW9vbmJlYW1Nb2R1bGUoKVxuXG4gIHJldHVybiBjcmVhdGVWMFByb3RvY29sKHByb3RvY29sLCBtb2R1bGUpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVWME1vb25yaXZlclByb3RvY29sKFxuICAuLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVNb29ucml2ZXJQcm90b2NvbD5cbik6IFByb21pc2U8SUNvaW5Qcm90b2NvbEFkYXB0ZXI8TW9vbnJpdmVyUHJvdG9jb2w+PiB7XG4gIGNvbnN0IHByb3RvY29sOiBNb29ucml2ZXJQcm90b2NvbCA9IGNyZWF0ZU1vb25yaXZlclByb3RvY29sKC4uLmFyZ3MpXG4gIGNvbnN0IG1vZHVsZTogTW9vbmJlYW1Nb2R1bGUgPSBuZXcgTW9vbmJlYW1Nb2R1bGUoKVxuXG4gIHJldHVybiBjcmVhdGVWMFByb3RvY29sKHByb3RvY29sLCBtb2R1bGUpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVWME1vb25iYXNlUHJvdG9jb2woXG4gIC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZU1vb25iYXNlUHJvdG9jb2w+XG4pOiBQcm9taXNlPElDb2luUHJvdG9jb2xBZGFwdGVyPE1vb25iYXNlUHJvdG9jb2w+PiB7XG4gIGNvbnN0IHByb3RvY29sOiBNb29uYmFzZVByb3RvY29sID0gY3JlYXRlTW9vbmJhc2VQcm90b2NvbCguLi5hcmdzKVxuICBjb25zdCBtb2R1bGU6IE1vb25iZWFtTW9kdWxlID0gbmV3IE1vb25iZWFtTW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBQcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBPcHRpbWlzbVByb3RvY29sKFxuICAuLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVPcHRpbWlzbVByb3RvY29sPlxuKTogUHJvbWlzZTxJQ29pblByb3RvY29sQWRhcHRlcjxPcHRpbWlzbVByb3RvY29sPj4ge1xuICBjb25zdCBwcm90b2NvbDogT3B0aW1pc21Qcm90b2NvbCA9IGNyZWF0ZU9wdGltaXNtUHJvdG9jb2woLi4uYXJncylcbiAgY29uc3QgbW9kdWxlOiBPcHRpbWlzbU1vZHVsZSA9IG5ldyBPcHRpbWlzbU1vZHVsZSgpXG5cbiAgcmV0dXJuIGNyZWF0ZVYwUHJvdG9jb2wocHJvdG9jb2wsIG1vZHVsZSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwT3B0aW1pc21FUkMyMFRva2VuKFxuICAuLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVPcHRpbWlzbUVSQzIwVG9rZW4+XG4pOiBQcm9taXNlPElDb2luU3ViUHJvdG9jb2xBZGFwdGVyPE9wdGltaXNtRVJDMjBUb2tlbj4+IHtcbiAgY29uc3QgZXJjMjBUb2tlbjogT3B0aW1pc21FUkMyMFRva2VuID0gY3JlYXRlT3B0aW1pc21FUkMyMFRva2VuKC4uLmFyZ3MpXG4gIGNvbnN0IG9wdGltaXNtUHJvdG9jb2w6IE9wdGltaXNtUHJvdG9jb2wgPSBjcmVhdGVPcHRpbWlzbVByb3RvY29sKGFyZ3NbMV0pXG4gIGNvbnN0IG1vZHVsZTogT3B0aW1pc21Nb2R1bGUgPSBuZXcgT3B0aW1pc21Nb2R1bGUoKVxuXG4gIHJldHVybiBjcmVhdGVWMEVSQzIwVG9rZW4oZXJjMjBUb2tlbiwgb3B0aW1pc21Qcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBQb2xrYWRvdFByb3RvY29sKFxuICAuLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVQb2xrYWRvdFByb3RvY29sPlxuKTogUHJvbWlzZTxJQ29pblByb3RvY29sQWRhcHRlcjxQb2xrYWRvdFByb3RvY29sPj4ge1xuICBjb25zdCBwcm90b2NvbDogUG9sa2Fkb3RQcm90b2NvbCA9IGNyZWF0ZVBvbGthZG90UHJvdG9jb2woLi4uYXJncylcbiAgY29uc3QgbW9kdWxlOiBQb2xrYWRvdE1vZHVsZSA9IG5ldyBQb2xrYWRvdE1vZHVsZSgpXG5cbiAgcmV0dXJuIGNyZWF0ZVYwUHJvdG9jb2wocHJvdG9jb2wsIG1vZHVsZSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwS3VzYW1hUHJvdG9jb2woXG4gIC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZUt1c2FtYVByb3RvY29sPlxuKTogUHJvbWlzZTxJQ29pblByb3RvY29sQWRhcHRlcjxLdXNhbWFQcm90b2NvbD4+IHtcbiAgY29uc3QgcHJvdG9jb2w6IEt1c2FtYVByb3RvY29sID0gY3JlYXRlS3VzYW1hUHJvdG9jb2woLi4uYXJncylcbiAgY29uc3QgbW9kdWxlOiBQb2xrYWRvdE1vZHVsZSA9IG5ldyBQb2xrYWRvdE1vZHVsZSgpXG5cbiAgcmV0dXJuIGNyZWF0ZVYwUHJvdG9jb2wocHJvdG9jb2wsIG1vZHVsZSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVYwU29sYW5hUHJvdG9jb2woXG4gIC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZVNvbGFuYVByb3RvY29sPlxuKTogUHJvbWlzZTxJQ29pblByb3RvY29sQWRhcHRlcjxTb2xhbmFQcm90b2NvbD4+IHtcbiAgY29uc3QgcHJvdG9jb2w6IFNvbGFuYVByb3RvY29sID0gY3JlYXRlU29sYW5hUHJvdG9jb2woLi4uYXJncylcbiAgY29uc3QgbW9kdWxlOiBhbnkgPSBuZXcgU29sYW5hTW9kdWxlKClcblxuICByZXR1cm4gY3JlYXRlVjBQcm90b2NvbChwcm90b2NvbCwgbW9kdWxlKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVjBUZXpvc1Byb3RvY29sKC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZVRlem9zUHJvdG9jb2w+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
|
|
@@ -25,6 +25,9 @@ import { createMoonbeamProtocol, MoonbeamModule, createMoonriverProtocol, create
|
|
|
25
25
|
import { createOptimismProtocol, OptimismModule, createERC20Token as createERC20Token$1 } from '@wallfree-dev/optimism';
|
|
26
26
|
import { createPolkadotProtocol, PolkadotModule, createKusamaProtocol } from '@wallfree-dev/polkadot';
|
|
27
27
|
import { createSolanaProtocol, SolanaModule } from '@wallfree-dev/solana';
|
|
28
|
+
import { createTronProtocol, TronModule } from '@wallfree-dev/tron';
|
|
29
|
+
import { createAptosProtocol, AptosModule } from '@wallfree-dev/aptos';
|
|
30
|
+
import { createSuiProtocol, SuiModule } from '@wallfree-dev/sui';
|
|
28
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';
|
|
29
32
|
import BigNumber$1 from '@wallfree-dev/coinlib-core/dependencies/src/bignumber.js-9.0.0/bignumber';
|
|
30
33
|
import { AirGapTransactionStatus, AirGapTransactionWarningType } from '@wallfree-dev/coinlib-core/interfaces/IAirGapTransaction';
|
|
@@ -70,7 +73,6 @@ import * as i3$1 from '@ionic-native/diagnostic/ngx';
|
|
|
70
73
|
import { registerPlugin, WebPlugin } from '@capacitor/core';
|
|
71
74
|
import { AcurastModule } from '@wallfree-dev/acurast';
|
|
72
75
|
import { StellarModule } from '@wallfree-dev/stellar';
|
|
73
|
-
import { TronModule } from '@wallfree-dev/tron';
|
|
74
76
|
|
|
75
77
|
/* eslint-disable max-classes-per-file */
|
|
76
78
|
var ExposedPromiseStatus;
|
|
@@ -475,7 +477,7 @@ class ICoinProtocolAdapter {
|
|
|
475
477
|
const transactions = await this.protocolV1.getTransactionsForPublicKey(newPublicKey(publicKey, getBytesFormatV1FromV0(publicKey)), limit, cursor);
|
|
476
478
|
return {
|
|
477
479
|
transactions: await this.convertTransactionDetailsV1ToV0(transactions.transactions),
|
|
478
|
-
cursor
|
|
480
|
+
cursor: transactions.cursor ? transactions.cursor : cursor
|
|
479
481
|
};
|
|
480
482
|
}
|
|
481
483
|
async getTransactionsFromExtendedPublicKey(extendedPublicKey, limit, cursor) {
|
|
@@ -485,7 +487,7 @@ class ICoinProtocolAdapter {
|
|
|
485
487
|
const transactions = await this.protocolV1.getTransactionsForPublicKey(newExtendedPublicKey(extendedPublicKey, getBytesFormatV1FromV0(extendedPublicKey)), limit, cursor);
|
|
486
488
|
return {
|
|
487
489
|
transactions: await this.convertTransactionDetailsV1ToV0(transactions.transactions),
|
|
488
|
-
cursor
|
|
490
|
+
cursor: transactions.cursor ? transactions.cursor : cursor
|
|
489
491
|
};
|
|
490
492
|
}
|
|
491
493
|
async getTransactionsFromAddresses(addresses, limit, cursor) {
|
|
@@ -1334,6 +1336,21 @@ async function createV0SolanaProtocol(...args) {
|
|
|
1334
1336
|
const module = new SolanaModule();
|
|
1335
1337
|
return createV0Protocol(protocol, module);
|
|
1336
1338
|
}
|
|
1339
|
+
async function createV0TronProtocol(...args) {
|
|
1340
|
+
const protocol = createTronProtocol(...args);
|
|
1341
|
+
const module = new TronModule();
|
|
1342
|
+
return createV0Protocol(protocol, module);
|
|
1343
|
+
}
|
|
1344
|
+
async function createV0AptosProtocol(...args) {
|
|
1345
|
+
const protocol = createAptosProtocol(...args);
|
|
1346
|
+
const module = new AptosModule();
|
|
1347
|
+
return createV0Protocol(protocol, module);
|
|
1348
|
+
}
|
|
1349
|
+
async function createV0SuiProtocol(...args) {
|
|
1350
|
+
const protocol = createSuiProtocol(...args);
|
|
1351
|
+
const module = new SuiModule();
|
|
1352
|
+
return createV0Protocol(protocol, module);
|
|
1353
|
+
}
|
|
1337
1354
|
async function createV0TezosProtocol(...args) {
|
|
1338
1355
|
const protocol = createTezosProtocol(...args);
|
|
1339
1356
|
const module = new TezosModule();
|
|
@@ -1569,7 +1586,8 @@ async function getDefaultActiveProtocols() {
|
|
|
1569
1586
|
createV0BitcoinProtocol(),
|
|
1570
1587
|
createV0AstarProtocol(),
|
|
1571
1588
|
createV0ShidenProtocol(),
|
|
1572
|
-
createV0SolanaProtocol()
|
|
1589
|
+
createV0SolanaProtocol(),
|
|
1590
|
+
createV0AptosProtocol()
|
|
1573
1591
|
]);
|
|
1574
1592
|
}
|
|
1575
1593
|
async function getDefaultPassiveSubProtocols() {
|
|
@@ -6929,5 +6947,5 @@ var isolatedModules_plugin = /*#__PURE__*/Object.freeze({
|
|
|
6929
6947
|
* Generated bundle index. Do not edit.
|
|
6930
6948
|
*/
|
|
6931
6949
|
|
|
6932
|
-
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, 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, 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 };
|
|
6933
6951
|
//# sourceMappingURL=wallfree-dev-angular-core.mjs.map
|