@witnet/sdk 1.0.4 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env_witnet +6 -6
- package/LICENSE +21 -21
- package/README.md +103 -103
- package/dist/package.json +3 -4
- package/dist/src/bin/helpers.js +2 -2
- package/dist/src/index.js +1 -1
- package/dist/src/lib/crypto/account.d.ts +3 -1
- package/dist/src/lib/crypto/account.d.ts.map +1 -1
- package/dist/src/lib/crypto/account.js +7 -1
- package/dist/src/lib/crypto/coinbase.js +1 -1
- package/dist/src/lib/crypto/index.js +1 -1
- package/dist/src/lib/crypto/interfaces.d.ts +2 -0
- package/dist/src/lib/crypto/interfaces.d.ts.map +1 -1
- package/dist/src/lib/crypto/interfaces.js +1 -1
- package/dist/src/lib/crypto/payloads/DataRequestPayload.js +1 -1
- package/dist/src/lib/crypto/payloads/StakePayload.js +1 -1
- package/dist/src/lib/crypto/payloads/UnstakePayload.js +1 -1
- package/dist/src/lib/crypto/payloads/ValueTransferPayload.js +1 -1
- package/dist/src/lib/crypto/payloads.d.ts.map +1 -1
- package/dist/src/lib/crypto/payloads.js +12 -1
- package/dist/src/lib/crypto/signer.d.ts +1 -0
- package/dist/src/lib/crypto/signer.d.ts.map +1 -1
- package/dist/src/lib/crypto/signer.js +18 -1
- package/dist/src/lib/crypto/transmitters/DataRequests.js +1 -1
- package/dist/src/lib/crypto/transmitters/StakeDeposits.js +1 -1
- package/dist/src/lib/crypto/transmitters/StakeWithdrawals.js +1 -1
- package/dist/src/lib/crypto/transmitters/ValueTransfers.js +1 -1
- package/dist/src/lib/crypto/transmitters.d.ts +1 -1
- package/dist/src/lib/crypto/transmitters.d.ts.map +1 -1
- package/dist/src/lib/crypto/transmitters.js +4 -4
- package/dist/src/lib/crypto/types.d.ts.map +1 -1
- package/dist/src/lib/crypto/types.js +2 -1
- package/dist/src/lib/crypto/utils.js +1 -1
- package/dist/src/lib/crypto/wallet.d.ts +3 -1
- package/dist/src/lib/crypto/wallet.d.ts.map +1 -1
- package/dist/src/lib/crypto/wallet.js +10 -1
- package/dist/src/lib/index.js +1 -1
- package/dist/src/lib/radon/ccdr/eth.js +1 -1
- package/dist/src/lib/radon/ccdr/index.js +1 -1
- package/dist/src/lib/radon/ccdr/wit.js +1 -1
- package/dist/src/lib/radon/filters.js +1 -1
- package/dist/src/lib/radon/index.js +1 -1
- package/dist/src/lib/radon/reducers.js +1 -1
- package/dist/src/lib/radon/types.js +1 -1
- package/dist/src/lib/radon/utils.js +1 -1
- package/dist/src/lib/rpc/index.js +1 -1
- package/dist/src/lib/rpc/nodes.js +1 -1
- package/dist/src/lib/rpc/provider.js +1 -1
- package/dist/src/lib/rpc/types.d.ts +6 -4
- package/dist/src/lib/rpc/types.d.ts.map +1 -1
- package/dist/src/lib/rpc/types.js +1 -1
- package/dist/src/lib/types.d.ts +0 -1
- package/dist/src/lib/types.d.ts.map +1 -1
- package/dist/src/lib/types.js +1 -1
- package/dist/src/lib/utils.js +1 -1
- package/dist/witnet/assets/index.js +1 -1
- package/dist/witnet/assets/modals/index.js +1 -1
- package/dist/witnet/assets/modals/web3/eth.js +1 -1
- package/dist/witnet/assets/modals/web3/ipfs.js +1 -1
- package/dist/witnet/assets/modals/web3/wit.js +1 -1
- package/dist/witnet/assets/requests.js +1 -1
- package/package.json +3 -4
- package/src/bin/cli/history.js +31 -31
- package/src/bin/cli/inspect.js +405 -405
- package/src/bin/cli/network.js +594 -594
- package/src/bin/cli/nodes.js +364 -364
- package/src/bin/cli/radon.js +817 -815
- package/src/bin/cli/wallet.js +1121 -1117
- package/src/bin/helpers.js +840 -840
- package/src/bin/postinstall.js +9 -9
- package/src/bin/toolkit.js +295 -295
- package/witnet/assets/_index.js +8 -8
- package/witnet/assets/_requests.js +25 -25
- package/witnet/assets/_sources.js +36 -36
- package/witnet/assets/_templates.js +36 -36
- package/witnet/assets/index.js +4 -4
- package/witnet/assets/modals/index.js +9 -9
- package/witnet/assets/modals/web3/eth.js +29 -29
- package/witnet/assets/modals/web3/ipfs.js +19 -19
- package/witnet/assets/modals/web3/wit.js +21 -21
- package/witnet/assets/requests.js +95 -95
- package/dist/bin/helpers.d.ts +0 -88
- package/dist/bin/helpers.d.ts.map +0 -1
- package/dist/bin/helpers.js +0 -866
- package/dist/index.d.ts +0 -4
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -42
- package/dist/lib/crypto/account.d.ts +0 -18
- package/dist/lib/crypto/account.d.ts.map +0 -1
- package/dist/lib/crypto/account.js +0 -152
- package/dist/lib/crypto/coinbase.d.ts +0 -9
- package/dist/lib/crypto/coinbase.d.ts.map +0 -1
- package/dist/lib/crypto/coinbase.js +0 -39
- package/dist/lib/crypto/index.d.ts +0 -7
- package/dist/lib/crypto/index.d.ts.map +0 -1
- package/dist/lib/crypto/index.js +0 -28
- package/dist/lib/crypto/interfaces.d.ts +0 -80
- package/dist/lib/crypto/interfaces.d.ts.map +0 -1
- package/dist/lib/crypto/interfaces.js +0 -3
- package/dist/lib/crypto/payloads/DataRequestPayload.d.ts +0 -47
- package/dist/lib/crypto/payloads/DataRequestPayload.d.ts.map +0 -1
- package/dist/lib/crypto/payloads/DataRequestPayload.js +0 -384
- package/dist/lib/crypto/payloads/StakePayload.d.ts +0 -27
- package/dist/lib/crypto/payloads/StakePayload.d.ts.map +0 -1
- package/dist/lib/crypto/payloads/StakePayload.js +0 -184
- package/dist/lib/crypto/payloads/UnstakePayload.d.ts +0 -35
- package/dist/lib/crypto/payloads/UnstakePayload.d.ts.map +0 -1
- package/dist/lib/crypto/payloads/UnstakePayload.js +0 -244
- package/dist/lib/crypto/payloads/ValueTransferPayload.d.ts +0 -24
- package/dist/lib/crypto/payloads/ValueTransferPayload.d.ts.map +0 -1
- package/dist/lib/crypto/payloads/ValueTransferPayload.js +0 -182
- package/dist/lib/crypto/payloads.d.ts +0 -54
- package/dist/lib/crypto/payloads.d.ts.map +0 -1
- package/dist/lib/crypto/payloads.js +0 -224
- package/dist/lib/crypto/signer.d.ts +0 -26
- package/dist/lib/crypto/signer.d.ts.map +0 -1
- package/dist/lib/crypto/signer.js +0 -299
- package/dist/lib/crypto/transmitters/DataRequests.d.ts +0 -14
- package/dist/lib/crypto/transmitters/DataRequests.d.ts.map +0 -1
- package/dist/lib/crypto/transmitters/DataRequests.js +0 -62
- package/dist/lib/crypto/transmitters/StakeDeposits.d.ts +0 -11
- package/dist/lib/crypto/transmitters/StakeDeposits.d.ts.map +0 -1
- package/dist/lib/crypto/transmitters/StakeDeposits.js +0 -48
- package/dist/lib/crypto/transmitters/StakeWithdrawals.d.ts +0 -17
- package/dist/lib/crypto/transmitters/StakeWithdrawals.d.ts.map +0 -1
- package/dist/lib/crypto/transmitters/StakeWithdrawals.js +0 -115
- package/dist/lib/crypto/transmitters/ValueTransfers.d.ts +0 -10
- package/dist/lib/crypto/transmitters/ValueTransfers.d.ts.map +0 -1
- package/dist/lib/crypto/transmitters/ValueTransfers.js +0 -47
- package/dist/lib/crypto/transmitters.d.ts +0 -46
- package/dist/lib/crypto/transmitters.d.ts.map +0 -1
- package/dist/lib/crypto/transmitters.js +0 -506
- package/dist/lib/crypto/types.d.ts +0 -127
- package/dist/lib/crypto/types.d.ts.map +0 -1
- package/dist/lib/crypto/types.js +0 -261
- package/dist/lib/crypto/utils.d.ts +0 -10
- package/dist/lib/crypto/utils.d.ts.map +0 -1
- package/dist/lib/crypto/utils.js +0 -97
- package/dist/lib/crypto/wallet.d.ts +0 -26
- package/dist/lib/crypto/wallet.d.ts.map +0 -1
- package/dist/lib/crypto/wallet.js +0 -327
- package/dist/lib/helpers.d.ts +0 -90
- package/dist/lib/helpers.d.ts.map +0 -1
- package/dist/lib/helpers.js +0 -1031
- package/dist/lib/index.d.ts +0 -5
- package/dist/lib/index.d.ts.map +0 -1
- package/dist/lib/index.js +0 -21
- package/dist/lib/radon/artifacts.d.ts +0 -55
- package/dist/lib/radon/artifacts.d.ts.map +0 -1
- package/dist/lib/radon/artifacts.js +0 -347
- package/dist/lib/radon/ccdr/eth.d.ts +0 -100
- package/dist/lib/radon/ccdr/eth.d.ts.map +0 -1
- package/dist/lib/radon/ccdr/eth.js +0 -237
- package/dist/lib/radon/ccdr/index.d.ts +0 -34
- package/dist/lib/radon/ccdr/index.d.ts.map +0 -1
- package/dist/lib/radon/ccdr/index.js +0 -63
- package/dist/lib/radon/ccdr/wit.d.ts +0 -29
- package/dist/lib/radon/ccdr/wit.d.ts.map +0 -1
- package/dist/lib/radon/ccdr/wit.js +0 -60
- package/dist/lib/radon/filters.d.ts +0 -14
- package/dist/lib/radon/filters.d.ts.map +0 -1
- package/dist/lib/radon/filters.js +0 -47
- package/dist/lib/radon/index.d.ts +0 -36
- package/dist/lib/radon/index.d.ts.map +0 -1
- package/dist/lib/radon/index.js +0 -154
- package/dist/lib/radon/reducers.d.ts +0 -29
- package/dist/lib/radon/reducers.d.ts.map +0 -1
- package/dist/lib/radon/reducers.js +0 -101
- package/dist/lib/radon/retrievals.d.ts +0 -120
- package/dist/lib/radon/retrievals.d.ts.map +0 -1
- package/dist/lib/radon/retrievals.js +0 -358
- package/dist/lib/radon/sources.d.ts +0 -102
- package/dist/lib/radon/sources.d.ts.map +0 -1
- package/dist/lib/radon/sources.js +0 -294
- package/dist/lib/radon/types.d.ts +0 -521
- package/dist/lib/radon/types.d.ts.map +0 -1
- package/dist/lib/radon/types.js +0 -1066
- package/dist/lib/radon/utils.d.ts +0 -55
- package/dist/lib/radon/utils.d.ts.map +0 -1
- package/dist/lib/radon/utils.js +0 -181
- package/dist/lib/rpc/farm.d.ts +0 -66
- package/dist/lib/rpc/farm.d.ts.map +0 -1
- package/dist/lib/rpc/farm.js +0 -808
- package/dist/lib/rpc/index.d.ts +0 -3
- package/dist/lib/rpc/index.d.ts.map +0 -1
- package/dist/lib/rpc/index.js +0 -19
- package/dist/lib/rpc/node.d.ts +0 -38
- package/dist/lib/rpc/node.d.ts.map +0 -1
- package/dist/lib/rpc/node.js +0 -335
- package/dist/lib/rpc/nodes.d.ts +0 -40
- package/dist/lib/rpc/nodes.d.ts.map +0 -1
- package/dist/lib/rpc/nodes.js +0 -531
- package/dist/lib/rpc/provider.d.ts +0 -72
- package/dist/lib/rpc/provider.d.ts.map +0 -1
- package/dist/lib/rpc/provider.js +0 -402
- package/dist/lib/rpc/reporter.d.ts +0 -18
- package/dist/lib/rpc/reporter.d.ts.map +0 -1
- package/dist/lib/rpc/reporter.js +0 -99
- package/dist/lib/rpc/types.d.ts +0 -396
- package/dist/lib/rpc/types.d.ts.map +0 -1
- package/dist/lib/rpc/types.js +0 -81
- package/dist/lib/rpc/wallet.d.ts +0 -72
- package/dist/lib/rpc/wallet.d.ts.map +0 -1
- package/dist/lib/rpc/wallet.js +0 -41
- package/dist/lib/types.d.ts +0 -19
- package/dist/lib/types.d.ts.map +0 -1
- package/dist/lib/types.js +0 -7
- package/dist/lib/utils.d.ts +0 -5
- package/dist/lib/utils.d.ts.map +0 -1
- package/dist/lib/utils.js +0 -51
- package/dist/src/lib/rpc/reporter.d.ts +0 -17
- package/dist/src/lib/rpc/reporter.d.ts.map +0 -1
- package/dist/src/lib/rpc/reporter.js +0 -27
|
@@ -132,6 +132,12 @@ class Wallet {
|
|
|
132
132
|
get publicKey() {
|
|
133
133
|
return this.accounts.length > 0 ? this.accounts[0].publicKey : this.coinbase.publicKey;
|
|
134
134
|
}
|
|
135
|
+
get privateKey() {
|
|
136
|
+
return this.accounts.length > 0 ? this.accounts[0].privateKey : this.coinbase.privateKey;
|
|
137
|
+
}
|
|
138
|
+
authorizeEvmAddress(evmAddress) {
|
|
139
|
+
return this.accounts.length > 0 ? this.accounts[0].authorizeEvmAddress(evmAddress) : this.coinbase.authorizeEvmAddress(evmAddress);
|
|
140
|
+
}
|
|
135
141
|
addUtxos(...utxos) {
|
|
136
142
|
const included = [];
|
|
137
143
|
this.accounts.forEach(account => {
|
|
@@ -155,10 +161,13 @@ class Wallet {
|
|
|
155
161
|
return Promise
|
|
156
162
|
.all(this._accounts.map(async (acc) => {
|
|
157
163
|
const balance = await acc.getBalance();
|
|
164
|
+
// console.log(acc.index, acc.pkh, balance.unlocked);
|
|
158
165
|
return balance;
|
|
159
166
|
}))
|
|
160
167
|
.then((balances) => {
|
|
161
168
|
return balances.reduce((prev, curr) => {
|
|
169
|
+
// console.log("\nprev =>", prev.unlocked)
|
|
170
|
+
// console.log("curr =>", curr.unlocked)
|
|
162
171
|
return {
|
|
163
172
|
locked: prev.locked + curr.locked,
|
|
164
173
|
staked: prev.staked + curr.staked,
|
|
@@ -252,4 +261,4 @@ class Wallet {
|
|
|
252
261
|
}
|
|
253
262
|
}
|
|
254
263
|
exports.Wallet = Wallet;
|
|
255
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jcnlwdG8vd2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFnQztBQUVoQyxrREFBaUM7QUFDakMsb0RBQXNDO0FBQ3RDLE1BQU0sS0FBSyxHQUFHLElBQUEsZUFBWSxFQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRWhDLGdDQUF3QztBQUN4QyxvQ0FBd0Y7QUFDeEYsdUNBQW1DO0FBQ25DLHlDQUFxQztBQUVyQyxtQ0FBMkc7QUFFM0csTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO0FBRXZCLE1BQWEsTUFBTTtJQVNmOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BeUJwQjtRQUNHLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsNEJBQTRCLENBQUE7UUFDckQsSUFBSSxDQUFDLElBQUk7WUFBRSxNQUFNLEtBQUssQ0FBQywwREFBMEQsQ0FBQyxDQUFBO1FBQ2xGLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU07Z0JBQUUsTUFBTSxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQTtZQUN0RixPQUFPLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUNuRSxDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDekMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQ2pCLElBQVksRUFDWixPQXFCQztRQUVELE1BQU0sRUFBRSxTQUFT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WyJpbXBvcnQgKiBhcyB1dGlscyBmcm9tIFwiLi91dGlsc1wiXG5cbmltcG9ydCBCSVAzMkZhY3RvcnkgZnJvbSAnYmlwMzInO1xuaW1wb3J0ICogYXMgZWNjIGZyb20gJ3Rpbnktc2VjcDI1NmsxJztcbmNvbnN0IGJpcDMyID0gQklQMzJGYWN0b3J5KGVjYyk7XG5cbmltcG9ydCB7IEpzb25ScGNQcm92aWRlciB9IGZyb20gXCIuLi9ycGNcIlxuaW1wb3J0IHsgQmFsYW5jZSwgTmV0d29yaywgUXVlcnlTdGFrZXNPcmRlciwgU3Rha2VFbnRyeSwgU3Rha2VzT3JkZXJCeSB9IGZyb20gXCIuLi90eXBlc1wiXG5pbXBvcnQgeyBBY2NvdW50IH0gZnJvbSBcIi4vYWNjb3VudFwiXG5pbXBvcnQgeyBDb2luYmFzZSB9IGZyb20gXCIuL2NvaW5iYXNlXCJcbmltcG9ydCB7IElBY2NvdW50LCBJQklQMzIsIElDb2luYmFzZSwgSUpzb25ScGNQcm92aWRlciwgSVNpZ25lciwgSVdhbGxldCB9IGZyb20gXCIuL2ludGVyZmFjZXNcIlxuaW1wb3J0IHsgQ29pbnMsIFB1YmxpY0tleSwgUHVibGljS2V5SGFzaFN0cmluZywgVXR4bywgVXR4b0NhY2hlSW5mbywgVXR4b1NlbGVjdGlvblN0cmF0ZWd5IH0gZnJvbSBcIi4vdHlwZXNcIlxuXG5jb25zdCBERUZBVUxUX0dBUCA9IDIwO1xuXG5leHBvcnQgY2xhc3MgV2FsbGV0IGltcGxlbWVudHMgSVdhbGxldCB7XG4gICAgcHJvdGVjdGVkIHJvb3Q6IElCSVAzMjtcbiAgICBcbiAgICBwcm90ZWN0ZWQgX2FjY291bnRzOiBBcnJheTxJQWNjb3VudD4gPSBbXTtcblxuICAgIHB1YmxpYyByZWFkb25seSBjb2luYmFzZTogSUNvaW5iYXNlO1xuICAgIHB1YmxpYyByZWFkb25seSBwcm92aWRlcjogSUpzb25ScGNQcm92aWRlcjtcbiAgICBwdWJsaWMgc3RyYXRlZ3k6IFV0eG9TZWxlY3Rpb25TdHJhdGVneTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIFdhbGxldCBieSByZWFkaW5nIHRoZSBYUFJWIG1hc3RlciBrZXkgZnJvbSB0aGUgV0lUTkVUX1NES19XQUxMRVRfTUFTVEVSX0tFWSBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICAgKiBAcGFyYW0gc3BlY3MgV2FsbGV0IGNyZWF0aW9uIHBhcmFtZXRlcnMuXG4gICAgICovXG4gICAgc3RhdGljIGFzeW5jIGZyb21FbnYob3B0aW9uczoge1xuICAgICAgICAvKipcbiAgICAgICAgICogUGFzc3dvcmQgdG8gZGVjcnlwdCB0aGUgWFBSViBtYXN0ZXIga2V5IHJlYWQgZnJvbSBlbnZpcm9ubWVudCwgaW4gY2FzZSBpdCdzIGVuY3J5cHRlZC5cbiAgICAgICAgICovXG4gICAgICAgIHBhc3N3ZD86IHN0cmluZyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIE51bWJlciBvZiBjb25zZWN1dGl2ZSBhY2NvdW50cyB3aXRoIG5vIGZ1bmRzIGJlZm9yZSBzdG9wcGluZyBkZXJpdmF0aW9uIG9mIG5ldyBXYWxsZXQgYWNjb3VudHMuXG4gICAgICAgICAqL1xuICAgICAgICBnYXA/OiBudW1iZXIsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBNYXhpbXVtIG51bWJlciBvZiBhY2NvdW50cyB0byBkZXJpdmUuIFxuICAgICAgICAgKi9cbiAgICAgICAgbGltaXQ/OiBudW1iZXIsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTcGVjaWZpYyBXaXQvUlBDIHByb3ZpZGVyIHRvIHVzZSBmb3IgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgV2l0bmV0IG5ldHdvcmsuXG4gICAgICAgICAqL1xuICAgICAgICBwcm92aWRlcj86IElKc29uUnBjUHJvdmlkZXIsIFxuICAgICAgICAvKipcbiAgICAgICAgICogVVRYTyBzZWxlY3Rpb24gc3RyYXRlZ3kgd2hlbiBidWlsZGluZyB0cmFuc2FjdGlvbnMgb3V0IG9mIHRoaXMgd2FsbGV0IChkZWZhdWx0OiBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kuU21hbGxGaXJzdCkuXG4gICAgICAgICAqL1xuICAgICAgICBzdHJhdGVneT86IFV0eG9TZWxlY3Rpb25TdHJhdGVneSwgXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBPbmx5IGRlcml2ZSBhY2NvdW50cyB0aGF0IGhvbGQgc29tZSB1bmxvY2tlZCBiYWxhbmNlIG9mICRXSVQuXG4gICAgICAgICAqL1xuICAgICAgICBvbmx5V2l0aEZ1bmRzPzogYm9vbGVhbixcbiAgICB9KTogUHJvbWlzZTxXYWxsZXQ+IHtcbiAgICAgICAgY29uc3QgeHBydiA9IHByb2Nlc3MuZW52LldJVE5FVF9TREtfV0FMTEVUX01BU1RFUl9LRVlcbiAgICAgICAgaWYgKCF4cHJ2KSB0aHJvdyBFcnJvcihgV0lUTkVUX1NES19XQUxMRVRfTUFTVEVSX0tFWSBtdXN0IGJlIHNldCBvbiBlbnZpcm9ubWVudC5gKVxuICAgICAgICBpZiAoeHBydi5sZW5ndGggPiAxMTcpIHtcbiAgICAgICAgICAgIGlmICghb3B0aW9ucy5wYXNzd2QpIHRocm93IEVycm9yKGBNaXNzaW5nIHBhc3N3b3JkIGZvciBXSVRORVRfU0RLX1dBTExFVF9NQVNURVJfS0VZLmApXG4gICAgICAgICAgICByZXR1cm4gV2FsbGV0LmZyb21FbmNyeXB0ZWRYcHJ2KHhwcnYsIG9wdGlvbnM/LnBhc3N3ZCwgb3B0aW9ucylcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBXYWxsZXQuZnJvbVhwcnYoeHBydiwgb3B0aW9ucylcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYSBXYWxsZXQgYnkgdXNpbmcgcGFzc2VkIFhQUlYgbWFzdGVyIGtleS5cbiAgICAgKiBAcGFyYW0geHBydiBEZWNyeXB0ZWQgWFBSViBtYXN0ZXIga2V5IHN0cmluZy5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBXYWxsZXQgY3JlYXRpb24gcGFyYW1ldGVycy5cbiAgICAgKi9cbiAgICBzdGF0aWMgYXN5bmMgZnJvbVhwcnYoXG4gICAgICAgIHhwcnY6IHN0cmluZyxcbiAgICAgICAgb3B0aW9ucz86IHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogTnVtYmVyIG9mIGNvbnNlY3V0aXZlIGFjY291bnRzIHdpdGggbm8gZnVuZHMgYmVmb3JlIHN0b3BwaW5nIGRlcml2YXRpb24gb2YgbmV3IFdhbGxldCBhY2NvdW50cy5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgZ2FwPzogbnVtYmVyLFxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBNYXhpbXVtIG51bWJlciBvZiBhY2NvdW50cyB0byBkZXJpdmUuIFxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBsaW1pdD86IG51bWJlcixcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogU3BlY2lmaWMgV2l0L1JQQyBwcm92aWRlciB0byB1c2UgZm9yIGludGVyYWN0aW5nIHdpdGggdGhlIFdpdG5ldCBuZXR3b3JrLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBwcm92aWRlcj86IElKc29uUnBjUHJvdmlkZXIsIFxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBVVFhPIHNlbGVjdGlvbiBzdHJhdGVneSB3aGVuIGJ1aWxkaW5nIHRyYW5zYWN0aW9ucyBvdXQgb2YgdGhpcyB3YWxsZXQgKGRlZmF1bHQ6IFV0eG9TZWxlY3Rpb25TdHJhdGVneS5TbWFsbEZpcnN0KS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgc3RyYXRlZ3k/OiBVdHhvU2VsZWN0aW9uU3RyYXRlZ3ksIFxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBPbmx5IGRlcml2ZSBhY2NvdW50cyBob2xkaW5nIHNvbWUgJFdJVCBmdW5kcyAoZWl0aGVyIGxvY2tlZCwgc3Rha2VkIG9yIHVubG9ja2VkKS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgb25seVdpdGhGdW5kcz86IGJvb2xlYW4sXG4gICAgICAgIH1cbiAgICApOiBQcm9taXNlPFdhbGxldD4ge1xuICAgICAgICBjb25zdCB7IGNoYWluQ29kZSwgcHJpdmF0ZUtleSB9ID0gdXRpbHMucGFyc2VYcHJ2KHhwcnYpO1xuICAgICAgICBjb25zdCByb290ID0gYmlwMzIuZnJvbVByaXZhdGVLZXkoQnVmZmVyLmZyb20ocHJpdmF0ZUtleSksIEJ1ZmZlci5mcm9tKGNoYWluQ29kZSkpO1xuICAgICAgICBjb25zdCBwcm92aWRlciA9IG9wdGlvbnM/LnByb3ZpZGVyIHx8IChhd2FpdCBKc29uUnBjUHJvdmlkZXIuZnJvbUVudigpKVxuICAgICAgICBhd2FpdCBwcm92aWRlci5jb25zdGFudHMoKVxuICAgICAgICBjb25zdCB3YWxsZXQgPSBuZXcgV2FsbGV0KHJvb3QsIHByb3ZpZGVyLCBvcHRpb25zPy5zdHJhdGVneSlcbiAgICAgICAgaWYgKG9wdGlvbnM/Lm9ubHlXaXRoRnVuZHMpIHtcbiAgICAgICAgICAgIGF3YWl0IHdhbGxldC5leHBsb3JlQWNjb3VudHMob3B0aW9ucz8ubGltaXQgfHwgMCwgb3B0aW9ucz8uZ2FwKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgd2FsbGV0LmRlcml2ZUFjY291bnRzKG9wdGlvbnM/LmxpbWl0IHx8IDEpXG4gICAgICAgIH1cbiAgICAgICAgLy8gbG9hZCB1cCB1dHhvcyBjYWNoZVxuICAgICAgICBhd2FpdCB3YWxsZXQuZ2V0VXR4b3ModHJ1ZSlcbiAgICAgICAgcmV0dXJuIHdhbGxldFxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIFdhbGxldCBieSB1c2luZyBwYXNzZWQgWFBSViBtYXN0ZXIga2V5LlxuICAgICAqIEBwYXJhbSB4cHJ2IEVuY3J5cHRlZCBYUFJWIG1hc3RlciBrZXkgc3RyaW5nLlxuICAgICAqIEBwYXJhbSBwYXNzd2QgUGFzc3dvcmQgdG8gZGVjaXBoZXIgdGhlIFhQUlYgbWFzdGVyIGtleS5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBXYWxsZXQgY3JlYXRpb24gcGFyYW1ldGVycy5cbiAgICAgKi9cbiAgICBzdGF0aWMgYXN5bmMgZnJvbUVuY3J5cHRlZFhwcnYoXG4gICAgICAgIHhwcnY6IHN0cmluZyxcbiAgICAgICAgcGFzc3dkOiBzdHJpbmcsXG4gICAgICAgIG9wdGlvbnM/OiB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIE51bWJlciBvZiBjb25zZWN1dGl2ZSBhY2NvdW50cyB3aXRoIG5vIGZ1bmRzIGJlZm9yZSBzdG9wcGluZyBkZXJpdmF0aW9uIG9mIG5ldyBXYWxsZXQgYWNjb3VudHMuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGdhcD86IG51bWJlcixcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogTWF4aW11bSBudW1iZXIgb2YgYWNjb3VudHMgdG8gZGVyaXZlLiBcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgbGltaXQ/OiBudW1iZXIsXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFNwZWNpZmljIFdpdC9SUEMgcHJvdmlkZXIgdG8gdXNlIGZvciBpbnRlcmFjdGluZyB3aXRoIHRoZSBXaXRuZXQgbmV0d29yay5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgcHJvdmlkZXI/OiBJSnNvblJwY1Byb3ZpZGVyLCBcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogVVRYTyBzZWxlY3Rpb24gc3RyYXRlZ3kgd2hlbiBidWlsZGluZyB0cmFuc2FjdGlvbnMgb3V0IG9mIHRoaXMgd2FsbGV0IChkZWZhdWx0OiBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kuU21hbGxGaXJzdCkuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHN0cmF0ZWd5PzogVXR4b1NlbGVjdGlvblN0cmF0ZWd5LCBcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogT25seSBkZXJpdmUgYWNjb3VudHMgaG9sZGluZyBzb21lICRXSVQgZnVuZHMgKGVpdGhlciBsb2NrZWQsIHN0YWtlZCBvciB1bmxvY2tlZCkuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIG9ubHlXaXRoRnVuZHM/OiBib29sZWFuLFxuICAgICAgICB9XG4gICAgKTogUHJvbWlzZTxXYWxsZXQ+IHtcbiAgICAgICAgcmV0dXJuIFdhbGxldC5mcm9tWHBydih1dGlscy5kZWNpcGhlclhwcnYoeHBydiwgcGFzc3dkKSwgb3B0aW9ucylcbiAgICB9XG4gICAgXG4gICAgY29uc3RydWN0b3Iocm9vdDogSUJJUDMyLCBwcm92aWRlcjogSUpzb25ScGNQcm92aWRlciwgc3RyYXRlZ3k/OiBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kpIHtcbiAgICAgICAgdGhpcy5wcm92aWRlciA9IHByb3ZpZGVyXG4gICAgICAgIHRoaXMuY29pbmJhc2UgPSBuZXcgQ29pbmJhc2Uocm9vdCwgcHJvdmlkZXIsIHN0cmF0ZWd5KVxuICAgICAgICB0aGlzLnJvb3QgPSByb290XG4gICAgICAgIHRoaXMuc3RyYXRlZ3kgPSBzdHJhdGVneSB8fCBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kuU21hbGxGaXJzdFxuICAgICAgICB0aGlzLmRlcml2ZUFjY291bnRzKDEpXG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhY2NvdW50cygpOiBBcnJheTxJQWNjb3VudD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWNjb3VudHNcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNhY2hlSW5mbygpOiBVdHhvQ2FjaGVJbmZvIHtcbiAgICAgICAgY29uc3QgaW5mbzogVXR4b0NhY2hlSW5mbyA9IHsgZXhwZW5kYWJsZTogMG4sIHNpemU6IDAsIHRpbWVsb2NrOiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUiB9XG4gICAgICAgIHRoaXMuYWNjb3VudHM/LmZvckVhY2goYWNjb3VudCA9PiB7XG4gICAgICAgICAgICBjb25zdCBhY2NvdW50SW5mbyA9IGFjY291bnQuY2FjaGVJbmZvXG4gICAgICAgICAgICBpbmZvLmV4cGVuZGFibGUgKz0gYWNjb3VudEluZm8uZXhwZW5kYWJsZVxuICAgICAgICAgICAgaW5mby5zaXplICs9IGFjY291bnRJbmZvLnNpemVcbiAgICAgICAgICAgIGlmIChhY2NvdW50SW5mby50aW1lbG9jayAhPT0gMCAmJiBhY2NvdW50SW5mby50aW1lbG9jayA8IGluZm8udGltZWxvY2spIHtcbiAgICAgICAgICAgICAgICBpbmZvLnRpbWVsb2NrID0gYWNjb3VudEluZm8udGltZWxvY2tcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgaWYgKGluZm8udGltZWxvY2sgPT09IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKSBpbmZvLnRpbWVsb2NrID0gMDtcbiAgICAgICAgcmV0dXJuIGluZm87XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjaGFuZ2VQa2goKTogUHVibGljS2V5SGFzaFN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjY291bnRzLmxlbmd0aCA+IDAgPyB0aGlzLmFjY291bnRzWzBdLmNoYW5nZVBraCA6IHRoaXMuY29pbmJhc2UucGtoXG4gICAgfVxuXG4gICAgcHVibGljIGdldCBuZXR3b3JrKCk6IE5ldHdvcmsgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm92aWRlci5uZXR3b3JrXG4gICAgfVxuXG4gICAgcHVibGljIGdldCBwa2goKTogUHVibGljS2V5SGFzaFN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjY291bnRzLmxlbmd0aCA+IDAgPyB0aGlzLmFjY291bnRzWzBdLnBraCA6IHRoaXMuY29pbmJhc2UucGtoXG4gICAgfVxuXG4gICAgcHVibGljIGdldCBwdWJsaWNLZXkoKTogUHVibGljS2V5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWNjb3VudHMubGVuZ3RoID4gMCA/IHRoaXMuYWNjb3VudHNbMF0ucHVibGljS2V5IDogdGhpcy5jb2luYmFzZS5wdWJsaWNLZXlcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkVXR4b3MoLi4udXR4b3M6IEFycmF5PFV0eG8+KTogeyBleGNsdWRlZDogQXJyYXk8VXR4bz4sIGluY2x1ZGVkOiBBcnJheTxVdHhvPiB9IHtcbiAgICAgICAgY29uc3QgaW5jbHVkZWQ6IEFycmF5PFV0eG8+ID0gW11cbiAgICAgICAgdGhpcy5hY2NvdW50cy5mb3JFYWNoKGFjY291bnQgPT4ge1xuICAgICAgICAgICAgY29uc3QgX3V0eG9zID0gYWNjb3VudC5hZGRVdHhvcyguLi51dHhvcylcbiAgICAgICAgICAgIHV0eG9zID0gX3V0eG9zLmV4Y2x1ZGVkXG4gICAgICAgICAgICBpbmNsdWRlZC5wdXNoKC4uLl91dHhvcy5pbmNsdWRlZClcbiAgICAgICAgfSlcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGV4Y2x1ZGVkOiB1dHhvcyxcbiAgICAgICAgICAgIGluY2x1ZGVkXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY29uc3VtZVV0eG9zKC4uLnV0eG9zOiBBcnJheTxVdHhvPik6IEFycmF5PFV0eG8+IHtcbiAgICAgICAgdGhpcy5hY2NvdW50cy5mb3JFYWNoKGFjY291bnQgPT4ge1xuICAgICAgICAgICAgdXR4b3MgPSBhY2NvdW50LmNvbnN1bWVVdHhvcyguLi51dHhvcylcbiAgICAgICAgfSlcbiAgICAgICAgcmV0dXJuIHV0eG9zXG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldEJhbGFuY2UoKTogUHJvbWlzZTxCYWxhbmNlPiB7XG4gICAgICAgIGlmICh0aGlzLl9hY2NvdW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZVxuICAgICAgICAgICAgICAgIC5hbGwodGhpcy5fYWNjb3VudHMubWFwKGFzeW5jIChhY2M6IElBY2NvdW50KSA9PiB7IFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBiYWxhbmNlID0gYXdhaXQgYWNjLmdldEJhbGFuY2UoKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYmFsYW5jZSB9KSlcbiAgICAgICAgICAgICAgICAudGhlbigoYmFsYW5jZXM6IEFycmF5PEJhbGFuY2U+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBiYWxhbmNlcy5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9ja2VkOiBwcmV2LmxvY2tlZCArIGN1cnIubG9ja2VkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWtlZDogcHJldi5zdGFrZWQgKyBjdXJyLnN0YWtlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmxvY2tlZDogcHJldi51bmxvY2tlZCArIGN1cnIudW5sb2NrZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sIHsgbG9ja2VkOiAwbiwgc3Rha2VkOiAwbiwgdW5sb2NrZWQ6IDBuIH0pXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvaW5iYXNlLmdldEJhbGFuY2UoKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldERlbGVnYXRlZXMob3JkZXI/OiBRdWVyeVN0YWtlc09yZGVyLCBsZWZ0Sm9pbiA9IHRydWUpOiBQcm9taXNlPEFycmF5PFN0YWtlRW50cnk+PiB7XG4gICAgICAgIGNvbnN0IHJlY29yZHM6IEFycmF5PFN0YWtlRW50cnk+ID0gW11cbiAgICAgICAgcmVjb3Jkcy5wdXNoKC4uLmF3YWl0IHRoaXMuY29pbmJhc2UuZ2V0RGVsZWdhdGVlcyhvcmRlcikpXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKHRoaXMuX2FjY291bnRzLm1hcChhY2NvdW50ID0+IGFjY291bnQuZ2V0RGVsZWdhdGVlcyhvcmRlciwgbGVmdEpvaW4pLnRoZW4oZW50cmllcyA9PiByZWNvcmRzLnB1c2goLi4uZW50cmllcykpKSlcbiAgICAgICAgaWYgKG9yZGVyKSB7XG4gICAgICAgICAgICBjb25zdCByZXZlcnNlID0gb3JkZXI/LnJldmVyc2UgPyAoKzEpIDogKC0xKVxuICAgICAgICAgICAgcmV0dXJuIHJlY29yZHMuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAob3JkZXIuYnkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBTdGFrZXNPcmRlckJ5LkNvaW5zOiByZXR1cm4gKChhLnZhbHVlLmNvaW5zIDwgYi52YWx1ZS5jb2lucykgPyAxIDogKChhLnZhbHVlLmNvaW5zID4gYi52YWx1ZS5jb2lucykgPyAtMSA6IDApKSAqIHJldmVyc2U7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgU3Rha2VzT3JkZXJCeS5NaW5pbmc6IHJldHVybiAoYi52YWx1ZS5lcG9jaHMubWluaW5nIC0gYS52YWx1ZS5lcG9jaHMubWluaW5nKSAqIHJldmVyc2U7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgU3Rha2VzT3JkZXJCeS5XaXRuZXNzaW5nOiByZXR1cm4gKGIudmFsdWUuZXBvY2hzLndpdG5lc3NpbmcgLSBhLnZhbHVlLmVwb2Nocy53aXRuZXNzaW5nKSAqIHJldmVyc2U7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgU3Rha2VzT3JkZXJCeS5Ob25jZTogcmV0dXJuIChiLnZhbHVlLm5vbmNlIC0gYS52YWx1ZS5ub25jZSkgKiByZXZlcnNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlY29yZHNcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0VXR4b3MocmVsb2FkPzogYm9vbGVhbik6IFByb21pc2U8QXJyYXk8VXR4bz4+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2VcbiAgICAgICAgICAgIC5hbGwodGhpcy5hY2NvdW50cy5tYXAoYWNjb3VudCA9PiBhY2NvdW50LmdldFV0eG9zKHJlbG9hZCkpKVxuICAgICAgICAgICAgLnRoZW4oYXN5bmMgKHV0eG9zczogQXJyYXk8QXJyYXk8VXR4bz4+KSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gdXR4b3NzLnB1c2goYXdhaXQgdGhpcy5jb2luYmFzZS5nZXRVdHhvcyhyZWxvYWQpKVxuICAgICAgICAgICAgICAgIHJldHVybiB1dHhvc3MuZmxhdCgpXG4gICAgICAgICAgICB9KVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzZWxlY3RVdHhvcyhzcGVjcz86IHtcbiAgICAgICAgdmFsdWU/OiBDb2lucyxcbiAgICAgICAgcmVsb2FkPzogYm9vbGVhblxuICAgICAgICBzdHJhdGVneT86IFV0eG9TZWxlY3Rpb25TdHJhdGVneVxuICAgIH0pOiBQcm9taXNlPEFycmF5PFV0eG8+PiB7XG4gICAgICAgIHJldHVybiB0aGlzXG4gICAgICAgICAgICAuZ2V0VXR4b3Moc3BlY3M/LnJlbG9hZClcbiAgICAgICAgICAgIC50aGVuKHV0eG9zID0+IHV0aWxzLnNlbGVjdFV0eG9zKHsgdXR4b3MsIHZhbHVlOiBzcGVjcz8udmFsdWUsIHN0cmF0ZWd5OiBzcGVjcz8uc3RyYXRlZ3kgfHwgdGhpcy5zdHJhdGVneSB9KSlcbiAgICB9XG5cbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gLS0tIElXYWxsZXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGRlcml2ZUFjY291bnRzKGxpbWl0OiBudW1iZXIpOiBBcnJheTxJQWNjb3VudD4ge1xuICAgICAgICBpZiAobGltaXQgPiB0aGlzLl9hY2NvdW50cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0SW5kZXggPSB0aGlzLl9hY2NvdW50cy5sZW5ndGggPiAwID8gdGhpcy5hY2NvdW50c1t0aGlzLmFjY291bnRzLmxlbmd0aCAtIDFdLmluZGV4ICsgMSA6IDBcbiAgICAgICAgICAgIGxpbWl0ID0gbGltaXQgLSB0aGlzLl9hY2NvdW50cy5sZW5ndGhcbiAgICAgICAgICAgIGZvciAobGV0IGl4ID0gMDsgaXggPCBsaW1pdDsgaXggKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9hY2NvdW50cy5wdXNoKG5ldyBBY2NvdW50KFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvb3QsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvdmlkZXIsXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0SW5kZXggKyBpeCxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdHJhdGVneVxuICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjY291bnRzXG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGV4cGxvcmVBY2NvdW50cyhsaW1pdCA9IDAsIGdhcCA9IERFRkFVTFRfR0FQKTogUHJvbWlzZTxBcnJheTxJQWNjb3VudD4+IHtcbiAgICAgICAgaWYgKGxpbWl0ID09PSAwIHx8IGxpbWl0ID4gdGhpcy5hY2NvdW50cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGxhc3RJbmRleCA9ICh4OiBBcnJheTxJQWNjb3VudD4pID0+IHgubGVuZ3RoID4gMCA/IHhbeC5sZW5ndGggLSAxXS5pbmRleCArIDEgOiAwXG4gICAgICAgICAgICBjb25zdCBzdGFydEluZGV4ID0gbGFzdEluZGV4KHRoaXMuYWNjb3VudHMpXG4gICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IHN0YXJ0SW5kZXg7IGluZGV4IDwgbGFzdEluZGV4KHRoaXMuYWNjb3VudHMpICsgZ2FwOyBpbmRleCArKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFjY291bnQgPSBuZXcgQWNjb3VudCh0aGlzLnJvb3QsIHRoaXMucHJvdmlkZXIsIGluZGV4LCB0aGlzLnN0cmF0ZWd5KVxuICAgICAgICAgICAgICAgIGlmICh1dGlscy50b3RhbENvaW5zKGF3YWl0IGFjY291bnQuZ2V0QmFsYW5jZSgpKS5wZWRyb3MgPiAwbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjY291bnRzLnB1c2goYWNjb3VudClcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxpbWl0ICYmIHRoaXMuYWNjb3VudHMubGVuZ3RoID49IGxpbWl0KSBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjY291bnRzXG4gICAgfVxuXG4gICAgcHVibGljIGdldEFjY291bnQocGtoOiBQdWJsaWNLZXlIYXNoU3RyaW5nLCBnYXA/OiBudW1iZXIpOiBJQWNjb3VudCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGxldCBhY2NvdW50ID0gdGhpcy5fYWNjb3VudHMuZmluZChhY2NvdW50ID0+IGFjY291bnQuaW50ZXJuYWwucGtoID09PSBwa2ggfHwgYWNjb3VudC5wa2ggPT09IHBraClcbiAgICAgICAgaWYgKCFhY2NvdW50KSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgKGdhcCB8fCBERUZBVUxUX0dBUCk7IGluZGV4ICsrKSB7XG4gICAgICAgICAgICAgICAgYWNjb3VudCA9IG5ldyBBY2NvdW50KHRoaXMucm9vdCwgdGhpcy5wcm92aWRlciwgaW5kZXgsIHRoaXMuc3RyYXRlZ3kpXG4gICAgICAgICAgICAgICAgaWYgKGFjY291bnQucGtoID09PSBwa2ggfHwgYWNjb3VudC5pbnRlcm5hbC5wa2ggPT09IHBraCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9hY2NvdW50cy5wdXNoKGFjY291bnQpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhY2NvdW50XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGFjY291bnRcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTaWduZXIocGtoPzogUHVibGljS2V5SGFzaFN0cmluZywgZ2FwPzogbnVtYmVyKTogSVNpZ25lciB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICghcGtoKSByZXR1cm4gdGhpcy5hY2NvdW50c1swXT8uZ2V0U2lnbmVyKCkgfHwgdGhpcy5jb2luYmFzZS5nZXRTaWduZXIocGtoKTtcbiAgICAgICAgY29uc3QgYWNjb3VudCA9IHRoaXMuZ2V0QWNjb3VudChwa2gsIGdhcClcbiAgICAgICAgcmV0dXJuIGFjY291bnQ/LmdldFNpZ25lcihwa2gpIHx8IHRoaXMuY29pbmJhc2UuZ2V0U2lnbmVyKHBraClcbiAgICB9XG59XG4iXX0=
|
|
264
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jcnlwdG8vd2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFnQztBQUVoQyxrREFBaUM7QUFDakMsb0RBQXNDO0FBQ3RDLE1BQU0sS0FBSyxHQUFHLElBQUEsZUFBWSxFQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRWhDLGdDQUF3QztBQUN4QyxvQ0FBbUc7QUFDbkcsdUNBQW1DO0FBQ25DLHlDQUFxQztBQUVyQyxtQ0FBMkc7QUFFM0csTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO0FBRXZCLE1BQWEsTUFBTTtJQVNmOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BeUJwQjtRQUNHLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsNEJBQTRCLENBQUE7UUFDckQsSUFBSSxDQUFDLElBQUk7WUFBRSxNQUFNLEtBQUssQ0FBQywwREFBMEQsQ0FBQyxDQUFBO1FBQ2xGLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU07Z0JBQUUsTUFBTSxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQTtZQUN0RixPQUFPLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUNuRSxDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDekMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQ2pCLElBQVksRUFDWixPQXFCQztRQUVELE1BQU0sRUFBRSxTQUFT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Q0FBQTtRQUNwQixDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sT0FBTyxDQUFBO1FBQ2xCLENBQUM7SUFDTCxDQUFDO0lBRU0sU0FBUyxDQUFDLEdBQXlCLEVBQUUsR0FBWTtRQUNwRCxJQUFJLENBQUMsR0FBRztZQUFFLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQTtRQUN6QyxPQUFPLE9BQU8sRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDbEUsQ0FBQztDQUNKO0FBMVRELHdCQTBUQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0aWxzIGZyb20gXCIuL3V0aWxzXCJcclxuXHJcbmltcG9ydCBCSVAzMkZhY3RvcnkgZnJvbSAnYmlwMzInO1xyXG5pbXBvcnQgKiBhcyBlY2MgZnJvbSAndGlueS1zZWNwMjU2azEnO1xyXG5jb25zdCBiaXAzMiA9IEJJUDMyRmFjdG9yeShlY2MpO1xyXG5cclxuaW1wb3J0IHsgSnNvblJwY1Byb3ZpZGVyIH0gZnJvbSBcIi4uL3JwY1wiXHJcbmltcG9ydCB7IEJhbGFuY2UsIEhleFN0cmluZywgTmV0d29yaywgUXVlcnlTdGFrZXNPcmRlciwgU3Rha2VFbnRyeSwgU3Rha2VzT3JkZXJCeSB9IGZyb20gXCIuLi90eXBlc1wiXHJcbmltcG9ydCB7IEFjY291bnQgfSBmcm9tIFwiLi9hY2NvdW50XCJcclxuaW1wb3J0IHsgQ29pbmJhc2UgfSBmcm9tIFwiLi9jb2luYmFzZVwiXHJcbmltcG9ydCB7IElBY2NvdW50LCBJQklQMzIsIElDb2luYmFzZSwgSUpzb25ScGNQcm92aWRlciwgSVNpZ25lciwgSVdhbGxldCB9IGZyb20gXCIuL2ludGVyZmFjZXNcIlxyXG5pbXBvcnQgeyBDb2lucywgUHVibGljS2V5LCBQdWJsaWNLZXlIYXNoU3RyaW5nLCBVdHhvLCBVdHhvQ2FjaGVJbmZvLCBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kgfSBmcm9tIFwiLi90eXBlc1wiXHJcblxyXG5jb25zdCBERUZBVUxUX0dBUCA9IDIwO1xyXG5cclxuZXhwb3J0IGNsYXNzIFdhbGxldCBpbXBsZW1lbnRzIElXYWxsZXQge1xyXG4gICAgcHJvdGVjdGVkIHJvb3Q6IElCSVAzMjtcclxuICAgIFxyXG4gICAgcHJvdGVjdGVkIF9hY2NvdW50czogQXJyYXk8SUFjY291bnQ+ID0gW107XHJcblxyXG4gICAgcHVibGljIHJlYWRvbmx5IGNvaW5iYXNlOiBJQ29pbmJhc2U7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgcHJvdmlkZXI6IElKc29uUnBjUHJvdmlkZXI7XHJcbiAgICBwdWJsaWMgc3RyYXRlZ3k6IFV0eG9TZWxlY3Rpb25TdHJhdGVneTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZSBhIFdhbGxldCBieSByZWFkaW5nIHRoZSBYUFJWIG1hc3RlciBrZXkgZnJvbSB0aGUgV0lUTkVUX1NES19XQUxMRVRfTUFTVEVSX0tFWSBlbnZpcm9ubWVudCB2YXJpYWJsZS5cclxuICAgICAqIEBwYXJhbSBzcGVjcyBXYWxsZXQgY3JlYXRpb24gcGFyYW1ldGVycy5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGFzeW5jIGZyb21FbnYob3B0aW9uczoge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFBhc3N3b3JkIHRvIGRlY3J5cHQgdGhlIFhQUlYgbWFzdGVyIGtleSByZWFkIGZyb20gZW52aXJvbm1lbnQsIGluIGNhc2UgaXQncyBlbmNyeXB0ZWQuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcGFzc3dkPzogc3RyaW5nLFxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIE51bWJlciBvZiBjb25zZWN1dGl2ZSBhY2NvdW50cyB3aXRoIG5vIGZ1bmRzIGJlZm9yZSBzdG9wcGluZyBkZXJpdmF0aW9uIG9mIG5ldyBXYWxsZXQgYWNjb3VudHMuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgZ2FwPzogbnVtYmVyLFxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIE1heGltdW0gbnVtYmVyIG9mIGFjY291bnRzIHRvIGRlcml2ZS4gXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgbGltaXQ/OiBudW1iZXIsXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogU3BlY2lmaWMgV2l0L1JQQyBwcm92aWRlciB0byB1c2UgZm9yIGludGVyYWN0aW5nIHdpdGggdGhlIFdpdG5ldCBuZXR3b3JrLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHByb3ZpZGVyPzogSUpzb25ScGNQcm92aWRlciwgXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVVRYTyBzZWxlY3Rpb24gc3RyYXRlZ3kgd2hlbiBidWlsZGluZyB0cmFuc2FjdGlvbnMgb3V0IG9mIHRoaXMgd2FsbGV0IChkZWZhdWx0OiBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kuU21hbGxGaXJzdCkuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgc3RyYXRlZ3k/OiBVdHhvU2VsZWN0aW9uU3RyYXRlZ3ksIFxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIE9ubHkgZGVyaXZlIGFjY291bnRzIHRoYXQgaG9sZCBzb21lIHVubG9ja2VkIGJhbGFuY2Ugb2YgJFdJVC5cclxuICAgICAgICAgKi9cclxuICAgICAgICBvbmx5V2l0aEZ1bmRzPzogYm9vbGVhbixcclxuICAgIH0pOiBQcm9taXNlPFdhbGxldD4ge1xyXG4gICAgICAgIGNvbnN0IHhwcnYgPSBwcm9jZXNzLmVudi5XSVRORVRfU0RLX1dBTExFVF9NQVNURVJfS0VZXHJcbiAgICAgICAgaWYgKCF4cHJ2KSB0aHJvdyBFcnJvcihgV0lUTkVUX1NES19XQUxMRVRfTUFTVEVSX0tFWSBtdXN0IGJlIHNldCBvbiBlbnZpcm9ubWVudC5gKVxyXG4gICAgICAgIGlmICh4cHJ2Lmxlbmd0aCA+IDExNykge1xyXG4gICAgICAgICAgICBpZiAoIW9wdGlvbnMucGFzc3dkKSB0aHJvdyBFcnJvcihgTWlzc2luZyBwYXNzd29yZCBmb3IgV0lUTkVUX1NES19XQUxMRVRfTUFTVEVSX0tFWS5gKVxyXG4gICAgICAgICAgICByZXR1cm4gV2FsbGV0LmZyb21FbmNyeXB0ZWRYcHJ2KHhwcnYsIG9wdGlvbnM/LnBhc3N3ZCwgb3B0aW9ucylcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gV2FsbGV0LmZyb21YcHJ2KHhwcnYsIG9wdGlvbnMpXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZSBhIFdhbGxldCBieSB1c2luZyBwYXNzZWQgWFBSViBtYXN0ZXIga2V5LlxyXG4gICAgICogQHBhcmFtIHhwcnYgRGVjcnlwdGVkIFhQUlYgbWFzdGVyIGtleSBzdHJpbmcuXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBXYWxsZXQgY3JlYXRpb24gcGFyYW1ldGVycy5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGFzeW5jIGZyb21YcHJ2KFxyXG4gICAgICAgIHhwcnY6IHN0cmluZyxcclxuICAgICAgICBvcHRpb25zPzoge1xyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogTnVtYmVyIG9mIGNvbnNlY3V0aXZlIGFjY291bnRzIHdpdGggbm8gZnVuZHMgYmVmb3JlIHN0b3BwaW5nIGRlcml2YXRpb24gb2YgbmV3IFdhbGxldCBhY2NvdW50cy5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGdhcD86IG51bWJlcixcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIE1heGltdW0gbnVtYmVyIG9mIGFjY291bnRzIHRvIGRlcml2ZS4gXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBsaW1pdD86IG51bWJlcixcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIFNwZWNpZmljIFdpdC9SUEMgcHJvdmlkZXIgdG8gdXNlIGZvciBpbnRlcmFjdGluZyB3aXRoIHRoZSBXaXRuZXQgbmV0d29yay5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIHByb3ZpZGVyPzogSUpzb25ScGNQcm92aWRlciwgXHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBVVFhPIHNlbGVjdGlvbiBzdHJhdGVneSB3aGVuIGJ1aWxkaW5nIHRyYW5zYWN0aW9ucyBvdXQgb2YgdGhpcyB3YWxsZXQgKGRlZmF1bHQ6IFV0eG9TZWxlY3Rpb25TdHJhdGVneS5TbWFsbEZpcnN0KS5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIHN0cmF0ZWd5PzogVXR4b1NlbGVjdGlvblN0cmF0ZWd5LCBcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIE9ubHkgZGVyaXZlIGFjY291bnRzIGhvbGRpbmcgc29tZSAkV0lUIGZ1bmRzIChlaXRoZXIgbG9ja2VkLCBzdGFrZWQgb3IgdW5sb2NrZWQpLlxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgb25seVdpdGhGdW5kcz86IGJvb2xlYW4sXHJcbiAgICAgICAgfVxyXG4gICAgKTogUHJvbWlzZTxXYWxsZXQ+IHtcclxuICAgICAgICBjb25zdCB7IGNoYWluQ29kZSwgcHJpdmF0ZUtleSB9ID0gdXRpbHMucGFyc2VYcHJ2KHhwcnYpO1xyXG4gICAgICAgIGNvbnN0IHJvb3QgPSBiaXAzMi5mcm9tUHJpdmF0ZUtleShCdWZmZXIuZnJvbShwcml2YXRlS2V5KSwgQnVmZmVyLmZyb20oY2hhaW5Db2RlKSk7XHJcbiAgICAgICAgY29uc3QgcHJvdmlkZXIgPSBvcHRpb25zPy5wcm92aWRlciB8fCAoYXdhaXQgSnNvblJwY1Byb3ZpZGVyLmZyb21FbnYoKSlcclxuICAgICAgICBhd2FpdCBwcm92aWRlci5jb25zdGFudHMoKVxyXG4gICAgICAgIGNvbnN0IHdhbGxldCA9IG5ldyBXYWxsZXQocm9vdCwgcHJvdmlkZXIsIG9wdGlvbnM/LnN0cmF0ZWd5KVxyXG4gICAgICAgIGlmIChvcHRpb25zPy5vbmx5V2l0aEZ1bmRzKSB7XHJcbiAgICAgICAgICAgIGF3YWl0IHdhbGxldC5leHBsb3JlQWNjb3VudHMob3B0aW9ucz8ubGltaXQgfHwgMCwgb3B0aW9ucz8uZ2FwKVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHdhbGxldC5kZXJpdmVBY2NvdW50cyhvcHRpb25zPy5saW1pdCB8fCAxKVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBsb2FkIHVwIHV0eG9zIGNhY2hlXHJcbiAgICAgICAgYXdhaXQgd2FsbGV0LmdldFV0eG9zKHRydWUpXHJcbiAgICAgICAgcmV0dXJuIHdhbGxldFxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlIGEgV2FsbGV0IGJ5IHVzaW5nIHBhc3NlZCBYUFJWIG1hc3RlciBrZXkuXHJcbiAgICAgKiBAcGFyYW0geHBydiBFbmNyeXB0ZWQgWFBSViBtYXN0ZXIga2V5IHN0cmluZy5cclxuICAgICAqIEBwYXJhbSBwYXNzd2QgUGFzc3dvcmQgdG8gZGVjaXBoZXIgdGhlIFhQUlYgbWFzdGVyIGtleS5cclxuICAgICAqIEBwYXJhbSBvcHRpb25zIFdhbGxldCBjcmVhdGlvbiBwYXJhbWV0ZXJzLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgYXN5bmMgZnJvbUVuY3J5cHRlZFhwcnYoXHJcbiAgICAgICAgeHBydjogc3RyaW5nLFxyXG4gICAgICAgIHBhc3N3ZDogc3RyaW5nLFxyXG4gICAgICAgIG9wdGlvbnM/OiB7XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBOdW1iZXIgb2YgY29uc2VjdXRpdmUgYWNjb3VudHMgd2l0aCBubyBmdW5kcyBiZWZvcmUgc3RvcHBpbmcgZGVyaXZhdGlvbiBvZiBuZXcgV2FsbGV0IGFjY291bnRzLlxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgZ2FwPzogbnVtYmVyLFxyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogTWF4aW11bSBudW1iZXIgb2YgYWNjb3VudHMgdG8gZGVyaXZlLiBcclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGxpbWl0PzogbnVtYmVyLFxyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogU3BlY2lmaWMgV2l0L1JQQyBwcm92aWRlciB0byB1c2UgZm9yIGludGVyYWN0aW5nIHdpdGggdGhlIFdpdG5ldCBuZXR3b3JrLlxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgcHJvdmlkZXI/OiBJSnNvblJwY1Byb3ZpZGVyLCBcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIFVUWE8gc2VsZWN0aW9uIHN0cmF0ZWd5IHdoZW4gYnVpbGRpbmcgdHJhbnNhY3Rpb25zIG91dCBvZiB0aGlzIHdhbGxldCAoZGVmYXVsdDogVXR4b1NlbGVjdGlvblN0cmF0ZWd5LlNtYWxsRmlyc3QpLlxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgc3RyYXRlZ3k/OiBVdHhvU2VsZWN0aW9uU3RyYXRlZ3ksIFxyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogT25seSBkZXJpdmUgYWNjb3VudHMgaG9sZGluZyBzb21lICRXSVQgZnVuZHMgKGVpdGhlciBsb2NrZWQsIHN0YWtlZCBvciB1bmxvY2tlZCkuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBvbmx5V2l0aEZ1bmRzPzogYm9vbGVhbixcclxuICAgICAgICB9XHJcbiAgICApOiBQcm9taXNlPFdhbGxldD4ge1xyXG4gICAgICAgIHJldHVybiBXYWxsZXQuZnJvbVhwcnYodXRpbHMuZGVjaXBoZXJYcHJ2KHhwcnYsIHBhc3N3ZCksIG9wdGlvbnMpXHJcbiAgICB9XHJcbiAgICBcclxuICAgIGNvbnN0cnVjdG9yKHJvb3Q6IElCSVAzMiwgcHJvdmlkZXI6IElKc29uUnBjUHJvdmlkZXIsIHN0cmF0ZWd5PzogVXR4b1NlbGVjdGlvblN0cmF0ZWd5KSB7XHJcbiAgICAgICAgdGhpcy5wcm92aWRlciA9IHByb3ZpZGVyXHJcbiAgICAgICAgdGhpcy5jb2luYmFzZSA9IG5ldyBDb2luYmFzZShyb290LCBwcm92aWRlciwgc3RyYXRlZ3kpXHJcbiAgICAgICAgdGhpcy5yb290ID0gcm9vdFxyXG4gICAgICAgIHRoaXMuc3RyYXRlZ3kgPSBzdHJhdGVneSB8fCBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kuU21hbGxGaXJzdFxyXG4gICAgICAgIHRoaXMuZGVyaXZlQWNjb3VudHMoMSlcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGFjY291bnRzKCk6IEFycmF5PElBY2NvdW50PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjY291bnRzXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBjYWNoZUluZm8oKTogVXR4b0NhY2hlSW5mbyB7XHJcbiAgICAgICAgY29uc3QgaW5mbzogVXR4b0NhY2hlSW5mbyA9IHsgZXhwZW5kYWJsZTogMG4sIHNpemU6IDAsIHRpbWVsb2NrOiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUiB9XHJcbiAgICAgICAgdGhpcy5hY2NvdW50cz8uZm9yRWFjaChhY2NvdW50ID0+IHtcclxuICAgICAgICAgICAgY29uc3QgYWNjb3VudEluZm8gPSBhY2NvdW50LmNhY2hlSW5mb1xyXG4gICAgICAgICAgICBpbmZvLmV4cGVuZGFibGUgKz0gYWNjb3VudEluZm8uZXhwZW5kYWJsZVxyXG4gICAgICAgICAgICBpbmZvLnNpemUgKz0gYWNjb3VudEluZm8uc2l6ZVxyXG4gICAgICAgICAgICBpZiAoYWNjb3VudEluZm8udGltZWxvY2sgIT09IDAgJiYgYWNjb3VudEluZm8udGltZWxvY2sgPCBpbmZvLnRpbWVsb2NrKSB7XHJcbiAgICAgICAgICAgICAgICBpbmZvLnRpbWVsb2NrID0gYWNjb3VudEluZm8udGltZWxvY2tcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgaWYgKGluZm8udGltZWxvY2sgPT09IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKSBpbmZvLnRpbWVsb2NrID0gMDtcclxuICAgICAgICByZXR1cm4gaW5mbztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGNoYW5nZVBraCgpOiBQdWJsaWNLZXlIYXNoU3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hY2NvdW50cy5sZW5ndGggPiAwID8gdGhpcy5hY2NvdW50c1swXS5jaGFuZ2VQa2ggOiB0aGlzLmNvaW5iYXNlLnBraFxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgbmV0d29yaygpOiBOZXR3b3JrIHwgdW5kZWZpbmVkIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wcm92aWRlci5uZXR3b3JrXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBwa2goKTogUHVibGljS2V5SGFzaFN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWNjb3VudHMubGVuZ3RoID4gMCA/IHRoaXMuYWNjb3VudHNbMF0ucGtoIDogdGhpcy5jb2luYmFzZS5wa2hcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHB1YmxpY0tleSgpOiBQdWJsaWNLZXkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFjY291bnRzLmxlbmd0aCA+IDAgPyB0aGlzLmFjY291bnRzWzBdLnB1YmxpY0tleSA6IHRoaXMuY29pbmJhc2UucHVibGljS2V5XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBwcml2YXRlS2V5KCk6IEhleFN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWNjb3VudHMubGVuZ3RoID4gMCA/IHRoaXMuYWNjb3VudHNbMF0ucHJpdmF0ZUtleSA6IHRoaXMuY29pbmJhc2UucHJpdmF0ZUtleVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhdXRob3JpemVFdm1BZGRyZXNzKGV2bUFkZHJlc3M6IEhleFN0cmluZyk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWNjb3VudHMubGVuZ3RoID4gMCA/IHRoaXMuYWNjb3VudHNbMF0uYXV0aG9yaXplRXZtQWRkcmVzcyhldm1BZGRyZXNzKSA6IHRoaXMuY29pbmJhc2UuYXV0aG9yaXplRXZtQWRkcmVzcyhldm1BZGRyZXNzKVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhZGRVdHhvcyguLi51dHhvczogQXJyYXk8VXR4bz4pOiB7IGV4Y2x1ZGVkOiBBcnJheTxVdHhvPiwgaW5jbHVkZWQ6IEFycmF5PFV0eG8+IH0ge1xyXG4gICAgICAgIGNvbnN0IGluY2x1ZGVkOiBBcnJheTxVdHhvPiA9IFtdXHJcbiAgICAgICAgdGhpcy5hY2NvdW50cy5mb3JFYWNoKGFjY291bnQgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBfdXR4b3MgPSBhY2NvdW50LmFkZFV0eG9zKC4uLnV0eG9zKVxyXG4gICAgICAgICAgICB1dHhvcyA9IF91dHhvcy5leGNsdWRlZFxyXG4gICAgICAgICAgICBpbmNsdWRlZC5wdXNoKC4uLl91dHhvcy5pbmNsdWRlZClcclxuICAgICAgICB9KVxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGV4Y2x1ZGVkOiB1dHhvcyxcclxuICAgICAgICAgICAgaW5jbHVkZWRcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNvbnN1bWVVdHhvcyguLi51dHhvczogQXJyYXk8VXR4bz4pOiBBcnJheTxVdHhvPiB7XHJcbiAgICAgICAgdGhpcy5hY2NvdW50cy5mb3JFYWNoKGFjY291bnQgPT4ge1xyXG4gICAgICAgICAgICB1dHhvcyA9IGFjY291bnQuY29uc3VtZVV0eG9zKC4uLnV0eG9zKVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgcmV0dXJuIHV0eG9zXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGdldEJhbGFuY2UoKTogUHJvbWlzZTxCYWxhbmNlPiB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2FjY291bnRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIFByb21pc2VcclxuICAgICAgICAgICAgICAgIC5hbGwodGhpcy5fYWNjb3VudHMubWFwKGFzeW5jIChhY2M6IElBY2NvdW50KSA9PiB7IFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJhbGFuY2UgPSBhd2FpdCBhY2MuZ2V0QmFsYW5jZSgpXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coYWNjLmluZGV4LCBhY2MucGtoLCBiYWxhbmNlLnVubG9ja2VkKTsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJhbGFuY2UgfSkpXHJcbiAgICAgICAgICAgICAgICAudGhlbigoYmFsYW5jZXM6IEFycmF5PEJhbGFuY2U+KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJhbGFuY2VzLnJlZHVjZSgocHJldiwgY3VycikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIlxcbnByZXYgPT5cIiwgcHJldi51bmxvY2tlZClcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJjdXJyID0+XCIsIGN1cnIudW5sb2NrZWQpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NrZWQ6IHByZXYubG9ja2VkICsgY3Vyci5sb2NrZWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFrZWQ6IHByZXYuc3Rha2VkICsgY3Vyci5zdGFrZWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmxvY2tlZDogcHJldi51bmxvY2tlZCArIGN1cnIudW5sb2NrZWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9LCB7IGxvY2tlZDogMG4sIHN0YWtlZDogMG4sIHVubG9ja2VkOiAwbiB9KVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb2luYmFzZS5nZXRCYWxhbmNlKClcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGdldERlbGVnYXRlZXMob3JkZXI/OiBRdWVyeVN0YWtlc09yZGVyLCBsZWZ0Sm9pbiA9IHRydWUpOiBQcm9taXNlPEFycmF5PFN0YWtlRW50cnk+PiB7XHJcbiAgICAgICAgY29uc3QgcmVjb3JkczogQXJyYXk8U3Rha2VFbnRyeT4gPSBbXVxyXG4gICAgICAgIHJlY29yZHMucHVzaCguLi5hd2FpdCB0aGlzLmNvaW5iYXNlLmdldERlbGVnYXRlZXMob3JkZXIpKVxyXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKHRoaXMuX2FjY291bnRzLm1hcChhY2NvdW50ID0+IGFjY291bnQuZ2V0RGVsZWdhdGVlcyhvcmRlciwgbGVmdEpvaW4pLnRoZW4oZW50cmllcyA9PiByZWNvcmRzLnB1c2goLi4uZW50cmllcykpKSlcclxuICAgICAgICBpZiAob3JkZXIpIHtcclxuICAgICAgICAgICAgY29uc3QgcmV2ZXJzZSA9IG9yZGVyPy5yZXZlcnNlID8gKCsxKSA6ICgtMSlcclxuICAgICAgICAgICAgcmV0dXJuIHJlY29yZHMuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICAgICAgc3dpdGNoIChvcmRlci5ieSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgU3Rha2VzT3JkZXJCeS5Db2luczogcmV0dXJuICgoYS52YWx1ZS5jb2lucyA8IGIudmFsdWUuY29pbnMpID8gMSA6ICgoYS52YWx1ZS5jb2lucyA+IGIudmFsdWUuY29pbnMpID8gLTEgOiAwKSkgKiByZXZlcnNlO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgU3Rha2VzT3JkZXJCeS5NaW5pbmc6IHJldHVybiAoYi52YWx1ZS5lcG9jaHMubWluaW5nIC0gYS52YWx1ZS5lcG9jaHMubWluaW5nKSAqIHJldmVyc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBTdGFrZXNPcmRlckJ5LldpdG5lc3Npbmc6IHJldHVybiAoYi52YWx1ZS5lcG9jaHMud2l0bmVzc2luZyAtIGEudmFsdWUuZXBvY2hzLndpdG5lc3NpbmcpICogcmV2ZXJzZTtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIFN0YWtlc09yZGVyQnkuTm9uY2U6IHJldHVybiAoYi52YWx1ZS5ub25jZSAtIGEudmFsdWUubm9uY2UpICogcmV2ZXJzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlY29yZHNcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgZ2V0VXR4b3MocmVsb2FkPzogYm9vbGVhbik6IFByb21pc2U8QXJyYXk8VXR4bz4+IHtcclxuICAgICAgICByZXR1cm4gUHJvbWlzZVxyXG4gICAgICAgICAgICAuYWxsKHRoaXMuYWNjb3VudHMubWFwKGFjY291bnQgPT4gYWNjb3VudC5nZXRVdHhvcyhyZWxvYWQpKSlcclxuICAgICAgICAgICAgLnRoZW4oYXN5bmMgKHV0eG9zczogQXJyYXk8QXJyYXk8VXR4bz4+KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAvLyB1dHhvc3MucHVzaChhd2FpdCB0aGlzLmNvaW5iYXNlLmdldFV0eG9zKHJlbG9hZCkpXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdXR4b3NzLmZsYXQoKVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBzZWxlY3RVdHhvcyhzcGVjcz86IHtcclxuICAgICAgICB2YWx1ZT86IENvaW5zLFxyXG4gICAgICAgIHJlbG9hZD86IGJvb2xlYW5cclxuICAgICAgICBzdHJhdGVneT86IFV0eG9TZWxlY3Rpb25TdHJhdGVneVxyXG4gICAgfSk6IFByb21pc2U8QXJyYXk8VXR4bz4+IHtcclxuICAgICAgICByZXR1cm4gdGhpc1xyXG4gICAgICAgICAgICAuZ2V0VXR4b3Moc3BlY3M/LnJlbG9hZClcclxuICAgICAgICAgICAgLnRoZW4odXR4b3MgPT4gdXRpbHMuc2VsZWN0VXR4b3MoeyB1dHhvcywgdmFsdWU6IHNwZWNzPy52YWx1ZSwgc3RyYXRlZ3k6IHNwZWNzPy5zdHJhdGVneSB8fCB0aGlzLnN0cmF0ZWd5IH0pKVxyXG4gICAgfVxyXG5cclxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgIC8vIC0tLSBJV2FsbGV0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiAgICBwdWJsaWMgZGVyaXZlQWNjb3VudHMobGltaXQ6IG51bWJlcik6IEFycmF5PElBY2NvdW50PiB7XHJcbiAgICAgICAgaWYgKGxpbWl0ID4gdGhpcy5fYWNjb3VudHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0SW5kZXggPSB0aGlzLl9hY2NvdW50cy5sZW5ndGggPiAwID8gdGhpcy5hY2NvdW50c1t0aGlzLmFjY291bnRzLmxlbmd0aCAtIDFdLmluZGV4ICsgMSA6IDBcclxuICAgICAgICAgICAgbGltaXQgPSBsaW1pdCAtIHRoaXMuX2FjY291bnRzLmxlbmd0aFxyXG4gICAgICAgICAgICBmb3IgKGxldCBpeCA9IDA7IGl4IDwgbGltaXQ7IGl4ICsrKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9hY2NvdW50cy5wdXNoKG5ldyBBY2NvdW50KFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm9vdCxcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3ZpZGVyLFxyXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0SW5kZXggKyBpeCxcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0cmF0ZWd5XHJcbiAgICAgICAgICAgICAgICApKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLl9hY2NvdW50c1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBleHBsb3JlQWNjb3VudHMobGltaXQgPSAwLCBnYXAgPSBERUZBVUxUX0dBUCk6IFByb21pc2U8QXJyYXk8SUFjY291bnQ+PiB7XHJcbiAgICAgICAgaWYgKGxpbWl0ID09PSAwIHx8IGxpbWl0ID4gdGhpcy5hY2NvdW50cy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgY29uc3QgbGFzdEluZGV4ID0gKHg6IEFycmF5PElBY2NvdW50PikgPT4geC5sZW5ndGggPiAwID8geFt4Lmxlbmd0aCAtIDFdLmluZGV4ICsgMSA6IDBcclxuICAgICAgICAgICAgY29uc3Qgc3RhcnRJbmRleCA9IGxhc3RJbmRleCh0aGlzLmFjY291bnRzKVxyXG4gICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IHN0YXJ0SW5kZXg7IGluZGV4IDwgbGFzdEluZGV4KHRoaXMuYWNjb3VudHMpICsgZ2FwOyBpbmRleCArKykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYWNjb3VudCA9IG5ldyBBY2NvdW50KHRoaXMucm9vdCwgdGhpcy5wcm92aWRlciwgaW5kZXgsIHRoaXMuc3RyYXRlZ3kpXHJcbiAgICAgICAgICAgICAgICBpZiAodXRpbHMudG90YWxDb2lucyhhd2FpdCBhY2NvdW50LmdldEJhbGFuY2UoKSkucGVkcm9zID4gMG4pIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjY291bnRzLnB1c2goYWNjb3VudClcclxuICAgICAgICAgICAgICAgICAgICBpZiAobGltaXQgJiYgdGhpcy5hY2NvdW50cy5sZW5ndGggPj0gbGltaXQpIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLl9hY2NvdW50c1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRBY2NvdW50KHBraDogUHVibGljS2V5SGFzaFN0cmluZywgZ2FwPzogbnVtYmVyKTogSUFjY291bnQgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIGxldCBhY2NvdW50ID0gdGhpcy5fYWNjb3VudHMuZmluZChhY2NvdW50ID0+IGFjY291bnQuaW50ZXJuYWwucGtoID09PSBwa2ggfHwgYWNjb3VudC5wa2ggPT09IHBraClcclxuICAgICAgICBpZiAoIWFjY291bnQpIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IChnYXAgfHwgREVGQVVMVF9HQVApOyBpbmRleCArKykge1xyXG4gICAgICAgICAgICAgICAgYWNjb3VudCA9IG5ldyBBY2NvdW50KHRoaXMucm9vdCwgdGhpcy5wcm92aWRlciwgaW5kZXgsIHRoaXMuc3RyYXRlZ3kpXHJcbiAgICAgICAgICAgICAgICBpZiAoYWNjb3VudC5wa2ggPT09IHBraCB8fCBhY2NvdW50LmludGVybmFsLnBraCA9PT0gcGtoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYWNjb3VudHMucHVzaChhY2NvdW50KVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhY2NvdW50XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBhY2NvdW50XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRTaWduZXIocGtoPzogUHVibGljS2V5SGFzaFN0cmluZywgZ2FwPzogbnVtYmVyKTogSVNpZ25lciB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgaWYgKCFwa2gpIHJldHVybiB0aGlzLmFjY291bnRzWzBdPy5nZXRTaWduZXIoKSB8fCB0aGlzLmNvaW5iYXNlLmdldFNpZ25lcihwa2gpO1xyXG4gICAgICAgIGNvbnN0IGFjY291bnQgPSB0aGlzLmdldEFjY291bnQocGtoLCBnYXApXHJcbiAgICAgICAgcmV0dXJuIGFjY291bnQ/LmdldFNpZ25lcihwa2gpIHx8IHRoaXMuY29pbmJhc2UuZ2V0U2lnbmVyKHBraClcclxuICAgIH1cclxufVxyXG4iXX0=
|
package/dist/src/lib/index.js
CHANGED
|
@@ -41,4 +41,4 @@ __exportStar(require("./crypto"), exports);
|
|
|
41
41
|
exports.Radon = __importStar(require("./radon"));
|
|
42
42
|
__exportStar(require("./rpc"), exports);
|
|
43
43
|
__exportStar(require("./types"), exports);
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUF3QjtBQUN4QixpREFBZ0M7QUFDaEMsd0NBQXFCO0FBQ3JCLDBDQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2NyeXB0b1wiXHJcbmV4cG9ydCAqIGFzIFJhZG9uIGZyb20gXCIuL3JhZG9uXCJcclxuZXhwb3J0ICogZnJvbSBcIi4vcnBjXCJcclxuZXhwb3J0ICogZnJvbSBcIi4vdHlwZXNcIlxyXG4iXX0=
|
|
@@ -269,4 +269,4 @@ const sendRawTransaction = (data) => {
|
|
|
269
269
|
};
|
|
270
270
|
};
|
|
271
271
|
exports.sendRawTransaction = sendRawTransaction;
|
|
272
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9yYWRvbi9jY2RyL2V0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrREFLNkI7QUFnQjdCLFNBQVMsWUFBWSxDQUFDLEtBQW1CO0lBQ3JDLE9BQU8sQ0FDSCxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssS0FBSyxVQUFVLElBQUksS0FBSyxLQUFLLFdBQVcsSUFBSSxLQUFLLEtBQUssU0FBUztXQUNuRixPQUFPLEtBQUssS0FBSyxRQUFRO1dBQ3pCLElBQUEsNkJBQW1CLEVBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztXQUM5QixJQUFBLG9CQUFVLEVBQUMsS0FBSyxDQUFDLENBQzNCLENBQUM7QUFDTixDQUFDO0FBRUQ7O0dBRUc7QUFDSSxNQUFNLFdBQVcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQztBQUFwRCxRQUFBLFdBQVcsZUFBeUM7QUFFakU7Ozs7O0dBS0c7QUFDSSxNQUFNLElBQUksR0FBRyxDQUFDLEVBT3BCLEVBQUUsRUFBRTtJQUNELElBQUEsMkJBQWlCLEVBQUMsRUFBRSxDQUFDLENBQUE7SUFDckIsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBQSw2QkFBbUIsRUFBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBQSxvQkFBVSxFQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzFFLE1BQU0sSUFBSSxTQUFTLENBQUMsc0NBQXNDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBQ0QsSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFBLDZCQUFtQixFQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFB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QVUsRUFBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQzFELE1BQU0sSUFBSSxTQUFTLENBQUMsK0RBQStELENBQUMsQ0FBQztJQUN6RixDQUFDO0lBQ0QsT0FBTztRQUNILE1BQU0sRUFBRSwyQkFBMkI7UUFDbkMsTUFBTSxFQUFFLENBQUUsTUFBTSxDQUFFO0tBQ3JCLENBQUM7QUFDTixDQUFDLENBQUM7QUFUVyxRQUFBLHFCQUFxQix5QkFTaEM7QUFFRjs7O0dBR0c7QUFDSSxNQUFNLGtCQUFrQixHQUFHLENBQUMsSUFBc0IsRUFBRSxFQUFFO0lBQ3pELElBQUEsMkJBQWlCLEVBQUMsSUFBSSxDQUFDLENBQUE7SUFDdkIsSUFBSSxDQUFDLElBQUEscUJBQVcsRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUEsb0JBQVUsRUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzFDLE1BQU0sSUFBSSxTQUFTLENBQUMsNkRBQTZELENBQUMsQ0FBQztJQUN2RixDQUFDO0lBQ0QsT0FBTztRQUNILE1BQU0sRUFBRSx3QkFBd0I7UUFDaEMsTUFBTSxFQUFFLENBQUUsSUFBSSxDQUFFO0tBQ25CLENBQUM7QUFDTixDQUFDLENBQUM7QUFUVyxRQUFBLGtCQUFrQixzQkFTN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIGNoZWNrUnBjV2lsZGNhcmRzLFxuICAgIGlzSGV4U3RyaW5nLFxuICAgIGlzSGV4U3RyaW5nT2ZMZW5ndGgsXG4gICAgaXNXaWxkY2FyZCxcbn0gZnJvbSBcIi4uLy4uLy4uL2Jpbi9oZWxwZXJzXCJcblxuaW1wb3J0IHsgXG4gICAgLy8gQ3Jvc3NDaGFpblJQQywgXG4gICAgQmxvY2tOdW1iZXIsIFxuICAgIEJ5dGVzLCBcbiAgICBCeXRlczMyLCBcbiAgICBIZXhTdHJpbmcsXG4gICAgSGV4U3RyaW5nT2ZMZW5ndGgsXG4gICAgV2lsZGNhcmQsXG59IGZyb20gXCIuXCI7XG5cbmV4cG9ydCB0eXBlIEV0aEFkZHJlc3MgPSBIZXhTdHJpbmdPZkxlbmd0aDw0MD47XG5leHBvcnQgdHlwZSBFdGhCbG9ja0hlYWQgPSBCbG9ja051bWJlciB8IEV0aEJsb2NrVGFnIHwgV2lsZGNhcmQ7XG5leHBvcnQgdHlwZSBFdGhCbG9ja1RhZyA9IFwibGF0ZXN0XCIgfCBcImVhcmxpZXN0XCIgfCBcInBlbmRpbmdcIiB8IFwiZmluYWxpemVkXCIgXG5cbmZ1bmN0aW9uIF9pc0Jsb2NrSGVhZChibG9jazogRXRoQmxvY2tIZWFkKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgYmxvY2sgPT09IFwibGF0ZXN0XCIgfHwgYmxvY2sgPT09IFwiZWFybGllc3RcIiB8fCBibG9jayA9PT0gXCJmaW5hbGl6ZWRcIiB8fCBibG9jayA9PT0gXCJwZW5kaW5nXCJcbiAgICAgICAgICAgIHx8IHR5cGVvZiBibG9jayA9PT0gJ251bWJlcidcbiAgICAgICAgICAgIHx8IGlzSGV4U3RyaW5nT2ZMZW5ndGgoYmxvY2ssIDMyKVxuICAgICAgICAgICAgfHwgaXNXaWxkY2FyZChibG9jaylcbiAgICApO1xufVxuXG4vKipcbiAqIFJldHJpZXZlIHRoZSBudW1iZXIgb2YgbW9zdCByZWNlbnQgYmxvY2suXG4gKi8gXG5leHBvcnQgY29uc3QgYmxvY2tOdW1iZXIgPSAoKSA9PiAoeyBtZXRob2Q6IFwiZXRoX2Jsb2NrTnVtYmVyXCIgfSk7XG5cbi8qKlxuICogSW52b2tlIG1lc3NhZ2UgY2FsbCBpbW1lZGlhdGVseSB3aXRob3V0IGNyZWF0aW5nIGEgdHJhbnNhY3Rpb24gXG4gKiBvbiB0aGUgcmVtb3RlIGJsb2NrIGNoYWluLiBPZnRlbiB1c2VkIGZvciBleGVjdXRpbmcgcmVhZC1vbmx5IHNtYXJ0IGNvbnRyYWN0IFxuICogZnVuY3Rpb25zLCBmb3IgZXhhbXBsZSB0aGUgYmFsYW5jZU9mIGZvciBhbiBFUkMtMjAgY29udHJhY3QuXG4gKiBAcGFyYW0gdHggVGhlIHRyYW5zYWN0aW9uIGNhbGwgb2JqZWN0LlxuICovXG5leHBvcnQgY29uc3QgY2FsbCA9ICh0eDoge1xuICAgIGZyb20/OiBFdGhBZGRyZXNzIHwgV2lsZGNhcmQsXG4gICAgdG86IEV0aEFkZHJlc3MgfCBXaWxkY2FyZCxcbiAgICBnYXM/OiBudW1iZXIgfCBIZXhTdHJpbmcgfCBXaWxkY2FyZCxcbiAgICBnYXNQcmljZT86IG51bWJlciB8IEhleFN0cmluZyB8IFdpbGRjYXJkLFxuICAgIHZhbHVlPzogbnVtYmVyIHwgSGV4U3RyaW5nIHwgV2lsZGNhcmQsXG4gICAgZGF0YT86IEhleFN0cmluZyAgfCBXaWxkY2FyZFxufSkgPT4ge1xuICAgIGNoZWNrUnBjV2lsZGNhcmRzKHR4KVxuICAgIGlmICh0eD8uZnJvbSAmJiAhaXNIZXhTdHJpbmdPZkxlbmd0aCh0eD8uZnJvbSwgMjApICYmICFpc1dpbGRjYXJkKHR4Py5mcm9tKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwicnBjLmV0aC5jYWxsOiBpbnZhbGlkICdmcm9tJyBhZGRyZXNzXCIpO1xuICAgIH1cbiAgICBpZiAodHg/LmdhcyAmJiAhTnVtYmVyLmlzSW50ZWdlcih0eC5nYXMpICYmICFpc0hleFN0cmluZ09mTGVuZ3RoKHR4LmdhcywgMzIpICYmICFpc1dpbGRjYXJkKHR4LmdhcykpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInJwYy5ldGguY2FsbDogaW52YWxpZCAnZ2FzJyB2YWx1ZVwiKVxuICAgIH1cbiAgICBpZiAodHg/Lmdhc1ByaWNlICYmICFOdW1iZXIuaXNJbnRlZ2VyKHR4Lmdhc1ByaWNlKSAmJiAhaXNIZXhTdHJpbmdPZkxlbmd0aCh0eC5nYXNQcmljZSwgMzIpICYmICFpc1dpbGRjYXJkKHR4Lmdhc1ByaWNlKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwicnBjLmV0aC5jYWxsOiBpbnZhbGlkICdnYXNQcmljZScgdmFsdWVcIilcbiAgICB9XG4gICAgaWYgKHR4Py52YWx1ZSAmJiAhTnVtYmVyLmlzSW50ZWdlcih0eC52YWx1ZSkgJiYgIWlzSGV4U3RyaW5nT2ZMZW5ndGgodHgudmFsdWUsIDMyKSAmJiAhaXNXaWxkY2FyZCh0eC52YWx1ZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInJwYy5ldGguY2FsbDogaW52YWxpZCB0cmFuc2FjdGlvbiAndmFsdWUnXCIpXG4gICAgfVxuICAgIGlmICh0eD8uZGF0YSAmJiAhaXNIZXhTdHJpbmcodHguZGF0YSkgJiYgIWlzV2lsZGNhcmQodHguZGF0YSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInJwYy5ldGguY2FsbDogaW52YWxpZCB0cmFuc2FjdGlvbiAnZGF0YSdcIilcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbWV0aG9kOiBcImV0aF9jYWxsXCIsIFxuICAgICAgICBwYXJhbXM6IFsgdHggXVxuICAgIH07XG59O1xuXG4vKipcbiAqIEdlbmVyYXRlcyBhbmQgcmV0dXJucyBhbiBlc3RpbWF0ZSBvZiBob3cgbXVjaCBnYXMgaXMgbmVjZXNzYXJ5IFxuICogdG8gYWxsb3cgdGhlIHRyYW5zYWN0aW9uIHRvIGNvbXBsZXRlLiBUaGUgdHJhbnNhY3Rpb24gd2lsbCBub3QgYmUgXG4gKiBhZGRlZCB0byB0aGUgYmxvY2tjaGFpbi4gTm90ZSB0aGF0IHRoZSBlc3RpbWF0ZSBtYXkgYmUgc2lnbmlmaWNhbnRseSBcbiAqIG1vcmUgdGhhbiB0aGUgYW1vdW50IG9mIGdhcyBhY3R1YWxseSB1c2VkIGJ5IHRoZSB0cmFuc2FjdGlvbiwgZm9yIGEgXG4gKiB2YXJpZXR5IG9mIHJlYXNvbnMgaW5jbHVkaW5nIEVWTSBtZWNoYW5pY3MgYW5kIG5vZGUgcGVyZm9ybWFuY2UuXG4gKiBAcGFyYW0gdHggVGhlIHRyYW5zYWN0aW9uIGNhbGwgb2JqZWN0LlxuICovXG5leHBvcnQgY29uc3QgZXN0aW1hdGVHYXMgPSAodHg6IHtcbiAgICBmcm9tPzogRXRoQWRkcmVzcyB8IFdpbGRjYXJkLFxuICAgIHRvOiBFdGhBZGRyZXNzIHwgV2lsZGNhcmQsXG4gICAgZ2FzPzogbnVtYmVyIHwgSGV4U3RyaW5nIHwgV2lsZGNhcmQsXG4gICAgZ2FzUHJpY2U/OiBudW1iZXIgfCBIZXhTdHJpbmcgfCBXaWxkY2FyZCxcbiAgICB2YWx1ZT86IG51bWJlciB8IEhleFN0cmluZyB8IFdpbGRjYXJkLFxuICAgIGRhdGE/OiBIZXhTdHJpbmcgfCBXaWxkY2FyZFxufSkgPT4ge1xuICAgIGNoZWNrUnBjV2lsZGNhcmRzKHR4KVxuICAgIGlmICh0eD8uZnJvbSAmJiAhaXNIZXhTdHJpbmdPZkxlbmd0aCh0eD8uZnJvbSwgMjApICYmICFpc1dpbGRjYXJkKHR4Py5mcm9tKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwicnBjLmV0aC5lc3RpbWF0ZUdhczogaW52YWxpZCAnZnJvbScgYWRkcmVzc1wiKTtcbiAgICB9XG4gICAgaWYgKHR4Py5nYXMgJiYgIU51bWJlci5pc0ludGVnZXIodHguZ2FzKSAmJiAhaXNIZXhTdHJpbmdPZkxlbmd0aCh0eC5nYXMsIDMyKSAmJiAhaXNXaWxkY2FyZCh0eC5nYXMpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJycGMuZXRoLmVzdGltYXRlR2FzOiBpbnZhbGlkICdnYXMnIHZhbHVlXCIpXG4gICAgfVxuICAgIGlmICh0eD8uZ2FzUHJpY2UgJiYgIU51bWJlci5pc0ludGVnZXIodHguZ2FzUHJpY2UpICYmICFpc0hleFN0cmluZ09mTGVuZ3RoKHR4Lmdhc1ByaWNlLCAzMikgJiYgIWlzV2lsZGNhcmQodHguZ2FzUHJpY2UpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJycGMuZXRoLmVzdGltYXRlR2FzOiBpbnZhbGlkICdnYXNQcmljZScgdmFsdWVcIilcbiAgICB9XG4gICAgaWYgKHR4Py52YWx1ZSAmJiAhTnVtYmVyLmlzSW50ZWdlcih0eC52YWx1ZSkgJiYgIWlzSGV4U3RyaW5nT2ZMZW5ndGgodHgudmFsdWUsIDMyKSAmJiAhaXNXaWxkY2FyZCh0eC52YWx1ZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInJwYy5ldGguZXN0aW1hdGVHYXM6IGludmFsaWQgdHJhbnNhY3Rpb24gJ3ZhbHVlJ1wiKVxuICAgIH1cbiAgICBpZiAodHg/LmRhdGEgJiYgIWlzSGV4U3RyaW5nKHR4LmRhdGEpICYmICFpc1dpbGRjYXJkKHR4LmRhdGEpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJycGMuZXRoLmVzdGltYXRlR2FzOiBpbnZhbGlkIHRyYW5zYWN0aW9uICdkYXRhJ1wiKVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBtZXRob2Q6IFwiZXRoX2VzdGltYXRlR2FzXCIsIFxuICAgICAgICBwYXJhbXM6IFsgdHggXVxuICAgIH07XG59O1xuXG4vKipcbiAqIFJldHJpZXZlIHRoZSBiYWxhbmNlIG9mIHRoZSBhY2NvdW50IG9mIGdpdmVuIGFkZHJlc3MuXG4gKiBAcGFyYW0gYWRkcmVzcyBXZWIzIGFkZHJlc3Mgb24gcmVtb3RlIEVWTSBjaGFpbi5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldEJhbGFuY2UgPSAoYWRkcmVzczogRXRoQWRkcmVzcyB8IFdpbGRjYXJkLCBibG9jaz86IEV0aEJsb2NrSGVhZCB8IFdpbGRjYXJkKSA9PiB7XG4gICAgY2hlY2tScGNXaWxkY2FyZHMoW2FkZHJlc3MsIGJsb2NrXSlcbiAgICBpZiAoIWlzSGV4U3RyaW5nT2ZMZW5ndGgoYWRkcmVzcywgMjApICYmICFpc1dpbGRjYXJkKGFkZHJlc3MpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJycGMuZXRoLmdldEJhbGFuY2U6IGludmFsaWQgV2ViMyBhZGRyZXNzIGZvcm1hdFwiKTtcbiAgICB9IFxuICAgIHJldHVybiB7XG4gICAgICAgIG1ldGhvZDogXCJldGhfZ2V0QmFsYW5jZVwiLCBcbiAgICAgICAgcGFyYW1zOiBbIGFkZHJlc3MsIGJsb2NrIF1cbiAgICB9XG59O1xuXG4vKipcbiAqIFJldHJpZXZlIGNvZGUgYXQgYSBnaXZlbiBhZGRyZXNzLlxuICogQHBhcmFtIGFkZHJlc3MgRXRoQWRkcmVzcyBmcm9tIHdoZXJlIHRvIGdldCB0aGUgY29kZS5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldENvZGUgPSAoYWRkcmVzczogRXRoQWRkcmVzcyB8IFdpbGRjYXJkKSA9PiB7XG4gICAgY2hlY2tScGNXaWxkY2FyZHMoYWRkcmVzcylcbiAgICBpZiAoIWlzSGV4U3RyaW5nT2ZMZW5ndGgoYWRkcmVzcywgMjApICYmICFpc1dpbGRjYXJkKGFkZHJlc3MpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJycGMuZXRoLmdldENvZGU6IGludmFsaWQgV2ViMyBhZGRyZXNzIGZvcm1hdFwiKTtcbiAgICB9IFxuICAgIHJldHVybiB7XG4gICAgICAgIG1ldGhvZDogXCJldGhfZ2V0Q29kZVwiLCBcbiAgICAgICAgcGFyYW1zOiBbIGFkZHJlc3MgXSxcbiAgICB9O1xufTtcblxuLyoqXG4gKiBSZXRyaWV2ZSBhbiBhcnJheSBvZiBhbGwgbG9ncyBtYXRjaGluZyBhIGdpdmVuIGZpbHRlciBvYmplY3QuXG4gKiBAcGFyYW0gZmlsdGVyIFRoZSBmaWx0ZXIgb3B0aW9ucy5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldExvZ3MgPSAoZmlsdGVyOiB7XG4gICAgZnJvbUJsb2NrPzogRXRoQmxvY2tIZWFkLFxuICAgIHRvQmxvY2s/OiBFdGhCbG9ja0hlYWQsXG4gICAgYWRkcmVzcz86IEV0aEFkZHJlc3MgfCBFdGhBZGRyZXNzW10gfCBXaWxkY2FyZCxcbiAgICB0b3BpY3M/OiBCeXRlczMyW10sXG4gICAgYmxvY2tIYXNoPzogQnl0ZXMzMiB8IFdpbGRjYXJkLFxufSkgPT4ge1xuICAgIGNoZWNrUnBjV2lsZGNhcmRzKGZpbHRlcilcbiAgICBpZiAoZmlsdGVyPy5ibG9ja0hhc2ggJiYgKGZpbHRlcj8uZnJvbUJsb2NrIHx8IGZpbHRlcj8udG9CbG9jaykpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInJwYy5ldGguZ2V0TG9nczogdW5jb21wbGlhbnQgdXNlIG9mICdibG9ja0hhc2gnXCIpXG4gICAgfVxuICAgIGlmIChmaWx0ZXI/LmZyb21CbG9jaykge1xuICAgICAgICBpZiAoIV9pc0Jsb2NrSGVhZChmaWx0ZXI/LmZyb21CbG9jaykpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJycGMuZXRoLmdldExvZ3M6IGludmFsaWQgJ2Zyb21CbG9jaycgdmFsdWVcIik7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGZpbHRlcj8uZnJvbUJsb2NrID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgZmlsdGVyLmZyb21CbG9jayA9IGAweCR7KGZpbHRlcj8uZnJvbUJsb2NrIGFzIG51bWJlcikudG9TdHJpbmcoMTYpfWAgYXMgRXRoQmxvY2tIZWFkXG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGZpbHRlcj8udG9CbG9jaykge1xuICAgICAgICBpZiAoIV9pc0Jsb2NrSGVhZChmaWx0ZXI/LnRvQmxvY2spKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwicnBjLmV0aC5nZXRMb2dzOiBpbnZhbGlkICd0b0Jsb2NrJyB2YWx1ZVwiKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZmlsdGVyPy50b0Jsb2NrID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgZmlsdGVyLnRvQmxvY2sgPSBgMHgkeyhmaWx0ZXI/LnRvQmxvY2sgYXMgbnVtYmVyKS50b1N0cmluZygxNil9YCBhcyBFdGhCbG9ja0hlYWRcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoZmlsdGVyPy5ibG9ja0hhc2ggJiYgIWlzSGV4U3RyaW5nT2ZMZW5ndGgoZmlsdGVyLmJsb2NrSGFzaCwgMzIpICYmICFpc1dpbGRjYXJkKGZpbHRlci5ibG9ja0hhc2gpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJycGMuZXRoLmdldExvZ3M6IGludmFsaWQgJ2Jsb2NrSGFzaCcgdmFsdWVcIik7XG4gICAgfVxuICAgIGlmIChmaWx0ZXI/LnRvcGljcykge1xuICAgICAgICBmaWx0ZXIudG9waWNzLm1hcCgodmFsdWU6IEJ5dGVzMzIsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIGlmICghaXNIZXhTdHJpbmdPZkxlbmd0aCh2YWx1ZSwgMzIpICYmICFpc1dpbGRjYXJkKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYHJwYy5ldGguZ2V0TG9nczogdG9waWMgIyR7aW5kZXh9OiBpbnZhbGlkIGhhc2hgKVxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBtZXRob2Q6IFwiZXRoX2dldExvZ3NcIiwgXG4gICAgICAgIHBhcmFtczogWyBmaWx0ZXIgXVxuICAgIH07XG59O1xuXG4vKipcbiAqIFJldHJpZXZlIGFuIGVzdGltYXRlIG9mIHRoZSBjdXJyZW50IHByaWNlIHBlciBnYXMgaW4gd2VpLiBcbiAqLyBcbmV4cG9ydCBjb25zdCBnYXNQcmljZSA9ICgpID0+ICh7IG1ldGhvZDogXCJldGhfZ2FzUHJpY2VcIiB9KTtcblxuLyoqXG4gKiBSZXRyaWV2ZSB0aGUgdmFsdWUgZnJvbSBhIHN0b3JhZ2UgcG9zaXRpb24gYXQgYSBnaXZlbiBhZGRyZXNzLlxuICogQHBhcmFtIGFkZHJlc3MgRXRoQWRkcmVzcyBvZiB0aGUgc3RvcmFnZS5cbiAqIEBwYXJhbSBvZmZzZXQgT2Zmc2V0IHdpdGhpbiBzdG9yYWdlIGFkZHJlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRTdG9yYWdlQXQgPSAoYWRkcmVzczogRXRoQWRkcmVzcyB8IFdpbGRjYXJkLCBvZmZzZXQ6IEJ5dGVzMzIgfCBXaWxkY2FyZCkgPT4ge1xuICAgIGNoZWNrUnBjV2lsZGNhcmRzKFsgYWRkcmVzcywgb2Zmc2V0IF0pXG4gICAgaWYgKCFpc0hleFN0cmluZ09mTGVuZ3RoKGFkZHJlc3MsIDIwKSAmJiAhaXNXaWxkY2FyZChhZGRyZXNzKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwicnBjLmV0aC5nZXRTdG9yYWdlQXQ6IGludmFsaWQgV2ViMyBhZGRyZXNzIGZvcm1hdFwiKTtcbiAgICB9IFxuICAgIGlmICghaXNIZXhTdHJpbmdPZkxlbmd0aChvZmZzZXQsIDMyKSAmJiAhaXNXaWxkY2FyZChvZmZzZXQpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJycGMuZXRoLmdldFN0b3JhZ2VBdDogaW52YWxpZCBzdG9yYWdlIG9mZnNldCB2YWx1ZVwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbWV0aG9kOiBcImV0aF9nZXRTdG9yYWdlQXRcIiwgXG4gICAgICAgIHBhcmFtczogWyBhZGRyZXNzLCBvZmZzZXQgXSxcbiAgICB9O1xufTtcblxuLyoqXG4gKiBSZXRyaWV2ZSB0aGUgaW5mb3JtYXRpb24gYWJvdXQgYSByZW1vdGUgdHJhbnNhY3Rpb24gZ2l2ZW4gYSBibG9jayBoYXNoIGFuZCBhIHRyYW5zYWN0aW9uIGluZGV4LlxuICogQHBhcmFtIHR4SGFzaCBIYXNoIG9mIHRoZSByZW1vdGUgdHJhbnNhY3Rpb24uXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRUcmFuc2FjdGlvbkJ5QmxvY2tIYXNoQW5kSW5kZXggPSAoYmxvY2tIYXNoOiBCeXRlczMyIHwgV2lsZGNhcmQsIHR4SW5kZXg6IG51bWJlciB8IEJ5dGVzMzIgfCBXaWxkY2FyZCkgPT4ge1xuICAgIGNoZWNrUnBjV2lsZGNhcmRzKFsgYmxvY2tIYXNoLCB0eEluZGV4IF0pXG4gICAgaWYgKCFpc0hleFN0cmluZ09mTGVuZ3RoKGJsb2NrSGFzaCwgMzIpICYmICFpc1dpbGRjYXJkKGJsb2NrSGFzaCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInJwYy5ldGguZ2V0VHJhbnNhY3Rpb25CeUJsb2NrSGFzaEFuZEluZGV4OiBpbnZhbGlkIGJsb2NrIGhhc2ggdmFsdWVcIik7XG4gICAgfVxuICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcih0eEluZGV4KSAmJiAhaXNIZXhTdHJpbmdPZkxlbmd0aCh0eEluZGV4LCAzMikgJiYgIWlzV2lsZGNhcmQodHhJbmRleCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInJwYy5ldGguZ2V0VHJhbnNhY3Rpb25CeUJsb2NrSGFzaEFuZEluZGV4OiBpbnZhbGlkIHRyYW5zYWN0aW9uIGluZGV4IHZhbHVlXCIpXG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIG1ldGhvZDogXCJldGhfZ2V0VHJhbnNhY3Rpb25CeUJsb2NrSGFzaEFuZEluZGV4XCIsIFxuICAgICAgICBwYXJhbXM6IFsgYmxvY2tIYXNoLCB0eEluZGV4IF1cbiAgICB9O1xufTtcblxuLyoqXG4gKiBSZXRyaWV2ZSB0aGUgaW5mb3JtYXRpb24gYWJvdXQgYSByZW1vdGUgdHJhbnNhY3Rpb24gZ2l2ZW4gYSBibG9jayBudW1iZXIgYW5kIGEgdHJhbnNhY3Rpb24gaW5kZXguXG4gKiBAcGFyYW0gdHhIYXNoIEhhc2ggb2YgdGhlIHJlbW90ZSB0cmFuc2FjdGlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldFRyYW5zYWN0aW9uQnlCbG9ja051bWJlckFuZEluZGV4ID0gKFxuICAgIGJsb2NrTnVtYmVyOiBFdGhCbG9ja0hlYWQsXG4gICAgdHhJbmRleDogbnVtYmVyIHwgQnl0ZXMzMiB8IFdpbGRjYXJkXG4pID0+IHtcbiAgICBjaGVja1JwY1dpbGRjYXJkcyhbIGJsb2NrTnVtYmVyLCB0eEluZGV4IF0pXG4gICAgaWYgKCFfaXNCbG9ja0hlYWQoYmxvY2tOdW1iZXIpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJycGMuZXRoLmdldFRyYW5zYWN0aW9uQnlCbG9ja051bWJlckFuZEluZGV4OiBpbnZhbGlkIGJsb2NrIG51bWJlciB2YWx1ZVwiKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodHlwZW9mIGJsb2NrTnVtYmVyID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgYmxvY2tOdW1iZXIgPSBgMHgkeyhibG9ja051bWJlciBhcyBudW1iZXIpLnRvU3RyaW5nKDE2KX1gIGFzIEV0aEJsb2NrSGVhZFxuICAgICAgICB9XG4gICAgfVxuICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcih0eEluZGV4KSAmJiAhaXNIZXhTdHJpbmdPZkxlbmd0aCh0eEluZGV4LCAzMikgJiYgIWlzV2lsZGNhcmQodHhJbmRleCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInJwYy5ldGguZ2V0VHJhbnNhY3Rpb25CeUJsb2NrTnVtYmVyQW5kSW5kZXg6IGludmFsaWQgdHJhbnNhY3Rpb24gaW5kZXggdmFsdWVcIilcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbWV0aG9kOiBcImV0aF9nZXRUcmFuc2FjdGlvbkJ5QmxvY2tIYXNoQW5kSW5kZXhcIiwgXG4gICAgICAgIHBhcmFtczogWyBibG9ja051bWJlciwgdHhJbmRleCBdLFxuICAgIH07XG59O1xuXG4vKipcbiAqIFJldHJpZXZlIHRoZSBpbmZvcm1hdGlvbiBhYm91dCBhIHJlbW90ZSB0cmFuc2FjdGlvbiBnaXZlbiBpdHMgdHJhbnNhY3Rpb24gaGFzaC5cbiAqIEBwYXJhbSB0eEhhc2ggSGFzaCBvZiB0aGUgcmVtb3RlIHRyYW5zYWN0aW9uLlxuICovXG5leHBvcnQgY29uc3QgZ2V0VHJhbnNhY3Rpb25CeUhhc2ggPSAodHhIYXNoOiBCeXRlczMyIHwgV2lsZGNhcmQpID0+IHtcbiAgICBjaGVja1JwY1dpbGRjYXJkcyh0eEhhc2gpXG4gICAgaWYgKCFpc0hleFN0cmluZ09mTGVuZ3RoKHR4SGFzaCwgMzIpICYmICFpc1dpbGRjYXJkKHR4SGFzaCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInJwYy5ldGguZ2V0VHJhbnNhY3Rpb25CeUhhc2g6IGludmFsaWQgdHJhbnNhY3Rpb24gaGFzaCB2YWx1ZVwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHsgXG4gICAgICAgIG1ldGhvZDogXCJldGhfZ2V0VHJhbnNhY3Rpb25CeUhhc2hcIiwgXG4gICAgICAgIHBhcmFtczogWyB0eEhhc2ggXSxcbiAgICB9O1xufTtcblxuLyoqXG4gKiBSZXRyaWV2ZSB0aGUgbnVtYmVyIG9mIHRyYW5zYWN0aW9ucyBzZW50IGZyb20gYW4gYWRkcmVzcy5cbiAqIEBwYXJhbSBhZGRyZXNzIEV0aEFkZHJlc3MgZnJvbSB3aGVyZSB0byBnZXQgdHJhbnNhY3Rpb24gY291bnQuXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRUcmFuc2FjdGlvbkNvdW50ID0gKGFkZHJlc3M6IEV0aEFkZHJlc3MgfCBXaWxkY2FyZCkgPT4ge1xuICAgIGNoZWNrUnBjV2lsZGNhcmRzKGFkZHJlc3MpXG4gICAgaWYgKCFpc0hleFN0cmluZ09mTGVuZ3RoKGFkZHJlc3MsIDIwKSAmJiAhaXNXaWxkY2FyZChhZGRyZXNzKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwicnBjLmV0aC5nZXRUcmFuc2FjdGlvbkNvdW50OiBpbnZhbGlkIFdlYjMgYWRkcmVzcyBmb3JtYXRcIik7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIG1ldGhvZDogXCJldGhfZ2V0VHJhbnNhY3Rpb25Db3VudFwiLCBcbiAgICAgICAgcGFyYW1zOiBbIGFkZHJlc3MgXSxcbiAgICB9O1xufTtcblxuLyoqXG4gKiBSZXRyaWV2ZSB0aGUgcmVjZWlwdCBvZiBhIHJlbW90ZSB0cmFuc2FjdGlvbiBnaXZlbiBpdHMgdHJhbnNhY3Rpb24gaGFzaC5cbiAqIEBwYXJhbSB0eEhhc2ggSGFzaCBvZiB0aGUgcmVtb3RlIHRyYW5zYWN0aW9uLlxuICovXG5leHBvcnQgY29uc3QgZ2V0VHJhbnNhY3Rpb25SZWNlaXB0ID0gKHR4SGFzaDogQnl0ZXMzMiB8IFdpbGRjYXJkKSA9PiB7XG4gICAgY2hlY2tScGNXaWxkY2FyZHModHhIYXNoKVxuICAgIGlmICghaXNIZXhTdHJpbmdPZkxlbmd0aCh0eEhhc2gsIDMyKSAmJiAhaXNXaWxkY2FyZCh0eEhhc2gpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJycGMuZXRoLmdldFRyYW5zYWN0aW9uUmVjZWlwdDogaW52YWxpZCB0cmFuc2FjdGlvbiBoYXNoIHZhbHVlXCIpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBtZXRob2Q6IFwiZXRoX2dldFRyYW5zYWN0aW9uUmVjZWlwdFwiLCBcbiAgICAgICAgcGFyYW1zOiBbIHR4SGFzaCBdLFxuICAgIH07XG59O1xuXG4vKipcbiAqIEludm9rZSByZW1vdGUgY2FsbCB0cmFuc2FjdGlvbiwgb3IgcmVtb3RlIGNvbnRyYWN0IGNyZWF0aW9uLiBcbiAqIEBwYXJhbSBkYXRhIFRoZSBzaWduZWQgdHJhbnNhY3Rpb24gZGF0YS5cbiAqL1xuZXhwb3J0IGNvbnN0IHNlbmRSYXdUcmFuc2FjdGlvbiA9IChkYXRhOiBCeXRlcyB8IFdpbGRjYXJkKSA9PiB7XG4gICAgY2hlY2tScGNXaWxkY2FyZHMoZGF0YSlcbiAgICBpZiAoIWlzSGV4U3RyaW5nKGRhdGEpICYmICFpc1dpbGRjYXJkKGRhdGEpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJycGMuZXRoLnNlbmRSYXdUcmFuc2FjdGlvbjogaW52YWxpZCBzaWduZWQgdHJhbnNhY3Rpb24gZGF0YVwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbWV0aG9kOiBcImV0aF9zZW5kUmF3VHJhbnNhY3Rpb25cIiwgXG4gICAgICAgIHBhcmFtczogWyBkYXRhIF1cbiAgICB9O1xufTtcbiJdfQ==
|
|
272
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9yYWRvbi9jY2RyL2V0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrREFLNkI7QUFnQjdCLFNBQVMsWUFBWSxDQUFDLEtBQW1CO0lBQ3JDLE9BQU8sQ0FDSCxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssS0FBSyxVQUFVLElBQUksS0FBSyxLQUFLLFdBQVcsSUFBSSxLQUFLLEtBQUssU0FBUztXQUNuRixPQUFPLEtBQUssS0FBSyxRQUFRO1dBQ3pCLElBQUEsNkJBQW1CLEVBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztXQUM5QixJQUFBLG9CQUFVLEVBQUMsS0FBSyxDQUFDLENBQzNCLENBQUM7QUFDTixDQUFDO0FBRUQ7O0dBRUc7QUFDSSxNQUFNLFdBQVcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQztBQUFwRCxRQUFBLFdBQVcsZUFBeUM7QUFFakU7Ozs7O0dBS0c7QUFDSSxNQUFNLElBQUksR0FBRyxDQUFDLEVBT3BCLEVBQUUsRUFBRTtJQUNELElBQUEsMkJBQWlCLEVBQUMsRUFBRSxDQUFDLENBQUE7SUFDckIsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBQSw2QkFBbUIsRUFBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBQSxvQkFBVSxFQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzFFLE1BQU0sSUFBSSxTQUFTLENBQUMsc0NBQXNDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBQ0QsSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFBLDZCQUFtQixFQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFBLG9CQUFVLEVBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDbEcsTUFBTSxJQUFJLFNBQVMsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFBO0lBQzVELENBQUM7SUFDRCxJQUFJLEVBQUUsRUFBRSxRQUFRLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUEsNkJBQW1CLEVBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUEsb0JBQVUsRUFBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUN0SCxNQUFNLElBQUksU0FBUyxDQUFDLHdDQUF3QyxDQUFDLENBQUE7SUFDakUsQ0FBQztJQUNELElBQUksRUFBRSxFQUFFLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBQSw2QkFBbUIsRUFBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBQSxvQkFBVSxFQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzFHLE1BQU0sSUFBSSxTQUFTLENBQUMsMkNBQTJDLENBQUMsQ0FBQTtJQUNwRSxDQUFDO0lBQ0QsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBQSxxQkFBVyxFQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUEsb0JBQVUsRUFBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUM1RCxNQUFNLElBQUksU0FBUyxDQUFDLDBDQUEwQyxDQUFDLENBQUE7SUFDbkUsQ0FBQztJQUNELE9BQU87UUFDSCxNQUFNLEVBQUUsVUFBVTtRQUNsQixNQUFNLEVBQUUsQ0FBRSxFQUFFLENBQUU7S0FDakIsQ0FBQztBQUNOLENBQUMsQ0FBQztBQTVCVyxRQUFBLElBQUksUUE0QmY7QUFFRjs7Ozs7OztHQU9HO0FBQ0ksTUFBTSxXQUFXLEdBQUcsQ0FBQyxFQU8zQixFQUFFLEVBQUU7SUFDRCxJQUFBLDJCQUFpQixFQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ3JCLElBQUksRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLElBQUEsNkJBQW1CLEVBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUEsb0JBQVUsRUFBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUMxRSxNQUFNLElBQUksU0FBUyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUNELElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBQSw2QkFBbUIsRUFBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBQSxvQkFBVSxFQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2xHLE1BQU0sSUFBSSxTQUFTLENBQUMsMENBQTBDLENBQUMsQ0FBQTtJQUNuRSxDQUFDO0lBQ0QsSUFBSSxFQUFFLEVBQUUsUUFBUSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFBLDZCQUFtQixFQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFBLG9CQUFVLEVBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDdEgsTUFBTSxJQUFJLFNBQVMsQ0FBQywrQ0FBK0MsQ0FBQyxDQUFBO0lBQ3hFLENBQUM7SUFDRCxJQUFJLEVBQUUsRUFBRSxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUEsNkJBQW1CLEVBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUEsb0JBQVUsRUFBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMxRyxNQUFNLElBQUksU0FBUyxDQUFDLGtEQUFrRCxDQUFDLENBQUE7SUFDM0UsQ0FBQztJQUNELElBQUksRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLElBQUEscUJBQVcsRUFBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFBLG9CQUFVLEVBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDNUQsTUFBTSxJQUFJLFNBQVMsQ0FBQyxpREFBaUQsQ0FBQyxDQUFBO0lBQzFFLENBQUM7SUFDRCxPQUFPO1FBQ0gsTUFBTSxFQUFFLGlCQUFpQjtRQUN6QixNQUFNLEVBQUUsQ0FBRSxFQUFFLENBQUU7S0FDakIsQ0FBQztBQUNOLENBQUMsQ0FBQztBQTVCVyxRQUFBLFdBQVcsZUE0QnRCO0FBRUY7OztHQUdHO0FBQ0ksTUFBTSxVQUFVLEdBQUcsQ0FBQyxPQUE4QixFQUFFLEtBQStCLEVBQUUsRUFBRTtJQUMxRixJQUFBLDJCQUFpQixFQUFDLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUE7SUFDbkMsSUFBSSxDQUFDLElBQUEsNkJBQW1CLEVBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBQSxvQkFBVSxFQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDNUQsTUFBTSxJQUFJLFNBQVMsQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFDRCxPQUFPO1FBQ0gsTUFBTSxFQUFFLGdCQUFnQjtRQUN4QixNQUFNLEVBQUUsQ0FBRSxPQUFPLEVBQUUsS0FBSyxDQUFFO0tBQzdCLENBQUE7QUFDTCxDQUFDLENBQUM7QUFUVyxRQUFBLFVBQVUsY0FTckI7QUFFRjs7O0dBR0c7QUFDSSxNQUFNLE9BQU8sR0FBRyxDQUFDLE9BQThCLEVBQUUsRUFBRTtJQUN0RCxJQUFBLDJCQUFpQixFQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQzFCLElBQUksQ0FBQyxJQUFBLDZCQUFtQixFQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUEsb0JBQVUsRUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQzVELE1BQU0sSUFBSSxTQUFTLENBQUMsOENBQThDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBQ0QsT0FBTztRQUNILE1BQU0sRUFBRSxhQUFhO1FBQ3JCLE1BQU0sRUFBRSxDQUFFLE9BQU8sQ0FBRTtLQUN0QixDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBVFcsUUFBQSxPQUFPLFdBU2xCO0FBRUY7OztHQUdHO0FBQ0ksTUFBTSxPQUFPLEdBQUcsQ0FBQyxNQU12QixFQUFFLEVBQUU7SUFDRCxJQUFBLDJCQUFpQixFQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ3pCLElBQUksTUFBTSxFQUFFLFNBQVMsSUFBSSxDQUFDLE1BQU0sRUFBRSxTQUFTLElBQUksTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDOUQsTUFBTSxJQUFJLFNBQVMsQ0FBQyxpREFBaUQsQ0FBQyxDQUFBO0lBQzFFLENBQUM7SUFDRCxJQUFJLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ25DLE1BQU0sSUFBSSxTQUFTLENBQUMsNENBQTRDLENBQUMsQ0FBQztRQUN0RSxDQUFDO2FBQU0sSUFBSSxPQUFPLE1BQU0sRUFBRSxTQUFTLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDL0MsTUFBTSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLFNBQW9CLENBQUEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQWtCLENBQUE7UUFDeEYsQ0FBQztJQUNMLENBQUM7SUFDRCxJQUFJLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sSUFBSSxTQUFTLENBQUMsMENBQTBDLENBQUMsQ0FBQztRQUNwRSxDQUFDO2FBQU0sSUFBSSxPQUFPLE1BQU0sRUFBRSxPQUFPLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDN0MsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLE9BQWtCLENBQUEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQWtCLENBQUE7UUFDcEYsQ0FBQztJQUNMLENBQUM7SUFDRCxJQUFJLE1BQU0sRUFBRSxTQUFTLElBQUksQ0FBQyxJQUFBLDZCQUFtQixFQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFBLG9CQUFVLEVBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDbkcsTUFBTSxJQUFJLFNBQVMsQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFDRCxJQUFJLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUNqQixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQWMsRUFBRSxLQUFhLEVBQUUsRUFBRTtZQUNoRCxJQUFJLENBQUMsSUFBQSw2QkFBbUIsRUFBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFBLG9CQUFVLEVBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDeEQsTUFBTSxJQUFJLFNBQVMsQ0FBQywyQkFBMkIsS0FBSyxnQkFBZ0IsQ0FBQyxDQUFBO1lBQ3pFLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFDRCxPQUFPO1FBQ0gsTUFBTSxFQUFFLGFBQWE7UUFDckIsTUFBTSxFQUFFLENBQUUsTUFBTSxDQUFFO0tBQ3JCLENBQUM7QUFDTixDQUFDLENBQUM7QUF2Q1csUUFBQSxPQUFPLFdBdUNsQjtBQUVGOztHQUVHO0FBQ0ksTUFBTSxRQUFRLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO0FBQTlDLFFBQUEsUUFBUSxZQUFzQztBQUUzRDs7OztHQUlHO0FBQ0ksTUFBTSxZQUFZLEdBQUcsQ0FBQyxPQUE4QixFQUFFLE1BQTBCLEVBQUUsRUFBRTtJQUN2RixJQUFBLDJCQUFpQixFQUFDLENBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBRSxDQUFDLENBQUE7SUFDdEMsSUFBSSxDQUFDLElBQUEsNkJBQW1CLEVBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBQSxvQkFBVSxFQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDNUQsTUFBTSxJQUFJLFNBQVMsQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFDRCxJQUFJLENBQUMsSUFBQSw2QkFBbUIsRUFBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFBLG9CQUFVLEVBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUMxRCxNQUFNLElBQUksU0FBUyxDQUFDLG9EQUFvRCxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUNELE9BQU87UUFDSCxNQUFNLEVBQUUsa0JBQWtCO1FBQzFCLE1BQU0sRUFBRSxDQUFFLE9BQU8sRUFBRSxNQUFNLENBQUU7S0FDOUIsQ0FBQztBQUNOLENBQUMsQ0FBQztBQVpXLFFBQUEsWUFBWSxnQkFZdkI7QUFFRjs7O0dBR0c7QUFDSSxNQUFNLGlDQUFpQyxHQUFHLENBQUMsU0FBNkIsRUFBRSxPQUFvQyxFQUFFLEVBQUU7SUFDckgsSUFBQSwyQkFBaUIsRUFBQyxDQUFFLFNBQVMsRUFBRSxPQUFPLENBQUUsQ0FBQyxDQUFBO0lBQ3pDLElBQUksQ0FBQyxJQUFBLDZCQUFtQixFQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUEsb0JBQVUsRUFBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQ2hFLE1BQU0sSUFBSSxTQUFTLENBQUMscUVBQXFFLENBQUMsQ0FBQztJQUMvRixDQUFDO0lBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFBLDZCQUFtQixFQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUEsb0JBQVUsRUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQzFGLE1BQU0sSUFBSSxTQUFTLENBQUMsNEVBQTRFLENBQUMsQ0FBQTtJQUNyRyxDQUFDO0lBQ0QsT0FBTztRQUNILE1BQU0sRUFBRSx1Q0FBdUM7UUFDL0MsTUFBTSxFQUFFLENBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBRTtLQUNqQyxDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBWlcsUUFBQSxpQ0FBaUMscUNBWTVDO0FBRUY7OztHQUdHO0FBQ0ksTUFBTSxtQ0FBbUMsR0FBRyxDQUMvQyxXQUF5QixFQUN6QixPQUFvQyxFQUN0QyxFQUFFO0lBQ0EsSUFBQSwyQkFBaUIsRUFBQyxDQUFFLFdBQVcsRUFBRSxPQUFPLENBQUUsQ0FBQyxDQUFBO0lBQzNDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztRQUM3QixNQUFNLElBQUksU0FBUyxDQUFDLHlFQUF5RSxDQUFDLENBQUM7SUFDbkcsQ0FBQztTQUFNLENBQUM7UUFDSixJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2xDLFdBQVcsR0FBRyxLQUFNLFdBQXNCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxFQUFrQixDQUFBO1FBQzdFLENBQUM7SUFDTCxDQUFDO0lBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFBLDZCQUFtQixFQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUEsb0JBQVUsRUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQzFGLE1BQU0sSUFBSSxTQUFTLENBQUMsOEVBQThFLENBQUMsQ0FBQTtJQUN2RyxDQUFDO0lBQ0QsT0FBTztRQUNILE1BQU0sRUFBRSx1Q0FBdUM7UUFDL0MsTUFBTSxFQUFFLENBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBRTtLQUNuQyxDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBbkJXLFFBQUEsbUNBQW1DLHVDQW1COUM7QUFFRjs7O0dBR0c7QUFDSSxNQUFNLG9CQUFvQixHQUFHLENBQUMsTUFBMEIsRUFBRSxFQUFFO0lBQy9ELElBQUEsMkJBQWlCLEVBQUMsTUFBTSxDQUFDLENBQUE7SUFDekIsSUFBSSxDQUFDLElBQUEsNkJBQW1CLEVBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBQSxvQkFBVSxFQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDMUQsTUFBTSxJQUFJLFNBQVMsQ0FBQyw4REFBOEQsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFDRCxPQUFPO1FBQ0gsTUFBTSxFQUFFLDBCQUEwQjtRQUNsQyxNQUFNLEVBQUUsQ0FBRSxNQUFNLENBQUU7S0FDckIsQ0FBQztBQUNOLENBQUMsQ0FBQztBQVRXLFFBQUEsb0JBQW9CLHdCQVMvQjtBQUVGOzs7R0FHRztBQUNJLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxPQUE4QixFQUFFLEVBQUU7SUFDbEUsSUFBQSwyQkFBaUIsRUFBQyxPQUFPLENBQUMsQ0FBQTtJQUMxQixJQUFJLENBQUMsSUFBQSw2QkFBbUIsRUFBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFBLG9CQUFVLEVBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUM1RCxNQUFNLElBQUksU0FBUyxDQUFDLDBEQUEwRCxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUNELE9BQU87UUFDSCxNQUFNLEVBQUUseUJBQXlCO1FBQ2pDLE1BQU0sRUFBRSxDQUFFLE9BQU8sQ0FBRTtLQUN0QixDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBVFcsUUFBQSxtQkFBbUIsdUJBUzlCO0FBRUY7OztHQUdHO0FBQ0ksTUFBTSxxQkFBcUIsR0FBRyxDQUFDLE1BQTBCLEVBQUUsRUFBRTtJQUNoRSxJQUFBLDJCQUFpQixFQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ3pCLElBQUksQ0FBQyxJQUFBLDZCQUFtQixFQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUEsb0JBQVUsRUFBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQzFELE1BQU0sSUFBSSxTQUFTLENBQUMsK0RBQStELENBQUMsQ0FBQztJQUN6RixDQUFDO0lBQ0QsT0FBTztRQUNILE1BQU0sRUFBRSwyQkFBMkI7UUFDbkMsTUFBTSxFQUFFLENBQUUsTUFBTSxDQUFFO0tBQ3JCLENBQUM7QUFDTixDQUFDLENBQUM7QUFUVyxRQUFBLHFCQUFxQix5QkFTaEM7QUFFRjs7O0dBR0c7QUFDSSxNQUFNLGtCQUFrQixHQUFHLENBQUMsSUFBc0IsRUFBRSxFQUFFO0lBQ3pELElBQUEsMkJBQWlCLEVBQUMsSUFBSSxDQUFDLENBQUE7SUFDdkIsSUFBSSxDQUFDLElBQUEscUJBQVcsRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUEsb0JBQVUsRUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzFDLE1BQU0sSUFBSSxTQUFTLENBQUMsNkRBQTZELENBQUMsQ0FBQztJQUN2RixDQUFDO0lBQ0QsT0FBTztRQUNILE1BQU0sRUFBRSx3QkFBd0I7UUFDaEMsTUFBTSxFQUFFLENBQUUsSUFBSSxDQUFFO0tBQ25CLENBQUM7QUFDTixDQUFDLENBQUM7QUFUVyxRQUFBLGtCQUFrQixzQkFTN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgY2hlY2tScGNXaWxkY2FyZHMsXHJcbiAgICBpc0hleFN0cmluZyxcclxuICAgIGlzSGV4U3RyaW5nT2ZMZW5ndGgsXHJcbiAgICBpc1dpbGRjYXJkLFxyXG59IGZyb20gXCIuLi8uLi8uLi9iaW4vaGVscGVyc1wiXHJcblxyXG5pbXBvcnQgeyBcclxuICAgIC8vIENyb3NzQ2hhaW5SUEMsIFxyXG4gICAgQmxvY2tOdW1iZXIsIFxyXG4gICAgQnl0ZXMsIFxyXG4gICAgQnl0ZXMzMiwgXHJcbiAgICBIZXhTdHJpbmcsXHJcbiAgICBIZXhTdHJpbmdPZkxlbmd0aCxcclxuICAgIFdpbGRjYXJkLFxyXG59IGZyb20gXCIuXCI7XHJcblxyXG5leHBvcnQgdHlwZSBFdGhBZGRyZXNzID0gSGV4U3RyaW5nT2ZMZW5ndGg8NDA+O1xyXG5leHBvcnQgdHlwZSBFdGhCbG9ja0hlYWQgPSBCbG9ja051bWJlciB8IEV0aEJsb2NrVGFnIHwgV2lsZGNhcmQ7XHJcbmV4cG9ydCB0eXBlIEV0aEJsb2NrVGFnID0gXCJsYXRlc3RcIiB8IFwiZWFybGllc3RcIiB8IFwicGVuZGluZ1wiIHwgXCJmaW5hbGl6ZWRcIiBcclxuXHJcbmZ1bmN0aW9uIF9pc0Jsb2NrSGVhZChibG9jazogRXRoQmxvY2tIZWFkKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIGJsb2NrID09PSBcImxhdGVzdFwiIHx8IGJsb2NrID09PSBcImVhcmxpZXN0XCIgfHwgYmxvY2sgPT09IFwiZmluYWxpemVkXCIgfHwgYmxvY2sgPT09IFwicGVuZGluZ1wiXHJcbiAgICAgICAgICAgIHx8IHR5cGVvZiBibG9jayA9PT0gJ251bWJlcidcclxuICAgICAgICAgICAgfHwgaXNIZXhTdHJpbmdPZkxlbmd0aChibG9jaywgMzIpXHJcbiAgICAgICAgICAgIHx8IGlzV2lsZGNhcmQoYmxvY2spXHJcbiAgICApO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0cmlldmUgdGhlIG51bWJlciBvZiBtb3N0IHJlY2VudCBibG9jay5cclxuICovIFxyXG5leHBvcnQgY29uc3QgYmxvY2tOdW1iZXIgPSAoKSA9PiAoeyBtZXRob2Q6IFwiZXRoX2Jsb2NrTnVtYmVyXCIgfSk7XHJcblxyXG4vKipcclxuICogSW52b2tlIG1lc3NhZ2UgY2FsbCBpbW1lZGlhdGVseSB3aXRob3V0IGNyZWF0aW5nIGEgdHJhbnNhY3Rpb24gXHJcbiAqIG9uIHRoZSByZW1vdGUgYmxvY2sgY2hhaW4uIE9mdGVuIHVzZWQgZm9yIGV4ZWN1dGluZyByZWFkLW9ubHkgc21hcnQgY29udHJhY3QgXHJcbiAqIGZ1bmN0aW9ucywgZm9yIGV4YW1wbGUgdGhlIGJhbGFuY2VPZiBmb3IgYW4gRVJDLTIwIGNvbnRyYWN0LlxyXG4gKiBAcGFyYW0gdHggVGhlIHRyYW5zYWN0aW9uIGNhbGwgb2JqZWN0LlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGNhbGwgPSAodHg6IHtcclxuICAgIGZyb20/OiBFdGhBZGRyZXNzIHwgV2lsZGNhcmQsXHJcbiAgICB0bzogRXRoQWRkcmVzcyB8IFdpbGRjYXJkLFxyXG4gICAgZ2FzPzogbnVtYmVyIHwgSGV4U3RyaW5nIHwgV2lsZGNhcmQsXHJcbiAgICBnYXNQcmljZT86IG51bWJlciB8IEhleFN0cmluZyB8IFdpbGRjYXJkLFxyXG4gICAgdmFsdWU/OiBudW1iZXIgfCBIZXhTdHJpbmcgfCBXaWxkY2FyZCxcclxuICAgIGRhdGE/OiBIZXhTdHJpbmcgIHwgV2lsZGNhcmRcclxufSkgPT4ge1xyXG4gICAgY2hlY2tScGNXaWxkY2FyZHModHgpXHJcbiAgICBpZiAodHg/LmZyb20gJiYgIWlzSGV4U3RyaW5nT2ZMZW5ndGgodHg/LmZyb20sIDIwKSAmJiAhaXNXaWxkY2FyZCh0eD8uZnJvbSkpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwicnBjLmV0aC5jYWxsOiBpbnZhbGlkICdmcm9tJyBhZGRyZXNzXCIpO1xyXG4gICAgfVxyXG4gICAgaWYgKHR4Py5nYXMgJiYgIU51bWJlci5pc0ludGVnZXIodHguZ2FzKSAmJiAhaXNIZXhTdHJpbmdPZkxlbmd0aCh0eC5nYXMsIDMyKSAmJiAhaXNXaWxkY2FyZCh0eC5nYXMpKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInJwYy5ldGguY2FsbDogaW52YWxpZCAnZ2FzJyB2YWx1ZVwiKVxyXG4gICAgfVxyXG4gICAgaWYgKHR4Py5nYXNQcmljZSAmJiAhTnVtYmVyLmlzSW50ZWdlcih0eC5nYXNQcmljZSkgJiYgIWlzSGV4U3RyaW5nT2ZMZW5ndGgodHguZ2FzUHJpY2UsIDMyKSAmJiAhaXNXaWxkY2FyZCh0eC5nYXNQcmljZSkpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwicnBjLmV0aC5jYWxsOiBpbnZhbGlkICdnYXNQcmljZScgdmFsdWVcIilcclxuICAgIH1cclxuICAgIGlmICh0eD8udmFsdWUgJiYgIU51bWJlci5pc0ludGVnZXIodHgudmFsdWUpICYmICFpc0hleFN0cmluZ09mTGVuZ3RoKHR4LnZhbHVlLCAzMikgJiYgIWlzV2lsZGNhcmQodHgudmFsdWUpKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInJwYy5ldGguY2FsbDogaW52YWxpZCB0cmFuc2FjdGlvbiAndmFsdWUnXCIpXHJcbiAgICB9XHJcbiAgICBpZiAodHg/LmRhdGEgJiYgIWlzSGV4U3RyaW5nKHR4LmRhdGEpICYmICFpc1dpbGRjYXJkKHR4LmRhdGEpKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInJwYy5ldGguY2FsbDogaW52YWxpZCB0cmFuc2FjdGlvbiAnZGF0YSdcIilcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgbWV0aG9kOiBcImV0aF9jYWxsXCIsIFxyXG4gICAgICAgIHBhcmFtczogWyB0eCBdXHJcbiAgICB9O1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIEdlbmVyYXRlcyBhbmQgcmV0dXJucyBhbiBlc3RpbWF0ZSBvZiBob3cgbXVjaCBnYXMgaXMgbmVjZXNzYXJ5IFxyXG4gKiB0byBhbGxvdyB0aGUgdHJhbnNhY3Rpb24gdG8gY29tcGxldGUuIFRoZSB0cmFuc2FjdGlvbiB3aWxsIG5vdCBiZSBcclxuICogYWRkZWQgdG8gdGhlIGJsb2NrY2hhaW4uIE5vdGUgdGhhdCB0aGUgZXN0aW1hdGUgbWF5IGJlIHNpZ25pZmljYW50bHkgXHJcbiAqIG1vcmUgdGhhbiB0aGUgYW1vdW50IG9mIGdhcyBhY3R1YWxseSB1c2VkIGJ5IHRoZSB0cmFuc2FjdGlvbiwgZm9yIGEgXHJcbiAqIHZhcmlldHkgb2YgcmVhc29ucyBpbmNsdWRpbmcgRVZNIG1lY2hhbmljcyBhbmQgbm9kZSBwZXJmb3JtYW5jZS5cclxuICogQHBhcmFtIHR4IFRoZSB0cmFuc2FjdGlvbiBjYWxsIG9iamVjdC5cclxuICovXHJcbmV4cG9ydCBjb25zdCBlc3RpbWF0ZUdhcyA9ICh0eDoge1xyXG4gICAgZnJvbT86IEV0aEFkZHJlc3MgfCBXaWxkY2FyZCxcclxuICAgIHRvOiBFdGhBZGRyZXNzIHwgV2lsZGNhcmQsXHJcbiAgICBnYXM/OiBudW1iZXIgfCBIZXhTdHJpbmcgfCBXaWxkY2FyZCxcclxuICAgIGdhc1ByaWNlPzogbnVtYmVyIHwgSGV4U3RyaW5nIHwgV2lsZGNhcmQsXHJcbiAgICB2YWx1ZT86IG51bWJlciB8IEhleFN0cmluZyB8IFdpbGRjYXJkLFxyXG4gICAgZGF0YT86IEhleFN0cmluZyB8IFdpbGRjYXJkXHJcbn0pID0+IHtcclxuICAgIGNoZWNrUnBjV2lsZGNhcmRzKHR4KVxyXG4gICAgaWYgKHR4Py5mcm9tICYmICFpc0hleFN0cmluZ09mTGVuZ3RoKHR4Py5mcm9tLCAyMCkgJiYgIWlzV2lsZGNhcmQodHg/LmZyb20pKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInJwYy5ldGguZXN0aW1hdGVHYXM6IGludmFsaWQgJ2Zyb20nIGFkZHJlc3NcIik7XHJcbiAgICB9XHJcbiAgICBpZiAodHg/LmdhcyAmJiAhTnVtYmVyLmlzSW50ZWdlcih0eC5nYXMpICYmICFpc0hleFN0cmluZ09mTGVuZ3RoKHR4LmdhcywgMzIpICYmICFpc1dpbGRjYXJkKHR4LmdhcykpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwicnBjLmV0aC5lc3RpbWF0ZUdhczogaW52YWxpZCAnZ2FzJyB2YWx1ZVwiKVxyXG4gICAgfVxyXG4gICAgaWYgKHR4Py5nYXNQcmljZSAmJiAhTnVtYmVyLmlzSW50ZWdlcih0eC5nYXNQcmljZSkgJiYgIWlzSGV4U3RyaW5nT2ZMZW5ndGgodHguZ2FzUHJpY2UsIDMyKSAmJiAhaXNXaWxkY2FyZCh0eC5nYXNQcmljZSkpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwicnBjLmV0aC5lc3RpbWF0ZUdhczogaW52YWxpZCAnZ2FzUHJpY2UnIHZhbHVlXCIpXHJcbiAgICB9XHJcbiAgICBpZiAodHg/LnZhbHVlICYmICFOdW1iZXIuaXNJbnRlZ2VyKHR4LnZhbHVlKSAmJiAhaXNIZXhTdHJpbmdPZkxlbmd0aCh0eC52YWx1ZSwgMzIpICYmICFpc1dpbGRjYXJkKHR4LnZhbHVlKSkge1xyXG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJycGMuZXRoLmVzdGltYXRlR2FzOiBpbnZhbGlkIHRyYW5zYWN0aW9uICd2YWx1ZSdcIilcclxuICAgIH1cclxuICAgIGlmICh0eD8uZGF0YSAmJiAhaXNIZXhTdHJpbmcodHguZGF0YSkgJiYgIWlzV2lsZGNhcmQodHguZGF0YSkpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwicnBjLmV0aC5lc3RpbWF0ZUdhczogaW52YWxpZCB0cmFuc2FjdGlvbiAnZGF0YSdcIilcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgbWV0aG9kOiBcImV0aF9lc3RpbWF0ZUdhc1wiLCBcclxuICAgICAgICBwYXJhbXM6IFsgdHggXVxyXG4gICAgfTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBSZXRyaWV2ZSB0aGUgYmFsYW5jZSBvZiB0aGUgYWNjb3VudCBvZiBnaXZlbiBhZGRyZXNzLlxyXG4gKiBAcGFyYW0gYWRkcmVzcyBXZWIzIGFkZHJlc3Mgb24gcmVtb3RlIEVWTSBjaGFpbi5cclxuICovXHJcbmV4cG9ydCBjb25zdCBnZXRCYWxhbmNlID0gKGFkZHJlc3M6IEV0aEFkZHJlc3MgfCBXaWxkY2FyZCwgYmxvY2s/OiBFdGhCbG9ja0hlYWQgfCBXaWxkY2FyZCkgPT4ge1xyXG4gICAgY2hlY2tScGNXaWxkY2FyZHMoW2FkZHJlc3MsIGJsb2NrXSlcclxuICAgIGlmICghaXNIZXhTdHJpbmdPZkxlbmd0aChhZGRyZXNzLCAyMCkgJiYgIWlzV2lsZGNhcmQoYWRkcmVzcykpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwicnBjLmV0aC5nZXRCYWxhbmNlOiBpbnZhbGlkIFdlYjMgYWRkcmVzcyBmb3JtYXRcIik7XHJcbiAgICB9IFxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBtZXRob2Q6IFwiZXRoX2dldEJhbGFuY2VcIiwgXHJcbiAgICAgICAgcGFyYW1zOiBbIGFkZHJlc3MsIGJsb2NrIF1cclxuICAgIH1cclxufTtcclxuXHJcbi8qKlxyXG4gKiBSZXRyaWV2ZSBjb2RlIGF0IGEgZ2l2ZW4gYWRkcmVzcy5cclxuICogQHBhcmFtIGFkZHJlc3MgRXRoQWRkcmVzcyBmcm9tIHdoZXJlIHRvIGdldCB0aGUgY29kZS5cclxuICovXHJcbmV4cG9ydCBjb25zdCBnZXRDb2RlID0gKGFkZHJlc3M6IEV0aEFkZHJlc3MgfCBXaWxkY2FyZCkgPT4ge1xyXG4gICAgY2hlY2tScGNXaWxkY2FyZHMoYWRkcmVzcylcclxuICAgIGlmICghaXNIZXhTdHJpbmdPZkxlbmd0aChhZGRyZXNzLCAyMCkgJiYgIWlzV2lsZGNhcmQoYWRkcmVzcykpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwicnBjLmV0aC5nZXRDb2RlOiBpbnZhbGlkIFdlYjMgYWRkcmVzcyBmb3JtYXRcIik7XHJcbiAgICB9IFxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBtZXRob2Q6IFwiZXRoX2dldENvZGVcIiwgXHJcbiAgICAgICAgcGFyYW1zOiBbIGFkZHJlc3MgXSxcclxuICAgIH07XHJcbn07XHJcblxyXG4vKipcclxuICogUmV0cmlldmUgYW4gYXJyYXkgb2YgYWxsIGxvZ3MgbWF0Y2hpbmcgYSBnaXZlbiBmaWx0ZXIgb2JqZWN0LlxyXG4gKiBAcGFyYW0gZmlsdGVyIFRoZSBmaWx0ZXIgb3B0aW9ucy5cclxuICovXHJcbmV4cG9ydCBjb25zdCBnZXRMb2dzID0gKGZpbHRlcjoge1xyXG4gICAgZnJvbUJsb2NrPzogRXRoQmxvY2tIZWFkLFxyXG4gICAgdG9CbG9jaz86IEV0aEJsb2NrSGVhZCxcclxuICAgIGFkZHJlc3M/OiBFdGhBZGRyZXNzIHwgRXRoQWRkcmVzc1tdIHwgV2lsZGNhcmQsXHJcbiAgICB0b3BpY3M/OiBCeXRlczMyW10sXHJcbiAgICBibG9ja0hhc2g/OiBCeXRlczMyIHwgV2lsZGNhcmQsXHJcbn0pID0+IHtcclxuICAgIGNoZWNrUnBjV2lsZGNhcmRzKGZpbHRlcilcclxuICAgIGlmIChmaWx0ZXI/LmJsb2NrSGFzaCAmJiAoZmlsdGVyPy5mcm9tQmxvY2sgfHwgZmlsdGVyPy50b0Jsb2NrKSkge1xyXG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJycGMuZXRoLmdldExvZ3M6IHVuY29tcGxpYW50IHVzZSBvZiAnYmxvY2tIYXNoJ1wiKVxyXG4gICAgfVxyXG4gICAgaWYgKGZpbHRlcj8uZnJvbUJsb2NrKSB7XHJcbiAgICAgICAgaWYgKCFfaXNCbG9ja0hlYWQoZmlsdGVyPy5mcm9tQmxvY2spKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJycGMuZXRoLmdldExvZ3M6IGludmFsaWQgJ2Zyb21CbG9jaycgdmFsdWVcIik7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZmlsdGVyPy5mcm9tQmxvY2sgPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgICAgIGZpbHRlci5mcm9tQmxvY2sgPSBgMHgkeyhmaWx0ZXI/LmZyb21CbG9jayBhcyBudW1iZXIpLnRvU3RyaW5nKDE2KX1gIGFzIEV0aEJsb2NrSGVhZFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChmaWx0ZXI/LnRvQmxvY2spIHtcclxuICAgICAgICBpZiAoIV9pc0Jsb2NrSGVhZChmaWx0ZXI/LnRvQmxvY2spKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJycGMuZXRoLmdldExvZ3M6IGludmFsaWQgJ3RvQmxvY2snIHZhbHVlXCIpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGZpbHRlcj8udG9CbG9jayA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICAgICAgZmlsdGVyLnRvQmxvY2sgPSBgMHgkeyhmaWx0ZXI/LnRvQmxvY2sgYXMgbnVtYmVyKS50b1N0cmluZygxNil9YCBhcyBFdGhCbG9ja0hlYWRcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoZmlsdGVyPy5ibG9ja0hhc2ggJiYgIWlzSGV4U3RyaW5nT2ZMZW5ndGgoZmlsdGVyLmJsb2NrSGFzaCwgMzIpICYmICFpc1dpbGRjYXJkKGZpbHRlci5ibG9ja0hhc2gpKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInJwYy5ldGguZ2V0TG9nczogaW52YWxpZCAnYmxvY2tIYXNoJyB2YWx1ZVwiKTtcclxuICAgIH1cclxuICAgIGlmIChmaWx0ZXI/LnRvcGljcykge1xyXG4gICAgICAgIGZpbHRlci50b3BpY3MubWFwKCh2YWx1ZTogQnl0ZXMzMiwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIWlzSGV4U3RyaW5nT2ZMZW5ndGgodmFsdWUsIDMyKSAmJiAhaXNXaWxkY2FyZCh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYHJwYy5ldGguZ2V0TG9nczogdG9waWMgIyR7aW5kZXh9OiBpbnZhbGlkIGhhc2hgKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgbWV0aG9kOiBcImV0aF9nZXRMb2dzXCIsIFxyXG4gICAgICAgIHBhcmFtczogWyBmaWx0ZXIgXVxyXG4gICAgfTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBSZXRyaWV2ZSBhbiBlc3RpbWF0ZSBvZiB0aGUgY3VycmVudCBwcmljZSBwZXIgZ2FzIGluIHdlaS4gXHJcbiAqLyBcclxuZXhwb3J0IGNvbnN0IGdhc1ByaWNlID0gKCkgPT4gKHsgbWV0aG9kOiBcImV0aF9nYXNQcmljZVwiIH0pO1xyXG5cclxuLyoqXHJcbiAqIFJldHJpZXZlIHRoZSB2YWx1ZSBmcm9tIGEgc3RvcmFnZSBwb3NpdGlvbiBhdCBhIGdpdmVuIGFkZHJlc3MuXHJcbiAqIEBwYXJhbSBhZGRyZXNzIEV0aEFkZHJlc3Mgb2YgdGhlIHN0b3JhZ2UuXHJcbiAqIEBwYXJhbSBvZmZzZXQgT2Zmc2V0IHdpdGhpbiBzdG9yYWdlIGFkZHJlc3MuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgZ2V0U3RvcmFnZUF0ID0gKGFkZHJlc3M6IEV0aEFkZHJlc3MgfCBXaWxkY2FyZCwgb2Zmc2V0OiBCeXRlczMyIHwgV2lsZGNhcmQpID0+IHtcclxuICAgIGNoZWNrUnBjV2lsZGNhcmRzKFsgYWRkcmVzcywgb2Zmc2V0IF0pXHJcbiAgICBpZiAoIWlzSGV4U3RyaW5nT2ZMZW5ndGgoYWRkcmVzcywgMjApICYmICFpc1dpbGRjYXJkKGFkZHJlc3MpKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInJwYy5ldGguZ2V0U3RvcmFnZUF0OiBpbnZhbGlkIFdlYjMgYWRkcmVzcyBmb3JtYXRcIik7XHJcbiAgICB9IFxyXG4gICAgaWYgKCFpc0hleFN0cmluZ09mTGVuZ3RoKG9mZnNldCwgMzIpICYmICFpc1dpbGRjYXJkKG9mZnNldCkpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwicnBjLmV0aC5nZXRTdG9yYWdlQXQ6IGludmFsaWQgc3RvcmFnZSBvZmZzZXQgdmFsdWVcIik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIG1ldGhvZDogXCJldGhfZ2V0U3RvcmFnZUF0XCIsIFxyXG4gICAgICAgIHBhcmFtczogWyBhZGRyZXNzLCBvZmZzZXQgXSxcclxuICAgIH07XHJcbn07XHJcblxyXG4vKipcclxuICogUmV0cmlldmUgdGhlIGluZm9ybWF0aW9uIGFib3V0IGEgcmVtb3RlIHRyYW5zYWN0aW9uIGdpdmVuIGEgYmxvY2sgaGFzaCBhbmQgYSB0cmFuc2FjdGlvbiBpbmRleC5cclxuICogQHBhcmFtIHR4SGFzaCBIYXNoIG9mIHRoZSByZW1vdGUgdHJhbnNhY3Rpb24uXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgZ2V0VHJhbnNhY3Rpb25CeUJsb2NrSGFzaEFuZEluZGV4ID0gKGJsb2NrSGFzaDogQnl0ZXMzMiB8IFdpbGRjYXJkLCB0eEluZGV4OiBudW1iZXIgfCBCeXRlczMyIHwgV2lsZGNhcmQpID0+IHtcclxuICAgIGNoZWNrUnBjV2lsZGNhcmRzKFsgYmxvY2tIYXNoLCB0eEluZGV4IF0pXHJcbiAgICBpZiAoIWlzSGV4U3RyaW5nT2ZMZW5ndGgoYmxvY2tIYXNoLCAzMikgJiYgIWlzV2lsZGNhcmQoYmxvY2tIYXNoKSkge1xyXG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJycGMuZXRoLmdldFRyYW5zYWN0aW9uQnlCbG9ja0hhc2hBbmRJbmRleDogaW52YWxpZCBibG9jayBoYXNoIHZhbHVlXCIpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKHR4SW5kZXgpICYmICFpc0hleFN0cmluZ09mTGVuZ3RoKHR4SW5kZXgsIDMyKSAmJiAhaXNXaWxkY2FyZCh0eEluZGV4KSkge1xyXG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJycGMuZXRoLmdldFRyYW5zYWN0aW9uQnlCbG9ja0hhc2hBbmRJbmRleDogaW52YWxpZCB0cmFuc2FjdGlvbiBpbmRleCB2YWx1ZVwiKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBtZXRob2Q6IFwiZXRoX2dldFRyYW5zYWN0aW9uQnlCbG9ja0hhc2hBbmRJbmRleFwiLCBcclxuICAgICAgICBwYXJhbXM6IFsgYmxvY2tIYXNoLCB0eEluZGV4IF1cclxuICAgIH07XHJcbn07XHJcblxyXG4vKipcclxuICogUmV0cmlldmUgdGhlIGluZm9ybWF0aW9uIGFib3V0IGEgcmVtb3RlIHRyYW5zYWN0aW9uIGdpdmVuIGEgYmxvY2sgbnVtYmVyIGFuZCBhIHRyYW5zYWN0aW9uIGluZGV4LlxyXG4gKiBAcGFyYW0gdHhIYXNoIEhhc2ggb2YgdGhlIHJlbW90ZSB0cmFuc2FjdGlvbi5cclxuICovXHJcbmV4cG9ydCBjb25zdCBnZXRUcmFuc2FjdGlvbkJ5QmxvY2tOdW1iZXJBbmRJbmRleCA9IChcclxuICAgIGJsb2NrTnVtYmVyOiBFdGhCbG9ja0hlYWQsXHJcbiAgICB0eEluZGV4OiBudW1iZXIgfCBCeXRlczMyIHwgV2lsZGNhcmRcclxuKSA9PiB7XHJcbiAgICBjaGVja1JwY1dpbGRjYXJkcyhbIGJsb2NrTnVtYmVyLCB0eEluZGV4IF0pXHJcbiAgICBpZiAoIV9pc0Jsb2NrSGVhZChibG9ja051bWJlcikpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwicnBjLmV0aC5nZXRUcmFuc2FjdGlvbkJ5QmxvY2tOdW1iZXJBbmRJbmRleDogaW52YWxpZCBibG9jayBudW1iZXIgdmFsdWVcIik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmICh0eXBlb2YgYmxvY2tOdW1iZXIgPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgICAgIGJsb2NrTnVtYmVyID0gYDB4JHsoYmxvY2tOdW1iZXIgYXMgbnVtYmVyKS50b1N0cmluZygxNil9YCBhcyBFdGhCbG9ja0hlYWRcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoIU51bWJlci5pc0ludGVnZXIodHhJbmRleCkgJiYgIWlzSGV4U3RyaW5nT2ZMZW5ndGgodHhJbmRleCwgMzIpICYmICFpc1dpbGRjYXJkKHR4SW5kZXgpKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInJwYy5ldGguZ2V0VHJhbnNhY3Rpb25CeUJsb2NrTnVtYmVyQW5kSW5kZXg6IGludmFsaWQgdHJhbnNhY3Rpb24gaW5kZXggdmFsdWVcIilcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgbWV0aG9kOiBcImV0aF9nZXRUcmFuc2FjdGlvbkJ5QmxvY2tIYXNoQW5kSW5kZXhcIiwgXHJcbiAgICAgICAgcGFyYW1zOiBbIGJsb2NrTnVtYmVyLCB0eEluZGV4IF0sXHJcbiAgICB9O1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIFJldHJpZXZlIHRoZSBpbmZvcm1hdGlvbiBhYm91dCBhIHJlbW90ZSB0cmFuc2FjdGlvbiBnaXZlbiBpdHMgdHJhbnNhY3Rpb24gaGFzaC5cclxuICogQHBhcmFtIHR4SGFzaCBIYXNoIG9mIHRoZSByZW1vdGUgdHJhbnNhY3Rpb24uXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgZ2V0VHJhbnNhY3Rpb25CeUhhc2ggPSAodHhIYXNoOiBCeXRlczMyIHwgV2lsZGNhcmQpID0+IHtcclxuICAgIGNoZWNrUnBjV2lsZGNhcmRzKHR4SGFzaClcclxuICAgIGlmICghaXNIZXhTdHJpbmdPZkxlbmd0aCh0eEhhc2gsIDMyKSAmJiAhaXNXaWxkY2FyZCh0eEhhc2gpKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInJwYy5ldGguZ2V0VHJhbnNhY3Rpb25CeUhhc2g6IGludmFsaWQgdHJhbnNhY3Rpb24gaGFzaCB2YWx1ZVwiKTtcclxuICAgIH1cclxuICAgIHJldHVybiB7IFxyXG4gICAgICAgIG1ldGhvZDogXCJldGhfZ2V0VHJhbnNhY3Rpb25CeUhhc2hcIiwgXHJcbiAgICAgICAgcGFyYW1zOiBbIHR4SGFzaCBdLFxyXG4gICAgfTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBSZXRyaWV2ZSB0aGUgbnVtYmVyIG9mIHRyYW5zYWN0aW9ucyBzZW50IGZyb20gYW4gYWRkcmVzcy5cclxuICogQHBhcmFtIGFkZHJlc3MgRXRoQWRkcmVzcyBmcm9tIHdoZXJlIHRvIGdldCB0cmFuc2FjdGlvbiBjb3VudC5cclxuICovXHJcbmV4cG9ydCBjb25zdCBnZXRUcmFuc2FjdGlvbkNvdW50ID0gKGFkZHJlc3M6IEV0aEFkZHJlc3MgfCBXaWxkY2FyZCkgPT4ge1xyXG4gICAgY2hlY2tScGNXaWxkY2FyZHMoYWRkcmVzcylcclxuICAgIGlmICghaXNIZXhTdHJpbmdPZkxlbmd0aChhZGRyZXNzLCAyMCkgJiYgIWlzV2lsZGNhcmQoYWRkcmVzcykpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwicnBjLmV0aC5nZXRUcmFuc2FjdGlvbkNvdW50OiBpbnZhbGlkIFdlYjMgYWRkcmVzcyBmb3JtYXRcIik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIG1ldGhvZDogXCJldGhfZ2V0VHJhbnNhY3Rpb25Db3VudFwiLCBcclxuICAgICAgICBwYXJhbXM6IFsgYWRkcmVzcyBdLFxyXG4gICAgfTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBSZXRyaWV2ZSB0aGUgcmVjZWlwdCBvZiBhIHJlbW90ZSB0cmFuc2FjdGlvbiBnaXZlbiBpdHMgdHJhbnNhY3Rpb24gaGFzaC5cclxuICogQHBhcmFtIHR4SGFzaCBIYXNoIG9mIHRoZSByZW1vdGUgdHJhbnNhY3Rpb24uXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgZ2V0VHJhbnNhY3Rpb25SZWNlaXB0ID0gKHR4SGFzaDogQnl0ZXMzMiB8IFdpbGRjYXJkKSA9PiB7XHJcbiAgICBjaGVja1JwY1dpbGRjYXJkcyh0eEhhc2gpXHJcbiAgICBpZiAoIWlzSGV4U3RyaW5nT2ZMZW5ndGgodHhIYXNoLCAzMikgJiYgIWlzV2lsZGNhcmQodHhIYXNoKSkge1xyXG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJycGMuZXRoLmdldFRyYW5zYWN0aW9uUmVjZWlwdDogaW52YWxpZCB0cmFuc2FjdGlvbiBoYXNoIHZhbHVlXCIpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBtZXRob2Q6IFwiZXRoX2dldFRyYW5zYWN0aW9uUmVjZWlwdFwiLCBcclxuICAgICAgICBwYXJhbXM6IFsgdHhIYXNoIF0sXHJcbiAgICB9O1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIEludm9rZSByZW1vdGUgY2FsbCB0cmFuc2FjdGlvbiwgb3IgcmVtb3RlIGNvbnRyYWN0IGNyZWF0aW9uLiBcclxuICogQHBhcmFtIGRhdGEgVGhlIHNpZ25lZCB0cmFuc2FjdGlvbiBkYXRhLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IHNlbmRSYXdUcmFuc2FjdGlvbiA9IChkYXRhOiBCeXRlcyB8IFdpbGRjYXJkKSA9PiB7XHJcbiAgICBjaGVja1JwY1dpbGRjYXJkcyhkYXRhKVxyXG4gICAgaWYgKCFpc0hleFN0cmluZyhkYXRhKSAmJiAhaXNXaWxkY2FyZChkYXRhKSkge1xyXG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJycGMuZXRoLnNlbmRSYXdUcmFuc2FjdGlvbjogaW52YWxpZCBzaWduZWQgdHJhbnNhY3Rpb24gZGF0YVwiKTtcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgbWV0aG9kOiBcImV0aF9zZW5kUmF3VHJhbnNhY3Rpb25cIiwgXHJcbiAgICAgICAgcGFyYW1zOiBbIGRhdGEgXVxyXG4gICAgfTtcclxufTtcclxuIl19
|
|
@@ -36,4 +36,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.wit = exports.eth = void 0;
|
|
37
37
|
exports.eth = __importStar(require("./eth"));
|
|
38
38
|
exports.wit = __importStar(require("./wit"));
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3JhZG9uL2NjZHIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQTRCO0FBQzVCLDZDQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGFzIGV0aCBmcm9tIFwiLi9ldGhcIlxyXG5leHBvcnQgKiBhcyB3aXQgZnJvbSBcIi4vd2l0XCJcclxuXHJcbmV4cG9ydCB0eXBlIEhleFN0cmluZ09mTGVuZ3RoPE1heD4gPSBzdHJpbmcgJiB7XHJcbiAgICBtYXg6IE1heDtcclxuICAgIHJlYWRvbmx5IEhleFN0cmluZ09mTGVuZ3RoOiB1bmlxdWUgc3ltYm9sXHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBIZXhTdHJpbmcgPSBzdHJpbmcgJiB7XHJcbiAgICByZWFkb25seSBIZXhTdHJpbmc6IHVuaXF1ZSBzeW1ib2xcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIEJ5dGVzMzIgPSBIZXhTdHJpbmdPZkxlbmd0aDw2ND47XHJcbmV4cG9ydCB0eXBlIEJ5dGVzID0gSGV4U3RyaW5nO1xyXG5leHBvcnQgdHlwZSBCbG9ja051bWJlciA9IG51bWJlciB8IEJ5dGVzMzI7XHJcbmV4cG9ydCB0eXBlIFdpbGRjYXJkID0gc3RyaW5nXHJcbiJdfQ==
|
|
@@ -47,4 +47,4 @@ const getValueTransfer = (hash, mode) => {
|
|
|
47
47
|
};
|
|
48
48
|
};
|
|
49
49
|
exports.getValueTransfer = getValueTransfer;
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9yYWRvbi9jY2RyL3dpdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrREFBeUY7QUFPekY7OztHQUdHO0FBQ0ksTUFBTSxVQUFVLEdBQUcsQ0FBQyxPQUE4QixFQUFFLEVBQUU7SUFDekQsSUFBQSwyQkFBaUIsRUFBQyxPQUFPLENBQUMsQ0FBQTtJQUMxQixJQUNJLENBQUMsSUFBQSxvQkFBVSxFQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ3BCLENBQUMsT0FBTyxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLENBQUMsTUFBTSxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQ2hHLEVBQ0gsQ0FBQztRQUNDLE1BQU0sSUFBSSxTQUFTLENBQUMscUNBQXFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBQ0QsT0FBTztRQUNILE1BQU0sRUFBRSxhQUFhO1FBQ3JCLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUU7S0FDM0IsQ0FBQztBQUNOLENBQUMsQ0FBQztBQWJXLFFBQUEsVUFBVSxjQWFyQjtBQUVGOzs7R0FHRztBQUNJLE1BQU0sY0FBYyxHQUFHLENBQUMsTUFBMEIsRUFBRSxFQUFFO0lBQ3pELElBQUEsMkJBQWlCLEVBQUMsTUFBTSxDQUFDLENBQUE7SUFDekIsSUFBSSxDQUFDLElBQUEsNkJBQW1CLEVBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBQSxvQkFBVSxFQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDMUQsTUFBTSxJQUFJLFNBQVMsQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFDRCxPQUFPO1FBQ0gsTUFBTSxFQUFFLGdCQUFnQjtRQUN4QixNQUFNLEVBQUUsQ0FBRSxNQUFNLENBQUU7S0FDckIsQ0FBQztBQUNOLENBQUMsQ0FBQTtBQVRZLFFBQUEsY0FBYyxrQkFTMUI7QUFFRDs7O0dBR0c7QUFDSSxNQUFNLGdCQUFnQixHQUFHLENBQUMsSUFBd0IsRUFBRSxJQUFvQyxFQUFFLEVBQUU7SUFDL0YsSUFBQSwyQkFBaUIsRUFBQyxJQUFJLENBQUMsQ0FBQTtJQUN2QixJQUFJLENBQUMsSUFBQSw2QkFBbUIsRUFBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFBLG9CQUFVLEVBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN0RCxNQUFNLElBQUksU0FBUyxDQUFDLDBEQUEwRCxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUNELE9BQU87UUFDSCxNQUFNLEVBQUUsa0JBQWtCO1FBQzFCLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7S0FDekIsQ0FBQztBQUNOLENBQUMsQ0FBQTtBQVRZLFFBQUEsZ0JBQWdCLG9CQVM1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNoZWNrUnBjV2lsZGNhcmRzLCBpc0hleFN0cmluZ09mTGVuZ3RoLCBpc1dpbGRjYXJkIH0gZnJvbSBcIi4uLy4uLy4uL2Jpbi9oZWxwZXJzXCJcclxuaW1wb3J0IHsgQnl0ZXMzMiwgV2lsZGNhcmQgfSBmcm9tIFwiLlwiO1xyXG5cclxuZXhwb3J0IHR5cGUgV2l0QWRkcmVzcyA9IHN0cmluZyAmIHtcclxuICAgIHJlYWRvbmx5IFdpdEFkZHJlc3M6IHVuaXF1ZSBzeW1ib2xcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHJpZXZlIHRoZSBiYWxhbmNlIGluICRuYW5vV0lUIG9mIHNvbWUgYWNjb3VudCBpbiBXaXRuZXQuXHJcbiAqIEBwYXJhbSBhZGRyZXNzIEFkZHJlc3Mgb2YgdGhlIGFjY291bnQgd2l0aGluIHRoZSBXaXRuZXQgYmxvY2tjaGFpbi5cclxuICovXHJcbmV4cG9ydCBjb25zdCBnZXRCYWxhbmNlID0gKGFkZHJlc3M6IFdpdEFkZHJlc3MgfCBXaWxkY2FyZCkgPT4ge1xyXG4gICAgY2hlY2tScGNXaWxkY2FyZHMoYWRkcmVzcylcclxuICAgIGlmIChcclxuICAgICAgICAhaXNXaWxkY2FyZChhZGRyZXNzKSAmJiAoXHJcbiAgICAgICAgICAgICFhZGRyZXNzIHx8IHR5cGVvZiBhZGRyZXNzICE9PSBcInN0cmluZ1wiIHx8IGFkZHJlc3MubGVuZ3RoICE9IDQzIHx8ICFhZGRyZXNzLnN0YXJ0c1dpdGgoXCJ3aXRcIilcclxuICAgICAgICApIFxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEV2YWxFcnJvcihcInJwYy53aXQuZ2V0QmFsYW5jZTogaW52YWxpZCBhZGRyZXNzXCIpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBtZXRob2Q6IFwiZ2V0QmFsYW5jZTJcIiwgXHJcbiAgICAgICAgcGFyYW1zOiB7IHBraDogYWRkcmVzcyB9LFxyXG4gICAgfTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBSZXRyaWV2ZSBkZXRhaWxlZCBpbmZvcm1hdGlub24gYWJvdXQgYSBtaW5lZCB0cmFuc2FjdGlvbiBpbiB0aGUgV2l0bmV0IGJsb2NrY2hhaW4uXHJcbiAqIEBwYXJhbSB0eEhhc2ggVGhlIGhhc2ggb2YgdGhlIHRyYW5zYWN0aW9uIHRvIHJldHJpZXZlLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGdldFRyYW5zYWN0aW9uID0gKHR4SGFzaDogQnl0ZXMzMiB8IFdpbGRjYXJkKSA9PiB7XHJcbiAgICBjaGVja1JwY1dpbGRjYXJkcyh0eEhhc2gpXHJcbiAgICBpZiAoIWlzSGV4U3RyaW5nT2ZMZW5ndGgodHhIYXNoLCAzMikgJiYgIWlzV2lsZGNhcmQodHhIYXNoKSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFdmFsRXJyb3IoXCJycGMud2l0LmdldFRyYW5zYWN0aW9uOiBpbnZhbGlkIHRyYW5zYWN0aW9uIGhhc2ggdmFsdWVcIik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIG1ldGhvZDogXCJnZXRUcmFuc2FjdGlvblwiLCBcclxuICAgICAgICBwYXJhbXM6IFsgdHhIYXNoIF1cclxuICAgIH07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXRyaWV2ZSBkZXRhaWxlZCBpbmZvcm1hdGlub24gYWJvdXQgYSBtaW5lZCB0cmFuc2FjdGlvbiBpbiB0aGUgV2l0bmV0IGJsb2NrY2hhaW4uXHJcbiAqIEBwYXJhbSB0eEhhc2ggVGhlIGhhc2ggb2YgdGhlIHRyYW5zYWN0aW9uIHRvIHJldHJpZXZlLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGdldFZhbHVlVHJhbnNmZXIgPSAoaGFzaDogQnl0ZXMzMiB8IFdpbGRjYXJkLCBtb2RlOiBcImV0aGVyZWFsXCIgfCBcInNpbXBsZVwiIHwgXCJmdWxsXCIpID0+IHtcclxuICAgIGNoZWNrUnBjV2lsZGNhcmRzKGhhc2gpXHJcbiAgICBpZiAoIWlzSGV4U3RyaW5nT2ZMZW5ndGgoaGFzaCwgMzIpICYmICFpc1dpbGRjYXJkKGhhc2gpKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEV2YWxFcnJvcihcInJwYy53aXQuZ2V0VmFsdWVUcmFuc2ZlcjogaW52YWxpZCB0cmFuc2FjdGlvbiBoYXNoIHZhbHVlXCIpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBtZXRob2Q6IFwiZ2V0VmFsdWVUcmFuc2ZlclwiLCBcclxuICAgICAgICBwYXJhbXM6IHsgaGFzaCwgbW9kZSB9XHJcbiAgICB9O1xyXG59Il19
|
|
@@ -42,4 +42,4 @@ class RadonFilter {
|
|
|
42
42
|
exports.RadonFilter = RadonFilter;
|
|
43
43
|
function Mode() { return new RadonFilter(Opcodes.Mode); }
|
|
44
44
|
function Stdev(stdev) { return new RadonFilter(Opcodes.StandardDeviation, stdev); }
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvcmFkb24vZmlsdGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE0Q0Esb0JBQWlFO0FBQ2pFLHNCQUFtRztBQTdDbkcsK0JBQTJDO0FBRTNDLElBQVksT0FHWDtBQUhELFdBQVksT0FBTztJQUNmLHFDQUFXLENBQUE7SUFDWCwrREFBd0IsQ0FBQTtBQUM1QixDQUFDLEVBSFcsT0FBTyx1QkFBUCxPQUFPLFFBR2xCO0FBRUQsTUFBYSxXQUFXO0lBS3BCLFlBQVksTUFBZSxFQUFFLElBQVU7UUFDbkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7UUFDcEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRTtnQkFDbEQsUUFBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ2pCLEtBQUssT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sYUFBYSxDQUFDO29CQUN4QyxLQUFLLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE9BQU8saUJBQWlCLElBQUksR0FBRyxDQUFBO2dCQUNuRSxDQUFDO1lBQ0wsQ0FBQyxFQUFDLENBQUMsQ0FBQTtJQUNQLENBQUM7SUFFTSxNQUFNLENBQUMsUUFBa0I7UUFDNUIsTUFBTSxJQUFJLEdBQVE7WUFDZCxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTTtTQUNwRCxDQUFBO1FBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDWixJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFBLGFBQVUsRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtRQUN4RSxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLFVBQVU7UUFDYixNQUFNLFFBQVEsR0FBUTtZQUNsQixFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDbEIsQ0FBQTtRQUNELElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1osUUFBUSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUEsYUFBVSxFQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBQ3JELENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQTtJQUNuQixDQUFDO0NBQ0o7QUFuQ0Qsa0NBbUNDO0FBRUQsU0FBZ0IsSUFBSSxLQUFNLE9BQU8sSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNqRSxTQUFnQixLQUFLLENBQUUsS0FBYSxJQUFJLE9BQU8sSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVuY29kZSBhcyBjYm9yRW5jb2RlIH0gZnJvbSBcImNib3JcIlxyXG5cclxuZXhwb3J0IGVudW0gT3Bjb2RlcyB7XHJcbiAgICBNb2RlID0gMHgwOCxcclxuICAgIFN0YW5kYXJkRGV2aWF0aW9uID0gMHgwNSxcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFJhZG9uRmlsdGVyIHtcclxuXHJcbiAgICByZWFkb25seSBvcGNvZGU6IE9wY29kZXM7XHJcbiAgICByZWFkb25seSBhcmdzPzogYW55O1xyXG4gICAgXHJcbiAgICBjb25zdHJ1Y3RvcihvcGNvZGU6IE9wY29kZXMsIGFyZ3M/OiBhbnkpIHtcclxuICAgICAgICB0aGlzLm9wY29kZSA9IG9wY29kZVxyXG4gICAgICAgIHRoaXMuYXJncyA9IGFyZ3NcclxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgXCJ0b1N0cmluZ1wiLCB7IHZhbHVlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgIHN3aXRjaCh0aGlzLm9wY29kZSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSBPcGNvZGVzLk1vZGU6IHJldHVybiBcIkNsYXNzKG1vZGUpXCI7XHJcbiAgICAgICAgICAgICAgICBjYXNlIE9wY29kZXMuU3RhbmRhcmREZXZpYXRpb246IHJldHVybiBgQ2xhc3Moc3RkZXYgPSAke2FyZ3N9KWBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH19KVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB0b0pTT04oaHVtYW5pemU/OiBib29sZWFuKTogYW55IHtcclxuICAgICAgICBjb25zdCBqc29uOiBhbnkgPSB7XHJcbiAgICAgICAgICAgIG9wOiBodW1hbml6ZSA/IE9wY29kZXNbdGhpcy5vcGNvZGVdIDogdGhpcy5vcGNvZGUsXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmFyZ3MpIHtcclxuICAgICAgICAgICAganNvbi5hcmdzID0gaHVtYW5pemUgPyB0aGlzLmFyZ3MgOiBBcnJheS5mcm9tKGNib3JFbmNvZGUodGhpcy5hcmdzKSlcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGpzb247XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHB1YmxpYyB0b1Byb3RvYnVmKCk6IGFueSB7XHJcbiAgICAgICAgY29uc3QgcHJvdG9idWY6IGFueSA9IHtcclxuICAgICAgICAgICAgb3A6IHRoaXMub3Bjb2RlLFxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5hcmdzKSB7XHJcbiAgICAgICAgICAgIHByb3RvYnVmLmFyZ3MgPSBBcnJheS5mcm9tKGNib3JFbmNvZGUodGhpcy5hcmdzKSlcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHByb3RvYnVmXHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBNb2RlICgpIHsgcmV0dXJuIG5ldyBSYWRvbkZpbHRlcihPcGNvZGVzLk1vZGUpOyB9XHJcbmV4cG9ydCBmdW5jdGlvbiBTdGRldiAoc3RkZXY6IG51bWJlcikgeyByZXR1cm4gbmV3IFJhZG9uRmlsdGVyKE9wY29kZXMuU3RhbmRhcmREZXZpYXRpb24sIHN0ZGV2KTsgfVxyXG4iXX0=
|