@witnet/sdk 1.2.2 → 1.2.3
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 +2 -1
- package/dist/package.json +4 -3
- package/dist/src/bin/helpers.js +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/lib/crypto/account.js +1 -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.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.js +1 -1
- package/dist/src/lib/crypto/signer.js +1 -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.js +1 -1
- package/dist/src/lib/crypto/types.js +1 -1
- package/dist/src/lib/crypto/utils.js +1 -1
- package/dist/src/lib/crypto/wallet.js +1 -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.d.ts.map +1 -1
- package/dist/src/lib/radon/utils.js +1 -1
- package/dist/src/lib/rest/kermit.d.ts.map +1 -1
- package/dist/src/lib/rest/kermit.js +2 -4
- package/dist/src/lib/rest/types.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.js +1 -1
- package/dist/src/lib/types.js +1 -1
- package/dist/src/lib/utils.js +1 -1
- package/package.json +4 -3
- package/scripts/clean.cjs +21 -21
- package/scripts/postinstall.cjs +9 -9
- package/src/bin/bots/watcher.cjs +365 -354
- package/src/bin/cli/history.cjs +31 -31
- package/src/bin/cli/inspect.js +581 -581
- package/src/bin/cli/network.js +695 -695
- package/src/bin/cli/nodes.js +424 -424
- package/src/bin/cli/radon.js +1124 -1122
- package/src/bin/cli/wallet.js +1362 -1362
- package/src/bin/helpers.js +974 -974
- package/src/bin/index.js +328 -328
|
@@ -189,4 +189,4 @@ export class Signer {
|
|
|
189
189
|
};
|
|
190
190
|
}
|
|
191
191
|
}
|
|
192
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jcnlwdG8vc2lnbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDaEMsT0FBTyxFQUFFLE9BQU8sSUFBSSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDakQsT0FBTyxFQUFFLE9BQU8sSUFBSSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFRakQsT0FBTyxLQUFLLEtBQUssTUFBTSxhQUFhLENBQUM7QUFFckMsT0FBTyxFQUdOLFNBQVMsRUFFVCxvQkFBb0IsRUFHcEIscUJBQXFCLEdBQ3JCLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFekMsTUFBTSxPQUFPLE1BQU07SUFDUixJQUFJLENBQVM7SUFDYixLQUFLLEdBQWdCLEVBQUUsQ0FBQztJQUMxQixZQUFZLENBQVU7SUFFZCxRQUFRLENBQW1CO0lBQ3BDLFFBQVEsQ0FBd0I7SUFFdkMsWUFDQyxJQUFZLEVBQ1osUUFBMEIsRUFDMUIsUUFBZ0M7UUFFaEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLElBQUkscUJBQXFCLENBQUMsT0FBTyxDQUFDO1FBQzFELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdkIsTUFBTSxLQUFLLENBQUMsZ0RBQWdELENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVELG1IQUFtSDtJQUNuSCxtSEFBbUg7SUFFbkgsSUFBVyxTQUFTO1FBQ25CLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFL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QUM3QyxPQUFPO1lBQ04sT0FBTyxFQUFFLElBQUksQ0FBQyxHQUFHO1lBQ2pCLE9BQU8sRUFBRSxJQUFJO1lBQ2IsU0FBUyxFQUFFLFNBQVMsQ0FBQyxZQUFZLENBQ2hDLGNBQWMsQ0FBQyxVQUFVLENBQ3pCLENBQUMsV0FBVyxFQUFFO1lBQ2YsU0FBUyxFQUFFLG9CQUFvQixDQUFDLGtCQUFrQixDQUNqRCxjQUFjLEVBQ2QsTUFBTSxDQUNOLENBQUMsV0FBVyxFQUFFO1NBQ2YsQ0FBQztJQUNILENBQUM7Q0FDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV0aGVycyB9IGZyb20gXCJldGhlcnNcIjtcclxuaW1wb3J0IHsgZGVmYXVsdCBhcyBrZWNjYWsyNTYgfSBmcm9tIFwia2VjY2FrMjU2XCI7XHJcbmltcG9ydCB7IGRlZmF1bHQgYXMgc2VjcDI1NmsxIH0gZnJvbSBcInNlY3AyNTZrMVwiO1xyXG5pbXBvcnQgdHlwZSB7XHJcblx0QmFsYW5jZSxcclxuXHRIZXhTdHJpbmcsXHJcblx0TmV0d29yayxcclxuXHRRdWVyeVN0YWtlc09yZGVyLFxyXG5cdFN0YWtlRW50cnksXHJcbn0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XHJcbmltcG9ydCAqIGFzIHV0aWxzIGZyb20gXCIuLi91dGlscy5qc1wiO1xyXG5pbXBvcnQgdHlwZSB7IElCSVAzMiwgSUpzb25ScGNQcm92aWRlciwgSVNpZ25lciB9IGZyb20gXCIuL2ludGVyZmFjZXMuanNcIjtcclxuaW1wb3J0IHtcclxuXHR0eXBlIENvaW5zLFxyXG5cdHR5cGUgS2V5ZWRTaWduYXR1cmUsXHJcblx0UHVibGljS2V5LFxyXG5cdHR5cGUgUHVibGljS2V5SGFzaFN0cmluZyxcclxuXHRSZWNvdmVyYWJsZVNpZ25hdHVyZSxcclxuXHR0eXBlIFV0eG8sXHJcblx0dHlwZSBVdHhvQ2FjaGVJbmZvLFxyXG5cdFV0eG9TZWxlY3Rpb25TdHJhdGVneSxcclxufSBmcm9tIFwiLi90eXBlcy5qc1wiO1xyXG5pbXBvcnQgeyBzZWxlY3RVdHhvcyB9IGZyb20gXCIuL3V0aWxzLmpzXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgU2lnbmVyIGltcGxlbWVudHMgSVNpZ25lciB7XHJcblx0cHJvdGVjdGVkIG5vZGU6IElCSVAzMjtcclxuXHRwcm90ZWN0ZWQgdXR4b3M6IEFycmF5PFV0eG8+ID0gW107XHJcblx0cHJpdmF0ZSBfaW5pdGlhbGl6ZWQ6IGJvb2xlYW47XHJcblxyXG5cdHB1YmxpYyByZWFkb25seSBwcm92aWRlcjogSUpzb25ScGNQcm92aWRlcjtcclxuXHRwdWJsaWMgc3RyYXRlZ3k6IFV0eG9TZWxlY3Rpb25TdHJhdGVneTtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRub2RlOiBJQklQMzIsXHJcblx0XHRwcm92aWRlcjogSUpzb25ScGNQcm92aWRlcixcclxuXHRcdHN0cmF0ZWd5PzogVXR4b1NlbGVjdGlvblN0cmF0ZWd5LFxyXG5cdCkge1xyXG5cdFx0dGhpcy5ub2RlID0gbm9kZTtcclxuXHRcdHRoaXMucHJvdmlkZXIgPSBwcm92aWRlcjtcclxuXHRcdHRoaXMuc3RyYXRlZ3kgPSBzdHJhdGVneSB8fCBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kuU2xpbUZpdDtcclxuXHRcdGlmICghcHJvdmlkZXIubmV0d29yaykge1xyXG5cdFx0XHR0aHJvdyBFcnJvcihgU2lnbmVyOiBpbnRlcm5hbCBlcnJvcjogdW5pbnRpYWxpemVkIHByb3ZpZGVyLmApO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5faW5pdGlhbGl6ZWQgPSBmYWxzZTtcclxuXHR9XHJcblxyXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHQvLyAtLS0gSUxlZGdlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG5cdHB1YmxpYyBnZXQgY2FjaGVJbmZvKCk6IFV0eG9DYWNoZUluZm8ge1xyXG5cdFx0Y29uc3Qgbm93ID0gTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCk7XHJcblx0XHRsZXQgZXhwZW5kYWJsZTogYmlnaW50ID0gMG47XHJcblx0XHRsZXQgdGltZWxvY2s6IG51bWJlciA9IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSO1xyXG5cdFx0dGhpcy51dHhvcy5tYXAoKHV0eG8pID0+IHtcclxuXHRcdFx0aWYgKHV0eG8udGltZWxvY2sgPiBub3cpIHtcclxuXHRcdFx0XHRpZiAodXR4by50aW1lbG9jayA8IHRpbWVsb2NrKSB7XHJcblx0XHRcdFx0XHR0aW1lbG9jayA9IHV0eG8udGltZWxvY2s7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdGV4cGVuZGFibGUgKz0gdXR4by52YWx1ZTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0XHRpZiAodGltZWxvY2sgPT09IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKSB0aW1lbG9jayA9IDA7XHJcblx0XHRyZXR1cm4geyBleHBlbmRhYmxlLCB0aW1lbG9jaywgc2l6ZTogdGhpcy51dHhvcy5sZW5ndGggfTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBnZXQgY2hhbmdlUGtoKCk6IFB1YmxpY0tleUhhc2hTdHJpbmcge1xyXG5cdFx0cmV0dXJuIHRoaXMucGtoO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGdldCBuZXR3b3JrKCk6IE5ldHdvcmsge1xyXG5cdFx0cmV0dXJuIHRoaXMucHJvdmlkZXIubmV0d29yayB8fCBcIm1haW5uZXRcIjtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBnZXQgcGtoKCk6IFB1YmxpY0tleUhhc2hTdHJpbmcge1xyXG5cdFx0cmV0dXJuIHRoaXMucHVibGljS2V5Lmhhc2goKS50b0JlY2gzMih0aGlzLm5ldHdvcmspO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGdldCBwdWJsaWNLZXkoKTogUHVibGljS2V5IHtcclxuXHRcdHJldHVybiBQdWJsaWNLZXkuZnJvbVVpbnQ4QXJyYXkodGhpcy5ub2RlLnB1YmxpY0tleSk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgZ2V0IHByaXZhdGVLZXkoKTogSGV4U3RyaW5nIHtcclxuXHRcdHJldHVybiB1dGlscy50b0hleFN0cmluZyh0aGlzLm5vZGU/LnByaXZhdGVLZXksIHRydWUpO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGFkZFV0eG9zKC4uLnV0eG9zOiBBcnJheTxVdHhvPik6IHtcclxuXHRcdGV4Y2x1ZGVkOiBBcnJheTxVdHhvPjtcclxuXHRcdGluY2x1ZGVkOiBBcnJheTxVdHhvPjtcclxuXHR9IHtcclxuXHRcdGNvbnN0IGV4Y2x1ZGVkOiBBcnJheTxVdHhvPiA9IFtdO1xyXG5cdFx0Y29uc3QgZXhpc3RpbmdQb2ludGVycyA9IG5ldyBTZXQoXHJcblx0XHRcdHRoaXMudXR4b3MubWFwKChjYWNoZWQpID0+IGNhY2hlZC5vdXRwdXRfcG9pbnRlciksXHJcblx0XHQpO1xyXG5cdFx0Y29uc3QgaW5jbHVkZWQ6IEFycmF5PFV0eG8+ID0gdXR4b3MuZmlsdGVyKCh1dHhvKSA9PiB7XHJcblx0XHRcdGlmICh1dHhvLnNpZ25lciA9PT0gdGhpcy5wa2gpIHtcclxuXHRcdFx0XHQvLyBhdm9pZCBhZGRpbmcgZHVwbGljYXRlc1xyXG5cdFx0XHRcdGlmICghZXhpc3RpbmdQb2ludGVycy5oYXModXR4by5vdXRwdXRfcG9pbnRlcikpIHtcclxuXHRcdFx0XHRcdGV4aXN0aW5nUG9pbnRlcnMuYWRkKHV0eG8ub3V0cHV0X3BvaW50ZXIpO1xyXG5cdFx0XHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0ZXhjbHVkZWQucHVzaCh1dHhvKTtcclxuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdFx0dGhpcy51dHhvcy5wdXNoKC4uLmluY2x1ZGVkKTtcclxuXHRcdHJldHVybiB7IGV4Y2x1ZGVkLCBpbmNsdWRlZCB9O1xyXG5cdH1cclxuXHJcblx0cHVibGljIGNvbnN1bWVVdHhvcyguLi51dHhvczogQXJyYXk8VXR4bz4pOiBBcnJheTxVdHhvPiB7XHJcblx0XHR0aGlzLnV0eG9zID0gdGhpcy51dHhvcy5maWx0ZXIoKGNhY2hlZCkgPT4ge1xyXG5cdFx0XHRjb25zdCBpbmNvbWluZ0luZGV4ID0gdXR4b3MuZmluZEluZGV4KFxyXG5cdFx0XHRcdChpbmNvbWluZykgPT4gY2FjaGVkLm91dHB1dF9wb2ludGVyID09PSBpbmNvbWluZy5vdXRwdXRfcG9pbnRlcixcclxuXHRcdFx0KTtcclxuXHRcdFx0aWYgKGluY29taW5nSW5kZXggPj0gMCkge1xyXG5cdFx0XHRcdHV0eG9zLnNwbGljZShpbmNvbWluZ0luZGV4LCAxKTtcclxuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdFx0cmV0dXJuIHV0eG9zO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGFzeW5jIGdldEJhbGFuY2UoKTogUHJvbWlzZTxCYWxhbmNlPiB7XHJcblx0XHRyZXR1cm4gdGhpcy5wcm92aWRlci5nZXRCYWxhbmNlKHRoaXMucGtoKTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBhc3luYyBnZXREZWxlZ2F0ZWVzKFxyXG5cdFx0b3JkZXI/OiBRdWVyeVN0YWtlc09yZGVyLFxyXG5cdCk6IFByb21pc2U8QXJyYXk8U3Rha2VFbnRyeT4+IHtcclxuXHRcdHJldHVybiB0aGlzLnByb3ZpZGVyLnN0YWtlcyh7XHJcblx0XHRcdGZpbHRlcjogeyB3aXRoZHJhd2VyOiB0aGlzLnBraCB9LFxyXG5cdFx0XHRwYXJhbXM6IHsgb3JkZXIgfSxcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGdldFNpZ25lcihwa2g/OiBQdWJsaWNLZXlIYXNoU3RyaW5nKTogSVNpZ25lciB8IHVuZGVmaW5lZCB7XHJcblx0XHRyZXR1cm4gIXBraCB8fCBwa2ggPT09IHRoaXMucGtoID8gdGhpcyA6IHVuZGVmaW5lZDtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBhc3luYyBnZXRVdHhvcyhyZWxvYWQgPSBmYWxzZSk6IFByb21pc2U8QXJyYXk8VXR4bz4+IHtcclxuXHRcdGlmIChyZWxvYWQgfHwgIXRoaXMuX2luaXRpYWxpemVkKSB7XHJcblx0XHRcdHRoaXMuX2luaXRpYWxpemVkID0gdHJ1ZTtcclxuXHRcdFx0dGhpcy51dHhvcyA9IChhd2FpdCB0aGlzLnByb3ZpZGVyLmdldFV0eG9zKHRoaXMucGtoKSkubWFwKCh1dHhvKSA9PiAoe1xyXG5cdFx0XHRcdC4uLnV0eG8sXHJcblx0XHRcdFx0c2lnbmVyOiB0aGlzLnBraCxcclxuXHRcdFx0fSkpO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHRoaXMudXR4b3M7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgYXN5bmMgc2VsZWN0VXR4b3Moc3BlY3M/OiB7XHJcblx0XHR2YWx1ZT86IENvaW5zO1xyXG5cdFx0cmVsb2FkPzogYm9vbGVhbjtcclxuXHRcdHN0cmF0ZWd5PzogVXR4b1NlbGVjdGlvblN0cmF0ZWd5O1xyXG5cdH0pOiBQcm9taXNlPEFycmF5PFV0eG8+PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5nZXRVdHhvcyhzcGVjcz8ucmVsb2FkKS50aGVuKCh1dHhvcykgPT5cclxuXHRcdFx0c2VsZWN0VXR4b3Moe1xyXG5cdFx0XHRcdHV0eG9zLFxyXG5cdFx0XHRcdHZhbHVlOiBzcGVjcz8udmFsdWUsXHJcblx0XHRcdFx0c3RyYXRlZ3k6IHNwZWNzPy5zdHJhdGVneSB8fCB0aGlzLnN0cmF0ZWd5LFxyXG5cdFx0XHR9KSxcclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblx0Ly8gLS0tIElTaWduZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuXHRwdWJsaWMgYXV0aG9yaXplRXZtQWRkcmVzcyhldm1BZGRyZXNzOiBIZXhTdHJpbmcpOiBhbnkge1xyXG5cdFx0Y29uc3QgYWRkciA9IHV0aWxzLmZyb21IZXhTdHJpbmcoZXZtQWRkcmVzcyk7XHJcblx0XHRjb25zdCBoYXNoID0ga2VjY2FrMjU2KEJ1ZmZlci5mcm9tKGFkZHIpKTtcclxuXHJcblx0XHRpZiAodGhpcy5ub2RlLnByaXZhdGVLZXkpIHtcclxuXHRcdFx0Y29uc3Qgc2lnbmluZ0tleSA9IG5ldyBldGhlcnMuU2lnbmluZ0tleSh0aGlzLm5vZGUucHJpdmF0ZUtleSk7XHJcblx0XHRcdGNvbnN0IHNpZ25hdHVyZSA9IHNpZ25pbmdLZXkuc2lnbihoYXNoKTtcclxuXHRcdFx0Y29uc3Qgc2lnID0gYDB4JHtzaWduYXR1cmUuci5zbGljZSgyKX0ke3NpZ25hdHVyZS5zLnNsaWNlKDIpfSR7c2lnbmF0dXJlLnYudG9TdHJpbmcoMTYpfWA7XHJcblx0XHRcdHJldHVybiBzaWc7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgYXN5bmMgZ2V0U3Rha2VFbnRyeU5vbmNlKFxyXG5cdFx0dmFsaWRhdG9yOiBQdWJsaWNLZXlIYXNoU3RyaW5nLFxyXG5cdCk6IFByb21pc2U8bnVtYmVyPiB7XHJcblx0XHRyZXR1cm4gdGhpcy5wcm92aWRlclxyXG5cdFx0XHQuc3Rha2VzKHtcclxuXHRcdFx0XHRmaWx0ZXI6IHtcclxuXHRcdFx0XHRcdHZhbGlkYXRvcixcclxuXHRcdFx0XHRcdHdpdGhkcmF3ZXI6IHRoaXMucGtoLFxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdH0pXHJcblx0XHRcdC50aGVuKChbZW50cnldKSA9PiBlbnRyeS52YWx1ZS5ub25jZSk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgc2lnbkhhc2goaGFzaDogYW55KTogS2V5ZWRTaWduYXR1cmUge1xyXG5cdFx0bGV0IGJ1ZmZlcjogQnVmZmVyO1xyXG5cdFx0aWYgKGhhc2ggaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XHJcblx0XHRcdGJ1ZmZlciA9IEJ1ZmZlci5mcm9tKGhhc2gpO1xyXG5cdFx0fSBlbHNlIGlmIChoYXNoIGluc3RhbmNlb2YgQnVmZmVyKSB7XHJcblx0XHRcdGJ1ZmZlciA9IGhhc2g7XHJcblx0XHR9IGVsc2UgaWYgKHR5cGVvZiBoYXNoID09PSBcInN0cmluZ1wiKSB7XHJcblx0XHRcdGJ1ZmZlciA9IEJ1ZmZlci5mcm9tKHV0aWxzLmZyb21IZXhTdHJpbmcoaGFzaCkpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFxyXG5cdFx0XHRcdGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IHVuc3VwcG9ydGVkIGhhc2ggdmFsdWU6ICR7aGFzaH1gLFxyXG5cdFx0XHQpO1xyXG5cdFx0fVxyXG5cdFx0aWYgKCFidWZmZXIgfHwgYnVmZmVyLmxlbmd0aCAhPT0gMzIpIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFxyXG5cdFx0XHRcdGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IGludmFsaWQgaGFzaCBsZW5ndGg6ICR7YnVmZmVyLmxlbmd0aH0gIT0gMzJgLFxyXG5cdFx0XHQpO1xyXG5cdFx0fSBlbHNlIGlmICh0aGlzLm5vZGUucHJpdmF0ZUtleSkge1xyXG5cdFx0XHRjb25zdCBtc2cgPSBVaW50OEFycmF5LmZyb20oYnVmZmVyKTtcclxuXHRcdFx0Y29uc3QgcHJpdmF0ZUtleSA9IFVpbnQ4QXJyYXkuZnJvbShCdWZmZXIuZnJvbSh0aGlzLm5vZGUucHJpdmF0ZUtleSkpO1xyXG5cdFx0XHRjb25zdCBzaWduYXR1cmUgPSBzZWNwMjU2azEuZWNkc2FTaWduKG1zZywgcHJpdmF0ZUtleSkuc2lnbmF0dXJlO1xyXG5cdFx0XHRjb25zdCBkZXIgPSBzZWNwMjU2azEuc2lnbmF0dXJlRXhwb3J0KHNpZ25hdHVyZSk7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0cHVibGljX2tleToge1xyXG5cdFx0XHRcdFx0Y29tcHJlc3NlZDogdGhpcy5wdWJsaWNLZXkuY29tcHJlc3NlZCxcclxuXHRcdFx0XHRcdGJ5dGVzOiBBcnJheS5mcm9tKHRoaXMucHVibGljS2V5LmJ5dGVzKSxcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdHNpZ25hdHVyZToge1xyXG5cdFx0XHRcdFx0U2VjcDI1NmsxOiB7XHJcblx0XHRcdFx0XHRcdGRlcjogQXJyYXkuZnJvbShkZXIpLFxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHR9O1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhyb3cgRXJyb3IoYFNpZ25lcjogaW52YWxpZCBCSVAzMiBub2RlOiBubyBwcml2YXRlIGtleWApO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHVibGljIHNpZ25NZXNzYWdlKHRleHQ6IHN0cmluZyk6IHtcclxuXHRcdGFkZHJlc3M6IHN0cmluZztcclxuXHRcdG1lc3NhZ2U6IHN0cmluZztcclxuXHRcdHB1YmxpY0tleTogSGV4U3RyaW5nO1xyXG5cdFx0c2lnbmF0dXJlOiBIZXhTdHJpbmc7XHJcblx0fSB7XHJcblx0XHRjb25zdCBkaWdlc3QgPSB1dGlscy5kaWdlc3RNZXNzYWdlKHRleHQpO1xyXG5cdFx0Y29uc3Qga2V5ZWRTaWduYXR1cmUgPSB0aGlzLnNpZ25IYXNoKGRpZ2VzdCk7XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHRhZGRyZXNzOiB0aGlzLnBraCxcclxuXHRcdFx0bWVzc2FnZTogdGV4dCxcclxuXHRcdFx0cHVibGljS2V5OiBQdWJsaWNLZXkuZnJvbVByb3RvYnVmKFxyXG5cdFx0XHRcdGtleWVkU2lnbmF0dXJlLnB1YmxpY19rZXksXHJcblx0XHRcdCkudG9IZXhTdHJpbmcoKSxcclxuXHRcdFx0c2lnbmF0dXJlOiBSZWNvdmVyYWJsZVNpZ25hdHVyZS5mcm9tS2V5ZWRTaWduYXR1cmUoXHJcblx0XHRcdFx0a2V5ZWRTaWduYXR1cmUsXHJcblx0XHRcdFx0ZGlnZXN0LFxyXG5cdFx0XHQpLnRvSGV4U3RyaW5nKCksXHJcblx0XHR9O1xyXG5cdH1cclxufVxyXG4iXX0=
|
|
192
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jcnlwdG8vc2lnbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDaEMsT0FBTyxFQUFFLE9BQU8sSUFBSSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDakQsT0FBTyxFQUFFLE9BQU8sSUFBSSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFRakQsT0FBTyxLQUFLLEtBQUssTUFBTSxhQUFhLENBQUM7QUFFckMsT0FBTyxFQUdOLFNBQVMsRUFFVCxvQkFBb0IsRUFHcEIscUJBQXFCLEdBQ3JCLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFekMsTUFBTSxPQUFPLE1BQU07SUFDUixJQUFJLENBQVM7SUFDYixLQUFLLEdBQWdCLEVBQUUsQ0FBQztJQUMxQixZQUFZLENBQVU7SUFFZCxRQUFRLENBQW1CO0lBQ3BDLFFBQVEsQ0FBd0I7SUFFdkMsWUFDQyxJQUFZLEVBQ1osUUFBMEIsRUFDMUIsUUFBZ0M7UUFFaEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLElBQUkscUJBQXFCLENBQUMsT0FBTyxDQUFDO1FBQzFELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdkIsTUFBTSxLQUFLLENBQUMsZ0RBQWdELENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVELG1IQUFtSDtJQUNuSCxtSEFBbUg7SUFFbkgsSUFBVyxTQUFTO1FBQ25CLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFL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QUM3QyxPQUFPO1lBQ04sT0FBTyxFQUFFLElBQUksQ0FBQyxHQUFHO1lBQ2pCLE9BQU8sRUFBRSxJQUFJO1lBQ2IsU0FBUyxFQUFFLFNBQVMsQ0FBQyxZQUFZLENBQ2hDLGNBQWMsQ0FBQyxVQUFVLENBQ3pCLENBQUMsV0FBVyxFQUFFO1lBQ2YsU0FBUyxFQUFFLG9CQUFvQixDQUFDLGtCQUFrQixDQUNqRCxjQUFjLEVBQ2QsTUFBTSxDQUNOLENBQUMsV0FBVyxFQUFFO1NBQ2YsQ0FBQztJQUNILENBQUM7Q0FDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV0aGVycyB9IGZyb20gXCJldGhlcnNcIjtcbmltcG9ydCB7IGRlZmF1bHQgYXMga2VjY2FrMjU2IH0gZnJvbSBcImtlY2NhazI1NlwiO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBzZWNwMjU2azEgfSBmcm9tIFwic2VjcDI1NmsxXCI7XG5pbXBvcnQgdHlwZSB7XG5cdEJhbGFuY2UsXG5cdEhleFN0cmluZyxcblx0TmV0d29yayxcblx0UXVlcnlTdGFrZXNPcmRlcixcblx0U3Rha2VFbnRyeSxcbn0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XG5pbXBvcnQgKiBhcyB1dGlscyBmcm9tIFwiLi4vdXRpbHMuanNcIjtcbmltcG9ydCB0eXBlIHsgSUJJUDMyLCBJSnNvblJwY1Byb3ZpZGVyLCBJU2lnbmVyIH0gZnJvbSBcIi4vaW50ZXJmYWNlcy5qc1wiO1xuaW1wb3J0IHtcblx0dHlwZSBDb2lucyxcblx0dHlwZSBLZXllZFNpZ25hdHVyZSxcblx0UHVibGljS2V5LFxuXHR0eXBlIFB1YmxpY0tleUhhc2hTdHJpbmcsXG5cdFJlY292ZXJhYmxlU2lnbmF0dXJlLFxuXHR0eXBlIFV0eG8sXG5cdHR5cGUgVXR4b0NhY2hlSW5mbyxcblx0VXR4b1NlbGVjdGlvblN0cmF0ZWd5LFxufSBmcm9tIFwiLi90eXBlcy5qc1wiO1xuaW1wb3J0IHsgc2VsZWN0VXR4b3MgfSBmcm9tIFwiLi91dGlscy5qc1wiO1xuXG5leHBvcnQgY2xhc3MgU2lnbmVyIGltcGxlbWVudHMgSVNpZ25lciB7XG5cdHByb3RlY3RlZCBub2RlOiBJQklQMzI7XG5cdHByb3RlY3RlZCB1dHhvczogQXJyYXk8VXR4bz4gPSBbXTtcblx0cHJpdmF0ZSBfaW5pdGlhbGl6ZWQ6IGJvb2xlYW47XG5cblx0cHVibGljIHJlYWRvbmx5IHByb3ZpZGVyOiBJSnNvblJwY1Byb3ZpZGVyO1xuXHRwdWJsaWMgc3RyYXRlZ3k6IFV0eG9TZWxlY3Rpb25TdHJhdGVneTtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRub2RlOiBJQklQMzIsXG5cdFx0cHJvdmlkZXI6IElKc29uUnBjUHJvdmlkZXIsXG5cdFx0c3RyYXRlZ3k/OiBVdHhvU2VsZWN0aW9uU3RyYXRlZ3ksXG5cdCkge1xuXHRcdHRoaXMubm9kZSA9IG5vZGU7XG5cdFx0dGhpcy5wcm92aWRlciA9IHByb3ZpZGVyO1xuXHRcdHRoaXMuc3RyYXRlZ3kgPSBzdHJhdGVneSB8fCBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kuU2xpbUZpdDtcblx0XHRpZiAoIXByb3ZpZGVyLm5ldHdvcmspIHtcblx0XHRcdHRocm93IEVycm9yKGBTaWduZXI6IGludGVybmFsIGVycm9yOiB1bmludGlhbGl6ZWQgcHJvdmlkZXIuYCk7XG5cdFx0fVxuXHRcdHRoaXMuX2luaXRpYWxpemVkID0gZmFsc2U7XG5cdH1cblxuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cdC8vIC0tLSBJTGVkZ2VyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXHRwdWJsaWMgZ2V0IGNhY2hlSW5mbygpOiBVdHhvQ2FjaGVJbmZvIHtcblx0XHRjb25zdCBub3cgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTtcblx0XHRsZXQgZXhwZW5kYWJsZTogYmlnaW50ID0gMG47XG5cdFx0bGV0IHRpbWVsb2NrOiBudW1iZXIgPSBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUjtcblx0XHR0aGlzLnV0eG9zLm1hcCgodXR4bykgPT4ge1xuXHRcdFx0aWYgKHV0eG8udGltZWxvY2sgPiBub3cpIHtcblx0XHRcdFx0aWYgKHV0eG8udGltZWxvY2sgPCB0aW1lbG9jaykge1xuXHRcdFx0XHRcdHRpbWVsb2NrID0gdXR4by50aW1lbG9jaztcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0ZXhwZW5kYWJsZSArPSB1dHhvLnZhbHVlO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdGlmICh0aW1lbG9jayA9PT0gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpIHRpbWVsb2NrID0gMDtcblx0XHRyZXR1cm4geyBleHBlbmRhYmxlLCB0aW1lbG9jaywgc2l6ZTogdGhpcy51dHhvcy5sZW5ndGggfTtcblx0fVxuXG5cdHB1YmxpYyBnZXQgY2hhbmdlUGtoKCk6IFB1YmxpY0tleUhhc2hTdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLnBraDtcblx0fVxuXG5cdHB1YmxpYyBnZXQgbmV0d29yaygpOiBOZXR3b3JrIHtcblx0XHRyZXR1cm4gdGhpcy5wcm92aWRlci5uZXR3b3JrIHx8IFwibWFpbm5ldFwiO1xuXHR9XG5cblx0cHVibGljIGdldCBwa2goKTogUHVibGljS2V5SGFzaFN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMucHVibGljS2V5Lmhhc2goKS50b0JlY2gzMih0aGlzLm5ldHdvcmspO1xuXHR9XG5cblx0cHVibGljIGdldCBwdWJsaWNLZXkoKTogUHVibGljS2V5IHtcblx0XHRyZXR1cm4gUHVibGljS2V5LmZyb21VaW50OEFycmF5KHRoaXMubm9kZS5wdWJsaWNLZXkpO1xuXHR9XG5cblx0cHVibGljIGdldCBwcml2YXRlS2V5KCk6IEhleFN0cmluZyB7XG5cdFx0cmV0dXJuIHV0aWxzLnRvSGV4U3RyaW5nKHRoaXMubm9kZT8ucHJpdmF0ZUtleSwgdHJ1ZSk7XG5cdH1cblxuXHRwdWJsaWMgYWRkVXR4b3MoLi4udXR4b3M6IEFycmF5PFV0eG8+KToge1xuXHRcdGV4Y2x1ZGVkOiBBcnJheTxVdHhvPjtcblx0XHRpbmNsdWRlZDogQXJyYXk8VXR4bz47XG5cdH0ge1xuXHRcdGNvbnN0IGV4Y2x1ZGVkOiBBcnJheTxVdHhvPiA9IFtdO1xuXHRcdGNvbnN0IGV4aXN0aW5nUG9pbnRlcnMgPSBuZXcgU2V0KFxuXHRcdFx0dGhpcy51dHhvcy5tYXAoKGNhY2hlZCkgPT4gY2FjaGVkLm91dHB1dF9wb2ludGVyKSxcblx0XHQpO1xuXHRcdGNvbnN0IGluY2x1ZGVkOiBBcnJheTxVdHhvPiA9IHV0eG9zLmZpbHRlcigodXR4bykgPT4ge1xuXHRcdFx0aWYgKHV0eG8uc2lnbmVyID09PSB0aGlzLnBraCkge1xuXHRcdFx0XHQvLyBhdm9pZCBhZGRpbmcgZHVwbGljYXRlc1xuXHRcdFx0XHRpZiAoIWV4aXN0aW5nUG9pbnRlcnMuaGFzKHV0eG8ub3V0cHV0X3BvaW50ZXIpKSB7XG5cdFx0XHRcdFx0ZXhpc3RpbmdQb2ludGVycy5hZGQodXR4by5vdXRwdXRfcG9pbnRlcik7XG5cdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRleGNsdWRlZC5wdXNoKHV0eG8pO1xuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0dGhpcy51dHhvcy5wdXNoKC4uLmluY2x1ZGVkKTtcblx0XHRyZXR1cm4geyBleGNsdWRlZCwgaW5jbHVkZWQgfTtcblx0fVxuXG5cdHB1YmxpYyBjb25zdW1lVXR4b3MoLi4udXR4b3M6IEFycmF5PFV0eG8+KTogQXJyYXk8VXR4bz4ge1xuXHRcdHRoaXMudXR4b3MgPSB0aGlzLnV0eG9zLmZpbHRlcigoY2FjaGVkKSA9PiB7XG5cdFx0XHRjb25zdCBpbmNvbWluZ0luZGV4ID0gdXR4b3MuZmluZEluZGV4KFxuXHRcdFx0XHQoaW5jb21pbmcpID0+IGNhY2hlZC5vdXRwdXRfcG9pbnRlciA9PT0gaW5jb21pbmcub3V0cHV0X3BvaW50ZXIsXG5cdFx0XHQpO1xuXHRcdFx0aWYgKGluY29taW5nSW5kZXggPj0gMCkge1xuXHRcdFx0XHR1dHhvcy5zcGxpY2UoaW5jb21pbmdJbmRleCwgMSk7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdHJldHVybiB1dHhvcztcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBnZXRCYWxhbmNlKCk6IFByb21pc2U8QmFsYW5jZT4ge1xuXHRcdHJldHVybiB0aGlzLnByb3ZpZGVyLmdldEJhbGFuY2UodGhpcy5wa2gpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIGdldERlbGVnYXRlZXMoXG5cdFx0b3JkZXI/OiBRdWVyeVN0YWtlc09yZGVyLFxuXHQpOiBQcm9taXNlPEFycmF5PFN0YWtlRW50cnk+PiB7XG5cdFx0cmV0dXJuIHRoaXMucHJvdmlkZXIuc3Rha2VzKHtcblx0XHRcdGZpbHRlcjogeyB3aXRoZHJhd2VyOiB0aGlzLnBraCB9LFxuXHRcdFx0cGFyYW1zOiB7IG9yZGVyIH0sXG5cdFx0fSk7XG5cdH1cblxuXHRwdWJsaWMgZ2V0U2lnbmVyKHBraD86IFB1YmxpY0tleUhhc2hTdHJpbmcpOiBJU2lnbmVyIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gIXBraCB8fCBwa2ggPT09IHRoaXMucGtoID8gdGhpcyA6IHVuZGVmaW5lZDtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBnZXRVdHhvcyhyZWxvYWQgPSBmYWxzZSk6IFByb21pc2U8QXJyYXk8VXR4bz4+IHtcblx0XHRpZiAocmVsb2FkIHx8ICF0aGlzLl9pbml0aWFsaXplZCkge1xuXHRcdFx0dGhpcy5faW5pdGlhbGl6ZWQgPSB0cnVlO1xuXHRcdFx0dGhpcy51dHhvcyA9IChhd2FpdCB0aGlzLnByb3ZpZGVyLmdldFV0eG9zKHRoaXMucGtoKSkubWFwKCh1dHhvKSA9PiAoe1xuXHRcdFx0XHQuLi51dHhvLFxuXHRcdFx0XHRzaWduZXI6IHRoaXMucGtoLFxuXHRcdFx0fSkpO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy51dHhvcztcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBzZWxlY3RVdHhvcyhzcGVjcz86IHtcblx0XHR2YWx1ZT86IENvaW5zO1xuXHRcdHJlbG9hZD86IGJvb2xlYW47XG5cdFx0c3RyYXRlZ3k/OiBVdHhvU2VsZWN0aW9uU3RyYXRlZ3k7XG5cdH0pOiBQcm9taXNlPEFycmF5PFV0eG8+PiB7XG5cdFx0cmV0dXJuIHRoaXMuZ2V0VXR4b3Moc3BlY3M/LnJlbG9hZCkudGhlbigodXR4b3MpID0+XG5cdFx0XHRzZWxlY3RVdHhvcyh7XG5cdFx0XHRcdHV0eG9zLFxuXHRcdFx0XHR2YWx1ZTogc3BlY3M/LnZhbHVlLFxuXHRcdFx0XHRzdHJhdGVneTogc3BlY3M/LnN0cmF0ZWd5IHx8IHRoaXMuc3RyYXRlZ3ksXG5cdFx0XHR9KSxcblx0XHQpO1xuXHR9XG5cblx0Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXHQvLyAtLS0gSVNpZ25lciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblx0cHVibGljIGF1dGhvcml6ZUV2bUFkZHJlc3MoZXZtQWRkcmVzczogSGV4U3RyaW5nKTogYW55IHtcblx0XHRjb25zdCBhZGRyID0gdXRpbHMuZnJvbUhleFN0cmluZyhldm1BZGRyZXNzKTtcblx0XHRjb25zdCBoYXNoID0ga2VjY2FrMjU2KEJ1ZmZlci5mcm9tKGFkZHIpKTtcblxuXHRcdGlmICh0aGlzLm5vZGUucHJpdmF0ZUtleSkge1xuXHRcdFx0Y29uc3Qgc2lnbmluZ0tleSA9IG5ldyBldGhlcnMuU2lnbmluZ0tleSh0aGlzLm5vZGUucHJpdmF0ZUtleSk7XG5cdFx0XHRjb25zdCBzaWduYXR1cmUgPSBzaWduaW5nS2V5LnNpZ24oaGFzaCk7XG5cdFx0XHRjb25zdCBzaWcgPSBgMHgke3NpZ25hdHVyZS5yLnNsaWNlKDIpfSR7c2lnbmF0dXJlLnMuc2xpY2UoMil9JHtzaWduYXR1cmUudi50b1N0cmluZygxNil9YDtcblx0XHRcdHJldHVybiBzaWc7XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIGFzeW5jIGdldFN0YWtlRW50cnlOb25jZShcblx0XHR2YWxpZGF0b3I6IFB1YmxpY0tleUhhc2hTdHJpbmcsXG5cdCk6IFByb21pc2U8bnVtYmVyPiB7XG5cdFx0cmV0dXJuIHRoaXMucHJvdmlkZXJcblx0XHRcdC5zdGFrZXMoe1xuXHRcdFx0XHRmaWx0ZXI6IHtcblx0XHRcdFx0XHR2YWxpZGF0b3IsXG5cdFx0XHRcdFx0d2l0aGRyYXdlcjogdGhpcy5wa2gsXG5cdFx0XHRcdH0sXG5cdFx0XHR9KVxuXHRcdFx0LnRoZW4oKFtlbnRyeV0pID0+IGVudHJ5LnZhbHVlLm5vbmNlKTtcblx0fVxuXG5cdHB1YmxpYyBzaWduSGFzaChoYXNoOiBhbnkpOiBLZXllZFNpZ25hdHVyZSB7XG5cdFx0bGV0IGJ1ZmZlcjogQnVmZmVyO1xuXHRcdGlmIChoYXNoIGluc3RhbmNlb2YgVWludDhBcnJheSkge1xuXHRcdFx0YnVmZmVyID0gQnVmZmVyLmZyb20oaGFzaCk7XG5cdFx0fSBlbHNlIGlmIChoYXNoIGluc3RhbmNlb2YgQnVmZmVyKSB7XG5cdFx0XHRidWZmZXIgPSBoYXNoO1xuXHRcdH0gZWxzZSBpZiAodHlwZW9mIGhhc2ggPT09IFwic3RyaW5nXCIpIHtcblx0XHRcdGJ1ZmZlciA9IEJ1ZmZlci5mcm9tKHV0aWxzLmZyb21IZXhTdHJpbmcoaGFzaCkpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXG5cdFx0XHRcdGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IHVuc3VwcG9ydGVkIGhhc2ggdmFsdWU6ICR7aGFzaH1gLFxuXHRcdFx0KTtcblx0XHR9XG5cdFx0aWYgKCFidWZmZXIgfHwgYnVmZmVyLmxlbmd0aCAhPT0gMzIpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihcblx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogaW52YWxpZCBoYXNoIGxlbmd0aDogJHtidWZmZXIubGVuZ3RofSAhPSAzMmAsXG5cdFx0XHQpO1xuXHRcdH0gZWxzZSBpZiAodGhpcy5ub2RlLnByaXZhdGVLZXkpIHtcblx0XHRcdGNvbnN0IG1zZyA9IFVpbnQ4QXJyYXkuZnJvbShidWZmZXIpO1xuXHRcdFx0Y29uc3QgcHJpdmF0ZUtleSA9IFVpbnQ4QXJyYXkuZnJvbShCdWZmZXIuZnJvbSh0aGlzLm5vZGUucHJpdmF0ZUtleSkpO1xuXHRcdFx0Y29uc3Qgc2lnbmF0dXJlID0gc2VjcDI1NmsxLmVjZHNhU2lnbihtc2csIHByaXZhdGVLZXkpLnNpZ25hdHVyZTtcblx0XHRcdGNvbnN0IGRlciA9IHNlY3AyNTZrMS5zaWduYXR1cmVFeHBvcnQoc2lnbmF0dXJlKTtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdHB1YmxpY19rZXk6IHtcblx0XHRcdFx0XHRjb21wcmVzc2VkOiB0aGlzLnB1YmxpY0tleS5jb21wcmVzc2VkLFxuXHRcdFx0XHRcdGJ5dGVzOiBBcnJheS5mcm9tKHRoaXMucHVibGljS2V5LmJ5dGVzKSxcblx0XHRcdFx0fSxcblx0XHRcdFx0c2lnbmF0dXJlOiB7XG5cdFx0XHRcdFx0U2VjcDI1NmsxOiB7XG5cdFx0XHRcdFx0XHRkZXI6IEFycmF5LmZyb20oZGVyKSxcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHR9LFxuXHRcdFx0fTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhyb3cgRXJyb3IoYFNpZ25lcjogaW52YWxpZCBCSVAzMiBub2RlOiBubyBwcml2YXRlIGtleWApO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBzaWduTWVzc2FnZSh0ZXh0OiBzdHJpbmcpOiB7XG5cdFx0YWRkcmVzczogc3RyaW5nO1xuXHRcdG1lc3NhZ2U6IHN0cmluZztcblx0XHRwdWJsaWNLZXk6IEhleFN0cmluZztcblx0XHRzaWduYXR1cmU6IEhleFN0cmluZztcblx0fSB7XG5cdFx0Y29uc3QgZGlnZXN0ID0gdXRpbHMuZGlnZXN0TWVzc2FnZSh0ZXh0KTtcblx0XHRjb25zdCBrZXllZFNpZ25hdHVyZSA9IHRoaXMuc2lnbkhhc2goZGlnZXN0KTtcblx0XHRyZXR1cm4ge1xuXHRcdFx0YWRkcmVzczogdGhpcy5wa2gsXG5cdFx0XHRtZXNzYWdlOiB0ZXh0LFxuXHRcdFx0cHVibGljS2V5OiBQdWJsaWNLZXkuZnJvbVByb3RvYnVmKFxuXHRcdFx0XHRrZXllZFNpZ25hdHVyZS5wdWJsaWNfa2V5LFxuXHRcdFx0KS50b0hleFN0cmluZygpLFxuXHRcdFx0c2lnbmF0dXJlOiBSZWNvdmVyYWJsZVNpZ25hdHVyZS5mcm9tS2V5ZWRTaWduYXR1cmUoXG5cdFx0XHRcdGtleWVkU2lnbmF0dXJlLFxuXHRcdFx0XHRkaWdlc3QsXG5cdFx0XHQpLnRvSGV4U3RyaW5nKCksXG5cdFx0fTtcblx0fVxufVxuIl19
|
|
@@ -15,4 +15,4 @@ export class DataRequests extends TransmitterMultiSig {
|
|
|
15
15
|
return this._payload.template;
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YVJlcXVlc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jcnlwdG8vdHJhbnNtaXR0ZXJzL0RhdGFSZXF1ZXN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBRU4sa0JBQWtCLEdBQ2xCLE1BQU0sbUNBQW1DLENBQUM7QUFDM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFLekQsTUFBTSxPQUFPLFlBQWEsU0FBUSxtQkFHakM7SUFDTyxNQUFNLENBQUMsVUFBVSxHQUFHLGtCQUFrQixDQUFDLFVBQVUsQ0FBQztJQUVsRCxNQUFNLENBQUMsSUFBSSxDQUNqQixNQUFlLEVBQ2YsUUFBc0M7UUFFdEMsT0FBTyxJQUFJLFlBQVksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELFlBQ0MsUUFBc0MsRUFDdEMsTUFBZSxFQUNmLFNBQStCO1FBRS9CLEtBQUssQ0FDSixlQUFlLEVBQ2YsSUFBSSxrQkFBa0IsQ0FBQyxtQkFBbUIsRUFBRSxRQUFRLENBQUMsRUFDckQsTUFBTSxFQUNOLFNBQVMsQ0FDVCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQVcsT0FBTztRQUNqQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDbEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztJQUMvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSYWRvblJlcXVlc3QsIFJhZG9uVGVtcGxhdGUgfSBmcm9tIFwiLi4vLi4vcmFkb24vaW5kZXguanNcIjtcbmltcG9ydCB0eXBlIHsgSUxlZGdlciB9IGZyb20gXCIuLi9pbnRlcmZhY2VzLmpzXCI7XG5pbXBvcnQge1xuXHR0eXBlIERhdGFSZXF1ZXN0UGFyYW1zLFxuXHREYXRhUmVxdWVzdFBheWxvYWQsXG59IGZyb20gXCIuLi9wYXlsb2Fkcy9EYXRhUmVxdWVzdFBheWxvYWQuanNcIjtcbmltcG9ydCB7IFRyYW5zbWl0dGVyTXVsdGlTaWcgfSBmcm9tIFwiLi4vdHJhbnNtaXR0ZXJzLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFB1YmxpY0tleUhhc2hTdHJpbmcgfSBmcm9tIFwiLi4vdHlwZXMuanNcIjtcblxuZXhwb3J0IHsgRGF0YVJlcXVlc3RQYXJhbXMgfSBmcm9tIFwiLi4vcGF5bG9hZHMvRGF0YVJlcXVlc3RQYXlsb2FkLmpzXCI7XG5cbmV4cG9ydCBjbGFzcyBEYXRhUmVxdWVzdHMgZXh0ZW5kcyBUcmFuc21pdHRlck11bHRpU2lnPFxuXHREYXRhUmVxdWVzdFBhcmFtcyxcblx0RGF0YVJlcXVlc3RQYXlsb2FkXG4+IHtcblx0cHVibGljIHN0YXRpYyBNQVhfV0VJR0hUID0gRGF0YVJlcXVlc3RQYXlsb2FkLk1BWF9XRUlHSFQ7XG5cblx0cHVibGljIHN0YXRpYyBmcm9tKFxuXHRcdGxlZGdlcjogSUxlZGdlcixcblx0XHRhcnRpZmFjdDogUmFkb25SZXF1ZXN0IHwgUmFkb25UZW1wbGF0ZSxcblx0KTogRGF0YVJlcXVlc3RzIHtcblx0XHRyZXR1cm4gbmV3IERhdGFSZXF1ZXN0cyhhcnRpZmFjdCwgbGVkZ2VyKTtcblx0fVxuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdGFydGlmYWN0OiBSYWRvblJlcXVlc3QgfCBSYWRvblRlbXBsYXRlLFxuXHRcdGxlZGdlcjogSUxlZGdlcixcblx0XHRjaGFuZ2VQa2g/OiBQdWJsaWNLZXlIYXNoU3RyaW5nLFxuXHQpIHtcblx0XHRzdXBlcihcblx0XHRcdFwiRFJUcmFuc2FjdGlvblwiLFxuXHRcdFx0bmV3IERhdGFSZXF1ZXN0UGF5bG9hZChcIkRSVHJhbnNhY3Rpb25Cb2R5XCIsIGFydGlmYWN0KSxcblx0XHRcdGxlZGdlcixcblx0XHRcdGNoYW5nZVBraCxcblx0XHQpO1xuXHR9XG5cblx0cHVibGljIGdldCByZXF1ZXN0KCk6IFJhZG9uUmVxdWVzdCB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMuX3BheWxvYWQucmVxdWVzdDtcblx0fVxuXG5cdHB1YmxpYyBnZXQgdGVtcGxhdGUoKTogUmFkb25UZW1wbGF0ZSB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMuX3BheWxvYWQudGVtcGxhdGU7XG5cdH1cbn1cbiJdfQ==
|
|
@@ -10,4 +10,4 @@ export class StakeDeposits extends TransmitterMultiSig {
|
|
|
10
10
|
super("StakeTransaction", new StakePayload("StakeTransactionBody"), ledger, changePkh);
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3Rha2VEZXBvc2l0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY3J5cHRvL3RyYW5zbWl0dGVycy9TdGFrZURlcG9zaXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFFTixZQUFZLEdBQ1osTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUt6RCxNQUFNLE9BQU8sYUFBYyxTQUFRLG1CQUdsQztJQUNPLE1BQU0sQ0FBQyxVQUFVLEdBQUcsWUFBWSxDQUFDLFVBQVUsQ0FBQztJQUM1QyxNQUFNLENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUM7SUFFMUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFlO1FBQ2pDLE9BQU8sSUFBSSxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFlBQVksTUFBZSxFQUFFLFNBQStCO1FBQzNELEtBQUssQ0FDSixrQkFBa0IsRUFDbEIsSUFBSSxZQUFZLENBQUMsc0JBQXNCLENBQUMsRUFDeEMsTUFBTSxFQUNOLFNBQVMsQ0FDVCxDQUFDO0lBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSUxlZGdlciB9IGZyb20gXCIuLi9pbnRlcmZhY2VzLmpzXCI7XG5pbXBvcnQge1xuXHR0eXBlIFN0YWtlRGVwb3NpdFBhcmFtcyxcblx0U3Rha2VQYXlsb2FkLFxufSBmcm9tIFwiLi4vcGF5bG9hZHMvU3Rha2VQYXlsb2FkLmpzXCI7XG5pbXBvcnQgeyBUcmFuc21pdHRlck11bHRpU2lnIH0gZnJvbSBcIi4uL3RyYW5zbWl0dGVycy5qc1wiO1xuaW1wb3J0IHR5cGUgeyBQdWJsaWNLZXlIYXNoU3RyaW5nIH0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XG5cbmV4cG9ydCB7IFN0YWtlRGVwb3NpdFBhcmFtcyB9IGZyb20gXCIuLi9wYXlsb2Fkcy9TdGFrZVBheWxvYWQuanNcIjtcblxuZXhwb3J0IGNsYXNzIFN0YWtlRGVwb3NpdHMgZXh0ZW5kcyBUcmFuc21pdHRlck11bHRpU2lnPFxuXHRTdGFrZURlcG9zaXRQYXJhbXMsXG5cdFN0YWtlUGF5bG9hZFxuPiB7XG5cdHB1YmxpYyBzdGF0aWMgTUFYX1dFSUdIVCA9IFN0YWtlUGF5bG9hZC5NQVhfV0VJR0hUO1xuXHRwdWJsaWMgc3RhdGljIE1JTl9WQUxVRSA9IFN0YWtlUGF5bG9hZC5NSU5fVkFMVUU7XG5cblx0cHVibGljIHN0YXRpYyBmcm9tKGxlZGdlcjogSUxlZGdlcik6IFN0YWtlRGVwb3NpdHMge1xuXHRcdHJldHVybiBuZXcgU3Rha2VEZXBvc2l0cyhsZWRnZXIpO1xuXHR9XG5cblx0Y29uc3RydWN0b3IobGVkZ2VyOiBJTGVkZ2VyLCBjaGFuZ2VQa2g/OiBQdWJsaWNLZXlIYXNoU3RyaW5nKSB7XG5cdFx0c3VwZXIoXG5cdFx0XHRcIlN0YWtlVHJhbnNhY3Rpb25cIixcblx0XHRcdG5ldyBTdGFrZVBheWxvYWQoXCJTdGFrZVRyYW5zYWN0aW9uQm9keVwiKSxcblx0XHRcdGxlZGdlcixcblx0XHRcdGNoYW5nZVBraCxcblx0XHQpO1xuXHR9XG59XG4iXX0=
|
|
@@ -46,4 +46,4 @@ export class StakeWithdrawals extends Transmitter {
|
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3Rha2VXaXRoZHJhd2Fscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY3J5cHRvL3RyYW5zbWl0dGVycy9TdGFrZVdpdGhkcmF3YWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFFTixjQUFjLEdBQ2QsTUFBTSwrQkFBK0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFLakQsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFdBR3JDO0lBQ08sTUFBTSxDQUFDLGlCQUFpQixHQUFHLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQztJQUM1RCxNQUFNLENBQUMsTUFBTSxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUM7SUFFdEMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFlO1FBQ2pDLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsWUFBWSxNQUFlLEVBQUUsU0FBK0I7UUFDM0QsS0FBSyxDQUNKLG9CQUFvQixFQUNwQixJQUFJLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQyxFQUM1QyxNQUFNLEVBQ04sU0FBUyxDQUNULENBQUM7SUFDSCxDQUFDO0lBRU0sS0FBSyxDQUFDLGVBQWUsQ0FDM0IsTUFBOEIsRUFDOUIsTUFBZ0I7UUFFaEIsT0FBTyxLQUFLLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRU0sdUJBQXVCO1FBQzdCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNYLE1BQU0sS0FBSyxDQUNWLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLGdEQUFnRCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUN0RyxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDUCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3ZDLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ1osSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzlDLENBQUM7aUJBQU0sQ0FBQztnQkFDUCxNQUFNLEtBQUssQ0FDVixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxnREFBZ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLENBQzFILENBQUM7WUFDSCxDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDYixDQUFDO0lBQ0YsQ0FBQztJQUVTLE9BQU8sQ0FBQyxRQUFpQjtRQUNsQyxPQUFPO1lBQ04sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ1osSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztnQkFDcEMsU0FBUyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO2FBQzlCO1NBQ0QsQ0FBQztJQUNILENBQUM7SUFFUyxXQUFXO1FBQ3BCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDeEMsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDekMsT0FBTztnQkFDTixJQUFJO2dCQUNKLFNBQVMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQzthQUM5QixDQUFDO1FBQ0gsQ0FBQztJQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEhhc2ggfSBmcm9tIFwiLi4vLi4vdHlwZXMuanNcIjtcbmltcG9ydCB0eXBlIHsgSUxlZGdlciB9IGZyb20gXCIuLi9pbnRlcmZhY2VzLmpzXCI7XG5pbXBvcnQge1xuXHR0eXBlIFN0YWtlV2l0aGRyYXdhbFBhcmFtcyxcblx0VW5zdGFrZVBheWxvYWQsXG59IGZyb20gXCIuLi9wYXlsb2Fkcy9VbnN0YWtlUGF5bG9hZC5qc1wiO1xuaW1wb3J0IHsgVHJhbnNtaXR0ZXIgfSBmcm9tIFwiLi4vdHJhbnNtaXR0ZXJzLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFB1YmxpY0tleUhhc2hTdHJpbmcsIFRyYW5zYWN0aW9uUmVjZWlwdCB9IGZyb20gXCIuLi90eXBlcy5qc1wiO1xuXG5leHBvcnQgeyBTdGFrZVdpdGhkcmF3YWxQYXJhbXMgfSBmcm9tIFwiLi4vcGF5bG9hZHMvVW5zdGFrZVBheWxvYWQuanNcIjtcblxuZXhwb3J0IGNsYXNzIFN0YWtlV2l0aGRyYXdhbHMgZXh0ZW5kcyBUcmFuc21pdHRlcjxcblx0U3Rha2VXaXRoZHJhd2FsUGFyYW1zLFxuXHRVbnN0YWtlUGF5bG9hZFxuPiB7XG5cdHB1YmxpYyBzdGF0aWMgTUlOX1RJTUVMT0NLX1NFQ1MgPSBVbnN0YWtlUGF5bG9hZC5NSU5fVElNRUxPQ0tfU0VDUztcblx0cHVibGljIHN0YXRpYyBXRUlHSFQgPSBVbnN0YWtlUGF5bG9hZC5XRUlHSFQ7XG5cblx0cHVibGljIHN0YXRpYyBmcm9tKGxlZGdlcjogSUxlZGdlcik6IFN0YWtlV2l0aGRyYXdhbHMge1xuXHRcdHJldHVybiBuZXcgU3Rha2VXaXRoZHJhd2FscyhsZWRnZXIpO1xuXHR9XG5cblx0Y29uc3RydWN0b3IobGVkZ2VyOiBJTGVkZ2VyLCBjaGFuZ2VQa2g/OiBQdWJsaWNLZXlIYXNoU3RyaW5nKSB7XG5cdFx0c3VwZXIoXG5cdFx0XHRcIlVuc3Rha2VUcmFuc2FjdGlvblwiLFxuXHRcdFx0bmV3IFVuc3Rha2VQYXlsb2FkKFwiVW5zdGFrZVRyYW5zYWN0aW9uQm9keVwiKSxcblx0XHRcdGxlZGdlcixcblx0XHRcdGNoYW5nZVBraCxcblx0XHQpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHNpZ25UcmFuc2FjdGlvbihcblx0XHRwYXJhbXM/OiBTdGFrZVdpdGhkcmF3YWxQYXJhbXMsXG5cdFx0cmVsb2FkPzogYm9vbGVhbixcblx0KTogUHJvbWlzZTxUcmFuc2FjdGlvblJlY2VpcHQ+IHtcblx0XHRyZXR1cm4gc3VwZXIuc2lnblRyYW5zYWN0aW9uKHBhcmFtcywgcmVsb2FkKTtcblx0fVxuXG5cdHB1YmxpYyBfc2lnblRyYW5zYWN0aW9uUGF5bG9hZCgpOiBIYXNoIHtcblx0XHRjb25zdCBoYXNoID0gdGhpcy5fcGF5bG9hZC5oYXNoO1xuXHRcdGlmICghaGFzaCkge1xuXHRcdFx0dGhyb3cgRXJyb3IoXG5cdFx0XHRcdGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IGludGVybmFsIGVycm9yOiB1bmFibGUgdG8gaGFzaGlmeSBwYXlsb2FkOiAke3RoaXMuX3BheWxvYWQudG9KU09OKHRydWUpfX0uYCxcblx0XHRcdCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnN0IHNpZ25lciA9IHRoaXMubGVkZ2VyLmdldFNpZ25lcigpO1xuXHRcdFx0aWYgKHNpZ25lcikge1xuXHRcdFx0XHR0aGlzLl9zaWduYXR1cmVzLnB1c2goc2lnbmVyLnNpZ25IYXNoKGhhc2gpKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRocm93IEVycm9yKFxuXHRcdFx0XHRcdGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IGludGVybmFsIGVycm9yOiBubyBkZWZhdWx0IFNpZ25lciBmb3VuZCBpbiAke3RoaXMubGVkZ2VyLmNvbnN0cnVjdG9yLm5hbWV9ICR7dGhpcy5sZWRnZXIucGtofS5gLFxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIGhhc2g7XG5cdFx0fVxuXHR9XG5cblx0cHJvdGVjdGVkIF90b0pTT04oaHVtYW5pemU6IGJvb2xlYW4pOiBhbnkge1xuXHRcdHJldHVybiB7XG5cdFx0XHRbdGhpcy50eXBlXToge1xuXHRcdFx0XHRib2R5OiB0aGlzLl9wYXlsb2FkLnRvSlNPTihodW1hbml6ZSksXG5cdFx0XHRcdHNpZ25hdHVyZTogdGhpcy5fc2lnbmF0dXJlc1swXSxcblx0XHRcdH0sXG5cdFx0fTtcblx0fVxuXG5cdHByb3RlY3RlZCBfdG9Qcm90b2J1ZigpOiBhbnkge1xuXHRcdGNvbnN0IGJvZHkgPSB0aGlzLl9wYXlsb2FkLnRvUHJvdG9idWYoKTtcblx0XHRpZiAoYm9keSAmJiB0aGlzLl9zaWduYXR1cmVzLmxlbmd0aCA+IDApIHtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdGJvZHksXG5cdFx0XHRcdHNpZ25hdHVyZTogdGhpcy5fc2lnbmF0dXJlc1swXSxcblx0XHRcdH07XG5cdFx0fVxuXHR9XG59XG4iXX0=
|
|
@@ -9,4 +9,4 @@ export class ValueTransfers extends TransmitterMultiSig {
|
|
|
9
9
|
super("VTTransaction", new ValueTransferPayload("VTTransactionBody"), ledger, changePkh);
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmFsdWVUcmFuc2ZlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NyeXB0by90cmFuc21pdHRlcnMvVmFsdWVUcmFuc2ZlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVOLG9CQUFvQixHQUNwQixNQUFNLHFDQUFxQyxDQUFDO0FBSzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR3pELE1BQU0sT0FBTyxjQUFlLFNBQVEsbUJBR25DO0lBQ08sTUFBTSxDQUFDLFVBQVUsR0FBRyxvQkFBb0IsQ0FBQyxVQUFVLENBQUM7SUFFcEQsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFlO1FBQ2pDLE9BQU8sSUFBSSxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFlBQVksTUFBZSxFQUFFLFNBQStCO1FBQzNELEtBQUssQ0FDSixlQUFlLEVBQ2YsSUFBSSxvQkFBb0IsQ0FBQyxtQkFBbUIsQ0FBQyxFQUM3QyxNQUFNLEVBQ04sU0FBUyxDQUNULENBQUM7SUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0dHlwZSBWYWx1ZVRyYW5zZmVyUGFyYW1zLFxuXHRWYWx1ZVRyYW5zZmVyUGF5bG9hZCxcbn0gZnJvbSBcIi4uL3BheWxvYWRzL1ZhbHVlVHJhbnNmZXJQYXlsb2FkLmpzXCI7XG5cbmV4cG9ydCB7IFZhbHVlVHJhbnNmZXJQYXJhbXMgfSBmcm9tIFwiLi4vcGF5bG9hZHMvVmFsdWVUcmFuc2ZlclBheWxvYWQuanNcIjtcblxuaW1wb3J0IHR5cGUgeyBJTGVkZ2VyIH0gZnJvbSBcIi4uL2ludGVyZmFjZXMuanNcIjtcbmltcG9ydCB7IFRyYW5zbWl0dGVyTXVsdGlTaWcgfSBmcm9tIFwiLi4vdHJhbnNtaXR0ZXJzLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFB1YmxpY0tleUhhc2hTdHJpbmcgfSBmcm9tIFwiLi4vdHlwZXMuanNcIjtcblxuZXhwb3J0IGNsYXNzIFZhbHVlVHJhbnNmZXJzIGV4dGVuZHMgVHJhbnNtaXR0ZXJNdWx0aVNpZzxcblx0VmFsdWVUcmFuc2ZlclBhcmFtcyxcblx0VmFsdWVUcmFuc2ZlclBheWxvYWRcbj4ge1xuXHRwdWJsaWMgc3RhdGljIE1BWF9XRUlHSFQgPSBWYWx1ZVRyYW5zZmVyUGF5bG9hZC5NQVhfV0VJR0hUO1xuXG5cdHB1YmxpYyBzdGF0aWMgZnJvbShsZWRnZXI6IElMZWRnZXIpOiBWYWx1ZVRyYW5zZmVycyB7XG5cdFx0cmV0dXJuIG5ldyBWYWx1ZVRyYW5zZmVycyhsZWRnZXIpO1xuXHR9XG5cblx0Y29uc3RydWN0b3IobGVkZ2VyOiBJTGVkZ2VyLCBjaGFuZ2VQa2g/OiBQdWJsaWNLZXlIYXNoU3RyaW5nKSB7XG5cdFx0c3VwZXIoXG5cdFx0XHRcIlZUVHJhbnNhY3Rpb25cIixcblx0XHRcdG5ldyBWYWx1ZVRyYW5zZmVyUGF5bG9hZChcIlZUVHJhbnNhY3Rpb25Cb2R5XCIpLFxuXHRcdFx0bGVkZ2VyLFxuXHRcdFx0Y2hhbmdlUGtoLFxuXHRcdCk7XG5cdH1cbn1cbiJdfQ==
|
|
@@ -426,4 +426,4 @@ export class TransmitterMultiSig extends Transmitter {
|
|
|
426
426
|
}
|
|
427
427
|
}
|
|
428
428
|
}
|
|
429
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNtaXR0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jcnlwdG8vdHJhbnNtaXR0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLElBQUksYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUQsTUFBTSxhQUFhLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQztBQUU1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDLE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRS9DLE9BQU8sUUFBUSxNQUFNLFlBQVksQ0FBQztBQUVsQyxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLFFBQVEsQ0FBQztBQUNyQyxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUNuQyxPQUFPLENBQUMsbUNBQW1DLENBQUMsQ0FDNUMsQ0FBQztBQUVGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQU9sRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBVTFDLE9BQU8sRUFFTixZQUFZLEVBQ1osU0FBUyxFQUVULFlBQVksRUFLWixpQkFBaUIsR0FFakIsTUFBTSxZQUFZLENBQUM7QUFFcEIsTUFBTSxPQUFnQixXQUFXO0lBS2hCLE1BQU0sQ0FBVTtJQUNoQixTQUFTLENBQXNCO0lBRXJDLFFBQVEsQ0FBVTtJQUNsQixTQUFTLENBQWdCO0lBQ3pCLFdBQVcsR0FBMEIsRUFBRSxDQUFDO0lBQ3hDLGFBQWEsR0FBZ0IsRUFBRSxDQUFDO0lBRTFDLFlBQ0MsYUFBcUIsRUFDckIsT0FBZ0IsRUFDaEIsTUFBZSxFQUNmLFNBQStCO1FBRS9CLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FB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RVMsV0FBVztRQUNwQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3hDLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM5QixPQUFPO2dCQUNOLElBQUk7Z0JBQ0osVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXO2FBQzVCLENBQUM7UUFDSCxDQUFDO0lBQ0YsQ0FBQztDQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVmYXVsdCBhcyBQcm9taXNlUG9sbGVyIH0gZnJvbSBcInByb21pc2UtcG9sbGVyXCI7XHJcblxyXG5jb25zdCBwcm9taXNlUG9sbGVyID0gUHJvbWlzZVBvbGxlci5kZWZhdWx0O1xyXG5cclxuaW1wb3J0IHsgY3JlYXRlUmVxdWlyZSB9IGZyb20gXCJub2RlOm1vZHVsZVwiO1xyXG5cclxuY29uc3QgcmVxdWlyZSA9IGNyZWF0ZVJlcXVpcmUoaW1wb3J0Lm1ldGEudXJsKTtcclxuXHJcbmltcG9ydCBwcm90b2J1ZiBmcm9tIFwicHJvdG9idWZqc1wiO1xyXG5cclxuY29uc3QgeyBSb290OiBQcm90b1Jvb3QgfSA9IHByb3RvYnVmO1xyXG5jb25zdCBwcm90b1Jvb3QgPSBQcm90b1Jvb3QuZnJvbUpTT04oXHJcblx0cmVxdWlyZShcIi4uLy4uLy4uL3dpdG5ldC93aXRuZXQucHJvdG8uanNvblwiKSxcclxuKTtcclxuXHJcbmltcG9ydCB7IEpzb25ScGNQcm92aWRlciB9IGZyb20gXCIuLi9ycGMvaW5kZXguanNcIjtcclxuaW1wb3J0IHR5cGUge1xyXG5cdFRyYW5zYWN0aW9uUmVwb3J0LFxyXG5cdFV0eG9NZXRhZGF0YSxcclxuXHRWYWx1ZVRyYW5zZmVyT3V0cHV0LFxyXG59IGZyb20gXCIuLi9ycGMvdHlwZXMuanNcIjtcclxuaW1wb3J0IHR5cGUgeyBIYXNoLCBOZXR3b3JrIH0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XHJcbmltcG9ydCB7IGlzSGV4U3RyaW5nIH0gZnJvbSBcIi4uL3V0aWxzLmpzXCI7XHJcblxyXG5pbXBvcnQgdHlwZSB7XHJcblx0SUpzb25ScGNQcm92aWRlcixcclxuXHRJTGVkZ2VyLFxyXG5cdElUcmFuc2FjdGlvblBheWxvYWQsXHJcblx0SVRyYW5zYWN0aW9uUGF5bG9hZE11bHRpU2lnLFxyXG5cdElUcmFuc21pdHRlcixcclxufSBmcm9tIFwiLi9pbnRlcmZhY2VzLmpzXCI7XHJcblxyXG5pbXBvcnQge1xyXG5cdHR5cGUgS2V5ZWRTaWduYXR1cmUsXHJcblx0TWVtcG9vbEVycm9yLFxyXG5cdFB1YmxpY0tleSxcclxuXHR0eXBlIFB1YmxpY0tleUhhc2hTdHJpbmcsXHJcblx0VGltZW91dEVycm9yLFxyXG5cdHR5cGUgVHJhbnNhY3Rpb25DYWxsYmFjayxcclxuXHR0eXBlIFRyYW5zYWN0aW9uUmVjZWlwdCxcclxuXHR0eXBlIFRyYW5zYWN0aW9uU3RhdHVzLFxyXG5cdHR5cGUgVHJhbnNtaXNzaW9uLFxyXG5cdFRyYW5zbWlzc2lvbkVycm9yLFxyXG5cdHR5cGUgVXR4byxcclxufSBmcm9tIFwiLi90eXBlcy5qc1wiO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRyYW5zbWl0dGVyPFxyXG5cdFNwZWNzLFxyXG5cdFBheWxvYWQgZXh0ZW5kcyBJVHJhbnNhY3Rpb25QYXlsb2FkPFNwZWNzPixcclxuPiBpbXBsZW1lbnRzIElUcmFuc21pdHRlclxyXG57XHJcblx0cHVibGljIHJlYWRvbmx5IGxlZGdlcjogSUxlZGdlcjtcclxuXHRwdWJsaWMgcmVhZG9ubHkgY2hhbmdlUGtoOiBQdWJsaWNLZXlIYXNoU3RyaW5nO1xyXG5cclxuXHRwcm90ZWN0ZWQgX3BheWxvYWQ6IFBheWxvYWQ7XHJcblx0cHJvdGVjdGVkIF9wcm90b0J1ZjogcHJvdG9idWYuVHlwZTtcclxuXHRwcm90ZWN0ZWQgX3NpZ25hdHVyZXM6IEFycmF5PEtleWVkU2lnbmF0dXJlPiA9IFtdO1xyXG5cdHByb3RlY3RlZCBfdHJhbnNhY3Rpb25zOiBBcnJheTxIYXNoPiA9IFtdO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByb3RvVHlwZU5hbWU6IHN0cmluZyxcclxuXHRcdHBheWxvYWQ6IFBheWxvYWQsXHJcblx0XHRsZWRnZXI6IElMZWRnZXIsXHJcblx0XHRjaGFuZ2VQa2g/OiBQdWJsaWNLZXlIYXNoU3RyaW5nLFxyXG5cdCkge1xyXG5cdFx0dGhpcy5fcHJvdG9CdWYgPSBwcm90b1Jvb3QubG9va3VwVHlwZShwcm90b1R5cGVOYW1lKTtcclxuXHRcdHRoaXMuX3BheWxvYWQgPSBwYXlsb2FkO1xyXG5cdFx0dGhpcy5sZWRnZXIgPSBsZWRnZXI7XHJcblx0XHRpZiAoIWxlZGdlci5wcm92aWRlci5uZXR3b3JrKSB7XHJcblx0XHRcdHRocm93IFR5cGVFcnJvcihcclxuXHRcdFx0XHRgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiBsZWRnZXIncyBwcm92aWRlciBpcyBub3QgaW5pdGlhbGl6ZWQuYCxcclxuXHRcdFx0KTtcclxuXHRcdH1cclxuXHRcdHRoaXMuY2hhbmdlUGtoID0gY2hhbmdlUGtoIHx8IGxlZGdlci5jaGFuZ2VQa2g7XHJcblx0XHRpZiAoIWxlZGdlci5nZXRTaWduZXIodGhpcy5jaGFuZ2VQa2gpKSB7XHJcblx0XHRcdHRocm93IFR5cGVFcnJvcihcclxuXHRcdFx0XHRgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiBsZWRnZXIgaG9sZHMgbm8gU2lnbmVyIGZvciBjaGFuZ2UgYWRkcmVzcyAke3RoaXMuY2hhbmdlUGtofS5gLFxyXG5cdFx0XHQpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHVibGljIGdldCBwYXlsb2FkKCk6IFBheWxvYWQgfCB1bmRlZmluZWQge1xyXG5cdFx0cmV0dXJuIHRoaXMuX3BheWxvYWQucHJlcGFyZWQgPyB0aGlzLl9wYXlsb2FkIDogdW5kZWZpbmVkO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGdldCBwcm92aWRlcigpOiBJSnNvblJwY1Byb3ZpZGVyIHtcclxuXHRcdHJldHVybiB0aGlzLmxlZGdlci5wcm92aWRlcjtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBnZXQgbmV0d29yaygpOiBOZXR3b3JrIHtcclxuXHRcdHJldHVybiB0aGlzLnByb3ZpZGVyLm5ldHdvcmsgfHwgXCJtYWlubmV0XCI7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgZ2V0IHRyYW5zYWN0aW9ucygpOiBBcnJheTxIYXNoPiB7XHJcblx0XHRyZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb25zO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGdldCB0eXBlKCk6IHN0cmluZyB7XHJcblx0XHRyZXR1cm4gdGhpcy5fcGF5bG9hZC5jb25zdHJ1Y3Rvci5uYW1lXHJcblx0XHRcdC5zcGxpdCgvKFthLXpdKD89W0EtWl0pKS9nKVxyXG5cdFx0XHQuc2xpY2UoMCwgLTEpXHJcblx0XHRcdC5qb2luKFwiXCIpO1xyXG5cdH1cclxuXHJcblx0cHJvdGVjdGVkIGdldCBfZnJvbSgpOiBBcnJheTxQdWJsaWNLZXlIYXNoU3RyaW5nPiB8IHVuZGVmaW5lZCB7XHJcblx0XHRpZiAodGhpcy5fc2lnbmF0dXJlcy5sZW5ndGggPiAwKSB7XHJcblx0XHRcdHJldHVybiAoXHJcblx0XHRcdFx0dGhpcy5fc2lnbmF0dXJlc1xyXG5cdFx0XHRcdFx0Lm1hcCgoa3MpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc3QgcGtoID0gUHVibGljS2V5LmZyb21Qcm90b2J1Zihrcy5wdWJsaWNfa2V5KVxyXG5cdFx0XHRcdFx0XHRcdC5oYXNoKClcclxuXHRcdFx0XHRcdFx0XHQudG9CZWNoMzIodGhpcy5uZXR3b3JrKTtcclxuXHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMubGVkZ2VyLmdldFNpZ25lcihwa2gpPy5wa2ggfHwgdGhpcy5sZWRnZXIucGtoO1xyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdC8vIGF2b2lkIHJlcGV0aXRpb25zXHJcblx0XHRcdFx0XHQuZmlsdGVyKChwa2gsIGluZGV4LCBhcnJheSkgPT4gaW5kZXggPT09IGFycmF5LmluZGV4T2YocGtoKSlcclxuXHRcdFx0KTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcm90ZWN0ZWQgZ2V0IF9wcmVwYXJlZCgpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiAoXHJcblx0XHRcdHRoaXMuX3BheWxvYWQucHJlcGFyZWQgJiZcclxuXHRcdFx0ISF0aGlzLl9zaWduYXR1cmVzICYmXHJcblx0XHRcdHRoaXMuX3NpZ25hdHVyZXMubGVuZ3RoID4gMFxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBhc3luYyBzZW5kVHJhbnNhY3Rpb24odGFyZ2V0PzogU3BlY3MpOiBQcm9taXNlPFRyYW5zYWN0aW9uUmVjZWlwdD4ge1xyXG5cdFx0bGV0IHJlY2VpcHQgPSB0aGlzLl9nZXRJbmZsaWdodFJlY2VpcHQoKTtcclxuXHRcdGlmICghcmVjZWlwdCB8fCB0YXJnZXQpIHtcclxuXHRcdFx0Ly8gaWYgaW5mbGlnaHQgbm90IHlldCBwcmVwYXJlZCwgb3IgcHJlcGFyZWQgYnV0IG5vdCB5ZXQgdHJhbnNtaXR0ZWQsXHJcblx0XHRcdC8vIHByZXBhcmUgYSBuZXcgaW5mbGlnaHQgZWl0aGVyIHdpdGggc3BlY2lmaWVkIHBhcmFtcyAoaWYgYW55KSxcclxuXHRcdFx0Ly8gb3IgcHJldmlvdXNseSBwcmVwYXJlZCBpbmZsaWdodCAoaWYga25vd24pLlxyXG5cdFx0XHRyZWNlaXB0ID0gYXdhaXQgdGhpcy5zaWduVHJhbnNhY3Rpb24odGFyZ2V0IHx8IChyZWNlaXB0IGFzIFNwZWNzKSk7XHJcblx0XHR9XHJcblx0XHRpZiAocmVjZWlwdD8uc3RhdHVzICYmIHJlY2VpcHQuc3RhdHVzICE9PSBcInNpZ25lZFwiICYmICFyZWNlaXB0Py5lcnJvcikge1xyXG5cdFx0XHQvLyBpZiBjdXJyZW50IGluZmxpZ2h0IHdhcyBhbHJlYWR5IHRyYW5zbWl0dGVkIGFuZCBpdCdzIG5vdCB5ZXQga25vd24gdG8gZmFpbCAuLi5cclxuXHRcdFx0cmV0dXJuIHJlY2VpcHQ7XHJcblx0XHR9XHJcblx0XHQvLyBpZiB3ZSByZWFjaCB0aGlzIHBvaW50IGlzIGJlY2F1c2UgYW4gaW5mbGlnaHQgdHJhbnNhY3Rpb24gaXNcclxuXHRcdC8vIHJlYWR5IHRvIGJlIHRyYW5zbWl0dGVkXHJcblx0XHRKc29uUnBjUHJvdmlkZXIucmVjZWlwdHNbcmVjZWlwdC5oYXNoXS5zdGF0dXMgPSBcInBlbmRpbmdcIjtcclxuXHRcdGRlbGV0ZSBKc29uUnBjUHJvdmlkZXIucmVjZWlwdHNbcmVjZWlwdC5oYXNoXS5lcnJvcjtcclxuXHRcdHJldHVybiB0aGlzLnByb3ZpZGVyXHJcblx0XHRcdC5zZW5kUmF3VHJhbnNhY3Rpb24odGhpcy5fdG9KU09OKGZhbHNlKSlcclxuXHRcdFx0LmNhdGNoKChlcnIpID0+IHtcclxuXHRcdFx0XHRjb25zdCBlcnJvciA9IG5ldyBUcmFuc21pc3Npb25FcnJvcihcclxuXHRcdFx0XHRcdHRoaXMuX2dldEluZmxpZ2h0VHJhbnNtaXNzaW9uKCksXHJcblx0XHRcdFx0XHRlcnIsXHJcblx0XHRcdFx0KTtcclxuXHRcdFx0XHRKc29uUnBjUHJvdmlkZXIucmVjZWlwdHNbcmVjZWlwdC5oYXNoXS5lcnJvciA9IGVycm9yO1xyXG5cdFx0XHRcdHRocm93IGVycm9yO1xyXG5cdFx0XHR9KVxyXG5cdFx0XHQudGhlbigoYWNjZXB0ZWQpID0+IHtcclxuXHRcdFx0XHRpZiAoYWNjZXB0ZWQpIHtcclxuXHRcdFx0XHRcdEpzb25ScGNQcm92aWRlci5yZWNlaXB0c1tyZWNlaXB0Lmhhc2hdLnN0YXR1cyA9IFwicmVsYXllZFwiO1xyXG5cdFx0XHRcdFx0cmV0dXJuIEpzb25ScGNQcm92aWRlci5yZWNlaXB0c1tyZWNlaXB0Lmhhc2hdO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRjb25zdCBlcnJvciA9IG5ldyBUcmFuc21pc3Npb25FcnJvcihcclxuXHRcdFx0XHRcdFx0dGhpcy5fZ2V0SW5mbGlnaHRUcmFuc21pc3Npb24oKSxcclxuXHRcdFx0XHRcdFx0RXJyb3IoYFJlamVjdGVkIGZvciB1bmtub3duIHJlYXNvbnNgKSxcclxuXHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHRKc29uUnBjUHJvdmlkZXIucmVjZWlwdHNbcmVjZWlwdC5oYXNoXS5lcnJvciA9IGVycm9yO1xyXG5cdFx0XHRcdFx0dGhyb3cgZXJyb3I7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBhc3luYyBzaWduVHJhbnNhY3Rpb24oXHJcblx0XHR0YXJnZXQ/OiBTcGVjcyxcclxuXHRcdHJlbG9hZFV0eG9zID0gZmFsc2UsXHJcblx0KTogUHJvbWlzZTxUcmFuc2FjdGlvblJlY2VpcHQ+IHtcclxuXHRcdHRhcmdldCA9IGF3YWl0IHRoaXMuX3BheWxvYWQudmFsaWRhdGVUYXJnZXQodGFyZ2V0KTtcclxuXHRcdGlmICghdGFyZ2V0KSB7XHJcblx0XHRcdC8vIGUuZy4gaWYgY2FsbGVkIGZyb20gdGhpcy5zZW5kKCkgd2l0aCBubyBwYXJhbXNcclxuXHRcdFx0dGhyb3cgVHlwZUVycm9yKFxyXG5cdFx0XHRcdGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IGNhbm5vdCBzaWduIGEgdHJhbnNhY3Rpb24gaWYgbm8gcGFyYW1zIHdlcmUgcHJldmlvdXNseSBzcGVjaWZpZWQuYCxcclxuXHRcdFx0KTtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBpbmZsaWdodCA9IHRoaXMuX2dldEluZmxpZ2h0UmVjZWlwdCgpO1xyXG5cdFx0aWYgKGluZmxpZ2h0KSB7XHJcblx0XHRcdC8vIGNvbnNvbGUubG9nKFwic2lnbi5wZW5kaW5nUmVjZWlwdCA9PlwiLCBpbmZsaWdodClcclxuXHRcdFx0aWYgKCFpbmZsaWdodD8uc3RhdHVzIHx8IGluZmxpZ2h0LnN0YXR1cyA9PT0gXCJzaWduZWRcIikge1xyXG5cdFx0XHRcdC8vIHJlY292ZXIgaW5wdXQgdXR4b3MgaWYgcHJldmlvdXNseSBzaWduZWQgcGFyYW1zIHdlcmUgbm90IGV2ZW4gYXR0ZW1wdGVkIHRvIGJlIHNlbnRcclxuXHRcdFx0XHRpZiAoIXJlbG9hZFV0eG9zKSB0aGlzLl9yZWNvdmVySW5wdXRVdHhvcygpO1xyXG5cdFx0XHR9IGVsc2UgaWYgKGluZmxpZ2h0LnN0YXR1cyA9PT0gXCJwZW5kaW5nXCIgJiYgIWluZmxpZ2h0LmVycm9yKSB7XHJcblx0XHRcdFx0Ly8gdGhyb3cgZXhjZXB0aW9uIGlmIGEgZm9ybWVybHkgc2lnbmVkIHRyYW5zYWN0aW9uIGlzIHN0aWxsIHdhaXRpbmcgdG8gYmUgcmVsYXllZCBieSBhIHByb3ZpZGVyXHJcblx0XHRcdFx0dGhyb3cgRXJyb3IoXHJcblx0XHRcdFx0XHRgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiBpbi1mbGlnaHQgdHggYmVpbmcgcmVsYXllZDogJHtpbmZsaWdodC5oYXNofWAsXHJcblx0XHRcdFx0KTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdC8vIGNsZWFuIGN1cnJlbnQgc2lnbmF0dXJlcywgc28gbmV3IFVUWE9zIGNhbiBiZSBjb25zdW1lZCBhbmQgdGhlcmVmb3JlIGEgbmV3IHRyYW5zYWN0aW9uIGhhc2ggYmUgaW5jZXB0ZWRcclxuXHRcdHRoaXMuX2NsZWFuU2lnbmF0dXJlcyh0YXJnZXQpO1xyXG5cclxuXHRcdC8vIGlmIG5vdCB5ZXQgcHJlcGFyZWQsIHRyeSB0byBjb3ZlciB0cmFuc2FjdGlvbiBleHBlbnNlcyB3aXRoIGV4aXN0aW5nIHV0eG9zIG9uIHNpZ25lcnM6XHJcblx0XHRsZXQgY2hhbmdlID0gMG47XHJcblx0XHRpZiAoIXRoaXMuX3BheWxvYWQucHJlcGFyZWQpIHtcclxuXHRcdFx0Y2hhbmdlID0gYXdhaXQgdGhpcy5fcGF5bG9hZFxyXG5cdFx0XHRcdC5jb25zdW1lVXR4b3ModGhpcy5sZWRnZXIsIHJlbG9hZFV0eG9zKVxyXG5cdFx0XHRcdC5jYXRjaCgoZXJyOiBhbnkpID0+IHtcclxuXHRcdFx0XHRcdHRocm93IEVycm9yKFxyXG5cdFx0XHRcdFx0XHRgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiBjYW5ub3QgY29uc3VtZSBVVFhPcyBmcm9tICR7dGhpcy5sZWRnZXIuY29uc3RydWN0b3IubmFtZX0gJHt0aGlzLmxlZGdlci5wa2h9OiAke2Vycn0uYCxcclxuXHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0fSk7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCF0aGlzLl9wYXlsb2FkLnByZXBhcmVkKSB7XHJcblx0XHRcdC8vIHRocm93cyBleGVjZXB0aW9uIGlmIG5vdCBlbm91Z2ggdXR4b3Mgd2VyZSBmb3VuZCB0byBjb3ZlciB0cmFuc2FjdGlvbiBleHBlbnNlczpcclxuXHRcdFx0dGhyb3cgRXJyb3IoXHJcblx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogaW5zdWZmaWNpZW50IGZ1bmRzIG9uICR7dGhpcy5sZWRnZXIuY29uc3RydWN0b3IubmFtZX0gJHt0aGlzLmxlZGdlci5wa2h9JHtjaGFuZ2UgPCAwID8gYDogcmVxdWlyZXMgZXh0cmEgJHstY2hhbmdlfSAkbmFub3dpdHMuYCA6IFwiLlwifWAsXHJcblx0XHRcdCk7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gZG91YmxlLWNoZWNrIHdlaWdodCBkb2VzIG5vdCBleGNlZWRzIGJsb2NrIGxpbWl0Li4uXHJcblx0XHRpZiAodGhpcy5fcGF5bG9hZC53ZWlnaHQgPiB0aGlzLl9wYXlsb2FkLm1heFdlaWdodCkge1xyXG5cdFx0XHR0aHJvdyBFcnJvcihcclxuXHRcdFx0XHRgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiB0cmFuc2FjdGlvbiB3ZWlnaHQgZXhjZWVkZWQgYmxvY2sgbGltaXQ6ICR7dGhpcy5fcGF5bG9hZC53ZWlnaHR9ID4gJHt0aGlzLl9wYXlsb2FkLm1heFdlaWdodH0uYCxcclxuXHRcdFx0KTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBzaWduaW5nIHRoZSB0cmFuc2FjdGlvbiBwYXlsb2FkIGdlbmVyYXRlcyB0aGUgdHJhbnNhY3Rpb24gaGFzaCwgYW5kIHRoZSByZWNlaXB0XHJcblx0XHRyZXR1cm4gdGhpcy5fdXBzZXJ0VHJhbnNhY3Rpb25SZWNlaXB0KFxyXG5cdFx0XHR0aGlzLl9zaWduVHJhbnNhY3Rpb25QYXlsb2FkKCksXHJcblx0XHRcdHRhcmdldCxcclxuXHRcdFx0XCJzaWduZWRcIixcclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgYXN5bmMgY29uZmlybVRyYW5zYWN0aW9uKFxyXG5cdFx0aGFzaDogSGFzaCxcclxuXHRcdG9wdGlvbnM/OiB7XHJcblx0XHRcdGNvbmZpcm1hdGlvbnM/OiBudW1iZXI7XHJcblx0XHRcdHRpbWVvdXRTZWNzPzogbnVtYmVyO1xyXG5cdFx0XHRvbkNoZWNrcG9pbnQ/OiBUcmFuc2FjdGlvbkNhbGxiYWNrO1xyXG5cdFx0XHRvblN0YXR1c0NoYW5nZT86IFRyYW5zYWN0aW9uQ2FsbGJhY2s7XHJcblx0XHR9LFxyXG5cdCk6IFByb21pc2U8VHJhbnNhY3Rpb25SZWNlaXB0IHwgdW5rbm93bj4ge1xyXG5cdFx0Y29uc3QgcmVjZWlwdCA9IEpzb25ScGNQcm92aWRlci5yZWNlaXB0c1toYXNoXTtcclxuXHRcdGlmICghcmVjZWlwdCB8fCByZWNlaXB0Lmhhc2ggIT09IGhhc2gpIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFxyXG5cdFx0XHRcdGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IHRyYW5zYWN0aW9uIG5vdCBmb3VuZDogJHtoYXNofWAsXHJcblx0XHRcdCk7XHJcblx0XHR9IGVsc2UgaWYgKFtcInNpZ25lZFwiLCBcInBlbmRpbmdcIl0uaW5jbHVkZXMocmVjZWlwdC5zdGF0dXMpKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihcclxuXHRcdFx0XHRgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiB0cmFuc2FjdGlvbiBzdGF0dXMgXCIke3JlY2VpcHQuc3RhdHVzfVwiOiAke2hhc2h9YCxcclxuXHRcdFx0KTtcclxuXHRcdH0gZWxzZSBpZiAocmVjZWlwdC5zdGF0dXMgPT09IFwicmVtb3ZlZFwiKSB7XHJcblx0XHRcdHRocm93IG5ldyBNZW1wb29sRXJyb3IoXHJcblx0XHRcdFx0cmVjZWlwdCxcclxuXHRcdFx0XHRgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiB0cmFuc2FjdGlvbiByZW1vdmVkIGZyb20gbWVtcG9vbDogJHtoYXNofWAsXHJcblx0XHRcdCk7XHJcblx0XHR9IGVsc2UgaWYgKHJlY2VpcHQuc3RhdHVzID09PSBcInJlbGF5ZWRcIiAmJiBvcHRpb25zPy5vblN0YXR1c0NoYW5nZSlcclxuXHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRvcHRpb25zLm9uU3RhdHVzQ2hhbmdlKHJlY2VpcHQpO1xyXG5cdFx0XHR9IGNhdGNoIHt9XHJcblxyXG5cdFx0Y29uc3QgZ2xvYmFsVGltZXIgPSAoc3RhcnQ6IG51bWJlciwgbXM6IG51bWJlcikgPT4ge1xyXG5cdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKF8sIHJlamVjdCkgPT4ge1xyXG5cdFx0XHRcdHNldFRpbWVvdXQoXHJcblx0XHRcdFx0XHQoKSA9PlxyXG5cdFx0XHRcdFx0XHRyZWplY3QoXHJcblx0XHRcdFx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogcG9sbGluZyB0aW1lb3V0IGFmdGVyICR7TWF0aC5mbG9vcigoRGF0ZS5ub3coKSAtIHN0YXJ0KSAvIDEwMDApfSBzZWNzKS5gLFxyXG5cdFx0XHRcdFx0XHQpLFxyXG5cdFx0XHRcdFx0bXMsXHJcblx0XHRcdFx0KTtcclxuXHRcdFx0fSk7XHJcblx0XHR9O1xyXG5cclxuXHRcdGNvbnN0IFtjb25maXJtYXRpb25zLCBpbnRlcnZhbCwgdGltZW91dCwgZ2xvYmFsVGltZW91dF0gPSBbXHJcblx0XHRcdG9wdGlvbnM/LmNvbmZpcm1hdGlvbnMgfHwgMCxcclxuXHRcdFx0MTAwMDAsXHJcblx0XHRcdDUwMDAsXHJcblx0XHRcdChvcHRpb25zPy50aW1lb3V0U2VjcyB8fCA2MDApICogMTAwMCxcclxuXHRcdF07XHJcblxyXG5cdFx0cmV0dXJuIFByb21pc2UucmFjZShbXHJcblx0XHRcdGdsb2JhbFRpbWVyKERhdGUubm93KCksIGdsb2JhbFRpbWVvdXQpLmNhdGNoKChyZWFzb246IGFueSkgPT4ge1xyXG5cdFx0XHRcdHRocm93IG5ldyBUaW1lb3V0RXJyb3IoZ2xvYmFsVGltZW91dCwgcmVjZWlwdCwgcmVhc29uKTtcclxuXHRcdFx0fSksXHJcblxyXG5cdFx0XHRwcm9taXNlUG9sbGVyKHtcclxuXHRcdFx0XHR0YXNrRm46ICgpID0+IHRoaXMucHJvdmlkZXIuZ2V0VHJhbnNhY3Rpb24oaGFzaCkuY2F0Y2goKGVycikgPT4gZXJyKSxcclxuXHRcdFx0XHRzaG91bGRDb250aW51ZTogKGVycm9yOiBhbnksIHJlcG9ydDogVHJhbnNhY3Rpb25SZXBvcnQpID0+IHtcclxuXHRcdFx0XHRcdGNvbnN0IHN0YXR1cyA9IHJlY2VpcHQuc3RhdHVzO1xyXG5cdFx0XHRcdFx0cmVjZWlwdC5lcnJvciA9IGVycm9yO1xyXG5cdFx0XHRcdFx0aWYgKFxyXG5cdFx0XHRcdFx0XHRlcnJvciBpbnN0YW5jZW9mIEVycm9yICYmXHJcblx0XHRcdFx0XHRcdGVycm9yLm1lc3NhZ2UuaW5kZXhPZihcIkl0ZW1Ob3RGb3VuZFwiKSA+PSAwXHJcblx0XHRcdFx0XHQpIHtcclxuXHRcdFx0XHRcdFx0cmVjZWlwdC5zdGF0dXMgPSBcInJlbW92ZWRcIjtcclxuXHRcdFx0XHRcdH0gZWxzZVxyXG5cdFx0XHRcdFx0XHRzd2l0Y2ggKHJlY2VpcHQuc3RhdHVzKSB7XHJcblx0XHRcdFx0XHRcdFx0Y2FzZSBcInJlbGF5ZWRcIjpcclxuXHRcdFx0XHRcdFx0XHRcdGlmIChyZXBvcnQ/LmJsb2NrSGFzaCAmJiBpc0hleFN0cmluZyhyZXBvcnQuYmxvY2tIYXNoKSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRyZWNlaXB0LmNvbmZpcm1hdGlvbnMgPSByZXBvcnQuY29uZmlybWF0aW9ucztcclxuXHRcdFx0XHRcdFx0XHRcdFx0KHJlY2VpcHQuYmxvY2tIYXNoID0gcmVwb3J0LmJsb2NrSGFzaCksXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0KHJlY2VpcHQuYmxvY2tFcG9jaCA9IHJlcG9ydC5ibG9ja0Vwb2NoKSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQocmVjZWlwdC5ibG9ja1RpbWVzdGFtcCA9IHJlcG9ydC5ibG9ja1RpbWVzdGFtcCk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHJlY2VpcHQuc3RhdHVzID0gcmVwb3J0LmNvbmZpcm1lZFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdD8gXCJmaW5hbGl6ZWRcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDogcmVwb3J0Py5jb25maXJtYXRpb25zID49IGNvbmZpcm1hdGlvbnNcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdD8gXCJjb25maXJtZWRcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0OiBcIm1pbmVkXCI7XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRicmVhaztcclxuXHJcblx0XHRcdFx0XHRcdFx0Y2FzZSBcIm1pbmVkXCI6XHJcblx0XHRcdFx0XHRcdFx0XHRpZiAoXHJcblx0XHRcdFx0XHRcdFx0XHRcdCFyZXBvcnQ/LmJsb2NrSGFzaCB8fFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRyZXBvcnQuYmxvY2tIYXNoICE9PSByZWNlaXB0LmJsb2NrSGFzaFxyXG5cdFx0XHRcdFx0XHRcdFx0KSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGRlbGV0ZSByZWNlaXB0LmJsb2NrSGFzaDtcclxuXHRcdFx0XHRcdFx0XHRcdFx0ZGVsZXRlIHJlY2VpcHQuYmxvY2tFcG9jaDtcclxuXHRcdFx0XHRcdFx0XHRcdFx0ZGVsZXRlIHJlY2VpcHQuYmxvY2tNaW5lcjtcclxuXHRcdFx0XHRcdFx0XHRcdFx0ZGVsZXRlIHJlY2VpcHQuYmxvY2tUaW1lc3RhbXA7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHJlY2VpcHQuc3RhdHVzID0gXCJyZWxheWVkXCI7XHJcblx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRyZWNlaXB0LnN0YXR1cyA9IHJlcG9ydC5jb25maXJtZWRcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ/IFwiZmluYWxpemVkXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ6IHJlcG9ydD8uY29uZmlybWF0aW9ucyA+PSBjb25maXJtYXRpb25zXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ/IFwiY29uZmlybWVkXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDogXCJtaW5lZFwiO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAocmVwb3J0Py5jb25maXJtYXRpb25zICE9PSByZWNlaXB0LmNvbmZpcm1hdGlvbnMpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRyZWNlaXB0LmNvbmZpcm1hdGlvbnMgPSByZXBvcnQuY29uZmlybWF0aW9ucztcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAocmVjZWlwdC5zdGF0dXMgPT09IFwibWluZWRcIiAmJiBvcHRpb25zPy5vbkNoZWNrcG9pbnQpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0cnkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRvcHRpb25zLm9uQ2hlY2twb2ludChyZWNlaXB0KTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH0gY2F0Y2gge31cclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRpZiAoc3RhdHVzICE9PSByZWNlaXB0LnN0YXR1cykge1xyXG5cdFx0XHRcdFx0XHRyZWNlaXB0LnRpbWVzdGFtcCA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApO1xyXG5cdFx0XHRcdFx0XHRpZiAoXHJcblx0XHRcdFx0XHRcdFx0IVtcImNvbmZpcm1lZFwiLCBcImZpbmFsaXplZFwiXS5pbmNsdWRlcyhyZWNlaXB0LnN0YXR1cykgJiZcclxuXHRcdFx0XHRcdFx0XHRvcHRpb25zPy5vblN0YXR1c0NoYW5nZVxyXG5cdFx0XHRcdFx0XHQpXHJcblx0XHRcdFx0XHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRcdFx0XHRcdG9wdGlvbnMub25TdGF0dXNDaGFuZ2UocmVjZWlwdCk7XHJcblx0XHRcdFx0XHRcdFx0fSBjYXRjaCB7fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0SnNvblJwY1Byb3ZpZGVyLnJlY2VpcHRzW2hhc2hdID0gcmVjZWlwdDtcclxuXHRcdFx0XHRcdHJldHVybiBbXCJyZWxheWVkXCIsIFwibWluZWRcIl0uaW5jbHVkZXMocmVjZWlwdC5zdGF0dXMpO1xyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0aW50ZXJ2YWwsXHJcblx0XHRcdFx0dGltZW91dCxcclxuXHRcdFx0fSkudGhlbihhc3luYyAoKSA9PiB7XHJcblx0XHRcdFx0aWYgKHJlY2VpcHQuc3RhdHVzID09PSBcInJlbW92ZWRcIiAmJiByZWNlaXB0LnR5cGUgIT09IFwiVW5zdGFrZVwiKSB7XHJcblx0XHRcdFx0XHQvLyBUUkFOU0FDVElPTiBSRU1PVkVEIEZST00gTUVNUE9PTCAvL1xyXG5cdFx0XHRcdFx0Ly8gMS4gVHJ5IHRvIHJlY292ZXIgaW5wdXQgdXR4b3MgYmVsb25naW5nIHRvIGxlZGdlcidzIGFkZHJlc3NlczpcclxuXHRcdFx0XHRcdHRyeSB7XHJcblx0XHRcdFx0XHRcdGNvbnN0IGlucHV0czogQXJyYXk8VXR4b01ldGFkYXRhPiA9XHJcblx0XHRcdFx0XHRcdFx0cmVjZWlwdC50eFtyZWNlaXB0LnR5cGVdLmJvZHkuaW5wdXRzO1xyXG5cdFx0XHRcdFx0XHRjb25zdCBzaWduYXR1cmVzOiBBcnJheTxLZXllZFNpZ25hdHVyZT4gPVxyXG5cdFx0XHRcdFx0XHRcdHJlY2VpcHQudHhbcmVjZWlwdC50eXBlXS5zaWduYXR1cmVzO1xyXG5cdFx0XHRcdFx0XHRjb25zdCB1dHhvczogQXJyYXk8VXR4bz4gPSBbXTtcclxuXHRcdFx0XHRcdFx0aWYgKGlucHV0cy5sZW5ndGggPT09IHNpZ25hdHVyZXMubGVuZ3RoKSB7XHJcblx0XHRcdFx0XHRcdFx0aW5wdXRzLmZvckVhY2goKG1ldGFkYXRhLCBpbmRleCkgPT4gKHtcclxuXHRcdFx0XHRcdFx0XHRcdC4uLm1ldGFkYXRhLFxyXG5cdFx0XHRcdFx0XHRcdFx0c2lnbmVyOiBQdWJsaWNLZXkuZnJvbVByb3RvYnVmKHNpZ25hdHVyZXNbaW5kZXhdLnB1YmxpY19rZXkpXHJcblx0XHRcdFx0XHRcdFx0XHRcdC5oYXNoKClcclxuXHRcdFx0XHRcdFx0XHRcdFx0LnRvQmVjaDMyKHRoaXMubmV0d29yayksXHJcblx0XHRcdFx0XHRcdFx0fSkpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdHRoaXMubGVkZ2VyLmFkZFV0eG9zKC4uLnV0eG9zKTtcclxuXHRcdFx0XHRcdH0gY2F0Y2ggKGVycikge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmVycm9yKFxyXG5cdFx0XHRcdFx0XHRcdGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IHdhcm5pbmc6IGNhbm5vdCByZWNvdmVyIGlucHV0IFVUWE9TIGZyb20gdHggJHtoYXNofTogJHtlcnJ9YCxcclxuXHRcdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdC8vIDIuIFRocm93IE1lbXBvb2xFcnJvclxyXG5cdFx0XHRcdFx0dGhyb3cgbmV3IE1lbXBvb2xFcnJvcihcclxuXHRcdFx0XHRcdFx0cmVjZWlwdCxcclxuXHRcdFx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogdHJhbnNhY3Rpb24gcmVtb3ZlZCBmcm9tIG1lbXBvb2w6ICR7aGFzaH1gLFxyXG5cdFx0XHRcdFx0KTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0Ly8gVFJBTlNBQ1RJT04gRUlUSEVSIENPTkZJUk1FRCBPUiBGSU5BTElaRUQgLy9cclxuXHRcdFx0XHRcdC8vIDEuIFRyeSB0byBsb2FkIHZhbHVlIHRyYW5zZmVyIG91dHB1dHMgaW50byB0aGUgbGVkZ2VyJ3MgbG9jYWwgY2FjaGU6XHJcblx0XHRcdFx0XHR0cnkge1xyXG5cdFx0XHRcdFx0XHRjb25zdCB1dHhvczogQXJyYXk8VXR4bz4gPSBbXTtcclxuXHRcdFx0XHRcdFx0aWYgKFtcIlN0YWtlXCIsIFwiVW5zdGFrZVwiXS5pbmNsdWRlcyhyZWNlaXB0LnR5cGUpKSB7XHJcblx0XHRcdFx0XHRcdFx0Y29uc3QgdnRvOiBWYWx1ZVRyYW5zZmVyT3V0cHV0ID1cclxuXHRcdFx0XHRcdFx0XHRcdHJlY2VpcHQudHlwZSA9PT0gXCJTdGFrZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdD8gcmVjZWlwdC50eFtyZWNlaXB0LnR5cGVdLmJvZHk/Lm91dHB1dFxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ6IHJlY2VpcHQudHhbcmVjZWlwdC50eXBlXS5ib2R5Py53aXRoZHJhd2FsO1xyXG5cdFx0XHRcdFx0XHRcdGlmICh2dG8pIHtcclxuXHRcdFx0XHRcdFx0XHRcdHV0eG9zLnB1c2goe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRvdXRwdXRfcG9pbnRlcjogYCR7cmVjZWlwdC5oYXNofTowYCxcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGltZWxvY2s6IHZ0by50aW1lX2xvY2ssXHJcblx0XHRcdFx0XHRcdFx0XHRcdHV0eG9fbWF0dXJlOiB0cnVlLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHR2YWx1ZTogQmlnSW50KHZ0by52YWx1ZSksXHJcblx0XHRcdFx0XHRcdFx0XHRcdHNpZ25lcjogdnRvLnBraCxcclxuXHRcdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRjb25zdCBvdXRwdXRzOiBBcnJheTxWYWx1ZVRyYW5zZmVyT3V0cHV0PiA9XHJcblx0XHRcdFx0XHRcdFx0XHRyZWNlaXB0LnR4W3JlY2VpcHQudHlwZV0uYm9keT8ub3V0cHV0cyB8fCBbXTtcclxuXHRcdFx0XHRcdFx0XHRvdXRwdXRzLmZvckVhY2goKHZ0bywgaW5kZXgpID0+XHJcblx0XHRcdFx0XHRcdFx0XHR1dHhvcy5wdXNoKHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0b3V0cHV0X3BvaW50ZXI6IGAke3JlY2VpcHQuaGFzaH06JHtpbmRleH1gLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aW1lbG9jazogdnRvLnRpbWVfbG9jayxcclxuXHRcdFx0XHRcdFx0XHRcdFx0dXR4b19tYXR1cmU6IHRydWUsXHJcblx0XHRcdFx0XHRcdFx0XHRcdHZhbHVlOiBCaWdJbnQodnRvLnZhbHVlKSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0c2lnbmVyOiB2dG8ucGtoLFxyXG5cdFx0XHRcdFx0XHRcdFx0fSksXHJcblx0XHRcdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR0aGlzLmxlZGdlci5hZGRVdHhvcyguLi51dHhvcyk7XHJcblx0XHRcdFx0XHR9IGNhdGNoIChlcnIpIHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5lcnJvcihcclxuXHRcdFx0XHRcdFx0XHRgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiB3YXJuaW5nOiBjYW5ub3QgcmVjb3ZlciBvdXRwdXQgVVRYT3MgZnJvbSAke2hhc2h9OiAke2Vycn1gLFxyXG5cdFx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0Ly8gMi4gQWRkIGJsb2NrTWluZXIgYWRkcmVzcyB0byB0aGUgdHJhbnNhY3Rpb24gcmVjZWlwdDpcclxuXHRcdFx0XHRcdGlmIChyZWNlaXB0Py5ibG9ja0hhc2ggJiYgaXNIZXhTdHJpbmcocmVjZWlwdC5ibG9ja0hhc2gpKSB7XHJcblx0XHRcdFx0XHRcdGNvbnN0IGJsb2NrID0gYXdhaXQgdGhpcy5wcm92aWRlci5nZXRCbG9jayhyZWNlaXB0LmJsb2NrSGFzaCB8fCBcIlwiKTtcclxuXHRcdFx0XHRcdFx0SnNvblJwY1Byb3ZpZGVyLnJlY2VpcHRzW2hhc2hdLmJsb2NrTWluZXIgPSBQdWJsaWNLZXkuZnJvbVByb3RvYnVmKFxyXG5cdFx0XHRcdFx0XHRcdGJsb2NrLmJsb2NrX3NpZy5wdWJsaWNfa2V5LFxyXG5cdFx0XHRcdFx0XHQpXHJcblx0XHRcdFx0XHRcdFx0Lmhhc2goKVxyXG5cdFx0XHRcdFx0XHRcdC50b0JlY2gzMih0aGlzLm5ldHdvcmspO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0aWYgKG9wdGlvbnM/Lm9uU3RhdHVzQ2hhbmdlKVxyXG5cdFx0XHRcdFx0XHR0cnkge1xyXG5cdFx0XHRcdFx0XHRcdG9wdGlvbnMub25TdGF0dXNDaGFuZ2UocmVjZWlwdCk7XHJcblx0XHRcdFx0XHRcdH0gY2F0Y2gge31cclxuXHRcdFx0XHRcdC8vIDMuIFJldHVybiB0cmFuc2FjdGlvbiByZWNlaXB0OlxyXG5cdFx0XHRcdFx0cmV0dXJuIEpzb25ScGNQcm92aWRlci5yZWNlaXB0c1toYXNoXTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pLFxyXG5cdFx0XSk7XHJcblx0fVxyXG5cclxuXHRwcm90ZWN0ZWQgX2NsZWFuU2lnbmF0dXJlcyhuZXdUYXJnZXQ6IFNwZWNzKTogYW55IHtcclxuXHRcdHRoaXMuX3BheWxvYWQucmVzZXRUYXJnZXQobmV3VGFyZ2V0KTtcclxuXHRcdHRoaXMuX3NpZ25hdHVyZXMgPSBbXTtcclxuXHR9XHJcblxyXG5cdHByb3RlY3RlZCBfZ2V0SW5mbGlnaHRCeXRlY29kZSgpOiBVaW50OEFycmF5IHwgdW5kZWZpbmVkIHtcclxuXHRcdGNvbnN0IG9iaiA9IHRoaXMuX3RvUHJvdG9idWYoKTtcclxuXHRcdGNvbnN0IGVyciA9IHRoaXMuX3Byb3RvQnVmLnZlcmlmeShvYmopO1xyXG5cdFx0aWYgKCFlcnIpIHtcclxuXHRcdFx0Y29uc3QgbWVzc2FnZSA9IHRoaXMuX3Byb3RvQnVmLmZyb21PYmplY3Qob2JqKTtcclxuXHRcdFx0cmV0dXJuIHRoaXMuX3Byb3RvQnVmLmVuY29kZShtZXNzYWdlKS5maW5pc2goKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcm90ZWN0ZWQgX2dldEluZmxpZ2h0UmVjZWlwdCgpOiBUcmFuc2FjdGlvblJlY2VpcHQgfCB1bmRlZmluZWQge1xyXG5cdFx0Y29uc3QgaGFzaCA9IHRoaXMuX3BheWxvYWQuaGFzaDtcclxuXHRcdGlmIChoYXNoKSB7XHJcblx0XHRcdHJldHVybiBKc29uUnBjUHJvdmlkZXIucmVjZWlwdHNbaGFzaF07XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJvdGVjdGVkIF9nZXRJbmZsaWdodFRyYW5zbWlzc2lvbigpOiBUcmFuc21pc3Npb24ge1xyXG5cdFx0cmV0dXJuIHtcclxuXHRcdFx0Ynl0ZWNvZGU6IHRoaXMuX2dldEluZmxpZ2h0Qnl0ZWNvZGUoKSxcclxuXHRcdFx0aGFzaDogdGhpcy5fcGF5bG9hZC5oYXNoLFxyXG5cdFx0XHRtZXNzYWdlOiB0aGlzLl90b0pTT04odHJ1ZSksXHJcblx0XHR9O1xyXG5cdH1cclxuXHJcblx0cHJvdGVjdGVkIF9yZWNvdmVySW5wdXRVdHhvcygpOiBhbnkge31cclxuXHRwcm90ZWN0ZWQgX3JlY292ZXJPdXRwdXRVdHhvcygpOiBhbnkge31cclxuXHJcblx0cHJvdGVjdGVkIF91cHNlcnRUcmFuc2FjdGlvblJlY2VpcHQoXHJcblx0XHRoYXNoOiBIYXNoLFxyXG5cdFx0dGFyZ2V0OiBTcGVjcyxcclxuXHRcdHN0YXR1czogVHJhbnNhY3Rpb25TdGF0dXMsXHJcblx0KTogVHJhbnNhY3Rpb25SZWNlaXB0IHtcclxuXHRcdEpzb25ScGNQcm92aWRlci5yZWNlaXB0c1toYXNoXSA9IHtcclxuXHRcdFx0Li4udGhpcy5fcGF5bG9hZC5pbnRvUmVjZWlwdCh0YXJnZXQsIHRoaXMubmV0d29yayksXHJcblx0XHRcdGhhc2gsXHJcblx0XHRcdGNoYW5nZTogdGhpcy5fcGF5bG9hZC5jaGFuZ2UsXHJcblx0XHRcdGZlZXM6IHRoaXMuX3BheWxvYWQuZmVlcyxcclxuXHRcdFx0ZnJvbTogdGhpcy5fZnJvbSxcclxuXHRcdFx0c3RhdHVzLFxyXG5cdFx0XHR0aW1lc3RhbXA6IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApLFxyXG5cdFx0XHR0eDogdGhpcy5fdG9KU09OKHRydWUpLFxyXG5cdFx0XHR0eXBlOiB0aGlzLnR5cGUsXHJcblx0XHRcdHZhbHVlOiB0aGlzLl9wYXlsb2FkLnZhbHVlLFxyXG5cdFx0XHR3ZWlnaHQ6IHRoaXMuX3BheWxvYWQud2VpZ2h0LFxyXG5cdFx0fTtcclxuXHRcdHJldHVybiBKc29uUnBjUHJvdmlkZXIucmVjZWlwdHNbaGFzaF07XHJcblx0fVxyXG5cclxuXHRwcm90ZWN0ZWQgYWJzdHJhY3QgX3NpZ25UcmFuc2FjdGlvblBheWxvYWQoKTogSGFzaDtcclxuXHRwcm90ZWN0ZWQgYWJzdHJhY3QgX3RvSlNPTihfaHVtYW5pemU6IGJvb2xlYW4pOiBhbnk7XHJcblx0cHJvdGVjdGVkIGFic3RyYWN0IF90b1Byb3RvYnVmKCk6IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRyYW5zbWl0dGVyTXVsdGlTaWc8XHJcblx0U3BlY3MsXHJcblx0UGF5bG9hZCBleHRlbmRzIElUcmFuc2FjdGlvblBheWxvYWRNdWx0aVNpZzxTcGVjcz4sXHJcbj4gZXh0ZW5kcyBUcmFuc21pdHRlcjxTcGVjcywgUGF5bG9hZD4ge1xyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJvdG9UeXBlTmFtZTogc3RyaW5nLFxyXG5cdFx0cGF5bG9hZDogUGF5bG9hZCxcclxuXHRcdGxlZGdlcjogSUxlZGdlcixcclxuXHRcdGNoYW5nZVBraD86IFB1YmxpY0tleUhhc2hTdHJpbmcsXHJcblx0KSB7XHJcblx0XHRzdXBlcihwcm90b1R5cGVOYW1lLCBwYXlsb2FkLCBsZWRnZXIsIGNoYW5nZVBraCk7XHJcblx0XHR0aGlzLl9wYXlsb2FkID0gcGF5bG9hZDtcclxuXHR9XHJcblxyXG5cdC8vLyBSZWNvdmVyIGZvcm1lcmx5IGNvbnN1bWVkIFVUWE9zIGJ5IGEgZmFpbGluZyB0cmFuc2FjdGlvbiBiYWNrIHRvIHRoZWlyIHJlc3BlY3RpdmUgc2lnbmVyJ3MgVVRYTyBwb29sXHJcblx0cHJvdGVjdGVkIF9yZWNvdmVySW5wdXRVdHhvcygpOiBhbnkge1xyXG5cdFx0aWYgKHRoaXMuX3BheWxvYWQuaW5wdXRzKSB7XHJcblx0XHRcdHRoaXMubGVkZ2VyLmFkZFV0eG9zKC4uLnRoaXMuX3BheWxvYWQuaW5wdXRzKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8vLyBSZWNvdmVyIHNlbGYtdGFyZ2V0ZWQgb3V0cHV0cyBhcyBleHBlbmRhYmxlIHV0eG9zIG9uIHRoZWlyIHJlc3BlY3RpdmUgc2lnbmVyJ3MgbWVtb2l6ZWQgY2FjaGVcclxuXHRwcm90ZWN0ZWQgX3JlY292ZXJPdXRwdXRVdHhvcygpOiBhbnkge1xyXG5cdFx0aWYgKHRoaXMuX3BheWxvYWQuaGFzaCAmJiB0aGlzLl9wYXlsb2FkLm91dHB1dHMpIHtcclxuXHRcdFx0Y29uc3QgdXR4b3M6IEFycmF5PFV0eG8+ID0gW107XHJcblx0XHRcdHRoaXMuX3BheWxvYWQub3V0cHV0cy5mb3JFYWNoKCh2dG8sIGluZGV4KSA9PiB7XHJcblx0XHRcdFx0aWYgKHRoaXMubGVkZ2VyLmdldFNpZ25lcih2dG8ucGtoKSlcclxuXHRcdFx0XHRcdHV0eG9zLnB1c2goe1xyXG5cdFx0XHRcdFx0XHRzaWduZXI6IHZ0by5wa2gsXHJcblx0XHRcdFx0XHRcdG91dHB1dF9wb2ludGVyOiBgJHt0aGlzLl9wYXlsb2FkLmhhc2h9OiR7aW5kZXh9YCxcclxuXHRcdFx0XHRcdFx0dGltZWxvY2s6IHZ0by50aW1lX2xvY2ssXHJcblx0XHRcdFx0XHRcdHZhbHVlOiB2dG8udmFsdWUsXHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0fSk7XHJcblx0XHRcdHRoaXMubGVkZ2VyLmFkZFV0eG9zKC4uLnV0eG9zKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByb3RlY3RlZCBfc2lnblRyYW5zYWN0aW9uUGF5bG9hZCgpOiBIYXNoIHtcclxuXHRcdGNvbnN0IGhhc2ggPSB0aGlzLl9wYXlsb2FkLmhhc2g7XHJcblx0XHRpZiAoIWhhc2gpIHtcclxuXHRcdFx0dGhyb3cgRXJyb3IoXHJcblx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogaW50ZXJuYWwgZXJyb3I6IHVuYWJsZSB0byBoYXNoaWZ5IHBheWxvYWQ6ICR7dGhpcy5fcGF5bG9hZC50b0pTT04odHJ1ZSwgdGhpcy5uZXR3b3JrKX19LmAsXHJcblx0XHRcdCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLl9wYXlsb2FkLmlucHV0cy5mb3JFYWNoKCh1dHhvKSA9PiB7XHJcblx0XHRcdFx0Y29uc3Qgc2lnbmVyID0gdGhpcy5sZWRnZXIuZ2V0U2lnbmVyKHV0eG8uc2lnbmVyKTtcclxuXHRcdFx0XHRpZiAoIXNpZ25lcilcclxuXHRcdFx0XHRcdHRocm93IEVycm9yKFxyXG5cdFx0XHRcdFx0XHRgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiBpbnRlcm5hbCBlcnJvcjogY2Fubm90IGZpbmQgU2lnbmVyICR7dXR4by5zaWduZXJ9IGluICR7dGhpcy5sZWRnZXIuY29uc3RydWN0b3IubmFtZX0gJHt0aGlzLmxlZGdlci5wa2h9LmAsXHJcblx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdGVsc2Uge1xyXG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coYC4uLnNpZ25lciAke3NpZ25lci5wa2h9IHNpZ25pbmcgaGFzaCAke2hhc2h9Li4uYClcclxuXHRcdFx0XHRcdHRoaXMuX3NpZ25hdHVyZXMucHVzaChzaWduZXIuc2lnbkhhc2goaGFzaCkpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHRcdHJldHVybiBoYXNoO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJvdGVjdGVkIF90b0pTT04oaHVtYW5pemU6IGJvb2xlYW4pOiBhbnkge1xyXG5cdFx0cmV0dXJuIHtcclxuXHRcdFx0W3RoaXMudHlwZV06IHtcclxuXHRcdFx0XHRib2R5OiB0aGlzLl9wYXlsb2FkLnRvSlNPTihodW1hbml6ZSwgdGhpcy5uZXR3b3JrKSxcclxuXHRcdFx0XHRzaWduYXR1cmVzOiB0aGlzLl9zaWduYXR1cmVzLFxyXG5cdFx0XHR9LFxyXG5cdFx0fTtcclxuXHR9XHJcblxyXG5cdHByb3RlY3RlZCBfdG9Qcm90b2J1ZigpOiBhbnkge1xyXG5cdFx0Y29uc3QgYm9keSA9IHRoaXMuX3BheWxvYWQudG9Qcm90b2J1ZigpO1xyXG5cdFx0aWYgKGJvZHkgJiYgdGhpcy5fc2lnbmF0dXJlcykge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdGJvZHksXHJcblx0XHRcdFx0c2lnbmF0dXJlczogdGhpcy5fc2lnbmF0dXJlcyxcclxuXHRcdFx0fTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIl19
|
|
429
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNtaXR0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jcnlwdG8vdHJhbnNtaXR0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLElBQUksYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUQsTUFBTSxhQUFhLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQztBQUU1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDLE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRS9DLE9BQU8sUUFBUSxNQUFNLFlBQVksQ0FBQztBQUVsQyxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLFFBQVEsQ0FBQztBQUNyQyxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUNuQyxPQUFPLENBQUMsbUNBQW1DLENBQUMsQ0FDNUMsQ0FBQztBQUVGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQU9sRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBVTFDLE9BQU8sRUFFTixZQUFZLEVBQ1osU0FBUyxFQUVULFlBQVksRUFLWixpQkFBaUIsR0FFakIsTUFBTSxZQUFZLENBQUM7QUFFcEIsTUFBTSxPQUFnQixXQUFXO0lBS2hCLE1BQU0sQ0FBVTtJQUNoQixTQUFTLENBQXNCO0lBRXJDLFFBQVEsQ0FBVTtJQUNsQixTQUFTLENBQWdCO0lBQ3pCLFdBQVcsR0FBMEIsRUFBRSxDQUFDO0lBQ3hDLGFBQWEsR0FBZ0IsRUFBRSxDQUFDO0lBRTFDLFlBQ0MsYUFBcUIsRUFDckIsT0FBZ0IsRUFDaEIsTUFBZSxFQUNmLFNBQStCO1FBRS9CLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FB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RVMsV0FBVztRQUNwQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3hDLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM5QixPQUFPO2dCQUNOLElBQUk7Z0JBQ0osVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXO2FBQzVCLENBQUM7UUFDSCxDQUFDO0lBQ0YsQ0FBQztDQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVmYXVsdCBhcyBQcm9taXNlUG9sbGVyIH0gZnJvbSBcInByb21pc2UtcG9sbGVyXCI7XG5cbmNvbnN0IHByb21pc2VQb2xsZXIgPSBQcm9taXNlUG9sbGVyLmRlZmF1bHQ7XG5cbmltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgfSBmcm9tIFwibm9kZTptb2R1bGVcIjtcblxuY29uc3QgcmVxdWlyZSA9IGNyZWF0ZVJlcXVpcmUoaW1wb3J0Lm1ldGEudXJsKTtcblxuaW1wb3J0IHByb3RvYnVmIGZyb20gXCJwcm90b2J1ZmpzXCI7XG5cbmNvbnN0IHsgUm9vdDogUHJvdG9Sb290IH0gPSBwcm90b2J1ZjtcbmNvbnN0IHByb3RvUm9vdCA9IFByb3RvUm9vdC5mcm9tSlNPTihcblx0cmVxdWlyZShcIi4uLy4uLy4uL3dpdG5ldC93aXRuZXQucHJvdG8uanNvblwiKSxcbik7XG5cbmltcG9ydCB7IEpzb25ScGNQcm92aWRlciB9IGZyb20gXCIuLi9ycGMvaW5kZXguanNcIjtcbmltcG9ydCB0eXBlIHtcblx0VHJhbnNhY3Rpb25SZXBvcnQsXG5cdFV0eG9NZXRhZGF0YSxcblx0VmFsdWVUcmFuc2Zlck91dHB1dCxcbn0gZnJvbSBcIi4uL3JwYy90eXBlcy5qc1wiO1xuaW1wb3J0IHR5cGUgeyBIYXNoLCBOZXR3b3JrIH0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XG5pbXBvcnQgeyBpc0hleFN0cmluZyB9IGZyb20gXCIuLi91dGlscy5qc1wiO1xuXG5pbXBvcnQgdHlwZSB7XG5cdElKc29uUnBjUHJvdmlkZXIsXG5cdElMZWRnZXIsXG5cdElUcmFuc2FjdGlvblBheWxvYWQsXG5cdElUcmFuc2FjdGlvblBheWxvYWRNdWx0aVNpZyxcblx0SVRyYW5zbWl0dGVyLFxufSBmcm9tIFwiLi9pbnRlcmZhY2VzLmpzXCI7XG5cbmltcG9ydCB7XG5cdHR5cGUgS2V5ZWRTaWduYXR1cmUsXG5cdE1lbXBvb2xFcnJvcixcblx0UHVibGljS2V5LFxuXHR0eXBlIFB1YmxpY0tleUhhc2hTdHJpbmcsXG5cdFRpbWVvdXRFcnJvcixcblx0dHlwZSBUcmFuc2FjdGlvbkNhbGxiYWNrLFxuXHR0eXBlIFRyYW5zYWN0aW9uUmVjZWlwdCxcblx0dHlwZSBUcmFuc2FjdGlvblN0YXR1cyxcblx0dHlwZSBUcmFuc21pc3Npb24sXG5cdFRyYW5zbWlzc2lvbkVycm9yLFxuXHR0eXBlIFV0eG8sXG59IGZyb20gXCIuL3R5cGVzLmpzXCI7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUcmFuc21pdHRlcjxcblx0U3BlY3MsXG5cdFBheWxvYWQgZXh0ZW5kcyBJVHJhbnNhY3Rpb25QYXlsb2FkPFNwZWNzPixcbj4gaW1wbGVtZW50cyBJVHJhbnNtaXR0ZXJcbntcblx0cHVibGljIHJlYWRvbmx5IGxlZGdlcjogSUxlZGdlcjtcblx0cHVibGljIHJlYWRvbmx5IGNoYW5nZVBraDogUHVibGljS2V5SGFzaFN0cmluZztcblxuXHRwcm90ZWN0ZWQgX3BheWxvYWQ6IFBheWxvYWQ7XG5cdHByb3RlY3RlZCBfcHJvdG9CdWY6IHByb3RvYnVmLlR5cGU7XG5cdHByb3RlY3RlZCBfc2lnbmF0dXJlczogQXJyYXk8S2V5ZWRTaWduYXR1cmU+ID0gW107XG5cdHByb3RlY3RlZCBfdHJhbnNhY3Rpb25zOiBBcnJheTxIYXNoPiA9IFtdO1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHByb3RvVHlwZU5hbWU6IHN0cmluZyxcblx0XHRwYXlsb2FkOiBQYXlsb2FkLFxuXHRcdGxlZGdlcjogSUxlZGdlcixcblx0XHRjaGFuZ2VQa2g/OiBQdWJsaWNLZXlIYXNoU3RyaW5nLFxuXHQpIHtcblx0XHR0aGlzLl9wcm90b0J1ZiA9IHByb3RvUm9vdC5sb29rdXBUeXBlKHByb3RvVHlwZU5hbWUpO1xuXHRcdHRoaXMuX3BheWxvYWQgPSBwYXlsb2FkO1xuXHRcdHRoaXMubGVkZ2VyID0gbGVkZ2VyO1xuXHRcdGlmICghbGVkZ2VyLnByb3ZpZGVyLm5ldHdvcmspIHtcblx0XHRcdHRocm93IFR5cGVFcnJvcihcblx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogbGVkZ2VyJ3MgcHJvdmlkZXIgaXMgbm90IGluaXRpYWxpemVkLmAsXG5cdFx0XHQpO1xuXHRcdH1cblx0XHR0aGlzLmNoYW5nZVBraCA9IGNoYW5nZVBraCB8fCBsZWRnZXIuY2hhbmdlUGtoO1xuXHRcdGlmICghbGVkZ2VyLmdldFNpZ25lcih0aGlzLmNoYW5nZVBraCkpIHtcblx0XHRcdHRocm93IFR5cGVFcnJvcihcblx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogbGVkZ2VyIGhvbGRzIG5vIFNpZ25lciBmb3IgY2hhbmdlIGFkZHJlc3MgJHt0aGlzLmNoYW5nZVBraH0uYCxcblx0XHRcdCk7XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIGdldCBwYXlsb2FkKCk6IFBheWxvYWQgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiB0aGlzLl9wYXlsb2FkLnByZXBhcmVkID8gdGhpcy5fcGF5bG9hZCA6IHVuZGVmaW5lZDtcblx0fVxuXG5cdHB1YmxpYyBnZXQgcHJvdmlkZXIoKTogSUpzb25ScGNQcm92aWRlciB7XG5cdFx0cmV0dXJuIHRoaXMubGVkZ2VyLnByb3ZpZGVyO1xuXHR9XG5cblx0cHVibGljIGdldCBuZXR3b3JrKCk6IE5ldHdvcmsge1xuXHRcdHJldHVybiB0aGlzLnByb3ZpZGVyLm5ldHdvcmsgfHwgXCJtYWlubmV0XCI7XG5cdH1cblxuXHRwdWJsaWMgZ2V0IHRyYW5zYWN0aW9ucygpOiBBcnJheTxIYXNoPiB7XG5cdFx0cmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9ucztcblx0fVxuXG5cdHB1YmxpYyBnZXQgdHlwZSgpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLl9wYXlsb2FkLmNvbnN0cnVjdG9yLm5hbWVcblx0XHRcdC5zcGxpdCgvKFthLXpdKD89W0EtWl0pKS9nKVxuXHRcdFx0LnNsaWNlKDAsIC0xKVxuXHRcdFx0LmpvaW4oXCJcIik7XG5cdH1cblxuXHRwcm90ZWN0ZWQgZ2V0IF9mcm9tKCk6IEFycmF5PFB1YmxpY0tleUhhc2hTdHJpbmc+IHwgdW5kZWZpbmVkIHtcblx0XHRpZiAodGhpcy5fc2lnbmF0dXJlcy5sZW5ndGggPiAwKSB7XG5cdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHR0aGlzLl9zaWduYXR1cmVzXG5cdFx0XHRcdFx0Lm1hcCgoa3MpID0+IHtcblx0XHRcdFx0XHRcdGNvbnN0IHBraCA9IFB1YmxpY0tleS5mcm9tUHJvdG9idWYoa3MucHVibGljX2tleSlcblx0XHRcdFx0XHRcdFx0Lmhhc2goKVxuXHRcdFx0XHRcdFx0XHQudG9CZWNoMzIodGhpcy5uZXR3b3JrKTtcblx0XHRcdFx0XHRcdHJldHVybiB0aGlzLmxlZGdlci5nZXRTaWduZXIocGtoKT8ucGtoIHx8IHRoaXMubGVkZ2VyLnBraDtcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdC8vIGF2b2lkIHJlcGV0aXRpb25zXG5cdFx0XHRcdFx0LmZpbHRlcigocGtoLCBpbmRleCwgYXJyYXkpID0+IGluZGV4ID09PSBhcnJheS5pbmRleE9mKHBraCkpXG5cdFx0XHQpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0fVxuXG5cdHByb3RlY3RlZCBnZXQgX3ByZXBhcmVkKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiAoXG5cdFx0XHR0aGlzLl9wYXlsb2FkLnByZXBhcmVkICYmXG5cdFx0XHQhIXRoaXMuX3NpZ25hdHVyZXMgJiZcblx0XHRcdHRoaXMuX3NpZ25hdHVyZXMubGVuZ3RoID4gMFxuXHRcdCk7XG5cdH1cblxuXHRwdWJsaWMgYXN5bmMgc2VuZFRyYW5zYWN0aW9uKHRhcmdldD86IFNwZWNzKTogUHJvbWlzZTxUcmFuc2FjdGlvblJlY2VpcHQ+IHtcblx0XHRsZXQgcmVjZWlwdCA9IHRoaXMuX2dldEluZmxpZ2h0UmVjZWlwdCgpO1xuXHRcdGlmICghcmVjZWlwdCB8fCB0YXJnZXQpIHtcblx0XHRcdC8vIGlmIGluZmxpZ2h0IG5vdCB5ZXQgcHJlcGFyZWQsIG9yIHByZXBhcmVkIGJ1dCBub3QgeWV0IHRyYW5zbWl0dGVkLFxuXHRcdFx0Ly8gcHJlcGFyZSBhIG5ldyBpbmZsaWdodCBlaXRoZXIgd2l0aCBzcGVjaWZpZWQgcGFyYW1zIChpZiBhbnkpLFxuXHRcdFx0Ly8gb3IgcHJldmlvdXNseSBwcmVwYXJlZCBpbmZsaWdodCAoaWYga25vd24pLlxuXHRcdFx0cmVjZWlwdCA9IGF3YWl0IHRoaXMuc2lnblRyYW5zYWN0aW9uKHRhcmdldCB8fCAocmVjZWlwdCBhcyBTcGVjcykpO1xuXHRcdH1cblx0XHRpZiAocmVjZWlwdD8uc3RhdHVzICYmIHJlY2VpcHQuc3RhdHVzICE9PSBcInNpZ25lZFwiICYmICFyZWNlaXB0Py5lcnJvcikge1xuXHRcdFx0Ly8gaWYgY3VycmVudCBpbmZsaWdodCB3YXMgYWxyZWFkeSB0cmFuc21pdHRlZCBhbmQgaXQncyBub3QgeWV0IGtub3duIHRvIGZhaWwgLi4uXG5cdFx0XHRyZXR1cm4gcmVjZWlwdDtcblx0XHR9XG5cdFx0Ly8gaWYgd2UgcmVhY2ggdGhpcyBwb2ludCBpcyBiZWNhdXNlIGFuIGluZmxpZ2h0IHRyYW5zYWN0aW9uIGlzXG5cdFx0Ly8gcmVhZHkgdG8gYmUgdHJhbnNtaXR0ZWRcblx0XHRKc29uUnBjUHJvdmlkZXIucmVjZWlwdHNbcmVjZWlwdC5oYXNoXS5zdGF0dXMgPSBcInBlbmRpbmdcIjtcblx0XHRkZWxldGUgSnNvblJwY1Byb3ZpZGVyLnJlY2VpcHRzW3JlY2VpcHQuaGFzaF0uZXJyb3I7XG5cdFx0cmV0dXJuIHRoaXMucHJvdmlkZXJcblx0XHRcdC5zZW5kUmF3VHJhbnNhY3Rpb24odGhpcy5fdG9KU09OKGZhbHNlKSlcblx0XHRcdC5jYXRjaCgoZXJyKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGVycm9yID0gbmV3IFRyYW5zbWlzc2lvbkVycm9yKFxuXHRcdFx0XHRcdHRoaXMuX2dldEluZmxpZ2h0VHJhbnNtaXNzaW9uKCksXG5cdFx0XHRcdFx0ZXJyLFxuXHRcdFx0XHQpO1xuXHRcdFx0XHRKc29uUnBjUHJvdmlkZXIucmVjZWlwdHNbcmVjZWlwdC5oYXNoXS5lcnJvciA9IGVycm9yO1xuXHRcdFx0XHR0aHJvdyBlcnJvcjtcblx0XHRcdH0pXG5cdFx0XHQudGhlbigoYWNjZXB0ZWQpID0+IHtcblx0XHRcdFx0aWYgKGFjY2VwdGVkKSB7XG5cdFx0XHRcdFx0SnNvblJwY1Byb3ZpZGVyLnJlY2VpcHRzW3JlY2VpcHQuaGFzaF0uc3RhdHVzID0gXCJyZWxheWVkXCI7XG5cdFx0XHRcdFx0cmV0dXJuIEpzb25ScGNQcm92aWRlci5yZWNlaXB0c1tyZWNlaXB0Lmhhc2hdO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGNvbnN0IGVycm9yID0gbmV3IFRyYW5zbWlzc2lvbkVycm9yKFxuXHRcdFx0XHRcdFx0dGhpcy5fZ2V0SW5mbGlnaHRUcmFuc21pc3Npb24oKSxcblx0XHRcdFx0XHRcdEVycm9yKGBSZWplY3RlZCBmb3IgdW5rbm93biByZWFzb25zYCksXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRKc29uUnBjUHJvdmlkZXIucmVjZWlwdHNbcmVjZWlwdC5oYXNoXS5lcnJvciA9IGVycm9yO1xuXHRcdFx0XHRcdHRocm93IGVycm9yO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBzaWduVHJhbnNhY3Rpb24oXG5cdFx0dGFyZ2V0PzogU3BlY3MsXG5cdFx0cmVsb2FkVXR4b3MgPSBmYWxzZSxcblx0KTogUHJvbWlzZTxUcmFuc2FjdGlvblJlY2VpcHQ+IHtcblx0XHR0YXJnZXQgPSBhd2FpdCB0aGlzLl9wYXlsb2FkLnZhbGlkYXRlVGFyZ2V0KHRhcmdldCk7XG5cdFx0aWYgKCF0YXJnZXQpIHtcblx0XHRcdC8vIGUuZy4gaWYgY2FsbGVkIGZyb20gdGhpcy5zZW5kKCkgd2l0aCBubyBwYXJhbXNcblx0XHRcdHRocm93IFR5cGVFcnJvcihcblx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogY2Fubm90IHNpZ24gYSB0cmFuc2FjdGlvbiBpZiBubyBwYXJhbXMgd2VyZSBwcmV2aW91c2x5IHNwZWNpZmllZC5gLFxuXHRcdFx0KTtcblx0XHR9XG5cblx0XHRjb25zdCBpbmZsaWdodCA9IHRoaXMuX2dldEluZmxpZ2h0UmVjZWlwdCgpO1xuXHRcdGlmIChpbmZsaWdodCkge1xuXHRcdFx0Ly8gY29uc29sZS5sb2coXCJzaWduLnBlbmRpbmdSZWNlaXB0ID0+XCIsIGluZmxpZ2h0KVxuXHRcdFx0aWYgKCFpbmZsaWdodD8uc3RhdHVzIHx8IGluZmxpZ2h0LnN0YXR1cyA9PT0gXCJzaWduZWRcIikge1xuXHRcdFx0XHQvLyByZWNvdmVyIGlucHV0IHV0eG9zIGlmIHByZXZpb3VzbHkgc2lnbmVkIHBhcmFtcyB3ZXJlIG5vdCBldmVuIGF0dGVtcHRlZCB0byBiZSBzZW50XG5cdFx0XHRcdGlmICghcmVsb2FkVXR4b3MpIHRoaXMuX3JlY292ZXJJbnB1dFV0eG9zKCk7XG5cdFx0XHR9IGVsc2UgaWYgKGluZmxpZ2h0LnN0YXR1cyA9PT0gXCJwZW5kaW5nXCIgJiYgIWluZmxpZ2h0LmVycm9yKSB7XG5cdFx0XHRcdC8vIHRocm93IGV4Y2VwdGlvbiBpZiBhIGZvcm1lcmx5IHNpZ25lZCB0cmFuc2FjdGlvbiBpcyBzdGlsbCB3YWl0aW5nIHRvIGJlIHJlbGF5ZWQgYnkgYSBwcm92aWRlclxuXHRcdFx0XHR0aHJvdyBFcnJvcihcblx0XHRcdFx0XHRgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiBpbi1mbGlnaHQgdHggYmVpbmcgcmVsYXllZDogJHtpbmZsaWdodC5oYXNofWAsXG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gY2xlYW4gY3VycmVudCBzaWduYXR1cmVzLCBzbyBuZXcgVVRYT3MgY2FuIGJlIGNvbnN1bWVkIGFuZCB0aGVyZWZvcmUgYSBuZXcgdHJhbnNhY3Rpb24gaGFzaCBiZSBpbmNlcHRlZFxuXHRcdHRoaXMuX2NsZWFuU2lnbmF0dXJlcyh0YXJnZXQpO1xuXG5cdFx0Ly8gaWYgbm90IHlldCBwcmVwYXJlZCwgdHJ5IHRvIGNvdmVyIHRyYW5zYWN0aW9uIGV4cGVuc2VzIHdpdGggZXhpc3RpbmcgdXR4b3Mgb24gc2lnbmVyczpcblx0XHRsZXQgY2hhbmdlID0gMG47XG5cdFx0aWYgKCF0aGlzLl9wYXlsb2FkLnByZXBhcmVkKSB7XG5cdFx0XHRjaGFuZ2UgPSBhd2FpdCB0aGlzLl9wYXlsb2FkXG5cdFx0XHRcdC5jb25zdW1lVXR4b3ModGhpcy5sZWRnZXIsIHJlbG9hZFV0eG9zKVxuXHRcdFx0XHQuY2F0Y2goKGVycjogYW55KSA9PiB7XG5cdFx0XHRcdFx0dGhyb3cgRXJyb3IoXG5cdFx0XHRcdFx0XHRgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiBjYW5ub3QgY29uc3VtZSBVVFhPcyBmcm9tICR7dGhpcy5sZWRnZXIuY29uc3RydWN0b3IubmFtZX0gJHt0aGlzLmxlZGdlci5wa2h9OiAke2Vycn0uYCxcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9KTtcblx0XHR9XG5cblx0XHRpZiAoIXRoaXMuX3BheWxvYWQucHJlcGFyZWQpIHtcblx0XHRcdC8vIHRocm93cyBleGVjZXB0aW9uIGlmIG5vdCBlbm91Z2ggdXR4b3Mgd2VyZSBmb3VuZCB0byBjb3ZlciB0cmFuc2FjdGlvbiBleHBlbnNlczpcblx0XHRcdHRocm93IEVycm9yKFxuXHRcdFx0XHRgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiBpbnN1ZmZpY2llbnQgZnVuZHMgb24gJHt0aGlzLmxlZGdlci5jb25zdHJ1Y3Rvci5uYW1lfSAke3RoaXMubGVkZ2VyLnBraH0ke2NoYW5nZSA8IDAgPyBgOiByZXF1aXJlcyBleHRyYSAkey1jaGFuZ2V9ICRuYW5vd2l0cy5gIDogXCIuXCJ9YCxcblx0XHRcdCk7XG5cdFx0fVxuXG5cdFx0Ly8gZG91YmxlLWNoZWNrIHdlaWdodCBkb2VzIG5vdCBleGNlZWRzIGJsb2NrIGxpbWl0Li4uXG5cdFx0aWYgKHRoaXMuX3BheWxvYWQud2VpZ2h0ID4gdGhpcy5fcGF5bG9hZC5tYXhXZWlnaHQpIHtcblx0XHRcdHRocm93IEVycm9yKFxuXHRcdFx0XHRgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiB0cmFuc2FjdGlvbiB3ZWlnaHQgZXhjZWVkZWQgYmxvY2sgbGltaXQ6ICR7dGhpcy5fcGF5bG9hZC53ZWlnaHR9ID4gJHt0aGlzLl9wYXlsb2FkLm1heFdlaWdodH0uYCxcblx0XHRcdCk7XG5cdFx0fVxuXG5cdFx0Ly8gc2lnbmluZyB0aGUgdHJhbnNhY3Rpb24gcGF5bG9hZCBnZW5lcmF0ZXMgdGhlIHRyYW5zYWN0aW9uIGhhc2gsIGFuZCB0aGUgcmVjZWlwdFxuXHRcdHJldHVybiB0aGlzLl91cHNlcnRUcmFuc2FjdGlvblJlY2VpcHQoXG5cdFx0XHR0aGlzLl9zaWduVHJhbnNhY3Rpb25QYXlsb2FkKCksXG5cdFx0XHR0YXJnZXQsXG5cdFx0XHRcInNpZ25lZFwiLFxuXHRcdCk7XG5cdH1cblxuXHRwdWJsaWMgYXN5bmMgY29uZmlybVRyYW5zYWN0aW9uKFxuXHRcdGhhc2g6IEhhc2gsXG5cdFx0b3B0aW9ucz86IHtcblx0XHRcdGNvbmZpcm1hdGlvbnM/OiBudW1iZXI7XG5cdFx0XHR0aW1lb3V0U2Vjcz86IG51bWJlcjtcblx0XHRcdG9uQ2hlY2twb2ludD86IFRyYW5zYWN0aW9uQ2FsbGJhY2s7XG5cdFx0XHRvblN0YXR1c0NoYW5nZT86IFRyYW5zYWN0aW9uQ2FsbGJhY2s7XG5cdFx0fSxcblx0KTogUHJvbWlzZTxUcmFuc2FjdGlvblJlY2VpcHQgfCB1bmtub3duPiB7XG5cdFx0Y29uc3QgcmVjZWlwdCA9IEpzb25ScGNQcm92aWRlci5yZWNlaXB0c1toYXNoXTtcblx0XHRpZiAoIXJlY2VpcHQgfHwgcmVjZWlwdC5oYXNoICE9PSBoYXNoKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXG5cdFx0XHRcdGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IHRyYW5zYWN0aW9uIG5vdCBmb3VuZDogJHtoYXNofWAsXG5cdFx0XHQpO1xuXHRcdH0gZWxzZSBpZiAoW1wic2lnbmVkXCIsIFwicGVuZGluZ1wiXS5pbmNsdWRlcyhyZWNlaXB0LnN0YXR1cykpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihcblx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogdHJhbnNhY3Rpb24gc3RhdHVzIFwiJHtyZWNlaXB0LnN0YXR1c31cIjogJHtoYXNofWAsXG5cdFx0XHQpO1xuXHRcdH0gZWxzZSBpZiAocmVjZWlwdC5zdGF0dXMgPT09IFwicmVtb3ZlZFwiKSB7XG5cdFx0XHR0aHJvdyBuZXcgTWVtcG9vbEVycm9yKFxuXHRcdFx0XHRyZWNlaXB0LFxuXHRcdFx0XHRgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiB0cmFuc2FjdGlvbiByZW1vdmVkIGZyb20gbWVtcG9vbDogJHtoYXNofWAsXG5cdFx0XHQpO1xuXHRcdH0gZWxzZSBpZiAocmVjZWlwdC5zdGF0dXMgPT09IFwicmVsYXllZFwiICYmIG9wdGlvbnM/Lm9uU3RhdHVzQ2hhbmdlKVxuXHRcdFx0dHJ5IHtcblx0XHRcdFx0b3B0aW9ucy5vblN0YXR1c0NoYW5nZShyZWNlaXB0KTtcblx0XHRcdH0gY2F0Y2gge31cblxuXHRcdGNvbnN0IGdsb2JhbFRpbWVyID0gKHN0YXJ0OiBudW1iZXIsIG1zOiBudW1iZXIpID0+IHtcblx0XHRcdHJldHVybiBuZXcgUHJvbWlzZSgoXywgcmVqZWN0KSA9PiB7XG5cdFx0XHRcdHNldFRpbWVvdXQoXG5cdFx0XHRcdFx0KCkgPT5cblx0XHRcdFx0XHRcdHJlamVjdChcblx0XHRcdFx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogcG9sbGluZyB0aW1lb3V0IGFmdGVyICR7TWF0aC5mbG9vcigoRGF0ZS5ub3coKSAtIHN0YXJ0KSAvIDEwMDApfSBzZWNzKS5gLFxuXHRcdFx0XHRcdFx0KSxcblx0XHRcdFx0XHRtcyxcblx0XHRcdFx0KTtcblx0XHRcdH0pO1xuXHRcdH07XG5cblx0XHRjb25zdCBbY29uZmlybWF0aW9ucywgaW50ZXJ2YWwsIHRpbWVvdXQsIGdsb2JhbFRpbWVvdXRdID0gW1xuXHRcdFx0b3B0aW9ucz8uY29uZmlybWF0aW9ucyB8fCAwLFxuXHRcdFx0MTAwMDAsXG5cdFx0XHQ1MDAwLFxuXHRcdFx0KG9wdGlvbnM/LnRpbWVvdXRTZWNzIHx8IDYwMCkgKiAxMDAwLFxuXHRcdF07XG5cblx0XHRyZXR1cm4gUHJvbWlzZS5yYWNlKFtcblx0XHRcdGdsb2JhbFRpbWVyKERhdGUubm93KCksIGdsb2JhbFRpbWVvdXQpLmNhdGNoKChyZWFzb246IGFueSkgPT4ge1xuXHRcdFx0XHR0aHJvdyBuZXcgVGltZW91dEVycm9yKGdsb2JhbFRpbWVvdXQsIHJlY2VpcHQsIHJlYXNvbik7XG5cdFx0XHR9KSxcblxuXHRcdFx0cHJvbWlzZVBvbGxlcih7XG5cdFx0XHRcdHRhc2tGbjogKCkgPT4gdGhpcy5wcm92aWRlci5nZXRUcmFuc2FjdGlvbihoYXNoKS5jYXRjaCgoZXJyKSA9PiBlcnIpLFxuXHRcdFx0XHRzaG91bGRDb250aW51ZTogKGVycm9yOiBhbnksIHJlcG9ydDogVHJhbnNhY3Rpb25SZXBvcnQpID0+IHtcblx0XHRcdFx0XHRjb25zdCBzdGF0dXMgPSByZWNlaXB0LnN0YXR1cztcblx0XHRcdFx0XHRyZWNlaXB0LmVycm9yID0gZXJyb3I7XG5cdFx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdFx0ZXJyb3IgaW5zdGFuY2VvZiBFcnJvciAmJlxuXHRcdFx0XHRcdFx0ZXJyb3IubWVzc2FnZS5pbmRleE9mKFwiSXRlbU5vdEZvdW5kXCIpID49IDBcblx0XHRcdFx0XHQpIHtcblx0XHRcdFx0XHRcdHJlY2VpcHQuc3RhdHVzID0gXCJyZW1vdmVkXCI7XG5cdFx0XHRcdFx0fSBlbHNlXG5cdFx0XHRcdFx0XHRzd2l0Y2ggKHJlY2VpcHQuc3RhdHVzKSB7XG5cdFx0XHRcdFx0XHRcdGNhc2UgXCJyZWxheWVkXCI6XG5cdFx0XHRcdFx0XHRcdFx0aWYgKHJlcG9ydD8uYmxvY2tIYXNoICYmIGlzSGV4U3RyaW5nKHJlcG9ydC5ibG9ja0hhc2gpKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZWNlaXB0LmNvbmZpcm1hdGlvbnMgPSByZXBvcnQuY29uZmlybWF0aW9ucztcblx0XHRcdFx0XHRcdFx0XHRcdChyZWNlaXB0LmJsb2NrSGFzaCA9IHJlcG9ydC5ibG9ja0hhc2gpLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHQocmVjZWlwdC5ibG9ja0Vwb2NoID0gcmVwb3J0LmJsb2NrRXBvY2gpLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHQocmVjZWlwdC5ibG9ja1RpbWVzdGFtcCA9IHJlcG9ydC5ibG9ja1RpbWVzdGFtcCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZWNlaXB0LnN0YXR1cyA9IHJlcG9ydC5jb25maXJtZWRcblx0XHRcdFx0XHRcdFx0XHRcdFx0PyBcImZpbmFsaXplZFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDogcmVwb3J0Py5jb25maXJtYXRpb25zID49IGNvbmZpcm1hdGlvbnNcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ/IFwiY29uZmlybWVkXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ6IFwibWluZWRcIjtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cblx0XHRcdFx0XHRcdFx0Y2FzZSBcIm1pbmVkXCI6XG5cdFx0XHRcdFx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdFx0XHRcdFx0IXJlcG9ydD8uYmxvY2tIYXNoIHx8XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXBvcnQuYmxvY2tIYXNoICE9PSByZWNlaXB0LmJsb2NrSGFzaFxuXHRcdFx0XHRcdFx0XHRcdCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0ZGVsZXRlIHJlY2VpcHQuYmxvY2tIYXNoO1xuXHRcdFx0XHRcdFx0XHRcdFx0ZGVsZXRlIHJlY2VpcHQuYmxvY2tFcG9jaDtcblx0XHRcdFx0XHRcdFx0XHRcdGRlbGV0ZSByZWNlaXB0LmJsb2NrTWluZXI7XG5cdFx0XHRcdFx0XHRcdFx0XHRkZWxldGUgcmVjZWlwdC5ibG9ja1RpbWVzdGFtcDtcblx0XHRcdFx0XHRcdFx0XHRcdHJlY2VpcHQuc3RhdHVzID0gXCJyZWxheWVkXCI7XG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdHJlY2VpcHQuc3RhdHVzID0gcmVwb3J0LmNvbmZpcm1lZFxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ/IFwiZmluYWxpemVkXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0OiByZXBvcnQ/LmNvbmZpcm1hdGlvbnMgPj0gY29uZmlybWF0aW9uc1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdD8gXCJjb25maXJtZWRcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDogXCJtaW5lZFwiO1xuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKHJlcG9ydD8uY29uZmlybWF0aW9ucyAhPT0gcmVjZWlwdC5jb25maXJtYXRpb25zKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJlY2VpcHQuY29uZmlybWF0aW9ucyA9IHJlcG9ydC5jb25maXJtYXRpb25zO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAocmVjZWlwdC5zdGF0dXMgPT09IFwibWluZWRcIiAmJiBvcHRpb25zPy5vbkNoZWNrcG9pbnQpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdG9wdGlvbnMub25DaGVja3BvaW50KHJlY2VpcHQpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH0gY2F0Y2gge31cblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRpZiAoc3RhdHVzICE9PSByZWNlaXB0LnN0YXR1cykge1xuXHRcdFx0XHRcdFx0cmVjZWlwdC50aW1lc3RhbXAgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTtcblx0XHRcdFx0XHRcdGlmIChcblx0XHRcdFx0XHRcdFx0IVtcImNvbmZpcm1lZFwiLCBcImZpbmFsaXplZFwiXS5pbmNsdWRlcyhyZWNlaXB0LnN0YXR1cykgJiZcblx0XHRcdFx0XHRcdFx0b3B0aW9ucz8ub25TdGF0dXNDaGFuZ2Vcblx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRcdFx0XHRvcHRpb25zLm9uU3RhdHVzQ2hhbmdlKHJlY2VpcHQpO1xuXHRcdFx0XHRcdFx0XHR9IGNhdGNoIHt9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdEpzb25ScGNQcm92aWRlci5yZWNlaXB0c1toYXNoXSA9IHJlY2VpcHQ7XG5cdFx0XHRcdFx0cmV0dXJuIFtcInJlbGF5ZWRcIiwgXCJtaW5lZFwiXS5pbmNsdWRlcyhyZWNlaXB0LnN0YXR1cyk7XG5cdFx0XHRcdH0sXG5cdFx0XHRcdGludGVydmFsLFxuXHRcdFx0XHR0aW1lb3V0LFxuXHRcdFx0fSkudGhlbihhc3luYyAoKSA9PiB7XG5cdFx0XHRcdGlmIChyZWNlaXB0LnN0YXR1cyA9PT0gXCJyZW1vdmVkXCIgJiYgcmVjZWlwdC50eXBlICE9PSBcIlVuc3Rha2VcIikge1xuXHRcdFx0XHRcdC8vIFRSQU5TQUNUSU9OIFJFTU9WRUQgRlJPTSBNRU1QT09MIC8vXG5cdFx0XHRcdFx0Ly8gMS4gVHJ5IHRvIHJlY292ZXIgaW5wdXQgdXR4b3MgYmVsb25naW5nIHRvIGxlZGdlcidzIGFkZHJlc3Nlczpcblx0XHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdFx0Y29uc3QgaW5wdXRzOiBBcnJheTxVdHhvTWV0YWRhdGE+ID1cblx0XHRcdFx0XHRcdFx0cmVjZWlwdC50eFtyZWNlaXB0LnR5cGVdLmJvZHkuaW5wdXRzO1xuXHRcdFx0XHRcdFx0Y29uc3Qgc2lnbmF0dXJlczogQXJyYXk8S2V5ZWRTaWduYXR1cmU+ID1cblx0XHRcdFx0XHRcdFx0cmVjZWlwdC50eFtyZWNlaXB0LnR5cGVdLnNpZ25hdHVyZXM7XG5cdFx0XHRcdFx0XHRjb25zdCB1dHhvczogQXJyYXk8VXR4bz4gPSBbXTtcblx0XHRcdFx0XHRcdGlmIChpbnB1dHMubGVuZ3RoID09PSBzaWduYXR1cmVzLmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0XHRpbnB1dHMuZm9yRWFjaCgobWV0YWRhdGEsIGluZGV4KSA9PiAoe1xuXHRcdFx0XHRcdFx0XHRcdC4uLm1ldGFkYXRhLFxuXHRcdFx0XHRcdFx0XHRcdHNpZ25lcjogUHVibGljS2V5LmZyb21Qcm90b2J1ZihzaWduYXR1cmVzW2luZGV4XS5wdWJsaWNfa2V5KVxuXHRcdFx0XHRcdFx0XHRcdFx0Lmhhc2goKVxuXHRcdFx0XHRcdFx0XHRcdFx0LnRvQmVjaDMyKHRoaXMubmV0d29yayksXG5cdFx0XHRcdFx0XHRcdH0pKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdHRoaXMubGVkZ2VyLmFkZFV0eG9zKC4uLnV0eG9zKTtcblx0XHRcdFx0XHR9IGNhdGNoIChlcnIpIHtcblx0XHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoXG5cdFx0XHRcdFx0XHRcdGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IHdhcm5pbmc6IGNhbm5vdCByZWNvdmVyIGlucHV0IFVUWE9TIGZyb20gdHggJHtoYXNofTogJHtlcnJ9YCxcblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdC8vIDIuIFRocm93IE1lbXBvb2xFcnJvclxuXHRcdFx0XHRcdHRocm93IG5ldyBNZW1wb29sRXJyb3IoXG5cdFx0XHRcdFx0XHRyZWNlaXB0LFxuXHRcdFx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogdHJhbnNhY3Rpb24gcmVtb3ZlZCBmcm9tIG1lbXBvb2w6ICR7aGFzaH1gLFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Ly8gVFJBTlNBQ1RJT04gRUlUSEVSIENPTkZJUk1FRCBPUiBGSU5BTElaRUQgLy9cblx0XHRcdFx0XHQvLyAxLiBUcnkgdG8gbG9hZCB2YWx1ZSB0cmFuc2ZlciBvdXRwdXRzIGludG8gdGhlIGxlZGdlcidzIGxvY2FsIGNhY2hlOlxuXHRcdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0XHRjb25zdCB1dHhvczogQXJyYXk8VXR4bz4gPSBbXTtcblx0XHRcdFx0XHRcdGlmIChbXCJTdGFrZVwiLCBcIlVuc3Rha2VcIl0uaW5jbHVkZXMocmVjZWlwdC50eXBlKSkge1xuXHRcdFx0XHRcdFx0XHRjb25zdCB2dG86IFZhbHVlVHJhbnNmZXJPdXRwdXQgPVxuXHRcdFx0XHRcdFx0XHRcdHJlY2VpcHQudHlwZSA9PT0gXCJTdGFrZVwiXG5cdFx0XHRcdFx0XHRcdFx0XHQ/IHJlY2VpcHQudHhbcmVjZWlwdC50eXBlXS5ib2R5Py5vdXRwdXRcblx0XHRcdFx0XHRcdFx0XHRcdDogcmVjZWlwdC50eFtyZWNlaXB0LnR5cGVdLmJvZHk/LndpdGhkcmF3YWw7XG5cdFx0XHRcdFx0XHRcdGlmICh2dG8pIHtcblx0XHRcdFx0XHRcdFx0XHR1dHhvcy5wdXNoKHtcblx0XHRcdFx0XHRcdFx0XHRcdG91dHB1dF9wb2ludGVyOiBgJHtyZWNlaXB0Lmhhc2h9OjBgLFxuXHRcdFx0XHRcdFx0XHRcdFx0dGltZWxvY2s6IHZ0by50aW1lX2xvY2ssXG5cdFx0XHRcdFx0XHRcdFx0XHR1dHhvX21hdHVyZTogdHJ1ZSxcblx0XHRcdFx0XHRcdFx0XHRcdHZhbHVlOiBCaWdJbnQodnRvLnZhbHVlKSxcblx0XHRcdFx0XHRcdFx0XHRcdHNpZ25lcjogdnRvLnBraCxcblx0XHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0Y29uc3Qgb3V0cHV0czogQXJyYXk8VmFsdWVUcmFuc2Zlck91dHB1dD4gPVxuXHRcdFx0XHRcdFx0XHRcdHJlY2VpcHQudHhbcmVjZWlwdC50eXBlXS5ib2R5Py5vdXRwdXRzIHx8IFtdO1xuXHRcdFx0XHRcdFx0XHRvdXRwdXRzLmZvckVhY2goKHZ0bywgaW5kZXgpID0+XG5cdFx0XHRcdFx0XHRcdFx0dXR4b3MucHVzaCh7XG5cdFx0XHRcdFx0XHRcdFx0XHRvdXRwdXRfcG9pbnRlcjogYCR7cmVjZWlwdC5oYXNofToke2luZGV4fWAsXG5cdFx0XHRcdFx0XHRcdFx0XHR0aW1lbG9jazogdnRvLnRpbWVfbG9jayxcblx0XHRcdFx0XHRcdFx0XHRcdHV0eG9fbWF0dXJlOiB0cnVlLFxuXHRcdFx0XHRcdFx0XHRcdFx0dmFsdWU6IEJpZ0ludCh2dG8udmFsdWUpLFxuXHRcdFx0XHRcdFx0XHRcdFx0c2lnbmVyOiB2dG8ucGtoLFxuXHRcdFx0XHRcdFx0XHRcdH0pLFxuXHRcdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0dGhpcy5sZWRnZXIuYWRkVXR4b3MoLi4udXR4b3MpO1xuXHRcdFx0XHRcdH0gY2F0Y2ggKGVycikge1xuXHRcdFx0XHRcdFx0Y29uc29sZS5lcnJvcihcblx0XHRcdFx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogd2FybmluZzogY2Fubm90IHJlY292ZXIgb3V0cHV0IFVUWE9zIGZyb20gJHtoYXNofTogJHtlcnJ9YCxcblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdC8vIDIuIEFkZCBibG9ja01pbmVyIGFkZHJlc3MgdG8gdGhlIHRyYW5zYWN0aW9uIHJlY2VpcHQ6XG5cdFx0XHRcdFx0aWYgKHJlY2VpcHQ/LmJsb2NrSGFzaCAmJiBpc0hleFN0cmluZyhyZWNlaXB0LmJsb2NrSGFzaCkpIHtcblx0XHRcdFx0XHRcdGNvbnN0IGJsb2NrID0gYXdhaXQgdGhpcy5wcm92aWRlci5nZXRCbG9jayhyZWNlaXB0LmJsb2NrSGFzaCB8fCBcIlwiKTtcblx0XHRcdFx0XHRcdEpzb25ScGNQcm92aWRlci5yZWNlaXB0c1toYXNoXS5ibG9ja01pbmVyID0gUHVibGljS2V5LmZyb21Qcm90b2J1Zihcblx0XHRcdFx0XHRcdFx0YmxvY2suYmxvY2tfc2lnLnB1YmxpY19rZXksXG5cdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHRcdC5oYXNoKClcblx0XHRcdFx0XHRcdFx0LnRvQmVjaDMyKHRoaXMubmV0d29yayk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmIChvcHRpb25zPy5vblN0YXR1c0NoYW5nZSlcblx0XHRcdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0XHRcdG9wdGlvbnMub25TdGF0dXNDaGFuZ2UocmVjZWlwdCk7XG5cdFx0XHRcdFx0XHR9IGNhdGNoIHt9XG5cdFx0XHRcdFx0Ly8gMy4gUmV0dXJuIHRyYW5zYWN0aW9uIHJlY2VpcHQ6XG5cdFx0XHRcdFx0cmV0dXJuIEpzb25ScGNQcm92aWRlci5yZWNlaXB0c1toYXNoXTtcblx0XHRcdFx0fVxuXHRcdFx0fSksXG5cdFx0XSk7XG5cdH1cblxuXHRwcm90ZWN0ZWQgX2NsZWFuU2lnbmF0dXJlcyhuZXdUYXJnZXQ6IFNwZWNzKTogYW55IHtcblx0XHR0aGlzLl9wYXlsb2FkLnJlc2V0VGFyZ2V0KG5ld1RhcmdldCk7XG5cdFx0dGhpcy5fc2lnbmF0dXJlcyA9IFtdO1xuXHR9XG5cblx0cHJvdGVjdGVkIF9nZXRJbmZsaWdodEJ5dGVjb2RlKCk6IFVpbnQ4QXJyYXkgfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IG9iaiA9IHRoaXMuX3RvUHJvdG9idWYoKTtcblx0XHRjb25zdCBlcnIgPSB0aGlzLl9wcm90b0J1Zi52ZXJpZnkob2JqKTtcblx0XHRpZiAoIWVycikge1xuXHRcdFx0Y29uc3QgbWVzc2FnZSA9IHRoaXMuX3Byb3RvQnVmLmZyb21PYmplY3Qob2JqKTtcblx0XHRcdHJldHVybiB0aGlzLl9wcm90b0J1Zi5lbmNvZGUobWVzc2FnZSkuZmluaXNoKCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fVxuXHR9XG5cblx0cHJvdGVjdGVkIF9nZXRJbmZsaWdodFJlY2VpcHQoKTogVHJhbnNhY3Rpb25SZWNlaXB0IHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBoYXNoID0gdGhpcy5fcGF5bG9hZC5oYXNoO1xuXHRcdGlmIChoYXNoKSB7XG5cdFx0XHRyZXR1cm4gSnNvblJwY1Byb3ZpZGVyLnJlY2VpcHRzW2hhc2hdO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0fVxuXG5cdHByb3RlY3RlZCBfZ2V0SW5mbGlnaHRUcmFuc21pc3Npb24oKTogVHJhbnNtaXNzaW9uIHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0Ynl0ZWNvZGU6IHRoaXMuX2dldEluZmxpZ2h0Qnl0ZWNvZGUoKSxcblx0XHRcdGhhc2g6IHRoaXMuX3BheWxvYWQuaGFzaCxcblx0XHRcdG1lc3NhZ2U6IHRoaXMuX3RvSlNPTih0cnVlKSxcblx0XHR9O1xuXHR9XG5cblx0cHJvdGVjdGVkIF9yZWNvdmVySW5wdXRVdHhvcygpOiBhbnkge31cblx0cHJvdGVjdGVkIF9yZWNvdmVyT3V0cHV0VXR4b3MoKTogYW55IHt9XG5cblx0cHJvdGVjdGVkIF91cHNlcnRUcmFuc2FjdGlvblJlY2VpcHQoXG5cdFx0aGFzaDogSGFzaCxcblx0XHR0YXJnZXQ6IFNwZWNzLFxuXHRcdHN0YXR1czogVHJhbnNhY3Rpb25TdGF0dXMsXG5cdCk6IFRyYW5zYWN0aW9uUmVjZWlwdCB7XG5cdFx0SnNvblJwY1Byb3ZpZGVyLnJlY2VpcHRzW2hhc2hdID0ge1xuXHRcdFx0Li4udGhpcy5fcGF5bG9hZC5pbnRvUmVjZWlwdCh0YXJnZXQsIHRoaXMubmV0d29yayksXG5cdFx0XHRoYXNoLFxuXHRcdFx0Y2hhbmdlOiB0aGlzLl9wYXlsb2FkLmNoYW5nZSxcblx0XHRcdGZlZXM6IHRoaXMuX3BheWxvYWQuZmVlcyxcblx0XHRcdGZyb206IHRoaXMuX2Zyb20sXG5cdFx0XHRzdGF0dXMsXG5cdFx0XHR0aW1lc3RhbXA6IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApLFxuXHRcdFx0dHg6IHRoaXMuX3RvSlNPTih0cnVlKSxcblx0XHRcdHR5cGU6IHRoaXMudHlwZSxcblx0XHRcdHZhbHVlOiB0aGlzLl9wYXlsb2FkLnZhbHVlLFxuXHRcdFx0d2VpZ2h0OiB0aGlzLl9wYXlsb2FkLndlaWdodCxcblx0XHR9O1xuXHRcdHJldHVybiBKc29uUnBjUHJvdmlkZXIucmVjZWlwdHNbaGFzaF07XG5cdH1cblxuXHRwcm90ZWN0ZWQgYWJzdHJhY3QgX3NpZ25UcmFuc2FjdGlvblBheWxvYWQoKTogSGFzaDtcblx0cHJvdGVjdGVkIGFic3RyYWN0IF90b0pTT04oX2h1bWFuaXplOiBib29sZWFuKTogYW55O1xuXHRwcm90ZWN0ZWQgYWJzdHJhY3QgX3RvUHJvdG9idWYoKTogYW55O1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVHJhbnNtaXR0ZXJNdWx0aVNpZzxcblx0U3BlY3MsXG5cdFBheWxvYWQgZXh0ZW5kcyBJVHJhbnNhY3Rpb25QYXlsb2FkTXVsdGlTaWc8U3BlY3M+LFxuPiBleHRlbmRzIFRyYW5zbWl0dGVyPFNwZWNzLCBQYXlsb2FkPiB7XG5cdGNvbnN0cnVjdG9yKFxuXHRcdHByb3RvVHlwZU5hbWU6IHN0cmluZyxcblx0XHRwYXlsb2FkOiBQYXlsb2FkLFxuXHRcdGxlZGdlcjogSUxlZGdlcixcblx0XHRjaGFuZ2VQa2g/OiBQdWJsaWNLZXlIYXNoU3RyaW5nLFxuXHQpIHtcblx0XHRzdXBlcihwcm90b1R5cGVOYW1lLCBwYXlsb2FkLCBsZWRnZXIsIGNoYW5nZVBraCk7XG5cdFx0dGhpcy5fcGF5bG9hZCA9IHBheWxvYWQ7XG5cdH1cblxuXHQvLy8gUmVjb3ZlciBmb3JtZXJseSBjb25zdW1lZCBVVFhPcyBieSBhIGZhaWxpbmcgdHJhbnNhY3Rpb24gYmFjayB0byB0aGVpciByZXNwZWN0aXZlIHNpZ25lcidzIFVUWE8gcG9vbFxuXHRwcm90ZWN0ZWQgX3JlY292ZXJJbnB1dFV0eG9zKCk6IGFueSB7XG5cdFx0aWYgKHRoaXMuX3BheWxvYWQuaW5wdXRzKSB7XG5cdFx0XHR0aGlzLmxlZGdlci5hZGRVdHhvcyguLi50aGlzLl9wYXlsb2FkLmlucHV0cyk7XG5cdFx0fVxuXHR9XG5cblx0Ly8vIFJlY292ZXIgc2VsZi10YXJnZXRlZCBvdXRwdXRzIGFzIGV4cGVuZGFibGUgdXR4b3Mgb24gdGhlaXIgcmVzcGVjdGl2ZSBzaWduZXIncyBtZW1vaXplZCBjYWNoZVxuXHRwcm90ZWN0ZWQgX3JlY292ZXJPdXRwdXRVdHhvcygpOiBhbnkge1xuXHRcdGlmICh0aGlzLl9wYXlsb2FkLmhhc2ggJiYgdGhpcy5fcGF5bG9hZC5vdXRwdXRzKSB7XG5cdFx0XHRjb25zdCB1dHhvczogQXJyYXk8VXR4bz4gPSBbXTtcblx0XHRcdHRoaXMuX3BheWxvYWQub3V0cHV0cy5mb3JFYWNoKCh2dG8sIGluZGV4KSA9PiB7XG5cdFx0XHRcdGlmICh0aGlzLmxlZGdlci5nZXRTaWduZXIodnRvLnBraCkpXG5cdFx0XHRcdFx0dXR4b3MucHVzaCh7XG5cdFx0XHRcdFx0XHRzaWduZXI6IHZ0by5wa2gsXG5cdFx0XHRcdFx0XHRvdXRwdXRfcG9pbnRlcjogYCR7dGhpcy5fcGF5bG9hZC5oYXNofToke2luZGV4fWAsXG5cdFx0XHRcdFx0XHR0aW1lbG9jazogdnRvLnRpbWVfbG9jayxcblx0XHRcdFx0XHRcdHZhbHVlOiB2dG8udmFsdWUsXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRcdHRoaXMubGVkZ2VyLmFkZFV0eG9zKC4uLnV0eG9zKTtcblx0XHR9XG5cdH1cblxuXHRwcm90ZWN0ZWQgX3NpZ25UcmFuc2FjdGlvblBheWxvYWQoKTogSGFzaCB7XG5cdFx0Y29uc3QgaGFzaCA9IHRoaXMuX3BheWxvYWQuaGFzaDtcblx0XHRpZiAoIWhhc2gpIHtcblx0XHRcdHRocm93IEVycm9yKFxuXHRcdFx0XHRgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiBpbnRlcm5hbCBlcnJvcjogdW5hYmxlIHRvIGhhc2hpZnkgcGF5bG9hZDogJHt0aGlzLl9wYXlsb2FkLnRvSlNPTih0cnVlLCB0aGlzLm5ldHdvcmspfX0uYCxcblx0XHRcdCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuX3BheWxvYWQuaW5wdXRzLmZvckVhY2goKHV0eG8pID0+IHtcblx0XHRcdFx0Y29uc3Qgc2lnbmVyID0gdGhpcy5sZWRnZXIuZ2V0U2lnbmVyKHV0eG8uc2lnbmVyKTtcblx0XHRcdFx0aWYgKCFzaWduZXIpXG5cdFx0XHRcdFx0dGhyb3cgRXJyb3IoXG5cdFx0XHRcdFx0XHRgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiBpbnRlcm5hbCBlcnJvcjogY2Fubm90IGZpbmQgU2lnbmVyICR7dXR4by5zaWduZXJ9IGluICR7dGhpcy5sZWRnZXIuY29uc3RydWN0b3IubmFtZX0gJHt0aGlzLmxlZGdlci5wa2h9LmAsXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coYC4uLnNpZ25lciAke3NpZ25lci5wa2h9IHNpZ25pbmcgaGFzaCAke2hhc2h9Li4uYClcblx0XHRcdFx0XHR0aGlzLl9zaWduYXR1cmVzLnB1c2goc2lnbmVyLnNpZ25IYXNoKGhhc2gpKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHRyZXR1cm4gaGFzaDtcblx0XHR9XG5cdH1cblxuXHRwcm90ZWN0ZWQgX3RvSlNPTihodW1hbml6ZTogYm9vbGVhbik6IGFueSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdFt0aGlzLnR5cGVdOiB7XG5cdFx0XHRcdGJvZHk6IHRoaXMuX3BheWxvYWQudG9KU09OKGh1bWFuaXplLCB0aGlzLm5ldHdvcmspLFxuXHRcdFx0XHRzaWduYXR1cmVzOiB0aGlzLl9zaWduYXR1cmVzLFxuXHRcdFx0fSxcblx0XHR9O1xuXHR9XG5cblx0cHJvdGVjdGVkIF90b1Byb3RvYnVmKCk6IGFueSB7XG5cdFx0Y29uc3QgYm9keSA9IHRoaXMuX3BheWxvYWQudG9Qcm90b2J1ZigpO1xuXHRcdGlmIChib2R5ICYmIHRoaXMuX3NpZ25hdHVyZXMpIHtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdGJvZHksXG5cdFx0XHRcdHNpZ25hdHVyZXM6IHRoaXMuX3NpZ25hdHVyZXMsXG5cdFx0XHR9O1xuXHRcdH1cblx0fVxufVxuIl19
|
|
@@ -273,4 +273,4 @@ export class TransmissionError extends Error {
|
|
|
273
273
|
function matchingUint8Arrays(a, b) {
|
|
274
274
|
return a.length === b.length && a.every((value, index) => value === b[index]);
|
|
275
275
|
}
|
|
276
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NyeXB0by90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2hDLE9BQU8sU0FBUyxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQ04sYUFBYSxFQUNiLFdBQVcsRUFDWCxXQUFXLEVBQ1gsVUFBVSxHQUNWLE1BQU0sc0JBQXNCLENBQUM7QUFROUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVwQyxNQUFNLE9BQU8sS0FBSztJQUNQLEtBQUssQ0FBUztJQUNqQixNQUFNLENBQUMsV0FBVyxDQUFDLE9BQWdCO1FBQ3pDLE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFDTSxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQWdCO1FBQzFDLE9BQU8sSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUNNLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBYztRQUN0QyxPQUFPLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFDTSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQVk7UUFDbEMsSUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDcEMsTUFBTSxJQUFJLFNBQVMsQ0FDbEIsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksb0NBQW9DLElBQUksTUFBTSxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsQ0FDaEcsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksS0FBSyxDQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUks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O0FBQy9FLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBiZWNoMzIgfSBmcm9tIFwiYmVjaDMyXCI7XHJcbmltcG9ydCBzZWNwMjU2azEgZnJvbSBcInNlY3AyNTZrMVwiO1xyXG5pbXBvcnQge1xyXG5cdGZyb21IZXhTdHJpbmcsXHJcblx0aXNIZXhTdHJpbmcsXHJcblx0dG9IZXhTdHJpbmcsXHJcblx0d2hvbGVfd2l0cyxcclxufSBmcm9tIFwiLi4vLi4vYmluL2hlbHBlcnMuanNcIjtcclxuaW1wb3J0IHR5cGUge1xyXG5cdEJhbGFuY2UsXHJcblx0RXBvY2gsXHJcblx0SGFzaCxcclxuXHRIZXhTdHJpbmcsXHJcblx0VXR4b01ldGFkYXRhLFxyXG59IGZyb20gXCIuLi90eXBlcy5qc1wiO1xyXG5pbXBvcnQgeyBzaGEyNTYgfSBmcm9tIFwiLi91dGlscy5qc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIENvaW5zIHtcclxuXHRwcm90ZWN0ZWQgY29pbnM6IGJpZ2ludDtcclxuXHRwdWJsaWMgc3RhdGljIGZyb21CYWxhbmNlKGJhbGFuY2U6IEJhbGFuY2UpOiBDb2lucyB7XHJcblx0XHRyZXR1cm4gQ29pbnMuZnJvbVBlZHJvcyhiYWxhbmNlLmxvY2tlZCArIGJhbGFuY2Uuc3Rha2VkICsgYmFsYW5jZS51bmxvY2tlZCk7XHJcblx0fVxyXG5cdHB1YmxpYyBzdGF0aWMgZnJvbU5hbm93aXRzKG5hbm93aXRzOiBiaWdpbnQpOiBDb2lucyB7XHJcblx0XHRyZXR1cm4gbmV3IENvaW5zKG5hbm93aXRzKTtcclxuXHR9XHJcblx0cHVibGljIHN0YXRpYyBmcm9tUGVkcm9zKHBlZHJvczogYmlnaW50KTogQ29pbnMge1xyXG5cdFx0cmV0dXJuIG5ldyBDb2lucyhwZWRyb3MpO1xyXG5cdH1cclxuXHRwdWJsaWMgc3RhdGljIGZyb21XaXRzKHdpdHM6IG51bWJlcik6IENvaW5zIHtcclxuXHRcdGlmICh3aXRzID4gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpIHtcclxuXHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihcclxuXHRcdFx0XHRgJHtDb2lucy5jb25zdHJ1Y3Rvci5uYW1lfTogaW50ZXJuYWwgZXJyb3I6IHRvbyBtYW55IHdpdHM6ICR7d2l0c30gPiAke051bWJlci5NQVhfU0FGRV9JTlRFR0VSfWAsXHJcblx0XHRcdCk7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gbmV3IENvaW5zKFxyXG5cdFx0XHRCaWdJbnQoTWF0aC5mbG9vcih3aXRzKSkgKiAxMG4gKiogOW4gK1xyXG5cdFx0XHRcdEJpZ0ludChNYXRoLmZsb29yKCh3aXRzIC0gTWF0aC5mbG9vcih3aXRzKSkgKiAxMDAwMDAwMDAwKSksXHJcblx0XHQpO1xyXG5cdH1cclxuXHRwdWJsaWMgc3RhdGljIHplcm8oKTogQ29pbnMge1xyXG5cdFx0cmV0dXJuIG5ldyBDb2lucygwbik7XHJcblx0fVxyXG5cdGNvbnN0cnVjdG9yKHBlZHJvczogYmlnaW50KSB7XHJcblx0XHR0aGlzLmNvaW5zID0gcGVkcm9zO1xyXG5cdH1cclxuXHRwdWJsaWMgZ2V0IHBlZHJvcygpOiBiaWdpbnQge1xyXG5cdFx0cmV0dXJuIHRoaXMuY29pbnM7XHJcblx0fVxyXG5cdHB1YmxpYyBnZXQgbmFub3dpdHMoKTogYmlnaW50IHtcclxuXHRcdHJldHVybiB0aGlzLmNvaW5zO1xyXG5cdH1cclxuXHRwdWJsaWMgZ2V0IHdpdHMoKTogbnVtYmVyIHtcclxuXHRcdGNvbnN0IHF1b3RpZW50ID0gQmlnSW50KHRoaXMuY29pbnMpIC8gMTAwMDAwMDAwMG47XHJcblx0XHRpZiAoTnVtYmVyKHF1b3RpZW50KSA+IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKSB7XHJcblx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoXHJcblx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogaW50ZXJuYWwgZXJyb3I6IHRvbyBtYW55IGNvaW5zOiAke3F1b3RpZW50LnRvU3RyaW5nKCl9ID4gJHtOdW1iZXIuTUFYX1NBRkVfSU5URUdFUn1gLFxyXG5cdFx0XHQpO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3QgcmVzdCA9XHJcblx0XHRcdE51bWJlcihCaWdJbnQodGhpcy5jb2lucykgLSBxdW90aWVudCAqIDEwMDAwMDAwMDBuKSAvIDEwMDAwMDAwMDA7XHJcblx0XHRyZXR1cm4gTnVtYmVyKHF1b3RpZW50KSArIHJlc3Q7XHJcblx0fVxyXG5cdHB1YmxpYyB0b1N0cmluZyhkZWNpbWFscyA9IDkpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIHdob2xlX3dpdHModGhpcy5jb2lucywgZGVjaW1hbHMpO1xyXG5cdH1cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgS2V5UGF0aCA9IEFycmF5PG51bWJlcj47XHJcblxyXG5leHBvcnQgdHlwZSBLZXllZFNpZ25hdHVyZSA9IHtcclxuXHRzaWduYXR1cmU6IHsgU2VjcDI1NmsxOiB7IGRlcjogQXJyYXk8bnVtYmVyPiB9IH07XHJcblx0cHVibGljX2tleToge1xyXG5cdFx0Ynl0ZXM6IEFycmF5PG51bWJlcj47XHJcblx0XHRjb21wcmVzc2VkOiBudW1iZXI7XHJcblx0fTtcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIFB1YmxpY0tleUhhc2hTdHJpbmcgPSBIZXhTdHJpbmc7XHJcblxyXG5pbnRlcmZhY2UgS2V5IHtcclxuXHRieXRlczogVWludDhBcnJheTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQcml2YXRlS2V5IGV4dGVuZHMgS2V5IHtcclxuXHR0eXBlOiBcInByaXZhdGVcIjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQdWJsaWNLZXkgZXh0ZW5kcyBLZXkge1xyXG5cdHR5cGU6IFwicHVibGljXCI7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uQ2FsbGJhY2sgPSAoXHJcblx0cmVjZWlwdDogVHJhbnNhY3Rpb25SZWNlaXB0LFxyXG5cdGVycm9yPzogYW55LFxyXG4pID0+IGFueTtcclxuXHJcbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uUGFyYW1zID0ge1xyXG5cdGRlYWRsaW5lPzogRXBvY2g7XHJcblx0ZmVlcz86IFRyYW5zYWN0aW9uUHJpb3JpdHkgfCBDb2lucztcclxufTtcclxuXHJcbmV4cG9ydCBlbnVtIFRyYW5zYWN0aW9uUHJpb3JpdHkge1xyXG5cdFN0aW5reSA9IFwic3Rpbmt5XCIsXHJcblx0TG93ID0gXCJsb3dcIixcclxuXHRNZWRpdW0gPSBcIm1lZGl1bVwiLFxyXG5cdEhpZ2ggPSBcImhpZ2hcIixcclxuXHRPcHVsZW50ID0gXCJvcHVsZW50XCIsXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uUmVjZWlwdCA9IHtcclxuXHRhdXRob3JpemF0aW9uPzogSGV4U3RyaW5nO1xyXG5cdGJsb2NrRXBvY2g/OiBFcG9jaDtcclxuXHRibG9ja0hhc2g/OiBIYXNoO1xyXG5cdGJsb2NrTWluZXI/OiBQdWJsaWNLZXlIYXNoU3RyaW5nO1xyXG5cdGJsb2NrVGltZXN0YW1wPzogbnVtYmVyO1xyXG5cdGNvbmZpcm1hdGlvbnM/OiBudW1iZXI7XHJcblx0Y2hhbmdlPzogQ29pbnM7XHJcblx0ZHJvSGFzaD86IEhhc2g7XHJcblx0ZXJyb3I/OiBFcnJvcjtcclxuXHRmZWVzOiBDb2lucztcclxuXHRmcm9tPzogQXJyYXk8UHVibGljS2V5SGFzaFN0cmluZz4gfCBQdWJsaWNLZXlIYXNoU3RyaW5nO1xyXG5cdGhhc2g6IEhhc2g7XHJcblx0b3V0cHV0TG9jaz86IG51bWJlcjtcclxuXHRyYWRBcmdzPzogYW55O1xyXG5cdHJhZEhhc2g/OiBIZXhTdHJpbmc7XHJcblx0cmVjaXBpZW50cz86IEFycmF5PFtQdWJsaWNLZXlIYXNoU3RyaW5nLCBDb2luc10+O1xyXG5cdHN0YXR1czogc3RyaW5nO1xyXG5cdHRpbWVzdGFtcDogbnVtYmVyO1xyXG5cdHR5cGU6IHN0cmluZztcclxuXHR0eD86IGFueTtcclxuXHR2YWxpZGF0b3I/OiBQdWJsaWNLZXlIYXNoU3RyaW5nO1xyXG5cdHZhbHVlPzogQ29pbnM7XHJcblx0d2VpZ2h0OiBudW1iZXI7XHJcblx0d2l0aGRyYXdlcj86IFB1YmxpY0tleUhhc2hTdHJpbmc7XHJcblx0d2l0bmVzc2VzPzogbnVtYmVyIHwgUmVjb3JkPFB1YmxpY0tleUhhc2hTdHJpbmcsIENvaW5zPjtcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uU3RhdHVzID1cclxuXHR8IFwic2lnbmVkXCJcclxuXHR8IFwicGVuZGluZ1wiXHJcblx0fCBcInJlbGF5ZWRcIlxyXG5cdHwgXCJyZW1vdmVkXCJcclxuXHR8IFwibWluZWRcIlxyXG5cdHwgXCJjb25maXJtZWRcIlxyXG5cdHwgXCJmaW5hbGl6ZWRcIjtcclxuXHJcbmV4cG9ydCB0eXBlIFRyYW5zbWlzc2lvbiA9IHtcclxuXHRieXRlY29kZT86IFVpbnQ4QXJyYXk7XHJcblx0aGFzaD86IEhhc2g7XHJcblx0bWVzc2FnZTogYW55O1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgVXR4byA9IFV0eG9NZXRhZGF0YSAmIHsgc2lnbmVyOiBQdWJsaWNLZXlIYXNoU3RyaW5nIH07XHJcblxyXG5leHBvcnQgdHlwZSBVdHhvQ2FjaGVJbmZvID0ge1xyXG5cdC8vIHRvdGFsIGFtb3VudCBvZiBleHBlbmRhYmxlIGZ1bmRzIHdpdGggY3VycmVudGx5IGNhY2hlZCBVVFhPc1xyXG5cdGV4cGVuZGFibGU6IGJpZ2ludDtcclxuXHQvLyBudW1iZXIgb2YgY2FjaGVkIFVUWE9zXHJcblx0c2l6ZTogbnVtYmVyO1xyXG5cdC8vIGVhcmxpZXN0IG9mIGFsbCB0aW1lbG9ja3MgaW4gdGhlIGNhY2jDqVxyXG5cdHRpbWVsb2NrOiBudW1iZXI7XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBVdHhvUG9pbnRlciA9IHtcclxuXHQvLyB0cmFuc2FjdGlvbiBpZGVudGlmaWVyXHJcblx0dHJhbnNhY3Rpb25faWQ6IEhhc2g7XHJcblx0Ly8gb3V0cHV0IGluZGV4IHdpdGhpbiByZWZlcnJlZCB0cmFuc2FjdGlvblxyXG5cdG91dHB1dF9pbmRleDogbnVtYmVyO1xyXG59O1xyXG5cclxuZXhwb3J0IGVudW0gVXR4b1NlbGVjdGlvblN0cmF0ZWd5IHtcclxuXHRCaWdGaXJzdCA9IFwiYmlnLWZpcnN0XCIsXHJcblx0UmFuZG9tID0gXCJyYW5kb21cIixcclxuXHRTbGltRml0ID0gXCJzbGltLWZpdFwiLFxyXG5cdFNtYWxsRmlyc3QgPSBcInNtYWxsLWZpcnN0XCIsXHJcbn1cclxuXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbi8vLyBFWFBPUlRFRCBDTEFTU0VTXHJcblxyXG4vLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5leHBvcnQgY2xhc3MgUHVibGljS2V5IGltcGxlbWVudHMgS2V5IHtcclxuXHRwdWJsaWMgcmVhZG9ubHkgY29tcHJlc3NlZDogbnVtYmVyO1xyXG5cdHB1YmxpYyByZWFkb25seSBieXRlczogVWludDhBcnJheTtcclxuXHJcblx0c3RhdGljIGZyb21Qcm90b2J1Zihwcm90b2J1Zjoge1xyXG5cdFx0Y29tcHJlc3NlZDogbnVtYmVyO1xyXG5cdFx0Ynl0ZXM6IEFycmF5PG51bWJlcj47XHJcblx0fSk6IFB1YmxpY0tleSB7XHJcblx0XHRyZXR1cm4gbmV3IFB1YmxpY0tleShwcm90b2J1Zi5jb21wcmVzc2VkLCBVaW50OEFycmF5LmZyb20ocHJvdG9idWYuYnl0ZXMpKTtcclxuXHR9XHJcblxyXG5cdHN0YXRpYyBmcm9tVWludDhBcnJheSh1aW50OEFycmF5OiBVaW50OEFycmF5KTogUHVibGljS2V5IHtcclxuXHRcdHJldHVybiBuZXcgUHVibGljS2V5KHVpbnQ4QXJyYXlbMF0sIHVpbnQ4QXJyYXkuc2xpY2UoMSkpO1xyXG5cdH1cclxuXHJcblx0c3RhdGljIHJlY292ZXJGcm9tKHJlY292ZXJhYmxlOiBhbnksIG1zZzogVWludDhBcnJheSk6IFB1YmxpY0tleSB7XHJcblx0XHRsZXQgYnl0ZXM7XHJcblx0XHRpZiAoaXNIZXhTdHJpbmcocmVjb3ZlcmFibGUpKSB7XHJcblx0XHRcdGJ5dGVzID0gZnJvbUhleFN0cmluZyhyZWNvdmVyYWJsZSk7XHJcblx0XHR9IGVsc2UgaWYgKHJlY292ZXJhYmxlIGluc3RhbmNlb2YgQnVmZmVyKSB7XHJcblx0XHRcdGJ5dGVzID0gVWludDhBcnJheS5mcm9tKHJlY292ZXJhYmxlLmJ1ZmZlcik7XHJcblx0XHR9IGVsc2UgaWYgKHJlY292ZXJhYmxlIGluc3RhbmNlb2YgVWludDhBcnJheSkge1xyXG5cdFx0XHRieXRlcyA9IHJlY292ZXJhYmxlO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihcclxuXHRcdFx0XHRgUHVibGljS2V5OiB1bnN1cHBvcnRlZCByZWNvdmVyYWJsZSBzaWduYXR1cmUgZm9ybWF0OiAke3JlY292ZXJhYmxlfWAsXHJcblx0XHRcdCk7XHJcblx0XHR9XHJcblx0XHRpZiAoYnl0ZXMubGVuZ3RoICE9PSA2NSkge1xyXG5cdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKFxyXG5cdFx0XHRcdGBQdWJsaWNLZXk6IGV4cGVjdGVkIHJlY292ZXJhYmxlIHNpZ25hdHVyZSB3aXRoIGxlbmd0aCA2NTogJHt0b0hleFN0cmluZyhieXRlcyl9YCxcclxuXHRcdFx0KTtcclxuXHRcdH1cclxuXHRcdGNvbnN0IFtyZWNvdmVyeUlkLCBzaWduYXR1cmVdID0gW2J5dGVzWzBdLCBieXRlcy5zbGljZSgxKV07XHJcblx0XHRyZXR1cm4gUHVibGljS2V5LmZyb21VaW50OEFycmF5KFxyXG5cdFx0XHRzZWNwMjU2azEuZWNkc2FSZWNvdmVyKHNpZ25hdHVyZSwgcmVjb3ZlcnlJZCwgbXNnKSxcclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHRjb25zdHJ1Y3Rvcihjb21wcmVzc2VkOiBudW1iZXIsIGJ5dGVzOiBVaW50OEFycmF5KSB7XHJcblx0XHR0aGlzLmNvbXByZXNzZWQgPSBjb21wcmVzc2VkO1xyXG5cdFx0dGhpcy5ieXRlcyA9IGJ5dGVzO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGVxdWFscyhwdWJLZXk6IFB1YmxpY0tleSk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIChcclxuXHRcdFx0cHViS2V5LmNvbXByZXNzZWQgPT09IHRoaXMuY29tcHJlc3NlZCAmJlxyXG5cdFx0XHRtYXRjaGluZ1VpbnQ4QXJyYXlzKHB1YktleS5ieXRlcywgcHViS2V5LmJ5dGVzKVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBoYXNoKCk6IFB1YmxpY0tleUhhc2gge1xyXG5cdFx0cmV0dXJuIFB1YmxpY0tleUhhc2guZnJvbVB1YmxpY0tleSh0aGlzKTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyB0b0hleFN0cmluZygpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIHRvSGV4U3RyaW5nKFt0aGlzLmNvbXByZXNzZWQsIC4uLnRoaXMuYnl0ZXNdKTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyB0b1VpbnQ4QXJyYXkoKTogVWludDhBcnJheSB7XHJcblx0XHRyZXR1cm4gVWludDhBcnJheS5mcm9tKFt0aGlzLmNvbXByZXNzZWQsIC4uLnRoaXMuYnl0ZXNdKTtcclxuXHR9XHJcbn1cclxuXHJcbi8vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbmV4cG9ydCBjbGFzcyBQdWJsaWNLZXlIYXNoIHtcclxuXHRzdGF0aWMgZnJvbUhhc2goaGFzaDogVWludDhBcnJheSk6IFB1YmxpY0tleUhhc2gge1xyXG5cdFx0cmV0dXJuIG5ldyBQdWJsaWNLZXlIYXNoKGJlY2gzMi50b1dvcmRzKGhhc2gpKTtcclxuXHR9XHJcblxyXG5cdHN0YXRpYyBmcm9tSGV4U3RyaW5nKGhhc2g6IEhleFN0cmluZyk6IFB1YmxpY0tleUhhc2gge1xyXG5cdFx0cmV0dXJuIFB1YmxpY0tleUhhc2guZnJvbUhhc2goZnJvbUhleFN0cmluZyhoYXNoKSk7XHJcblx0fVxyXG5cclxuXHRzdGF0aWMgZnJvbVB1YmxpY0tleShwazogUHVibGljS2V5KTogUHVibGljS2V5SGFzaCB7XHJcblx0XHRyZXR1cm4gUHVibGljS2V5SGFzaC5mcm9tSGFzaChcclxuXHRcdFx0c2hhMjU2KEJ1ZmZlci5mcm9tKFtway5jb21wcmVzc2VkLCAuLi5way5ieXRlc10pKS5zdWJhcnJheSgwLCAyMCksXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0c3RhdGljIGZyb21CZWNoMzIocGtoOiBzdHJpbmcpOiBQdWJsaWNLZXlIYXNoIHtcclxuXHRcdHRyeSB7XHJcblx0XHRcdHBraCA9IHBraC50b0xvd2VyQ2FzZSgpO1xyXG5cdFx0XHRpZiAocGtoLnN0YXJ0c1dpdGgoXCJ3aXRcIikpIHtcclxuXHRcdFx0XHRyZXR1cm4gbmV3IFB1YmxpY0tleUhhc2goYmVjaDMyLmRlY29kZShwa2gsIDY2KS53b3Jkcyk7XHJcblx0XHRcdH0gZWxzZSBpZiAocGtoLnN0YXJ0c1dpdGgoXCJ0d2l0XCIpKSB7XHJcblx0XHRcdFx0cmV0dXJuIG5ldyBQdWJsaWNLZXlIYXNoKGJlY2gzMi5kZWNvZGUocGtoLCA2Nykud29yZHMpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoYFB1YmxpY0tleUhhc2g6IGludmFsaWQgYmVjaDMyIHN0cmluZzogJHtwa2h9YCk7XHJcblx0XHRcdH1cclxuXHRcdH0gY2F0Y2gge1xyXG5cdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKGBQdWJsaWNLZXlIYXNoOiBpbnZhbGlkIGJlY2gzMiBzdHJpbmc6ICR7cGtofWApO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJvdGVjdGVkIHdvcmRzOiBudW1iZXJbXTtcclxuXHJcblx0Y29uc3RydWN0b3Iod29yZHM6IG51bWJlcltdKSB7XHJcblx0XHR0aGlzLndvcmRzID0gd29yZHM7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgdG9CZWNoMzIobmV0d29yayA9IFwibWFpbm5ldFwiKTogc3RyaW5nIHtcclxuXHRcdHJldHVybiBuZXR3b3JrID09PSBcIm1haW5uZXRcIlxyXG5cdFx0XHQ/IGJlY2gzMi5lbmNvZGUoXCJ3aXRcIiwgdGhpcy53b3JkcywgNjYpXHJcblx0XHRcdDogYmVjaDMyLmVuY29kZShcInR3aXRcIiwgdGhpcy53b3JkcywgNjcpO1xyXG5cdH1cclxuXHJcblx0cHVibGljIHRvQnl0ZXMyMCgpOiBVaW50OEFycmF5IHtcclxuXHRcdHJldHVybiBVaW50OEFycmF5LmZyb20oYmVjaDMyLmZyb21Xb3Jkcyh0aGlzLndvcmRzKS5zbGljZSgwLCAyMCkpO1xyXG5cdH1cclxuXHJcblx0cHVibGljIHRvQnl0ZXMzMigpOiBVaW50OEFycmF5IHtcclxuXHRcdHJldHVybiBVaW50OEFycmF5LmZyb20oW1xyXG5cdFx0XHQuLi5iZWNoMzIuZnJvbVdvcmRzKHRoaXMud29yZHMpLnNsaWNlKDAsIDIwKSxcclxuXHRcdFx0Li4ubmV3IEFycmF5KDEyKS5maWxsKDApLFxyXG5cdFx0XSk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgdG9IZXhTdHJpbmcoKTogc3RyaW5nIHtcclxuXHRcdHJldHVybiB0b0hleFN0cmluZyh0aGlzLnRvQnl0ZXMyMCgpKTtcclxuXHR9XHJcbn1cclxuXHJcbi8vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbmV4cG9ydCBjbGFzcyBTaWduYXR1cmUge1xyXG5cdHN0YXRpYyBmcm9tSGV4U3RyaW5nKGhleDogc3RyaW5nKTogU2lnbmF0dXJlIHtcclxuXHRcdHJldHVybiBuZXcgU2lnbmF0dXJlKGZyb21IZXhTdHJpbmcoaGV4KSk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgcmVhZG9ubHkgYnl0ZXM6IFVpbnQ4QXJyYXk7XHJcblxyXG5cdGNvbnN0cnVjdG9yKGJ5dGVzOiBVaW50OEFycmF5KSB7XHJcblx0XHR0aGlzLmJ5dGVzID0gYnl0ZXM7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgdG9IZXhTdHJpbmcoKTogc3RyaW5nIHtcclxuXHRcdHJldHVybiB0b0hleFN0cmluZyh0aGlzLmJ5dGVzKTtcclxuXHR9XHJcbn1cclxuXHJcbi8vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbmV4cG9ydCBjbGFzcyBSZWNvdmVyYWJsZVNpZ25hdHVyZSBleHRlbmRzIFNpZ25hdHVyZSB7XHJcblx0c3RhdGljIGZyb20ocmVjb3ZlcmFibGU6IGFueSwgbXNnOiBVaW50OEFycmF5KTogUmVjb3ZlcmFibGVTaWduYXR1cmUge1xyXG5cdFx0bGV0IGJ5dGVzO1xyXG5cdFx0aWYgKGlzSGV4U3RyaW5nKHJlY292ZXJhYmxlKSkge1xyXG5cdFx0XHRieXRlcyA9IGZyb21IZXhTdHJpbmcocmVjb3ZlcmFibGUpLnNsaWNlKDEpO1xyXG5cdFx0fSBlbHNlIGlmIChyZWNvdmVyYWJsZSBpbnN0YW5jZW9mIEJ1ZmZlcikge1xyXG5cdFx0XHRieXRlcyA9IFVpbnQ4QXJyYXkuZnJvbShyZWNvdmVyYWJsZS5idWZmZXIpLnNsaWNlKDEpO1xyXG5cdFx0fSBlbHNlIGlmIChyZWNvdmVyYWJsZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpIHtcclxuXHRcdFx0Ynl0ZXMgPSByZWNvdmVyYWJsZS5zbGljZSgxKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoXHJcblx0XHRcdFx0YFJlY292ZXJhYmxlU2lnbmF0dXJlOiB1bnN1cHBvcnRlZCByZWNvdmVyYWJsZSBzaWduYXR1cmUgZm9ybWF0OiAke3JlY292ZXJhYmxlfWAsXHJcblx0XHRcdCk7XHJcblx0XHR9XHJcblx0XHRpZiAoYnl0ZXMubGVuZ3RoICE9PSA2NCkge1xyXG5cdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKFxyXG5cdFx0XHRcdGBSZWNvdmVyYWJsZVNpZ25hdHJlOiBleHBlY3RlZCByZWNvdmVyYWJsZSBzaWduYXR1cmUgd2l0aCBsZW5ndGggNjU6ICR7dG9IZXhTdHJpbmcoYnl0ZXMpfWAsXHJcblx0XHRcdCk7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gbmV3IFJlY292ZXJhYmxlU2lnbmF0dXJlKFxyXG5cdFx0XHRQdWJsaWNLZXkucmVjb3ZlckZyb20ocmVjb3ZlcmFibGUsIG1zZyksXHJcblx0XHRcdGJ5dGVzLFxyXG5cdFx0XHRtc2csXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0c3RhdGljIGZyb21LZXllZFNpZ25hdHVyZShcclxuXHRcdGtzOiBLZXllZFNpZ25hdHVyZSxcclxuXHRcdG1zZzogVWludDhBcnJheSxcclxuXHQpOiBSZWNvdmVyYWJsZVNpZ25hdHVyZSB7XHJcblx0XHRyZXR1cm4gbmV3IFJlY292ZXJhYmxlU2lnbmF0dXJlKFxyXG5cdFx0XHRQdWJsaWNLZXkuZnJvbVByb3RvYnVmKGtzLnB1YmxpY19rZXkpLFxyXG5cdFx0XHRzZWNwMjU2azEuc2lnbmF0dXJlSW1wb3J0KFVpbnQ4QXJyYXkuZnJvbShrcy5zaWduYXR1cmUuU2VjcDI1NmsxLmRlcikpLFxyXG5cdFx0XHRtc2csXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0cHVibGljIHJlYWRvbmx5IG1lc3NhZ2U6IFVpbnQ4QXJyYXk7XHJcblx0cHVibGljIHJlYWRvbmx5IHB1YktleTogUHVibGljS2V5O1xyXG5cdHB1YmxpYyByZWFkb25seSByZWNvdmVyeUlkOiBudW1iZXI7XHJcblxyXG5cdGNvbnN0cnVjdG9yKHB1YktleTogUHVibGljS2V5LCBieXRlczogVWludDhBcnJheSwgbXNnOiBVaW50OEFycmF5KSB7XHJcblx0XHRzdXBlcihieXRlcyk7XHJcblx0XHRjb25zdCBwdWJLZXlSYXcgPSBwdWJLZXkudG9VaW50OEFycmF5KCk7XHJcblx0XHRsZXQgcmVjb3ZlcnlJZDogbnVtYmVyO1xyXG5cdFx0Zm9yIChyZWNvdmVyeUlkID0gMDsgcmVjb3ZlcnlJZCA8IDQ7IHJlY292ZXJ5SWQrKykge1xyXG5cdFx0XHRsZXQgcmVjb3ZlcmVkO1xyXG5cdFx0XHR0cnkge1xyXG5cdFx0XHRcdHJlY292ZXJlZCA9IHNlY3AyNTZrMS5lY2RzYVJlY292ZXIoYnl0ZXMsIHJlY292ZXJ5SWQsIG1zZyk7XHJcblx0XHRcdFx0aWYgKG1hdGNoaW5nVWludDhBcnJheXMocmVjb3ZlcmVkLCBwdWJLZXlSYXcpKSBicmVhaztcclxuXHRcdFx0fSBjYXRjaCB7fVxyXG5cdFx0fVxyXG5cdFx0dGhpcy5tZXNzYWdlID0gbXNnO1xyXG5cdFx0dGhpcy5wdWJLZXkgPSBwdWJLZXk7XHJcblx0XHR0aGlzLnJlY292ZXJ5SWQgPSByZWNvdmVyeUlkO1xyXG5cdH1cclxuXHJcblx0cHVibGljIHRvSGV4U3RyaW5nKHByZWZpeDB4ID0gZmFsc2UpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIHRvSGV4U3RyaW5nKFt0aGlzLnJlY292ZXJ5SWQsIC4uLnRoaXMuYnl0ZXNdLCBwcmVmaXgweCk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgdG9LZXllZFNpZ25hdHVyZSgpOiBhbnkge1xyXG5cdFx0cmV0dXJuIHtcclxuXHRcdFx0c2lnbmF0dXJlOiB7XHJcblx0XHRcdFx0U2VjcDI1NmsxOiB7IGRlcjogQXJyYXkuZnJvbShzZWNwMjU2azEuc2lnbmF0dXJlRXhwb3J0KHRoaXMuYnl0ZXMpKSB9LFxyXG5cdFx0XHR9LFxyXG5cdFx0XHRwdWJsaWNfa2V5OiB7XHJcblx0XHRcdFx0Ynl0ZXM6IEFycmF5LmZyb20odGhpcy5wdWJLZXkuYnl0ZXMpLFxyXG5cdFx0XHRcdGNvbXByZXNzZWQ6IHRoaXMucHViS2V5LmNvbXByZXNzZWQsXHJcblx0XHRcdH0sXHJcblx0XHR9O1xyXG5cdH1cclxuXHJcblx0cHVibGljIHRvUHJvdG9idWYoKTogYW55IHtcclxuXHRcdHJldHVybiB7XHJcblx0XHRcdHNpZ25hdHVyZToge1xyXG5cdFx0XHRcdFNlY3AyNTZrMTogeyBkZXI6IEFycmF5LmZyb20oc2VjcDI1NmsxLnNpZ25hdHVyZUV4cG9ydCh0aGlzLmJ5dGVzKSkgfSxcclxuXHRcdFx0fSxcclxuXHRcdFx0cHVibGljS2V5OiB7XHJcblx0XHRcdFx0cHVibGljS2V5OiBBcnJheS5mcm9tKFt0aGlzLnB1YktleS5jb21wcmVzc2VkLCAuLi50aGlzLnB1YktleS5ieXRlc10pLFxyXG5cdFx0XHR9LFxyXG5cdFx0fTtcclxuXHR9XHJcbn1cclxuXHJcbi8vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG5hYnN0cmFjdCBjbGFzcyBUcmFuc2FjdGlvbkVycm9yIGV4dGVuZHMgRXJyb3Ige1xyXG5cdHJlYWRvbmx5IHJlY2VpcHQ6IFRyYW5zYWN0aW9uUmVjZWlwdDtcclxuXHRjb25zdHJ1Y3RvcihyZWNlaXB0OiBUcmFuc2FjdGlvblJlY2VpcHQsIG1lc3NhZ2U/OiBzdHJpbmcpIHtcclxuXHRcdHN1cGVyKG1lc3NhZ2UpO1xyXG5cdFx0dGhpcy5yZWNlaXB0ID0gcmVjZWlwdDtcclxuXHR9XHJcbn1cclxuZXhwb3J0IGNsYXNzIE1lbXBvb2xFcnJvciBleHRlbmRzIFRyYW5zYWN0aW9uRXJyb3Ige31cclxuXHJcbmV4cG9ydCBjbGFzcyBUaW1lb3V0RXJyb3IgZXh0ZW5kcyBUcmFuc2FjdGlvbkVycm9yIHtcclxuXHRyZWFkb25seSBtc2VjczogbnVtYmVyO1xyXG5cdGNvbnN0cnVjdG9yKG1zZWNzOiBudW1iZXIsIHJlY2VpcHQ6IFRyYW5zYWN0aW9uUmVjZWlwdCwgbWVzc2FnZT86IHN0cmluZykge1xyXG5cdFx0c3VwZXIocmVjZWlwdCwgbWVzc2FnZSk7XHJcblx0XHR0aGlzLm1zZWNzID0gbXNlY3M7XHJcblx0fVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVHJhbnNtaXNzaW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XHJcblx0cmVhZG9ubHkgZXJyb3I/OiBhbnk7XHJcblx0cmVhZG9ubHkgaW5GbGlnaHQ6IFRyYW5zbWlzc2lvbjtcclxuXHRjb25zdHJ1Y3RvcihpbkZsaWdodDogVHJhbnNtaXNzaW9uLCBlcnJvcj86IGFueSkge1xyXG5cdFx0c3VwZXIoSlNPTi5zdHJpbmdpZnkoZXJyb3IpKTtcclxuXHRcdGRlbGV0ZSBlcnJvcj8uc3RhY2s7XHJcblx0XHR0aGlzLmVycm9yID0gZXJyb3I7XHJcblx0XHR0aGlzLmluRmxpZ2h0ID0gaW5GbGlnaHQ7XHJcblx0fVxyXG59XHJcblxyXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4vLy8gLS0tIEludGVybmFsIGZ1bmN0aW9uc1xyXG5cclxuZnVuY3Rpb24gbWF0Y2hpbmdVaW50OEFycmF5cyhhOiBVaW50OEFycmF5LCBiOiBVaW50OEFycmF5KSB7XHJcblx0cmV0dXJuIGEubGVuZ3RoID09PSBiLmxlbmd0aCAmJiBhLmV2ZXJ5KCh2YWx1ZSwgaW5kZXgpID0+IHZhbHVlID09PSBiW2luZGV4XSk7XHJcbn1cclxuIl19
|
|
276
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NyeXB0by90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2hDLE9BQU8sU0FBUyxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQ04sYUFBYSxFQUNiLFdBQVcsRUFDWCxXQUFXLEVBQ1gsVUFBVSxHQUNWLE1BQU0sc0JBQXNCLENBQUM7QUFROUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVwQyxNQUFNLE9BQU8sS0FBSztJQUNQLEtBQUssQ0FBUztJQUNqQixNQUFNLENBQUMsV0FBVyxDQUFDLE9BQWdCO1FBQ3pDLE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFDTSxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQWdCO1FBQzFDLE9BQU8sSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUNNLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBYztRQUN0QyxPQUFPLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFDTSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQVk7UUFDbEMsSUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDcEMsTUFBTSxJQUFJLFNBQVMsQ0FDbEIsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksb0NBQW9DLElBQUksTUFBTSxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsQ0FDaEcsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksS0FBSyxDQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUks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O0FBQy9FLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBiZWNoMzIgfSBmcm9tIFwiYmVjaDMyXCI7XG5pbXBvcnQgc2VjcDI1NmsxIGZyb20gXCJzZWNwMjU2azFcIjtcbmltcG9ydCB7XG5cdGZyb21IZXhTdHJpbmcsXG5cdGlzSGV4U3RyaW5nLFxuXHR0b0hleFN0cmluZyxcblx0d2hvbGVfd2l0cyxcbn0gZnJvbSBcIi4uLy4uL2Jpbi9oZWxwZXJzLmpzXCI7XG5pbXBvcnQgdHlwZSB7XG5cdEJhbGFuY2UsXG5cdEVwb2NoLFxuXHRIYXNoLFxuXHRIZXhTdHJpbmcsXG5cdFV0eG9NZXRhZGF0YSxcbn0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XG5pbXBvcnQgeyBzaGEyNTYgfSBmcm9tIFwiLi91dGlscy5qc1wiO1xuXG5leHBvcnQgY2xhc3MgQ29pbnMge1xuXHRwcm90ZWN0ZWQgY29pbnM6IGJpZ2ludDtcblx0cHVibGljIHN0YXRpYyBmcm9tQmFsYW5jZShiYWxhbmNlOiBCYWxhbmNlKTogQ29pbnMge1xuXHRcdHJldHVybiBDb2lucy5mcm9tUGVkcm9zKGJhbGFuY2UubG9ja2VkICsgYmFsYW5jZS5zdGFrZWQgKyBiYWxhbmNlLnVubG9ja2VkKTtcblx0fVxuXHRwdWJsaWMgc3RhdGljIGZyb21OYW5vd2l0cyhuYW5vd2l0czogYmlnaW50KTogQ29pbnMge1xuXHRcdHJldHVybiBuZXcgQ29pbnMobmFub3dpdHMpO1xuXHR9XG5cdHB1YmxpYyBzdGF0aWMgZnJvbVBlZHJvcyhwZWRyb3M6IGJpZ2ludCk6IENvaW5zIHtcblx0XHRyZXR1cm4gbmV3IENvaW5zKHBlZHJvcyk7XG5cdH1cblx0cHVibGljIHN0YXRpYyBmcm9tV2l0cyh3aXRzOiBudW1iZXIpOiBDb2lucyB7XG5cdFx0aWYgKHdpdHMgPiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikge1xuXHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihcblx0XHRcdFx0YCR7Q29pbnMuY29uc3RydWN0b3IubmFtZX06IGludGVybmFsIGVycm9yOiB0b28gbWFueSB3aXRzOiAke3dpdHN9ID4gJHtOdW1iZXIuTUFYX1NBRkVfSU5URUdFUn1gLFxuXHRcdFx0KTtcblx0XHR9XG5cdFx0cmV0dXJuIG5ldyBDb2lucyhcblx0XHRcdEJpZ0ludChNYXRoLmZsb29yKHdpdHMpKSAqIDEwbiAqKiA5biArXG5cdFx0XHRcdEJpZ0ludChNYXRoLmZsb29yKCh3aXRzIC0gTWF0aC5mbG9vcih3aXRzKSkgKiAxMDAwMDAwMDAwKSksXG5cdFx0KTtcblx0fVxuXHRwdWJsaWMgc3RhdGljIHplcm8oKTogQ29pbnMge1xuXHRcdHJldHVybiBuZXcgQ29pbnMoMG4pO1xuXHR9XG5cdGNvbnN0cnVjdG9yKHBlZHJvczogYmlnaW50KSB7XG5cdFx0dGhpcy5jb2lucyA9IHBlZHJvcztcblx0fVxuXHRwdWJsaWMgZ2V0IHBlZHJvcygpOiBiaWdpbnQge1xuXHRcdHJldHVybiB0aGlzLmNvaW5zO1xuXHR9XG5cdHB1YmxpYyBnZXQgbmFub3dpdHMoKTogYmlnaW50IHtcblx0XHRyZXR1cm4gdGhpcy5jb2lucztcblx0fVxuXHRwdWJsaWMgZ2V0IHdpdHMoKTogbnVtYmVyIHtcblx0XHRjb25zdCBxdW90aWVudCA9IEJpZ0ludCh0aGlzLmNvaW5zKSAvIDEwMDAwMDAwMDBuO1xuXHRcdGlmIChOdW1iZXIocXVvdGllbnQpID4gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpIHtcblx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoXG5cdFx0XHRcdGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IGludGVybmFsIGVycm9yOiB0b28gbWFueSBjb2luczogJHtxdW90aWVudC50b1N0cmluZygpfSA+ICR7TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVJ9YCxcblx0XHRcdCk7XG5cdFx0fVxuXHRcdGNvbnN0IHJlc3QgPVxuXHRcdFx0TnVtYmVyKEJpZ0ludCh0aGlzLmNvaW5zKSAtIHF1b3RpZW50ICogMTAwMDAwMDAwMG4pIC8gMTAwMDAwMDAwMDtcblx0XHRyZXR1cm4gTnVtYmVyKHF1b3RpZW50KSArIHJlc3Q7XG5cdH1cblx0cHVibGljIHRvU3RyaW5nKGRlY2ltYWxzID0gOSk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHdob2xlX3dpdHModGhpcy5jb2lucywgZGVjaW1hbHMpO1xuXHR9XG59XG5cbmV4cG9ydCB0eXBlIEtleVBhdGggPSBBcnJheTxudW1iZXI+O1xuXG5leHBvcnQgdHlwZSBLZXllZFNpZ25hdHVyZSA9IHtcblx0c2lnbmF0dXJlOiB7IFNlY3AyNTZrMTogeyBkZXI6IEFycmF5PG51bWJlcj4gfSB9O1xuXHRwdWJsaWNfa2V5OiB7XG5cdFx0Ynl0ZXM6IEFycmF5PG51bWJlcj47XG5cdFx0Y29tcHJlc3NlZDogbnVtYmVyO1xuXHR9O1xufTtcblxuZXhwb3J0IHR5cGUgUHVibGljS2V5SGFzaFN0cmluZyA9IEhleFN0cmluZztcblxuaW50ZXJmYWNlIEtleSB7XG5cdGJ5dGVzOiBVaW50OEFycmF5O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByaXZhdGVLZXkgZXh0ZW5kcyBLZXkge1xuXHR0eXBlOiBcInByaXZhdGVcIjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdWJsaWNLZXkgZXh0ZW5kcyBLZXkge1xuXHR0eXBlOiBcInB1YmxpY1wiO1xufVxuXG5leHBvcnQgdHlwZSBUcmFuc2FjdGlvbkNhbGxiYWNrID0gKFxuXHRyZWNlaXB0OiBUcmFuc2FjdGlvblJlY2VpcHQsXG5cdGVycm9yPzogYW55LFxuKSA9PiBhbnk7XG5cbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uUGFyYW1zID0ge1xuXHRkZWFkbGluZT86IEVwb2NoO1xuXHRmZWVzPzogVHJhbnNhY3Rpb25Qcmlvcml0eSB8IENvaW5zO1xufTtcblxuZXhwb3J0IGVudW0gVHJhbnNhY3Rpb25Qcmlvcml0eSB7XG5cdFN0aW5reSA9IFwic3Rpbmt5XCIsXG5cdExvdyA9IFwibG93XCIsXG5cdE1lZGl1bSA9IFwibWVkaXVtXCIsXG5cdEhpZ2ggPSBcImhpZ2hcIixcblx0T3B1bGVudCA9IFwib3B1bGVudFwiLFxufVxuXG5leHBvcnQgdHlwZSBUcmFuc2FjdGlvblJlY2VpcHQgPSB7XG5cdGF1dGhvcml6YXRpb24/OiBIZXhTdHJpbmc7XG5cdGJsb2NrRXBvY2g/OiBFcG9jaDtcblx0YmxvY2tIYXNoPzogSGFzaDtcblx0YmxvY2tNaW5lcj86IFB1YmxpY0tleUhhc2hTdHJpbmc7XG5cdGJsb2NrVGltZXN0YW1wPzogbnVtYmVyO1xuXHRjb25maXJtYXRpb25zPzogbnVtYmVyO1xuXHRjaGFuZ2U/OiBDb2lucztcblx0ZHJvSGFzaD86IEhhc2g7XG5cdGVycm9yPzogRXJyb3I7XG5cdGZlZXM6IENvaW5zO1xuXHRmcm9tPzogQXJyYXk8UHVibGljS2V5SGFzaFN0cmluZz4gfCBQdWJsaWNLZXlIYXNoU3RyaW5nO1xuXHRoYXNoOiBIYXNoO1xuXHRvdXRwdXRMb2NrPzogbnVtYmVyO1xuXHRyYWRBcmdzPzogYW55O1xuXHRyYWRIYXNoPzogSGV4U3RyaW5nO1xuXHRyZWNpcGllbnRzPzogQXJyYXk8W1B1YmxpY0tleUhhc2hTdHJpbmcsIENvaW5zXT47XG5cdHN0YXR1czogc3RyaW5nO1xuXHR0aW1lc3RhbXA6IG51bWJlcjtcblx0dHlwZTogc3RyaW5nO1xuXHR0eD86IGFueTtcblx0dmFsaWRhdG9yPzogUHVibGljS2V5SGFzaFN0cmluZztcblx0dmFsdWU/OiBDb2lucztcblx0d2VpZ2h0OiBudW1iZXI7XG5cdHdpdGhkcmF3ZXI/OiBQdWJsaWNLZXlIYXNoU3RyaW5nO1xuXHR3aXRuZXNzZXM/OiBudW1iZXIgfCBSZWNvcmQ8UHVibGljS2V5SGFzaFN0cmluZywgQ29pbnM+O1xufTtcblxuZXhwb3J0IHR5cGUgVHJhbnNhY3Rpb25TdGF0dXMgPVxuXHR8IFwic2lnbmVkXCJcblx0fCBcInBlbmRpbmdcIlxuXHR8IFwicmVsYXllZFwiXG5cdHwgXCJyZW1vdmVkXCJcblx0fCBcIm1pbmVkXCJcblx0fCBcImNvbmZpcm1lZFwiXG5cdHwgXCJmaW5hbGl6ZWRcIjtcblxuZXhwb3J0IHR5cGUgVHJhbnNtaXNzaW9uID0ge1xuXHRieXRlY29kZT86IFVpbnQ4QXJyYXk7XG5cdGhhc2g/OiBIYXNoO1xuXHRtZXNzYWdlOiBhbnk7XG59O1xuXG5leHBvcnQgdHlwZSBVdHhvID0gVXR4b01ldGFkYXRhICYgeyBzaWduZXI6IFB1YmxpY0tleUhhc2hTdHJpbmcgfTtcblxuZXhwb3J0IHR5cGUgVXR4b0NhY2hlSW5mbyA9IHtcblx0Ly8gdG90YWwgYW1vdW50IG9mIGV4cGVuZGFibGUgZnVuZHMgd2l0aCBjdXJyZW50bHkgY2FjaGVkIFVUWE9zXG5cdGV4cGVuZGFibGU6IGJpZ2ludDtcblx0Ly8gbnVtYmVyIG9mIGNhY2hlZCBVVFhPc1xuXHRzaXplOiBudW1iZXI7XG5cdC8vIGVhcmxpZXN0IG9mIGFsbCB0aW1lbG9ja3MgaW4gdGhlIGNhY2jDqVxuXHR0aW1lbG9jazogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgVXR4b1BvaW50ZXIgPSB7XG5cdC8vIHRyYW5zYWN0aW9uIGlkZW50aWZpZXJcblx0dHJhbnNhY3Rpb25faWQ6IEhhc2g7XG5cdC8vIG91dHB1dCBpbmRleCB3aXRoaW4gcmVmZXJyZWQgdHJhbnNhY3Rpb25cblx0b3V0cHV0X2luZGV4OiBudW1iZXI7XG59O1xuXG5leHBvcnQgZW51bSBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kge1xuXHRCaWdGaXJzdCA9IFwiYmlnLWZpcnN0XCIsXG5cdFJhbmRvbSA9IFwicmFuZG9tXCIsXG5cdFNsaW1GaXQgPSBcInNsaW0tZml0XCIsXG5cdFNtYWxsRmlyc3QgPSBcInNtYWxsLWZpcnN0XCIsXG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8gRVhQT1JURUQgQ0xBU1NFU1xuXG4vLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuZXhwb3J0IGNsYXNzIFB1YmxpY0tleSBpbXBsZW1lbnRzIEtleSB7XG5cdHB1YmxpYyByZWFkb25seSBjb21wcmVzc2VkOiBudW1iZXI7XG5cdHB1YmxpYyByZWFkb25seSBieXRlczogVWludDhBcnJheTtcblxuXHRzdGF0aWMgZnJvbVByb3RvYnVmKHByb3RvYnVmOiB7XG5cdFx0Y29tcHJlc3NlZDogbnVtYmVyO1xuXHRcdGJ5dGVzOiBBcnJheTxudW1iZXI+O1xuXHR9KTogUHVibGljS2V5IHtcblx0XHRyZXR1cm4gbmV3IFB1YmxpY0tleShwcm90b2J1Zi5jb21wcmVzc2VkLCBVaW50OEFycmF5LmZyb20ocHJvdG9idWYuYnl0ZXMpKTtcblx0fVxuXG5cdHN0YXRpYyBmcm9tVWludDhBcnJheSh1aW50OEFycmF5OiBVaW50OEFycmF5KTogUHVibGljS2V5IHtcblx0XHRyZXR1cm4gbmV3IFB1YmxpY0tleSh1aW50OEFycmF5WzBdLCB1aW50OEFycmF5LnNsaWNlKDEpKTtcblx0fVxuXG5cdHN0YXRpYyByZWNvdmVyRnJvbShyZWNvdmVyYWJsZTogYW55LCBtc2c6IFVpbnQ4QXJyYXkpOiBQdWJsaWNLZXkge1xuXHRcdGxldCBieXRlcztcblx0XHRpZiAoaXNIZXhTdHJpbmcocmVjb3ZlcmFibGUpKSB7XG5cdFx0XHRieXRlcyA9IGZyb21IZXhTdHJpbmcocmVjb3ZlcmFibGUpO1xuXHRcdH0gZWxzZSBpZiAocmVjb3ZlcmFibGUgaW5zdGFuY2VvZiBCdWZmZXIpIHtcblx0XHRcdGJ5dGVzID0gVWludDhBcnJheS5mcm9tKHJlY292ZXJhYmxlLmJ1ZmZlcik7XG5cdFx0fSBlbHNlIGlmIChyZWNvdmVyYWJsZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpIHtcblx0XHRcdGJ5dGVzID0gcmVjb3ZlcmFibGU7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoXG5cdFx0XHRcdGBQdWJsaWNLZXk6IHVuc3VwcG9ydGVkIHJlY292ZXJhYmxlIHNpZ25hdHVyZSBmb3JtYXQ6ICR7cmVjb3ZlcmFibGV9YCxcblx0XHRcdCk7XG5cdFx0fVxuXHRcdGlmIChieXRlcy5sZW5ndGggIT09IDY1KSB7XG5cdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKFxuXHRcdFx0XHRgUHVibGljS2V5OiBleHBlY3RlZCByZWNvdmVyYWJsZSBzaWduYXR1cmUgd2l0aCBsZW5ndGggNjU6ICR7dG9IZXhTdHJpbmcoYnl0ZXMpfWAsXG5cdFx0XHQpO1xuXHRcdH1cblx0XHRjb25zdCBbcmVjb3ZlcnlJZCwgc2lnbmF0dXJlXSA9IFtieXRlc1swXSwgYnl0ZXMuc2xpY2UoMSldO1xuXHRcdHJldHVybiBQdWJsaWNLZXkuZnJvbVVpbnQ4QXJyYXkoXG5cdFx0XHRzZWNwMjU2azEuZWNkc2FSZWNvdmVyKHNpZ25hdHVyZSwgcmVjb3ZlcnlJZCwgbXNnKSxcblx0XHQpO1xuXHR9XG5cblx0Y29uc3RydWN0b3IoY29tcHJlc3NlZDogbnVtYmVyLCBieXRlczogVWludDhBcnJheSkge1xuXHRcdHRoaXMuY29tcHJlc3NlZCA9IGNvbXByZXNzZWQ7XG5cdFx0dGhpcy5ieXRlcyA9IGJ5dGVzO1xuXHR9XG5cblx0cHVibGljIGVxdWFscyhwdWJLZXk6IFB1YmxpY0tleSk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiAoXG5cdFx0XHRwdWJLZXkuY29tcHJlc3NlZCA9PT0gdGhpcy5jb21wcmVzc2VkICYmXG5cdFx0XHRtYXRjaGluZ1VpbnQ4QXJyYXlzKHB1YktleS5ieXRlcywgcHViS2V5LmJ5dGVzKVxuXHRcdCk7XG5cdH1cblxuXHRwdWJsaWMgaGFzaCgpOiBQdWJsaWNLZXlIYXNoIHtcblx0XHRyZXR1cm4gUHVibGljS2V5SGFzaC5mcm9tUHVibGljS2V5KHRoaXMpO1xuXHR9XG5cblx0cHVibGljIHRvSGV4U3RyaW5nKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRvSGV4U3RyaW5nKFt0aGlzLmNvbXByZXNzZWQsIC4uLnRoaXMuYnl0ZXNdKTtcblx0fVxuXG5cdHB1YmxpYyB0b1VpbnQ4QXJyYXkoKTogVWludDhBcnJheSB7XG5cdFx0cmV0dXJuIFVpbnQ4QXJyYXkuZnJvbShbdGhpcy5jb21wcmVzc2VkLCAuLi50aGlzLmJ5dGVzXSk7XG5cdH1cbn1cblxuLy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmV4cG9ydCBjbGFzcyBQdWJsaWNLZXlIYXNoIHtcblx0c3RhdGljIGZyb21IYXNoKGhhc2g6IFVpbnQ4QXJyYXkpOiBQdWJsaWNLZXlIYXNoIHtcblx0XHRyZXR1cm4gbmV3IFB1YmxpY0tleUhhc2goYmVjaDMyLnRvV29yZHMoaGFzaCkpO1xuXHR9XG5cblx0c3RhdGljIGZyb21IZXhTdHJpbmcoaGFzaDogSGV4U3RyaW5nKTogUHVibGljS2V5SGFzaCB7XG5cdFx0cmV0dXJuIFB1YmxpY0tleUhhc2guZnJvbUhhc2goZnJvbUhleFN0cmluZyhoYXNoKSk7XG5cdH1cblxuXHRzdGF0aWMgZnJvbVB1YmxpY0tleShwazogUHVibGljS2V5KTogUHVibGljS2V5SGFzaCB7XG5cdFx0cmV0dXJuIFB1YmxpY0tleUhhc2guZnJvbUhhc2goXG5cdFx0XHRzaGEyNTYoQnVmZmVyLmZyb20oW3BrLmNvbXByZXNzZWQsIC4uLnBrLmJ5dGVzXSkpLnN1YmFycmF5KDAsIDIwKSxcblx0XHQpO1xuXHR9XG5cblx0c3RhdGljIGZyb21CZWNoMzIocGtoOiBzdHJpbmcpOiBQdWJsaWNLZXlIYXNoIHtcblx0XHR0cnkge1xuXHRcdFx0cGtoID0gcGtoLnRvTG93ZXJDYXNlKCk7XG5cdFx0XHRpZiAocGtoLnN0YXJ0c1dpdGgoXCJ3aXRcIikpIHtcblx0XHRcdFx0cmV0dXJuIG5ldyBQdWJsaWNLZXlIYXNoKGJlY2gzMi5kZWNvZGUocGtoLCA2Nikud29yZHMpO1xuXHRcdFx0fSBlbHNlIGlmIChwa2guc3RhcnRzV2l0aChcInR3aXRcIikpIHtcblx0XHRcdFx0cmV0dXJuIG5ldyBQdWJsaWNLZXlIYXNoKGJlY2gzMi5kZWNvZGUocGtoLCA2Nykud29yZHMpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihgUHVibGljS2V5SGFzaDogaW52YWxpZCBiZWNoMzIgc3RyaW5nOiAke3BraH1gKTtcblx0XHRcdH1cblx0XHR9IGNhdGNoIHtcblx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoYFB1YmxpY0tleUhhc2g6IGludmFsaWQgYmVjaDMyIHN0cmluZzogJHtwa2h9YCk7XG5cdFx0fVxuXHR9XG5cblx0cHJvdGVjdGVkIHdvcmRzOiBudW1iZXJbXTtcblxuXHRjb25zdHJ1Y3Rvcih3b3JkczogbnVtYmVyW10pIHtcblx0XHR0aGlzLndvcmRzID0gd29yZHM7XG5cdH1cblxuXHRwdWJsaWMgdG9CZWNoMzIobmV0d29yayA9IFwibWFpbm5ldFwiKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gbmV0d29yayA9PT0gXCJtYWlubmV0XCJcblx0XHRcdD8gYmVjaDMyLmVuY29kZShcIndpdFwiLCB0aGlzLndvcmRzLCA2Nilcblx0XHRcdDogYmVjaDMyLmVuY29kZShcInR3aXRcIiwgdGhpcy53b3JkcywgNjcpO1xuXHR9XG5cblx0cHVibGljIHRvQnl0ZXMyMCgpOiBVaW50OEFycmF5IHtcblx0XHRyZXR1cm4gVWludDhBcnJheS5mcm9tKGJlY2gzMi5mcm9tV29yZHModGhpcy53b3Jkcykuc2xpY2UoMCwgMjApKTtcblx0fVxuXG5cdHB1YmxpYyB0b0J5dGVzMzIoKTogVWludDhBcnJheSB7XG5cdFx0cmV0dXJuIFVpbnQ4QXJyYXkuZnJvbShbXG5cdFx0XHQuLi5iZWNoMzIuZnJvbVdvcmRzKHRoaXMud29yZHMpLnNsaWNlKDAsIDIwKSxcblx0XHRcdC4uLm5ldyBBcnJheSgxMikuZmlsbCgwKSxcblx0XHRdKTtcblx0fVxuXG5cdHB1YmxpYyB0b0hleFN0cmluZygpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0b0hleFN0cmluZyh0aGlzLnRvQnl0ZXMyMCgpKTtcblx0fVxufVxuXG4vLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuZXhwb3J0IGNsYXNzIFNpZ25hdHVyZSB7XG5cdHN0YXRpYyBmcm9tSGV4U3RyaW5nKGhleDogc3RyaW5nKTogU2lnbmF0dXJlIHtcblx0XHRyZXR1cm4gbmV3IFNpZ25hdHVyZShmcm9tSGV4U3RyaW5nKGhleCkpO1xuXHR9XG5cblx0cHVibGljIHJlYWRvbmx5IGJ5dGVzOiBVaW50OEFycmF5O1xuXG5cdGNvbnN0cnVjdG9yKGJ5dGVzOiBVaW50OEFycmF5KSB7XG5cdFx0dGhpcy5ieXRlcyA9IGJ5dGVzO1xuXHR9XG5cblx0cHVibGljIHRvSGV4U3RyaW5nKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRvSGV4U3RyaW5nKHRoaXMuYnl0ZXMpO1xuXHR9XG59XG5cbi8vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5leHBvcnQgY2xhc3MgUmVjb3ZlcmFibGVTaWduYXR1cmUgZXh0ZW5kcyBTaWduYXR1cmUge1xuXHRzdGF0aWMgZnJvbShyZWNvdmVyYWJsZTogYW55LCBtc2c6IFVpbnQ4QXJyYXkpOiBSZWNvdmVyYWJsZVNpZ25hdHVyZSB7XG5cdFx0bGV0IGJ5dGVzO1xuXHRcdGlmIChpc0hleFN0cmluZyhyZWNvdmVyYWJsZSkpIHtcblx0XHRcdGJ5dGVzID0gZnJvbUhleFN0cmluZyhyZWNvdmVyYWJsZSkuc2xpY2UoMSk7XG5cdFx0fSBlbHNlIGlmIChyZWNvdmVyYWJsZSBpbnN0YW5jZW9mIEJ1ZmZlcikge1xuXHRcdFx0Ynl0ZXMgPSBVaW50OEFycmF5LmZyb20ocmVjb3ZlcmFibGUuYnVmZmVyKS5zbGljZSgxKTtcblx0XHR9IGVsc2UgaWYgKHJlY292ZXJhYmxlIGluc3RhbmNlb2YgVWludDhBcnJheSkge1xuXHRcdFx0Ynl0ZXMgPSByZWNvdmVyYWJsZS5zbGljZSgxKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihcblx0XHRcdFx0YFJlY292ZXJhYmxlU2lnbmF0dXJlOiB1bnN1cHBvcnRlZCByZWNvdmVyYWJsZSBzaWduYXR1cmUgZm9ybWF0OiAke3JlY292ZXJhYmxlfWAsXG5cdFx0XHQpO1xuXHRcdH1cblx0XHRpZiAoYnl0ZXMubGVuZ3RoICE9PSA2NCkge1xuXHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihcblx0XHRcdFx0YFJlY292ZXJhYmxlU2lnbmF0cmU6IGV4cGVjdGVkIHJlY292ZXJhYmxlIHNpZ25hdHVyZSB3aXRoIGxlbmd0aCA2NTogJHt0b0hleFN0cmluZyhieXRlcyl9YCxcblx0XHRcdCk7XG5cdFx0fVxuXHRcdHJldHVybiBuZXcgUmVjb3ZlcmFibGVTaWduYXR1cmUoXG5cdFx0XHRQdWJsaWNLZXkucmVjb3ZlckZyb20ocmVjb3ZlcmFibGUsIG1zZyksXG5cdFx0XHRieXRlcyxcblx0XHRcdG1zZyxcblx0XHQpO1xuXHR9XG5cblx0c3RhdGljIGZyb21LZXllZFNpZ25hdHVyZShcblx0XHRrczogS2V5ZWRTaWduYXR1cmUsXG5cdFx0bXNnOiBVaW50OEFycmF5LFxuXHQpOiBSZWNvdmVyYWJsZVNpZ25hdHVyZSB7XG5cdFx0cmV0dXJuIG5ldyBSZWNvdmVyYWJsZVNpZ25hdHVyZShcblx0XHRcdFB1YmxpY0tleS5mcm9tUHJvdG9idWYoa3MucHVibGljX2tleSksXG5cdFx0XHRzZWNwMjU2azEuc2lnbmF0dXJlSW1wb3J0KFVpbnQ4QXJyYXkuZnJvbShrcy5zaWduYXR1cmUuU2VjcDI1NmsxLmRlcikpLFxuXHRcdFx0bXNnLFxuXHRcdCk7XG5cdH1cblxuXHRwdWJsaWMgcmVhZG9ubHkgbWVzc2FnZTogVWludDhBcnJheTtcblx0cHVibGljIHJlYWRvbmx5IHB1YktleTogUHVibGljS2V5O1xuXHRwdWJsaWMgcmVhZG9ubHkgcmVjb3ZlcnlJZDogbnVtYmVyO1xuXG5cdGNvbnN0cnVjdG9yKHB1YktleTogUHVibGljS2V5LCBieXRlczogVWludDhBcnJheSwgbXNnOiBVaW50OEFycmF5KSB7XG5cdFx0c3VwZXIoYnl0ZXMpO1xuXHRcdGNvbnN0IHB1YktleVJhdyA9IHB1YktleS50b1VpbnQ4QXJyYXkoKTtcblx0XHRsZXQgcmVjb3ZlcnlJZDogbnVtYmVyO1xuXHRcdGZvciAocmVjb3ZlcnlJZCA9IDA7IHJlY292ZXJ5SWQgPCA0OyByZWNvdmVyeUlkKyspIHtcblx0XHRcdGxldCByZWNvdmVyZWQ7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRyZWNvdmVyZWQgPSBzZWNwMjU2azEuZWNkc2FSZWNvdmVyKGJ5dGVzLCByZWNvdmVyeUlkLCBtc2cpO1xuXHRcdFx0XHRpZiAobWF0Y2hpbmdVaW50OEFycmF5cyhyZWNvdmVyZWQsIHB1YktleVJhdykpIGJyZWFrO1xuXHRcdFx0fSBjYXRjaCB7fVxuXHRcdH1cblx0XHR0aGlzLm1lc3NhZ2UgPSBtc2c7XG5cdFx0dGhpcy5wdWJLZXkgPSBwdWJLZXk7XG5cdFx0dGhpcy5yZWNvdmVyeUlkID0gcmVjb3ZlcnlJZDtcblx0fVxuXG5cdHB1YmxpYyB0b0hleFN0cmluZyhwcmVmaXgweCA9IGZhbHNlKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdG9IZXhTdHJpbmcoW3RoaXMucmVjb3ZlcnlJZCwgLi4udGhpcy5ieXRlc10sIHByZWZpeDB4KTtcblx0fVxuXG5cdHB1YmxpYyB0b0tleWVkU2lnbmF0dXJlKCk6IGFueSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdHNpZ25hdHVyZToge1xuXHRcdFx0XHRTZWNwMjU2azE6IHsgZGVyOiBBcnJheS5mcm9tKHNlY3AyNTZrMS5zaWduYXR1cmVFeHBvcnQodGhpcy5ieXRlcykpIH0sXG5cdFx0XHR9LFxuXHRcdFx0cHVibGljX2tleToge1xuXHRcdFx0XHRieXRlczogQXJyYXkuZnJvbSh0aGlzLnB1YktleS5ieXRlcyksXG5cdFx0XHRcdGNvbXByZXNzZWQ6IHRoaXMucHViS2V5LmNvbXByZXNzZWQsXG5cdFx0XHR9LFxuXHRcdH07XG5cdH1cblxuXHRwdWJsaWMgdG9Qcm90b2J1ZigpOiBhbnkge1xuXHRcdHJldHVybiB7XG5cdFx0XHRzaWduYXR1cmU6IHtcblx0XHRcdFx0U2VjcDI1NmsxOiB7IGRlcjogQXJyYXkuZnJvbShzZWNwMjU2azEuc2lnbmF0dXJlRXhwb3J0KHRoaXMuYnl0ZXMpKSB9LFxuXHRcdFx0fSxcblx0XHRcdHB1YmxpY0tleToge1xuXHRcdFx0XHRwdWJsaWNLZXk6IEFycmF5LmZyb20oW3RoaXMucHViS2V5LmNvbXByZXNzZWQsIC4uLnRoaXMucHViS2V5LmJ5dGVzXSksXG5cdFx0XHR9LFxuXHRcdH07XG5cdH1cbn1cblxuLy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuYWJzdHJhY3QgY2xhc3MgVHJhbnNhY3Rpb25FcnJvciBleHRlbmRzIEVycm9yIHtcblx0cmVhZG9ubHkgcmVjZWlwdDogVHJhbnNhY3Rpb25SZWNlaXB0O1xuXHRjb25zdHJ1Y3RvcihyZWNlaXB0OiBUcmFuc2FjdGlvblJlY2VpcHQsIG1lc3NhZ2U/OiBzdHJpbmcpIHtcblx0XHRzdXBlcihtZXNzYWdlKTtcblx0XHR0aGlzLnJlY2VpcHQgPSByZWNlaXB0O1xuXHR9XG59XG5leHBvcnQgY2xhc3MgTWVtcG9vbEVycm9yIGV4dGVuZHMgVHJhbnNhY3Rpb25FcnJvciB7fVxuXG5leHBvcnQgY2xhc3MgVGltZW91dEVycm9yIGV4dGVuZHMgVHJhbnNhY3Rpb25FcnJvciB7XG5cdHJlYWRvbmx5IG1zZWNzOiBudW1iZXI7XG5cdGNvbnN0cnVjdG9yKG1zZWNzOiBudW1iZXIsIHJlY2VpcHQ6IFRyYW5zYWN0aW9uUmVjZWlwdCwgbWVzc2FnZT86IHN0cmluZykge1xuXHRcdHN1cGVyKHJlY2VpcHQsIG1lc3NhZ2UpO1xuXHRcdHRoaXMubXNlY3MgPSBtc2Vjcztcblx0fVxufVxuXG5leHBvcnQgY2xhc3MgVHJhbnNtaXNzaW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG5cdHJlYWRvbmx5IGVycm9yPzogYW55O1xuXHRyZWFkb25seSBpbkZsaWdodDogVHJhbnNtaXNzaW9uO1xuXHRjb25zdHJ1Y3RvcihpbkZsaWdodDogVHJhbnNtaXNzaW9uLCBlcnJvcj86IGFueSkge1xuXHRcdHN1cGVyKEpTT04uc3RyaW5naWZ5KGVycm9yKSk7XG5cdFx0ZGVsZXRlIGVycm9yPy5zdGFjaztcblx0XHR0aGlzLmVycm9yID0gZXJyb3I7XG5cdFx0dGhpcy5pbkZsaWdodCA9IGluRmxpZ2h0O1xuXHR9XG59XG5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gLS0tIEludGVybmFsIGZ1bmN0aW9uc1xuXG5mdW5jdGlvbiBtYXRjaGluZ1VpbnQ4QXJyYXlzKGE6IFVpbnQ4QXJyYXksIGI6IFVpbnQ4QXJyYXkpIHtcblx0cmV0dXJuIGEubGVuZ3RoID09PSBiLmxlbmd0aCAmJiBhLmV2ZXJ5KCh2YWx1ZSwgaW5kZXgpID0+IHZhbHVlID09PSBiW2luZGV4XSk7XG59XG4iXX0=
|